mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-11 17:26:57 +02:00
- web_images (amont v0.17.7) : recherche d'images DuckDuckGo, pendant de web_search ; les images du web s'affichent dans le fil avec la loupe, sans Referer, et disparaissent si le site les refuse. Schéma minimal pour tenir le budget du préambule. - Aperçu en direct du navigateur piloté (cu_autoshot.go) : une capture après chaque action browser_* qui change la page, gardée en RAM, jamais envoyée au modèle, retirée du journal en fin de tour ; une carte dans le fil, en fondu. - Vignettes calculées par le serveur (?thumb=, amont v0.17.9) : ~560 px au lieu de l'original (7 Ko au lieu de 550 Ko sur une capture), chargées deux par deux avec un nouvel essai ; la loupe ouvre l'original. - Un lien vers une image ([graphique](graph.png)) l'affiche au lieu d'un bouton de téléchargement. - Chrome du computer use tué avec Loki sous Linux (Pdeathsig), même en cas d'arrêt brutal : plus de navigateur orphelin dans le conteneur. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
40 lines
1.4 KiB
Go
40 lines
1.4 KiB
Go
package loki
|
|
|
|
import "testing"
|
|
|
|
// L'aperçu du navigateur (shot) n'est que du direct : la compaction de fin de
|
|
// tour le retire du journal, le reste de l'événement d'outil est gardé.
|
|
func TestCompactLogRetireLAperçuNavigateur(t *testing.T) {
|
|
log := []LogEvent{
|
|
{Seq: 1, Delta: map[string]any{"tool_used": map[string]any{"name": "browser_click", "done": false}}},
|
|
{Seq: 2, Delta: map[string]any{"tool_used": map[string]any{"name": "browser_click", "done": true, "result": "ok", "shot": "abc"}}},
|
|
}
|
|
out := compactLog(log)
|
|
if len(out) != 1 {
|
|
t.Fatalf("un seul événement d'outil attendu, %d", len(out))
|
|
}
|
|
tu := out[0].Delta["tool_used"].(map[string]any)
|
|
if _, has := tu["shot"]; has {
|
|
t.Fatal("l'aperçu aurait dû quitter le journal")
|
|
}
|
|
if tu["result"] != "ok" || tu["name"] != "browser_click" {
|
|
t.Fatalf("événement abîmé : %v", tu)
|
|
}
|
|
if _, has := log[1].Delta["tool_used"].(map[string]any)["shot"]; !has {
|
|
t.Fatal("le journal d'origine ne doit pas être modifié en place")
|
|
}
|
|
}
|
|
|
|
func TestCUAutoShotTool(t *testing.T) {
|
|
for _, n := range []string{"browser_open", "browser_click", "browser_type", "browser_scroll"} {
|
|
if !cuAutoShotTool(n) {
|
|
t.Errorf("%s devrait déclencher l'aperçu", n)
|
|
}
|
|
}
|
|
for _, n := range []string{"browser_screenshot", "browser_snapshot", "bash", "web_images"} {
|
|
if cuAutoShotTool(n) {
|
|
t.Errorf("%s ne devrait pas déclencher l'aperçu", n)
|
|
}
|
|
}
|
|
}
|