mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-21 05:58:13 +02:00
Go: rangement des 45 fichiers par domaine (cli_/web_/chat_/llm_/backend_/relay_/sys_) + doc.go carte du code - renommages purs (git mv) + maj des noms cites en commentaires, zero changement de code
This commit is contained in:
1 parent
7af70c3d2e
commit
79e8d322a9
47 files changed
+58
-40
No files matched your search
@@ -0,0 +1,84 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Le « mode agent » est l'unique interrupteur qui donne à l'IA l'accès à ses
|
||||
// outils. Quand il est actif, l'IA dispose du shell (run_shell) et de sa
|
||||
// mémoire (mem_search/mem_read/mem_add/mem_edit) — les anciens « skills » ont
|
||||
// été fondus dans la mémoire. Plus de drapeaux machine/skills séparés : un seul
|
||||
// fichier .agent_enabled.
|
||||
|
||||
func agentEnabled() bool {
|
||||
if _, err := os.Stat(agentFlag()); err == nil {
|
||||
return true
|
||||
}
|
||||
// Migration : si l'un des anciens drapeaux séparés traîne encore, on
|
||||
// considère le mode agent comme actif (et on le matérialise au prochain set).
|
||||
if _, err := os.Stat(legacyToolsFlag()); err == nil {
|
||||
return true
|
||||
}
|
||||
if _, err := os.Stat(legacySkillsFlag()); err == nil {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func setAgentEnabled(on bool) error {
|
||||
_ = os.MkdirAll(JeanHome(), 0o755)
|
||||
// On nettoie systématiquement les anciens drapeaux pour ne pas garder un
|
||||
// état fantôme « à moitié activé » hérité de l'ancien modèle à deux toggles.
|
||||
_ = os.Remove(legacyToolsFlag())
|
||||
_ = os.Remove(legacySkillsFlag())
|
||||
if on {
|
||||
f, err := os.Create(agentFlag())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return f.Close()
|
||||
}
|
||||
if err := os.Remove(agentFlag()); err != nil && !os.IsNotExist(err) {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func cmdAgent(args []string) error {
|
||||
sub := ""
|
||||
if len(args) > 0 {
|
||||
sub = args[0]
|
||||
}
|
||||
switch sub {
|
||||
case "on":
|
||||
if err := setAgentEnabled(true); err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Println(green("[ok]") + " mode agent activé — l'IA dispose du shell complet (bash) et de sa mémoire")
|
||||
case "off":
|
||||
if err := setAgentEnabled(false); err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Println(green("[ok]") + " mode agent désactivé")
|
||||
case "", "status", "list":
|
||||
state := dim("off")
|
||||
if agentEnabled() {
|
||||
state = green("on")
|
||||
}
|
||||
fmt.Printf("%s état: %s\n", cyan("Mode agent"), state)
|
||||
fmt.Printf(" outils : bash (timeout %ds, max %ds) + mémoire (mem_search/mem_read/mem_add/mem_edit)\n", toolDefaultTimeout, toolMaxTimeout)
|
||||
mem := MemList()
|
||||
if len(mem) == 0 {
|
||||
fmt.Printf(" mémoire : aucune page — crée %s/<nom>.md\n", memoryDir())
|
||||
return nil
|
||||
}
|
||||
fmt.Printf(" mémoire (%s) :\n", memoryDir())
|
||||
for _, p := range mem {
|
||||
fmt.Printf(" %s %s\n", bold(p.Name), p.Title)
|
||||
}
|
||||
default:
|
||||
return fmt.Errorf("usage: jean agent [on|off|status]")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in new issue
Block a user