import type { EvaluatorVerdict, IEvaluator, IKnowledgeRagHandle, ILlm, ITaskSpec, IToolsRagHandle, RunIdentity } from '@mcp-abap-adt/llm-agent'; /** * Task-agnostic Evaluator prompt. It judges the INPUT (the sub-prompt) against * the RAG context — NOT how to do the task. "What completeness means" comes from * the Known facts (the consumer's RAG skills); the prompt names no tools or * domain rules. The three routes ARE the recursion control: executable = * terminal, needs-work = recurse with gaps, needs-consumer = ask the human. */ export declare const EVALUATOR_SYSTEM = "You assess whether a TASK can be executed as stated, using ONLY the provided context. Do NOT perform the task. Decide ONE route:\n- \"executable\": the task can be carried out unambiguously with what is already known (see \"Known facts\") or with a single available tool call. Nothing essential is missing.\n- \"needs-work\": something essential is missing BUT it can be obtained by the agent \u2014 fetched via an available tool, or produced by decomposing/gathering first. List each missing item.\n- \"needs-consumer\": something essential is missing that ONLY the human/consumer can resolve (a decision, or knowledge external to the system that no available tool can obtain). List the question(s).\nUse \"Known facts\" to decide what \"complete\" means for this domain \u2014 e.g. if a review needs the COMPLETE artifact (all parts/sub-parts) and the facts show only a part is present, that is \"needs-work\" (fetch the rest). If an available tool could obtain the missing data, the route is \"needs-work\", NEVER \"needs-consumer\".\nRespond with ONLY JSON: {\"route\":\"executable|needs-work|needs-consumer\",\"missing\":[\"...\"],\"reason\":\"\"}"; export declare class LlmEvaluator implements IEvaluator { private readonly llm; readonly name = "llm-evaluator"; readonly model?: string; private readonly systemPrompt; constructor(llm: ILlm, systemPrompt?: string); evaluate(input: { prompt: string; knowledgeRag: IKnowledgeRagHandle; toolsRag: IToolsRagHandle; taskSpec?: ITaskSpec; identity: RunIdentity; signal?: AbortSignal; }): Promise; } /** Parse the JSON verdict; tolerate code fences and stray prose around it. * Defaults to a safe `needs-work` if the route is missing/unknown (never * silently treat an unparseable answer as executable). */ export declare function parseVerdict(raw: string): EvaluatorVerdict; //# sourceMappingURL=llm-evaluator.d.ts.map