/** * Execution Graph — grafo explícito de execução para tarefas complexas. * * Cada node declara id, kind, agent/skills, inputs/outputs, dependencies, * conditions, retryPolicy, timeout, tokenBudget e validator. * * O planner detecta dependências e computa: * - ordem topológica (execução serial correta) * - batches paralelos (nós independentes executáveis juntos) */ import type { ExecutionGraph, GraphNode } from '../types.js'; export interface GraphInput { id?: string; task: string; nodes: GraphNode[]; budget?: { maxAttempts?: number; maxTokens?: number; maxTimeMs?: number; }; } export declare class ExecutionGraphBuilder { /** * Constrói o grafo, valida ciclos, computa ordem topológica e batches. */ build(input: GraphInput): ExecutionGraph; /** * Kahn's algorithm + agrupamento por níveis de paralelismo. * Retorna (ordem topológica, batches de nós independentes). */ topologicalSort(nodes: GraphNode[]): { order: string[]; parallelBatches: string[][]; }; /** Busca um nó por id. */ getNode(graph: ExecutionGraph, id: string): GraphNode | undefined; /** Verifica se todos os nós estão concluídos (succeeded/skipped). */ isComplete(graph: ExecutionGraph): boolean; /** Verifica se algum nó falhou definitivamente. */ hasHardFailure(graph: ExecutionGraph): boolean; /** Subgrafo de um node: ele + dependências transitivas (para replan local). */ subgraphOf(graph: ExecutionGraph, nodeId: string): GraphNode[]; } /** * Helpers de condição simples — avalia expressões booleanas sobre o estado * do grafo (ex.: `artifact.architecture.valid == true` → dependências prontas). */ export declare function evaluateCondition(cond: string | undefined, state: Record): boolean; //# sourceMappingURL=graph.d.ts.map