Files
Loki/internal/loki/chat_agent.go
T
Loki de6551a153 Rebaptise AJEAN en Loki (fork, lignée conservée)
- module github.com/R0m1k3/Loki, cmd/loki, internal/loki (package loki)
- LOKI_HOME, LOKI_MODEL_DIRS, LOKI_SERVICE, LOKI_DL_CONNS ; /etc/loki ;
  units loki-engine / loki-ui ; binaire et aide CLI
- updateRepo pointe sur R0m1k3/Loki (l'auto-update ne tirera plus les
  binaires AJEAN amont)

Conservé à l'identique : le domaine ajean.link (service de tunnel amont),
les littéraux de migration 0.7.x (migrate_07.go), RELEASE_NOTES.md et
LICENSE (historique et licence de l'amont).

go build/vet/test : verts.
2026-08-14 21:33:15 +00:00

50 lines
1.5 KiB
Go

package loki
import "fmt"
// Le « mode agent » est l'unique interrupteur qui donne à l'IA l'accès à ses
// outils : le shell (run_shell), l'écriture de fichiers et sa mémoire
// (mem_search/mem_read/mem_add/mem_edit).
func agentEnabled() bool { return getBool(bkState, "agent") }
func setAgentEnabled(on bool) error { return putBool(bkState, "agent", on) }
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 (" + shellName() + "), de l'écriture de fichiers 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":
state := dim("off")
if agentEnabled() {
state = green("on")
}
fmt.Printf("%s état: %s\n", cyan("Mode agent"), state)
fmt.Printf(" outils : %s (timeout %ds, max %ds) + write/edit + mémoire (mem_search/mem_read/mem_add/mem_edit)\n", shellName(), 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: loki agent [on|off|status]")
}
return nil
}