kaven-cli 0.1.0-alpha.1 → 0.3.5

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.
Files changed (50) hide show
  1. package/README.md +284 -45
  2. package/README.pt-BR.md +334 -0
  3. package/dist/commands/auth/login.js +97 -19
  4. package/dist/commands/auth/logout.js +4 -6
  5. package/dist/commands/auth/whoami.js +12 -11
  6. package/dist/commands/cache/index.js +43 -0
  7. package/dist/commands/config/index.js +128 -0
  8. package/dist/commands/init/index.js +209 -0
  9. package/dist/commands/init-ci/index.js +153 -0
  10. package/dist/commands/license/index.js +10 -0
  11. package/dist/commands/license/status.js +44 -0
  12. package/dist/commands/license/tier-table.js +46 -0
  13. package/dist/commands/marketplace/browse.js +219 -0
  14. package/dist/commands/marketplace/install.js +233 -29
  15. package/dist/commands/marketplace/list.js +94 -16
  16. package/dist/commands/module/doctor.js +143 -38
  17. package/dist/commands/module/publish.js +291 -0
  18. package/dist/commands/upgrade/check.js +162 -0
  19. package/dist/commands/upgrade/index.js +218 -0
  20. package/dist/core/AuthService.js +207 -14
  21. package/dist/core/CacheManager.js +151 -0
  22. package/dist/core/ConfigManager.js +165 -0
  23. package/dist/core/EnvManager.js +196 -0
  24. package/dist/core/ErrorRecovery.js +191 -0
  25. package/dist/core/LicenseService.js +118 -0
  26. package/dist/core/ModuleDoctor.js +290 -4
  27. package/dist/core/ModuleInstaller.js +136 -2
  28. package/dist/core/ProjectInitializer.js +154 -0
  29. package/dist/core/RegistryResolver.js +94 -0
  30. package/dist/core/ScriptRunner.js +72 -0
  31. package/dist/core/SignatureVerifier.js +75 -0
  32. package/dist/index.js +265 -20
  33. package/dist/infrastructure/MarketplaceClient.js +388 -64
  34. package/dist/infrastructure/errors.js +61 -0
  35. package/dist/types/auth.js +2 -0
  36. package/dist/types/marketplace.js +2 -0
  37. package/package.json +23 -4
  38. package/dist/commands/modules/add.js +0 -53
  39. package/dist/commands/modules/list.js +0 -40
  40. package/dist/commands/modules/remove.js +0 -54
  41. package/dist/core/api/KavenApiClient.js +0 -61
  42. package/dist/core/auth/AuthManager.js +0 -91
  43. package/dist/core/modules/Injector.js +0 -86
  44. package/dist/core/modules/ModuleInstaller.js +0 -63
  45. package/dist/core/modules/ModuleManager.js +0 -59
  46. package/dist/core/modules/ModuleRemover.js +0 -60
  47. package/dist/lib/config.js +0 -66
  48. package/dist/lib/errors.js +0 -32
  49. package/dist/lib/logger.js +0 -70
  50. package/dist/types/module.js +0 -49
package/README.md CHANGED
@@ -1,93 +1,332 @@
1
- # Kaven CLI 🚀
1
+ # Kaven CLI
2
2
 
3
+ > 📖 Versão em Português: [README.pt-BR.md](./README.pt-BR.md)
4
+
5
+ [![npm version](https://img.shields.io/npm/v/kaven-cli/alpha.svg)](https://www.npmjs.com/package/kaven-cli)
6
+ [![npm downloads](https://img.shields.io/npm/dm/kaven-cli.svg)](https://www.npmjs.com/package/kaven-cli)
3
7
  [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
4
- [![Version](https://img.shields.io/badge/version-0.1.0--alpha.1-orange.svg)](https://semver.org)
8
+ [![Node](https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg)](https://nodejs.org)
9
+ [![CI](https://github.com/kaven-co/kaven-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/kaven-co/kaven-cli/actions/workflows/ci.yml)
5
10
 
6
- A ferramenta de linha de comando oficial para o ecossistema **Kaven**. Projetada para ser robusta, idempotente e extensível.
11
+ The official command-line tool for the [Kaven](https://kaven.site) SaaS boilerplate framework.
12
+ Bootstrap projects, manage modules, and interact with the Kaven Marketplace — all from your terminal.
7
13
 
8
- > **Note**: Este projeto está em fase **Alpha**. APIs e comandos estão sujeitos a alterações.
14
+ > **Alpha:** APIs and commands may change before v1.0.0.
9
15
 
10
16
  ---
11
17
 
12
- ## 📦 Instalação
13
-
14
- A CLI pode ser instalada globalmente via npm ou pnpm:
18
+ ## Installation
15
19
 
16
20
  ```bash
17
21
  npm install -g kaven-cli@alpha
18
- # ou
22
+ # or
19
23
  pnpm add -g kaven-cli@alpha
20
24
  ```
21
25
 
22
- ## 🚀 Início Rápido
26
+ **Requirements:** Node.js >= 20, pnpm (required by `kaven init`)
27
+
28
+ ---
23
29
 
24
- Consiga o seu projeto rodando em segundos:
30
+ ## Quick Start
25
31
 
26
32
  ```bash
27
- # 1. Autenticação
33
+ # 1. Bootstrap a new Kaven project
34
+ kaven init my-saas-app
35
+
36
+ # 2. Authenticate with the marketplace
28
37
  kaven auth login
29
38
 
30
- # 2. Explorar Módulos
31
- kaven marketplace list
39
+ # 3. Browse available modules
40
+ kaven marketplace browse
32
41
 
33
- # 3. Instalar um Módulo
42
+ # 4. Install a module
34
43
  kaven marketplace install payments
35
44
 
36
- # 4. Verificar Saúde do Projeto
45
+ # 5. Check project health
37
46
  kaven module doctor
47
+ ```
48
+
49
+ ---
50
+
51
+ ## Command Reference
52
+
53
+ ### `kaven init [project-name]`
54
+
55
+ Bootstrap a new Kaven project from the official template.
56
+
57
+ ```
58
+ Options:
59
+ --defaults Skip interactive prompts, use defaults
60
+ --skip-install Skip pnpm install after setup
61
+ --skip-git Skip git init and initial commit
62
+ --force Overwrite existing directory
63
+ --with-squad Initialize AIOX squad in the project
64
+
65
+ Examples:
66
+ kaven init my-app
67
+ kaven init my-app --defaults
68
+ kaven init my-app --skip-git --skip-install
69
+ ```
70
+
71
+ ---
72
+
73
+ ### `kaven auth`
74
+
75
+ Manage authentication with the Kaven Marketplace.
76
+
77
+ ```
78
+ Commands:
79
+ login Start device code flow (RFC 8628) — opens browser to confirm
80
+ logout Clear the local session
81
+ whoami Display the authenticated user info
82
+ ```
83
+
84
+ ---
85
+
86
+ ### `kaven marketplace`
87
+
88
+ Explore and install modules from the Kaven Marketplace.
89
+
90
+ ```
91
+ Commands:
92
+ list List available modules
93
+ install Download and apply a module to the current project
94
+ browse Interactive TUI browser
95
+
96
+ Options (list):
97
+ --category <cat> Filter by category
98
+ --sort <field> newest (default) | popular | name
99
+ --page <n> Page number
100
+ --limit <n> Results per page (max 100)
101
+ --json Raw JSON output
102
+
103
+ Options (install):
104
+ --version <ver> Install a specific version
105
+ --force Skip overwrite confirmation
106
+ --skip-env Skip .env injection
107
+ --env-file <path> Target .env file path
108
+ ```
109
+
110
+ ---
111
+
112
+ ### `kaven module`
113
+
114
+ Manage modules installed in the current project.
115
+
116
+ ```
117
+ Commands:
118
+ doctor Run health checks on the project and installed modules
119
+ add Install a module from a local manifest
120
+ remove Uninstall an installed module
121
+ publish Publish a module to the marketplace
122
+
123
+ Options (doctor):
124
+ --fix Auto-fix detected issues (runs pnpm install, prisma generate, patches env)
125
+ --json Machine-readable JSON output
126
+
127
+ Exit codes (doctor):
128
+ 0 All checks passed
129
+ 1 One or more errors
130
+ 2 Warnings only
131
+
132
+ Options (publish):
133
+ --dry-run Validate and package without uploading
134
+ --changelog <msg> Release notes for this version
135
+ ```
136
+
137
+ > `kaven doctor` is an alias for `kaven module doctor`.
138
+
139
+ ---
140
+
141
+ ### `kaven upgrade`
142
+
143
+ Upgrade your license tier via Paddle checkout.
144
+
145
+ ```
146
+ Options:
147
+ --no-browser Print checkout URL instead of opening browser
148
+
149
+ Behavior:
150
+ Opens Paddle checkout in browser → polls for payment (every 5s, max 10 min)
151
+ → updates local license on success
152
+ ```
153
+
154
+ ---
155
+
156
+ ### `kaven license`
157
+
158
+ ```
159
+ Commands:
160
+ status Show current license tier and expiry
161
+ ```
162
+
163
+ ---
164
+
165
+ ### `kaven cache`
166
+
167
+ Manage the local API response cache (`~/.kaven/cache`, max 50 MB).
38
168
 
39
- # 5. Ver Telemetria Local
40
- kaven telemetry view
41
169
  ```
170
+ Commands:
171
+ status Show cache stats (size, entries, age)
172
+ clear Delete all cached data
173
+
174
+ Cache TTLs:
175
+ Module listings 24 hours
176
+ Module manifests 7 days
177
+ License status 1 hour
178
+ ```
179
+
180
+ ---
181
+
182
+ ### `kaven telemetry`
183
+
184
+ ```
185
+ Commands:
186
+ view Show recent local telemetry events
187
+ -l, --limit <n> Number of events (default: 10)
188
+ ```
189
+
190
+ ---
191
+
192
+ ### `kaven config`
193
+
194
+ ```
195
+ Commands:
196
+ set <key> <value> Set a configuration value
197
+ get <key> Get a configuration value
198
+ ```
199
+
200
+ ---
201
+
202
+ ### `kaven init-ci`
203
+
204
+ Initialize CI/CD configuration in the current project. Generates GitHub Actions workflows tailored for Kaven projects.
205
+
206
+ ---
207
+
208
+ ## Configuration
209
+
210
+ All configuration lives in `~/.kaven/`:
211
+
212
+ ```
213
+ ~/.kaven/
214
+ auth.json Authentication tokens (chmod 600)
215
+ config.json CLI configuration
216
+ license.json License key and tier
217
+ signing-key.json Module Ed25519 signing key (chmod 600)
218
+ cache/ API response cache (max 50 MB)
219
+ telemetry.log Local telemetry events
220
+ ```
221
+
222
+ ### Environment Variables
223
+
224
+ | Variable | Description |
225
+ |----------|-------------|
226
+ | `KAVEN_API_URL` | Override the marketplace API URL |
227
+ | `KAVEN_DEBUG=1` | Enable verbose debug output |
228
+ | `KAVEN_OFFLINE=1` | Use cached data only, no network requests |
229
+ | `KAVEN_TELEMETRY=0` | Disable telemetry entirely |
230
+
231
+ ### API URL Override (config file)
42
232
 
43
- ## 🛠️ Comandos Principais
233
+ ```json
234
+ // ~/.kaven/config.json
235
+ {
236
+ "apiUrl": "https://api.your-kaven-instance.com"
237
+ }
238
+ ```
44
239
 
45
- A Kaven CLI organiza suas funcionalidades em grupos lógicos para uma melhor experiência:
240
+ ### Debug Mode
46
241
 
47
- ### 📦 Módulos (`module`, `m`)
242
+ ```bash
243
+ KAVEN_DEBUG=1 kaven marketplace list
244
+ ```
48
245
 
49
- Gerenciamento local de módulos e integridade do projeto.
246
+ ### Offline Mode
50
247
 
51
- - `kaven module add <path>`: Adiciona um módulo localmente via arquivo de manifest.
52
- - `kaven module remove <name>`: Remove um módulo e limpa as injeções de código.
53
- - `kaven module doctor`: Verifica a integridade dos markers, âncoras e dependências.
248
+ ```bash
249
+ KAVEN_OFFLINE=1 kaven marketplace list
250
+ ```
54
251
 
55
- ### 🔑 Autenticação (`auth`)
252
+ ---
56
253
 
57
- Gerenciamento de sessão e tokens.
254
+ ## Troubleshooting
58
255
 
59
- - `kaven auth login`: Inicia o fluxo de autenticação (Device Flow).
60
- - `kaven auth logout`: Remove as credenciais locais.
61
- - `kaven auth whoami`: Exibe informações do usuário atual.
256
+ **"Not authenticated" error**
257
+ ```bash
258
+ kaven auth login
259
+ ```
62
260
 
63
- ### 🏬 Marketplace (`marketplace`, `mkt`)
261
+ **"module.json not found" on publish**
64
262
 
65
- Descoberta e instalação de módulos oficiais.
263
+ Run `kaven module publish` from inside the module directory (the one containing `module.json`).
66
264
 
67
- - `kaven marketplace list`: Lista todos os módulos disponíveis na nuvem Kaven.
68
- - `kaven marketplace install <id>`: Baixa e instala um módulo automaticamente.
265
+ **pnpm install fails on `kaven init`**
266
+ ```bash
267
+ npm install -g pnpm # install pnpm globally
268
+ # or skip it and install later:
269
+ kaven init my-app --skip-install
270
+ cd my-app && pnpm install
271
+ ```
69
272
 
70
- ### 📊 Telemetria (`telemetry`)
273
+ **Prisma client out of sync**
274
+ ```bash
275
+ kaven module doctor --fix
276
+ # or manually:
277
+ npx prisma generate
278
+ ```
71
279
 
72
- Observabilidade e auditoria local.
280
+ **Cache issues**
281
+ ```bash
282
+ kaven cache clear
283
+ ```
73
284
 
74
- - `kaven telemetry view`: Exibe os últimos eventos registrados localmente.
285
+ **Permission denied on `~/.kaven/`**
286
+ ```bash
287
+ chmod 700 ~/.kaven
288
+ chmod 600 ~/.kaven/auth.json ~/.kaven/signing-key.json
289
+ ```
75
290
 
76
291
  ---
77
292
 
78
- ## 🧪 Desenvolvimento
293
+ ## Contributing
79
294
 
80
- Nós valorizamos contribuições! Antes de começar, por favor leia nosso guia de contribuição:
295
+ ```bash
296
+ git clone https://github.com/kaven-co/kaven-cli
297
+ cd kaven-cli
298
+ pnpm install
299
+ pnpm test # 310 tests
300
+ pnpm run typecheck
301
+ pnpm run lint
302
+ ```
303
+
304
+ **Commit convention:** this repo uses [Conventional Commits](https://www.conventionalcommits.org/).
81
305
 
82
- - [CONTRIBUTING.md](./CONTRIBUTING.md) - Guia de setup e padrões.
83
- - [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) - Nosso compromisso com a comunidade.
306
+ ```bash
307
+ feat: add --with-squad flag to kaven init
308
+ fix: resolve cache corruption on concurrent writes
309
+ docs: update troubleshooting section
310
+ ```
311
+
312
+ **Release flow:**
313
+ 1. Open a PR against `main`
314
+ 2. PR requires CI green (lint + typecheck + tests + build)
315
+ 3. Merge → Semantic Release automatically bumps version and publishes to npm (`@alpha` tag)
316
+
317
+ Types that trigger a release: `feat` (minor), `fix` / `perf` / `refactor` (patch), `BREAKING CHANGE` (major).
318
+ Types that do **not** trigger a release: `chore`, `docs`, `test`, `style`, `ci`.
319
+
320
+ See [`docs/releasing.md`](./docs/releasing.md) for the full release pipeline documentation.
321
+
322
+ ---
84
323
 
85
- ## 📄 Licença
324
+ ## License
86
325
 
87
- Este projeto é licenciado sob a **Apache-2.0 License** - veja o arquivo [LICENSE](LICENSE) para detalhes.
326
+ Apache 2.0 see [LICENSE](LICENSE)
88
327
 
89
328
  ---
90
329
 
91
- <p align="center">
92
- Feito com ❤️ pela equipe Kaven
93
- </p>
330
+ Documentation: https://docs.kaven.site/cli
331
+ GitHub: https://github.com/kaven-co/kaven-cli
332
+ npm: https://www.npmjs.com/package/kaven-cli
@@ -0,0 +1,334 @@
1
+ # Kaven CLI
2
+
3
+ > 📖 English version: [README.md](./README.md)
4
+
5
+ [![npm version](https://img.shields.io/npm/v/kaven-cli/alpha.svg)](https://www.npmjs.com/package/kaven-cli)
6
+ [![npm downloads](https://img.shields.io/npm/dm/kaven-cli.svg)](https://www.npmjs.com/package/kaven-cli)
7
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
8
+ [![Node](https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg)](https://nodejs.org)
9
+ [![CI](https://github.com/kaven-co/kaven-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/kaven-co/kaven-cli/actions/workflows/ci.yml)
10
+
11
+ A CLI oficial do [Kaven](https://kaven.site) — boilerplate enterprise-grade para SaaS.
12
+ Bootstrap de projetos, gerenciamento de módulos e integração com o Kaven Marketplace diretamente pelo terminal.
13
+
14
+ O Kaven é um projeto brasileiro. O boilerplate comprime de 3-6 meses para dias o trabalho de infraestrutura base de um SaaS (auth, multi-tenancy, pagamentos, design system).
15
+
16
+ > **Alpha:** APIs e comandos podem mudar antes da v1.0.0.
17
+
18
+ ---
19
+
20
+ ## Instalação
21
+
22
+ ```bash
23
+ npm install -g kaven-cli@alpha
24
+ # ou
25
+ pnpm add -g kaven-cli@alpha
26
+ ```
27
+
28
+ **Requisitos:** Node.js >= 20, pnpm (necessário para o `kaven init`)
29
+
30
+ ---
31
+
32
+ ## Início Rápido
33
+
34
+ ```bash
35
+ # 1. Bootstrap de um novo projeto
36
+ kaven init meu-saas
37
+
38
+ # 2. Autenticar com o marketplace
39
+ kaven auth login
40
+
41
+ # 3. Explorar módulos disponíveis
42
+ kaven marketplace browse
43
+
44
+ # 4. Instalar um módulo
45
+ kaven marketplace install payments
46
+
47
+ # 5. Verificar saúde do projeto
48
+ kaven module doctor
49
+ ```
50
+
51
+ ---
52
+
53
+ ## Referência de Comandos
54
+
55
+ ### `kaven init [nome-do-projeto]`
56
+
57
+ Cria um novo projeto Kaven a partir do template oficial.
58
+
59
+ ```
60
+ Opções:
61
+ --defaults Pular prompts interativos, usar valores padrão
62
+ --skip-install Pular o pnpm install após o setup
63
+ --skip-git Pular git init e commit inicial
64
+ --force Sobrescrever diretório existente
65
+ --with-squad Inicializar squad AIOX no projeto
66
+
67
+ Exemplos:
68
+ kaven init meu-app
69
+ kaven init meu-app --defaults
70
+ kaven init meu-app --skip-git --skip-install
71
+ ```
72
+
73
+ ---
74
+
75
+ ### `kaven auth`
76
+
77
+ Gerenciar autenticação com o Kaven Marketplace.
78
+
79
+ ```
80
+ Subcomandos:
81
+ login Iniciar fluxo de device code (RFC 8628) — abre o navegador para confirmar
82
+ logout Encerrar a sessão local
83
+ whoami Exibir informações do usuário autenticado
84
+ ```
85
+
86
+ ---
87
+
88
+ ### `kaven marketplace`
89
+
90
+ Explorar e instalar módulos do Kaven Marketplace.
91
+
92
+ ```
93
+ Subcomandos:
94
+ list Listar módulos disponíveis
95
+ install Baixar e aplicar um módulo no projeto atual
96
+ browse Navegador interativo (TUI)
97
+
98
+ Opções (list):
99
+ --category <cat> Filtrar por categoria
100
+ --sort <campo> newest (padrão) | popular | name
101
+ --page <n> Número da página
102
+ --limit <n> Resultados por página (máx 100)
103
+ --json Saída em JSON bruto
104
+
105
+ Opções (install):
106
+ --version <ver> Instalar uma versão específica
107
+ --force Pular confirmação de sobrescrita
108
+ --skip-env Pular injeção no .env
109
+ --env-file <path> Caminho do .env alvo
110
+ ```
111
+
112
+ ---
113
+
114
+ ### `kaven module`
115
+
116
+ Gerenciar módulos instalados no projeto atual.
117
+
118
+ ```
119
+ Subcomandos:
120
+ doctor Executar health checks no projeto e nos módulos instalados
121
+ add Instalar um módulo a partir de um manifest local
122
+ remove Desinstalar um módulo instalado
123
+ publish Publicar um módulo no marketplace
124
+
125
+ Opções (doctor):
126
+ --fix Corrigir problemas automaticamente (pnpm install, prisma generate, env vars)
127
+ --json Saída em JSON legível por máquina
128
+
129
+ Exit codes (doctor):
130
+ 0 Todos os checks passaram
131
+ 1 Um ou mais erros encontrados
132
+ 2 Apenas avisos (sem erros)
133
+
134
+ Opções (publish):
135
+ --dry-run Validar e empacotar sem fazer upload
136
+ --changelog <msg> Notas de release para esta versão
137
+ ```
138
+
139
+ > `kaven doctor` é um alias para `kaven module doctor`.
140
+
141
+ ---
142
+
143
+ ### `kaven upgrade`
144
+
145
+ Fazer upgrade da licença via checkout Paddle.
146
+
147
+ ```
148
+ Opções:
149
+ --no-browser Imprimir URL do checkout em vez de abrir o navegador
150
+
151
+ Comportamento:
152
+ Abre o checkout Paddle no navegador → aguarda confirmação de pagamento (a cada 5s, máx 10 min)
153
+ → atualiza a licença local em caso de sucesso
154
+ ```
155
+
156
+ ---
157
+
158
+ ### `kaven license`
159
+
160
+ ```
161
+ Subcomandos:
162
+ status Exibir tier e validade da licença atual
163
+ ```
164
+
165
+ ---
166
+
167
+ ### `kaven cache`
168
+
169
+ Gerenciar o cache local de respostas da API (`~/.kaven/cache`, máx 50 MB).
170
+
171
+ ```
172
+ Subcomandos:
173
+ status Exibir estatísticas do cache (tamanho, entradas, idade)
174
+ clear Apagar todos os dados em cache
175
+
176
+ TTLs do cache:
177
+ Listagem de módulos 24 horas
178
+ Manifests de módulos 7 dias
179
+ Status da licença 1 hora
180
+ ```
181
+
182
+ ---
183
+
184
+ ### `kaven telemetry`
185
+
186
+ ```
187
+ Subcomandos:
188
+ view Exibir eventos de telemetria locais recentes
189
+ -l, --limit <n> Número de eventos (padrão: 10)
190
+ ```
191
+
192
+ ---
193
+
194
+ ### `kaven config`
195
+
196
+ ```
197
+ Subcomandos:
198
+ set <chave> <valor> Definir um valor de configuração
199
+ get <chave> Ler um valor de configuração
200
+ ```
201
+
202
+ ---
203
+
204
+ ### `kaven init-ci`
205
+
206
+ Inicializa configuração de CI/CD no projeto atual. Gera workflows do GitHub Actions configurados para projetos Kaven.
207
+
208
+ ---
209
+
210
+ ## Configuração
211
+
212
+ Toda a configuração fica em `~/.kaven/`:
213
+
214
+ ```
215
+ ~/.kaven/
216
+ auth.json Tokens de autenticação (chmod 600)
217
+ config.json Configuração da CLI
218
+ license.json Chave e tier da licença
219
+ signing-key.json Chave Ed25519 para módulos (chmod 600)
220
+ cache/ Cache de respostas da API (máx 50 MB)
221
+ telemetry.log Eventos de telemetria locais
222
+ ```
223
+
224
+ ### Variáveis de Ambiente
225
+
226
+ | Variável | Descrição |
227
+ |----------|-----------|
228
+ | `KAVEN_API_URL` | Sobrescrever a URL da API do marketplace |
229
+ | `KAVEN_DEBUG=1` | Ativar saída de debug detalhada |
230
+ | `KAVEN_OFFLINE=1` | Usar apenas dados em cache, sem requisições de rede |
231
+ | `KAVEN_TELEMETRY=0` | Desativar telemetria completamente |
232
+
233
+ ### Sobrescrever a URL da API (config file)
234
+
235
+ ```json
236
+ // ~/.kaven/config.json
237
+ {
238
+ "apiUrl": "https://api.seu-kaven.com"
239
+ }
240
+ ```
241
+
242
+ ### Modo Debug
243
+
244
+ ```bash
245
+ KAVEN_DEBUG=1 kaven marketplace list
246
+ ```
247
+
248
+ ### Modo Offline
249
+
250
+ ```bash
251
+ KAVEN_OFFLINE=1 kaven marketplace list
252
+ ```
253
+
254
+ ---
255
+
256
+ ## Troubleshooting
257
+
258
+ **Erro "Not authenticated"**
259
+ ```bash
260
+ kaven auth login
261
+ ```
262
+
263
+ **"module.json not found" ao publicar**
264
+
265
+ Execute `kaven module publish` de dentro do diretório do módulo (o que contém o `module.json`).
266
+
267
+ **pnpm install falha no `kaven init`**
268
+ ```bash
269
+ npm install -g pnpm # instalar pnpm globalmente
270
+ # ou pular e instalar depois:
271
+ kaven init meu-app --skip-install
272
+ cd meu-app && pnpm install
273
+ ```
274
+
275
+ **Prisma client desatualizado**
276
+ ```bash
277
+ kaven module doctor --fix
278
+ # ou manualmente:
279
+ npx prisma generate
280
+ ```
281
+
282
+ **Problemas de cache**
283
+ ```bash
284
+ kaven cache clear
285
+ ```
286
+
287
+ **Permission denied em `~/.kaven/`**
288
+ ```bash
289
+ chmod 700 ~/.kaven
290
+ chmod 600 ~/.kaven/auth.json ~/.kaven/signing-key.json
291
+ ```
292
+
293
+ ---
294
+
295
+ ## Contribuindo
296
+
297
+ ```bash
298
+ git clone https://github.com/kaven-co/kaven-cli
299
+ cd kaven-cli
300
+ pnpm install
301
+ pnpm test # 310 testes
302
+ pnpm run typecheck
303
+ pnpm run lint
304
+ ```
305
+
306
+ **Convenção de commits:** este repositório usa [Conventional Commits](https://www.conventionalcommits.org/).
307
+
308
+ ```bash
309
+ feat: adicionar flag --with-squad ao kaven init
310
+ fix: corrigir corrupção de cache em escritas concorrentes
311
+ docs: atualizar seção de troubleshooting
312
+ ```
313
+
314
+ **Fluxo de release:**
315
+ 1. Abrir um PR contra `main`
316
+ 2. CI deve estar verde (lint + typecheck + testes + build)
317
+ 3. Merge → Semantic Release faz o bump de versão automaticamente e publica no npm (tag `@alpha`)
318
+
319
+ Tipos que disparam release: `feat` (minor), `fix` / `perf` / `refactor` (patch), `BREAKING CHANGE` (major).
320
+ Tipos que **não** disparam release: `chore`, `docs`, `test`, `style`, `ci`.
321
+
322
+ Consulte [`docs/releasing.md`](./docs/releasing.md) para a documentação completa do pipeline de release.
323
+
324
+ ---
325
+
326
+ ## Licença
327
+
328
+ Apache 2.0 — veja [LICENSE](LICENSE)
329
+
330
+ ---
331
+
332
+ Documentação: https://docs.kaven.site/cli
333
+ GitHub: https://github.com/kaven-co/kaven-cli
334
+ npm: https://www.npmjs.com/package/kaven-cli