@neetru/cli 2.12.13 → 2.12.16
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 +23 -0
- package/dist/commands/chat.d.ts +23 -0
- package/dist/commands/chat.js +157 -18
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/db.d.ts +31 -0
- package/dist/commands/db.js +148 -0
- package/dist/commands/db.js.map +1 -1
- package/dist/commands/deploy.js +68 -2
- package/dist/commands/deploy.js.map +1 -1
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
Convenção: [Keep a Changelog](https://keepachangelog.com/) + [SemVer](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## [2.12.16] — 2026-06-16 (deploy: para de mandar segredos por env — Core rejeita fail-closed)
|
|
6
|
+
|
|
7
|
+
> Consome o hardening do Core que rejeita segredos em `envVars` (HTTP 400 via `assertNoSecretEnvVars`). Sem breaking change pra config NÃO-secreta.
|
|
8
|
+
|
|
9
|
+
### Corrigido
|
|
10
|
+
|
|
11
|
+
- **`neetru deploy --env-file` para de vazar segredos** (`bug_5b6bb0d7`) — o Core agora REJEITA fail-closed (HTTP 400) qualquer chave de `envVars` com aparência de segredo, porque `deployments/{id}.envVars` é legível por todo o staff no Firestore. O CLI passava esses valores adiante e gerava 400. Agora `loadEnvFile` (cobre `--target vm` E `cloud-run`) DROPA toda chave secreta com aviso educativo, espelhando EXATAMENTE `SECRET_ENVVAR_PATTERNS` do Core (`neetru_core/src/lib/actions/vm-deploy.ts:73-88`, anti-drift): `SECRET`, `KEY`, `_KEY$`, `^KEY_`, `APIKEY`, `API_KEY`, `TOKEN`, `PASSWORD`, `PASSWD`, `CREDENTIAL`, `PRIVATE`, `^DATABASE_URL$`, `_DSN$`, `CONNECTION_STRING`.
|
|
12
|
+
- **Credencial SDK não precisa mais ir no `--env-file`** — `NEETRU_CLIENT_SECRET`/`NEETRU_API_KEY`/`NEETRU_CLIENT_ID` são injetadas server-side pelo Core/agente na VM. Se aparecerem no `--env-file`, são dropadas com aviso específico. Em `--target vm`, um `log.info` único lembra que a cred SDK é injetada automaticamente. Config NÃO-secreta (`PORT`, `NODE_ENV`, feature flags) continua passando normalmente.
|
|
13
|
+
|
|
14
|
+
## [2.12.15] — 2026-06-15 (db migrations show/resolve + chat identity/--as)
|
|
15
|
+
|
|
16
|
+
> Consome features novas do Core (ME1/ME2 migração + CH3 apelido). Sem breaking change.
|
|
17
|
+
|
|
18
|
+
### Adicionado
|
|
19
|
+
|
|
20
|
+
- **`neetru db migrations show <id>`** (ME2) — detalha UMA migração: status, classificação POR-STATEMENT, `error`, `redundantOfMigrationId` e ponteiros do apply via agente. Resolve a cegueira de "onde/por quê parou" (antes só havia `list`). `GET /api/cli/v1/db/migrations/[id]`.
|
|
21
|
+
- **`neetru db migrations resolve <id>`** (ME1) — destrava migração presa em `partially_applied`/`failed` REDUNDANTE. Sem `--force`: prova por hash (admin|operator, sem MFA). Com `--force`: atestação admin (exige step-up MFA). Caso pdv mig #9. `POST /api/cli/v1/db/migrations/[id]/resolve`.
|
|
22
|
+
- **`neetru chat identity [apelido]`** + **`neetru chat send --as <apelido>`** (CH3) — apelido inerente à credencial: a IA se identifica em nome do dev dono do token. Persiste em `cli_api_keys/{keyId}.displayName`. `identity` sem arg mostra; com arg persiste; vazio limpa. `GET/POST /api/cli/v1/chat/identity`.
|
|
23
|
+
|
|
24
|
+
### Segurança / dependências
|
|
25
|
+
|
|
26
|
+
- **3 vulnerabilidades HIGH transitivas corrigidas** (`npm audit fix`, sem breaking): `esbuild` (file-read arbitrário no Windows + RCE via registry), `form-data` (CRLF injection), `vite` (bypass `server.fs.deny`). Bumps patch em `@types/node`, `@types/inquirer`, `tsx`, `vitest`. Majors (`commander`/`inquirer`/`zod`/`ora`/`openai`/`typescript`/`conf`) adiados — breaking. 1 HIGH residual (`tmp` via `inquirer@10`) exige major, mantido.
|
|
27
|
+
|
|
5
28
|
## [2.11.4] — 2026-06-05 (db init serverId p/ engines vm-* · README/help fixes)
|
|
6
29
|
|
|
7
30
|
> Patch consolidando a branch `feat/cli-2.10.2-2.11` com `main` (que já havia avançado pra 2.11.3 com `deployments get|status` + `--stack=nextjs→node`). Sem breaking change.
|
package/dist/commands/chat.d.ts
CHANGED
|
@@ -39,6 +39,23 @@ export interface ChatSendOptions {
|
|
|
39
39
|
json?: boolean;
|
|
40
40
|
}
|
|
41
41
|
export declare function runChatSend(message: string, opts: ChatSendOptions): Promise<void>;
|
|
42
|
+
export interface ChatIdentityOptions {
|
|
43
|
+
json?: boolean;
|
|
44
|
+
/** Suprime o log de sucesso (usado pelo --as do send). */
|
|
45
|
+
quiet?: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* `neetru chat identity [apelido]` — apelido inerente à credencial (CH3).
|
|
49
|
+
*
|
|
50
|
+
* Sem argumento: mostra o apelido atual (GET /api/cli/v1/chat/identity).
|
|
51
|
+
* Com argumento: persiste o apelido na credencial (POST). A partir daí, TODA
|
|
52
|
+
* mensagem postada com este token aparece com este nome — a IA se identifica em
|
|
53
|
+
* nome do dev dono do token. Apelido vazio ("") limpa (volta ao email).
|
|
54
|
+
*
|
|
55
|
+
* O apelido vive em `cli_api_keys/{keyId}.displayName` — é inerente ao token,
|
|
56
|
+
* não por-mensagem.
|
|
57
|
+
*/
|
|
58
|
+
export declare function runChatIdentity(displayName: string | undefined, opts?: ChatIdentityOptions): Promise<void>;
|
|
42
59
|
export interface ChatHistoryOptions {
|
|
43
60
|
/** Canal de destino (novo — tem precedência sobre product). */
|
|
44
61
|
channel?: string;
|
|
@@ -50,6 +67,12 @@ export interface ChatHistoryOptions {
|
|
|
50
67
|
follow?: boolean;
|
|
51
68
|
/** Intervalo de poll do --follow em ms (default 3000, min 1500, max 60000). */
|
|
52
69
|
interval?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Cursor incremental (epoch ms OU ISO). Quando presente, busca SÓ mensagens
|
|
72
|
+
* com createdAt > since (servidor ignora a janela em horas). Base do monitor
|
|
73
|
+
* limpo: combine com --json --follow → NDJSON só das novas, sem replay.
|
|
74
|
+
*/
|
|
75
|
+
since?: string;
|
|
53
76
|
}
|
|
54
77
|
export declare function runChatHistory(opts: ChatHistoryOptions): Promise<void>;
|
|
55
78
|
export interface ChatLoopOptions {
|
package/dist/commands/chat.js
CHANGED
|
@@ -227,6 +227,97 @@ export async function runChatSend(message, opts) {
|
|
|
227
227
|
}
|
|
228
228
|
log.success(`Mensagem enviada (id: ${res.id}).`);
|
|
229
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* `neetru chat identity [apelido]` — apelido inerente à credencial (CH3).
|
|
232
|
+
*
|
|
233
|
+
* Sem argumento: mostra o apelido atual (GET /api/cli/v1/chat/identity).
|
|
234
|
+
* Com argumento: persiste o apelido na credencial (POST). A partir daí, TODA
|
|
235
|
+
* mensagem postada com este token aparece com este nome — a IA se identifica em
|
|
236
|
+
* nome do dev dono do token. Apelido vazio ("") limpa (volta ao email).
|
|
237
|
+
*
|
|
238
|
+
* O apelido vive em `cli_api_keys/{keyId}.displayName` — é inerente ao token,
|
|
239
|
+
* não por-mensagem.
|
|
240
|
+
*/
|
|
241
|
+
export async function runChatIdentity(displayName, opts = {}) {
|
|
242
|
+
const token = await requireToken(opts.json);
|
|
243
|
+
// Sem argumento → mostra o apelido atual.
|
|
244
|
+
if (displayName === undefined) {
|
|
245
|
+
let res;
|
|
246
|
+
try {
|
|
247
|
+
res = await apiRequest('/api/cli/v1/chat/identity', { token });
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
handleApiError(error, opts.json);
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
if (opts.json) {
|
|
254
|
+
console.log(JSON.stringify(res));
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
if (res.displayName) {
|
|
258
|
+
log.info(`Apelido atual: ${chalk.bold(res.displayName)}`);
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
log.info(`Sem apelido — suas mensagens usam o email${res.email ? ` (${res.email})` : ''}.`);
|
|
262
|
+
}
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
// Com argumento → persiste.
|
|
266
|
+
const spinner = opts.json || opts.quiet ? null : ora({ text: 'Salvando apelido…', color: 'blue' }).start();
|
|
267
|
+
let res;
|
|
268
|
+
try {
|
|
269
|
+
res = await apiRequest('/api/cli/v1/chat/identity', {
|
|
270
|
+
method: 'POST',
|
|
271
|
+
token,
|
|
272
|
+
body: { displayName },
|
|
273
|
+
});
|
|
274
|
+
spinner?.stop();
|
|
275
|
+
}
|
|
276
|
+
catch (error) {
|
|
277
|
+
spinner?.fail('Falha ao salvar apelido.');
|
|
278
|
+
handleApiError(error, opts.json);
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
if (opts.json) {
|
|
282
|
+
console.log(JSON.stringify(res));
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
if (opts.quiet)
|
|
286
|
+
return;
|
|
287
|
+
if (res.displayName) {
|
|
288
|
+
log.success(`Apelido definido: ${chalk.bold(res.displayName)} — suas mensagens no chat aparecem com este nome.`);
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
log.success('Apelido limpo — suas mensagens voltam a usar o email.');
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
/** Extrai epoch ms do createdAt serializado (Timestamp/ISO/ms). 0 se inválido. */
|
|
295
|
+
function createdAtMs(createdAt) {
|
|
296
|
+
if (!createdAt)
|
|
297
|
+
return 0;
|
|
298
|
+
if (typeof createdAt === 'number')
|
|
299
|
+
return Number.isFinite(createdAt) ? createdAt : 0;
|
|
300
|
+
if (typeof createdAt === 'string') {
|
|
301
|
+
const ms = Date.parse(createdAt);
|
|
302
|
+
return Number.isFinite(ms) ? ms : 0;
|
|
303
|
+
}
|
|
304
|
+
if (typeof createdAt === 'object') {
|
|
305
|
+
const o = createdAt;
|
|
306
|
+
if (typeof o._seconds === 'number')
|
|
307
|
+
return o._seconds * 1000;
|
|
308
|
+
if (typeof o.seconds === 'number')
|
|
309
|
+
return o.seconds * 1000;
|
|
310
|
+
if (typeof o.toMillis === 'function') {
|
|
311
|
+
try {
|
|
312
|
+
return o.toMillis();
|
|
313
|
+
}
|
|
314
|
+
catch {
|
|
315
|
+
return 0;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
return 0;
|
|
320
|
+
}
|
|
230
321
|
export async function runChatHistory(opts) {
|
|
231
322
|
const productSlug = opts.product?.trim();
|
|
232
323
|
// DEFAULT = canal global (igual ao send): `neetru chat history` sem flags
|
|
@@ -236,16 +327,30 @@ export async function runChatHistory(opts) {
|
|
|
236
327
|
const sinceHours = Math.min(Math.max(Number(opts.hours ?? '24'), 1), 24);
|
|
237
328
|
const token = await requireToken(opts.json);
|
|
238
329
|
const label = channelId ? `canal ${channelId}` : `produto ${productSlug}`;
|
|
239
|
-
|
|
240
|
-
|
|
330
|
+
// Cursor explícito (--since): epoch ms OU ISO. Quando setado, o servidor
|
|
331
|
+
// devolve só createdAt > since (ignora a janela em horas).
|
|
332
|
+
let initialSinceMs;
|
|
333
|
+
if (opts.since) {
|
|
334
|
+
const asNum = Number(opts.since);
|
|
335
|
+
const parsed = Number.isFinite(asNum) && opts.since.trim() !== '' ? asNum : Date.parse(opts.since);
|
|
336
|
+
if (Number.isFinite(parsed))
|
|
337
|
+
initialSinceMs = parsed;
|
|
338
|
+
}
|
|
339
|
+
const buildQs = (hours, sinceMs) => {
|
|
340
|
+
const qs = new URLSearchParams();
|
|
341
|
+
// `since` (cursor preciso) tem precedência sobre `sinceHours` (janela).
|
|
342
|
+
if (typeof sinceMs === 'number')
|
|
343
|
+
qs.set('since', String(sinceMs));
|
|
344
|
+
else
|
|
345
|
+
qs.set('sinceHours', String(hours));
|
|
241
346
|
if (channelId)
|
|
242
347
|
qs.set('channelId', channelId);
|
|
243
348
|
else
|
|
244
349
|
qs.set('productSlug', productSlug);
|
|
245
350
|
return qs.toString();
|
|
246
351
|
};
|
|
247
|
-
const fetchMsgs = async (hours) => {
|
|
248
|
-
const res = await apiRequest(`/api/cli/v1/chat?${buildQs(hours)}`, { token });
|
|
352
|
+
const fetchMsgs = async (hours, sinceMs) => {
|
|
353
|
+
const res = await apiRequest(`/api/cli/v1/chat?${buildQs(hours, sinceMs)}`, { token });
|
|
249
354
|
return res.messages ?? [];
|
|
250
355
|
};
|
|
251
356
|
// ── Modo --follow: stream contínuo (tipo tail -f). Ideal pra IAs/agents: ──
|
|
@@ -257,25 +362,40 @@ export async function runChatHistory(opts) {
|
|
|
257
362
|
if (!opts.json) {
|
|
258
363
|
console.log(chalk.bold(`\nStream — ${label} (atualiza a cada ${Math.round(intervalMs / 1000)}s · Ctrl-C encerra)\n`));
|
|
259
364
|
}
|
|
260
|
-
//
|
|
365
|
+
// Cursor (watermark): avança pro maior createdAt visto → poll incremental
|
|
366
|
+
// via ?since=. Começa no --since explícito; senão 0 (1ª leitura usa janela h).
|
|
367
|
+
let cursorMs = initialSinceMs ?? 0;
|
|
368
|
+
// Leitura inicial. SEM --since: marca o passado recente como visto e NÃO
|
|
369
|
+
// reemite (em --json, ZERO backlog — só novas daqui pra frente). COM --since:
|
|
370
|
+
// emite o que veio desde o cursor (o usuário pediu), inclusive em --json.
|
|
261
371
|
try {
|
|
262
|
-
const initial = await fetchMsgs(sinceHours);
|
|
372
|
+
const initial = await fetchMsgs(sinceHours, initialSinceMs);
|
|
263
373
|
for (const m of initial) {
|
|
264
374
|
seen.add(m.id);
|
|
265
|
-
|
|
375
|
+
cursorMs = Math.max(cursorMs, createdAtMs(m.createdAt));
|
|
376
|
+
if (initialSinceMs !== undefined) {
|
|
377
|
+
if (opts.json)
|
|
378
|
+
process.stdout.write(JSON.stringify(m) + '\n');
|
|
379
|
+
else
|
|
380
|
+
printMessage(m);
|
|
381
|
+
}
|
|
382
|
+
else if (!opts.json) {
|
|
266
383
|
printMessage(m);
|
|
384
|
+
}
|
|
267
385
|
}
|
|
268
386
|
}
|
|
269
387
|
catch (error) {
|
|
270
388
|
handleApiError(error, opts.json);
|
|
271
389
|
return;
|
|
272
390
|
}
|
|
273
|
-
// Loop de poll —
|
|
391
|
+
// Loop de poll — só mensagens novas via cursor (?since) + dedup por id;
|
|
392
|
+
// overlap de 2s pra não perder msgs do mesmo segundo. Sem cursor ainda
|
|
393
|
+
// (canal vazio na 1ª leitura), cai na janela curta de 1h.
|
|
274
394
|
for (;;) {
|
|
275
395
|
await new Promise((r) => setTimeout(r, intervalMs));
|
|
276
396
|
let msgs;
|
|
277
397
|
try {
|
|
278
|
-
msgs = await fetchMsgs(1
|
|
398
|
+
msgs = cursorMs > 0 ? await fetchMsgs(1, Math.max(0, cursorMs - 2000)) : await fetchMsgs(1);
|
|
279
399
|
}
|
|
280
400
|
catch {
|
|
281
401
|
continue; // transitório — tenta de novo
|
|
@@ -284,6 +404,7 @@ export async function runChatHistory(opts) {
|
|
|
284
404
|
if (seen.has(m.id))
|
|
285
405
|
continue;
|
|
286
406
|
seen.add(m.id);
|
|
407
|
+
cursorMs = Math.max(cursorMs, createdAtMs(m.createdAt));
|
|
287
408
|
if (opts.json)
|
|
288
409
|
process.stdout.write(JSON.stringify(m) + '\n');
|
|
289
410
|
else
|
|
@@ -297,7 +418,7 @@ export async function runChatHistory(opts) {
|
|
|
297
418
|
const spinner = opts.json ? null : ora({ text: 'Buscando histórico…', color: 'blue' }).start();
|
|
298
419
|
let messages;
|
|
299
420
|
try {
|
|
300
|
-
messages = await fetchMsgs(sinceHours);
|
|
421
|
+
messages = await fetchMsgs(sinceHours, initialSinceMs);
|
|
301
422
|
spinner?.stop();
|
|
302
423
|
}
|
|
303
424
|
catch (error) {
|
|
@@ -309,7 +430,8 @@ export async function runChatHistory(opts) {
|
|
|
309
430
|
console.log(JSON.stringify({ ok: true, count: messages.length, messages }));
|
|
310
431
|
return;
|
|
311
432
|
}
|
|
312
|
-
|
|
433
|
+
const janela = initialSinceMs !== undefined ? 'desde o cursor --since' : `últimas ${sinceHours}h`;
|
|
434
|
+
console.log(chalk.bold(`\nHistórico — ${label} (${janela} · ${messages.length} msg)\n`));
|
|
313
435
|
if (messages.length === 0) {
|
|
314
436
|
log.dim('Nenhuma mensagem no período.');
|
|
315
437
|
return;
|
|
@@ -476,6 +598,16 @@ export function registerChatCommand(program) {
|
|
|
476
598
|
.action(async (id, cmdOpts) => {
|
|
477
599
|
await runChatChannelClose(id, { json: !!cmdOpts.json });
|
|
478
600
|
});
|
|
601
|
+
// ── chat identity (CH3) ─────────────────────────────────────────────────────
|
|
602
|
+
// Apelido inerente à credencial: a IA se identifica em nome do dev dono do token.
|
|
603
|
+
chatCmd
|
|
604
|
+
.command('identity [apelido]')
|
|
605
|
+
.alias('apelido')
|
|
606
|
+
.description('Ver/definir o apelido da credencial no chat (persiste por token). Vazio limpa. CH3.')
|
|
607
|
+
.option('--json', 'saída em JSON')
|
|
608
|
+
.action(async (apelido, cmdOpts) => {
|
|
609
|
+
await runChatIdentity(apelido, { json: !!cmdOpts.json });
|
|
610
|
+
});
|
|
479
611
|
// ── chat send ──────────────────────────────────────────────────────────────
|
|
480
612
|
// Mensagem pode vir como argumento posicional OU via --mensagem/--message.
|
|
481
613
|
// Sem --channel/--product, vai pro canal GLOBAL (default). Exemplos:
|
|
@@ -492,18 +624,23 @@ export function registerChatCommand(program) {
|
|
|
492
624
|
.option('--product <slug>', 'slug do produto — legado (retrocompat)')
|
|
493
625
|
.option('--actor-type <tipo>', 'tipo do ator: cli|human|agent_claude (default: cli)', 'cli')
|
|
494
626
|
.option('--product-id <id>', 'id interno do produto (opcional, legado)')
|
|
627
|
+
.option('--as <apelido>', 'definir o apelido da credencial antes de enviar (persiste — CH3)')
|
|
495
628
|
.option('--json', 'saída em JSON')
|
|
496
629
|
.action(async (mensagem, cmdOpts, command) => {
|
|
497
630
|
// bug_71f42072: mesma colisão de --channel/--canal/--product entre o pai
|
|
498
631
|
// `chat` e o subcomando. Prefere o subcomando, cai no pai.
|
|
499
632
|
const parent = command?.parent?.opts?.() ?? {};
|
|
633
|
+
// CH3: --as persiste o apelido na credencial antes de postar (quiet).
|
|
634
|
+
if (typeof cmdOpts.as === 'string') {
|
|
635
|
+
await runChatIdentity(cmdOpts.as, { quiet: true, json: !!(cmdOpts.json || parent.json) });
|
|
636
|
+
}
|
|
500
637
|
const msg = (mensagem ?? cmdOpts.message ?? cmdOpts.mensagem ?? '').toString();
|
|
501
638
|
await runChatSend(msg, {
|
|
502
639
|
channel: cmdOpts.channel ?? cmdOpts.canal ?? parent.channel ?? parent.canal,
|
|
503
640
|
product: cmdOpts.product ?? parent.product,
|
|
504
641
|
actorType: cmdOpts.actorType,
|
|
505
642
|
productId: cmdOpts.productId,
|
|
506
|
-
json: !!cmdOpts.json,
|
|
643
|
+
json: !!(cmdOpts.json || parent.json),
|
|
507
644
|
});
|
|
508
645
|
});
|
|
509
646
|
// ── chat history ───────────────────────────────────────────────────────────
|
|
@@ -514,6 +651,7 @@ export function registerChatCommand(program) {
|
|
|
514
651
|
.option('--canal <id>', 'apelido PT-BR de --channel')
|
|
515
652
|
.option('--product <slug>', 'slug do produto — legado (retrocompat)')
|
|
516
653
|
.option('--hours <n>', 'janela de histórico em horas (1–24, default: 24)', '24')
|
|
654
|
+
.option('--since <ts>', 'cursor incremental (epoch ms OU ISO) — busca SÓ msgs após esse ponto (monitor limpo)')
|
|
517
655
|
.option('--follow', 'STREAM contínuo: emite mensagens novas conforme chegam (Ctrl-C encerra)')
|
|
518
656
|
.option('--stream', 'apelido de --follow')
|
|
519
657
|
.option('--watch', 'apelido de --follow')
|
|
@@ -521,19 +659,20 @@ export function registerChatCommand(program) {
|
|
|
521
659
|
.option('--json', 'saída em JSON (com --follow: NDJSON, 1 msg nova por linha)')
|
|
522
660
|
.action(async (cmdOpts, command) => {
|
|
523
661
|
// bug_71f42072: o comando-pai `chat` E o subcomando `history` declaram
|
|
524
|
-
// --channel/--canal/--product. O Commander
|
|
525
|
-
// cmdOpts
|
|
526
|
-
//
|
|
527
|
-
//
|
|
528
|
-
//
|
|
662
|
+
// --channel/--canal/--product/--json. O Commander pode rotear o flag pro
|
|
663
|
+
// PAI, deixando cmdOpts.<flag> UNDEFINED no subcomando → caía no default.
|
|
664
|
+
// Fix: prefere o valor do subcomando e cai no do pai (command.parent.opts()).
|
|
665
|
+
// O --json sofria a MESMA colisão (sintoma do pdv: `--follow --json` ignorava
|
|
666
|
+
// o --json → saía texto + despejava backlog). Agora cai no parent.json também.
|
|
529
667
|
const parent = command?.parent?.opts?.() ?? {};
|
|
530
668
|
await runChatHistory({
|
|
531
669
|
channel: cmdOpts.channel ?? cmdOpts.canal ?? parent.channel ?? parent.canal,
|
|
532
670
|
product: cmdOpts.product ?? parent.product,
|
|
533
671
|
hours: cmdOpts.hours,
|
|
672
|
+
since: cmdOpts.since,
|
|
534
673
|
follow: !!(cmdOpts.follow || cmdOpts.stream || cmdOpts.watch),
|
|
535
674
|
interval: cmdOpts.interval,
|
|
536
|
-
json: !!cmdOpts.json,
|
|
675
|
+
json: !!(cmdOpts.json || parent.json),
|
|
537
676
|
});
|
|
538
677
|
});
|
|
539
678
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/db.d.ts
CHANGED
|
@@ -132,3 +132,34 @@ export interface DbMigrationsCancelOptions {
|
|
|
132
132
|
* Roles: admin ou operator.
|
|
133
133
|
*/
|
|
134
134
|
export declare function runDbMigrationsCancel(migrationId: string, opts?: DbMigrationsCancelOptions): Promise<void>;
|
|
135
|
+
export interface DbMigrationsShowOptions {
|
|
136
|
+
json?: boolean;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Detalha UMA migração (GET /api/cli/v1/db/migrations/[id]) — status,
|
|
140
|
+
* classificação POR-STATEMENT, error, redundantOf e ponteiros do apply via
|
|
141
|
+
* agente. Resolve a cegueira de "onde/por quê parou" (antes só havia `list`).
|
|
142
|
+
*
|
|
143
|
+
* Roles: admin ou operator (leitura).
|
|
144
|
+
*/
|
|
145
|
+
export declare function runDbMigrationsShow(migrationId: string, opts?: DbMigrationsShowOptions): Promise<void>;
|
|
146
|
+
export interface DbMigrationsResolveOptions {
|
|
147
|
+
/** Atestar manualmente quando não há prova de redundância por hash. */
|
|
148
|
+
force?: boolean;
|
|
149
|
+
/** Código TOTP step-up — obrigatório com --force. */
|
|
150
|
+
mfa?: string;
|
|
151
|
+
json?: boolean;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Destrava uma migração presa em `partially_applied`/`failed` quando ela é
|
|
155
|
+
* REDUNDANTE (o DDL já está no banco). POST /api/cli/v1/db/migrations/[id]/resolve.
|
|
156
|
+
*
|
|
157
|
+
* Dois caminhos:
|
|
158
|
+
* - SEM --force (admin|operator): prova por hash — só resolve se houver outra
|
|
159
|
+
* migração `applied` com o MESMO hash neste banco (evidência determinística).
|
|
160
|
+
* - COM --force (admin + MFA): atestação manual — o admin verificou o estado
|
|
161
|
+
* real do banco (SELECT) e atesta que o schema já está correto.
|
|
162
|
+
*
|
|
163
|
+
* Caso pdv mig #9: re-gerado com a schema do #8 já applied → CREATE TYPE colidiu.
|
|
164
|
+
*/
|
|
165
|
+
export declare function runDbMigrationsResolve(migrationId: string, opts?: DbMigrationsResolveOptions): Promise<void>;
|
package/dist/commands/db.js
CHANGED
|
@@ -10,8 +10,10 @@
|
|
|
10
10
|
* neetru db init — registra banco local + scaffolda db/schema.ts
|
|
11
11
|
* neetru db apply [--dry-run] — pipeline de migração + envia ao Core
|
|
12
12
|
* neetru db migrations list [--db <id>]
|
|
13
|
+
* neetru db migrations show <id> — detalha status/classificação por-statement/erro/redundantOf
|
|
13
14
|
* neetru db migrations confirm <id> — confirma migração destrutiva (exige --mfa)
|
|
14
15
|
* neetru db migrations cancel <id> — cancela migração presa em awaiting_confirmation ou pending
|
|
16
|
+
* neetru db migrations resolve <id> — destrava partially_applied/failed redundante (--force exige MFA)
|
|
15
17
|
*
|
|
16
18
|
* Todos os comandos que chamam o Core usam `apiRequest` do `api-client` —
|
|
17
19
|
* autenticação via Bearer token resolvido automaticamente do config local.
|
|
@@ -1235,6 +1237,152 @@ export async function runDbMigrationsCancel(migrationId, opts = {}) {
|
|
|
1235
1237
|
log.dim(` Migração cancelada: ${chalk.bold(migrationId)}`);
|
|
1236
1238
|
log.dim(` Para reenviar: neetru db apply`);
|
|
1237
1239
|
}
|
|
1240
|
+
/**
|
|
1241
|
+
* Detalha UMA migração (GET /api/cli/v1/db/migrations/[id]) — status,
|
|
1242
|
+
* classificação POR-STATEMENT, error, redundantOf e ponteiros do apply via
|
|
1243
|
+
* agente. Resolve a cegueira de "onde/por quê parou" (antes só havia `list`).
|
|
1244
|
+
*
|
|
1245
|
+
* Roles: admin ou operator (leitura).
|
|
1246
|
+
*/
|
|
1247
|
+
export async function runDbMigrationsShow(migrationId, opts = {}) {
|
|
1248
|
+
if (!opts.json)
|
|
1249
|
+
log.banner();
|
|
1250
|
+
if (!migrationId) {
|
|
1251
|
+
const msg = '<migrationId> é obrigatório.';
|
|
1252
|
+
if (opts.json) {
|
|
1253
|
+
jsonError(msg, 'missing_migration_id');
|
|
1254
|
+
}
|
|
1255
|
+
else {
|
|
1256
|
+
log.error(msg);
|
|
1257
|
+
}
|
|
1258
|
+
safeExit(1);
|
|
1259
|
+
return;
|
|
1260
|
+
}
|
|
1261
|
+
const spinner = opts.json
|
|
1262
|
+
? null
|
|
1263
|
+
: ora({ text: `Buscando migração ${migrationId}…`, color: 'blue' }).start();
|
|
1264
|
+
let resp;
|
|
1265
|
+
try {
|
|
1266
|
+
resp = await apiRequest(`/api/cli/v1/db/migrations/${encodeURIComponent(migrationId)}`);
|
|
1267
|
+
spinner?.stop();
|
|
1268
|
+
}
|
|
1269
|
+
catch (err) {
|
|
1270
|
+
spinner?.fail('Falha ao buscar migração.');
|
|
1271
|
+
if (opts.json) {
|
|
1272
|
+
jsonError(err.message ?? String(err), 'show_failed');
|
|
1273
|
+
safeExit(4);
|
|
1274
|
+
return;
|
|
1275
|
+
}
|
|
1276
|
+
handleApiError(err);
|
|
1277
|
+
return;
|
|
1278
|
+
}
|
|
1279
|
+
if (opts.json) {
|
|
1280
|
+
console.log(JSON.stringify(resp, null, 2));
|
|
1281
|
+
return;
|
|
1282
|
+
}
|
|
1283
|
+
const m = resp.migration;
|
|
1284
|
+
log.heading(`Migração ${m.id}`);
|
|
1285
|
+
log.dim(` Banco: ${m.dbId}`);
|
|
1286
|
+
log.dim(` Produto: ${m.productId}`);
|
|
1287
|
+
log.dim(` Ambiente: ${m.environment}`);
|
|
1288
|
+
log.dim(` Número: ${m.migrationNumber}`);
|
|
1289
|
+
log.dim(` Status: ${m.status}`);
|
|
1290
|
+
log.dim(` Severidade: ${severityColor(m.severity ?? '—')}`);
|
|
1291
|
+
log.dim(` Aplicado em: ${m.appliedAt ? fmtTimestamp(m.appliedAt) : '—'}`);
|
|
1292
|
+
if (m.redundantOfMigrationId) {
|
|
1293
|
+
log.dim(` Redundante de: ${chalk.bold(m.redundantOfMigrationId)} (DDL idêntico já aplicado)`);
|
|
1294
|
+
}
|
|
1295
|
+
if (m.preBackupGcsPath)
|
|
1296
|
+
log.dim(` Backup: ${m.preBackupGcsPath}`);
|
|
1297
|
+
if (m.error) {
|
|
1298
|
+
log.dim('');
|
|
1299
|
+
log.error(` Erro: ${m.error}`);
|
|
1300
|
+
}
|
|
1301
|
+
if (Array.isArray(m.statements) && m.statements.length > 0) {
|
|
1302
|
+
log.dim('');
|
|
1303
|
+
log.dim(` Statements (${m.statements.length}):`);
|
|
1304
|
+
m.statements.forEach((s, i) => {
|
|
1305
|
+
log.dim(` ${i + 1}. [${severityColor(s.severity)}] ${s.reason}`);
|
|
1306
|
+
log.dim(` ${s.sql.slice(0, 120)}${s.sql.length > 120 ? '…' : ''}`);
|
|
1307
|
+
});
|
|
1308
|
+
}
|
|
1309
|
+
}
|
|
1310
|
+
/**
|
|
1311
|
+
* Destrava uma migração presa em `partially_applied`/`failed` quando ela é
|
|
1312
|
+
* REDUNDANTE (o DDL já está no banco). POST /api/cli/v1/db/migrations/[id]/resolve.
|
|
1313
|
+
*
|
|
1314
|
+
* Dois caminhos:
|
|
1315
|
+
* - SEM --force (admin|operator): prova por hash — só resolve se houver outra
|
|
1316
|
+
* migração `applied` com o MESMO hash neste banco (evidência determinística).
|
|
1317
|
+
* - COM --force (admin + MFA): atestação manual — o admin verificou o estado
|
|
1318
|
+
* real do banco (SELECT) e atesta que o schema já está correto.
|
|
1319
|
+
*
|
|
1320
|
+
* Caso pdv mig #9: re-gerado com a schema do #8 já applied → CREATE TYPE colidiu.
|
|
1321
|
+
*/
|
|
1322
|
+
export async function runDbMigrationsResolve(migrationId, opts = {}) {
|
|
1323
|
+
if (!opts.json)
|
|
1324
|
+
log.banner();
|
|
1325
|
+
if (!migrationId) {
|
|
1326
|
+
const msg = '<migrationId> é obrigatório.';
|
|
1327
|
+
if (opts.json) {
|
|
1328
|
+
jsonError(msg, 'missing_migration_id');
|
|
1329
|
+
}
|
|
1330
|
+
else {
|
|
1331
|
+
log.error(msg);
|
|
1332
|
+
}
|
|
1333
|
+
safeExit(1);
|
|
1334
|
+
return;
|
|
1335
|
+
}
|
|
1336
|
+
// --force exige step-up MFA (atestação). Sem force = prova por hash, sem MFA.
|
|
1337
|
+
const reqInit = { method: 'POST' };
|
|
1338
|
+
if (opts.force) {
|
|
1339
|
+
const { headers } = await resolveStepUp({ mfaToken: opts.mfa, json: opts.json });
|
|
1340
|
+
reqInit.headers = headers;
|
|
1341
|
+
reqInit.body = { force: true };
|
|
1342
|
+
}
|
|
1343
|
+
const spinner = opts.json
|
|
1344
|
+
? null
|
|
1345
|
+
: ora({ text: `Resolvendo migração ${migrationId}…`, color: 'yellow' }).start();
|
|
1346
|
+
let resp;
|
|
1347
|
+
try {
|
|
1348
|
+
resp = await apiRequest(`/api/cli/v1/db/migrations/${encodeURIComponent(migrationId)}/resolve`, reqInit);
|
|
1349
|
+
const modeLabel = resp.mode === 'hash_proven' ? 'prova por hash' : 'atestação admin';
|
|
1350
|
+
spinner?.succeed(`Migração ${chalk.bold(migrationId)} resolvida (${modeLabel}) — status: ${resp.status}`);
|
|
1351
|
+
}
|
|
1352
|
+
catch (err) {
|
|
1353
|
+
spinner?.fail('Falha ao resolver migração.');
|
|
1354
|
+
if (err instanceof CliApiError && err.status === 409) {
|
|
1355
|
+
const msg = `Não foi possível resolver: ${err.message}\n` +
|
|
1356
|
+
`Sem prova de redundância por hash. Verifique o estado real do banco ` +
|
|
1357
|
+
`(SELECT read-only) e, se o schema já estiver correto, use --force (exige MFA); ` +
|
|
1358
|
+
`ou cancele e reenvie a migração.`;
|
|
1359
|
+
if (opts.json) {
|
|
1360
|
+
console.log(JSON.stringify({ ok: false, error: 'migration_not_resolvable', message: msg }));
|
|
1361
|
+
}
|
|
1362
|
+
else {
|
|
1363
|
+
log.error(msg);
|
|
1364
|
+
}
|
|
1365
|
+
safeExit(4);
|
|
1366
|
+
return;
|
|
1367
|
+
}
|
|
1368
|
+
if (opts.json) {
|
|
1369
|
+
jsonError(err.message ?? String(err), 'resolve_failed');
|
|
1370
|
+
safeExit(4);
|
|
1371
|
+
return;
|
|
1372
|
+
}
|
|
1373
|
+
handleApiError(err);
|
|
1374
|
+
return;
|
|
1375
|
+
}
|
|
1376
|
+
if (opts.json) {
|
|
1377
|
+
console.log(JSON.stringify(resp));
|
|
1378
|
+
return;
|
|
1379
|
+
}
|
|
1380
|
+
log.dim('');
|
|
1381
|
+
if (resp.redundantOfMigrationId) {
|
|
1382
|
+
log.dim(` Redundante de: ${chalk.bold(resp.redundantOfMigrationId)}`);
|
|
1383
|
+
}
|
|
1384
|
+
log.dim(` Status final: ${chalk.bold(resp.status)}`);
|
|
1385
|
+
}
|
|
1238
1386
|
// ── D-3: runDbMigrate e runDbSeed removidos (legado Sprint 10) ──────────────
|
|
1239
1387
|
// Esses comandos operavam via schema.manifest.json (Sprint 10) e foram cortados
|
|
1240
1388
|
// junto com o branch legado do `db init`. O fluxo canônico é:
|