mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-16 11:49:43 +02:00
La partie « protocole » de runChatLoop devient une machine à états pure et incrémentale (StreamParser) : lignes data:, décodage strict de streamChunk façon encoding/json (un champ mal typé saute le chunk), télémétrie tolérante (perfWire/applyPerf), timings et usage, accumulation des tool_calls par index, découpage </think> côté client, frappe en direct (argPreview, bodyTail), détection des appels d'outils écrits en texte (motifs embarqués codés à la main, fenêtre retryScanStart), pré-vol du mode Code, stats de secours sans timings. Plus toolCallLabel, repairToolCall, l'assemblage des appels (badArgs, ids de secours) et l'encodage json.Marshal de Go. L'état global Go (REASONING, preset externe, REASONING_ECHO, retry_patterns, noteEnginePrompt, codeWriteGuard, tReq) devient des paramètres explicites (StreamConfig). HTTP, reprises, compactage et exécution restent à la boucle. Tests Go portés un pour un, et les flux enregistrés des tests de bout en bout rejoués sur le parseur. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>