ToolCall renders all eight input, approval, execution, output, failure, and
denial states from an agent tool invocation. Lifecycle tinting flows through the
shared status vocabulary.
argsText for partial JSON while input streams. It overrides args.
resultText similarly overrides result. Object rendering is BigInt-safe and
cyclic-safe through the exported formatJsonSafe helper.
Lifecycle states
The default
compact layout discloses its details with a native button. The
expanded layout always mounts details and ignores disclosure props. Inject
approve and deny controls through approvalSlot; it renders only during
approval-requested.