feat(models): add streaming types for chat responses

This commit is contained in:
William Valentin
2026-02-05 10:46:53 -08:00
parent 228e7d86bd
commit 1f0cf28d1f
+18 -4
View File
@@ -12,12 +12,26 @@ export interface ChatRequest {
export interface ChatResponse { export interface ChatResponse {
content: string; content: string;
stopReason: 'end_turn' | 'max_tokens' | 'stop_sequence' | string; stopReason: 'end_turn' | 'max_tokens' | 'stop_sequence' | string;
usage: { usage: TokenUsage;
inputTokens: number; }
outputTokens: number;
}; export interface TokenUsage {
inputTokens: number;
outputTokens: number;
}
export interface ChatStreamEvent {
type: 'content' | 'done' | 'error';
content?: string;
usage?: TokenUsage;
error?: Error;
}
export interface StreamingModelClient {
chatStream(request: ChatRequest): AsyncIterable<ChatStreamEvent>;
} }
export interface ModelClient { export interface ModelClient {
chat(request: ChatRequest): Promise<ChatResponse>; chat(request: ChatRequest): Promise<ChatResponse>;
chatStream?(request: ChatRequest): AsyncIterable<ChatStreamEvent>;
} }