Typed tool output. The LLM-facing string is derived from the structured
value exactly once, at construction, so the two can never drift. Deref to
str keeps every text read site working on the rendered form.
Closed set of runtime-resolvable option domains a tool parameter can
draw its values from. Tools declare the domain; resolution happens
where live config is visible (the runtime), so surfaces render real
selectable choices instead of free-text guessing.
Loud, actionable banner that filesystem-touching tools surface when the
active runtime uses an ephemeral workspace — e.g. a Docker container
with no host volume mount, where the workspace is a private tmpfs. In that
mode writes succeed inside the container but never reach the host and are
discarded when the session ends, and reads may return stale or empty data.
Surfacing this prevents silent data loss.