|
tui: styled filesystem tool_started card — compact args, action in title
The generic ToolStartedRenderer dumped all of args as JSON, so filesystem cards showed "→ filesystem" with no action in the title and the full content/old/new text for write/edit/smart_edit flooding the card. New FilesystemToolStartedRenderer (clients/terminal/tui/renderers/filesystem.py): - Title carries the action and primary path: "→ filesystem read src/main.py"; move/copy/diff also append "→ <destination>". - Body is a compact per-action summary instead of JSON: - read: range (offset–limit) + numbered flag - write/append: content preview (first line + "(+N lines)" hint, not full) - edit: old + new previews - edit_lines: operations count + op kinds (replace/delete/insert, first 5) - smart_edit: instruction preview - grep: pattern + glob + regex flag - find/find_up: pattern - query: question preview - list: recursive flag - info/delete/mkdir/exists: empty body (path is in the title) - Body keys render dim, values in text. - Sub-agent cards indented, matching ToolStartedRenderer. Registered before the generic ToolStartedRenderer (first-match wins). The filesystem tool, WS protocol, and events are untouched. 13 new tests cover accepts, title (action/path/destination), empty body for info, and per-action body summaries (read/write/edit/edit_lines/grep/ smart_edit/query), content preview truncation, subagent indent, and body key styling. 42 filesystem-renderer tests total. Full suite 827 passed, 1 skipped. Co-Authored-By: Claude <noreply@anthropic.com> |
|---|
|
|
| clients/terminal/tui/renderers/__init__.py |
|---|
| clients/terminal/tui/renderers/filesystem.py |
|---|
| tests/clients/test_filesystem_renderer.py |
|---|