@durable-streams/aisdk-transport
Version:
Vercel AI SDK transport adapters for Durable Streams
43 lines (39 loc) • 1.44 kB
TypeScript
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 };