@llm4ts/runner 2.9.0 → 2.9.2
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/FlowRunner.d.ts.map +1 -1
- package/dist/FlowRunner.js +28 -16
- package/dist/FlowRunner.js.map +1 -1
- package/dist/Terminal.d.ts +27 -1
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +152 -30
- package/dist/Terminal.js.map +1 -1
- package/package.json +3 -3
- package/src/FlowRunner.ts +47 -17
- package/src/Terminal.ts +209 -31
package/dist/FlowRunner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowRunner.d.ts","sourceRoot":"","sources":["../src/FlowRunner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"FlowRunner.d.ts","sourceRoot":"","sources":["../src/FlowRunner.ts"],"names":[],"mappings":"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"}
|
package/dist/FlowRunner.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import * as Clock from "effect/Clock";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Ref from "effect/Ref";
|
|
4
5
|
import { CliConnectorConfig, defaultReasoningConfig } from "@llm4ts/core/ConnectorConfig";
|
|
5
6
|
import { LlmJudgmentConfig, makeLlmJudgment } from "@llm4ts/core/judgment/LlmJudgment";
|
|
6
7
|
import { makeTypeSafeJudgment } from "@llm4ts/core/judgment/TypeSafeJudgment";
|
|
@@ -15,7 +16,7 @@ import { bridgeModelProblem, defaultReadPiModelsJson, geminiBridgePort, resolveB
|
|
|
15
16
|
import { appendCostRecord, checkCostBudget, CostLedgerFileName, makeCostRecord } from "@llm4ts/flow/CostLedger";
|
|
16
17
|
import { estimatedUsageOptionsFromEnv, makeEstimatedUsageMeter } from "@llm4ts/flow/EstimatedUsage";
|
|
17
18
|
import { FlowLlmError, RosterInvalid, describeFlowError } from "@llm4ts/flow/FlowError";
|
|
18
|
-
import { defaultDrainTimeout, FlowEvents, FlowEventsValues, Info, TokensUsed, makeFlowEventHub } from "@llm4ts/flow/FlowEvents";
|
|
19
|
+
import { defaultDrainTimeout, FlowEvents, FlowEventsValues, Info, TokensUsed, makeFlowEventHub, withLane } from "@llm4ts/flow/FlowEvents";
|
|
19
20
|
import { FlowContext } from "@llm4ts/flow/FlowContext";
|
|
20
21
|
import { makeFlowRecorder } from "@llm4ts/flow/FlowRecorder";
|
|
21
22
|
import { makeJudgmentLog } from "@llm4ts/flow/JudgmentLog";
|
|
@@ -190,13 +191,13 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
190
191
|
const judgment = yield* judgmentFor(judgmentSeat, options.judgment ?? reasoning, environment);
|
|
191
192
|
return { coder, reasoning: reasoningService, reviewers, judgment };
|
|
192
193
|
});
|
|
193
|
-
const contextAt = (workDir, seats, rebind) => FlowContext.of({
|
|
194
|
+
const contextAt = (workDir, seats, rebind, laneEvents = events) => FlowContext.of({
|
|
194
195
|
reasoning: seats.reasoning,
|
|
195
196
|
coder: seats.coder,
|
|
196
197
|
judgment: seats.judgment,
|
|
197
|
-
git: makeGitTool(dependencies.process, workDir,
|
|
198
|
-
hosting: makeGitHubTool(dependencies.process, workDir,
|
|
199
|
-
events,
|
|
198
|
+
git: makeGitTool(dependencies.process, workDir, laneEvents),
|
|
199
|
+
hosting: makeGitHubTool(dependencies.process, workDir, laneEvents),
|
|
200
|
+
events: laneEvents,
|
|
200
201
|
reviewers: seats.reviewers,
|
|
201
202
|
coderCapabilities: seats.coder.capabilities,
|
|
202
203
|
userPrompt: options.userPrompt,
|
|
@@ -206,7 +207,9 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
206
207
|
// `contextFor` of its own — nothing in the design nests worktrees.
|
|
207
208
|
...(rebind
|
|
208
209
|
? {
|
|
209
|
-
contextFor: (directory) => Effect.map(seatsFor(directory), (rebound) => contextAt(directory, rebound, false
|
|
210
|
+
contextFor: (directory, contextOptions) => Effect.map(seatsFor(directory), (rebound) => contextAt(directory, rebound, false, contextOptions?.label === undefined
|
|
211
|
+
? events
|
|
212
|
+
: withLane(events, { lane: contextOptions.label, workDir: directory })))
|
|
210
213
|
}
|
|
211
214
|
: {})
|
|
212
215
|
});
|
|
@@ -300,9 +303,9 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
300
303
|
? result.success.capabilities
|
|
301
304
|
: ConnectorCapabilitiesClass.make({}));
|
|
302
305
|
});
|
|
303
|
-
const viewFor = (held, workDir, label) => ({
|
|
306
|
+
const viewFor = (held, workDir, label, laneEvents) => ({
|
|
304
307
|
forRole: (role) => rosterSeat(roster, source, role, workDir, {
|
|
305
|
-
events,
|
|
308
|
+
events: laneEvents,
|
|
306
309
|
avoid: Effect.map(held.executor, (id) => (id === undefined ? [] : [id])),
|
|
307
310
|
borrow: held.lease,
|
|
308
311
|
label
|
|
@@ -312,8 +315,8 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
312
315
|
executor: held.executor,
|
|
313
316
|
history: held.history
|
|
314
317
|
});
|
|
315
|
-
const contextIn = (workDir, held, label, rebind) => Effect.gen(function* () {
|
|
316
|
-
const view = viewFor(held, workDir, label);
|
|
318
|
+
const contextIn = (workDir, held, label, rebind, laneEvents) => Effect.gen(function* () {
|
|
319
|
+
const view = viewFor(held, workDir, label, laneEvents);
|
|
317
320
|
const judgmentSeat = options.judgment === undefined
|
|
318
321
|
? view.forRole("judge")
|
|
319
322
|
: yield* resolveSeat(prepareConnector(bridged(options.judgment), workDir, runEnvironment)).pipe(ScopeModule.provide(runScope));
|
|
@@ -322,9 +325,9 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
322
325
|
reasoning: view.forRole(rebind ? "planner" : "reviewer"),
|
|
323
326
|
coder: held.service,
|
|
324
327
|
judgment,
|
|
325
|
-
git: makeGitTool(dependencies.process, workDir,
|
|
326
|
-
hosting: makeGitHubTool(dependencies.process, workDir,
|
|
327
|
-
events,
|
|
328
|
+
git: makeGitTool(dependencies.process, workDir, laneEvents),
|
|
329
|
+
hosting: makeGitHubTool(dependencies.process, workDir, laneEvents),
|
|
330
|
+
events: laneEvents,
|
|
328
331
|
reviewers: [view.forRole("reviewer")],
|
|
329
332
|
coderCapabilities: yield* coderCapabilities(workDir, held),
|
|
330
333
|
userPrompt: options.userPrompt,
|
|
@@ -335,15 +338,24 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
335
338
|
? {
|
|
336
339
|
contextFor: (directory, contextOptions) => Effect.gen(function* () {
|
|
337
340
|
const label = contextOptions?.label ?? directory;
|
|
341
|
+
// The lane's executor is read at every event, so a
|
|
342
|
+
// handover shows on the next line it prints.
|
|
343
|
+
const executorRef = yield* Ref.make(Effect.succeed(undefined));
|
|
344
|
+
const laneEvents = withLane(events, {
|
|
345
|
+
lane: label,
|
|
346
|
+
executor: Effect.flatten(Ref.get(executorRef)),
|
|
347
|
+
workDir: directory
|
|
348
|
+
});
|
|
338
349
|
const storyCoder = yield* makeHeldCoder(roster, source, directory, {
|
|
339
|
-
events,
|
|
350
|
+
events: laneEvents,
|
|
340
351
|
eager: true,
|
|
341
352
|
label,
|
|
342
353
|
...(contextOptions?.prefer === undefined
|
|
343
354
|
? {}
|
|
344
355
|
: { prefer: contextOptions.prefer })
|
|
345
356
|
});
|
|
346
|
-
|
|
357
|
+
yield* Ref.set(executorRef, storyCoder.executor);
|
|
358
|
+
return yield* contextIn(directory, storyCoder, label, false, laneEvents);
|
|
347
359
|
})
|
|
348
360
|
}
|
|
349
361
|
: {})
|
|
@@ -354,7 +366,7 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
354
366
|
eager: false,
|
|
355
367
|
label: "the run"
|
|
356
368
|
});
|
|
357
|
-
return yield* contextIn(options.workDir, rootCoder, "the run", true);
|
|
369
|
+
return yield* contextIn(options.workDir, rootCoder, "the run", true, events);
|
|
358
370
|
});
|
|
359
371
|
const rosterDocument = options.roster === "none"
|
|
360
372
|
? undefined
|
package/dist/FlowRunner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowRunner.js","sourceRoot":"","sources":["../src/FlowRunner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FlowRunner.js","sourceRoot":"","sources":["../src/FlowRunner.ts"],"names":[],"mappings":"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"}
|
package/dist/Terminal.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export interface TerminalPalette {
|
|
|
19
19
|
readonly assistant: (text: string) => string;
|
|
20
20
|
readonly toolCall: (tool: string, args: string) => string;
|
|
21
21
|
readonly status: (frame: string, label: string) => string;
|
|
22
|
+
/** A lane's tag, in the lane's own colour (`index` picks it). */
|
|
23
|
+
readonly lane: (index: number, text: string) => string;
|
|
22
24
|
}
|
|
23
25
|
export declare const makeTerminalPalette: (enabled: boolean) => TerminalPalette;
|
|
24
26
|
export declare const formatDurationMs: (milliseconds: number) => string;
|
|
@@ -35,10 +37,13 @@ export interface TerminalSurface {
|
|
|
35
37
|
export declare const makePlainTerminalSurface: (write?: (line: string) => void) => TerminalSurface;
|
|
36
38
|
export interface TerminalOutput {
|
|
37
39
|
readonly isTTY?: boolean;
|
|
40
|
+
readonly columns?: number;
|
|
38
41
|
readonly write: (text: string) => unknown;
|
|
39
42
|
}
|
|
43
|
+
/** Cuts a plain status line to the terminal's width, so a wrapped line never breaks the redraw. */
|
|
44
|
+
export declare const fitToWidth: (line: string, columns: number | undefined) => string;
|
|
40
45
|
export declare const terminalSupportsColor: (output: TerminalOutput, environment: Readonly<Record<string, string | undefined>>) => boolean;
|
|
41
|
-
export declare const makeLiveTerminalSurface: (write?: ((text: string) => void) | undefined, palette?: TerminalPalette | undefined, tick?: Duration.Input | undefined) => Effect.Effect<TerminalSurface, never, Scope.Scope>;
|
|
46
|
+
export declare const makeLiveTerminalSurface: (write?: ((text: string) => void) | undefined, palette?: TerminalPalette | undefined, tick?: Duration.Input | undefined, columns?: (() => number | undefined) | undefined) => Effect.Effect<TerminalSurface, never, Scope.Scope>;
|
|
42
47
|
export declare const makeTerminalSurface: (environment?: Readonly<Record<string, string | undefined>>, output?: TerminalOutput) => Effect.Effect<TerminalSurface, never, Scope.Scope>;
|
|
43
48
|
export interface TerminalRunStats {
|
|
44
49
|
readonly stagesCompleted: number;
|
|
@@ -52,5 +57,26 @@ export interface TerminalConsumer {
|
|
|
52
57
|
export interface TerminalConsumerOptions {
|
|
53
58
|
readonly timestamps?: boolean;
|
|
54
59
|
}
|
|
60
|
+
/** The lane an event belongs to (a concurrent story), if it carries one. */
|
|
61
|
+
export declare const laneOfEvent: (event: FlowEvent) => {
|
|
62
|
+
readonly lane: string;
|
|
63
|
+
readonly executor?: string;
|
|
64
|
+
} | undefined;
|
|
65
|
+
/** `bonifici-list · lemonade-deepseek` — how a lane is named on screen. */
|
|
66
|
+
export declare const laneLabel: (lane: string, executor: string | undefined) => string;
|
|
67
|
+
/**
|
|
68
|
+
* Whether a laned event is printed as its own line. With several stories
|
|
69
|
+
* running, tool calls are counted on each story's status row instead;
|
|
70
|
+
* `Verbose` prints them all, tagged.
|
|
71
|
+
*/
|
|
72
|
+
export declare const rendersLanedEvent: (verbosity: Verbosity, event: FlowEvent) => boolean;
|
|
73
|
+
/** One status row per active lane, the run's own stage (if any) first. */
|
|
74
|
+
export declare const statusBlock: (globalStage: string | undefined, lanes: ReadonlyArray<{
|
|
75
|
+
readonly lane: string;
|
|
76
|
+
readonly executor: string | undefined;
|
|
77
|
+
readonly stage: string | undefined;
|
|
78
|
+
readonly elapsedMs: number;
|
|
79
|
+
readonly tools: number;
|
|
80
|
+
}>) => string | undefined;
|
|
55
81
|
export declare const consumeTerminalEvents: (events: FlowEventHub, surface: TerminalSurface, verbosity?: "Quiet" | "Normal" | "Verbose" | "Debug" | undefined, options?: TerminalConsumerOptions | undefined) => Effect.Effect<TerminalConsumer, never, Scope.Scope>;
|
|
56
82
|
//# sourceMappingURL=Terminal.d.ts.map
|
package/dist/Terminal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Terminal.d.ts","sourceRoot":"","sources":["../src/Terminal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,YAAY,CAAA;AAEjC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE1F,eAAO,MAAM,SAAS,mEAA2D,CAAA;AACjF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,GAAG,SAAS,KAAG,SAW1D,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,WAAW,SAAS,EAAE,OAAO,SAAS,KAAG,OAiBrE,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,MAsC5C,CAAA;
|
|
1
|
+
{"version":3,"file":"Terminal.d.ts","sourceRoot":"","sources":["../src/Terminal.ts"],"names":[],"mappings":"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"}
|
package/dist/Terminal.js
CHANGED
|
@@ -77,12 +77,18 @@ export const terminalSafe = (value) => {
|
|
|
77
77
|
};
|
|
78
78
|
const Ansi = Object.freeze({
|
|
79
79
|
reset: "\u001b[0m",
|
|
80
|
+
cyan: "\u001b[36m",
|
|
81
|
+
blue: "\u001b[34m",
|
|
82
|
+
magenta: "\u001b[35m",
|
|
83
|
+
yellow: "\u001b[33m",
|
|
84
|
+
greenBold: "\u001b[1;32m",
|
|
80
85
|
boldMagenta: "\u001b[1;35m",
|
|
81
86
|
green: "\u001b[32m",
|
|
82
87
|
red: "\u001b[31m",
|
|
83
88
|
yellowBold: "\u001b[1;33m",
|
|
84
89
|
darkGray: "\u001b[90m"
|
|
85
90
|
});
|
|
91
|
+
const laneColours = [Ansi.cyan, Ansi.yellow, Ansi.blue, Ansi.greenBold, Ansi.magenta];
|
|
86
92
|
export const makeTerminalPalette = (enabled) => {
|
|
87
93
|
const paint = (code, text) => enabled ? `${code}${text}${Ansi.reset}` : text;
|
|
88
94
|
return {
|
|
@@ -97,7 +103,8 @@ export const makeTerminalPalette = (enabled) => {
|
|
|
97
103
|
const head = paint(Ansi.yellowBold, `● ${tool}`);
|
|
98
104
|
return args.length === 0 ? head : `${head} ${paint(Ansi.darkGray, `(${args})`)}`;
|
|
99
105
|
},
|
|
100
|
-
status: (frame, label) => `${paint(Ansi.boldMagenta, frame)} ${label}
|
|
106
|
+
status: (frame, label) => `${paint(Ansi.boldMagenta, frame)} ${label}`,
|
|
107
|
+
lane: (index, text) => paint(laneColours[index % laneColours.length] ?? Ansi.cyan, text)
|
|
101
108
|
};
|
|
102
109
|
};
|
|
103
110
|
export const formatDurationMs = (milliseconds) => {
|
|
@@ -172,15 +179,23 @@ export const makePlainTerminalSurface = (write = (line) => process.stdout.write(
|
|
|
172
179
|
});
|
|
173
180
|
const spinnerFrames = Object.freeze(["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]);
|
|
174
181
|
const clearLine = "\r\u001b[2K";
|
|
182
|
+
/** Cuts a plain status line to the terminal's width, so a wrapped line never breaks the redraw. */
|
|
183
|
+
export const fitToWidth = (line, columns) => columns === undefined || columns < 8 || line.length <= columns - 2
|
|
184
|
+
? line
|
|
185
|
+
: `${line.slice(0, columns - 3)}…`;
|
|
175
186
|
export const terminalSupportsColor = (output, environment) => output.isTTY === true && environment.NO_COLOR === undefined;
|
|
176
187
|
export const makeLiveTerminalSurface = Effect.fn("@llm4ts/runner/Terminal.makeLive")(function* (write = (text) => {
|
|
177
188
|
process.stdout.write(text);
|
|
178
|
-
}, palette = makeTerminalPalette(true), tick = "100 millis") {
|
|
189
|
+
}, palette = makeTerminalPalette(true), tick = "100 millis", columns = () => process.stdout.columns) {
|
|
179
190
|
const lock = yield* Semaphore.make(1);
|
|
180
191
|
const status = yield* Ref.make(undefined);
|
|
181
192
|
const frame = yield* Ref.make(0);
|
|
182
193
|
const suspended = yield* Ref.make(false);
|
|
194
|
+
// How many lines the status block took when last drawn: a multi-line
|
|
195
|
+
// block (one row per concurrent story) is cleared line by line upwards.
|
|
196
|
+
const drawn = yield* Ref.make(0);
|
|
183
197
|
const emit = (text) => Effect.sync(() => write(text));
|
|
198
|
+
const clearStatus = Effect.flatMap(Ref.getAndSet(drawn, 0), (lines) => emit(lines <= 1 ? clearLine : `${clearLine}${`\u001b[1A${clearLine}`.repeat(lines - 1)}`));
|
|
184
199
|
const drawStatus = Effect.gen(function* () {
|
|
185
200
|
if (yield* Ref.get(suspended)) {
|
|
186
201
|
return;
|
|
@@ -188,19 +203,24 @@ export const makeLiveTerminalSurface = Effect.fn("@llm4ts/runner/Terminal.makeLi
|
|
|
188
203
|
const label = yield* Ref.get(status);
|
|
189
204
|
if (label !== undefined) {
|
|
190
205
|
const currentFrame = yield* Ref.get(frame);
|
|
191
|
-
|
|
206
|
+
const width = columns();
|
|
207
|
+
const rows = label.split("\n");
|
|
208
|
+
yield* emit(rows
|
|
209
|
+
.map((row, index) => palette.status(index === 0 ? (spinnerFrames[currentFrame % spinnerFrames.length] ?? "·") : " ", fitToWidth(row, width === undefined ? undefined : width - 2)))
|
|
210
|
+
.join("\n"));
|
|
211
|
+
yield* Ref.set(drawn, rows.length);
|
|
192
212
|
}
|
|
193
213
|
});
|
|
194
214
|
const surface = {
|
|
195
215
|
palette,
|
|
196
|
-
log: (line) => lock.withPermit(
|
|
197
|
-
setStatus: (label) => lock.withPermit(Ref.set(status, label)
|
|
216
|
+
log: (line) => lock.withPermit(clearStatus.pipe(Effect.andThen(emit(`${line}\n`)), Effect.andThen(drawStatus))),
|
|
217
|
+
setStatus: (label) => lock.withPermit(clearStatus.pipe(Effect.andThen(Ref.set(status, label)), Effect.andThen(drawStatus))),
|
|
198
218
|
suspend: (effect) => lock
|
|
199
|
-
.withPermit(Ref.set(suspended, true).pipe(Effect.andThen(
|
|
219
|
+
.withPermit(Ref.set(suspended, true).pipe(Effect.andThen(clearStatus)))
|
|
200
220
|
.pipe(Effect.andThen(effect), Effect.ensuring(lock.withPermit(Ref.set(suspended, false).pipe(Effect.andThen(drawStatus)))))
|
|
201
221
|
};
|
|
202
|
-
yield* Effect.sleep(tick).pipe(Effect.andThen(Ref.update(frame, (current) => current + 1)), Effect.andThen(lock.withPermit(drawStatus)), Effect.forever, Effect.forkScoped);
|
|
203
|
-
yield* Effect.addFinalizer(() => lock.withPermit(
|
|
222
|
+
yield* Effect.sleep(tick).pipe(Effect.andThen(Ref.update(frame, (current) => current + 1)), Effect.andThen(lock.withPermit(clearStatus.pipe(Effect.andThen(drawStatus)))), Effect.forever, Effect.forkScoped);
|
|
223
|
+
yield* Effect.addFinalizer(() => lock.withPermit(clearStatus));
|
|
204
224
|
return surface;
|
|
205
225
|
});
|
|
206
226
|
export const makeTerminalSurface = (environment = process.env, output = process.stdout) => {
|
|
@@ -208,12 +228,54 @@ export const makeTerminalSurface = (environment = process.env, output = process.
|
|
|
208
228
|
output.write(text);
|
|
209
229
|
};
|
|
210
230
|
return terminalSupportsColor(output, environment)
|
|
211
|
-
? makeLiveTerminalSurface(write)
|
|
231
|
+
? makeLiveTerminalSurface(write, makeTerminalPalette(true), "100 millis", () => output.columns)
|
|
212
232
|
: Effect.succeed(makePlainTerminalSurface((line) => write(`${line}\n`)));
|
|
213
233
|
};
|
|
234
|
+
/** The lane an event belongs to (a concurrent story), if it carries one. */
|
|
235
|
+
export const laneOfEvent = (event) => {
|
|
236
|
+
switch (event._tag) {
|
|
237
|
+
case "StageStarted":
|
|
238
|
+
case "StageCompleted":
|
|
239
|
+
case "StageFailed":
|
|
240
|
+
case "Info":
|
|
241
|
+
case "ToolUse":
|
|
242
|
+
case "AssistantMessage":
|
|
243
|
+
case "TokensUsed":
|
|
244
|
+
return event.lane === undefined
|
|
245
|
+
? undefined
|
|
246
|
+
: {
|
|
247
|
+
lane: event.lane,
|
|
248
|
+
...(event.executor === undefined ? {} : { executor: event.executor })
|
|
249
|
+
};
|
|
250
|
+
default:
|
|
251
|
+
return undefined;
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
/** `bonifici-list · lemonade-deepseek` — how a lane is named on screen. */
|
|
255
|
+
export const laneLabel = (lane, executor) => executor === undefined ? lane : `${lane} · ${executor}`;
|
|
256
|
+
/**
|
|
257
|
+
* Whether a laned event is printed as its own line. With several stories
|
|
258
|
+
* running, tool calls are counted on each story's status row instead;
|
|
259
|
+
* `Verbose` prints them all, tagged.
|
|
260
|
+
*/
|
|
261
|
+
export const rendersLanedEvent = (verbosity, event) => event._tag === "ToolUse"
|
|
262
|
+
? verbosity === "Verbose" || verbosity === "Debug"
|
|
263
|
+
: rendersEvent(verbosity, event);
|
|
264
|
+
/** One status row per active lane, the run's own stage (if any) first. */
|
|
265
|
+
export const statusBlock = (globalStage, lanes) => {
|
|
266
|
+
const rows = lanes
|
|
267
|
+
.filter((lane) => lane.stage !== undefined)
|
|
268
|
+
.map((lane) => `${laneLabel(lane.lane, lane.executor)} · ${lane.stage ?? ""} · ${formatDurationMs(lane.elapsedMs)}${lane.tools === 0 ? "" : ` · ${lane.tools} tool call${lane.tools === 1 ? "" : "s"}`}`);
|
|
269
|
+
const block = [...(globalStage === undefined ? [] : [globalStage]), ...rows];
|
|
270
|
+
return block.length === 0 ? undefined : block.join("\n");
|
|
271
|
+
};
|
|
214
272
|
export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume")(function* (events, surface, verbosity = "Normal", options = {}) {
|
|
215
273
|
const depth = yield* Ref.make(0);
|
|
216
274
|
const stages = yield* Ref.make([]);
|
|
275
|
+
// Concurrent stories keep their own stage stacks: one shared stack
|
|
276
|
+
// interleaves their stages, closes the wrong one, and shows whichever
|
|
277
|
+
// story started last as the only thing running.
|
|
278
|
+
const lanes = new Map();
|
|
217
279
|
const consumed = yield* Ref.make(0);
|
|
218
280
|
const statsRef = yield* Ref.make({ stagesCompleted: 0, stagesFailed: 0 });
|
|
219
281
|
const subscription = yield* events.subscribe;
|
|
@@ -221,7 +283,83 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
221
283
|
const timestampPrefix = options.timestamps === true
|
|
222
284
|
? Clock.currentTimeMillis.pipe(Effect.map((now) => `${palette.dim(new Date(now).toISOString().slice(11, 19))} `))
|
|
223
285
|
: Effect.succeed("");
|
|
286
|
+
const refreshStatus = Effect.gen(function* () {
|
|
287
|
+
const now = yield* Clock.currentTimeMillis;
|
|
288
|
+
const global = (yield* Ref.get(stages)).at(-1)?.name;
|
|
289
|
+
yield* surface.setStatus(statusBlock(global, [...lanes.entries()].map(([lane, state]) => ({
|
|
290
|
+
lane,
|
|
291
|
+
executor: state.executor,
|
|
292
|
+
stage: state.stages.at(-1)?.name,
|
|
293
|
+
elapsedMs: now - state.startedAt,
|
|
294
|
+
tools: state.tools
|
|
295
|
+
}))));
|
|
296
|
+
});
|
|
297
|
+
const countStage = (event) => event._tag === "StageCompleted"
|
|
298
|
+
? Ref.update(statsRef, (current) => ({
|
|
299
|
+
...current,
|
|
300
|
+
stagesCompleted: current.stagesCompleted + 1
|
|
301
|
+
}))
|
|
302
|
+
: event._tag === "StageFailed"
|
|
303
|
+
? Ref.update(statsRef, (current) => ({
|
|
304
|
+
...current,
|
|
305
|
+
stagesFailed: current.stagesFailed + 1
|
|
306
|
+
}))
|
|
307
|
+
: Effect.void;
|
|
308
|
+
const withDuration = (event, line, closed) => Effect.gen(function* () {
|
|
309
|
+
if (closed === undefined ||
|
|
310
|
+
(event._tag !== "StageCompleted" && event._tag !== "StageFailed")) {
|
|
311
|
+
return line;
|
|
312
|
+
}
|
|
313
|
+
const now = yield* Clock.currentTimeMillis;
|
|
314
|
+
return `${line} ${palette.dim(`(${formatDurationMs(now - closed.startedAt)})`)}`;
|
|
315
|
+
});
|
|
224
316
|
yield* Stream.fromSubscription(subscription).pipe(Stream.runForEach((event) => Effect.gen(function* () {
|
|
317
|
+
const tagged = laneOfEvent(event);
|
|
318
|
+
if (tagged !== undefined) {
|
|
319
|
+
const now = yield* Clock.currentTimeMillis;
|
|
320
|
+
const state = lanes.get(tagged.lane) ??
|
|
321
|
+
{
|
|
322
|
+
index: lanes.size,
|
|
323
|
+
depth: 0,
|
|
324
|
+
stages: [],
|
|
325
|
+
tools: 0,
|
|
326
|
+
executor: undefined,
|
|
327
|
+
startedAt: now
|
|
328
|
+
};
|
|
329
|
+
lanes.set(tagged.lane, state);
|
|
330
|
+
if (tagged.executor !== undefined) {
|
|
331
|
+
state.executor = tagged.executor;
|
|
332
|
+
}
|
|
333
|
+
let closed;
|
|
334
|
+
if (closesChild(event)) {
|
|
335
|
+
state.depth = Math.max(0, state.depth - 1);
|
|
336
|
+
}
|
|
337
|
+
const lineDepth = state.depth;
|
|
338
|
+
if (event._tag === "StageStarted") {
|
|
339
|
+
state.depth += 1;
|
|
340
|
+
state.stages = [...state.stages, { name: terminalSafe(event.stage), startedAt: now }];
|
|
341
|
+
}
|
|
342
|
+
else if (closesChild(event)) {
|
|
343
|
+
closed = state.stages.at(-1);
|
|
344
|
+
state.stages = state.stages.slice(0, -1);
|
|
345
|
+
yield* countStage(event);
|
|
346
|
+
}
|
|
347
|
+
else if (event._tag === "ToolUse") {
|
|
348
|
+
state.tools += 1;
|
|
349
|
+
}
|
|
350
|
+
if (state.stages.length === 0 && closesChild(event)) {
|
|
351
|
+
lanes.delete(tagged.lane);
|
|
352
|
+
}
|
|
353
|
+
if (rendersLanedEvent(verbosity, event)) {
|
|
354
|
+
const tag = palette.lane(state.index, `[${laneLabel(tagged.lane, state.executor)}]`);
|
|
355
|
+
const line = yield* withDuration(event, terminalLine(event, palette), closed);
|
|
356
|
+
const prefix = yield* timestampPrefix;
|
|
357
|
+
yield* surface.log(`${prefix}${tag} ${indentBlock(lineDepth, line)}`);
|
|
358
|
+
}
|
|
359
|
+
yield* refreshStatus;
|
|
360
|
+
yield* Ref.update(consumed, (count) => count + 1);
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
225
363
|
const currentDepth = closesChild(event)
|
|
226
364
|
? yield* Ref.updateAndGet(depth, (value) => Math.max(0, value - 1))
|
|
227
365
|
: yield* Ref.get(depth);
|
|
@@ -231,32 +369,16 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
231
369
|
const active = terminalSafe(event.stage);
|
|
232
370
|
const startedAt = yield* Clock.currentTimeMillis;
|
|
233
371
|
yield* Ref.update(stages, (current) => [...current, { name: active, startedAt }]);
|
|
234
|
-
yield*
|
|
372
|
+
yield* refreshStatus;
|
|
235
373
|
}
|
|
236
374
|
else if (closesChild(event)) {
|
|
237
375
|
closedStage = (yield* Ref.get(stages)).at(-1);
|
|
238
|
-
|
|
239
|
-
yield*
|
|
240
|
-
|
|
241
|
-
yield* Ref.update(statsRef, (current) => ({
|
|
242
|
-
...current,
|
|
243
|
-
stagesCompleted: current.stagesCompleted + 1
|
|
244
|
-
}));
|
|
245
|
-
}
|
|
246
|
-
else if (event._tag === "StageFailed") {
|
|
247
|
-
yield* Ref.update(statsRef, (current) => ({
|
|
248
|
-
...current,
|
|
249
|
-
stagesFailed: current.stagesFailed + 1
|
|
250
|
-
}));
|
|
251
|
-
}
|
|
376
|
+
yield* Ref.update(stages, (current) => current.slice(0, -1));
|
|
377
|
+
yield* refreshStatus;
|
|
378
|
+
yield* countStage(event);
|
|
252
379
|
}
|
|
253
380
|
if (rendersEvent(verbosity, event)) {
|
|
254
|
-
|
|
255
|
-
if (closedStage !== undefined &&
|
|
256
|
-
(event._tag === "StageCompleted" || event._tag === "StageFailed")) {
|
|
257
|
-
const now = yield* Clock.currentTimeMillis;
|
|
258
|
-
line = `${line} ${palette.dim(`(${formatDurationMs(now - closedStage.startedAt)})`)}`;
|
|
259
|
-
}
|
|
381
|
+
const line = yield* withDuration(event, terminalLine(event, palette), closedStage);
|
|
260
382
|
const prefix = yield* timestampPrefix;
|
|
261
383
|
yield* surface.log(`${prefix}${indentBlock(currentDepth, line)}`);
|
|
262
384
|
}
|
package/dist/Terminal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../src/Terminal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../src/Terminal.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llm4ts/runner",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.2",
|
|
4
4
|
"description": "Node runner, CLI, terminal, and MCP composition for llm4ts",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -63,8 +63,8 @@
|
|
|
63
63
|
"typescript"
|
|
64
64
|
],
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@llm4ts/core": "2.9.
|
|
67
|
-
"@llm4ts/flow": "2.9.
|
|
66
|
+
"@llm4ts/core": "2.9.2",
|
|
67
|
+
"@llm4ts/flow": "2.9.2"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
70
|
"effect": "4.0.0-rc.115"
|
package/src/FlowRunner.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { join } from "node:path"
|
|
2
2
|
import * as Clock from "effect/Clock"
|
|
3
3
|
import * as Effect from "effect/Effect"
|
|
4
|
+
import * as Ref from "effect/Ref"
|
|
4
5
|
import type * as Scope from "effect/Scope"
|
|
5
6
|
import type { ConnectorConfig } from "@llm4ts/core/ConnectorConfig"
|
|
6
7
|
import { CliConnectorConfig, defaultReasoningConfig } from "@llm4ts/core/ConnectorConfig"
|
|
@@ -49,7 +50,9 @@ import {
|
|
|
49
50
|
Info,
|
|
50
51
|
TokensUsed,
|
|
51
52
|
makeFlowEventHub,
|
|
52
|
-
|
|
53
|
+
withLane,
|
|
54
|
+
type FlowEventHub,
|
|
55
|
+
type FlowEventsShape
|
|
53
56
|
} from "@llm4ts/flow/FlowEvents"
|
|
54
57
|
import { FlowContext, type ContextOptions, type FlowContextShape } from "@llm4ts/flow/FlowContext"
|
|
55
58
|
import { makeFlowRecorder } from "@llm4ts/flow/FlowRecorder"
|
|
@@ -444,15 +447,16 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
444
447
|
readonly reviewers: ReadonlyArray<LlmServiceShape>
|
|
445
448
|
readonly judgment: JudgmentShape
|
|
446
449
|
},
|
|
447
|
-
rebind: boolean
|
|
450
|
+
rebind: boolean,
|
|
451
|
+
laneEvents: FlowEventsShape = events
|
|
448
452
|
): FlowContextShape =>
|
|
449
453
|
FlowContext.of({
|
|
450
454
|
reasoning: seats.reasoning,
|
|
451
455
|
coder: seats.coder,
|
|
452
456
|
judgment: seats.judgment,
|
|
453
|
-
git: makeGitTool(dependencies.process, workDir,
|
|
454
|
-
hosting: makeGitHubTool(dependencies.process, workDir,
|
|
455
|
-
events,
|
|
457
|
+
git: makeGitTool(dependencies.process, workDir, laneEvents),
|
|
458
|
+
hosting: makeGitHubTool(dependencies.process, workDir, laneEvents),
|
|
459
|
+
events: laneEvents,
|
|
456
460
|
reviewers: seats.reviewers,
|
|
457
461
|
coderCapabilities: seats.coder.capabilities,
|
|
458
462
|
userPrompt: options.userPrompt,
|
|
@@ -462,8 +466,17 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
462
466
|
// `contextFor` of its own — nothing in the design nests worktrees.
|
|
463
467
|
...(rebind
|
|
464
468
|
? {
|
|
465
|
-
contextFor: (directory: string) =>
|
|
466
|
-
Effect.map(seatsFor(directory), (rebound) =>
|
|
469
|
+
contextFor: (directory: string, contextOptions?: ContextOptions) =>
|
|
470
|
+
Effect.map(seatsFor(directory), (rebound) =>
|
|
471
|
+
contextAt(
|
|
472
|
+
directory,
|
|
473
|
+
rebound,
|
|
474
|
+
false,
|
|
475
|
+
contextOptions?.label === undefined
|
|
476
|
+
? events
|
|
477
|
+
: withLane(events, { lane: contextOptions.label, workDir: directory })
|
|
478
|
+
)
|
|
479
|
+
)
|
|
467
480
|
}
|
|
468
481
|
: {})
|
|
469
482
|
})
|
|
@@ -595,10 +608,15 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
595
608
|
: ConnectorCapabilitiesClass.make({})
|
|
596
609
|
)
|
|
597
610
|
})
|
|
598
|
-
const viewFor = (
|
|
611
|
+
const viewFor = (
|
|
612
|
+
held: HeldCoder,
|
|
613
|
+
workDir: string,
|
|
614
|
+
label: string,
|
|
615
|
+
laneEvents: FlowEventsShape
|
|
616
|
+
): RosterView => ({
|
|
599
617
|
forRole: (role) =>
|
|
600
618
|
rosterSeat(roster, source, role, workDir, {
|
|
601
|
-
events,
|
|
619
|
+
events: laneEvents,
|
|
602
620
|
avoid: Effect.map(held.executor, (id) => (id === undefined ? [] : [id])),
|
|
603
621
|
borrow: held.lease,
|
|
604
622
|
label
|
|
@@ -612,10 +630,11 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
612
630
|
workDir: string,
|
|
613
631
|
held: HeldCoder,
|
|
614
632
|
label: string,
|
|
615
|
-
rebind: boolean
|
|
633
|
+
rebind: boolean,
|
|
634
|
+
laneEvents: FlowEventsShape
|
|
616
635
|
): Effect.Effect<FlowContextShape, FlowError> =>
|
|
617
636
|
Effect.gen(function* () {
|
|
618
|
-
const view = viewFor(held, workDir, label)
|
|
637
|
+
const view = viewFor(held, workDir, label, laneEvents)
|
|
619
638
|
const judgmentSeat =
|
|
620
639
|
options.judgment === undefined
|
|
621
640
|
? view.forRole("judge")
|
|
@@ -627,9 +646,9 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
627
646
|
reasoning: view.forRole(rebind ? "planner" : "reviewer"),
|
|
628
647
|
coder: held.service,
|
|
629
648
|
judgment,
|
|
630
|
-
git: makeGitTool(dependencies.process, workDir,
|
|
631
|
-
hosting: makeGitHubTool(dependencies.process, workDir,
|
|
632
|
-
events,
|
|
649
|
+
git: makeGitTool(dependencies.process, workDir, laneEvents),
|
|
650
|
+
hosting: makeGitHubTool(dependencies.process, workDir, laneEvents),
|
|
651
|
+
events: laneEvents,
|
|
633
652
|
reviewers: [view.forRole("reviewer")],
|
|
634
653
|
coderCapabilities: yield* coderCapabilities(workDir, held),
|
|
635
654
|
userPrompt: options.userPrompt,
|
|
@@ -641,15 +660,26 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
641
660
|
contextFor: (directory: string, contextOptions?: ContextOptions) =>
|
|
642
661
|
Effect.gen(function* () {
|
|
643
662
|
const label = contextOptions?.label ?? directory
|
|
663
|
+
// The lane's executor is read at every event, so a
|
|
664
|
+
// handover shows on the next line it prints.
|
|
665
|
+
const executorRef = yield* Ref.make<Effect.Effect<string | undefined>>(
|
|
666
|
+
Effect.succeed(undefined)
|
|
667
|
+
)
|
|
668
|
+
const laneEvents = withLane(events, {
|
|
669
|
+
lane: label,
|
|
670
|
+
executor: Effect.flatten(Ref.get(executorRef)),
|
|
671
|
+
workDir: directory
|
|
672
|
+
})
|
|
644
673
|
const storyCoder = yield* makeHeldCoder(roster, source, directory, {
|
|
645
|
-
events,
|
|
674
|
+
events: laneEvents,
|
|
646
675
|
eager: true,
|
|
647
676
|
label,
|
|
648
677
|
...(contextOptions?.prefer === undefined
|
|
649
678
|
? {}
|
|
650
679
|
: { prefer: contextOptions.prefer })
|
|
651
680
|
})
|
|
652
|
-
|
|
681
|
+
yield* Ref.set(executorRef, storyCoder.executor)
|
|
682
|
+
return yield* contextIn(directory, storyCoder, label, false, laneEvents)
|
|
653
683
|
})
|
|
654
684
|
}
|
|
655
685
|
: {})
|
|
@@ -660,7 +690,7 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
660
690
|
eager: false,
|
|
661
691
|
label: "the run"
|
|
662
692
|
})
|
|
663
|
-
return yield* contextIn(options.workDir, rootCoder, "the run", true)
|
|
693
|
+
return yield* contextIn(options.workDir, rootCoder, "the run", true, events)
|
|
664
694
|
})
|
|
665
695
|
|
|
666
696
|
const rosterDocument =
|
package/src/Terminal.ts
CHANGED
|
@@ -85,6 +85,11 @@ export const terminalSafe = (value: string): string => {
|
|
|
85
85
|
|
|
86
86
|
const Ansi = Object.freeze({
|
|
87
87
|
reset: "\u001b[0m",
|
|
88
|
+
cyan: "\u001b[36m",
|
|
89
|
+
blue: "\u001b[34m",
|
|
90
|
+
magenta: "\u001b[35m",
|
|
91
|
+
yellow: "\u001b[33m",
|
|
92
|
+
greenBold: "\u001b[1;32m",
|
|
88
93
|
boldMagenta: "\u001b[1;35m",
|
|
89
94
|
green: "\u001b[32m",
|
|
90
95
|
red: "\u001b[31m",
|
|
@@ -102,8 +107,12 @@ export interface TerminalPalette {
|
|
|
102
107
|
readonly assistant: (text: string) => string
|
|
103
108
|
readonly toolCall: (tool: string, args: string) => string
|
|
104
109
|
readonly status: (frame: string, label: string) => string
|
|
110
|
+
/** A lane's tag, in the lane's own colour (`index` picks it). */
|
|
111
|
+
readonly lane: (index: number, text: string) => string
|
|
105
112
|
}
|
|
106
113
|
|
|
114
|
+
const laneColours = [Ansi.cyan, Ansi.yellow, Ansi.blue, Ansi.greenBold, Ansi.magenta]
|
|
115
|
+
|
|
107
116
|
export const makeTerminalPalette = (enabled: boolean): TerminalPalette => {
|
|
108
117
|
const paint = (code: string, text: string): string =>
|
|
109
118
|
enabled ? `${code}${text}${Ansi.reset}` : text
|
|
@@ -119,7 +128,8 @@ export const makeTerminalPalette = (enabled: boolean): TerminalPalette => {
|
|
|
119
128
|
const head = paint(Ansi.yellowBold, `● ${tool}`)
|
|
120
129
|
return args.length === 0 ? head : `${head} ${paint(Ansi.darkGray, `(${args})`)}`
|
|
121
130
|
},
|
|
122
|
-
status: (frame, label) => `${paint(Ansi.boldMagenta, frame)} ${label}
|
|
131
|
+
status: (frame, label) => `${paint(Ansi.boldMagenta, frame)} ${label}`,
|
|
132
|
+
lane: (index, text) => paint(laneColours[index % laneColours.length] ?? Ansi.cyan, text)
|
|
123
133
|
}
|
|
124
134
|
}
|
|
125
135
|
|
|
@@ -222,9 +232,16 @@ const clearLine = "\r\u001b[2K"
|
|
|
222
232
|
|
|
223
233
|
export interface TerminalOutput {
|
|
224
234
|
readonly isTTY?: boolean
|
|
235
|
+
readonly columns?: number
|
|
225
236
|
readonly write: (text: string) => unknown
|
|
226
237
|
}
|
|
227
238
|
|
|
239
|
+
/** Cuts a plain status line to the terminal's width, so a wrapped line never breaks the redraw. */
|
|
240
|
+
export const fitToWidth = (line: string, columns: number | undefined): string =>
|
|
241
|
+
columns === undefined || columns < 8 || line.length <= columns - 2
|
|
242
|
+
? line
|
|
243
|
+
: `${line.slice(0, columns - 3)}…`
|
|
244
|
+
|
|
228
245
|
export const terminalSupportsColor = (
|
|
229
246
|
output: TerminalOutput,
|
|
230
247
|
environment: Readonly<Record<string, string | undefined>>
|
|
@@ -235,13 +252,20 @@ export const makeLiveTerminalSurface = Effect.fn("@llm4ts/runner/Terminal.makeLi
|
|
|
235
252
|
process.stdout.write(text)
|
|
236
253
|
},
|
|
237
254
|
palette: TerminalPalette = makeTerminalPalette(true),
|
|
238
|
-
tick: Duration.Input = "100 millis"
|
|
255
|
+
tick: Duration.Input = "100 millis",
|
|
256
|
+
columns: () => number | undefined = () => process.stdout.columns
|
|
239
257
|
): Effect.fn.Return<TerminalSurface, never, Scope.Scope> {
|
|
240
258
|
const lock = yield* Semaphore.make(1)
|
|
241
259
|
const status = yield* Ref.make<string | undefined>(undefined)
|
|
242
260
|
const frame = yield* Ref.make(0)
|
|
243
261
|
const suspended = yield* Ref.make(false)
|
|
262
|
+
// How many lines the status block took when last drawn: a multi-line
|
|
263
|
+
// block (one row per concurrent story) is cleared line by line upwards.
|
|
264
|
+
const drawn = yield* Ref.make(0)
|
|
244
265
|
const emit = (text: string): Effect.Effect<void> => Effect.sync(() => write(text))
|
|
266
|
+
const clearStatus = Effect.flatMap(Ref.getAndSet(drawn, 0), (lines) =>
|
|
267
|
+
emit(lines <= 1 ? clearLine : `${clearLine}${`\u001b[1A${clearLine}`.repeat(lines - 1)}`)
|
|
268
|
+
)
|
|
245
269
|
const drawStatus = Effect.gen(function* () {
|
|
246
270
|
if (yield* Ref.get(suspended)) {
|
|
247
271
|
return
|
|
@@ -249,24 +273,34 @@ export const makeLiveTerminalSurface = Effect.fn("@llm4ts/runner/Terminal.makeLi
|
|
|
249
273
|
const label = yield* Ref.get(status)
|
|
250
274
|
if (label !== undefined) {
|
|
251
275
|
const currentFrame = yield* Ref.get(frame)
|
|
276
|
+
const width = columns()
|
|
277
|
+
const rows = label.split("\n")
|
|
252
278
|
yield* emit(
|
|
253
|
-
|
|
279
|
+
rows
|
|
280
|
+
.map((row, index) =>
|
|
281
|
+
palette.status(
|
|
282
|
+
index === 0 ? (spinnerFrames[currentFrame % spinnerFrames.length] ?? "·") : " ",
|
|
283
|
+
fitToWidth(row, width === undefined ? undefined : width - 2)
|
|
284
|
+
)
|
|
285
|
+
)
|
|
286
|
+
.join("\n")
|
|
254
287
|
)
|
|
288
|
+
yield* Ref.set(drawn, rows.length)
|
|
255
289
|
}
|
|
256
290
|
})
|
|
257
291
|
const surface: TerminalSurface = {
|
|
258
292
|
palette,
|
|
259
293
|
log: (line) =>
|
|
260
294
|
lock.withPermit(
|
|
261
|
-
|
|
295
|
+
clearStatus.pipe(Effect.andThen(emit(`${line}\n`)), Effect.andThen(drawStatus))
|
|
262
296
|
),
|
|
263
297
|
setStatus: (label) =>
|
|
264
298
|
lock.withPermit(
|
|
265
|
-
Ref.set(status, label)
|
|
299
|
+
clearStatus.pipe(Effect.andThen(Ref.set(status, label)), Effect.andThen(drawStatus))
|
|
266
300
|
),
|
|
267
301
|
suspend: (effect) =>
|
|
268
302
|
lock
|
|
269
|
-
.withPermit(Ref.set(suspended, true).pipe(Effect.andThen(
|
|
303
|
+
.withPermit(Ref.set(suspended, true).pipe(Effect.andThen(clearStatus)))
|
|
270
304
|
.pipe(
|
|
271
305
|
Effect.andThen(effect),
|
|
272
306
|
Effect.ensuring(
|
|
@@ -276,11 +310,11 @@ export const makeLiveTerminalSurface = Effect.fn("@llm4ts/runner/Terminal.makeLi
|
|
|
276
310
|
}
|
|
277
311
|
yield* Effect.sleep(tick).pipe(
|
|
278
312
|
Effect.andThen(Ref.update(frame, (current) => current + 1)),
|
|
279
|
-
Effect.andThen(lock.withPermit(drawStatus)),
|
|
313
|
+
Effect.andThen(lock.withPermit(clearStatus.pipe(Effect.andThen(drawStatus)))),
|
|
280
314
|
Effect.forever,
|
|
281
315
|
Effect.forkScoped
|
|
282
316
|
)
|
|
283
|
-
yield* Effect.addFinalizer(() => lock.withPermit(
|
|
317
|
+
yield* Effect.addFinalizer(() => lock.withPermit(clearStatus))
|
|
284
318
|
return surface
|
|
285
319
|
})
|
|
286
320
|
|
|
@@ -292,7 +326,7 @@ export const makeTerminalSurface = (
|
|
|
292
326
|
output.write(text)
|
|
293
327
|
}
|
|
294
328
|
return terminalSupportsColor(output, environment)
|
|
295
|
-
? makeLiveTerminalSurface(write)
|
|
329
|
+
? makeLiveTerminalSurface(write, makeTerminalPalette(true), "100 millis", () => output.columns)
|
|
296
330
|
: Effect.succeed(makePlainTerminalSurface((line) => write(`${line}\n`)))
|
|
297
331
|
}
|
|
298
332
|
|
|
@@ -316,6 +350,75 @@ interface OpenStage {
|
|
|
316
350
|
readonly startedAt: number
|
|
317
351
|
}
|
|
318
352
|
|
|
353
|
+
/** The lane an event belongs to (a concurrent story), if it carries one. */
|
|
354
|
+
export const laneOfEvent = (
|
|
355
|
+
event: FlowEvent
|
|
356
|
+
): { readonly lane: string; readonly executor?: string } | undefined => {
|
|
357
|
+
switch (event._tag) {
|
|
358
|
+
case "StageStarted":
|
|
359
|
+
case "StageCompleted":
|
|
360
|
+
case "StageFailed":
|
|
361
|
+
case "Info":
|
|
362
|
+
case "ToolUse":
|
|
363
|
+
case "AssistantMessage":
|
|
364
|
+
case "TokensUsed":
|
|
365
|
+
return event.lane === undefined
|
|
366
|
+
? undefined
|
|
367
|
+
: {
|
|
368
|
+
lane: event.lane,
|
|
369
|
+
...(event.executor === undefined ? {} : { executor: event.executor })
|
|
370
|
+
}
|
|
371
|
+
default:
|
|
372
|
+
return undefined
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/** `bonifici-list · lemonade-deepseek` — how a lane is named on screen. */
|
|
377
|
+
export const laneLabel = (lane: string, executor: string | undefined): string =>
|
|
378
|
+
executor === undefined ? lane : `${lane} · ${executor}`
|
|
379
|
+
|
|
380
|
+
/**
|
|
381
|
+
* Whether a laned event is printed as its own line. With several stories
|
|
382
|
+
* running, tool calls are counted on each story's status row instead;
|
|
383
|
+
* `Verbose` prints them all, tagged.
|
|
384
|
+
*/
|
|
385
|
+
export const rendersLanedEvent = (verbosity: Verbosity, event: FlowEvent): boolean =>
|
|
386
|
+
event._tag === "ToolUse"
|
|
387
|
+
? verbosity === "Verbose" || verbosity === "Debug"
|
|
388
|
+
: rendersEvent(verbosity, event)
|
|
389
|
+
|
|
390
|
+
interface LaneState {
|
|
391
|
+
readonly index: number
|
|
392
|
+
depth: number
|
|
393
|
+
stages: ReadonlyArray<OpenStage>
|
|
394
|
+
tools: number
|
|
395
|
+
executor: string | undefined
|
|
396
|
+
readonly startedAt: number
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
/** One status row per active lane, the run's own stage (if any) first. */
|
|
400
|
+
export const statusBlock = (
|
|
401
|
+
globalStage: string | undefined,
|
|
402
|
+
lanes: ReadonlyArray<{
|
|
403
|
+
readonly lane: string
|
|
404
|
+
readonly executor: string | undefined
|
|
405
|
+
readonly stage: string | undefined
|
|
406
|
+
readonly elapsedMs: number
|
|
407
|
+
readonly tools: number
|
|
408
|
+
}>
|
|
409
|
+
): string | undefined => {
|
|
410
|
+
const rows = lanes
|
|
411
|
+
.filter((lane) => lane.stage !== undefined)
|
|
412
|
+
.map(
|
|
413
|
+
(lane) =>
|
|
414
|
+
`${laneLabel(lane.lane, lane.executor)} · ${lane.stage ?? ""} · ${formatDurationMs(lane.elapsedMs)}${
|
|
415
|
+
lane.tools === 0 ? "" : ` · ${lane.tools} tool call${lane.tools === 1 ? "" : "s"}`
|
|
416
|
+
}`
|
|
417
|
+
)
|
|
418
|
+
const block = [...(globalStage === undefined ? [] : [globalStage]), ...rows]
|
|
419
|
+
return block.length === 0 ? undefined : block.join("\n")
|
|
420
|
+
}
|
|
421
|
+
|
|
319
422
|
export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume")(function* (
|
|
320
423
|
events: FlowEventHub,
|
|
321
424
|
surface: TerminalSurface,
|
|
@@ -324,6 +427,10 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
324
427
|
): Effect.fn.Return<TerminalConsumer, never, Scope.Scope> {
|
|
325
428
|
const depth = yield* Ref.make(0)
|
|
326
429
|
const stages = yield* Ref.make<ReadonlyArray<OpenStage>>([])
|
|
430
|
+
// Concurrent stories keep their own stage stacks: one shared stack
|
|
431
|
+
// interleaves their stages, closes the wrong one, and shows whichever
|
|
432
|
+
// story started last as the only thing running.
|
|
433
|
+
const lanes = new Map<string, LaneState>()
|
|
327
434
|
const consumed = yield* Ref.make(0)
|
|
328
435
|
const statsRef = yield* Ref.make<TerminalRunStats>({ stagesCompleted: 0, stagesFailed: 0 })
|
|
329
436
|
const subscription = yield* events.subscribe
|
|
@@ -334,9 +441,97 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
334
441
|
Effect.map((now) => `${palette.dim(new Date(now).toISOString().slice(11, 19))} `)
|
|
335
442
|
)
|
|
336
443
|
: Effect.succeed("")
|
|
444
|
+
|
|
445
|
+
const refreshStatus = Effect.gen(function* () {
|
|
446
|
+
const now = yield* Clock.currentTimeMillis
|
|
447
|
+
const global = (yield* Ref.get(stages)).at(-1)?.name
|
|
448
|
+
yield* surface.setStatus(
|
|
449
|
+
statusBlock(
|
|
450
|
+
global,
|
|
451
|
+
[...lanes.entries()].map(([lane, state]) => ({
|
|
452
|
+
lane,
|
|
453
|
+
executor: state.executor,
|
|
454
|
+
stage: state.stages.at(-1)?.name,
|
|
455
|
+
elapsedMs: now - state.startedAt,
|
|
456
|
+
tools: state.tools
|
|
457
|
+
}))
|
|
458
|
+
)
|
|
459
|
+
)
|
|
460
|
+
})
|
|
461
|
+
|
|
462
|
+
const countStage = (event: FlowEvent): Effect.Effect<void> =>
|
|
463
|
+
event._tag === "StageCompleted"
|
|
464
|
+
? Ref.update(statsRef, (current) => ({
|
|
465
|
+
...current,
|
|
466
|
+
stagesCompleted: current.stagesCompleted + 1
|
|
467
|
+
}))
|
|
468
|
+
: event._tag === "StageFailed"
|
|
469
|
+
? Ref.update(statsRef, (current) => ({
|
|
470
|
+
...current,
|
|
471
|
+
stagesFailed: current.stagesFailed + 1
|
|
472
|
+
}))
|
|
473
|
+
: Effect.void
|
|
474
|
+
|
|
475
|
+
const withDuration = (event: FlowEvent, line: string, closed: OpenStage | undefined) =>
|
|
476
|
+
Effect.gen(function* () {
|
|
477
|
+
if (
|
|
478
|
+
closed === undefined ||
|
|
479
|
+
(event._tag !== "StageCompleted" && event._tag !== "StageFailed")
|
|
480
|
+
) {
|
|
481
|
+
return line
|
|
482
|
+
}
|
|
483
|
+
const now = yield* Clock.currentTimeMillis
|
|
484
|
+
return `${line} ${palette.dim(`(${formatDurationMs(now - closed.startedAt)})`)}`
|
|
485
|
+
})
|
|
486
|
+
|
|
337
487
|
yield* Stream.fromSubscription(subscription).pipe(
|
|
338
488
|
Stream.runForEach((event) =>
|
|
339
489
|
Effect.gen(function* () {
|
|
490
|
+
const tagged = laneOfEvent(event)
|
|
491
|
+
if (tagged !== undefined) {
|
|
492
|
+
const now = yield* Clock.currentTimeMillis
|
|
493
|
+
const state =
|
|
494
|
+
lanes.get(tagged.lane) ??
|
|
495
|
+
({
|
|
496
|
+
index: lanes.size,
|
|
497
|
+
depth: 0,
|
|
498
|
+
stages: [],
|
|
499
|
+
tools: 0,
|
|
500
|
+
executor: undefined,
|
|
501
|
+
startedAt: now
|
|
502
|
+
} satisfies LaneState)
|
|
503
|
+
lanes.set(tagged.lane, state)
|
|
504
|
+
if (tagged.executor !== undefined) {
|
|
505
|
+
state.executor = tagged.executor
|
|
506
|
+
}
|
|
507
|
+
let closed: OpenStage | undefined
|
|
508
|
+
if (closesChild(event)) {
|
|
509
|
+
state.depth = Math.max(0, state.depth - 1)
|
|
510
|
+
}
|
|
511
|
+
const lineDepth = state.depth
|
|
512
|
+
if (event._tag === "StageStarted") {
|
|
513
|
+
state.depth += 1
|
|
514
|
+
state.stages = [...state.stages, { name: terminalSafe(event.stage), startedAt: now }]
|
|
515
|
+
} else if (closesChild(event)) {
|
|
516
|
+
closed = state.stages.at(-1)
|
|
517
|
+
state.stages = state.stages.slice(0, -1)
|
|
518
|
+
yield* countStage(event)
|
|
519
|
+
} else if (event._tag === "ToolUse") {
|
|
520
|
+
state.tools += 1
|
|
521
|
+
}
|
|
522
|
+
if (state.stages.length === 0 && closesChild(event)) {
|
|
523
|
+
lanes.delete(tagged.lane)
|
|
524
|
+
}
|
|
525
|
+
if (rendersLanedEvent(verbosity, event)) {
|
|
526
|
+
const tag = palette.lane(state.index, `[${laneLabel(tagged.lane, state.executor)}]`)
|
|
527
|
+
const line = yield* withDuration(event, terminalLine(event, palette), closed)
|
|
528
|
+
const prefix = yield* timestampPrefix
|
|
529
|
+
yield* surface.log(`${prefix}${tag} ${indentBlock(lineDepth, line)}`)
|
|
530
|
+
}
|
|
531
|
+
yield* refreshStatus
|
|
532
|
+
yield* Ref.update(consumed, (count) => count + 1)
|
|
533
|
+
return
|
|
534
|
+
}
|
|
340
535
|
const currentDepth = closesChild(event)
|
|
341
536
|
? yield* Ref.updateAndGet(depth, (value) => Math.max(0, value - 1))
|
|
342
537
|
: yield* Ref.get(depth)
|
|
@@ -346,32 +541,15 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
346
541
|
const active = terminalSafe(event.stage)
|
|
347
542
|
const startedAt = yield* Clock.currentTimeMillis
|
|
348
543
|
yield* Ref.update(stages, (current) => [...current, { name: active, startedAt }])
|
|
349
|
-
yield*
|
|
544
|
+
yield* refreshStatus
|
|
350
545
|
} else if (closesChild(event)) {
|
|
351
546
|
closedStage = (yield* Ref.get(stages)).at(-1)
|
|
352
|
-
|
|
353
|
-
yield*
|
|
354
|
-
|
|
355
|
-
yield* Ref.update(statsRef, (current) => ({
|
|
356
|
-
...current,
|
|
357
|
-
stagesCompleted: current.stagesCompleted + 1
|
|
358
|
-
}))
|
|
359
|
-
} else if (event._tag === "StageFailed") {
|
|
360
|
-
yield* Ref.update(statsRef, (current) => ({
|
|
361
|
-
...current,
|
|
362
|
-
stagesFailed: current.stagesFailed + 1
|
|
363
|
-
}))
|
|
364
|
-
}
|
|
547
|
+
yield* Ref.update(stages, (current) => current.slice(0, -1))
|
|
548
|
+
yield* refreshStatus
|
|
549
|
+
yield* countStage(event)
|
|
365
550
|
}
|
|
366
551
|
if (rendersEvent(verbosity, event)) {
|
|
367
|
-
|
|
368
|
-
if (
|
|
369
|
-
closedStage !== undefined &&
|
|
370
|
-
(event._tag === "StageCompleted" || event._tag === "StageFailed")
|
|
371
|
-
) {
|
|
372
|
-
const now = yield* Clock.currentTimeMillis
|
|
373
|
-
line = `${line} ${palette.dim(`(${formatDurationMs(now - closedStage.startedAt)})`)}`
|
|
374
|
-
}
|
|
552
|
+
const line = yield* withDuration(event, terminalLine(event, palette), closedStage)
|
|
375
553
|
const prefix = yield* timestampPrefix
|
|
376
554
|
yield* surface.log(`${prefix}${indentBlock(currentDepth, line)}`)
|
|
377
555
|
}
|