feat(ai): Add start event emission to all providers

- Emit start event with model and provider info after creating stream
- Add abort signal tests for all providers
- Update README abort signal section to reflect non-throwing API
- Fix model references in README examples
This commit is contained in:
Mario Zechner 2025-08-31 23:09:14 +02:00
parent 8d4edf6458
commit a132b8140c
6 changed files with 167 additions and 20 deletions

View file

@ -89,6 +89,14 @@ export class GoogleLLM implements LLM<GoogleLLMOptions> {
};
}
// Abort signal
if (options?.signal) {
if (options.signal.aborted) {
throw new Error("Request aborted");
}
config.abortSignal = options.signal;
}
// Build the request parameters
const params: GenerateContentParameters = {
model: this.model.id,
@ -98,6 +106,8 @@ export class GoogleLLM implements LLM<GoogleLLMOptions> {
const stream = await this.client.models.generateContentStream(params);
options?.onEvent?.({ type: "start", model: this.model.id, provider: this.model.provider });
const blocks: AssistantMessage["content"] = [];
let currentBlock: TextContent | ThinkingContent | null = null;
let usage: Usage = {