@simplafy-tec/adk
v0.1.0
Published
CLI do ADK da Simplafy — cria, valida e publica agentes, tools e jornadas no Hub.
Readme
@simplafy-tec/adk
CLI do ADK da Simplafy. Node ≥ 20, sem postinstall.
npx @simplafy-tec/adk <comando>Comandos
| Comando | O que faz |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| doctor | Confere node/python 3.12/uv/git contra GET /api/v1/adk/policy (fallback embutido) |
| login · whoami · orgs · logout | OAuth do Hub: DCR, PKCE S256, callback em 127.0.0.1 |
| init tool\|mcp\|app <nome> | Esqueleto do componente (manifest.yaml, tools/<nome>.py, pyproject.toml uv, testes) |
| build | Contrato + scanLeaks + uv lock + ruff check + tamanho ≤ política. Saída JSON {issues, checks} |
| test · dev | uv run pytest · watch que revalida e executa o handler com dev/sample-input.json |
| validate | Valida os artefatos localmente, sem falar com o Hub |
| plan · deploy (apply) | POST /api/v1/adk/{tools\|agents\|journeys}/{plan\|apply}?orgId= |
| mcp-server | stdio: list_components, get_contract, get_policy, validate, plan |
Ambiente
ADK_HUB_URL— base da API do Hub (ex.:https://api-hub-v2-staging.simplafy.com.br).ADK_TOKEN— modo headless (API keysk_…ou JWT). Ganha do login: o CI precisa ser previsível, e a credencial da máquina de quem rodou por último não pode vazar para dentro dele. ComADK_TOKEN,--orgé obrigatório.ADK_CONFIG_DIR— sobrescreve~/.config/simplafy-adk(testes).
adk login grava ~/.config/simplafy-adk/credentials.json com permissão
0600, indexado por URL do Hub, e renova o access token sozinho (60 s antes
do fim). adk logout revoga antes de apagar — apagar só o arquivo deixaria
um refresh token vivo por 30 dias do lado do servidor.
Ordem e tolerância a falha no deploy
Os artefatos sobem na ordem tool → agent → journey: um agente pode
referenciar a tool que este mesmo apply cria, e a jornada pode acionar os dois.
Um artefato que falha não aborta os demais — o relatório sai completo e o
exit code é 1. --json emite {artefatos: [{arquivo, kind, slug, action,
blocking, pending, applied}]}.
Só entram as pastas cujo orgs/<pasta>/org.yaml declara o --org no --env
pedido (default staging). Pasta sem org.yaml fica de fora: o silêncio nega.
init e segredo
O template nasce com .gitignore cobrindo .env* e .venv/, e sem
CLAUDE.md. O build varre todo o pacote menos .env* — é o lugar certo do
segredo local, e escaneá-lo reprovaria o uso correto. Credencial de produção é
referenciada por nome e resolvida no Hub.
kind: mcpekind: appgeram esqueleto, mas o deploy é recusado pelo servidor comunknown_kindaté a fatia N10.
