Files
Loki/rust/loki-rs/src/chat/mod.rs
T
Claude ff5c6d4571 Lot 33 : préchauffage (PREWARM) tenu par la façade
PREWARM ne garde plus la conversation au Go. La façade tient
l'historique : elle assemble et envoie la requête du prochain tour ; le
Go garde le compteur des requêtes en vol et ce qui l'annule.

Go (facade_prewarm.go) :
- /internal/v1/prewarm/check : moteur libre d'un vrai travail, loin de
  minuit, en bonne santé, slot visé ;
- /internal/v1/prewarm/begin : rechargement SLOT_PERSIST puis inscription
  comme LA requête en vol ; son annulation est relayée à la façade ;
- /internal/v1/prewarm/end : place rendue, cache repris noté ;
- /internal/v1/oai/begin : prewarm_keep pour l'étape qui le prolonge ;
- fin de tâche planifiée : le déclencheur part à la façade.

Rust (chat/prewarm.rs) :
- assemblage par les mêmes fonctions que le tour, sentinelle « . », un
  seul jeton, non streamé ; abstention (capacités inconnues, tour en
  cours, discussion vide, compaction attendue, assemblage inattendu) ;
- déclencheurs : fin de tour, fin de tâche, changement de discussion ou
  de projet (full : après 3 s) ;
- le tour garde le préchauffage qu'il prolonge (empreintes des messages
  et des options de rendu) et coupe tout de suite les autres ;
- télémétrie kind=prewarm.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
2026-10-16 02:52:44 +00:00

44 lines
1.7 KiB
Rust

//! Cœur chat en Rust (lot 6) — bibliothèque, pas encore branchée.
//!
//! Port de `llm_client.go`, `chat_conversation.go`, `chat_compact*.go` :
//! - [`engine`] : transport HTTP vers le moteur (envoi, flux, reprises) ;
//! - [`types`] : types partagés, JSON identique au Go ;
//! - [`wire`] : ce qui part vers le moteur (messages, charge utile) ;
//! - [`stream`] : analyse du flux SSE du moteur (texte, raisonnement, appels
//! d'outils, statistiques) ;
//! - [`compact`] : estimation du contexte et compactage de l'historique ;
//! - [`journal`] : journal d'affichage (compactage, rejeu, pagination) ;
//! - [`conv`] : la discussion en mémoire (état, epoch, verrou du tour,
//! abonnés) ;
//! - [`persist`] : format en base, index des discussions, écrivain unique ;
//! - [`sessions`] : plusieurs discussions (index, bascules, chargement) ;
//! - [`lease`] : bail du moteur (verrou de génération partagé avec le Go) ;
//! - [`nudges`] : budget d'outils, rappels, appels répétés, aperçus ;
//! - [`turn`] : la boucle d'un tour (complétions, outils, filets) ;
//! - [`host`] : le tour branché sur le moteur, les outils du Go et la base ;
//! - [`history`] : début et fin d'un tour côté historique ;
//! - [`generate`] : un tour de bout en bout (envoi, file, fin de tour) ;
//! - [`tplprobe`] : sonde de gabarit (rendus de `/apply-template`) ;
//! - [`perf`] : télémétrie des complétions (relevés rangés par le Go).
pub mod compact;
pub mod conv;
pub mod engine;
pub mod generate;
pub mod history;
pub mod host;
pub mod journal;
pub mod keepimg;
pub mod lease;
pub mod nudges;
pub mod perf;
pub mod persist;
pub mod prewarm;
pub mod sessions;
pub mod stream;
pub mod tplprobe;
pub mod turn;
pub mod types;
pub mod verify;
pub mod wire;