/** * LLM responder — calls the configured `AIClient.chat()` and, optionally, * summarizes long answers (matches the behavior of `replyHelper.ai()` so * bots get the same UX whether or not they opted into the pipeline). * * Records `latencyMs` and `model` on the decision for the audit step. */ import type { AIClient, SummarizerLike } from '../types.js'; import type { PipelineContext, PipelineStep, StepResult } from './types.js'; export interface LLMResponderOptions { ai: AIClient; summarizer?: SummarizerLike | null; summarizeOver?: number; /** Label written to the decision's `model` field for audit/telemetry. */ modelName?: string; stepName?: string; } export declare class LLMResponder implements PipelineStep { readonly name: string; readonly ai: AIClient; readonly summarizer: SummarizerLike | null; readonly summarizeOver: number; readonly modelName: string | null; constructor({ ai, summarizer, summarizeOver, modelName, stepName }: LLMResponderOptions); run(ctx: PipelineContext, _decision: unknown): Promise; } //# sourceMappingURL=llm.d.ts.map