@getnexorai/sdk ofrece dos superficies separadas:
- un cliente JavaScript de servidor para 16 operaciones REST públicas;
- un widget avanzado de Chat web para el navegador.
@getnexorai/sdk v0.1.44. No presenta el paquete como un wrapper de toda la API REST.
Instala para usar en servidor
El SDK requiere Node.js 18 o posterior.@getnexorai/sdk/chat.
Inicio rápido en servidor
DefineNEXOR_API_KEY en el gestor de secretos de tu servidor. No la subas al repositorio.
createLead y createLeadsBulk siempre envían skip_first_message: true. Crear un lead con estos helpers no significa, por sí solo, que el Agente envíe de inmediato el primer mensaje normal de su cadencia.
Para inyección de dependencias o código de servidor multi-tenant, crea clientes independientes en vez de cambiar el singleton:
Métodos REST
Los 16 métodos siguientes están disponibles en el export por defecto ya inicializado y enNexorClient.
Usa la referencia de la API REST para los endpoints que el SDK no envuelve.
Comportamiento HTTP
Usa
maxRetries: 0 para una operación no idempotente cuando repetirla pueda duplicar un efecto. Pasar idempotencyKey agrega el header Idempotency-Key; no garantiza por sí solo que todos los endpoints dedupliquen la solicitud.
Maneja errores
El SDK exponeNexorError, NexorAPIError, NexorAuthError, NexorValidationError y NexorNetworkError.
nexor-sdk-js/0.1.0 en su User-Agent de Node.js. No uses ese valor para determinar la versión instalada del paquete.
Widget en el navegador
Para la mayoría de los sitios, usa el loader alojado de Chat web. No requiere npm y su fragmento viene directamente de la sección Instalación del Agente. Usa el widget del SDK cuando necesites control programático medianteinitChat, callbacks o configuración en runtime. El build IIFE expone un global llamado Nexor.
Callbacks y handle del widget
Pasa callbacks ainitChat cuando la página contenedora necesite eventos del ciclo de vida o de la conversación.
initChat devuelve un handle con estos métodos:
send(text) resuelve cuando el mensaje queda encolado, no cuando Nexor devuelve o muestra la respuesta. Usa onMessage para observar el mensaje posterior del bot y onError para observar un turno fallido.Flujo de solicitudes del widget
El flujo de red actual del widget no usa la ruta antigua/api/public/chat que aparecía en notas anteriores del SDK.
Las dos rutas de configuración son alternativas:
initChat elige la ruta pública en top-level y la ruta del widget dentro de un iframe. Antes de persistir al visitante o enviar un turno, solicita un challenge nuevo de proof of work y, cuando está disponible y se puede resolver, adjunta el resultado. Las rutas de configuración, proof of work, turnos, pendientes, visitantes y telemetría forman el transporte normal del widget y tienen controles específicos por solicitud y sesión. Usa el widget en vez de llamarlas directamente. La fila de requestContact queda fuera de esa garantía.
Reproduce el smoke offline del navegador
El smoke del repositorio vuelve a compilardist/nexor.iife.js desde el checkout fijado del SDK, registra su digest SHA-256 y lo evalúa en una página JSDOM vacía. Reemplaza fetch por un mock cerrado que rechaza cualquier origen o ruta no reconocida. Luego valida el export global, el DOM montado, la solicitud de configuración top-level, proof of work cuando está disponible, POST /api/widget/v1/turn, telemetría y la respuesta mostrada. También revisa, sin ejecutar los flujos condicionales, que ambas páginas incluyan las rutas de configuración embebida, bandeja de pendientes, persistencia de visitantes y solicitud pública de contacto, y que la ruta no soportada de requestContact incluya la advertencia requerida.
Prepara una vez el worktree fijado del SDK y después ejecuta el smoke sin credenciales de Nexor ni llamadas de red: