@llm4ts/runner 2.9.2 → 2.9.3
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/Terminal.d.ts +20 -1
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +80 -9
- package/dist/Terminal.js.map +1 -1
- package/package.json +3 -3
- package/src/Terminal.ts +110 -13
package/dist/Terminal.d.ts
CHANGED
|
@@ -70,6 +70,23 @@ export declare const laneLabel: (lane: string, executor: string | undefined) =>
|
|
|
70
70
|
* `Verbose` prints them all, tagged.
|
|
71
71
|
*/
|
|
72
72
|
export declare const rendersLanedEvent: (verbosity: Verbosity, event: FlowEvent) => boolean;
|
|
73
|
+
/** Tokens in and out so far; `estimated` once any report was an estimate. */
|
|
74
|
+
export interface TokenTally {
|
|
75
|
+
input: number;
|
|
76
|
+
output: number;
|
|
77
|
+
estimated: boolean;
|
|
78
|
+
}
|
|
79
|
+
/** 950 → "950", 12_400 → "12.4k", 1_250_000 → "1.3M". */
|
|
80
|
+
export declare const formatCount: (value: number) => string;
|
|
81
|
+
/** `3.5k tokens` (in and out together), `~` when estimated; empty before any report. */
|
|
82
|
+
export declare const formatTally: (tally: TokenTally | undefined) => string;
|
|
83
|
+
/** How long after a tool call a lane still reads as "Running <tool>…". */
|
|
84
|
+
export declare const toolActivityWindowMs = 15000;
|
|
85
|
+
/** What a lane is doing right now, in two words. */
|
|
86
|
+
export declare const activityOf: (lastTool: {
|
|
87
|
+
readonly tool: string;
|
|
88
|
+
readonly at: number;
|
|
89
|
+
} | undefined, now: number) => string;
|
|
73
90
|
/** One status row per active lane, the run's own stage (if any) first. */
|
|
74
91
|
export declare const statusBlock: (globalStage: string | undefined, lanes: ReadonlyArray<{
|
|
75
92
|
readonly lane: string;
|
|
@@ -77,6 +94,8 @@ export declare const statusBlock: (globalStage: string | undefined, lanes: Reado
|
|
|
77
94
|
readonly stage: string | undefined;
|
|
78
95
|
readonly elapsedMs: number;
|
|
79
96
|
readonly tools: number;
|
|
80
|
-
|
|
97
|
+
readonly tokens?: TokenTally;
|
|
98
|
+
readonly activity?: string;
|
|
99
|
+
}>, globalTokens?: TokenTally) => string | undefined;
|
|
81
100
|
export declare const consumeTerminalEvents: (events: FlowEventHub, surface: TerminalSurface, verbosity?: "Quiet" | "Normal" | "Verbose" | "Debug" | undefined, options?: TerminalConsumerOptions | undefined) => Effect.Effect<TerminalConsumer, never, Scope.Scope>;
|
|
82
101
|
//# 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,
|
|
1
|
+
{"version":3,"file":"Terminal.d.ts","sourceRoot":"","sources":["../src/Terminal.ts"],"names":[],"mappings":"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"}
|
package/dist/Terminal.js
CHANGED
|
@@ -30,7 +30,10 @@ export const rendersEvent = (verbosity, event) => {
|
|
|
30
30
|
case "CapabilityDenied":
|
|
31
31
|
case "CapabilityUnenforceable":
|
|
32
32
|
return true;
|
|
33
|
+
// Every git read and gate command is a capability event: useful in a
|
|
34
|
+
// trace, noise on screen once several stories run.
|
|
33
35
|
case "TokensUsed":
|
|
36
|
+
case "CapabilityUsed":
|
|
34
37
|
return verbosity === "Verbose" || verbosity === "Debug";
|
|
35
38
|
default:
|
|
36
39
|
return verbosity !== "Quiet";
|
|
@@ -179,6 +182,9 @@ export const makePlainTerminalSurface = (write = (line) => process.stdout.write(
|
|
|
179
182
|
});
|
|
180
183
|
const spinnerFrames = Object.freeze(["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]);
|
|
181
184
|
const clearLine = "\r\u001b[2K";
|
|
185
|
+
const clearToEnd = "\u001b[J";
|
|
186
|
+
const wrapOff = "\u001b[?7l";
|
|
187
|
+
const wrapOn = "\u001b[?7h";
|
|
182
188
|
/** Cuts a plain status line to the terminal's width, so a wrapped line never breaks the redraw. */
|
|
183
189
|
export const fitToWidth = (line, columns) => columns === undefined || columns < 8 || line.length <= columns - 2
|
|
184
190
|
? line
|
|
@@ -195,7 +201,10 @@ export const makeLiveTerminalSurface = Effect.fn("@llm4ts/runner/Terminal.makeLi
|
|
|
195
201
|
// block (one row per concurrent story) is cleared line by line upwards.
|
|
196
202
|
const drawn = yield* Ref.make(0);
|
|
197
203
|
const emit = (text) => Effect.sync(() => write(text));
|
|
198
|
-
|
|
204
|
+
// Back to the block's first line, then clear to the end of the screen.
|
|
205
|
+
// Counting on the rows we drew (not on how the terminal wrapped them) is
|
|
206
|
+
// safe because the block is drawn with line wrap off.
|
|
207
|
+
const clearStatus = Effect.flatMap(Ref.getAndSet(drawn, 0), (lines) => emit(lines <= 1 ? `${clearLine}${clearToEnd}` : `\u001b[${lines - 1}A${clearLine}${clearToEnd}`));
|
|
199
208
|
const drawStatus = Effect.gen(function* () {
|
|
200
209
|
if (yield* Ref.get(suspended)) {
|
|
201
210
|
return;
|
|
@@ -205,9 +214,13 @@ export const makeLiveTerminalSurface = Effect.fn("@llm4ts/runner/Terminal.makeLi
|
|
|
205
214
|
const currentFrame = yield* Ref.get(frame);
|
|
206
215
|
const width = columns();
|
|
207
216
|
const rows = label.split("\n");
|
|
208
|
-
|
|
217
|
+
// Line wrap is off while the block is drawn: a row wider than the
|
|
218
|
+
// terminal (an ambiguous-width character such as "·" counts two
|
|
219
|
+
// columns in some terminals) is clipped instead of wrapping onto a
|
|
220
|
+
// line the next redraw would not clear.
|
|
221
|
+
yield* emit(`${wrapOff}${rows
|
|
209
222
|
.map((row, index) => palette.status(index === 0 ? (spinnerFrames[currentFrame % spinnerFrames.length] ?? "·") : " ", fitToWidth(row, width === undefined ? undefined : width - 2)))
|
|
210
|
-
.join("\n"));
|
|
223
|
+
.join("\n")}${wrapOn}`);
|
|
211
224
|
yield* Ref.set(drawn, rows.length);
|
|
212
225
|
}
|
|
213
226
|
});
|
|
@@ -261,12 +274,56 @@ export const laneLabel = (lane, executor) => executor === undefined ? lane : `${
|
|
|
261
274
|
export const rendersLanedEvent = (verbosity, event) => event._tag === "ToolUse"
|
|
262
275
|
? verbosity === "Verbose" || verbosity === "Debug"
|
|
263
276
|
: rendersEvent(verbosity, event);
|
|
277
|
+
const emptyTally = () => ({ input: 0, output: 0, estimated: false });
|
|
278
|
+
const addTokens = (tally, event) => {
|
|
279
|
+
if (event._tag !== "TokensUsed") {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
tally.input += event.usage.prompt;
|
|
283
|
+
tally.output += event.usage.completion;
|
|
284
|
+
if (event.model?.startsWith("estimated:") === true) {
|
|
285
|
+
tally.estimated = true;
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
/** 950 → "950", 12_400 → "12.4k", 1_250_000 → "1.3M". */
|
|
289
|
+
export const formatCount = (value) => value < 1_000
|
|
290
|
+
? `${Math.max(0, Math.round(value))}`
|
|
291
|
+
: value < 1_000_000
|
|
292
|
+
? `${(value / 1_000).toFixed(1)}k`
|
|
293
|
+
: `${(value / 1_000_000).toFixed(1)}M`;
|
|
294
|
+
/** `3.5k tokens` (in and out together), `~` when estimated; empty before any report. */
|
|
295
|
+
export const formatTally = (tally) => {
|
|
296
|
+
if (tally === undefined || (tally.input === 0 && tally.output === 0)) {
|
|
297
|
+
return "";
|
|
298
|
+
}
|
|
299
|
+
return `${tally.estimated ? "~" : ""}${formatCount(tally.input + tally.output)} tokens`;
|
|
300
|
+
};
|
|
301
|
+
/** How long after a tool call a lane still reads as "Running <tool>…". */
|
|
302
|
+
export const toolActivityWindowMs = 15_000;
|
|
303
|
+
/** What a lane is doing right now, in two words. */
|
|
304
|
+
export const activityOf = (lastTool, now) => lastTool !== undefined && now - lastTool.at <= toolActivityWindowMs
|
|
305
|
+
? `Running ${lastTool.tool}…`
|
|
306
|
+
: "Thinking…";
|
|
264
307
|
/** One status row per active lane, the run's own stage (if any) first. */
|
|
265
|
-
export const statusBlock = (globalStage, lanes) => {
|
|
308
|
+
export const statusBlock = (globalStage, lanes, globalTokens) => {
|
|
309
|
+
// Time, tokens and what it is doing first — the stage title last, so a
|
|
310
|
+
// narrow terminal cuts the title, not the signs of life.
|
|
266
311
|
const rows = lanes
|
|
267
312
|
.filter((lane) => lane.stage !== undefined)
|
|
268
|
-
.map((lane) =>
|
|
269
|
-
|
|
313
|
+
.map((lane) => [
|
|
314
|
+
laneLabel(lane.lane, lane.executor),
|
|
315
|
+
formatDurationMs(lane.elapsedMs),
|
|
316
|
+
formatTally(lane.tokens),
|
|
317
|
+
lane.activity ?? "",
|
|
318
|
+
lane.stage ?? ""
|
|
319
|
+
]
|
|
320
|
+
.filter((part) => part.length > 0)
|
|
321
|
+
.join(" · "));
|
|
322
|
+
const tally = formatTally(globalTokens);
|
|
323
|
+
const head = globalStage === undefined
|
|
324
|
+
? []
|
|
325
|
+
: [tally.length === 0 ? globalStage : `${globalStage} · ${tally}`];
|
|
326
|
+
const block = [...head, ...rows];
|
|
270
327
|
return block.length === 0 ? undefined : block.join("\n");
|
|
271
328
|
};
|
|
272
329
|
export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume")(function* (events, surface, verbosity = "Normal", options = {}) {
|
|
@@ -276,6 +333,8 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
276
333
|
// interleaves their stages, closes the wrong one, and shows whichever
|
|
277
334
|
// story started last as the only thing running.
|
|
278
335
|
const lanes = new Map();
|
|
336
|
+
// Tokens of events outside any lane: the whole run, for a flow with one coder.
|
|
337
|
+
const runTokens = emptyTally();
|
|
279
338
|
const consumed = yield* Ref.make(0);
|
|
280
339
|
const statsRef = yield* Ref.make({ stagesCompleted: 0, stagesFailed: 0 });
|
|
281
340
|
const subscription = yield* events.subscribe;
|
|
@@ -291,8 +350,10 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
291
350
|
executor: state.executor,
|
|
292
351
|
stage: state.stages.at(-1)?.name,
|
|
293
352
|
elapsedMs: now - state.startedAt,
|
|
294
|
-
tools: state.tools
|
|
295
|
-
|
|
353
|
+
tools: state.tools,
|
|
354
|
+
tokens: state.tokens,
|
|
355
|
+
activity: activityOf(state.lastTool, now)
|
|
356
|
+
})), runTokens));
|
|
296
357
|
});
|
|
297
358
|
const countStage = (event) => event._tag === "StageCompleted"
|
|
298
359
|
? Ref.update(statsRef, (current) => ({
|
|
@@ -324,7 +385,9 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
324
385
|
stages: [],
|
|
325
386
|
tools: 0,
|
|
326
387
|
executor: undefined,
|
|
327
|
-
startedAt: now
|
|
388
|
+
startedAt: now,
|
|
389
|
+
tokens: emptyTally(),
|
|
390
|
+
lastTool: undefined
|
|
328
391
|
};
|
|
329
392
|
lanes.set(tagged.lane, state);
|
|
330
393
|
if (tagged.executor !== undefined) {
|
|
@@ -346,7 +409,9 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
346
409
|
}
|
|
347
410
|
else if (event._tag === "ToolUse") {
|
|
348
411
|
state.tools += 1;
|
|
412
|
+
state.lastTool = { tool: terminalSafe(event.tool), at: now };
|
|
349
413
|
}
|
|
414
|
+
addTokens(state.tokens, event);
|
|
350
415
|
if (state.stages.length === 0 && closesChild(event)) {
|
|
351
416
|
lanes.delete(tagged.lane);
|
|
352
417
|
}
|
|
@@ -360,6 +425,10 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
360
425
|
yield* Ref.update(consumed, (count) => count + 1);
|
|
361
426
|
return;
|
|
362
427
|
}
|
|
428
|
+
if (event._tag === "TokensUsed") {
|
|
429
|
+
addTokens(runTokens, event);
|
|
430
|
+
yield* refreshStatus;
|
|
431
|
+
}
|
|
363
432
|
const currentDepth = closesChild(event)
|
|
364
433
|
? yield* Ref.updateAndGet(depth, (value) => Math.max(0, value - 1))
|
|
365
434
|
: yield* Ref.get(depth);
|
|
@@ -384,6 +453,8 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
384
453
|
}
|
|
385
454
|
yield* Ref.update(consumed, (count) => count + 1);
|
|
386
455
|
})), Effect.forkScoped);
|
|
456
|
+
// Elapsed time and "Running <tool>…" age between events too.
|
|
457
|
+
yield* Effect.sleep("1 second").pipe(Effect.andThen(Effect.suspend(() => (lanes.size === 0 ? Effect.void : refreshStatus))), Effect.forever, Effect.forkScoped);
|
|
387
458
|
// Display only, so a drain that gives up just means a trailing line was
|
|
388
459
|
// never printed; the shared helper already bounds the wait.
|
|
389
460
|
const awaitDrained = (timeout) => Effect.asVoid(awaitConsumed(events, consumed, timeout));
|
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.3",
|
|
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/
|
|
67
|
-
"@llm4ts/
|
|
66
|
+
"@llm4ts/flow": "2.9.3",
|
|
67
|
+
"@llm4ts/core": "2.9.3"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
70
|
"effect": "4.0.0-rc.115"
|
package/src/Terminal.ts
CHANGED
|
@@ -36,7 +36,10 @@ export const rendersEvent = (verbosity: Verbosity, event: FlowEvent): boolean =>
|
|
|
36
36
|
case "CapabilityDenied":
|
|
37
37
|
case "CapabilityUnenforceable":
|
|
38
38
|
return true
|
|
39
|
+
// Every git read and gate command is a capability event: useful in a
|
|
40
|
+
// trace, noise on screen once several stories run.
|
|
39
41
|
case "TokensUsed":
|
|
42
|
+
case "CapabilityUsed":
|
|
40
43
|
return verbosity === "Verbose" || verbosity === "Debug"
|
|
41
44
|
default:
|
|
42
45
|
return verbosity !== "Quiet"
|
|
@@ -229,6 +232,9 @@ export const makePlainTerminalSurface = (
|
|
|
229
232
|
|
|
230
233
|
const spinnerFrames = Object.freeze(["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"])
|
|
231
234
|
const clearLine = "\r\u001b[2K"
|
|
235
|
+
const clearToEnd = "\u001b[J"
|
|
236
|
+
const wrapOff = "\u001b[?7l"
|
|
237
|
+
const wrapOn = "\u001b[?7h"
|
|
232
238
|
|
|
233
239
|
export interface TerminalOutput {
|
|
234
240
|
readonly isTTY?: boolean
|
|
@@ -263,8 +269,11 @@ export const makeLiveTerminalSurface = Effect.fn("@llm4ts/runner/Terminal.makeLi
|
|
|
263
269
|
// block (one row per concurrent story) is cleared line by line upwards.
|
|
264
270
|
const drawn = yield* Ref.make(0)
|
|
265
271
|
const emit = (text: string): Effect.Effect<void> => Effect.sync(() => write(text))
|
|
272
|
+
// Back to the block's first line, then clear to the end of the screen.
|
|
273
|
+
// Counting on the rows we drew (not on how the terminal wrapped them) is
|
|
274
|
+
// safe because the block is drawn with line wrap off.
|
|
266
275
|
const clearStatus = Effect.flatMap(Ref.getAndSet(drawn, 0), (lines) =>
|
|
267
|
-
emit(lines <= 1 ?
|
|
276
|
+
emit(lines <= 1 ? `${clearLine}${clearToEnd}` : `\u001b[${lines - 1}A${clearLine}${clearToEnd}`)
|
|
268
277
|
)
|
|
269
278
|
const drawStatus = Effect.gen(function* () {
|
|
270
279
|
if (yield* Ref.get(suspended)) {
|
|
@@ -275,15 +284,19 @@ export const makeLiveTerminalSurface = Effect.fn("@llm4ts/runner/Terminal.makeLi
|
|
|
275
284
|
const currentFrame = yield* Ref.get(frame)
|
|
276
285
|
const width = columns()
|
|
277
286
|
const rows = label.split("\n")
|
|
287
|
+
// Line wrap is off while the block is drawn: a row wider than the
|
|
288
|
+
// terminal (an ambiguous-width character such as "·" counts two
|
|
289
|
+
// columns in some terminals) is clipped instead of wrapping onto a
|
|
290
|
+
// line the next redraw would not clear.
|
|
278
291
|
yield* emit(
|
|
279
|
-
rows
|
|
292
|
+
`${wrapOff}${rows
|
|
280
293
|
.map((row, index) =>
|
|
281
294
|
palette.status(
|
|
282
295
|
index === 0 ? (spinnerFrames[currentFrame % spinnerFrames.length] ?? "·") : " ",
|
|
283
296
|
fitToWidth(row, width === undefined ? undefined : width - 2)
|
|
284
297
|
)
|
|
285
298
|
)
|
|
286
|
-
.join("\n")
|
|
299
|
+
.join("\n")}${wrapOn}`
|
|
287
300
|
)
|
|
288
301
|
yield* Ref.set(drawn, rows.length)
|
|
289
302
|
}
|
|
@@ -394,8 +407,58 @@ interface LaneState {
|
|
|
394
407
|
tools: number
|
|
395
408
|
executor: string | undefined
|
|
396
409
|
readonly startedAt: number
|
|
410
|
+
readonly tokens: TokenTally
|
|
411
|
+
lastTool: { readonly tool: string; readonly at: number } | undefined
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
/** Tokens in and out so far; `estimated` once any report was an estimate. */
|
|
415
|
+
export interface TokenTally {
|
|
416
|
+
input: number
|
|
417
|
+
output: number
|
|
418
|
+
estimated: boolean
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
const emptyTally = (): TokenTally => ({ input: 0, output: 0, estimated: false })
|
|
422
|
+
|
|
423
|
+
const addTokens = (tally: TokenTally, event: FlowEvent): void => {
|
|
424
|
+
if (event._tag !== "TokensUsed") {
|
|
425
|
+
return
|
|
426
|
+
}
|
|
427
|
+
tally.input += event.usage.prompt
|
|
428
|
+
tally.output += event.usage.completion
|
|
429
|
+
if (event.model?.startsWith("estimated:") === true) {
|
|
430
|
+
tally.estimated = true
|
|
431
|
+
}
|
|
397
432
|
}
|
|
398
433
|
|
|
434
|
+
/** 950 → "950", 12_400 → "12.4k", 1_250_000 → "1.3M". */
|
|
435
|
+
export const formatCount = (value: number): string =>
|
|
436
|
+
value < 1_000
|
|
437
|
+
? `${Math.max(0, Math.round(value))}`
|
|
438
|
+
: value < 1_000_000
|
|
439
|
+
? `${(value / 1_000).toFixed(1)}k`
|
|
440
|
+
: `${(value / 1_000_000).toFixed(1)}M`
|
|
441
|
+
|
|
442
|
+
/** `3.5k tokens` (in and out together), `~` when estimated; empty before any report. */
|
|
443
|
+
export const formatTally = (tally: TokenTally | undefined): string => {
|
|
444
|
+
if (tally === undefined || (tally.input === 0 && tally.output === 0)) {
|
|
445
|
+
return ""
|
|
446
|
+
}
|
|
447
|
+
return `${tally.estimated ? "~" : ""}${formatCount(tally.input + tally.output)} tokens`
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
/** How long after a tool call a lane still reads as "Running <tool>…". */
|
|
451
|
+
export const toolActivityWindowMs = 15_000
|
|
452
|
+
|
|
453
|
+
/** What a lane is doing right now, in two words. */
|
|
454
|
+
export const activityOf = (
|
|
455
|
+
lastTool: { readonly tool: string; readonly at: number } | undefined,
|
|
456
|
+
now: number
|
|
457
|
+
): string =>
|
|
458
|
+
lastTool !== undefined && now - lastTool.at <= toolActivityWindowMs
|
|
459
|
+
? `Running ${lastTool.tool}…`
|
|
460
|
+
: "Thinking…"
|
|
461
|
+
|
|
399
462
|
/** One status row per active lane, the run's own stage (if any) first. */
|
|
400
463
|
export const statusBlock = (
|
|
401
464
|
globalStage: string | undefined,
|
|
@@ -405,17 +468,32 @@ export const statusBlock = (
|
|
|
405
468
|
readonly stage: string | undefined
|
|
406
469
|
readonly elapsedMs: number
|
|
407
470
|
readonly tools: number
|
|
408
|
-
|
|
471
|
+
readonly tokens?: TokenTally
|
|
472
|
+
readonly activity?: string
|
|
473
|
+
}>,
|
|
474
|
+
globalTokens?: TokenTally
|
|
409
475
|
): string | undefined => {
|
|
476
|
+
// Time, tokens and what it is doing first — the stage title last, so a
|
|
477
|
+
// narrow terminal cuts the title, not the signs of life.
|
|
410
478
|
const rows = lanes
|
|
411
479
|
.filter((lane) => lane.stage !== undefined)
|
|
412
|
-
.map(
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
480
|
+
.map((lane) =>
|
|
481
|
+
[
|
|
482
|
+
laneLabel(lane.lane, lane.executor),
|
|
483
|
+
formatDurationMs(lane.elapsedMs),
|
|
484
|
+
formatTally(lane.tokens),
|
|
485
|
+
lane.activity ?? "",
|
|
486
|
+
lane.stage ?? ""
|
|
487
|
+
]
|
|
488
|
+
.filter((part) => part.length > 0)
|
|
489
|
+
.join(" · ")
|
|
417
490
|
)
|
|
418
|
-
const
|
|
491
|
+
const tally = formatTally(globalTokens)
|
|
492
|
+
const head =
|
|
493
|
+
globalStage === undefined
|
|
494
|
+
? []
|
|
495
|
+
: [tally.length === 0 ? globalStage : `${globalStage} · ${tally}`]
|
|
496
|
+
const block = [...head, ...rows]
|
|
419
497
|
return block.length === 0 ? undefined : block.join("\n")
|
|
420
498
|
}
|
|
421
499
|
|
|
@@ -431,6 +509,8 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
431
509
|
// interleaves their stages, closes the wrong one, and shows whichever
|
|
432
510
|
// story started last as the only thing running.
|
|
433
511
|
const lanes = new Map<string, LaneState>()
|
|
512
|
+
// Tokens of events outside any lane: the whole run, for a flow with one coder.
|
|
513
|
+
const runTokens = emptyTally()
|
|
434
514
|
const consumed = yield* Ref.make(0)
|
|
435
515
|
const statsRef = yield* Ref.make<TerminalRunStats>({ stagesCompleted: 0, stagesFailed: 0 })
|
|
436
516
|
const subscription = yield* events.subscribe
|
|
@@ -453,8 +533,11 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
453
533
|
executor: state.executor,
|
|
454
534
|
stage: state.stages.at(-1)?.name,
|
|
455
535
|
elapsedMs: now - state.startedAt,
|
|
456
|
-
tools: state.tools
|
|
457
|
-
|
|
536
|
+
tools: state.tools,
|
|
537
|
+
tokens: state.tokens,
|
|
538
|
+
activity: activityOf(state.lastTool, now)
|
|
539
|
+
})),
|
|
540
|
+
runTokens
|
|
458
541
|
)
|
|
459
542
|
)
|
|
460
543
|
})
|
|
@@ -498,7 +581,9 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
498
581
|
stages: [],
|
|
499
582
|
tools: 0,
|
|
500
583
|
executor: undefined,
|
|
501
|
-
startedAt: now
|
|
584
|
+
startedAt: now,
|
|
585
|
+
tokens: emptyTally(),
|
|
586
|
+
lastTool: undefined
|
|
502
587
|
} satisfies LaneState)
|
|
503
588
|
lanes.set(tagged.lane, state)
|
|
504
589
|
if (tagged.executor !== undefined) {
|
|
@@ -518,7 +603,9 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
518
603
|
yield* countStage(event)
|
|
519
604
|
} else if (event._tag === "ToolUse") {
|
|
520
605
|
state.tools += 1
|
|
606
|
+
state.lastTool = { tool: terminalSafe(event.tool), at: now }
|
|
521
607
|
}
|
|
608
|
+
addTokens(state.tokens, event)
|
|
522
609
|
if (state.stages.length === 0 && closesChild(event)) {
|
|
523
610
|
lanes.delete(tagged.lane)
|
|
524
611
|
}
|
|
@@ -532,6 +619,10 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
532
619
|
yield* Ref.update(consumed, (count) => count + 1)
|
|
533
620
|
return
|
|
534
621
|
}
|
|
622
|
+
if (event._tag === "TokensUsed") {
|
|
623
|
+
addTokens(runTokens, event)
|
|
624
|
+
yield* refreshStatus
|
|
625
|
+
}
|
|
535
626
|
const currentDepth = closesChild(event)
|
|
536
627
|
? yield* Ref.updateAndGet(depth, (value) => Math.max(0, value - 1))
|
|
537
628
|
: yield* Ref.get(depth)
|
|
@@ -558,6 +649,12 @@ export const consumeTerminalEvents = Effect.fn("@llm4ts/runner/Terminal.consume"
|
|
|
558
649
|
),
|
|
559
650
|
Effect.forkScoped
|
|
560
651
|
)
|
|
652
|
+
// Elapsed time and "Running <tool>…" age between events too.
|
|
653
|
+
yield* Effect.sleep("1 second").pipe(
|
|
654
|
+
Effect.andThen(Effect.suspend(() => (lanes.size === 0 ? Effect.void : refreshStatus))),
|
|
655
|
+
Effect.forever,
|
|
656
|
+
Effect.forkScoped
|
|
657
|
+
)
|
|
561
658
|
// Display only, so a drain that gives up just means a trailing line was
|
|
562
659
|
// never printed; the shared helper already bounds the wait.
|
|
563
660
|
const awaitDrained = (timeout?: Duration.Input): Effect.Effect<void> =>
|