chatStream method
Stream chat responses with real-time events
API Reference: https://docs.anthropic.com/en/api/messages-streaming
Returns a stream of events including text deltas, thinking deltas, tool calls, and completion events. Supports all message types and extended thinking for reasoning models.
Implementation
@override
Stream<ChatStreamEvent> chatStream(
List<ChatMessage> messages, {
List<Tool>? tools,
}) async* {
final effectiveTools = tools ?? config.tools;
final requestBody =
_requestBuilder.buildRequestBody(messages, effectiveTools, true);
// Create SSE stream - headers are automatically handled by AnthropicClient
// including interleaved thinking beta header if enabled
final stream = client.postStreamRaw(chatEndpoint, requestBody);
await for (final chunk in stream) {
final events = _parseStreamEvents(chunk);
for (final event in events) {
yield event;
}
}
}