tool carries the RESULT of a native tool call back to the model and is only ever produced
alongside a preceding assistant turn whose ChatMessage.toolCalls it answers. Its
content is one or more tool_resultChatMessageContentBlocks. Drivers that do not
implement tools (BaseLLM.SupportsTools === false) map it to user like any other non-assistant
role, so an unsupported driver degrades to prose rather than erroring.
The possible roles for a chat message.
toolcarries the RESULT of a native tool call back to the model and is only ever produced alongside a precedingassistantturn whose ChatMessage.toolCalls it answers. Its content is one or moretool_resultChatMessageContentBlocks. Drivers that do not implement tools (BaseLLM.SupportsTools === false) map it touserlike any other non-assistant role, so an unsupported driver degrades to prose rather than erroring.