UNPKG

@durable-streams/aisdk-transport

Version:

Vercel AI SDK transport adapters for Durable Streams

43 lines (39 loc) 1.44 kB
import { HeadersRecord } from "@durable-streams/client"; import { ChatTransport, UIMessage } from "ai"; //#region src/types.d.ts type DurableStreamTarget = { writeUrl: string | URL; readUrl?: string | URL; headers?: HeadersRecord; contentType?: string; createIfMissing?: boolean; }; type ToDurableStreamResponseMode = `immediate` | `await`; type WaitUntil = (promise: Promise<unknown>) => void; type ToDurableStreamResponseOptions = { source: AsyncIterable<unknown>; stream: DurableStreamTarget; mode?: ToDurableStreamResponseMode; waitUntil?: WaitUntil; exposeLocationHeader?: boolean; }; type DurableChatTransportOptions = { api: string; reconnectApi?: string; headers?: HeadersInit; fetchClient?: typeof fetch; }; type DurableChatTransport<UIMessageT extends UIMessage = UIMessage> = ChatTransport<UIMessageT>; //#endregion //#region src/client.d.ts declare function createDurableChatTransport<UIMessageT extends UIMessage = UIMessage>({ api, reconnectApi, headers, fetchClient }: DurableChatTransportOptions): ChatTransport<UIMessageT>; //#endregion //#region src/server.d.ts declare function toDurableStreamResponse(options: ToDurableStreamResponseOptions): Promise<Response>; //#endregion export { DurableChatTransport, DurableChatTransportOptions, DurableStreamTarget, ToDurableStreamResponseMode, ToDurableStreamResponseOptions, WaitUntil, createDurableChatTransport, toDurableStreamResponse };