Saltar al contenido principal
Esta sección es para desarrolladores. Si quieres una descripción general de negocio de Narya, consulta Qué es Narya.
Narya ejecuta agentes de programación detrás de una única API HTTP. Un host de larga duración es dueño de las sesiones, el almacén y las conexiones a los modelos. El cliente de terminal y el comando de un solo uso que distribuye Lerian manejan esta API. Un cliente que tú escribas maneja la misma.

Transporte y autorización


En tu propia máquina, el host escucha en un socket Unix. El socket es narya.sock dentro del home de Narya. El home es $NARYA_HOME, o $XDG_CONFIG_HOME/narya, o ~/.config/narya, en ese orden. Las solicitudes son HTTP/1.1 con cuerpos JSON. Los nombres de campo están en camelCase. Conéctate al socket y envía una solicitud común:
La autoridad en esa URL se ignora, porque la conexión ya es el socket. Cualquier nombre de host funciona.

El trabajo se acepta, y los resultados llegan en stream


POST /v1/sessions/{sessionId}/messages responde 202 con un id de turno. Todo lo que produce el turno llega en stream a través de GET /v1/events como server-sent events. El payload de data es un envelope de evento en JSON, y su propiedad type indica de qué evento se trata. Los frames no llevan línea event: ni retry:.
Dos parámetros de consulta dan forma al stream. sessionId lo limita a una sesión. hostEvents=true agrega los eventos que no pertenecen a ninguna sesión, y solo se aplica junto con sessionId. Para reanudar, envía el último id que recibiste en el encabezado de solicitud Last-Event-ID. El stream continúa desde el primer evento después de ese que el almacén todavía conserva. El host elimina los eventos de un turno después de que el turno termina. Cuando una reanudación salta esos eventos, el stream abre con un evento replay-gap: vuelve a leer la transcripción y reanuda desde su lastEventId. Compara el primer id que recibes con el que enviaste, y vuelve a leer el estado a través de las operaciones GET cuando haya un vacío. Un cursor más reciente que cualquiera que tenga el almacén recibe 409 con el código NRY-0026.

Los dos envelopes


Una lista paginada responde con un envelope de cursor: items, limit y un nextCursor cuando queda más contenido. Los cursores son opacos. Pasa uno de vuelta como parámetro de consulta cursor para obtener la página siguiente. Un envelope de error: code, title y message. Los códigos son NRY- y cuatro dígitos.

La API del host

Lee qué sirve el host y por qué el contrato tiene esta forma.

Lista de errores

Busca todos los códigos que responde el host.