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.
- package/README.md +284 -45
- package/README.pt-BR.md +334 -0
- package/dist/commands/auth/login.js +97 -19
- package/dist/commands/auth/logout.js +4 -6
- package/dist/commands/auth/whoami.js +12 -11
- package/dist/commands/cache/index.js +43 -0
- package/dist/commands/config/index.js +128 -0
- package/dist/commands/init/index.js +209 -0
- package/dist/commands/init-ci/index.js +153 -0
- package/dist/commands/license/index.js +10 -0
- package/dist/commands/license/status.js +44 -0
- package/dist/commands/license/tier-table.js +46 -0
- package/dist/commands/marketplace/browse.js +219 -0
- package/dist/commands/marketplace/install.js +233 -29
- package/dist/commands/marketplace/list.js +94 -16
- package/dist/commands/module/doctor.js +143 -38
- package/dist/commands/module/publish.js +291 -0
- package/dist/commands/upgrade/check.js +162 -0
- package/dist/commands/upgrade/index.js +218 -0
- package/dist/core/AuthService.js +207 -14
- package/dist/core/CacheManager.js +151 -0
- package/dist/core/ConfigManager.js +165 -0
- package/dist/core/EnvManager.js +196 -0
- package/dist/core/ErrorRecovery.js +191 -0
- package/dist/core/LicenseService.js +118 -0
- package/dist/core/ModuleDoctor.js +290 -4
- package/dist/core/ModuleInstaller.js +136 -2
- package/dist/core/ProjectInitializer.js +154 -0
- package/dist/core/RegistryResolver.js +94 -0
- package/dist/core/ScriptRunner.js +72 -0
- package/dist/core/SignatureVerifier.js +75 -0
- package/dist/index.js +265 -20
- package/dist/infrastructure/MarketplaceClient.js +388 -64
- package/dist/infrastructure/errors.js +61 -0
- package/dist/types/auth.js +2 -0
- package/dist/types/marketplace.js +2 -0
- package/package.json +23 -4
- package/dist/commands/modules/add.js +0 -53
- package/dist/commands/modules/list.js +0 -40
- package/dist/commands/modules/remove.js +0 -54
- package/dist/core/api/KavenApiClient.js +0 -61
- package/dist/core/auth/AuthManager.js +0 -91
- package/dist/core/modules/Injector.js +0 -86
- package/dist/core/modules/ModuleInstaller.js +0 -63
- package/dist/core/modules/ModuleManager.js +0 -59
- package/dist/core/modules/ModuleRemover.js +0 -60
- package/dist/lib/config.js +0 -66
- package/dist/lib/errors.js +0 -32
- package/dist/lib/logger.js +0 -70
- 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
|
+
[](https://www.npmjs.com/package/kaven-cli)
|
|
6
|
+
[](https://www.npmjs.com/package/kaven-cli)
|
|
3
7
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
4
|
-
[](https://nodejs.org)
|
|
9
|
+
[](https://github.com/kaven-co/kaven-cli/actions/workflows/ci.yml)
|
|
5
10
|
|
|
6
|
-
|
|
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
|
-
> **
|
|
14
|
+
> **Alpha:** APIs and commands may change before v1.0.0.
|
|
9
15
|
|
|
10
16
|
---
|
|
11
17
|
|
|
12
|
-
##
|
|
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
|
-
#
|
|
22
|
+
# or
|
|
19
23
|
pnpm add -g kaven-cli@alpha
|
|
20
24
|
```
|
|
21
25
|
|
|
22
|
-
|
|
26
|
+
**Requirements:** Node.js >= 20, pnpm (required by `kaven init`)
|
|
27
|
+
|
|
28
|
+
---
|
|
23
29
|
|
|
24
|
-
|
|
30
|
+
## Quick Start
|
|
25
31
|
|
|
26
32
|
```bash
|
|
27
|
-
# 1.
|
|
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
|
-
#
|
|
31
|
-
kaven marketplace
|
|
39
|
+
# 3. Browse available modules
|
|
40
|
+
kaven marketplace browse
|
|
32
41
|
|
|
33
|
-
#
|
|
42
|
+
# 4. Install a module
|
|
34
43
|
kaven marketplace install payments
|
|
35
44
|
|
|
36
|
-
#
|
|
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
|
-
|
|
233
|
+
```json
|
|
234
|
+
// ~/.kaven/config.json
|
|
235
|
+
{
|
|
236
|
+
"apiUrl": "https://api.your-kaven-instance.com"
|
|
237
|
+
}
|
|
238
|
+
```
|
|
44
239
|
|
|
45
|
-
|
|
240
|
+
### Debug Mode
|
|
46
241
|
|
|
47
|
-
|
|
242
|
+
```bash
|
|
243
|
+
KAVEN_DEBUG=1 kaven marketplace list
|
|
244
|
+
```
|
|
48
245
|
|
|
49
|
-
|
|
246
|
+
### Offline Mode
|
|
50
247
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
248
|
+
```bash
|
|
249
|
+
KAVEN_OFFLINE=1 kaven marketplace list
|
|
250
|
+
```
|
|
54
251
|
|
|
55
|
-
|
|
252
|
+
---
|
|
56
253
|
|
|
57
|
-
|
|
254
|
+
## Troubleshooting
|
|
58
255
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
256
|
+
**"Not authenticated" error**
|
|
257
|
+
```bash
|
|
258
|
+
kaven auth login
|
|
259
|
+
```
|
|
62
260
|
|
|
63
|
-
|
|
261
|
+
**"module.json not found" on publish**
|
|
64
262
|
|
|
65
|
-
|
|
263
|
+
Run `kaven module publish` from inside the module directory (the one containing `module.json`).
|
|
66
264
|
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
273
|
+
**Prisma client out of sync**
|
|
274
|
+
```bash
|
|
275
|
+
kaven module doctor --fix
|
|
276
|
+
# or manually:
|
|
277
|
+
npx prisma generate
|
|
278
|
+
```
|
|
71
279
|
|
|
72
|
-
|
|
280
|
+
**Cache issues**
|
|
281
|
+
```bash
|
|
282
|
+
kaven cache clear
|
|
283
|
+
```
|
|
73
284
|
|
|
74
|
-
|
|
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
|
-
##
|
|
293
|
+
## Contributing
|
|
79
294
|
|
|
80
|
-
|
|
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
|
-
|
|
83
|
-
|
|
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
|
-
##
|
|
324
|
+
## License
|
|
86
325
|
|
|
87
|
-
|
|
326
|
+
Apache 2.0 — see [LICENSE](LICENSE)
|
|
88
327
|
|
|
89
328
|
---
|
|
90
329
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
package/README.pt-BR.md
ADDED
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
# Kaven CLI
|
|
2
|
+
|
|
3
|
+
> 📖 English version: [README.md](./README.md)
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/kaven-cli)
|
|
6
|
+
[](https://www.npmjs.com/package/kaven-cli)
|
|
7
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
8
|
+
[](https://nodejs.org)
|
|
9
|
+
[](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
|