De un vistazo
Construcción y opciones
Método por método
Tipos
Los tipos se incluyen en el SDK y reflejan los nombres de campo de la API. Los principales cambios de nombre respecto a@squarecloud/api-types y a las clases de la v5:
Errores
- Los códigos sintéticos desaparecen (
RATE_LIMIT_EXCEEDED,PAYLOAD_TOO_LARGE,SERVER_UNAVAILABLE,UNKNOWN_ERROR_<status>): aparece el código real de la API (RATE_LIMITED,KEEP_CALM,DAILY_SNAPSHOTS_LIMIT_REACHED,FILE_TOO_LARGE…). - Sin respuesta:
status: 0conNETWORK_ERROR(la causa encause) oTIMEOUT. Un cuerpo sin código esUNKNOWN_ERRORcon elstatusreal y el mensajeHTTP <status>. instanceof TypeErrorya no es verdadero para los errores de la API.- Una clave caducada da 401
ACCESS_DENIED, igual que una desconocida. - Los errores de
ai.chat(), incluidos los de autenticación y límites de tasa, llevan el código de OpenAI en minúsculas (access_denied,rate_limit_exceeded, …). - Un
start/stop/restartrechazado es un 409 con solo un código:CONTAINER_ALREADY_STARTED,CONTAINER_ALREADY_STOPPED,CONTAINER_TEMPORARILY_SUSPENDED,CONTAINER_NOT_FOUND,CONTAINER_INSUFFICIENT_DISK_SPACE,CONTAINER_NETWORK_CONFLICToACTION_FAILED.
Cambios de comportamiento
- Las llamadas tienen timeout: 30 s por intento por defecto (la v5 no tenía timeout), al menos 120 s para las llamadas que el servidor mantiene abiertas. Establece
timeoutMs: 0para no tener ninguno. files.write()trata un string como el contenido y lo envía como texto plano; los bytes van en base64, de forma segura para binarios, y un contenido vacío crea un archivo vacío (el mismo formato de envío que los SDKs de Python y Go).files.read()pide base64 y lo decodifica.files.list()de un directorio inexistente lanza 404FILE_NOT_FOUNDen lugar de devolver[].snapshots.create()devuelve{ pending: true }en un 202 en lugar de lanzar un error.- Los resultados de tipo string nunca son
undefined:setWebhookyresetCredentials("certificate")devuelven""cuando la API no envía nada;deploys.current()devuelve{}. realtime()se reconecta cuando se cae la conexión y conREALTIME_RECONNECT(hasta 3 veces seguidas, como máximo una apertura cada 5,5 s).- Reintentos: errores de red en GET y 503
UPLOAD_BUSY/ANALYTICS_BUSY(másDATABASE_UNAVAILABLEen GET), con backoff. Un 429 nunca se reintenta.DATABASE_UNAVAILABLEpuede llegar después de que se haya aplicado una mutación: reintenta tú mismo tus mutaciones idempotentes. - Los ids vacíos,
.y..fallan localmente conINVALID_ID. - Los valores de query que son
undefined,""ofalseno se envían.
Próximos pasos
Cliente
Instala el SDK y crea un cliente.
Errores
Clase de error, reintentos y límites de tasa.

