mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-18 20:57:05 +02:00
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.
This commit is contained in:
157 files changed
+928
-928
No files matched your search
@@ -0,0 +1,68 @@
|
||||
// node_proto.go — côté serveur, alias vers le protocole partagé (internal/nodewire)
|
||||
// + les helpers de nommage d'outils propres à loki.
|
||||
//
|
||||
// Le format du fil (Msg, capacités, confinement de chemin) vit dans nodewire,
|
||||
// paquet SANS dépendance, pour que le client léger loki-node le partage sans
|
||||
// tirer tout loki. Ici on ne fait qu'exposer ces symboles sous les noms
|
||||
// historiques du paquet, pour ne pas toucher le reste du code serveur.
|
||||
package loki
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/R0m1k3/Loki/internal/nodewire"
|
||||
)
|
||||
|
||||
// Capacités (alias des constantes partagées).
|
||||
const (
|
||||
nodeCapShell = nodewire.CapShell
|
||||
nodeCapRead = nodewire.CapRead
|
||||
nodeCapWrite = nodewire.CapWrite
|
||||
nodeCapList = nodewire.CapList
|
||||
)
|
||||
|
||||
// nodeAllCaps : ordre canonique partagé.
|
||||
var nodeAllCaps = nodewire.AllCaps
|
||||
|
||||
// nodeMsg : enveloppe du fil (alias de type → interop garantie avec le client).
|
||||
type nodeMsg = nodewire.Msg
|
||||
|
||||
func nodeCapAllowed(allowed []string, cap string) bool { return nodewire.CapAllowed(allowed, cap) }
|
||||
func nodeCapIntersect(allowed, declared []string) []string {
|
||||
return nodewire.CapIntersect(allowed, declared)
|
||||
}
|
||||
func nodeSanitizeCaps(caps []string) []string { return nodewire.SanitizeCaps(caps) }
|
||||
func nodeResolvePath(root, p string) (string, error) { return nodewire.ResolvePath(root, p) }
|
||||
|
||||
// ── Helpers de nommage d'outils, propres au serveur ────────────────────────
|
||||
// (conservés pour les tests ; l'IA ne reçoit plus d'outils node__* — voir la
|
||||
// refonte « cible d'exécution » dans llm_client.go / node_server.go.)
|
||||
|
||||
// nodeSlug transforme un nom de poste en identifiant sûr ([A-Za-z0-9_-]).
|
||||
func nodeSlug(name string) string {
|
||||
s := mcpSanitize(name)
|
||||
if s == "" {
|
||||
s = "poste"
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
func nodeToolName(slug, cap string) string { return "node__" + slug + "__" + cap }
|
||||
|
||||
func isNodeTool(name string) bool { return strings.HasPrefix(name, "node__") }
|
||||
|
||||
func parseNodeToolName(name string) (slug, cap string, ok bool) {
|
||||
rest, found := strings.CutPrefix(name, "node__")
|
||||
if !found {
|
||||
return "", "", false
|
||||
}
|
||||
i := strings.LastIndex(rest, "__")
|
||||
if i < 0 {
|
||||
return "", "", false
|
||||
}
|
||||
slug, cap = rest[:i], rest[i+2:]
|
||||
if slug == "" || cap == "" {
|
||||
return "", "", false
|
||||
}
|
||||
return slug, cap, true
|
||||
}
|
||||
Reference in new issue
Block a user