UNPKG

@ai-sdk/svelte

Version:

[Svelte](https://svelte.dev/) UI components for the [AI SDK](https://ai-sdk.dev/docs):

84 lines 3.02 kB
import { type FetchFunction, type InferSchema } from '@ai-sdk/provider-utils'; import { type DeepPartial, type Schema } from 'ai'; import type * as z3 from 'zod/v3'; import type * as z4 from 'zod/v4'; export type Experimental_StructuredObjectOptions<SCHEMA extends z3.Schema | z4.core.$ZodType | Schema, RESULT = InferSchema<SCHEMA>> = { /** * The API endpoint. It should stream JSON that matches the schema as chunked text. */ api: string; /** * A Zod schema that defines the shape of the complete object. */ schema: SCHEMA; /** * An unique identifier. If not provided, a random one will be * generated. When provided, the `useObject` hook with the same `id` will * have shared states across components. */ id?: string; /** * An optional value for the initial object. */ initialValue?: DeepPartial<RESULT>; /** * Custom fetch implementation. You can use it as a middleware to intercept requests, * or to provide a custom fetch implementation for e.g. testing. */ fetch?: FetchFunction; /** * Callback that is called when the stream has finished. */ onFinish?: (event: { /** * The generated object (typed according to the schema). * Can be undefined if the final object does not match the schema. */ object: RESULT | undefined; /** * Optional error object. This is e.g. a TypeValidationError when the final object does not match the schema. */ error: Error | undefined; }) => Promise<void> | void; /** * Callback function to be called when an error is encountered. */ onError?: (error: Error) => void; /** * Additional HTTP headers to be included in the request. */ headers?: Record<string, string> | Headers; /** * The credentials mode to be used for the fetch request. * Possible values are: 'omit', 'same-origin', 'include'. * Defaults to 'same-origin'. */ credentials?: RequestCredentials; }; export declare class StructuredObject<SCHEMA extends z3.Schema | z4.core.$ZodType | Schema, RESULT = InferSchema<SCHEMA>, INPUT = unknown> { #private; /** * The current value for the generated object. Updated as the API streams JSON chunks. */ get object(): DeepPartial<RESULT> | undefined; /** The error object of the API request */ get error(): Error | undefined; /** * Flag that indicates whether an API request is in progress. */ get loading(): boolean; constructor(options: Experimental_StructuredObjectOptions<SCHEMA, RESULT>); /** * Abort the current request immediately, keep the current partial object if any. */ stop: () => void; /** * Calls the API with the provided input as JSON body. */ submit: (input: INPUT) => Promise<void>; /** * Clears the object state. */ clear: () => void; } //# sourceMappingURL=structured-object.svelte.d.ts.map