/** * v2.5 — LLM fallback resolver. * * Sérialise un hunk de conflit + son contexte, envoie le prompt à l'endpoint * LLM injecté par le consommateur, valide le résultat proposé, et retourne * la résolution avec une trace d'audit complète. * * ### Contrainte browser * Ce module n'utilise aucun module Node.js natif (`fs`, `crypto`, `child_process`…). * Le hash SHA-256 est calculé via l'API Web Crypto (`globalThis.crypto.subtle`), * disponible en browser, Node.js ≥ 18, et Tauri. */ import type { ConflictHunk, LlmFallbackConfig, LlmTrace } from "../types.js"; /** Résultat de la tentative de résolution LLM d'un hunk. */ export interface LlmResolveResult { /** Lignes résolues (null = résolution refusée) */ lines: string[] | null; /** Raison lisible de l'acceptation ou du refus */ reason: string; /** Trace d'audit complète (toujours présente, même en cas de refus) */ llmTrace: LlmTrace; } /** * Tente de résoudre un hunk de conflit via le fallback LLM. * * Pipeline : * 1. Construit le prompt (sérialisation hunk + contexte + trace partielle) * 2. Calcule le hash SHA-256 du prompt (audit de reproductibilité) * 3. Appelle `config.endpoint.call(prompt)` (fourni par le consommateur) * 4. Parse la réponse (extrait les lignes résolues) * 5. Valide le résultat (`validateMergedContent`) * 6. Accepte si `score ≥ minPostMergeScore`, refuse sinon * 7. Retourne `LlmResolveResult` avec la trace complète * * @param hunk - Hunk de conflit à résoudre * @param filePath - Chemin du fichier (pour validation post-merge) * @param fileContext - ±N lignes autour du hunk (fournies par l'appelant) * @param config - Configuration LLM fallback (avec endpoint injecté) */ export declare function tryLlmFallbackResolve(hunk: ConflictHunk, filePath: string, fileContext: string, config: LlmFallbackConfig): Promise; //# sourceMappingURL=llm-fallback.d.ts.map