@hiperplano/aluy-cli 1.0.0-rc.180 → 1.0.0-rc.182

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,7 +1,21 @@
1
- Copyright (c) 2026 Hiperplano. Todos os direitos reservados.
1
+ MIT License
2
2
 
3
- Aluy CLI. Este repositório é de visibilidade pública — o código é inspecionável —
4
- mas isto NÃO é uma concessão de licença de código aberto. Uso, cópia, modificação
5
- ou redistribuição fora da organização exigem autorização expressa por escrito.
3
+ Copyright (c) 2026 Hiperplano
6
4
 
7
- Nenhuma credencial, chave de provider ou dado sensível mora neste repositório.
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -5,110 +5,113 @@
5
5
  </picture>
6
6
  </p>
7
7
 
8
- <h1 align="center">Aluy CLI</h1>
8
+ <p align="center">
9
+ <b>Um agente de terminal que roda na sua máquina, com a sua chave.</b><br>
10
+ Sem intermediário, sem metering, sem mandar o seu código para o servidor de ninguém.
11
+ </p>
9
12
 
10
13
  <p align="center">
11
- Um agente de terminal que roda na <b>sua máquina</b>, com o <b>seu próprio provider de LLM</b>.
14
+ <a href="https://www.npmjs.com/package/@hiperplano/aluy-cli"><img alt="npm" src="https://img.shields.io/npm/v/@hiperplano/aluy-cli?color=%23cc3534&label=npm"></a>
15
+ <a href="LICENSE"><img alt="Licença MIT" src="https://img.shields.io/badge/licen%C3%A7a-MIT-blue"></a>
16
+ <a href="https://github.com/hiperplano/aluy-cli/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/hiperplano/aluy-cli/actions/workflows/ci.yml/badge.svg?branch=main"></a>
17
+ <img alt="Node >= 20" src="https://img.shields.io/node/v/@hiperplano/aluy-cli">
18
+ <img alt="Linux · macOS · Windows" src="https://img.shields.io/badge/-Linux%20%C2%B7%20macOS%20%C2%B7%20Windows-informational">
12
19
  </p>
13
20
 
14
21
  ---
15
22
 
16
- O **Aluy CLI** é um agente de terminal: ele lê e edita arquivos, executa
17
- comandos, busca no seu código e conduz seu próprio **loop de ferramentas** — tudo
18
- numa TUI rica, com uma **engine de permissão** onde todo efeito passa por uma
19
- catraca antes de acontecer.
20
-
21
- Você usa o **seu próprio modelo** (BYO): qualquer provider compatível com a API da
22
- OpenAI, com a sua própria credencial — direto, sem intermediário e sem metering.
23
- _(Por enquanto o aluy roda só local, com a sua chave.)_
24
-
25
- ## Instalação
26
-
27
23
  ```bash
28
24
  npm install -g @hiperplano/aluy-cli
29
- aluy onboard # configura idioma, provider, modelo e (opcional) os complementos
25
+ aluy onboard # instalador guiado: idioma, provider, modelo
30
26
  aluy # abre a sessão
31
27
  ```
32
28
 
33
- O `aluy onboard` é o instalador guiado: escolhe o idioma, conecta o seu provider
34
- (faz um teste de conectividade real antes de prosseguir), e oferece os complementos
35
- opcionais. Funciona em **Linux, macOS e Windows** — o terminal recomendado é o
36
- [WezTerm](https://wezterm.org), mas qualquer terminal moderno serve.
37
-
38
- ## Uso
29
+ O **Aluy CLI** lê e edita arquivos, executa comandos, busca no seu código e conduz
30
+ o próprio loop de ferramentas numa TUI rica. Você aponta o objetivo; ele trabalha.
39
31
 
40
32
  ```bash
41
- aluy # sessão interativa (TUI)
42
- aluy "refatore o módulo X" # dá um objetivo direto e acompanha o agente trabalhar
43
- aluy -p "liste os TODOs" # modo headless (one-shot), ideal p/ scripts/CI
44
- aluy --resume <id|nome> # retoma uma conversa anterior (id ao sair, ou o nome do /rename)
45
- aluy --continue # retoma a sessão mais recente deste diretório
33
+ aluy "migre os testes de jest para vitest" # um objetivo, e acompanhe
34
+ aluy -p "liste os TODOs" --output-format json # headless, para script e CI
35
+ aluy --plan "como eu quebraria esse módulo?" # só lê e analisa, zero efeito
36
+ aluy --continue # retoma de onde parou
46
37
  ```
47
38
 
48
- Dentro da sessão, **slash-commands** controlam tudo sem sair do fluxo:
39
+ ## Por que este, e não outro
49
40
 
50
- | Comando | O que faz |
51
- | --------------------------------------------- | -------------------------------------------------- |
52
- | `/model` · `/provider` · `/effort` | troca modelo / provider / esforço de raciocínio |
53
- | `/init` | cria o `ALUY.md` + a estrutura `.aluy/` do projeto |
54
- | `/mcp` · `/agents` · `/skills` · `/workflows` | gerencia MCP, sub-agentes, skills e workflows |
55
- | `/rooms` | salas de conversa entre agentes (multi-agente) |
56
- | `/rename` · `/theme` · `/lang` | nome+cor da sessão, tema, idioma |
57
- | `/memory` · `/compact` · `/history` | memória, compactação de contexto, histórico |
41
+ **A chave é sua, e o caminho é direto.** Nove providers no catálogo — Anthropic,
42
+ OpenAI, OpenRouter, Google, DeepSeek, Groq, Mistral, xAI e Ollama — ou qualquer
43
+ endpoint compatível com a API da OpenAI. Não há servidor nosso no meio: o seu
44
+ código e o seu prompt vão do seu terminal para o provider que **você** escolheu.
45
+ A credencial nunca fica em claro — vai para o keychain do SO ou, onde ele não
46
+ existe, para um cofre cifrado que não funciona em outra máquina.
58
47
 
59
- ## Como funciona
48
+ **Uma catraca, e só uma.** Todo tool-call passa por um ponto único de
49
+ interceptação antes de virar efeito, com negação por padrão. Não é uma convenção:
50
+ é uma fronteira travada no lint e coberta por teste, e a engine que a hospeda não
51
+ pode nem importar a TUI. Quando você quiser velocidade em vez de perguntas, o
52
+ `--yolo` existe; quando quiser o contrário, o `--plan` deixa tudo read-only.
60
53
 
61
- - **Agente + permissão** — o loop de ferramentas (ler/editar/rodar/buscar) passa por
62
- um ponto único de interceptação: nada com efeito acontece sem a catraca liberar
63
- (ou você aprovar). O modo `--yolo` dispensa as confirmações por sua conta e risco.
64
- - **BYO provider** — `--backend local` fala direto com o provider (API key ou OAuth).
65
- A credencial fica **só no keychain do SO** (macOS Keychain · Windows Credential
66
- Manager · Linux Secret Service) — nunca em arquivo, `.env` ou log.
67
- - **MCP** — conecta servers MCP (`~/.aluy/mcp.json` global e `.mcp.json` do projeto),
68
- compatível com o ecossistema; o onboard ainda oferece pré-instalar alguns (Playwright,
69
- Filesystem, Memory, …).
70
- - **Complementos opcionais** (modo turbo) — memória persistente, modelos locais via
71
- Ollama e gestão de contexto, instaláveis no onboard ou depois com `aluy bootstrap`.
72
- Guia completo (instalação, problemas comuns, instalação manual): [docs/turbo.md](docs/turbo.md).
54
+ **O trabalho continua sem você.** Um serviço é um diretório com um `service.md`:
55
+ horário, orçamento, autonomia e canal. Ele acorda sozinho, abre um turno, respeita
56
+ o teto de tokens — e, quando precisa de uma decisão que não é dele, **pergunta pelo
57
+ Telegram e espera**, em vez de chutar. Você responde do celular e ele retoma.
73
58
 
74
- ## Configuração
59
+ **Fala com o resto do ecossistema.** Servers MCP (globais e por projeto), sub-agentes
60
+ em `.md`, skills, workflows, hooks e plugins. E ele lê o `AGENTS.md` e o `CLAUDE.md`
61
+ do seu repositório junto com o `ALUY.md` — eles compõem, não competem, então adotar
62
+ o aluy não obriga a reescrever o que você já tem.
75
63
 
76
- Tudo vive em `~/.aluy/`:
64
+ ## Documentação
77
65
 
78
- | Arquivo | Conteúdo |
79
- | ---------------- | -------------------------------------------------------------- |
80
- | `config.json` | preferências (idioma, tema, provider/modelo, perfil, limites…) |
81
- | `providers.json` | seus providers BYO (OpenAI-compatíveis) |
82
- | `mcp.json` | servers MCP globais |
66
+ | | |
67
+ | --- | --- |
68
+ | [Comandos](docs/comandos.md) | subcomandos, flags e os 46 slash-commands |
69
+ | [Configuração](docs/configuracao.md) | `~/.aluy/`, precedência, hooks, arquivos de projeto |
70
+ | [Serviços](docs/comandos.md#serviços) | o `service.md` e o runner contínuo |
71
+ | [MCP](docs/mcp.md) | conectar servers, e o que isso implica |
72
+ | [Modo turbo](docs/turbo.md) | memória persistente, Ollama, gestão de contexto |
73
+ | [Compatibilidade](docs/config-compat.md) | conviver com a config de outros agentes |
83
74
 
84
- Variáveis `ALUY_*` e flags de CLI sobrescrevem (precedência **flag > env > config > default**).
85
- No **projeto**, o `ALUY.md` dá as instruções ao agente e `.aluy/` guarda agents, workflows,
86
- commands e skills.
75
+ `aluy --help` traz tudo isso no terminal, e `aluy doctor` diz o que está quebrado
76
+ e como consertar.
87
77
 
88
- ## Monorepo
78
+ ## Segurança
89
79
 
90
- | Pacote | Papel |
91
- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
92
- | **`@hiperplano/aluy-cli-core`** | Engine **portável** do agente (loop · tools · permissão). Sem Ink, sem I/O de terminal. Hospeda o ponto único de interceptação de tool-calls. |
93
- | **`@hiperplano/aluy-cli`** | TUI (**Ink**) + binário **`aluy`** + wiring. Consome `@hiperplano/aluy-cli-core`. |
80
+ O aluy roda **na sua máquina, com os seus privilégios**. Três coisas que vale saber
81
+ antes de usar:
94
82
 
95
- Lema: **core modular, entrega monolítica**. A fronteira `core × TUI` é explícita e
96
- testada (o core não importa Ink).
83
+ - Um **server MCP** de terceiro roda com os seus privilégios e **sem sandbox** — ele
84
+ pode ler o seu filesystem. Plugue só os que você confia.
85
+ - O **`--yolo`** aprova tudo automaticamente. É útil e é perigoso; a escolha é sua.
86
+ - Credencial **nunca** vai para arquivo em claro, log ou `.env`, e o `gitleaks` roda
87
+ na CI para garantir que nenhuma vaze para o repositório.
97
88
 
98
- ### Desenvolvimento
89
+ Encontrou uma vulnerabilidade? Abra uma
90
+ [issue](https://github.com/hiperplano/aluy-cli/issues) marcando como sensível, ou
91
+ fale com os mantenedores antes de divulgar.
92
+
93
+ ## Contribuir
94
+
95
+ PRs são bem-vindos. O [CONTRIBUTING.md](CONTRIBUTING.md) tem o essencial:
99
96
 
100
97
  ```bash
101
- npm install
102
- npm run build # tsc -b (cli-core → cli)
103
- npm run lint
98
+ git clone https://github.com/hiperplano/aluy-cli && cd aluy-cli
99
+ npm install && npm run build
104
100
  npm test
105
- node packages/cli/dist/bin/aluy.js --help
106
101
  ```
107
102
 
108
- ## Contribuir
103
+ Duas regras que não relaxamos: **a CI é honesta** (nada de `|| true` ou
104
+ `continue-on-error` — gate vermelho bloqueia o merge) e **a fronteira do core é
105
+ real** (`@hiperplano/aluy-cli-core` não importa Ink nem faz I/O de terminal,
106
+ travado no eslint e em teste).
107
+
108
+ O histórico de cada versão está no [CHANGELOG.md](CHANGELOG.md).
109
+
110
+ ## Estado
109
111
 
110
- Ver [`CONTRIBUTING.md`](CONTRIBUTING.md).
112
+ `1.0.0-rc` — em uso diário, com release frequente. A superfície de comandos está
113
+ estável; o que ainda muda vem anotado no CHANGELOG a cada rc.
111
114
 
112
115
  ## Licença
113
116
 
114
- Ver [`LICENSE`](LICENSE).
117
+ [MIT](LICENSE) © Hiperplano