import type { TStage } from "../../lib/pipelines/types.js"; import type { TReasoningEffort } from "../../lib/llm/types.js"; export type TDistillOutput = { argumentText: string; }; /** * Options for creating a distill turn. */ export type TDistillTurnOptions = { model: string; reasoningEffort?: TReasoningEffort; /** Called after the turn completes to seal the conversation. */ onClose: () => void; }; /** * Create a distill turn stage. * * The distill stage reads the full builder conversation (user↔reviewer * transcript) and produces clean single-author prose representing the user's * final, settled argument. The prose is then fed into the existing ingestion * pipeline (by the consumer) to yield a `TParsedArgumentResponse` shaped * exactly like ingested arguments — same enrichment, same parser, zero drift. * * The whole transcript reaches this turn via the existing chaining * (`previousResponseId` / `userMessage`) — chained off the latest response, * not a re-rooted pre-review response. The distill prompt uses reviewer * questions only as context to interpret the user's (often terse, reactive) * answers; the ingestion pipeline keeps receiving single-author text and is * never told it originated from a conversation. * * This is the terminal turn — seals the conversation via `onClose`. * No further turns are allowed after this. * * `retry.maxAttempts: 1` — distillation failure is a content issue, not a * transient one. Retrying the same prompt will not help. */ export declare function createDistillTurn(options: TDistillTurnOptions): TStage; //# sourceMappingURL=distill.d.ts.map