headless

package
v0.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2026 License: EUPL-1.2 Imports: 13 Imported by: 0

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

Constants

This section is empty.

Variables

This section is empty.

Functions

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

func Clean(s string) string

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 OneLine

func OneLine(s string) string

OneLine nettoie s (Clean) et le met sur une ligne.

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

func ServerDownNotice(l i18n.Lang, p event.McpServerDownPayload, redact func(string) string) string

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 Output

type Output string

Output choisit le format de sortie.

const (
	Text Output = "text"
	JSON Output = "json"
)

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

func (r *Routing) Classified(l i18n.Lang, p event.SessionClassifiedPayload) string

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL