/** * AI SDK Middleware * * Provides middleware for injecting attribution context into AI SDK calls. * Supports multi-agent safety with agent_id, run_id, trace_id, session_id. */ import type { AttributionContext, AISDKBackendConfig } from './types'; /** * Middleware interface for AI SDK language models * Compatible with AI SDK's LanguageModelMiddleware type */ export interface AISDKMiddleware { transformParams?: (options: { params: Record; type: 'generate' | 'stream'; model: unknown; }) => Promise> | Record; wrapGenerate?: (options: { doGenerate: () => Promise; doStream: () => Promise; params: Record; model: unknown; }) => Promise; wrapStream?: (options: { doGenerate: () => Promise; doStream: () => Promise; params: Record; model: unknown; }) => Promise; } /** * Create attribution middleware that injects agent context into requests * * Injects: * - Headers: X-Agent-Id, X-Run-Id, X-Trace-Id, X-Session-Id * - Provider options metadata where supported */ export declare function createAttributionMiddleware(ctx: AttributionContext): AISDKMiddleware; /** * Create logging middleware for debug purposes * Only logs when debugLogging is enabled */ export declare function createLoggingMiddleware(config: AISDKBackendConfig): AISDKMiddleware; /** * Create timeout middleware that wraps requests with AbortController */ export declare function createTimeoutMiddleware(timeoutMs: number): AISDKMiddleware; /** * Compose multiple middlewares into one * Middlewares are applied in order (first transforms first, last wraps innermost) */ export declare function composeMiddleware(...middlewares: AISDKMiddleware[]): AISDKMiddleware; /** * Redact sensitive data from objects for safe logging */ export declare function redactSensitiveData(obj: unknown): unknown; /** * Create all standard middlewares for the AI SDK backend */ export declare function createStandardMiddleware(config: AISDKBackendConfig, attribution?: AttributionContext): AISDKMiddleware;