mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-22 06:28:11 +02:00
Plan : validation des étapes en direct (point par point)
Le plan s'affichait mais restait figé — on ne voyait pas le modèle avancer. Désormais : - Le modèle annonce chaque étape accomplie (« ✅ Étape N terminée »), demandé dans la consigne de plan. - L'agent détecte ces annonces dans le flux et émet des événements plan_step, sans jamais recompter deux fois la même étape. - Le panneau PLAN coche les étapes en temps réel : ✓ vert + barré pour les faites, sablier sur l'étape en cours, compteur « n/N validées ». Chemin agent uniquement (le moteur code tourne de bout en bout). Les messages passés restent affichés tels quels. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SVay7z3y7q2gEe54ByAE6N
This commit is contained in:
5 files changed
+112
-15
No files matched your search
@@ -51,6 +51,7 @@ interface LokiState {
|
||||
streamNotice: string | null;
|
||||
streamTools: ToolCall[]; // appels d'outils de la réponse en cours
|
||||
streamPlan: string[]; // plan de la réponse en cours
|
||||
streamPlanDone: number[]; // index des étapes validées en direct
|
||||
|
||||
fileTree: FileNode[];
|
||||
previewPath: string | null;
|
||||
@@ -114,6 +115,7 @@ export const useStore = create<LokiState>((set, get) => ({
|
||||
streamNotice: null,
|
||||
streamTools: [],
|
||||
streamPlan: [],
|
||||
streamPlanDone: [],
|
||||
fileTree: [],
|
||||
previewPath: null,
|
||||
previewContent: "",
|
||||
@@ -410,6 +412,8 @@ export const useStore = create<LokiState>((set, get) => ({
|
||||
streamStatus: "Connexion à Ollama…",
|
||||
streamNotice: null,
|
||||
streamTools: [],
|
||||
streamPlan: [],
|
||||
streamPlanDone: [],
|
||||
pendingShell: null,
|
||||
});
|
||||
|
||||
@@ -427,7 +431,13 @@ export const useStore = create<LokiState>((set, get) => ({
|
||||
onToken: (t) => set({ streamContent: get().streamContent + t }),
|
||||
onThinking: (t) => set({ streamThinking: get().streamThinking + t }),
|
||||
onStatus: (message) => set({ streamStatus: message }),
|
||||
onPlan: (steps) => set({ streamPlan: steps }),
|
||||
onPlan: (steps) => set({ streamPlan: steps, streamPlanDone: [] }),
|
||||
onPlanStep: (index) =>
|
||||
set({
|
||||
streamPlanDone: get().streamPlanDone.includes(index)
|
||||
? get().streamPlanDone
|
||||
: [...get().streamPlanDone, index],
|
||||
}),
|
||||
onRevision: (content) => set({ streamContent: content }),
|
||||
onNotice: (message) => set({ streamNotice: message }),
|
||||
onToolCall: (call) =>
|
||||
@@ -463,6 +473,8 @@ export const useStore = create<LokiState>((set, get) => ({
|
||||
streamStatus: "",
|
||||
streamNotice: null,
|
||||
streamTools: [],
|
||||
streamPlan: [],
|
||||
streamPlanDone: [],
|
||||
});
|
||||
// Recharge depuis la base + l'arborescence (fichiers créés par
|
||||
// l'agent) — trois requêtes indépendantes, en parallèle.
|
||||
|
||||
Reference in new issue
Block a user