Memoised result of the most recent clipboard probe. The hash is a
content fingerprint of the clipboard image’s raw RGBA bytes (or
None when the clipboard holds no image). Letting build_status
compare this against UiState::pending_image_hashes is what powers
the “hide hint after I already pasted THIS image, but show it again
if the user copies a different one” UX.
What the /issue wizard hands back to the event loop after the user
finishes step 2. The event loop turns this into a POST /repos/.../issues
API call and echoes the resulting issue URL into scrollback.
Why the event loop exited. Callers (currently just atomcode-tuix::run)
use this to decide whether to re-exec into the new binary after an
in-place upgrade or just terminate normally.
Convert a snake_case tool name to PascalCase for display. The agent
protocol uses read_file, edit_file, web_fetch etc.; the UI shows
ReadFile, EditFile, WebFetch — a CC-style convention that reads
more cleanly at a glance.
CC-style short tool name. Strips the redundant _file /
_directory / _files suffixes (the noun is implicit from the
arg) before PascalCase conversion. Generic — no per-tool match
arms; works for any future tool that follows the
<verb>_<noun> convention.