UNPKG

@tanstack/ai

Version:

Type-safe TypeScript AI SDK for streaming chat, tool calling, agents, structured outputs, and multimodal generation.

21 lines (20 loc) 1.14 kB
import { CapabilityHandle } from './capabilities.js'; import { ChatMiddleware } from './types.js'; /** * A middleware whose `requires`/`provides` tuple types are captured precisely * (via `const` inference) for the array coverage check and the builder. */ export interface DefinedChatMiddleware<TContext, TRequires extends ReadonlyArray<CapabilityHandle>, TProvides extends ReadonlyArray<CapabilityHandle>> extends ChatMiddleware<TContext> { requires?: TRequires; provides?: TProvides; } /** * Identity helper for authoring middleware with precise capability inference. * Returns the middleware unchanged at runtime; only sharpens its type so the * `chat()` array coverage check and `createChatMiddleware` builder can read the * exact `requires`/`provides`. */ export declare function defineChatMiddleware<TContext = unknown, const TRequires extends ReadonlyArray<CapabilityHandle> = readonly [], const TProvides extends ReadonlyArray<CapabilityHandle> = readonly []>(middleware: ChatMiddleware<TContext> & { requires?: TRequires; provides?: TProvides; }): DefinedChatMiddleware<TContext, TRequires, TProvides>;