/**
 * insight-evolver.ts — Evolution Agent 领域函数
 *
 * Evolution Agent 是管线中的专职进化角色：
 *   - 接收当前维度的**全部**现有 Recipe（不仅是衰退的）
 *   - 使用工具读取真实代码，验证每个 Recipe 的真实性
 *   - 通过**附加提案**（Proposal）驱动状态变更，不创建新 Recipe
 *   - 三种决策: propose_evolution / confirm_deprecation / skip_evolution
 *
 * 被 PipelineStrategy 的 evolution preset 引用。
 * 按维度隔离：每个维度的 Evolve Stage 只处理属于该维度的 Recipe。
 *
 * @module insight-evolver
 */
/** 静态审计 hint（可选）— 来自 RecipeRelevanceAuditor */
export interface AuditHint {
    relevanceScore: number;
    verdict: string;
    evidence: {
        triggerStillMatches: boolean;
        symbolsAlive: number;
        depsIntact: boolean;
        codeFilesExist: number;
    };
    decayReasons: string[];
}
/** 现有 Recipe（含可选的 audit hint） */
export interface ExistingRecipeForEvolution {
    id: string;
    title: string;
    trigger: string;
    content?: {
        markdown?: string;
        rationale?: string;
        coreCode?: string;
    };
    sourceRefs?: string[];
    /** 静态审计 hint — 仅供参考，Agent 应通过读代码自行验证 */
    auditHint?: AuditHint | null;
}
/** Evolution Agent 上下文 */
export interface EvolutionContext {
    /** 当前维度的全部现有 Recipe（healthy + decaying），按维度过滤后注入 */
    existingRecipes: ExistingRecipeForEvolution[];
    dimensionId: string;
    dimensionLabel: string;
    projectOverview: {
        primaryLang: string;
        fileCount: number;
        modules: string[];
    };
}
export declare const EVOLVER_SYSTEM_PROMPT = "\u4F60\u662F AutoSnippet \u7684 **Evolution Agent**\uFF0C\u4E13\u804C\u9A8C\u8BC1\u9879\u76EE\u4E2D\u73B0\u6709\u77E5\u8BC6\u6761\u76EE\uFF08Recipe\uFF09\u7684\u771F\u5B9E\u6027\u4E0E\u65F6\u6548\u6027\u3002\n\n## \u6838\u5FC3\u804C\u8D23\n\n\u4F60\u901A\u8FC7\u9605\u8BFB\u9879\u76EE\u771F\u5B9E\u4EE3\u7801\u6765\u9A8C\u8BC1\u6BCF\u6761 Recipe \u662F\u5426\u4ECD\u7136\u53CD\u6620\u5F53\u524D\u9879\u76EE\u5B9E\u8DF5\u3002\n\u4F60\u7684\u5DE5\u4F5C\u7ED3\u679C\u4EE5**\u63D0\u6848\uFF08Proposal\uFF09**\u65B9\u5F0F\u9644\u52A0\u5230\u73B0\u6709 Recipe \u4E0A\uFF0C\u63A8\u52A8\u77E5\u8BC6\u5E93\u7684\u6E10\u8FDB\u5F0F\u6F14\u5316\u3002\n\u4F60**\u4E0D\u521B\u5EFA\u65B0 Recipe**\u2014\u2014\u90A3\u662F\u540E\u7EED Produce \u9636\u6BB5\u7684\u804C\u8D23\u3002\n\n## \u9A8C\u8BC1\u6D41\u7A0B\n\n\u5BF9\u6BCF\u4E2A Recipe \u6309\u4EE5\u4E0B\u6B65\u9AA4\u9A8C\u8BC1:\n1. \u9605\u8BFB Recipe \u7684\u6838\u5FC3\u4EE3\u7801\u7247\u6BB5\u548C\u6E90\u6587\u4EF6\u5F15\u7528\uFF0C\u7406\u89E3\u5176\u63CF\u8FF0\u7684\u6A21\u5F0F\n2. \u4F7F\u7528 `read_project_file` \u8BFB\u53D6\u6E90\u6587\u4EF6\uFF0C\u9A8C\u8BC1\u4EE3\u7801\u662F\u5426\u5B58\u5728\u4E14\u4E0E Recipe \u63CF\u8FF0\u5339\u914D\n3. \u5982\u679C\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728\u6216\u4EE3\u7801\u4E0D\u5339\u914D\uFF0C\u4F7F\u7528 `search_project_code` \u641C\u7D22\u8BE5\u6A21\u5F0F\u662F\u5426\u5DF2\u8FC1\u79FB\u5230\u5176\u4ED6\u4F4D\u7F6E\n4. \u57FA\u4E8E\u771F\u5B9E\u4EE3\u7801\u7684\u9A8C\u8BC1\u7ED3\u679C\u505A\u51FA\u51B3\u7B56\n\n## \u51B3\u7B56\u89C4\u5219\n\n\u6309\u4EE5\u4E0B\u51B3\u7B56\u6811\u5224\u65AD\uFF08\u4F18\u5148\u7EA7\u4ECE\u4E0A\u5230\u4E0B\uFF09:\n\n| \u9A8C\u8BC1\u7ED3\u679C | \u51B3\u7B56 | \u5DE5\u5177 |\n|---------|------|------|\n| \u6E90\u6587\u4EF6\u5B58\u5728 + \u4EE3\u7801\u5339\u914D Recipe \u63CF\u8FF0 | **\u8DF3\u8FC7**: \u4ECD\u7136\u6709\u6548 | `skip_evolution` |\n| \u6E90\u6587\u4EF6\u5B58\u5728 + \u4EE3\u7801\u5DF2\u53D8\u5316\uFF08\u63A5\u53E3\u6539\u53D8/\u91CD\u6784\uFF09 | **\u8FDB\u5316\u63D0\u6848**: \u9644\u52A0\u53D8\u66F4\u8BC1\u636E | `propose_evolution` |\n| \u6E90\u6587\u4EF6\u4E0D\u5B58\u5728 + \u6A21\u5F0F\u5DF2\u8FC1\u79FB\u5230\u65B0\u4F4D\u7F6E | **\u8FDB\u5316\u63D0\u6848**: \u9644\u52A0\u8FC1\u79FB\u8BC1\u636E | `propose_evolution` |\n| \u6E90\u6587\u4EF6\u4E0D\u5B58\u5728 + \u5B8C\u5168\u65E0\u66FF\u4EE3 | **\u786E\u8BA4\u5E9F\u5F03**: \u77E5\u8BC6\u5DF2\u5931\u6548 | `confirm_deprecation` |\n| \u4FE1\u606F\u4E0D\u8DB3\u4EE5\u505A\u51FA\u5224\u65AD | **\u8DF3\u8FC7**: \u4EA4\u7ED9\u65F6\u9650\u673A\u5236 | `skip_evolution` |\n\n## \u5DE5\u5177\u8BF4\u660E\n\n- `propose_evolution` \u2014 \u4E3A Recipe \u9644\u52A0\u8FDB\u5316\u63D0\u6848\uFF0C\u5305\u542B\u4EE3\u7801\u9A8C\u8BC1\u8BC1\u636E\u548C\u5EFA\u8BAE\u53D8\u66F4\u3002\u63D0\u6848\u8FDB\u5165\u89C2\u5BDF\u7A97\u53E3\uFF08enhance: 48h, correction: 24h\uFF09\uFF0C\u4E0D\u76F4\u63A5\u4FEE\u6539 Recipe\n- `confirm_deprecation` \u2014 \u786E\u8BA4 Recipe \u5DF2\u8FC7\u65F6\uFF0C\u7ACB\u5373\u6807\u8BB0\u4E3A deprecated\uFF08\u8DF3\u8FC7\u89C2\u5BDF\u7A97\u53E3\uFF09\n- `skip_evolution` \u2014 \u663E\u5F0F\u8DF3\u8FC7\uFF0Creason \u4E2D\u8BF4\u660E\u662F\"\u9A8C\u8BC1\u6709\u6548\"\u8FD8\u662F\"\u4FE1\u606F\u4E0D\u8DB3\"\n\n## \u91CD\u8981\u7EA6\u675F\n\n- \u6BCF\u4E2A Recipe \u5FC5\u987B\u6709\u4E00\u4E2A\u660E\u786E\u51B3\u7B56\uFF0C\u4E0D\u8981\u9057\u6F0F\u4EFB\u4F55\u4E00\u4E2A\n- `propose_evolution` \u7684 evidence \u5B57\u6BB5\u5FC5\u987B\u5305\u542B\u4F60\u8BFB\u5230\u7684\u771F\u5B9E\u4EE3\u7801\uFF0C\u4E0D\u8981\u7F16\u9020\n- `propose_evolution` \u7684 type \u533A\u5206: enhance\uFF08\u6A21\u5F0F\u8FC1\u79FB/\u529F\u80FD\u6269\u5C55\uFF09vs correction\uFF08\u63CF\u8FF0\u9519\u8BEF/\u63A5\u53E3\u53D8\u66F4\uFF09\n- \u90E8\u5206 Recipe \u9644\u5E26\u7CFB\u7EDF\u9884\u68C0\u63D0\u793A\uFF08auditHint\uFF09\uFF0C\u4EC5\u4F9B\u53C2\u8003\u2014\u2014\u4F60\u5FC5\u987B\u4EE5\u5B9E\u9645\u8BFB\u5230\u7684\u4EE3\u7801\u4E3A\u51C6\n- \u5373\u4F7F\u9884\u68C0\u63D0\u793A\u8BF4\"healthy\"\uFF0C\u4F60\u8BFB\u4EE3\u7801\u540E\u53D1\u73B0\u4E0D\u5339\u914D\u4E5F\u8981\u63D0\u4EA4\u63D0\u6848";
export declare const EVOLVER_TOOLS: string[];
export declare const EVOLVER_BUDGET: {
    maxIterations: number;
    searchBudget: number;
    searchBudgetGrace: number;
    maxSubmits: number;
    softSubmitLimit: number;
    idleRoundsToExit: number;
};
/**
 * 构建 Evolution Agent 的用户 Prompt
 *
 * 按维度打包全部现有 Recipe 清单 + 可选 audit hint + 项目概览，
 * 让 Agent 通过提案机制对每个 Recipe 做出进化/废弃/跳过决策。
 */
export declare function buildEvolverPrompt(_phaseInput: unknown, _phaseResults: unknown, strategyContext: EvolutionContext): string;
