@llm4ts/runner 2.22.2 → 2.23.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/Profile.d.ts CHANGED
@@ -20,6 +20,10 @@ export declare const TurnStats: Schema.Struct<{
20
20
  readonly maxPrompt: Schema.optionalKey<Schema.Int>;
21
21
  /** The last prompt is more than three times the first. */
22
22
  readonly promptGrowth: Schema.Boolean;
23
+ /** Tool calls per finished turn: each is a model round trip. */
24
+ readonly avgSteps: Schema.Number;
25
+ /** The model's own time per round trip: a turn's time less its tools, over its steps + 1. */
26
+ readonly avgStepMs: Schema.Number;
23
27
  }>;
24
28
  export type TurnStats = typeof TurnStats.Type;
25
29
  /** A stretch of a story's time no `Timed` event covers, named by the events around it. */
@@ -53,6 +57,10 @@ export declare const StoryProfile: Schema.Struct<{
53
57
  readonly maxPrompt: Schema.optionalKey<Schema.Int>;
54
58
  /** The last prompt is more than three times the first. */
55
59
  readonly promptGrowth: Schema.Boolean;
60
+ /** Tool calls per finished turn: each is a model round trip. */
61
+ readonly avgSteps: Schema.Number;
62
+ /** The model's own time per round trip: a turn's time less its tools, over its steps + 1. */
63
+ readonly avgStepMs: Schema.Number;
56
64
  }>;
57
65
  /** Its largest untimed stretches, 30 seconds or more: where "unaccounted" sits. */
58
66
  readonly gaps: Schema.$Array<Schema.Struct<{
@@ -127,6 +135,10 @@ export declare const ProfileReport: Schema.Struct<{
127
135
  readonly maxPrompt: Schema.optionalKey<Schema.Int>;
128
136
  /** The last prompt is more than three times the first. */
129
137
  readonly promptGrowth: Schema.Boolean;
138
+ /** Tool calls per finished turn: each is a model round trip. */
139
+ readonly avgSteps: Schema.Number;
140
+ /** The model's own time per round trip: a turn's time less its tools, over its steps + 1. */
141
+ readonly avgStepMs: Schema.Number;
130
142
  }>;
131
143
  /** Its largest untimed stretches, 30 seconds or more: where "unaccounted" sits. */
132
144
  readonly gaps: Schema.$Array<Schema.Struct<{
@@ -174,6 +186,12 @@ export declare const ProfileReport: Schema.Struct<{
174
186
  readonly count: Schema.Int;
175
187
  readonly ms: Schema.Number;
176
188
  }>>;
189
+ /** Coder tool time by kind of work: explore, edit, test, build, install, git, other. */
190
+ readonly toolCategories: Schema.$Array<Schema.Struct<{
191
+ readonly label: Schema.String;
192
+ readonly count: Schema.Int;
193
+ readonly ms: Schema.Number;
194
+ }>>;
177
195
  readonly waits: Schema.$Array<Schema.Struct<{
178
196
  readonly label: Schema.String;
179
197
  readonly count: Schema.Int;
@@ -1 +1 @@
1
- {"version":3,"file":"Profile.d.ts","sourceRoot":"","sources":["../src/Profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAElE,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAA;AAmBnB,eAAO,MAAM,WAAW;;;;;;;EAOtB,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AAEjD,eAAO,MAAM,SAAS;;;;;;;IAOpB,0DAA0D;;EAE1D,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C,0FAA0F;AAC1F,eAAO,MAAM,GAAG;;;;EAId,CAAA;AACF,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,IAAI,CAAA;AAEjC,eAAO,MAAM,YAAY;;;;;IAKvB,2FAA2F;;;;;;;;;;;;;;;;;QAlB3F,0DAA0D;;;IAsB1D,mFAAmF;;;;;;IAEnF;;;OAGG;;;EAGH,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,QAAQ;;;;;;;IAOnB,oCAAoC;;;EAGpC,CAAA;AACF,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAE3C,eAAO,MAAM,OAAO;;;;;;EAMlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,eAAO,MAAM,QAAQ;;;;EAAqE,CAAA;AAC1F,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAE3C,eAAO,MAAM,OAAO;;;EAAqE,CAAA;AACzF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,eAAO,MAAM,aAAa;IACxB,iFAAiF;;;;;;;;QA5CjF,2FAA2F;;;;;;;;;;;;;;;;;YAlB3F,0DAA0D;;;QAsB1D,mFAAmF;;;;;;QAEnF;;;WAGG;;;;IAuCH,oEAAoE;;;;;;;;;;;;;;;;;QA1BpE,oCAAoC;;;;;;;;;;;;;;;;;;;;;IAiCpC,+FAA+F;;;;;;;;;;EAG/F,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AA4JrD,eAAO,MAAM,SAAS,GAAI,QAAQ,aAAa,CAAC,SAAS,CAAC,KAAG,aAkN5D,CAAA;AA8DD,+BAA+B;AAC/B,eAAO,MAAM,QAAQ,GAAI,IAAI,MAAM,KAAG,MAUrC,CAAA;AAuGD,eAAO,MAAM,aAAa,GAAI,QAAQ,aAAa,KAAG,MAsIrD,CAAA;AAED,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAID,2GAA2G;AAC3G,eAAO,MAAM,kBAAkB,+jDAO7B,CAAA"}
1
+ {"version":3,"file":"Profile.d.ts","sourceRoot":"","sources":["../src/Profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAElE,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAA;AAmBnB,eAAO,MAAM,WAAW;;;;;;;EAOtB,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AAEjD,eAAO,MAAM,SAAS;;;;;;;IAOpB,0DAA0D;;IAE1D,gEAAgE;;IAEhE,6FAA6F;;EAE7F,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C,0FAA0F;AAC1F,eAAO,MAAM,GAAG;;;;EAId,CAAA;AACF,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,IAAI,CAAA;AAEjC,eAAO,MAAM,YAAY;;;;;IAKvB,2FAA2F;;;;;;;;;;;;;;;;;QAtB3F,0DAA0D;;QAE1D,gEAAgE;;QAEhE,6FAA6F;;;IAsB7F,mFAAmF;;;;;;IAEnF;;;OAGG;;;EAGH,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,QAAQ;;;;;;;IAOnB,oCAAoC;;;EAGpC,CAAA;AACF,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAE3C,eAAO,MAAM,OAAO;;;;;;EAMlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,eAAO,MAAM,QAAQ;;;;EAAqE,CAAA;AAC1F,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAE3C,eAAO,MAAM,OAAO;;;EAAqE,CAAA;AACzF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,eAAO,MAAM,aAAa;IACxB,iFAAiF;;;;;;;;QA5CjF,2FAA2F;;;;;;;;;;;;;;;;;YAtB3F,0DAA0D;;YAE1D,gEAAgE;;YAEhE,6FAA6F;;;QAsB7F,mFAAmF;;;;;;QAEnF;;;WAGG;;;;IAuCH,oEAAoE;;;;;;;;;;;;;;;;;QA1BpE,oCAAoC;;;;;;;;;;;;;;;;IAgCpC,wFAAwF;;;;;;;;;;;IAGxF,+FAA+F;;;;;;;;;;EAG/F,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AA4JrD,eAAO,MAAM,SAAS,GAAI,QAAQ,aAAa,CAAC,SAAS,CAAC,KAAG,aA2O5D,CAAA;AAwFD,+BAA+B;AAC/B,eAAO,MAAM,QAAQ,GAAI,IAAI,MAAM,KAAG,MAUrC,CAAA;AAsHD,eAAO,MAAM,aAAa,GAAI,QAAQ,aAAa,KAAG,MAyJrD,CAAA;AAED,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAID,2GAA2G;AAC3G,eAAO,MAAM,kBAAkB,+jDAO7B,CAAA"}
package/dist/Profile.js CHANGED
@@ -35,7 +35,11 @@ export const TurnStats = Schema.Struct({
35
35
  lastPrompt: Schema.optionalKey(Schema.Int),
36
36
  maxPrompt: Schema.optionalKey(Schema.Int),
37
37
  /** The last prompt is more than three times the first. */
38
- promptGrowth: Schema.Boolean
38
+ promptGrowth: Schema.Boolean,
39
+ /** Tool calls per finished turn: each is a model round trip. */
40
+ avgSteps: Schema.Number,
41
+ /** The model's own time per round trip: a turn's time less its tools, over its steps + 1. */
42
+ avgStepMs: Ms
39
43
  });
40
44
  /** A stretch of a story's time no `Timed` event covers, named by the events around it. */
41
45
  export const Gap = Schema.Struct({
@@ -92,6 +96,8 @@ export const ProfileReport = Schema.Struct({
92
96
  models: Schema.Array(ModelRow),
93
97
  gates: Schema.Array(GateRow),
94
98
  tools: Schema.Array(CountRow),
99
+ /** Coder tool time by kind of work: explore, edit, test, build, install, git, other. */
100
+ toolCategories: Schema.Array(CountRow),
95
101
  waits: Schema.Array(CountRow),
96
102
  /** Timed on the run's events, in no story: the run's own planning, or a seat no story owns. */
97
103
  outside: Schema.Array(CountRow),
@@ -354,7 +360,17 @@ export const profileOf = (inputs) => {
354
360
  ms: sum(items.map((item) => item.event.ms))
355
361
  }));
356
362
  const tools = counted("tool");
363
+ const toolCategories = [
364
+ ...groupBy(allTimed.filter((item) => item.event.kind === "tool" && item.event.category !== undefined), (item) => item.event.category ?? "").entries()
365
+ ]
366
+ .map(([label, items]) => ({
367
+ label,
368
+ count: items.length,
369
+ ms: sum(items.map((item) => item.event.ms))
370
+ }))
371
+ .sort((left, right) => right.ms - left.ms);
357
372
  const waits = counted("wait");
373
+ const steps = stepStats(estimated ? [] : [...lanes.values()].flatMap(turnSteps));
358
374
  const outside = [
359
375
  ...groupBy(allTimed.filter((item) => item.event.lane === undefined), (item) => item.event.label).entries()
360
376
  ].map(([label, items]) => ({
@@ -381,11 +397,42 @@ export const profileOf = (inputs) => {
381
397
  models,
382
398
  gates,
383
399
  tools,
400
+ toolCategories,
384
401
  waits,
385
402
  outside,
386
- findings: findingsOf({ stories, models, gates, tools, waits, merges, storyTime, estimated })
403
+ findings: findingsOf({
404
+ steps,
405
+ toolCategories,
406
+ stories,
407
+ models,
408
+ gates,
409
+ tools,
410
+ waits,
411
+ merges,
412
+ storyTime,
413
+ estimated
414
+ })
387
415
  };
388
416
  };
417
+ const stepStats = (turns) => ({
418
+ avgSteps: average(turns.map((turn) => turn.steps)) ?? 0,
419
+ avgStepMs: average(turns.map((turn) => turn.stepMs)) ?? 0
420
+ });
421
+ /** Each finished coder turn's steps (its tool calls) and model time per step. */
422
+ const turnSteps = (lane) => {
423
+ const tools = lane.timed.filter((item) => item.event.kind === "tool");
424
+ return lane.timed
425
+ .filter((item) => item.event.kind === "model" && item.event.label === "coder")
426
+ .map((turn) => {
427
+ const start = turn.at - turn.event.ms;
428
+ const inside = tools.filter((tool) => tool.at > start && tool.at <= turn.at);
429
+ const toolMs = sum(inside.map((tool) => tool.event.ms));
430
+ return {
431
+ steps: inside.length,
432
+ stepMs: Math.max(0, turn.event.ms - toolMs) / (inside.length + 1)
433
+ };
434
+ });
435
+ };
389
436
  const storyProfile = (lane, lastAt, planReady, estimated) => {
390
437
  const wallMs = (lane.end ?? lastAt) - lane.start;
391
438
  const of = (kind) => sum(lane.timed.filter((item) => item.event.kind === kind).map((item) => item.event.ms));
@@ -429,6 +476,7 @@ const storyProfile = (lane, lastAt, planReady, estimated) => {
429
476
  ...(firstPrompt === undefined ? {} : { firstPrompt }),
430
477
  ...(lastPrompt === undefined ? {} : { lastPrompt }),
431
478
  ...(maxPrompt === undefined ? {} : { maxPrompt }),
479
+ ...stepStats(estimated ? [] : turnSteps(lane)),
432
480
  promptGrowth: firstPrompt !== undefined &&
433
481
  lastPrompt !== undefined &&
434
482
  firstPrompt > 0 &&
@@ -449,6 +497,7 @@ export const duration = (ms) => {
449
497
  }
450
498
  return `${Math.floor(minutes / 60)}h${String(minutes % 60).padStart(2, "0")}m`;
451
499
  };
500
+ const stepsText = (steps) => `${Number.isInteger(steps) ? steps : steps.toFixed(1)} step${steps === 1 ? "" : "s"}`;
452
501
  const share = (ms, of) => (of <= 0 ? "" : `${Math.round((ms / of) * 100)}%`);
453
502
  const plural = (count, word) => `${count} ${word}${count === 1 ? "" : "s"}`;
454
503
  const findingsOf = (facts) => {
@@ -462,7 +511,9 @@ const findingsOf = (facts) => {
462
511
  return {
463
512
  ms,
464
513
  text: role === "coder"
465
- ? `coder turns: ${calls}, ${ofStories(ms)}, avg ${duration(ms / calls)}${first}`
514
+ ? `coder turns: ${calls}, ${ofStories(ms)}, avg ${duration(ms / calls)}${first}${facts.steps.avgSteps > 0
515
+ ? `, ${stepsText(facts.steps.avgSteps)} per turn, ${duration(facts.steps.avgStepMs)} of model per step`
516
+ : ""}`
466
517
  : `${role} calls: ${calls}, ${ofStories(ms)}, avg ${duration(ms / calls)}${first}`
467
518
  };
468
519
  });
@@ -472,10 +523,16 @@ const findingsOf = (facts) => {
472
523
  ms: row.ms,
473
524
  text: `gate \`${row.command}\`: ${plural(row.runs, "run")}, ${ofStories(row.ms)}${row.failed === 0 ? "" : `, ${row.failed} failed`}`
474
525
  })),
475
- ...facts.tools.map((row) => ({
476
- ms: row.ms,
477
- text: `coder tool \`${row.label}\`: ${plural(row.count, "call")}, ${ofStories(row.ms)}`
478
- })),
526
+ // By kind of work when the trace has it (2.23), else by tool name.
527
+ ...(facts.toolCategories.length > 0
528
+ ? facts.toolCategories.map((row) => ({
529
+ ms: row.ms,
530
+ text: `coder tools, ${row.label}: ${plural(row.count, "call")}, ${ofStories(row.ms)}`
531
+ }))
532
+ : facts.tools.map((row) => ({
533
+ ms: row.ms,
534
+ text: `coder tool \`${row.label}\`: ${plural(row.count, "call")}, ${ofStories(row.ms)}`
535
+ }))),
479
536
  ...facts.waits.map((row) => ({
480
537
  ms: row.ms,
481
538
  text: `waiting for the ${row.label}: ${row.count}×, ${ofStories(row.ms)}`
@@ -563,6 +620,8 @@ export const renderProfile = (report) => {
563
620
  "other",
564
621
  "turns",
565
622
  "avg turn",
623
+ "steps/turn",
624
+ "model/step",
566
625
  "prompt ×"
567
626
  ], report.stories.map((story) => [
568
627
  story.id,
@@ -577,6 +636,8 @@ export const renderProfile = (report) => {
577
636
  duration(story.time.unaccounted),
578
637
  String(story.turns.count),
579
638
  duration(story.turns.avgMs),
639
+ story.turns.avgSteps === 0 ? "" : story.turns.avgSteps.toFixed(1),
640
+ story.turns.avgSteps === 0 ? "" : duration(story.turns.avgStepMs),
580
641
  story.turns.firstPrompt !== undefined &&
581
642
  story.turns.lastPrompt !== undefined &&
582
643
  story.turns.firstPrompt > 0
@@ -637,6 +698,18 @@ export const renderProfile = (report) => {
637
698
  duration(row.avgMs),
638
699
  String(row.failed)
639
700
  ]))
701
+ ]),
702
+ ...(report.toolCategories.length === 0
703
+ ? []
704
+ : [
705
+ "",
706
+ "Coder tools by kind",
707
+ ...table(["kind", "calls", "total", "avg"], report.toolCategories.map((row) => [
708
+ row.label,
709
+ String(row.count),
710
+ duration(row.ms),
711
+ duration(row.ms / row.count)
712
+ ]))
640
713
  ])
641
714
  ].join("\n");
642
715
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Profile.js","sourceRoot":"","sources":["../src/Profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Profile.js","sourceRoot":"","sources":["../src/Profile.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.22.2",
3
+ "version": "2.23.0",
4
4
  "description": "Node runner, CLI, terminal, and MCP composition for llm4ts",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -67,8 +67,8 @@
67
67
  "typescript"
68
68
  ],
69
69
  "dependencies": {
70
- "@llm4ts/core": "2.22.2",
71
- "@llm4ts/flow": "2.22.2"
70
+ "@llm4ts/flow": "2.23.0",
71
+ "@llm4ts/core": "2.23.0"
72
72
  },
73
73
  "peerDependencies": {
74
74
  "effect": "4.0.0"
package/src/Profile.ts CHANGED
@@ -47,7 +47,11 @@ export const TurnStats = Schema.Struct({
47
47
  lastPrompt: Schema.optionalKey(Schema.Int),
48
48
  maxPrompt: Schema.optionalKey(Schema.Int),
49
49
  /** The last prompt is more than three times the first. */
50
- promptGrowth: Schema.Boolean
50
+ promptGrowth: Schema.Boolean,
51
+ /** Tool calls per finished turn: each is a model round trip. */
52
+ avgSteps: Schema.Number,
53
+ /** The model's own time per round trip: a turn's time less its tools, over its steps + 1. */
54
+ avgStepMs: Ms
51
55
  })
52
56
  export type TurnStats = typeof TurnStats.Type
53
57
 
@@ -118,6 +122,8 @@ export const ProfileReport = Schema.Struct({
118
122
  models: Schema.Array(ModelRow),
119
123
  gates: Schema.Array(GateRow),
120
124
  tools: Schema.Array(CountRow),
125
+ /** Coder tool time by kind of work: explore, edit, test, build, install, git, other. */
126
+ toolCategories: Schema.Array(CountRow),
121
127
  waits: Schema.Array(CountRow),
122
128
  /** Timed on the run's events, in no story: the run's own planning, or a seat no story owns. */
123
129
  outside: Schema.Array(CountRow),
@@ -450,7 +456,20 @@ export const profileOf = (inputs: ReadonlyArray<TreeInput>): ProfileReport => {
450
456
  ms: sum(items.map((item) => item.event.ms))
451
457
  }))
452
458
  const tools = counted("tool")
459
+ const toolCategories = [
460
+ ...groupBy(
461
+ allTimed.filter((item) => item.event.kind === "tool" && item.event.category !== undefined),
462
+ (item) => item.event.category ?? ""
463
+ ).entries()
464
+ ]
465
+ .map(([label, items]) => ({
466
+ label,
467
+ count: items.length,
468
+ ms: sum(items.map((item) => item.event.ms))
469
+ }))
470
+ .sort((left, right) => right.ms - left.ms)
453
471
  const waits = counted("wait")
472
+ const steps = stepStats(estimated ? [] : [...lanes.values()].flatMap(turnSteps))
454
473
  const outside = [
455
474
  ...groupBy(
456
475
  allTimed.filter((item) => item.event.lane === undefined),
@@ -485,12 +504,49 @@ export const profileOf = (inputs: ReadonlyArray<TreeInput>): ProfileReport => {
485
504
  models,
486
505
  gates,
487
506
  tools,
507
+ toolCategories,
488
508
  waits,
489
509
  outside,
490
- findings: findingsOf({ stories, models, gates, tools, waits, merges, storyTime, estimated })
510
+ findings: findingsOf({
511
+ steps,
512
+ toolCategories,
513
+ stories,
514
+ models,
515
+ gates,
516
+ tools,
517
+ waits,
518
+ merges,
519
+ storyTime,
520
+ estimated
521
+ })
491
522
  }
492
523
  }
493
524
 
525
+ const stepStats = (
526
+ turns: ReadonlyArray<{ readonly steps: number; readonly stepMs: number }>
527
+ ): { readonly avgSteps: number; readonly avgStepMs: number } => ({
528
+ avgSteps: average(turns.map((turn) => turn.steps)) ?? 0,
529
+ avgStepMs: average(turns.map((turn) => turn.stepMs)) ?? 0
530
+ })
531
+
532
+ /** Each finished coder turn's steps (its tool calls) and model time per step. */
533
+ const turnSteps = (
534
+ lane: Lane
535
+ ): ReadonlyArray<{ readonly steps: number; readonly stepMs: number }> => {
536
+ const tools = lane.timed.filter((item) => item.event.kind === "tool")
537
+ return lane.timed
538
+ .filter((item) => item.event.kind === "model" && item.event.label === "coder")
539
+ .map((turn) => {
540
+ const start = turn.at - turn.event.ms
541
+ const inside = tools.filter((tool) => tool.at > start && tool.at <= turn.at)
542
+ const toolMs = sum(inside.map((tool) => tool.event.ms))
543
+ return {
544
+ steps: inside.length,
545
+ stepMs: Math.max(0, turn.event.ms - toolMs) / (inside.length + 1)
546
+ }
547
+ })
548
+ }
549
+
494
550
  const storyProfile = (
495
551
  lane: Lane,
496
552
  lastAt: number,
@@ -540,6 +596,7 @@ const storyProfile = (
540
596
  ...(firstPrompt === undefined ? {} : { firstPrompt }),
541
597
  ...(lastPrompt === undefined ? {} : { lastPrompt }),
542
598
  ...(maxPrompt === undefined ? {} : { maxPrompt }),
599
+ ...stepStats(estimated ? [] : turnSteps(lane)),
543
600
  promptGrowth:
544
601
  firstPrompt !== undefined &&
545
602
  lastPrompt !== undefined &&
@@ -564,11 +621,16 @@ export const duration = (ms: number): string => {
564
621
  return `${Math.floor(minutes / 60)}h${String(minutes % 60).padStart(2, "0")}m`
565
622
  }
566
623
 
624
+ const stepsText = (steps: number): string =>
625
+ `${Number.isInteger(steps) ? steps : steps.toFixed(1)} step${steps === 1 ? "" : "s"}`
626
+
567
627
  const share = (ms: number, of: number): string => (of <= 0 ? "" : `${Math.round((ms / of) * 100)}%`)
568
628
 
569
629
  const plural = (count: number, word: string): string => `${count} ${word}${count === 1 ? "" : "s"}`
570
630
 
571
631
  const findingsOf = (facts: {
632
+ readonly steps: { readonly avgSteps: number; readonly avgStepMs: number }
633
+ readonly toolCategories: ReadonlyArray<CountRow>
572
634
  readonly stories: ReadonlyArray<StoryProfile>
573
635
  readonly models: ReadonlyArray<ModelRow>
574
636
  readonly gates: ReadonlyArray<GateRow>
@@ -589,7 +651,11 @@ const findingsOf = (facts: {
589
651
  ms,
590
652
  text:
591
653
  role === "coder"
592
- ? `coder turns: ${calls}, ${ofStories(ms)}, avg ${duration(ms / calls)}${first}`
654
+ ? `coder turns: ${calls}, ${ofStories(ms)}, avg ${duration(ms / calls)}${first}${
655
+ facts.steps.avgSteps > 0
656
+ ? `, ${stepsText(facts.steps.avgSteps)} per turn, ${duration(facts.steps.avgStepMs)} of model per step`
657
+ : ""
658
+ }`
593
659
  : `${role} calls: ${calls}, ${ofStories(ms)}, avg ${duration(ms / calls)}${first}`
594
660
  }
595
661
  })
@@ -601,10 +667,16 @@ const findingsOf = (facts: {
601
667
  row.failed === 0 ? "" : `, ${row.failed} failed`
602
668
  }`
603
669
  })),
604
- ...facts.tools.map((row) => ({
605
- ms: row.ms,
606
- text: `coder tool \`${row.label}\`: ${plural(row.count, "call")}, ${ofStories(row.ms)}`
607
- })),
670
+ // By kind of work when the trace has it (2.23), else by tool name.
671
+ ...(facts.toolCategories.length > 0
672
+ ? facts.toolCategories.map((row) => ({
673
+ ms: row.ms,
674
+ text: `coder tools, ${row.label}: ${plural(row.count, "call")}, ${ofStories(row.ms)}`
675
+ }))
676
+ : facts.tools.map((row) => ({
677
+ ms: row.ms,
678
+ text: `coder tool \`${row.label}\`: ${plural(row.count, "call")}, ${ofStories(row.ms)}`
679
+ }))),
608
680
  ...facts.waits.map((row) => ({
609
681
  ms: row.ms,
610
682
  text: `waiting for the ${row.label}: ${row.count}×, ${ofStories(row.ms)}`
@@ -708,6 +780,8 @@ export const renderProfile = (report: ProfileReport): string => {
708
780
  "other",
709
781
  "turns",
710
782
  "avg turn",
783
+ "steps/turn",
784
+ "model/step",
711
785
  "prompt ×"
712
786
  ],
713
787
  report.stories.map((story) => [
@@ -723,6 +797,8 @@ export const renderProfile = (report: ProfileReport): string => {
723
797
  duration(story.time.unaccounted),
724
798
  String(story.turns.count),
725
799
  duration(story.turns.avgMs),
800
+ story.turns.avgSteps === 0 ? "" : story.turns.avgSteps.toFixed(1),
801
+ story.turns.avgSteps === 0 ? "" : duration(story.turns.avgStepMs),
726
802
  story.turns.firstPrompt !== undefined &&
727
803
  story.turns.lastPrompt !== undefined &&
728
804
  story.turns.firstPrompt > 0
@@ -797,6 +873,21 @@ export const renderProfile = (report: ProfileReport): string => {
797
873
  String(row.failed)
798
874
  ])
799
875
  )
876
+ ]),
877
+ ...(report.toolCategories.length === 0
878
+ ? []
879
+ : [
880
+ "",
881
+ "Coder tools by kind",
882
+ ...table(
883
+ ["kind", "calls", "total", "avg"],
884
+ report.toolCategories.map((row) => [
885
+ row.label,
886
+ String(row.count),
887
+ duration(row.ms),
888
+ duration(row.ms / row.count)
889
+ ])
890
+ )
800
891
  ])
801
892
  ].join("\n")
802
893
  }