The streamText result contains an output promise that resolves to the final object.
The object is fully typed. When the type validation according to the schema fails, the promise will be rejected with a TypeValidationError.
index.ts
import { streamText, Output } from 'ai';import { z } from 'zod';const result = streamText({ model: 'openai/gpt-6-astra', output: Output.object({ schema: z.object({ recipe: z.object({ name: z.string(), ingredients: z.array(z.string()), steps: z.array(z.string()), }), }), }), prompt: 'Generate a lasagna recipe.',});for await (const partialObject of result.partialOutputStream) {}try { const { recipe } = await result.output; console.log('Recipe:', JSON.stringify(recipe, null, 2));} catch (error) { console.error(error);}