/** * Planner — constrói o Execution Graph dinamicamente a partir da tarefa. * * Estratégia: * 1. Classifica a tarefa (reutiliza a classificação do Decision Engine). * 2. Seleciona o template de workflow do skill-resolver (compositions). * 3. Expande em nós: discovery → architect → (security ∥ database ∥ product) * → senior-engineer → qa+critic → evaluator. * 4. Nodes paralelos detectados pelo grafo (parallelBatches). * * Templates estáticos existem para composições comuns; tarefas fora do padrão * geram grafo linear default. Nunca um grafo gigante para todos os casos. */ import type { ExecutionGraph, GraphNode } from '../types.js'; import { ExecutionGraphBuilder } from './graph.js'; export interface PlannerContext { task: string; /** Categoria classificada (ex.: 'frontend', 'debugging'). */ category: string; /** Agente principal selecionado. */ primaryAgent: string; /** Chain de skills resolvida para a categoria. */ skillChain: string[]; /** Composição de workflow encontrada no resolver (id) ou null. */ workflow?: string | null; } export declare const WORKFLOW_TEMPLATES: Record GraphNode[]>; export declare const TEMPLATE_ORDER: string[]; /** Mapeia categoria do classifier → template de workflow. */ export declare function templateForCategory(category: string): string; export declare class Planner { private readonly builder; constructor(builder?: ExecutionGraphBuilder); /** * Planeja o grafo para a tarefa. `template` explícito vence; senão deriva * da categoria. Tarefas simples (1 agente) usam o template implementation. */ plan(ctx: PlannerContext): ExecutionGraph; /** * Replan — reconstrói o grafo após uma falha não-recuperável, marcando * nós já concluídos como skipped e substituindo o agente/skill falho. */ replan(prev: ExecutionGraph, failedNodeId: string, replacement?: { agent?: string; skills?: string[]; }): ExecutionGraph; } //# sourceMappingURL=planner.d.ts.map