Terminal Opener
Utilisez scripts/open-terminal.js pour conserver un exécutable et chaque argument comme entrée de processus séparée. N'interpolez jamais une chaîne de commande shell. Gardez chaque création de processus avec shell: false. Par défaut, produisez un plan sans lancement. Utilisez --launch uniquement après que l'utilisateur a explicitement demandé une vraie fenêtre et que argv a été révisé. Le processus lancé hérite de l'environnement complet du processus appelant, y compris les variables contenant des secrets. Le lanceur ne filtre pas l'environnement. Exécutez-le depuis un shell dont l'environnement peut être exposé en toute sécurité à la commande cible.
Lancer une commande
Passez les options du lanceur avant --, puis passez exactement un exécutable suivi de son tableau d'arguments :
node skills/terminal-opener/scripts/open-terminal.js \
--launch \
--cwd /absolute/host/path \
-- ssh -t example.test command-with-arguments
Exécutez d'abord le mode normal. Laissez WezTerm essayer son mux avec une nouvelle fenêtre, puis laissez le lanceur se replier sur un processus wezterm start détaché si le mux n'est pas disponible. Lorsque le repli est utilisé, lisez muxFailure depuis la sortie JSON (ou la ligne d'échec lisible) pour diagnostiquer pourquoi le chemin mux a échoué.
Récupération depuis la configuration du terminal
Ajoutez --recover ou --standalone lorsque la configuration utilisateur ou l'état du mux peut interférer avec la commande demandée. Lancez un processus WezTerm détaché avec :
--skip-config start --always-new-process
Attendez-vous à ce que le mode de récupération ignore intentionnellement toute la configuration du terminal utilisateur.
Inspection avant lancement
Omettez --launch (ou ajoutez --dry-run) et ajoutez --json pour inspecter l'exécutable exact, argv, le répertoire de travail, l'adaptateur de terminal, le lancement principal et le repli sans ouvrir de fenêtre. Traitez le plan JSON comme une frontière de composition pour les appelants.
Exécutez --detect --json sans commande pour sonder la disponibilité du terminal. Suivez l'action retournée lorsque l'adaptateur est manquant ou non pris en charge. Utilisez WezTerm pour l'adaptateur actuel ; traitez les autres terminaux demandés comme des plans non pris en charge, et non comme des commandes à exécuter.