Aller au contenu
English

SandboxProvider

import type { SandboxProvider } from "@elie-laloum/outpost";
  • recoverOptionnel
    ((resourceId: string, options?: TransferOptions) => Promise<void>) | undefined
    Supprime une ressource enregistrée par registerRecovery après l’arrêt de son coordinateur, dans les limites de signal et deadlineMs. Un nouvel appel doit réussir et ne jamais supprimer de données du dépôt hôte. La spéculation durable l’exige ; Docker et Podman le fournissent en mode mounted.
  • nameRequis
    string
    Identifiant enregistré dans les diagnostics et l’activité des ressources : docker, podman, local, vercel, daytona ou firecracker pour les providers intégrés.
  • placementRequis
    "mounted" | "remote" | "host"
    Façon dont le dépôt atteint la sandbox : mounted (worktree hôte monté), remote (historique envoyé, changements resynchronisés) ou host (commandes exécutées dans le worktree hôte). Le placement remote refuse le mode de branche current et utilise integrate par défaut.
  • variablesOptionnel
    Readonly<Record<string, string>> | undefined
    Variables d’environnement définies pour chaque commande de la sandbox, en valeurs littérales ; elles remplacent les entrées de .outpost/.env. Une clé aussi déclarée par l’agent échoue avec le code configuration.
  • acquireRequis
    (context: SandboxContext) => Promise<SandboxLease>
    Alloue un environnement pour une sandbox et renvoie son bail. Outpost l’appelle une fois par sandbox et appelle release() à la fermeture de la sandbox ; respectez context.signal.
export interface SandboxProvider {
  readonly recover?: (
    resourceId: string,
    options?: TransferOptions,
  ) => Promise<void>;
  readonly name: string;
  readonly placement: "mounted" | "remote" | "host";
  readonly variables?: Variables;
  acquire(context: SandboxContext): Promise<SandboxLease>;
}