Host dynamic tool invocation request.
@type t() :: %ASM.HostTool.Request{ arguments: term(), id: String.t() | integer(), metadata: map(), provider: atom(), provider_session_id: String.t() | nil, provider_turn_id: String.t() | nil, raw: term(), run_id: String.t(), session_id: String.t(), tool_name: String.t() }
@spec new(keyword() | map() | t()) :: {:ok, t()} | {:error, term()}
@spec new!(keyword() | map() | t()) :: t()