Documentation
¶
Overview ¶
Package headless exécute un tour d'agent sans interface interactive : toute demande de permission est refusée, la sortie est du texte ou du JSON.
Index ¶
- func Banner(l i18n.Lang, p llm.ProviderInfo) string
- func Clean(s string) string
- func JurisdictionLabel(l i18n.Lang, j llm.Jurisdiction) string
- func MCPBanner(l i18n.Lang, servers []event.MCPServerInfo) string
- func OneLine(s string) string
- func ProviderLabel(p llm.ProviderInfo) string
- func Run(ctx context.Context, eng *engine.Engine, sessionID string, in engine.Input, ...) int
- func ServerDownNotice(l i18n.Lang, p event.McpServerDownPayload, redact func(string) string) string
- type Options
- type Output
- type Routing
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Banner ¶
func Banner(l i18n.Lang, p llm.ProviderInfo) string
Banner renvoie la bannière de transparence dans la langue l : « tenon · <modèle> · <nom fournisseur> · <pays> · juridiction <UE|hors UE|locale> ». Un nom ou un pays vide est omis.
func Clean ¶
Clean retire de s les séquences d'échappement ANSI, les caractères de contrôle autres que le saut de ligne et les caractères de format (bidirectionnels, largeur nulle) ; tabulations, retours chariot et séparateurs Unicode deviennent des espaces. Le texte vient d'un serveur MCP, non fiable. Les lignes sont conservées : un masquage ancré en fin de ligne s'applique ensuite.
func JurisdictionLabel ¶
func JurisdictionLabel(l i18n.Lang, j llm.Jurisdiction) string
JurisdictionLabel renvoie le libellé traduit de la juridiction j.
func MCPBanner ¶
func MCPBanner(l i18n.Lang, servers []event.MCPServerInfo) string
MCPBanner renvoie la ligne « MCP : id (juridiction), … » des serveurs MCP actifs, ou "" s'il n'y en a aucun.
func ProviderLabel ¶
func ProviderLabel(p llm.ProviderInfo) string
ProviderLabel renvoie le nom du fournisseur, à défaut son identifiant.
func Run ¶
func Run(ctx context.Context, eng *engine.Engine, sessionID string, in engine.Input, opts Options, stdout, stderr io.Writer) int
Run soumet in à eng dans la session sessionID et renvoie le code de sortie : 3 si une action a été refusée (permission, politique) ou le tour bloqué, 1 si SubmitInput échoue ou si le tour n'a pas pu tourner (contexte trop volumineux), sinon 0.
func ServerDownNotice ¶
ServerDownNotice renvoie l'avis d'un serveur MCP indisponible. Chaque partie est nettoyée puis masquée seule, lignes conservées (une règle ancrée en fin de ligne y reconnaît un secret), avant d'être mise sur une ligne.
Types ¶
type Options ¶
type Options struct {
Output Output
// Lang est la langue des messages affichés (vide : français).
Lang i18n.Lang
// Redact masque une charge utile JSON avant affichage (sortie json).
// nil : aucun masquage.
Redact func(string) string
// RedactText masque le texte libre : réponse finale (sortie texte) et
// messages écrits sur stderr. nil : Redact est utilisé.
RedactText func(string) string
// Strict : un tour terminé par max_iterations, incomplete,
// stopped_by_hook, budget_exceeded ou cancelled donne le code 4 (3 et 1 l'emportent).
Strict bool
// Local est le fournisseur local du routage ("" : celui de
// SessionStarted, ou aucun).
Local string
}
Options configure Run.
type Routing ¶ added in v0.7.0
type Routing struct {
// Local est le fournisseur local ("" : inconnu ou absent).
Local string
// Current est le dernier fournisseur retenu.
Current string
// Sensitive est vrai après SessionClassified.
Sensitive bool
}
Routing suit le routage d'une session pour l'affichage : fournisseur local, fournisseur effectif et état sensible. Partagé avec la TUI.
func (*Routing) Classified ¶ added in v0.7.0
Classified intègre SessionClassified et renvoie son avis.
func (*Routing) Selected ¶ added in v0.7.0
Selected intègre ProviderSelected et renvoie l'avis d'une bascule ("" pour un autre motif).
func (*Routing) Started ¶ added in v0.7.0
func (r *Routing) Started(p event.SessionStartedPayload)
Started intègre SessionStarted : fournisseur courant, et fournisseur local. Avec routing, son local effectif fait foi, même vide (indisponible) ; sans, le courant s'il est local, si aucun local n'est déjà connu.