Return the tool-call args once enough data has arrived, else None.
A non-object JSON value (a bare scalar or list — rare for tool calls) is
wrapped as {"value": ...} so a caller's tool_args is always an
object.
The returned dict is cached and handed back by identity on a re-run, so callers must treat it as read-only.