@nio-cli/cli 0.11.0 → 0.11.2
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/.env.example +118 -118
- package/Dockerfile.gateway +20 -20
- package/README.md +539 -539
- package/dist/adapters/pg/auth-event-repository.js +4 -4
- package/dist/adapters/pg/auth-session-repository.js +2 -2
- package/dist/adapters/pg/dependency-event-repository.js +4 -4
- package/dist/adapters/pg/login-challenge-repository.js +2 -2
- package/dist/adapters/pg/login-ip-repository.js +3 -3
- package/dist/adapters/pg/session-repository.js +3 -3
- package/dist/app/ai-client.js +4 -1
- package/dist/app/ai-client.js.map +1 -1
- package/dist/cli/commands/completion.js +28 -28
- package/dist/cli/commands/docs/html.js +78 -78
- package/dist/cli/copy/auth.json +13 -13
- package/dist/cli/copy/flows.json +5 -5
- package/dist/cli/copy/init.json +15 -15
- package/dist/cli/copy/sync.json +3 -3
- package/dist/cli.js +0 -0
- package/dist/gateway/index.js +0 -0
- package/dist/lib/clients/client-configs.js +13 -5
- package/dist/lib/clients/client-configs.js.map +1 -1
- package/dist/lib/clients/nio-oc-config.js +14 -2
- package/dist/lib/clients/nio-oc-config.js.map +1 -1
- package/dist/lib/exec/map-reduce.js +56 -0
- package/dist/lib/exec/map-reduce.js.map +1 -0
- package/dist/lib/provision/provision.js.map +1 -1
- package/dist/lib/shutdown.js +5 -1
- package/dist/lib/shutdown.js.map +1 -1
- package/dist/mcp-server-lang.js +0 -0
- package/dist/mcp-server.js +0 -0
- package/dist/tui/app.js +29 -9
- package/dist/tui/app.js.map +1 -1
- package/dist/tui/attachments.js +117 -0
- package/dist/tui/attachments.js.map +1 -0
- package/dist/tui/components.js +21 -5
- package/dist/tui/components.js.map +1 -1
- package/dist/tui/debug.js +1 -1
- package/dist/tui/debug.js.map +1 -1
- package/dist/tui/opencode.js +7 -7
- package/dist/tui/opencode.js.map +1 -1
- package/dist/tui/palette.js +3 -3
- package/dist/tui/palette.js.map +1 -1
- package/dist/tui/state.js +56 -3
- package/dist/tui/state.js.map +1 -1
- package/docker/docker-compose.yml +114 -114
- package/docker/kong.yml +59 -59
- package/package.json +99 -97
package/docker/kong.yml
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
# Config declarativa do Kong (DB-less). Kong entra na frente do `nio-gateway` e aplica as regras de roteamento e plugins (rate-limitng)
|
|
2
|
-
_format_version: "3.0"
|
|
3
|
-
|
|
4
|
-
services:
|
|
5
|
-
- name: nio-gateway
|
|
6
|
-
url: http://nio-gateway:3000
|
|
7
|
-
routes:
|
|
8
|
-
# /register (TP-1) — cria usuário; rate-limit apertado.
|
|
9
|
-
- name: nio-gateway-register
|
|
10
|
-
paths:
|
|
11
|
-
- /register
|
|
12
|
-
strip_path: false
|
|
13
|
-
plugins:
|
|
14
|
-
- name: rate-limiting
|
|
15
|
-
config:
|
|
16
|
-
minute: 5
|
|
17
|
-
policy: local
|
|
18
|
-
# /login — alvo de brute-force; rate-limit apertado.
|
|
19
|
-
- name: nio-gateway-login
|
|
20
|
-
paths:
|
|
21
|
-
- /login
|
|
22
|
-
strip_path: false
|
|
23
|
-
plugins:
|
|
24
|
-
- name: rate-limiting
|
|
25
|
-
config:
|
|
26
|
-
minute: 20
|
|
27
|
-
policy: local
|
|
28
|
-
- name: nio-gateway-logout
|
|
29
|
-
paths:
|
|
30
|
-
- /logout
|
|
31
|
-
strip_path: false
|
|
32
|
-
- name: nio-gateway-logout-all
|
|
33
|
-
paths:
|
|
34
|
-
- /logout-all
|
|
35
|
-
strip_path: false
|
|
36
|
-
# /verify-2fa e /security/* — OTP + gerência do 2º fator (spec 0004).
|
|
37
|
-
# cada SMS custa; brute-force de OTP de 6 dígitos → limite mais baixo.
|
|
38
|
-
- name: nio-gateway-verify-2fa
|
|
39
|
-
paths:
|
|
40
|
-
- /verify-2fa
|
|
41
|
-
strip_path: false
|
|
42
|
-
plugins:
|
|
43
|
-
- name: rate-limiting
|
|
44
|
-
config:
|
|
45
|
-
minute: 10
|
|
46
|
-
policy: local
|
|
47
|
-
- name: nio-gateway-security
|
|
48
|
-
paths:
|
|
49
|
-
- /security
|
|
50
|
-
strip_path: false
|
|
51
|
-
plugins:
|
|
52
|
-
- name: rate-limiting
|
|
53
|
-
config:
|
|
54
|
-
minute: 10
|
|
55
|
-
policy: local
|
|
56
|
-
- name: nio-gateway-health
|
|
57
|
-
paths:
|
|
58
|
-
- /health
|
|
59
|
-
strip_path: false
|
|
1
|
+
# Config declarativa do Kong (DB-less). Kong entra na frente do `nio-gateway` e aplica as regras de roteamento e plugins (rate-limitng)
|
|
2
|
+
_format_version: "3.0"
|
|
3
|
+
|
|
4
|
+
services:
|
|
5
|
+
- name: nio-gateway
|
|
6
|
+
url: http://nio-gateway:3000
|
|
7
|
+
routes:
|
|
8
|
+
# /register (TP-1) — cria usuário; rate-limit apertado.
|
|
9
|
+
- name: nio-gateway-register
|
|
10
|
+
paths:
|
|
11
|
+
- /register
|
|
12
|
+
strip_path: false
|
|
13
|
+
plugins:
|
|
14
|
+
- name: rate-limiting
|
|
15
|
+
config:
|
|
16
|
+
minute: 5
|
|
17
|
+
policy: local
|
|
18
|
+
# /login — alvo de brute-force; rate-limit apertado.
|
|
19
|
+
- name: nio-gateway-login
|
|
20
|
+
paths:
|
|
21
|
+
- /login
|
|
22
|
+
strip_path: false
|
|
23
|
+
plugins:
|
|
24
|
+
- name: rate-limiting
|
|
25
|
+
config:
|
|
26
|
+
minute: 20
|
|
27
|
+
policy: local
|
|
28
|
+
- name: nio-gateway-logout
|
|
29
|
+
paths:
|
|
30
|
+
- /logout
|
|
31
|
+
strip_path: false
|
|
32
|
+
- name: nio-gateway-logout-all
|
|
33
|
+
paths:
|
|
34
|
+
- /logout-all
|
|
35
|
+
strip_path: false
|
|
36
|
+
# /verify-2fa e /security/* — OTP + gerência do 2º fator (spec 0004).
|
|
37
|
+
# cada SMS custa; brute-force de OTP de 6 dígitos → limite mais baixo.
|
|
38
|
+
- name: nio-gateway-verify-2fa
|
|
39
|
+
paths:
|
|
40
|
+
- /verify-2fa
|
|
41
|
+
strip_path: false
|
|
42
|
+
plugins:
|
|
43
|
+
- name: rate-limiting
|
|
44
|
+
config:
|
|
45
|
+
minute: 10
|
|
46
|
+
policy: local
|
|
47
|
+
- name: nio-gateway-security
|
|
48
|
+
paths:
|
|
49
|
+
- /security
|
|
50
|
+
strip_path: false
|
|
51
|
+
plugins:
|
|
52
|
+
- name: rate-limiting
|
|
53
|
+
config:
|
|
54
|
+
minute: 10
|
|
55
|
+
policy: local
|
|
56
|
+
- name: nio-gateway-health
|
|
57
|
+
paths:
|
|
58
|
+
- /health
|
|
59
|
+
strip_path: false
|
package/package.json
CHANGED
|
@@ -1,97 +1,99 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@nio-cli/cli",
|
|
3
|
-
"version": "0.11.
|
|
4
|
-
"description": "Orquestrador de ambientes de desenvolvimento: escolhe um perfil, responde um wizard e a CLI (com auxílio de IA via MCP) materializa toolchains, linguagens, frameworks, dotfiles e IDE.",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"license": "UNLICENSED",
|
|
7
|
-
"bin": {
|
|
8
|
-
"nio": "dist/cli.js",
|
|
9
|
-
"nio-cli": "dist/mcp-server.js",
|
|
10
|
-
"nio-gateway": "dist/gateway/index.js",
|
|
11
|
-
"nio-lang": "dist/mcp-server-lang.js"
|
|
12
|
-
},
|
|
13
|
-
"files": [
|
|
14
|
-
"dist",
|
|
15
|
-
"docker/docker-compose.yml",
|
|
16
|
-
"docker/kong.yml",
|
|
17
|
-
"Dockerfile.gateway",
|
|
18
|
-
".env.example",
|
|
19
|
-
"README.md"
|
|
20
|
-
],
|
|
21
|
-
"engines": {
|
|
22
|
-
"node": ">=20"
|
|
23
|
-
},
|
|
24
|
-
"publishConfig": {
|
|
25
|
-
"access": "public"
|
|
26
|
-
},
|
|
27
|
-
"repository": {
|
|
28
|
-
"type": "git",
|
|
29
|
-
"url": "git+https://github.com/hugoreiis12-png/NIO-CLI-.git"
|
|
30
|
-
},
|
|
31
|
-
"homepage": "https://github.com/hugoreiis12-png/NIO-CLI-#readme",
|
|
32
|
-
"bugs": {
|
|
33
|
-
"url": "https://github.com/hugoreiis12-png/NIO-CLI-/issues"
|
|
34
|
-
},
|
|
35
|
-
"keywords": [
|
|
36
|
-
"mcp",
|
|
37
|
-
"model-context-protocol",
|
|
38
|
-
"cli",
|
|
39
|
-
"developer-environment",
|
|
40
|
-
"dev-environment",
|
|
41
|
-
"environment-orchestration",
|
|
42
|
-
"opencode",
|
|
43
|
-
"ai-agent",
|
|
44
|
-
"tui",
|
|
45
|
-
"ink",
|
|
46
|
-
"postgres",
|
|
47
|
-
"nio"
|
|
48
|
-
],
|
|
49
|
-
"scripts": {
|
|
50
|
-
"build": "node --input-type=commonjs -e \"fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\" && tsc && node --input-type=commonjs -e \"const fs=require('fs');fs.cpSync('src/cli/copy','dist/cli/copy',{recursive:true});for(const f of ['cli.js','mcp-server.js','gateway/index.js','mcp-server-lang.js'])fs.chmodSync('dist/'+f,0o755)\"",
|
|
51
|
-
"gen:docs": "bun run scripts/gen-reference.ts",
|
|
52
|
-
"db:ping": "bun run scripts/db-ping.ts",
|
|
53
|
-
"db:tls": "bash scripts/db-tls-setup.sh",
|
|
54
|
-
"db:migrate": "bun run scripts/migrate.ts",
|
|
55
|
-
"argon2:calibrate": "node scripts/argon2-calibrate.mjs",
|
|
56
|
-
"dev:whatsapp-echo": "bun run scripts/whatsapp-echo.ts",
|
|
57
|
-
"dev:cli": "bun run src/cli.ts",
|
|
58
|
-
"dev:mcp": "bun run src/mcp-server.ts",
|
|
59
|
-
"dev:gateway": "bun run src/gateway/index.ts",
|
|
60
|
-
"dev:lang": "bun run src/mcp-server-lang.ts",
|
|
61
|
-
"dev:docker": "docker compose -f docker/docker-compose.yml up --build",
|
|
62
|
-
"prepublishOnly": "npm run build"
|
|
63
|
-
},
|
|
64
|
-
"dependencies": {
|
|
65
|
-
"@clack/prompts": "^1.7.0",
|
|
66
|
-
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
67
|
-
"@node-rs/argon2": "^2.2.0",
|
|
68
|
-
"@opencode-ai/sdk": "1.18.25",
|
|
69
|
-
"adm-zip": "^0.6.0",
|
|
70
|
-
"boxen": "^7.1.1",
|
|
71
|
-
"chalk": "^5.6.2",
|
|
72
|
-
"commander": "^12.1.0",
|
|
73
|
-
"ink": "^5.2.1",
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
"
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
"@types/
|
|
91
|
-
"@types/
|
|
92
|
-
"@types/
|
|
93
|
-
"@types/
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
|
|
97
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@nio-cli/cli",
|
|
3
|
+
"version": "0.11.2",
|
|
4
|
+
"description": "Orquestrador de ambientes de desenvolvimento: escolhe um perfil, responde um wizard e a CLI (com auxílio de IA via MCP) materializa toolchains, linguagens, frameworks, dotfiles e IDE.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "UNLICENSED",
|
|
7
|
+
"bin": {
|
|
8
|
+
"nio": "dist/cli.js",
|
|
9
|
+
"nio-cli": "dist/mcp-server.js",
|
|
10
|
+
"nio-gateway": "dist/gateway/index.js",
|
|
11
|
+
"nio-lang": "dist/mcp-server-lang.js"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist",
|
|
15
|
+
"docker/docker-compose.yml",
|
|
16
|
+
"docker/kong.yml",
|
|
17
|
+
"Dockerfile.gateway",
|
|
18
|
+
".env.example",
|
|
19
|
+
"README.md"
|
|
20
|
+
],
|
|
21
|
+
"engines": {
|
|
22
|
+
"node": ">=20"
|
|
23
|
+
},
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public"
|
|
26
|
+
},
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "git+https://github.com/hugoreiis12-png/NIO-CLI-.git"
|
|
30
|
+
},
|
|
31
|
+
"homepage": "https://github.com/hugoreiis12-png/NIO-CLI-#readme",
|
|
32
|
+
"bugs": {
|
|
33
|
+
"url": "https://github.com/hugoreiis12-png/NIO-CLI-/issues"
|
|
34
|
+
},
|
|
35
|
+
"keywords": [
|
|
36
|
+
"mcp",
|
|
37
|
+
"model-context-protocol",
|
|
38
|
+
"cli",
|
|
39
|
+
"developer-environment",
|
|
40
|
+
"dev-environment",
|
|
41
|
+
"environment-orchestration",
|
|
42
|
+
"opencode",
|
|
43
|
+
"ai-agent",
|
|
44
|
+
"tui",
|
|
45
|
+
"ink",
|
|
46
|
+
"postgres",
|
|
47
|
+
"nio"
|
|
48
|
+
],
|
|
49
|
+
"scripts": {
|
|
50
|
+
"build": "node --input-type=commonjs -e \"fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\" && tsc && node --input-type=commonjs -e \"const fs=require('fs');fs.cpSync('src/cli/copy','dist/cli/copy',{recursive:true});for(const f of ['cli.js','mcp-server.js','gateway/index.js','mcp-server-lang.js'])fs.chmodSync('dist/'+f,0o755)\"",
|
|
51
|
+
"gen:docs": "bun run scripts/gen-reference.ts",
|
|
52
|
+
"db:ping": "bun run scripts/db-ping.ts",
|
|
53
|
+
"db:tls": "bash scripts/db-tls-setup.sh",
|
|
54
|
+
"db:migrate": "bun run scripts/migrate.ts",
|
|
55
|
+
"argon2:calibrate": "node scripts/argon2-calibrate.mjs",
|
|
56
|
+
"dev:whatsapp-echo": "bun run scripts/whatsapp-echo.ts",
|
|
57
|
+
"dev:cli": "bun run src/cli.ts",
|
|
58
|
+
"dev:mcp": "bun run src/mcp-server.ts",
|
|
59
|
+
"dev:gateway": "bun run src/gateway/index.ts",
|
|
60
|
+
"dev:lang": "bun run src/mcp-server-lang.ts",
|
|
61
|
+
"dev:docker": "docker compose -f docker/docker-compose.yml up --build",
|
|
62
|
+
"prepublishOnly": "npm run build"
|
|
63
|
+
},
|
|
64
|
+
"dependencies": {
|
|
65
|
+
"@clack/prompts": "^1.7.0",
|
|
66
|
+
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
67
|
+
"@node-rs/argon2": "^2.2.0",
|
|
68
|
+
"@opencode-ai/sdk": "1.18.25",
|
|
69
|
+
"adm-zip": "^0.6.0",
|
|
70
|
+
"boxen": "^7.1.1",
|
|
71
|
+
"chalk": "^5.6.2",
|
|
72
|
+
"commander": "^12.1.0",
|
|
73
|
+
"ink": "^5.2.1",
|
|
74
|
+
"jimp": "^1.6.1",
|
|
75
|
+
"jsonwebtoken": "^9.0.3",
|
|
76
|
+
"pg": "^8.23.0",
|
|
77
|
+
"react": "^18.3.1",
|
|
78
|
+
"smol-toml": "^1.8.0",
|
|
79
|
+
"update-notifier": "^7.3.1",
|
|
80
|
+
"xlsx": "^0.18.5",
|
|
81
|
+
"zod": "^4.5.4"
|
|
82
|
+
},
|
|
83
|
+
"//overrides": "transitivas de @modelcontextprotocol/sdk (transporte HTTP — NIO usa só stdio). Força as versões corrigidas p/ deixar o `bun audit` limpo; ranges compatíveis com os pais.",
|
|
84
|
+
"overrides": {
|
|
85
|
+
"fast-uri": "^3.1.7",
|
|
86
|
+
"hono": "^4.13.7",
|
|
87
|
+
"qs": "^6.16.0"
|
|
88
|
+
},
|
|
89
|
+
"devDependencies": {
|
|
90
|
+
"@types/adm-zip": "^0.5.8",
|
|
91
|
+
"@types/jsonwebtoken": "^9.0.10",
|
|
92
|
+
"@types/node": "^22.20.1",
|
|
93
|
+
"@types/pg": "^8.23.1",
|
|
94
|
+
"@types/react": "^18.3.31",
|
|
95
|
+
"@types/update-notifier": "^6.0.8",
|
|
96
|
+
"ink-testing-library": "^4.0.0",
|
|
97
|
+
"typescript": "^5.9.3"
|
|
98
|
+
}
|
|
99
|
+
}
|