Expand description
Shared tool-call headlines and transcript detail lines.
Single home for the display phrases both transcript surfaces render — the
CLI (src/agent/runloop/unified/tool_summary*) and the desktop app
(vtcode-desktop/src/desktop/transcript/) — so a headline or skip list can
never drift between them. String-based by design (same contract as
crate::tracker_title): callers walk their own payload shapes and
converge here for the humanization, truncation, and fallback rules.
Surface composition stays local: the CLI keeps its (headline, used)
dispatcher, MCP prefix policy, and TUI renderers; the desktop keeps its
verb categories, single-line collapse, and GPUI renderers. Only the pure
phrase builders live here.
Functions§
- collect_
param_ details - Human
Key: valuelines for the arguments a headline does not consume. - describe_
code_ search - Headline for
code_searchover the query and its alias keys. - describe_
fetch_ action - Headline for the fetch tools over the full target URL.
- describe_
grep_ file - Headline for
grep_file: the pattern is required, the scope joins it when present. Reports exactly the keys its headline consumed. - describe_
list_ files - Headline for
list_files: location first, then the name and content pattern fallbacks. Reports exactly the keys its headline consumed, so detail collection hides if and only if the title phrased them. - exec_
session_ param_ detail - One row for an exec-session follow-up: session identity plus an explicit wait deadline.
- harness_
is_ user_ visible - Whether a harness event belongs in the user-visible transcript.
- has_
session_ input - Whether the call carries a non-empty stdin payload under the input keys.
- humanize_
key - Humanize a parameter key (
timeout_secs→Timeout secs). - humanize_
tool_ name - Human fallback for tool names the headline readers cannot phrase.
- is_
noise_ param - Parameter keys that are infrastructure/plumbing noise, omitted from the
human-facing summary. Session plumbing (
session_id,chars, wait deadlines) is not noise:exec_session_param_detailfolds it into one identity row instead. Search strings (query) are content, never plumbing: they hide only when the headline consumed them. - is_
path_ key - Keys whose values are file-system paths, shown relative to the workspace.
- is_
verbose_ key - Raw content keys too verbose for a summary row (commands, file bodies).
- lookup_
first_ string - First non-blank string under the given keys, trimmed.
- lookup_
string - First non-blank string under a single key, trimmed.
- mcp_
tool_ display_ name - Bare tool name from an MCP-qualified one (
Nonefor non-MCP names). - preview_
command - Compact single-line preview of a command for
• Ran …headers. - preview_
full_ command - Full-length variant of
preview_commandfor transcript surfaces. - relativize_
to_ workspace - Display a path relative to the workspace root when it lies within it.
- search_
headline - Search headline per tool:
code_searchtakes the shared describer; anything else phrases a file search over the first of pattern/query. - session_
followup_ title - Action-aware title for session follow-up calls;
Nonefalls through to the argument gist (runlaunches show the command text instead). - strip_
mcp_ prefix - MCP prefixes stripped, or the name itself when it carries none.
- summarize_
list - Summarize a string list to two items plus an overflow count.
- unified_
exec_ action_ label - Action-aware label for
command_session_internalfollow-up calls. - verb_
callout_ headline - Verb-led running callout for any tool call (
Read main.rs,Ran cargo check): the surface-neutral form of the headline an already-running call shows so the live status agrees with the completed summary row. - write_
stdin_ action_ label - otherwise input sniffing decides send vs read so pure waits never misrender as sends.