@neetru/cli 2.11.3 → 2.12.1
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/CHANGELOG.md +561 -547
- package/README.md +33 -5
- package/dist/commands/ai.js +40 -15
- package/dist/commands/ai.js.map +1 -1
- package/dist/commands/auth.js +8 -0
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/autocomplete.js +34 -34
- package/dist/commands/config.js +13 -3
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/db.d.ts +6 -0
- package/dist/commands/db.js +58 -0
- package/dist/commands/db.js.map +1 -1
- package/dist/commands/deploy.js +64 -7
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev-up.d.ts +70 -0
- package/dist/commands/dev-up.js +224 -0
- package/dist/commands/dev-up.js.map +1 -0
- package/dist/commands/doctor.js +14 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/dr.js +8 -0
- package/dist/commands/dr.js.map +1 -1
- package/dist/commands/fn.d.ts +6 -0
- package/dist/commands/fn.js +88 -0
- package/dist/commands/fn.js.map +1 -0
- package/dist/commands/init.js +164 -121
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/marketplace.d.ts +36 -0
- package/dist/commands/marketplace.js +585 -0
- package/dist/commands/marketplace.js.map +1 -0
- package/dist/commands/ops.d.ts +41 -9
- package/dist/commands/ops.js +371 -21
- package/dist/commands/ops.js.map +1 -1
- package/dist/index.js +38 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/ai/auth-discovery.d.ts +7 -1
- package/dist/lib/ai/auth-discovery.js +23 -1
- package/dist/lib/ai/auth-discovery.js.map +1 -1
- package/dist/lib/ai/context.d.ts +0 -3
- package/dist/lib/ai/context.js +109 -90
- package/dist/lib/ai/context.js.map +1 -1
- package/dist/lib/ai/orchestrator.d.ts +43 -8
- package/dist/lib/ai/orchestrator.js +452 -150
- package/dist/lib/ai/orchestrator.js.map +1 -1
- package/dist/lib/api-client.js +9 -2
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/config.d.ts +5 -1
- package/dist/lib/config.js +5 -1
- package/dist/lib/config.js.map +1 -1
- package/package.json +1 -1
- package/templates/auth/callback.ts +22 -22
- package/templates/auth/sign-in.tsx +41 -41
- package/templates/billing/checkout.ts +22 -22
- package/templates/billing/page.tsx +43 -43
- package/templates/support/ticket-form.tsx +68 -68
- package/templates/usage/track.ts +30 -30
- package/templates/users/profile.tsx +43 -43
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<p>
|
|
6
6
|
<img alt="npm" src="https://img.shields.io/npm/v/@neetru/cli?logo=npm">
|
|
7
7
|
<img alt="downloads" src="https://img.shields.io/npm/dm/@neetru/cli?logo=npm">
|
|
8
|
-
<img alt="Node" src="https://img.shields.io/badge/node-%3E%
|
|
8
|
+
<img alt="Node" src="https://img.shields.io/badge/node-%3E%3D20-339933?logo=node.js&logoColor=white">
|
|
9
9
|
<img alt="license" src="https://img.shields.io/badge/license-MIT-22c55e">
|
|
10
10
|
</p>
|
|
11
11
|
|
|
@@ -58,8 +58,12 @@ Cria produto + workspace + scaffold local Next.js 15 + instala deps + abre cockp
|
|
|
58
58
|
| `neetru env set --service=X --set KEY=VAL` | Setar env vars de serviço Cloud Run |
|
|
59
59
|
| `neetru ar create <name>` | Criar repositório Artifact Registry |
|
|
60
60
|
| `neetru hosting create-mapping --service=X --domain=Y` | Domain mapping |
|
|
61
|
-
| `neetru
|
|
62
|
-
| `neetru
|
|
61
|
+
| `neetru admin database create --product-id=X --engine=cloud-sql-postgres` | Registrar banco isolado por produto (staff control plane) |
|
|
62
|
+
| `neetru admin database engines` | Listar engines suportados (`firestore-instance`, `cloud-sql-postgres`, `cloud-sql-mysql`, `vm-postgres-single`, `vm-mysql-single`, `nosql-vm`, …) |
|
|
63
|
+
| `neetru db init / apply / migrations` | Banco por produto no fluxo dev (registra + schema + migrations) |
|
|
64
|
+
| `neetru dev` | Banco Docker local + watch de schema (`salvar = aplicado`) |
|
|
65
|
+
| `neetru dev up` | **Emulador local completo** — Firebase Emulators + Core, 100% offline |
|
|
66
|
+
| `neetru dev exec <script>` | Roda `<script>` com emuladores ativos (CI sem credencial cloud) |
|
|
63
67
|
| `neetru cloud-run pause/resume/delete <service>` | Controle Cloud Run |
|
|
64
68
|
| `neetru products list/create/update` | Registry de produtos |
|
|
65
69
|
| `neetru workspaces create/list/get/advance` | Instâncias por cliente |
|
|
@@ -86,6 +90,30 @@ Cria produto + workspace + scaffold local Next.js 15 + instala deps + abre cockp
|
|
|
86
90
|
|
|
87
91
|
40+ subcomandos. Quase todos suportam `--json` pra automação.
|
|
88
92
|
|
|
93
|
+
## Dev local — emulador (`neetru dev up`)
|
|
94
|
+
|
|
95
|
+
Ambiente de desenvolvimento **100% offline**, estilo Firebase Emulator Suite — sem tocar GCP/staging:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# Na raiz do Core (onde tem firebase.json):
|
|
99
|
+
neetru dev up
|
|
100
|
+
# → sobe Firebase Emulators (Firestore :8080, Auth :9099, Functions :5001)
|
|
101
|
+
# → sobe o Core Next.js (:9003) apontando pros emuladores
|
|
102
|
+
# → Ctrl-C encerra os dois em cascata
|
|
103
|
+
|
|
104
|
+
# Seed portátil (compartilhe o estado entre devs via git):
|
|
105
|
+
neetru dev up --import .neetru-dev/seed --export-on-exit .neetru-dev/seed
|
|
106
|
+
|
|
107
|
+
# Só os emuladores (sem o Core):
|
|
108
|
+
neetru dev up --skip-core
|
|
109
|
+
|
|
110
|
+
# CI / teste de integração sem credencial cloud (propaga o exit code do script):
|
|
111
|
+
neetru dev exec "npm run test:integration"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
> `neetru dev` (sem subcomando) mantém o modo legado: banco Docker local + watch de schema.
|
|
115
|
+
> Flags: `--only firestore,auth,functions`, `--core-port 9003`, `--core-path <dir>`.
|
|
116
|
+
|
|
89
117
|
## Configuração
|
|
90
118
|
|
|
91
119
|
Token Bearer fica em `~/.config/neetru-cli/auth.json` (chmod 0600 em Unix, NTFS ACL em Windows) — gerado por `neetru login` via OAuth Device Code Flow. Configs gerais ficam em `~/.config/neetru-cli/config.json` (Linux/macOS) ou `%APPDATA%\neetru-cli\config.json` (Windows):
|
|
@@ -125,9 +153,9 @@ neetru audit tail --json | jq 'select(.action | startswith("billing"))'
|
|
|
125
153
|
## Stack
|
|
126
154
|
|
|
127
155
|
- TypeScript 5 ESM-first
|
|
128
|
-
- Node
|
|
156
|
+
- Node 20+ (`engines.node: >=20`; Node 22 LTS recomendado)
|
|
129
157
|
- Sem `node-fetch`/`axios`: fetch global nativo
|
|
130
|
-
- Commander
|
|
158
|
+
- Commander 12 (CLI framework) + Inquirer 10 (prompts) + Chalk 5 + Ora (spinners)
|
|
131
159
|
|
|
132
160
|
## Mais info
|
|
133
161
|
|
package/dist/commands/ai.js
CHANGED
|
@@ -10,15 +10,16 @@ const PROMPT_PREFIX = chalk.hex('#1E90FF').bold(' › ');
|
|
|
10
10
|
const ASSISTANT_PREFIX = chalk.dim(' ◆ ');
|
|
11
11
|
// Help público — sem /modelo (orchestrator escolhe). /debug:model é o
|
|
12
12
|
// override avançado pra quem quer forçar.
|
|
13
|
-
const HELP_TEXT = `
|
|
14
|
-
Comandos:
|
|
15
|
-
/sair /exit encerrar sessão
|
|
16
|
-
/limpar /clear limpar histórico de contexto
|
|
17
|
-
/agentes <pergunta> consultar 2+ modelos em paralelo e comparar
|
|
18
|
-
/auth rodar wizard de configuração (claude/codex/gemini)
|
|
19
|
-
/help mostrar este texto
|
|
20
|
-
/debug:model <nome> forçar modelo (claude|openai|gemini|auto)
|
|
13
|
+
const HELP_TEXT = `
|
|
14
|
+
Comandos:
|
|
15
|
+
/sair /exit encerrar sessão
|
|
16
|
+
/limpar /clear limpar histórico de contexto
|
|
17
|
+
/agentes <pergunta> consultar 2+ modelos em paralelo e comparar
|
|
18
|
+
/auth rodar wizard de configuração (claude/codex/gemini)
|
|
19
|
+
/help mostrar este texto
|
|
20
|
+
/debug:model <nome> forçar modelo (claude|openai|gemini|groq|nvidia|auto)
|
|
21
21
|
`.trim();
|
|
22
|
+
const DEBUG_MODELS = ['claude', 'openai', 'gemini', 'groq', 'nvidia', 'auto'];
|
|
22
23
|
/**
|
|
23
24
|
* Checa se o usuário tem pelo menos uma cred (local OU descoberta). Se zero,
|
|
24
25
|
* roda o setup wizard inline antes de abrir o REPL.
|
|
@@ -28,23 +29,35 @@ async function ensureAtLeastOneProvider() {
|
|
|
28
29
|
anthropic: !!config.get('anthropicApiKey'),
|
|
29
30
|
openai: !!config.get('openaiApiKey'),
|
|
30
31
|
gemini: !!config.get('geminiApiKey'),
|
|
32
|
+
groq: !!config.get('groqApiKey'),
|
|
33
|
+
nvidia: !!config.get('nvidiaApiKey'),
|
|
31
34
|
};
|
|
32
|
-
if (local.anthropic || local.openai || local.gemini)
|
|
35
|
+
if (local.anthropic || local.openai || local.gemini || local.groq || local.nvidia)
|
|
33
36
|
return true;
|
|
34
37
|
const discovered = discoveredKeys();
|
|
35
|
-
if (discovered.anthropic ||
|
|
38
|
+
if (discovered.anthropic ||
|
|
39
|
+
discovered.openai ||
|
|
40
|
+
discovered.gemini ||
|
|
41
|
+
discovered.groq ||
|
|
42
|
+
discovered.nvidia) {
|
|
36
43
|
return true;
|
|
44
|
+
}
|
|
37
45
|
// Zero — força setup interativo.
|
|
38
46
|
log.warn('Nenhum provedor de IA configurado.');
|
|
39
47
|
log.info('Abrindo wizard de configuração...');
|
|
40
48
|
await runAuthSetup();
|
|
41
49
|
// Re-checa.
|
|
50
|
+
const disc = discoveredKeys();
|
|
42
51
|
const after = !!config.get('anthropicApiKey') ||
|
|
43
52
|
!!config.get('openaiApiKey') ||
|
|
44
53
|
!!config.get('geminiApiKey') ||
|
|
45
|
-
!!
|
|
46
|
-
!!
|
|
47
|
-
!!
|
|
54
|
+
!!config.get('groqApiKey') ||
|
|
55
|
+
!!config.get('nvidiaApiKey') ||
|
|
56
|
+
!!disc.anthropic ||
|
|
57
|
+
!!disc.openai ||
|
|
58
|
+
!!disc.gemini ||
|
|
59
|
+
!!disc.groq ||
|
|
60
|
+
!!disc.nvidia;
|
|
48
61
|
return after;
|
|
49
62
|
}
|
|
50
63
|
export async function runAiRepl(opts = {}) {
|
|
@@ -65,6 +78,9 @@ export async function runAiRepl(opts = {}) {
|
|
|
65
78
|
terminal: true,
|
|
66
79
|
});
|
|
67
80
|
const history = [];
|
|
81
|
+
// bug: histórico crescia ilimitado → context_window_exceeded em sessões longas.
|
|
82
|
+
// Janela deslizante: mantém as últimas HISTORY_WINDOW mensagens (par user+assistant).
|
|
83
|
+
const HISTORY_WINDOW = 40;
|
|
68
84
|
let currentModel = opts.model ?? 'auto';
|
|
69
85
|
let running = true;
|
|
70
86
|
rl.on('close', () => {
|
|
@@ -100,12 +116,12 @@ export async function runAiRepl(opts = {}) {
|
|
|
100
116
|
}
|
|
101
117
|
if (input.startsWith('/debug:model ')) {
|
|
102
118
|
const m = input.split(' ')[1];
|
|
103
|
-
if (
|
|
119
|
+
if (DEBUG_MODELS.includes(m)) {
|
|
104
120
|
currentModel = m;
|
|
105
121
|
log.success(`Modelo forçado: ${m}`);
|
|
106
122
|
}
|
|
107
123
|
else {
|
|
108
|
-
log.warn('Use: claude | openai | gemini | auto');
|
|
124
|
+
log.warn('Use: claude | openai | gemini | groq | nvidia | auto');
|
|
109
125
|
}
|
|
110
126
|
continue;
|
|
111
127
|
}
|
|
@@ -136,6 +152,10 @@ export async function runAiRepl(opts = {}) {
|
|
|
136
152
|
continue;
|
|
137
153
|
}
|
|
138
154
|
// ── Chat normal ────────────────────────────────────────────────
|
|
155
|
+
// Aviso proativo antes de chegar no limite (quando sobrar só 4 turnos).
|
|
156
|
+
if (history.length >= HISTORY_WINDOW - 4 && history.length % 2 === 0) {
|
|
157
|
+
log.warn(`Histórico longo (${history.length} msgs). Use /limpar pra reiniciar o contexto.`);
|
|
158
|
+
}
|
|
139
159
|
history.push({ role: 'user', content: input });
|
|
140
160
|
console.log();
|
|
141
161
|
process.stdout.write(ASSISTANT_PREFIX);
|
|
@@ -154,6 +174,11 @@ export async function runAiRepl(opts = {}) {
|
|
|
154
174
|
console.log();
|
|
155
175
|
if (fullResponse) {
|
|
156
176
|
history.push({ role: 'assistant', content: fullResponse });
|
|
177
|
+
// Janela deslizante: descarta turnos mais antigos quando excede o limite.
|
|
178
|
+
// Sempre remove em pares (user+assistant) pra manter histórico consistente.
|
|
179
|
+
while (history.length > HISTORY_WINDOW) {
|
|
180
|
+
history.splice(0, 2);
|
|
181
|
+
}
|
|
157
182
|
}
|
|
158
183
|
}
|
|
159
184
|
rl.close();
|
package/dist/commands/ai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/commands/ai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,YAAY,EAA8B,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxD,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAE3C,sEAAsE;AACtE,0CAA0C;AAC1C,MAAM,SAAS,GAAG;;;;;;;;CAQjB,CAAC,IAAI,EAAE,CAAC;AAET;;;GAGG;AACH,KAAK,UAAU,wBAAwB;IACrC,MAAM,KAAK,GAAG;QACZ,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;QACpC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;KACrC,CAAC;IACF,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/commands/ai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,YAAY,EAA8B,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxD,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAE3C,sEAAsE;AACtE,0CAA0C;AAC1C,MAAM,SAAS,GAAG;;;;;;;;CAQjB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAEvF;;;GAGG;AACH,KAAK,UAAU,wBAAwB;IACrC,MAAM,KAAK,GAAG;QACZ,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;QACpC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;QACpC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;KACrC,CAAC;IACF,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE/F,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,IACE,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,MAAM;QACjB,UAAU,CAAC,MAAM;QACjB,UAAU,CAAC,IAAI;QACf,UAAU,CAAC,MAAM,EACjB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iCAAiC;IACjC,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAC/C,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAC9C,MAAM,YAAY,EAAE,CAAC;IAErB,YAAY;IACZ,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,MAAM,KAAK,GACT,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;QAC1B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;QAC5B,CAAC,CAAC,IAAI,CAAC,SAAS;QAChB,CAAC,CAAC,IAAI,CAAC,MAAM;QACb,CAAC,CAAC,IAAI,CAAC,MAAM;QACb,CAAC,CAAC,IAAI,CAAC,IAAI;QACX,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAChB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA4B,EAAE;IAC5D,GAAG,CAAC,MAAM,EAAE,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IAElE,kDAAkD;IAClD,MAAM,KAAK,GAAG,MAAM,wBAAwB,EAAE,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACnD,QAAQ,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACjE,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,gFAAgF;IAChF,sFAAsF;IACtF,MAAM,cAAc,GAAG,EAAE,CAAC;IAC1B,IAAI,YAAY,GAAY,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;IACjD,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAClB,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,EAAE,CAAC;QACf,IAAI,KAAa,CAAC;QAClB,IAAI,CAAC;YACH,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,eAAe;QACxB,CAAC;QAED,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,kEAAkE;QAClE,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAC3C,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC9B,MAAM;QACR,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9C,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,MAAM,YAAY,EAAE,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAY,CAAC;YACzC,IAAK,YAAkC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,YAAY,GAAG,CAAC,CAAC;gBACjB,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;YACnE,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YACxE,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACjD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC5D,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;wBACT,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAC1B,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,IAAI,gCAAgC,CAAC,CAAC;YAC9D,CAAC;YACD,SAAS;QACX,CAAC;QAED,kEAAkE;QAClE,wEAAwE;QACxE,IAAI,OAAO,CAAC,MAAM,IAAI,cAAc,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,MAAM,+CAA+C,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAE/C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAEvC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,IAAI,4BAA4B,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,wCAAwC;YACvD,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QAED,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;YAC3D,0EAA0E;YAC1E,4EAA4E;YAC5E,OAAO,OAAO,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;gBACvC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,EAAE,CAAC,KAAK,EAAE,CAAC;AACb,CAAC"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -20,6 +20,8 @@ const PROVIDER_TO_CONFIG = {
|
|
|
20
20
|
anthropic: 'anthropicApiKey',
|
|
21
21
|
openai: 'openaiApiKey',
|
|
22
22
|
gemini: 'geminiApiKey',
|
|
23
|
+
groq: 'groqApiKey',
|
|
24
|
+
nvidia: 'nvidiaApiKey',
|
|
23
25
|
};
|
|
24
26
|
function badge(s) {
|
|
25
27
|
if (s.apiKey)
|
|
@@ -38,6 +40,10 @@ function rowName(p) {
|
|
|
38
40
|
return 'Codex (OpenAI)';
|
|
39
41
|
case 'gemini':
|
|
40
42
|
return 'Gemini (Google)';
|
|
43
|
+
case 'groq':
|
|
44
|
+
return 'Groq';
|
|
45
|
+
case 'nvidia':
|
|
46
|
+
return 'NVIDIA NIM';
|
|
41
47
|
}
|
|
42
48
|
}
|
|
43
49
|
/**
|
|
@@ -49,6 +55,8 @@ export async function runAuthStatus(opts = {}) {
|
|
|
49
55
|
anthropic: !!config.get('anthropicApiKey'),
|
|
50
56
|
openai: !!config.get('openaiApiKey'),
|
|
51
57
|
gemini: !!config.get('geminiApiKey'),
|
|
58
|
+
groq: !!config.get('groqApiKey'),
|
|
59
|
+
nvidia: !!config.get('nvidiaApiKey'),
|
|
52
60
|
};
|
|
53
61
|
if (opts.json) {
|
|
54
62
|
console.log(JSON.stringify({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,aAAa,GAGd,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAMzC,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -84,49 +84,49 @@ export const TOP_LEVEL_COMMANDS = [
|
|
|
84
84
|
];
|
|
85
85
|
function bashScript() {
|
|
86
86
|
const cmds = TOP_LEVEL_COMMANDS.join(' ');
|
|
87
|
-
return `# neetru CLI bash completion (v2.10.2)
|
|
88
|
-
_neetru_complete() {
|
|
89
|
-
local cur prev
|
|
90
|
-
COMPREPLY=()
|
|
91
|
-
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
92
|
-
prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
93
|
-
if [ \${COMP_CWORD} -eq 1 ]; then
|
|
94
|
-
COMPREPLY=( $(compgen -W "${cmds}" -- "\${cur}") )
|
|
95
|
-
return 0
|
|
96
|
-
fi
|
|
97
|
-
}
|
|
98
|
-
complete -F _neetru_complete neetru
|
|
87
|
+
return `# neetru CLI bash completion (v2.10.2)
|
|
88
|
+
_neetru_complete() {
|
|
89
|
+
local cur prev
|
|
90
|
+
COMPREPLY=()
|
|
91
|
+
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
92
|
+
prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
93
|
+
if [ \${COMP_CWORD} -eq 1 ]; then
|
|
94
|
+
COMPREPLY=( $(compgen -W "${cmds}" -- "\${cur}") )
|
|
95
|
+
return 0
|
|
96
|
+
fi
|
|
97
|
+
}
|
|
98
|
+
complete -F _neetru_complete neetru
|
|
99
99
|
`;
|
|
100
100
|
}
|
|
101
101
|
function zshScript() {
|
|
102
102
|
// Formato compsys do zsh.
|
|
103
103
|
const cmds = TOP_LEVEL_COMMANDS.map((c) => ` '${c}'`).join('\n');
|
|
104
|
-
return `#compdef neetru
|
|
105
|
-
# neetru CLI zsh completion (v2.10.2)
|
|
106
|
-
_neetru() {
|
|
107
|
-
local -a commands
|
|
108
|
-
commands=(
|
|
109
|
-
${cmds}
|
|
110
|
-
)
|
|
111
|
-
if (( CURRENT == 2 )); then
|
|
112
|
-
_describe 'command' commands
|
|
113
|
-
fi
|
|
114
|
-
}
|
|
115
|
-
_neetru "$@"
|
|
104
|
+
return `#compdef neetru
|
|
105
|
+
# neetru CLI zsh completion (v2.10.2)
|
|
106
|
+
_neetru() {
|
|
107
|
+
local -a commands
|
|
108
|
+
commands=(
|
|
109
|
+
${cmds}
|
|
110
|
+
)
|
|
111
|
+
if (( CURRENT == 2 )); then
|
|
112
|
+
_describe 'command' commands
|
|
113
|
+
fi
|
|
114
|
+
}
|
|
115
|
+
_neetru "$@"
|
|
116
116
|
`;
|
|
117
117
|
}
|
|
118
118
|
function pwshScript() {
|
|
119
119
|
const cmds = TOP_LEVEL_COMMANDS.map((c) => ` '${c}'`).join(',\n');
|
|
120
|
-
return `# neetru CLI PowerShell completion (v2.10.2)
|
|
121
|
-
Register-ArgumentCompleter -Native -CommandName neetru -ScriptBlock {
|
|
122
|
-
param($wordToComplete, $commandAst, $cursorPosition)
|
|
123
|
-
$commands = @(
|
|
124
|
-
${cmds}
|
|
125
|
-
)
|
|
126
|
-
$commands | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
|
|
127
|
-
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
|
|
128
|
-
}
|
|
129
|
-
}
|
|
120
|
+
return `# neetru CLI PowerShell completion (v2.10.2)
|
|
121
|
+
Register-ArgumentCompleter -Native -CommandName neetru -ScriptBlock {
|
|
122
|
+
param($wordToComplete, $commandAst, $cursorPosition)
|
|
123
|
+
$commands = @(
|
|
124
|
+
${cmds}
|
|
125
|
+
)
|
|
126
|
+
$commands | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
|
|
127
|
+
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
130
|
`;
|
|
131
131
|
}
|
|
132
132
|
export function generateAutocompleteScript(shell) {
|
package/dist/commands/config.js
CHANGED
|
@@ -7,6 +7,11 @@ const SETTABLE_KEYS = [
|
|
|
7
7
|
'anthropicApiKey',
|
|
8
8
|
'openaiApiKey',
|
|
9
9
|
'geminiApiKey',
|
|
10
|
+
// Groq + NVIDIA NIM (OpenAI-compatible). Valor pode ser pool comma-separated.
|
|
11
|
+
'groqApiKey',
|
|
12
|
+
'nvidiaApiKey',
|
|
13
|
+
'groqModel',
|
|
14
|
+
'nvidiaModel',
|
|
10
15
|
'neetruApiKey',
|
|
11
16
|
'neetruApiUrl',
|
|
12
17
|
'defaultModel',
|
|
@@ -64,10 +69,15 @@ export function configSet(key, value, opts = {}) {
|
|
|
64
69
|
config.set(key, coerced);
|
|
65
70
|
// Ofusca chaves de API no log
|
|
66
71
|
const display = key.toLowerCase().includes('key') && typeof coerced === 'string'
|
|
67
|
-
?
|
|
72
|
+
? maskSecret(coerced)
|
|
68
73
|
: String(coerced);
|
|
69
74
|
log.success(`${key} = ${display}`);
|
|
70
75
|
}
|
|
76
|
+
// Ofusca segredo preservando só prefixo+sufixo. Chave curta (<=12) seria
|
|
77
|
+
// EXPOSTA por slice(0,8)+slice(-4) sobrepostos -> redação total nesse caso.
|
|
78
|
+
function maskSecret(s) {
|
|
79
|
+
return s.length > 12 ? `${s.slice(0, 8)}...${s.slice(-4)}` : '***';
|
|
80
|
+
}
|
|
71
81
|
export function configGet(key) {
|
|
72
82
|
if (key) {
|
|
73
83
|
const val = config.get(key);
|
|
@@ -76,7 +86,7 @@ export function configGet(key) {
|
|
|
76
86
|
}
|
|
77
87
|
else {
|
|
78
88
|
const display = key.toLowerCase().includes('key') && typeof val === 'string'
|
|
79
|
-
?
|
|
89
|
+
? maskSecret(val)
|
|
80
90
|
: val;
|
|
81
91
|
console.log(` ${key}: ${display}`);
|
|
82
92
|
}
|
|
@@ -90,7 +100,7 @@ export function configGet(key) {
|
|
|
90
100
|
}
|
|
91
101
|
else {
|
|
92
102
|
const display = k.toLowerCase().includes('key') && typeof val === 'string'
|
|
93
|
-
?
|
|
103
|
+
? maskSecret(val)
|
|
94
104
|
: val;
|
|
95
105
|
log.info(`${k}: ${display}`);
|
|
96
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/db.d.ts
CHANGED
|
@@ -14,6 +14,12 @@ export interface DbInitOptions {
|
|
|
14
14
|
engine?: string;
|
|
15
15
|
env?: string;
|
|
16
16
|
productId?: string;
|
|
17
|
+
/**
|
|
18
|
+
* bug_062f7fea (pdv-agiliza): engines vm-* (e nosql-vm) exigem o serverId da
|
|
19
|
+
* VM host — o Core rejeita register sem ele. Coletado via --server-id, prompt
|
|
20
|
+
* interativo (lista de VM hosts) ou erro em modo não-interativo.
|
|
21
|
+
*/
|
|
22
|
+
serverId?: string;
|
|
17
23
|
yes?: boolean;
|
|
18
24
|
/** gestovendas #9: saída em JSON para integração CI/automação. */
|
|
19
25
|
json?: boolean;
|
package/dist/commands/db.js
CHANGED
|
@@ -403,6 +403,61 @@ export async function runDbInit(opts = {}) {
|
|
|
403
403
|
safeExit(1);
|
|
404
404
|
return;
|
|
405
405
|
}
|
|
406
|
+
// ── bug_062f7fea (pdv-agiliza): engines vm-* (+ nosql-vm) exigem serverId ──
|
|
407
|
+
// O Core rejeita register sem serverId pra essas famílias (a VM host onde o
|
|
408
|
+
// banco roda). Coletamos via --server-id, prompt interativo (lista de VM
|
|
409
|
+
// hosts), ou erro claro em modo não-interativo (--yes/--json).
|
|
410
|
+
const isVmEngine = engine.startsWith('vm-') || engine === 'nosql-vm';
|
|
411
|
+
let serverId = opts.serverId?.trim() || undefined;
|
|
412
|
+
if (isVmEngine && !serverId) {
|
|
413
|
+
if (opts.yes || opts.json) {
|
|
414
|
+
const msg = `Engine "${engine}" roda em VM e exige --server-id (a VM host onde o banco ` +
|
|
415
|
+
`será instalado). Liste as VMs com: neetru db hosts`;
|
|
416
|
+
if (opts.json) {
|
|
417
|
+
jsonError(msg, 'server_id_required');
|
|
418
|
+
}
|
|
419
|
+
else {
|
|
420
|
+
log.error(msg);
|
|
421
|
+
}
|
|
422
|
+
safeExit(1);
|
|
423
|
+
return;
|
|
424
|
+
}
|
|
425
|
+
// Interativo: busca VM hosts e deixa escolher; fallback p/ input livre.
|
|
426
|
+
let hosts = [];
|
|
427
|
+
try {
|
|
428
|
+
const resp = await apiRequest('/api/cli/v1/servers?capacity=true&db=true');
|
|
429
|
+
const DEAD = /delet|archiv|fail|timeout|provision_failed|desconhec/i;
|
|
430
|
+
hosts = (resp.servers ?? []).filter((h) => !h.status || !DEAD.test(h.status));
|
|
431
|
+
}
|
|
432
|
+
catch {
|
|
433
|
+
// segue pro fallback de input livre
|
|
434
|
+
}
|
|
435
|
+
if (hosts.length > 0) {
|
|
436
|
+
const { sid } = await inquirer.prompt([
|
|
437
|
+
{
|
|
438
|
+
type: 'list',
|
|
439
|
+
name: 'sid',
|
|
440
|
+
message: `Servidor (VM) host pra "${engine}":`,
|
|
441
|
+
choices: hosts.map((h) => ({
|
|
442
|
+
name: `${h.name ?? h.id} ${chalk.dim('(' + h.id + (h.status ? ', ' + h.status : '') + ')')}`,
|
|
443
|
+
value: h.id,
|
|
444
|
+
})),
|
|
445
|
+
},
|
|
446
|
+
]);
|
|
447
|
+
serverId = sid;
|
|
448
|
+
}
|
|
449
|
+
else {
|
|
450
|
+
const { sid } = await inquirer.prompt([
|
|
451
|
+
{
|
|
452
|
+
type: 'input',
|
|
453
|
+
name: 'sid',
|
|
454
|
+
message: `serverId da VM host pra "${engine}" (nenhuma VM listada — informe o id):`,
|
|
455
|
+
validate: (v) => v.trim().length > 0 || 'serverId é obrigatório pra engines vm-*',
|
|
456
|
+
},
|
|
457
|
+
]);
|
|
458
|
+
serverId = sid.trim();
|
|
459
|
+
}
|
|
460
|
+
}
|
|
406
461
|
// ── HIGH-3: registra o banco no Core ANTES de gravar o stub local.
|
|
407
462
|
// Gravar localmente antes e deixar o registro falhar resultava em entrada
|
|
408
463
|
// órfã em .neetru/db.json — re-rodar db init adicionava banco duplicado.
|
|
@@ -443,6 +498,9 @@ export async function runDbInit(opts = {}) {
|
|
|
443
498
|
label: dbName,
|
|
444
499
|
engine,
|
|
445
500
|
provisioning: buildProvisioningPayload(engine),
|
|
501
|
+
// bug_062f7fea: serverId no top-level do payload p/ engines vm-* (o Core
|
|
502
|
+
// valida isVmEngine(engine) && !serverId → register_failed).
|
|
503
|
+
...(serverId ? { serverId } : {}),
|
|
446
504
|
},
|
|
447
505
|
});
|
|
448
506
|
registerSpinner?.succeed('Banco registrado no Core.');
|