/** Minimal YAML subset parser for agent/graph.yaml (no dependency). */ export type GraphNode = { id: string; needs: string[]; tools: string[]; writes: string[]; eval: string; maxAttempts: number; refs: string[]; optional?: boolean; inputs?: string[]; optionalInputs?: string[]; optionalRefs?: string[]; kind?: "agent" | "tool" | "critic"; command?: string[]; repair?: string; historicalAfter?: string; subjectPaths?: string[]; }; export type SkillGraph = { version: number; stop_at: string; nodes: GraphNode[]; }; /** Parse the Vitris agent graph YAML (intentionally small surface). */ export declare function parseGraphYaml(text: string): SkillGraph; export type NodeStatus = "pending" | "in_progress" | "done" | "failed"; export type CumulativeSpend = { iterations: number; calls: number; inputTokens: number; outputTokens: number; durationMs: number; jevCalls?: number; jevInputTokens?: number; jevOutputTokens?: number; agentTokensMeasured?: boolean; hasUnmeteredStages?: boolean; toolCalls?: number; toolDurationMs?: number; reviewer?: { calls: number; inputTokens: number; outputTokens: number; tokens: number; durationMs: number; reservedTokens: number; unknownCalls: number; }; }; export type AgentState = { version: number; status: string; current: string | null; preview_ready: boolean; launched: boolean; iteration: number; cumulativeSpend?: CumulativeSpend; limits?: { iterations: number; tokens?: number; durationMs?: number; }; consecutiveFailures?: Record; nodes: Record; }; export declare function nextNode(graph: SkillGraph, state: AgentState, opts?: { includeOptional?: boolean; }): GraphNode | null; export declare function isPreviewReady(graph: SkillGraph, state: AgentState): boolean; export declare function validateGraph(graph: SkillGraph): void; export declare function initialState(graph: SkillGraph): AgentState; export declare function invalidate(graph: SkillGraph, state: AgentState, id: string): void;