Aller au contenu
English

CliAgent

import type { CliAgent } from "@elie-laloum/outpost";
  • kindRequis
    "cli"
    Discriminant d’exécution : cli.
  • harnessRequis
    CliHarness
    Preset CLI avec lequel l’agent a été composé, comme createClaudeHarness() ou createCodexHarness().
  • modelOptionnel
    AgentModel | undefined
    AgentModel normalisé et figé lié à la commande CLI ; absent quand le défaut natif de la CLI est conservé.
  • forkOptionnel
    ((id: string, invoke: (command: Command) => Promise<CommandResult>) => Promise<string>) | undefined
    Étape de fork native : reçoit l’identifiant de la conversation parente et un exécuteur de commandes dans la sandbox empruntée, puis renvoie un identifiant enfant distinct que le tour continue. Les adapters dont la CLI forke via un flag de requête l’omettent.
  • credentialsOptionnel
    ((variables: Variables) => CredentialPlan) | undefined
    Planifie les credentials de cette CLI à partir des variables résolues du workflow, sans accès disque : variables à transmettre, fichiers hôte à copier dans le home privé de la sandbox, fichiers générés et commandes de connexion. Appelé une fois par adapter et par sandbox ; le provider local ne reçoit que les variables.
  • configurationOptionnel
    ((variables: Variables) => AgentConfiguration) | undefined
    Planifie la configuration de la CLI à partir des variables résolues, sans accès disque : fichiers à fusionner et fichiers de l’hôte à copier dans le home de l’agent, une fois par sandbox, après l’authentification. Lève une erreur si une variable référencée manque.
  • requestRequis
    (input: AgentInput) => Command
    Construit le programme, ses arguments et son environnement depuis l’entrée d’agent fournie.
  • eventsRequis
    (line: string) => readonly AgentEvent[]
    Décode une ligne de sortie du CLI natif en événements d’agent normalisés.
  • quotaOptionnel
    ((text: string) => boolean) | undefined
    Reconnaît un message terminal de limite d’usage ou de débit dans un événement failure ou une ligne stderr. Si le processus échoue ensuite, le tour est rejeté avec le code OutpostError quota au lieu de process ; les avis de reprise transitoires ne doivent pas correspondre.
  • unavailableOptionnel
    ((text: string) => boolean) | undefined
    Reconnaît une panne terminale du service ou un échec de connexion dans un événement failure ou une ligne stderr. Si le processus échoue ensuite sans signal de quota, le tour garde le code process et enregistre details.unavailable, lu par unavailableFault() ; les avis de nouvelle tentative ne doivent pas correspondre.
  • usageCommandOptionnel
    ((conversation: string) => Command | undefined) | undefined
    Construit une commande de lecture bornée pour collecter les compteurs de cette conversation dans la sandbox empruntée ; renvoie undefined pour un identifiant non pris en charge.
  • usageResultOptionnel
    ((text: string) => Usage | undefined) | undefined
    Décode stdout de la commande d’usage réussie en totaux de session. Renvoie undefined si illisible, ou complete: false pour des totaux partiels ; ne renvoie pas le contenu du transcript.
  • liveInputOptionnel
    AgentLiveInput | undefined
    Protocole d’ajout de messages utilisateur à un tour en cours via stdin, utilisé quand le lease accepte l’entrée en direct : stream-json de Claude Code et app-server de Codex. Sinon, le pilotage arrête le tour puis reprend sa conversation.
  • nameRequis
    string
    Identifiant d’agent natif utilisé dans les événements et diagnostics.
  • bootstrapOptionnel
    string | undefined
    Agent intégré dont Outpost installe la CLI épinglée sur une sandbox distante quand l’exécutable manque : un paquet npm, ou une archive vérifiée par SHA-512 pour antigravity. Un nom inconnu échoue.
  • requiresFinishedEventOptionnel
    boolean | undefined
    Exige l’événement final natif : sans lui, les marqueurs de fin ne correspondent pas et le tour échoue avec le code process, même si le processus se termine avec 0.
  • usageOptionnel
    "events" | "session" | "unavailable" | undefined
    Mode de mesure de l’usage de jetons : events le lit dans le flux de sortie, session lit la session après la sortie du processus, unavailable n’enregistre rien. Des compteurs manquants marquent alors l’usage incomplet ; en son absence, les événements rapportés sont comptés sans cette vérification.
  • variablesOptionnel
    Readonly<Record<string, string>> | undefined
    Variables d’environnement ajoutées à chaque commande de cet agent, par-dessus les valeurs de .outpost/.env. Un nom également défini par le provider de sandbox échoue avec le code configuration.
  • storageOptionnel
    ConversationStore | undefined
    Store de conversations qui capture, localise et restaure les sessions de cet agent ; absent quand ses conversations ne sont pas portables.
  • captureOptionnel
    boolean | undefined
    Enregistre la conversation dans storage après chaque tour ; false l’évite. En son absence, un tour est enregistré dès que storage existe.
  • resumableOptionnel
    boolean | undefined
    Indique si la CLI peut continuer une conversation ; vrai sur tous les adapters intégrés. false refuse la continuation et le fork avant allocation ; s’il est absent, la réparation de réponse exige aussi un store de conversations.
  • forkableOptionnel
    boolean | undefined
    false refuse le fork avant allocation, comme sur Copilot CLI et Antigravity. Absent ou true, il est permis, via le hook fork ou la requête de fork de la CLI.
  • transcriptUsageOptionnel
    ((text: string) => Usage | undefined) | undefined
    Lit l’usage de jetons dans la transcription capturée après le tour ; un résultat remplace l’usage rapporté par les événements, undefined le conserve.
export interface CliAgent extends AgentAdapter {
  readonly kind: "cli";
  readonly harness: CliHarness;
  readonly model?: AgentModel;
}