export type ReflectionInput = { userMessage: string; assistantReply: string; toolCalls: ReadonlyArray<{ name: string; ok?: boolean; errorText?: string; }>; sessionId: string; }; export type ReflectionVerdict = { score: "good" | "ok" | "poor"; reasons: string[]; toolErrorPatterns: string[]; }; /** * Cheap heuristic scoring. No model call. Spots common low-quality patterns: * - reply much longer than user message but user is terse * - reply contains a tool error string verbatim (= didn't recover) * - reply opens with classic preamble while user is curt * - tool errors > tool successes in this turn */ export declare function scoreReplyHeuristic(input: ReflectionInput): ReflectionVerdict; /** * Run reflection. Logs poor verdicts to the failure-mining store so the * curator can convert recurring patterns into anti-skills. * * Fire-and-forget — no return value, no throws. */ export declare function reflectOnReply(input: ReflectionInput): void;