Um turno a partir da linha de comando
narya -p "<prompt>" envia um prompt, espera a sessão ficar ociosa e responde na saída padrão. O texto enviado por pipe ou redirecionado para a entrada padrão vai antes do prompt, com uma linha em branco entre eles, como em git diff | narya -p "Review this change.". O Narya lê a entrada padrão até o fim, a menos que ela seja um terminal. Adicione < /dev/null a uma execução que não deve lê-la.
As flags dele:
--repo <path>define o repositório de trabalho, e assume por padrão o diretório de trabalho.--model <id>escolhe o modelo.--agent <name>roda o turno sob um agente nomeado.--session <id>continua uma sessão existente.--style <name>nomeia um estilo de resposta que você declarou como[styles.<name>]emconfig.toml. Ele não pode se juntar a--session.--instructions <file>acrescenta um arquivo de instruções ao prompt de sistema. Repita para mais arquivos. Uma execução que vai para um host em execução recusa essa opção.--jsonmuda a saída para um formato de máquina.--allow <action>:<resource>deixa a execução fazer essa ação sem perguntar até o host parar, como faz uma regra allow dopermissions.toml. Repita a flag para mais, como--allow "shell:make deploy"ou--allow network:docs.rs. O Narya recusa uma regra que opermissions.tomlrecusaria e sai com2. Compermission_mode = "custom", ele também recusa uma regra que alcança um deny no seupermissions.toml.
Códigos de saída
As duas falhas de credencial carregam códigos diferentes de propósito. Uma chave ausente sai com
2, e uma chave rejeitada sai com 1. Tente de novo no 1. No 2, leia a mensagem primeiro: um store preso se libera sozinho, e uma credencial ausente não.
Os dois formatos de --json
narya -p --json transmite um envelope de evento por linha na saída padrão. Cada linha carrega id, type e timestamp. Uma linha acrescenta sessionId e laneId quando o evento pertence a uma sessão ou a uma lane. payload é null quando o evento não carrega corpo. A saída simples carrega apenas a resposta ao seu prompt. O stream carrega cada lane, então selecione por laneId. Estes são os mesmos envelopes de evento que o host transmite na API dele, então um pipeline e um cliente leem um único formato.
Cada outro comando responde com um documento. As ações compartilham um envelope:
result é uma palavra para você ramificar. changed aparece apenas em uma execução que mudou algo. Uma saída diferente de zero carrega reason no lugar.
Alguns comandos publicam o próprio documento em caso de sucesso e imprimem o envelope apenas em caso de falha, entre eles o narya export e os verbos de narya schedule. Ramifique pelo código de saída nesses, nunca por result.
Sob --json, a saída padrão carrega o documento ou o stream e nada mais. Frases para uma pessoa vão para a saída de erro padrão.
A credencial em um runner
Coloque a chave do provedor no secret store do seu CI e entregue-a ao step como
<PROVIDER>_API_KEY. O processo que chama o provedor lê essa variável do próprio ambiente. Em um runner sem host rodando, esse processo é o próprio narya -p. O Narya não salva essa chave no keychain nem no arquivo por provedor.
O Narya lê o histórico da própria branch, então faça o checkout da branch inteira.
Agendamentos
Coloque trabalho no relógio do host.
narya schedule add "<prompt>" --every <duration>repete em um intervalo, e--at <RFC3339>dispara uma vez.- Acrescente
--repo <path>,--agent <name>ou--budget <usd>a qualquer uma das formas. narya schedule listlista o que existe, enarya schedule rm <schedule-id>cancela um.narya schedule budget <schedule-id> on <usd>muda quanto um disparo de um agendamento existente pode gastar.offimpede o agendamento de disparar até você definir um número de novo.
--budget, o agendamento assume o padrão do operador, $5.00 por disparo, como [schedules] ceiling_usd. Se você define um número, o Narya o mantém. Se você define 0, o Narya guarda o agendamento e recusa dispará-lo até você definir um orçamento. Uma mudança em [schedules] ceiling_usd vale no próximo início do host depois que uma pessoa permite o novo config.toml.
Workflows
Um workflow é um programa JavaScript que orquestra agentes. Comece um por caminho ou como código inline, pela API do host. Nomeie o
repository em que a execução trabalha. Um caminho de script deve ficar dentro desse repositório. O Narya recusa um programa inválido antes de qualquer coisa rodar.
Um programa de workflow chama quatro capacidades:
agent(step, agent, task)roda um agente.agents([...])roda uma onda, lida na ordem que você pediu.step(name, value)registra um step.argsentrega ao programa os argumentos da própria execução.

