Transporte e autorização
O host escuta em um Unix socket na sua pasta Narya. O Narya cria o socket apenas para o proprietário, e as permissões de arquivo são toda a autorização. Não há senha, nem token e nem TLS. O socket é o
narya.sock dentro da pasta Narya. A pasta é $NARYA_HOME, ou $XDG_CONFIG_HOME/narya, ou ~/.config/narya, nessa ordem.
As requisições são HTTP/1.1 com corpos JSON. Os nomes de campo são camelCase. Conecte-se ao socket e envie uma requisição comum:
O trabalho é aceito e os resultados chegam em stream
Os resultados nunca chegam na resposta da requisição que os causou.
POST /v1/sessions/{sessionId}/messages responde 202 com um id de turn. Tudo o que o turn produz chega via stream por GET /v1/events como server-sent events.
Cada frame carrega uma linha id:, uma linha data:, e uma linha em branco. O payload de data é um único envelope de evento JSON, e sua propriedade type diz qual evento é. Os frames não carregam nenhuma linha event: ou retry:.
sessionId o restringe a uma única sessão. hostEvents=true adiciona os eventos que não pertencem a nenhuma sessão, e ele apenas se aplica ao lado de sessionId.
Para retomar, envie o último id que você recebeu no header Last-Event-ID da requisição. O stream continua a partir do primeiro evento depois dele que o store ainda contém. Compare o primeiro id que você recebe com o que você enviou, e leia o estado novamente por meio das operações GET quando houver uma lacuna. Um cursor mais recente do que qualquer coisa que o store contém recebe 409 com o código NRY-0026, e o mesmo cursor é recusado de forma idêntica todas as vezes.
Os dois envelopes
Uma lista paginada responde com um envelope de cursor:
items, limit e um nextCursor quando resta mais conteúdo. Os cursors são opacos. Passe um de volta como o parâmetro de query cursor para obter a próxima página.
Um envelope de erro: code, title e message, além de um mapa fields em um 422. Os códigos são NRY- e quatro dígitos.
A API do host
Leia o que o host serve e por que o contrato tem este formato.
Lista de erros
Consulte todos os códigos que o host responde.

