Aller au contenu
English

DispatchAgent

import type { DispatchAgent } from "@elie-laloum/outpost";

Les champs ci-dessous couvrent toutes les variantes ; la signature précise leurs combinaisons autorisées.

  • kindRequis
    "cli" | "custom" | "replay" | "fallback"
    Discriminant d’exécution : cli.
  • harnessSelon la variante
    CliHarness | Harness
    Preset CLI avec lequel l’agent a été composé, comme createClaudeHarness() ou createCodexHarness().
  • modelSelon la variante
    AgentModel | undefined | AgentModel
    AgentModel normalisé et figé lié à la commande CLI ; absent quand le défaut natif de la CLI est conservé.
  • forkSelon la variante
    ((id: string, invoke: (command: Command) => Promise<CommandResult>) => Promise<string>) | undefined
    Préparation native du fork : reçoit l’identifiant parent et un exécuteur de commandes dans la sandbox empruntée, et renvoie un identifiant enfant distinct qu’Outpost continue ensuite. Les adapters dotés d’un flag de fork peuvent l’omettre.
  • credentialsSelon la variante
    ((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.
  • configurationSelon la variante
    ((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.
  • requestSelon la variante
    (input: AgentInput) => Command
    Construit le programme, ses arguments et son environnement depuis l’entrée d’agent fournie.
  • eventsSelon la variante
    (line: string) => readonly AgentEvent[]
    Décode une ligne de sortie du CLI natif en événements d’agent normalisés.
  • quotaSelon la variante
    ((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.
  • unavailableSelon la variante
    ((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.
  • usageCommandSelon la variante
    ((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.
  • usageResultSelon la variante
    ((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.
  • liveInputSelon la variante
    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.
  • nameSelon la variante
    string
    Identifiant d’agent natif utilisé dans les événements et diagnostics.
  • bootstrapSelon la variante
    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.
  • requiresFinishedEventSelon la variante
    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.
  • usageSelon la variante
    "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.
  • variablesSelon la variante
    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.
  • storageSelon la variante
    ConversationStore | undefined
    Store de conversations qui capture, localise et restaure les sessions de cet agent ; absent quand ses conversations ne sont pas portables.
  • captureSelon la variante
    boolean | undefined | boolean | 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.
  • resumableSelon la variante
    boolean | undefined | boolean | boolean | undefined
    Indique si l’agent peut poursuivre une conversation, ce qu’exigent continuation, les réparations de réponse et le pilotage par reprise ; false refuse continuation avant l’allocation. La reprise à froid exige aussi storage.
  • forkableSelon la variante
    boolean | undefined
    Indique si l’agent peut forker une conversation ; false refuse le fork avant l’allocation. En son absence, le fork est tenté via request() ou le hook fork.
  • transcriptUsageSelon la variante
    ((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.
  • sourceSelon la variante
    "harness" | "agent"
    Source d’observation des événements rejoués : harness si le journal provient du harness Outpost, sinon agent.
  • divergenceSelon la variante
    ReplayDivergencePolicy
    Politique de divergence : fail lève ReplayDivergence ; warn signale les divergences prompt, baseline, tree et unrecorded par des avertissements et continue.
  • turnsSelon la variante
    readonly ReplayTurn[]
    Tours enregistrés extraits du journal, dans l’ordre d’exécution.
  • remainingTurnsSelon la variante
    number
    Nombre de tours enregistrés pas encore consommés par un dispatch ; 0 après un rejeu complet.
  • nextTurnSelon la variante
    () => ReplayTurn | undefined
    Consomme et renvoie le tour enregistré suivant, ou undefined quand le journal est épuisé. Le dispatch l’appelle une fois par tour ; un agent de rejeu ne sert qu’une fois.
  • pendingSteeringSelon la variante
    () => readonly string[] | undefined
    Consignes enregistrées qui ont repris le tour suivant, sans le consommer ; le dispatch s’en sert pour poursuivre une passe pilotée comme enregistrée. Undefined lorsque le tour suivant n’était pas une reprise de pilotage.
  • agentsSelon la variante
    readonly Agent[]
    Candidats d’un agent de secours, dans l’ordre où ils sont essayés.
  • onSelon la variante
    readonly FallbackTrigger[]
    Catégories d’échec, quota ou unavailable, qui confient le dispatch d’un agent de secours à son candidat suivant.
export type DispatchAgent = Agent | FallbackAgent;