UNPKG

@durable-streams/tanstack-ai-transport

Version:
83 lines (79 loc) 3.49 kB
import { DurableStream, HeadersRecord } from "@durable-streams/client"; //#region src/types.d.ts type TanStackChunk = any; type DurableSessionConnection = { subscribe: (abortSignal?: AbortSignal) => AsyncIterable<TanStackChunk>; send: (messages: Array<unknown>, data?: unknown, abortSignal?: AbortSignal) => Promise<void>; }; type DurableStreamConnection = DurableSessionConnection; type DurableStreamConnectionOptions = { sendUrl: string; readUrl?: string; initialOffset?: string; emitSnapshotOnSubscribe?: boolean; headers?: HeadersInit; fetchClient?: typeof fetch; }; type DurableStreamTarget = { writeUrl: string | URL; readUrl?: string | URL; headers?: HeadersRecord; contentType?: string; createIfMissing?: boolean; }; type DurableChatSessionStreamTarget = Pick<DurableStreamTarget, `writeUrl` | `headers` | `createIfMissing`>; type ToDurableStreamResponseMode = `immediate` | `await`; type WaitUntil = (promise: Promise<unknown>) => void; type ToDurableStreamResponseOptions = { stream: DurableStreamTarget; mode?: ToDurableStreamResponseMode; waitUntil?: WaitUntil; exposeLocationHeader?: boolean; }; type DurableSessionMessagePart = { type?: string; content?: string; text?: string; }; type DurableSessionMessage = { id?: string; role?: string; parts?: Array<DurableSessionMessagePart>; }; type ToDurableChatSessionResponseOptions = { stream: DurableChatSessionStreamTarget; newMessages: Array<DurableSessionMessage>; responseStream: AsyncIterable<TanStackChunk>; mode?: ToDurableStreamResponseMode; waitUntil?: WaitUntil; }; //#endregion //#region src/client.d.ts declare function durableStreamConnection(options: DurableStreamConnectionOptions): DurableStreamConnection; declare function sanitizeChunkForStorage<TChunk extends TanStackChunk>(chunk: TChunk): TChunk; declare function materializeSnapshotFromDurableStream(options: { readUrl: string; headers?: HeadersInit; offset?: string; }): Promise<{ messages: Array<any>; offset?: string; }>; //#endregion //#region src/server.d.ts declare function ensureDurableChatSessionStream(streamTarget: DurableStreamTarget): Promise<DurableStream>; declare function toMessageEchoChunks(message: { id?: string; role?: string; parts?: Array<{ type?: string; content?: string; text?: string; }>; }): Array<TanStackChunk>; declare function appendSanitizedChunksToStream(stream: DurableStream, chunks: ReadonlyArray<TanStackChunk>, contentType?: string): Promise<void>; declare function pipeSanitizedChunksToStream(source: AsyncIterable<TanStackChunk>, stream: DurableStream, contentType?: string): Promise<void>; declare function toDurableStreamResponse(source: AsyncIterable<unknown>, options: ToDurableStreamResponseOptions): Promise<Response>; declare function toDurableChatSessionResponse(options: ToDurableChatSessionResponseOptions): Promise<Response>; //#endregion export { DurableChatSessionStreamTarget, DurableSessionConnection, DurableSessionMessage, DurableSessionMessagePart, DurableStreamConnection, DurableStreamConnectionOptions, DurableStreamTarget, TanStackChunk, ToDurableChatSessionResponseOptions, ToDurableStreamResponseMode, ToDurableStreamResponseOptions, WaitUntil, appendSanitizedChunksToStream, durableStreamConnection, ensureDurableChatSessionStream, materializeSnapshotFromDurableStream, pipeSanitizedChunksToStream, sanitizeChunkForStorage, toDurableChatSessionResponse, toDurableStreamResponse, toMessageEchoChunks };