Aller au contenu

Référence Conductor

Verbes CLI, méthodes JSON-RPC, champs, événements, clés de configuration et codes de sortie du plan de contrôle Paneflow Conductor.

Cette page est la référence compacte de Conductor. Elle nomme la surface publique et les champs qu'un script ou un LLM peut utiliser de façon fiable.

Verbes CLI

VerbeMéthode principaleUsage
ps [--json]fleet.listListe les agents détectés dans les workspaces
status <target> [--json]surface.statusLit l'état agent d'une pane
watch [--surface <sel>] [--type <event>]events.subscribeStream les événements de cycle de vie et les changements de surface
read <target>surface.readLit le scrollback d'une pane
send <target> <text>surface.send_textPrépare ou soumet du texte dans une pane
wait --match <sel>surface.read, flux d'événements en mode idleBloque jusqu'à l'état idle, une regex ou les deux
up <file>orchestration workspaceCrée un workspace d'agents déclaratif
flow run <file>orchestration flowLance un pipeline multi-agent
ls, search, focus, keyméthodes scriptingUtiles quand l'état conductor ne suffit pas

Les lectures sont autorisées par défaut. Les écritures comme send --submit, key et les étapes de flow qui soumettent du texte exigent le scripting gate ou le mode AI free access.

Sélecteurs

SélecteurExempleNotes
Id numériquepaneflow status 42Id exact de pane
Nompaneflow status backendMeilleur sélecteur pour les workflows conductor
cmdline:<substr>paneflow read cmdline:claudeUtile mais moins portable qu'un nom de pane
cwd:<path>paneflow read cwd:/home/me/appBon choix pour les scripts liés à un repo

Un sélecteur qui ne matche rien ou plusieurs panes sort avec le code 3, sauf pour les commandes qui acceptent explicitement plusieurs matches comme les sends broadcast ou wait --any et wait --all.

fleet.list

paneflow ps --json retourne un tableau agents.

ChampSens
pidId de processus agent, ou null pour une détection scan-only
toolFamille d'agent comme claude, codex, opencode ou gemini
statethinking, waiting_for_input, finished, errored, stalled, idle ou unknown_running
hookedtrue quand Paneflow reçoit les événements de hook
reasonRaison de détection, dont no_hook pour les processus non hookés
surface_idId de pane quand résolu
surface_nameNom de pane quand présent
workspaceIndex du workspace
active_tool_nameOutil actuellement exécuté par l'agent, si reporté
messageQuestion ou permission en attente, si reportée
last_resultRésumé du dernier tour, quand le hook le fournit
waiting_msMillisecondes passées en attente d'entrée
idle_msMillisecondes depuis la dernière activité observée

Une flotte vide retourne {"agents":[]} avec le code de sortie 0.

surface.status

paneflow status <target> --json retourne le statut d'une pane.

ChampSens
surface_idId de pane
stateMême vocabulaire que fleet.list
hookedIndique si le suivi de cycle de vie est actif
toolFamille d'agent, si détectée
active_tool_nameOutil actuellement exécuté, si reporté
messageQuestion ou permission en attente, si reportée
last_resultRésumé du dernier tour, quand disponible
waiting_msMillisecondes passées en attente d'entrée
idle_msMillisecondes depuis la dernière activité observée
output_generationCompteur monotone qui avance quand la sortie de pane change

Une pane sans agent actif retourne un état idle au lieu d'une erreur.

surface.read

paneflow read <target> retourne du texte de terminal. Par défaut, la sortie est enveloppée dans <untrusted_terminal_output> pour qu'un LLM puisse l'inspecter sans la traiter comme des instructions. Utilisez --raw seulement pour des scripts humains de confiance.

Les champs utiles en mode JSON incluent text, lines, total_lines, eof et output_generation.

events.subscribe et watch

paneflow watch est du JSON délimité par lignes. Il peut émettre :

Type d'événementSens
ai.session_startUne session agent démarre
ai.prompt_submitUn prompt est soumis
ai.tool_useL'agent invoque un outil
ai.notificationL'agent pose une question ou demande une permission
ai.stopUn tour se termine
ai.exitLe processus agent sort
ai.session_endLa session se ferme
surface_changedLe output_generation de la pane a avancé

Les frames de contrôle sont aussi valides :

FrameSens
subscribedSubscription acceptée
heartbeatFrame keepalive
droppedLe subscriber a pris du retard et des événements ont été supprimés

Quand un client reçoit dropped, il doit se resynchroniser avec paneflow ps --json ou paneflow status <target> --json.

wait

wait --idle utilise le flux d'événements quand il est disponible et bascule proprement en fallback si nécessaire. wait --pattern poll le scrollback récent toutes les 500 ms et scanne les 500 dernières lignes.

ModeExempleUsage
Idlepaneflow wait --match reviewer --idle --timeout 600Continuer après l'arrêt du travail agent
Patternpaneflow wait --match backend --pattern '^DONE:' --timeout 300Continuer après une ligne sentinelle
Idle plus patternpaneflow wait --match reviewer --idle --pattern '^REPORT_DONE' --timeout 600Exiger une pane stable et un marqueur
Any ou allpaneflow wait --match 'cmdline:claude' --pattern 'tests passed' --allCoordonner plusieurs panes en mode pattern

Les timeouts sortent avec le code 4.

Clés de configuration

CléDéfautSens
ai_unrestrictedfalseAutorise l'automation IA de confiance à soumettre quand activé
ai_injection_fencetrueEnveloppe la sortie terminal pair comme texte non fiable
agent_stall_threshold_secsdéfaut appMarque comme stalled les tours silencieux encore en cours

Codes de sortie

CodeSens
0Succès
1Échec runtime
2Erreur d'usage CLI
3Cible introuvable ou ambiguë
4Timeout de wait

Pages liées