import { z } from "zod"; import type { LLMClient } from "../providers/types.js"; import type { FleetManifest } from "./manifest.js"; import type { Outline } from "./decomposer-deep-types.js"; export declare const CRITIQUE_MAX_ROUNDS = 1; export declare const CRITIQUE_PARSE_MAX_RETRIES = 1; export declare const DEEP_CRITIQUE_MAX_TOTAL_CALLS: number; export declare const CRITIQUE_SYSTEM_PROMPT = "You are an independent tech-lead reviewer evaluating a proposed fleet manifest for adequacy.\n\nA fleet manifest is a list of sub-project children, each with a folder name and a build task.\nYou did NOT author this manifest \u2014 it was produced by another agent. Review it as a third-party critic.\n\nOutput ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:\n{\n \"verdict\": \"approve\" | \"reject\",\n \"feedback\": \"\"\n}\n\nRules:\n- \"verdict\" must be exactly \"approve\" or \"reject\" (no other values).\n- \"feedback\" must be a string (empty string is fine for an approval).\n- Approve if: the manifest has enough children to plausibly cover the outlined areas, each child has a clear folder and self-contained task, and there are no obvious duplicates or missing critical areas.\n- Reject if: the manifest is under-expanded (too few children for the number of outlined areas), children are vague or not self-contained, or critical areas from the outline are missing.\n- Output the JSON object and nothing else."; export declare const CRITIQUE_COERCION_INSTRUCTION = "Your previous response was not a valid critique verdict.\nOutput ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:\n{\n \"verdict\": \"approve\" | \"reject\",\n \"feedback\": \"\"\n}\n\nRules:\n- \"verdict\" must be exactly \"approve\" or \"reject\".\n- \"feedback\" must be a string.\n- Output the JSON object and nothing else."; export declare const CritiqueVerdictSchema: z.ZodObject<{ verdict: z.ZodEnum<["approve", "reject"]>; feedback: z.ZodString; }, "strip", z.ZodTypeAny, { feedback: string; verdict: "approve" | "reject"; }, { feedback: string; verdict: "approve" | "reject"; }>; export type CritiqueVerdict = z.infer; export type ValidateVerdictResult = { ok: true; verdict: CritiqueVerdict; } | { ok: false; error: string; }; export declare function validateVerdict(rawText: string): ValidateVerdictResult; export declare function callCritic(input: { client: LLMClient; model: string; goal: string; outline: Outline; candidate: FleetManifest; priorText?: string; formattedError?: string; }): Promise; export declare function getCriticVerdict(input: { client: LLMClient; model: string; goal: string; outline: Outline; candidate: FleetManifest; }): Promise; export declare function runCritiqueLoop(input: { client: LLMClient; model: string; goal: string; outline: Outline; baseline: FleetManifest; expandMaxRetries: number; expand: (input: { client: LLMClient; model: string; outline: Outline; goal: string; maxRetries: number; critiqueFeedback?: string; }) => Promise; }): Promise; //# sourceMappingURL=critic-deep.d.ts.map