@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
TypeScript
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>;