import type { FleetManifest } from "./manifest.js"; import type { LLMClient } from "../providers/types.js"; export declare const DECOMPOSE_SYSTEM_PROMPT = "You are a tech-lead decomposing ONE high-level goal into N independent, buildable sub-projects.\n\nOutput ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:\n{\n \"children\": [\n { \"folder\": \"\", \"task\": \"\" }\n ]\n}\n\nRules:\n- \"folder\" must be a short kebab-case directory name (e.g. \"api-server\", \"web-frontend\", \"cli-tool\").\n- \"task\" must be a complete, self-contained instruction that a code-generation agent can execute independently.\n- You MUST include at least 1 child.\n- Do NOT include \"config\", \"concurrency\", \"rootDir\", or \"provider\" keys anywhere in the output.\n- Each child carries ONLY \"folder\" and \"task\" \u2014 no other keys.\n- Output the JSON object and nothing else."; export declare const DECOMPOSE_COERCION_INSTRUCTION = "Your previous response was not a valid fleet manifest.\nOutput ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:\n{\n \"children\": [\n { \"folder\": \"\", \"task\": \"\" }\n ]\n}\n\nRules:\n- \"folder\" must be a short kebab-case directory name.\n- \"task\" must be a complete, self-contained build instruction.\n- You MUST include at least 1 child.\n- Do NOT include \"config\", \"concurrency\", \"rootDir\", or \"provider\" keys anywhere in the output.\n- Each child carries ONLY \"folder\" and \"task\" \u2014 no other keys.\n- Output the JSON object and nothing else."; export declare const DECOMPOSE_MAX_RETRIES = 1; export interface DecomposeInput { goal: string; client: LLMClient; model: string; maxRetries?: number; } type ValidateResult = { ok: true; manifest: FleetManifest; } | { ok: false; error: string; }; export declare function validateManifest(rawText: string): ValidateResult; export declare function decomposeGoal(input: DecomposeInput): Promise; export {}; //# sourceMappingURL=decomposer.d.ts.map