@llm4ts/runner 2.40.0 → 2.41.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/AgentTree.d.ts +59 -8
- package/dist/AgentTree.d.ts.map +1 -1
- package/dist/AgentTree.js +462 -101
- package/dist/AgentTree.js.map +1 -1
- package/dist/FlowRunner.d.ts.map +1 -1
- package/dist/FlowRunner.js +7 -3
- package/dist/FlowRunner.js.map +1 -1
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +13 -0
- package/dist/Terminal.js.map +1 -1
- package/package.json +3 -3
- package/src/AgentTree.ts +630 -124
- package/src/FlowRunner.ts +11 -3
- package/src/Terminal.ts +13 -0
package/src/FlowRunner.ts
CHANGED
|
@@ -314,14 +314,16 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
314
314
|
service: LlmServiceShape,
|
|
315
315
|
lane: string | undefined,
|
|
316
316
|
role: string,
|
|
317
|
-
executor?: Effect.Effect<string | undefined
|
|
317
|
+
executor?: Effect.Effect<string | undefined>,
|
|
318
|
+
clone?: Effect.Effect<number | undefined>
|
|
318
319
|
): LlmServiceShape =>
|
|
319
320
|
transcripts === undefined
|
|
320
321
|
? service
|
|
321
322
|
: transcriptSeat(service, transcripts, {
|
|
322
323
|
role,
|
|
323
324
|
...(lane === undefined ? {} : { lane }),
|
|
324
|
-
...(executor === undefined ? {} : { executor })
|
|
325
|
+
...(executor === undefined ? {} : { executor }),
|
|
326
|
+
...(clone === undefined ? {} : { clone })
|
|
325
327
|
})
|
|
326
328
|
const judgmentLog =
|
|
327
329
|
options.judgmentLog === true
|
|
@@ -781,7 +783,8 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
781
783
|
timedSeat(held.service, laneEvents, "coder", seatOptions(held.executor)),
|
|
782
784
|
lane,
|
|
783
785
|
"coder",
|
|
784
|
-
held.executor
|
|
786
|
+
held.executor,
|
|
787
|
+
held.clone
|
|
785
788
|
),
|
|
786
789
|
judgment,
|
|
787
790
|
judge: judgmentSeat,
|
|
@@ -804,9 +807,13 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
804
807
|
const executorRef = yield* Ref.make<Effect.Effect<string | undefined>>(
|
|
805
808
|
Effect.succeed(undefined)
|
|
806
809
|
)
|
|
810
|
+
const cloneRef = yield* Ref.make<Effect.Effect<number | undefined>>(
|
|
811
|
+
Effect.succeed(undefined)
|
|
812
|
+
)
|
|
807
813
|
const laneEvents = withLane(events, {
|
|
808
814
|
lane: label,
|
|
809
815
|
executor: Effect.flatten(Ref.get(executorRef)),
|
|
816
|
+
clone: Effect.flatten(Ref.get(cloneRef)),
|
|
810
817
|
workDir: directory
|
|
811
818
|
})
|
|
812
819
|
const storyCoder = yield* makeHeldCoder(roster, source, directory, {
|
|
@@ -818,6 +825,7 @@ export const makeFlowRunnerContext = Effect.fn("@llm4ts/runner/FlowRunner.makeCo
|
|
|
818
825
|
: { prefer: contextOptions.prefer })
|
|
819
826
|
})
|
|
820
827
|
yield* Ref.set(executorRef, storyCoder.executor)
|
|
828
|
+
yield* Ref.set(cloneRef, storyCoder.clone)
|
|
821
829
|
return yield* contextIn(directory, storyCoder, label, false, laneEvents)
|
|
822
830
|
})
|
|
823
831
|
}
|
package/src/Terminal.ts
CHANGED
|
@@ -43,6 +43,10 @@ export const rendersEvent = (verbosity: Verbosity, event: FlowEvent): boolean =>
|
|
|
43
43
|
case "ExecutorReleased":
|
|
44
44
|
case "StoryJudged":
|
|
45
45
|
case "Timed":
|
|
46
|
+
case "TasksPlanned":
|
|
47
|
+
case "TaskStarted":
|
|
48
|
+
case "TaskCompleted":
|
|
49
|
+
case "StoryStatusChanged":
|
|
46
50
|
return false
|
|
47
51
|
// A gate or a setup may run for many minutes: its start is a line, so a
|
|
48
52
|
// long one reads as running, not stuck. Other work starts too often.
|
|
@@ -250,6 +254,12 @@ export const terminalLine = (
|
|
|
250
254
|
case "UsageProgress":
|
|
251
255
|
case "StoryJudged":
|
|
252
256
|
case "Timed":
|
|
257
|
+
case "TasksPlanned":
|
|
258
|
+
case "TaskStarted":
|
|
259
|
+
case "TaskCompleted":
|
|
260
|
+
case "StoryStatusChanged":
|
|
261
|
+
// Tasks are stages and board moves are outcome lines already; the typed
|
|
262
|
+
// events feed the tree and the trace.
|
|
253
263
|
return ""
|
|
254
264
|
case "Began":
|
|
255
265
|
return event.kind === "gate" ? palette.info(`running ${safe(event.label)}`) : ""
|
|
@@ -553,6 +563,9 @@ export const laneOfEvent = (
|
|
|
553
563
|
case "TokensUsed":
|
|
554
564
|
case "UsageProgress":
|
|
555
565
|
case "ReviewFindings":
|
|
566
|
+
case "TasksPlanned":
|
|
567
|
+
case "TaskStarted":
|
|
568
|
+
case "TaskCompleted":
|
|
556
569
|
return event.lane === undefined
|
|
557
570
|
? undefined
|
|
558
571
|
: {
|