diff --git a/js/ai/src/generate.ts b/js/ai/src/generate.ts index 2cea52ebd1..8affb2aec7 100755 --- a/js/ai/src/generate.ts +++ b/js/ai/src/generate.ts @@ -156,7 +156,7 @@ export interface GenerateOptions< /** Maximum number of tool call iterations that can be performed in a single generate call (default 5). */ maxTurns?: number; /** When provided, models supporting streaming will call the provided callback with chunks as generation progresses. */ - onChunk?: StreamingCallback; + onChunk?: StreamingCallback>>; /** * When provided, models supporting streaming will call the provided callback with chunks as generation progresses. * @@ -298,7 +298,10 @@ async function toolsToActionRefs( return tools; } -function messagesFromOptions(options: GenerateOptions): MessageData[] { +function messagesFromOptions< + O extends z.ZodTypeAny = z.ZodTypeAny, + CustomOptions extends z.ZodTypeAny = z.ZodType, +>(options: GenerateOptions): MessageData[] { const messages: MessageData[] = []; if (options.system) { messages.push({ @@ -549,7 +552,7 @@ export type GenerateStreamOptions< > = Omit, 'streamingCallback'>; export interface GenerateStreamResponse { - get stream(): AsyncIterable; + get stream(): AsyncIterable>; get response(): Promise>; } @@ -562,7 +565,7 @@ export function generateStream< | GenerateOptions | PromiseLike> ): GenerateStreamResponse { - const channel = new Channel(); + const channel = new Channel>(); const generated = Promise.resolve(options).then((resolvedOptions) => generate(registry, { diff --git a/js/genkit/src/genkit.ts b/js/genkit/src/genkit.ts index 77abd1e531..f8def4622f 100644 --- a/js/genkit/src/genkit.ts +++ b/js/genkit/src/genkit.ts @@ -358,7 +358,7 @@ export class Genkit implements HasRegistry { input?: I, opts?: PromptGenerateOptions ): GenerateStreamResponse => { - let channel = new Channel(); + let channel = new Channel>(); const generated = runInNewSpan( this.registry,