Documentation
¶
Overview ¶
Package tools définit l'interface des outils de l'agent et les outils fichiers.
Index ¶
Constants ¶
const SnapshotMaxBytes = 10 << 20
SnapshotMaxBytes est la taille au-delà de laquelle un fichier n'est pas copié avant écriture (même valeur que checkpoint.MaxBytes ; tools n'importe pas checkpoint).
Variables ¶
This section is empty.
Functions ¶
func IsSensitive ¶ added in v0.3.0
IsSensitive rapporte si le nom de base du chemin désigne un fichier de secrets : préfixe .env ou id_rsa, suffixe .pem (insensible à la casse).
func NetworkFrom ¶ added in v0.7.0
NetworkFrom renvoie le drapeau réseau porté par ctx (false par défaut).
Types ¶
type Option ¶
type Option func(*options)
Option configure FS.
func WithReadFilter ¶
WithReadFilter fait ignorer à grep et glob les fichiers pour lesquels f renvoie false.
func WithSnapshot ¶ added in v0.6.0
WithSnapshot fait appeler save(chemin, ancien contenu) par write_file et edit_file avant d'écraser un fichier existant de taille <= SnapshotMaxBytes. Une erreur de save annule l'écriture.
func WithoutCheckpoints ¶ added in v0.6.0
func WithoutCheckpoints() Option
WithoutCheckpoints marque no_checkpoint chaque écriture d'un fichier existant (copies désactivées ou magasin indisponible).
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry indexe les outils par nom.
func NewRegistry ¶
type Result ¶
type Result struct {
Content string
IsError bool
Path string
HashBefore string
HashAfter string
// NoCheckpoint vaut true quand l'écriture n'a pas pu être copiée (fichier
// trop volumineux pour une copie, voir SnapshotMaxBytes).
NoCheckpoint bool
// Denied vaut "policy" quand l'outil a refusé l'appel par règle (vide sinon).
Denied string
// ServerDown porte l'identifiant d'un serveur MCP qui vient de tomber pendant
// cet appel (vide sinon) ; signalé une seule fois par serveur.
ServerDown string
// Sandbox indique comment la commande shell s'est exécutée (isolée ou
// non, réseau accordé ou non) ; nil pour les autres outils.
Sandbox *event.SandboxUse
// Untruncated est le texte complet avant troncature (résultat MCP), pour
// le seul contrôle de classification ; jamais enregistré ni envoyé.
// Vide : Content est complet.
Untruncated string
}
Result est le résultat d'une exécution d'outil.
type ShellOptions ¶ added in v0.7.0
type ShellOptions struct {
// Sandbox est la Spec de base des commandes isolées (nil : non isolées).
// Son champ Network est remplacé, à chaque appel, par NetworkFrom(ctx).
Sandbox *sandbox.Spec
// Env est l'environnement des commandes, déjà filtré des secrets ; nil
// hérite de l'environnement de tenon.
Env []string
// NetworkOpen indique que l'isolation ne coupe pas le réseau (sonde :
// isolation réseau "none") : une commande confinée a alors le réseau, et
// le journal le dit.
NetworkOpen bool
}
ShellOptions règle l'isolation et l'environnement des commandes.
type Target ¶
type Target struct {
Paths []string // chemins absolus nettoyés
Command string
// ForceAsk impose une validation humaine : Permissions.Check renvoie Ask
// (Deny si une règle deny correspond), quelles que soient les règles allow.
ForceAsk bool
}
Target décrit ce qu'une invocation touche (pour le moteur de permissions).
type Tool ¶
type Tool interface {
Name() string
Description() string
Schema() json.RawMessage
Risk() Risk
Target(args json.RawMessage) (Target, error)
// Run renvoie une error uniquement en cas d'annulation du contexte.
Run(ctx context.Context, args json.RawMessage) (Result, error)
}
Tool est un outil appelable par le modèle.