Crear una sesión PTY
Puedes usarsandbox.pty.create() para iniciar una shell bash interactiva.
El PTY inicia una shell bash interactiva con
TERM=xterm-256color, por lo que los colores ANSI y las secuencias de escape funcionan como se espera.Tiempo de espera
La configuración de tiempo de espera es configurable y determina cuánto tiempo permanece activa la sesión PTY. Puedes mantener una sesión PTY abierta indefinidamente configurandotimeoutMs: 0 en JavaScript o timeout=0 en Python. La sesión usa un tiempo de espera de 60 segundos de forma predeterminada.
Enviar entrada al PTY
Puedes usarsendInput() en JavaScript o send_stdin() en Python para enviar datos al terminal.
En JavaScript, sendInput() devuelve una Promise, y cualquier salida del terminal se entrega mediante el callback onData en lugar de devolverse directamente.
En Python, send_stdin() se completa de forma síncrona, y cualquier salida del terminal se entrega mediante el callback on_pty pasado a wait().
Cambiar el tamaño del terminal
Puedes usarresize() para notificar al PTY cuando el usuario cambie el tamaño de la ventana del terminal.
Los valores cols y rows representan las dimensiones del terminal en caracteres en lugar de píxeles.
Desconectar y volver a conectar
Una sesión PTY puede permanecer activa incluso después de que el cliente se desconecte. Puedes desconectarte de la sesión y volver a conectarte más tarde con un nuevo manejador de datos. Esto puede usarse para recuperarse de interrupciones de red, admitir acceso al terminal desde varios clientes y conservar el estado de la sesión entre reconexiones.Terminar el PTY
Puedes usarkill() para terminar la sesión PTY.
Esperar a que el PTY finalice
Puedes usarwait() para bloquear hasta que la sesión de terminal termine, por ejemplo cuando el usuario escriba exit.
Terminal interactivo (similar a SSH)
Puedes usar la misma APIsandbox.pty descrita anteriormente para crear un terminal completamente interactivo como SSH, gestionando raw mode, el reenvío de stdin y los eventos de cambio de tamaño del terminal.