narya -p roda um prompt para um pipeline. Um cliente que você escreve conduz as mesmas operações com um token próprio.
De que o host é dono
- Sessões: conversas duradouras, cada uma ligada a um caminho de repositório.
- Faixas: as trilhas paralelas dentro de uma sessão.
- Checkpoints e rebobinagens: pontos de restauração da sua árvore de trabalho e os movimentos de volta até eles.
- O armazenamento: o banco de dados que guarda as sessões e as decisões. O host toma o lock dele.
- Conexões com os modelos: o host chama o fornecedor do modelo com a sua credencial.
- Agendamentos: prompts no relógio do host.
- Workflows: programas JavaScript que orquestram agentes.
- Monitores: comandos de longa duração ao lado de uma sessão, cuja saída chega à conversa. Um monitor iniciado com
wakedefinido comotruecomeça um turno quando a saída dele chega enquanto a conversa está ociosa. Quem o iniciou paga por esse turno. - Perguntas de permissão: as perguntas antes de uma chamada de ferramenta e as respostas que você devolve.
Chegar ao host
Na sua própria máquina, o host escuta em um socket Unix na sua pasta Narya. O Narya cria o socket apenas para o dono, e o socket não usa TLS. A requisição de uma pessoa carrega um bearer token do provedor de identidade definido nas suas configurações
[identity]. O host verifica a assinatura, o emissor, a expiração, e a pessoa e a organização que o token nomeia. Uma requisição com um token que não é válido recebe 401 com NRY-0011. Um chamador cujo papel não tem a permissão que uma operação exige recebe 403 com NRY-0028. Uma operação que declara outro esquema de segurança também aceita essa credencial: o stream de eventos aceita a requisição assinada de uma extensão registrada.
Na sua própria máquina, o host também aceita uma requisição sem token do seu próprio usuário do sistema operacional. Essa requisição recebe 401 com NRY-0011 no trabalho que chega à sua organização além desta máquina. Rodar o Narya diz quando o host exige autenticação. Qualquer outra requisição sem credencial recebe 401 com NRY-0011.
Quando você está autenticado, os clientes que a Lerian entrega apresentam o token que o narya login guardou.
O socket é o narya.sock dentro da sua pasta Narya, que é ~/.config/narya por padrão. Defina NARYA_HOME para mudá-la de lugar. Sobre esse socket o host fala HTTP/1.1 e responde JSON com campos em camelCase. A autoridade na URL não carrega nada, então qualquer nome funciona ali.
Os resultados chegam pelo stream de eventos
Uma mensagem responde
202 com um id de turno. Tudo o que esse turno produz chega a você em GET /v1/events como server-sent events.
Envie uma idempotencyKey com uma mensagem, e um reenvio cuja resposta se perdeu não começa um segundo turno. Novas faixas, agendamentos, execuções de workflow e resumos também aceitam uma chave.
A linha data carrega um envelope JSON. O campo type dele diz qual é esse evento: um delta de texto, uma chamada de ferramenta, uma pergunta de permissão, um turno terminado. Um cliente lê um formato e se ramifica por type.
Envie um header Last-Event-ID para retomar de onde parou. Um cursor que nomeia um evento mais novo que o armazenamento responde 409. Um consumidor lento demais para acompanhar perde a própria conexão, e todos os outros clientes seguem recebendo o stream.
Dois parâmetros de query estreitam o stream. O sessionId mantém uma sessão. O hostEvents=true acrescenta os eventos que não pertencem a nenhuma sessão, e apenas se aplica ao lado do sessionId.
O narya -p --json imprime esses mesmos envelopes, um por linha. Um pipeline e um cliente leem um formato só. Veja Automação e CI.
Um formato para listas e erros
Uma lista paginada responde um envelope de cursor:
items, limit e um nextCursor quando ainda resta algo. Os cursores são opacos, e a API não oferece paginação por offset. O armazenamento recebe muitas inserções, então um offset se desloca sob uma escrita concorrente.
Um envelope de erro: code, title e message. Um código é NRY- e quatro dígitos. A lista de erros nomeia cada código e o que fazer com ele.
Leia a referência
Visão geral da API do host do Narya
Visão geral da API do host do Narya: transporte, streaming, envelopes e cada operação.
Lista de erros da API do host do Narya
Cada código com que o host responde, o que o dispara e a saída.

