Autoria de Comandos com LLM
invowk agent cmd ajuda agentes LLM a criar comandos personalizados válidos sem adivinhar o contrato CUE atual.
Prompt para Agentes Externos
Use prompt quando outro agente ou ferramenta fará a edição. A saída é um system prompt com os schemas completos e atuais de invowkfile.cue e invowkmod.cue, além de orientação específica do Invowk sobre runtimes, dependências, visibilidade de comandos e defaults seguros.
# Print the system prompt for an external agent
invowk agent cmd prompt
# Machine-readable prompt and schemas
invowk agent cmd prompt --format json
Gerar um Comando
Use create quando o Invowk deve chamar o provedor LLM configurado, validar o comando gerado e aplicar o patch em invowkfile.cue.
# Configure once, then generate without per-run LLM flags
invowk config set llm.provider codex
invowk agent cmd create 'add a lint command that runs golangci-lint'
# Generate and patch invowkfile.cue using the best available provider
invowk agent cmd create --llm-provider auto 'add a lint command that runs golangci-lint'
# Preview the patch without writing
invowk agent cmd create --llm-provider codex --dry-run 'add a test command'
# Print only the generated command object
invowk agent cmd create --llm-provider claude --print 'add a release checklist command'
# Write and verify with a dry-run execution plan
invowk agent cmd create --llm-provider codex --verify 'add a release command'
# Use an OpenAI-compatible local server
invowk agent cmd create --llm --llm-url http://localhost:1234/v1 'add a docs build command'
O comando create usa as mesmas flags de provedor LLM de invowk audit: --llm-provider, --llm, --llm-url, --llm-model, --llm-api-key, --llm-timeout e --llm-concurrency.
Configure llm.provider ou llm.api uma vez em config.cue para omitir flags LLM nas próximas execuções de create:
invowk config set llm.provider codex
invowk agent cmd create 'add a lint command that runs golangci-lint'
Veja Opções de Configuração para exemplos de provider e API. Chaves de API brutas devem ficar em variáveis de ambiente, referenciadas com llm.api.api_key_env.
Comportamento de Escrita
Por padrão, create atualiza invowkfile.cue. Use --dry-run para visualizar o patch, --print para imprimir apenas o objeto de comando gerado, --verify para resolver o comando escrito com um plano de execução dry-run e --replace quando você realmente quiser substituir um comando existente com o mesmo nome.
:::caution O conteúdo do prompt é enviado ao provedor configurado
create envia o system prompt e schemas de autoria gerados, além de um prompt de usuário contendo sua solicitação, o caminho do invowkfile de destino e o conteúdo atual do invowkfile de destino ou seu estado de arquivo ausente/vazio. Se o modelo retorna saída inválida, a tentativa de reparo também envia o erro de validação e a resposta anterior do modelo. Use um provedor local quando as definições de comandos tiverem detalhes privados do projeto.
:::
Validação
O Invowk aceita apenas um objeto de comando gerado. Ele usa saída JSON estruturada com backends de API OpenAI compatíveis, tenta novamente uma vez com feedback de validação quando um modelo retorna saída inválida e rejeita arrays cmds completos, JSON malformado e CUE inválido com campos desconhecidos de runtime/plataforma. Ao escrever em invowkfile.cue, nomes de comando duplicados são rejeitados a menos que --replace esteja definido; --print valida e imprime o objeto de comando gerado sem verificar duplicatas no arquivo de destino.