Repository navigation
Transcript ActivityGroupView
One summary line for a run of agent work ("Searched 1× · Read 2 files · Ran 1 command · Worked 48s") that opens into evidence rows. One row is open at a time, and every row that opens has a chevron. This sheet also covers EvidenceRow (one row: thinking, tool, or spawn) and activitySummary (the default summary line).
import 'package:agent_kit/agent_kit.dart';
Collapsed: initiallyOpen: false. The summary line only.
Open, with the exec row open: initiallyOpen: true, initiallyOpenRow: 'r5'. The output is clamped to 12 lines, with the footer "2.1 KB · exited 101", "Show all 20 lines" and "Open full output". The spawn row shows "child c7e2".
Running: initiallyOpen: true on a group whose rows are still running. The summary has no time yet, and the running rows carry the running mark.
Failed and cancelled rows: initiallyOpen: true. The web row shows its meta, "timeout", with the failed mark; the exec row shows "cancelled". The gallery places this group under the "thinking text open, failed and cancelled rows" label.
ActivityGroupView
| Parameter | Type | Notes |
|---|---|---|
group |
ActivityGroup |
Required, positional. Its rows are the evidence. |
initiallyOpen |
bool? |
Pins whether the evidence starts open, whatever the group's state. Default: open while the group runs, else finishedOpen. |
finishedOpen |
bool |
Default false. Whether a finished group shows its rows. A running group is open either way. When a group finishes it follows this, and a change applies to every group the person has not opened or closed themselves; a group they toggled keeps its state. TranscriptActions.finishedActivityOpen sets it. |
initiallyOpenRow |
String? |
Id of the row that starts open. |
onOpenOutput |
ValueChanged<ToolRow>? |
"Open full output" on an exec row. Not drawn when null. |
onOpenChild |
ValueChanged<String>? |
Gets the child's id when a spawn row is tapped. A spawn row is not tappable without it. |
summaryOf |
ActivitySummaryBuilder? |
Replaces the summary line. Default activitySummary. |
footer |
Widget? |
Drawn under the rows while the group is open. |
activitySummary (the default summary, from verb counts)
- Parts, in order: "Searched N×" (search), "Read N file(s)" (read), "Edited N file(s)" (edit and write), "Ran N command(s)" (exec), "Looked up N×" (web), "Started N agent(s)" (spawn), "N other call(s)", "N failed".
- Time is appended only when the backend sent durations: "Worked " from the earliest start to the latest end of the tool rows, and "thought " from
thinkingMs. The summary reads "Working" while a group with no calls runs, and "Worked" after it ends if there are no times.
EvidenceRow (one row; row is an ActivityRow)
- Thinking row: verb
think; target is the first line of the reasoning text, or "Thinking…" while streaming, or "Thought"; the reasoning text opens below it when the backend sent it. The meta is a running mark while streaming, otherwise the duration. - Tool row: verb from the kind (
read,grepfor search,exec,edit,write,web, or the tool's name for other); target istarget, elsearguments, elsename. The meta isexit Nin danger when the exit code is not zero, else a status mark for running, failed, timed out and cancelled, else the meta text. A tool row opens when it has arguments (a JSON object with members, or any other text) or non-empty output, whatever its kind. Open, the target shows in full and wrapped on the row's own line and is not repeated below. Under it come the arguments as small mono key/value lines (text that is not a JSON object shows as given; an exec row leaves out the members that only repeat its command, and a row with notargetshows no argument lines because the arguments are its target), thenExecOutputwith its footer. Long output lines scroll sideways in the block. - Chevron: a
DisclosureChevron(size 12) in an 18 px slot before the verb on every thinking or tool row that opens, turned when open. A row that does not open keeps the empty slot so the verbs line up. A spawn row has no chevron; it opens the child chat. - Spawn row: verb
spawn; target is the task; metachild <last four characters of the child id>. Tapping callsonOpenChild.
-
ActivityGroupView:colors.borderSubtle(the left rule of the evidence),typeScale.uiSmallandfaint(summary line). -
EvidenceRow:faint(verb and meta),ink(target when open),muted(target when closed),dangerInk(exit meta). The sizes are fixed in the file, not fromtypeScale: the target is 13/16 weight 500, the verb is 12/16 mono. -
isTouchsets the padding of the summary and rows.
ActivityGroupView and EvidenceRow read sizeClassOf(context).isCompact, which is the class of the nearest SizeClassBuilder (the transcript list's own width).
- Compact: the verb column is 40 px (44 px otherwise), and the open body starts under the verb (24 px) instead of under the target (76 px).
- The summary line is one line with an ellipsis, in every class.
- Summary line:
Semantics(button: true, expanded: _open, label: <summary>, excludeSemantics: true). - Evidence row:
Semantics(button: tap != null, expanded: <when it has a body>, label: '<verb> <target>', excludeSemantics: true). - Status marks inside rows carry their own labels (see
status.dart, not read here). -
transcript_test.dartline 196 sends Enter to the focused summary and checks that it expands. The folder adds no key handler of its own, so the key handling comes from bb_ui'sHover, which this sheet did not read. - No reduced-motion handling in this file. The chevron animates through
DisclosureChevron(seetranscript_support.dart).
- Gallery scene: Components. Specimens in
TranscriptSpecimens(apps/gallery/lib/components/transcript.dart): "Activity group: collapsed" (line 70), "open, exec output clamped" (72), "running, thinking streaming" (80), "thinking text open, failed and cancelled rows" (82), and the mixed group that follows it with no label of its own (91). - Golden:
apps/gallery/test/component_shots_test.dartwritesactivity_group_collapsed(index 1),activity_group_open(2),activity_group_running(3) andactivity_group_mixed(5), light and dark. Index 0 is the group inside the transcript list. - Chevrons, open tool rows (arguments, whole target, output) and how finished groups start are tested in
packages/agent_kit/test/transcript/activity_rows_test.dart; thetranscript_rows_*goldens show an open exec row and an open read row. - Other tests, in
packages/agent_kit/test/transcript/transcript_test.dart: "summary line" (line 132), "a footer shows under the rows only while open" (172), "a host can replace the summary line" (185), "Enter on the focused summary expands it" (196), "opens into rows, one at a time" (219), "the exit status is in danger" (253), "a spawn row opens the child" (262), and "running and failed tool rows use the status mark" (276). - Transcript goldens in
packages/agent_kit/test/goldens/transcript_turn_*.pngandtranscript_states_*.png.
Generated from docs/components/transcript/ActivityGroupView.md. Edit the file there; changes made on the wiki are overwritten.
Guides
- Package layout and pinning
- agent_kit_core
- Backend mapping
- agent_kit and the gallery
- Icon and README assets
Component sheets
theme
status
transcript
- ActivityGroupView
- AssistantProse
- ChildQuestionRow
- CodeBlock
- DiffView
- ExecOutput
- FileEditRow
- PlanChecklist
- ReturnLine
- SystemLineView
- TranscriptList
- UserBubble
composer
chrome
context
history
outline
workspace
compositions
providers