@neetru/cli 2.28.8 → 2.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +74 -1
  2. package/README.md +2 -1
  3. package/dist/commands/admin/oidc-login.d.ts +18 -0
  4. package/dist/commands/admin/oidc-login.js +62 -0
  5. package/dist/commands/admin/oidc-login.js.map +1 -1
  6. package/dist/commands/agent-release.d.ts +2 -0
  7. package/dist/commands/agent-release.js +27 -2
  8. package/dist/commands/agent-release.js.map +1 -1
  9. package/dist/commands/agent-write.d.ts +1 -0
  10. package/dist/commands/agent-write.js +4 -0
  11. package/dist/commands/agent-write.js.map +1 -1
  12. package/dist/commands/code.js +10 -1
  13. package/dist/commands/code.js.map +1 -1
  14. package/dist/commands/db-move.d.ts +50 -1
  15. package/dist/commands/db-move.js +137 -13
  16. package/dist/commands/db-move.js.map +1 -1
  17. package/dist/commands/db.js +17 -9
  18. package/dist/commands/db.js.map +1 -1
  19. package/dist/commands/deploy.d.ts +15 -0
  20. package/dist/commands/deploy.js +76 -1
  21. package/dist/commands/deploy.js.map +1 -1
  22. package/dist/commands/deployments.d.ts +7 -1
  23. package/dist/commands/deployments.js +59 -8
  24. package/dist/commands/deployments.js.map +1 -1
  25. package/dist/commands/doctor.js +12 -6
  26. package/dist/commands/doctor.js.map +1 -1
  27. package/dist/commands/ops.d.ts +17 -0
  28. package/dist/commands/ops.js +50 -18
  29. package/dist/commands/ops.js.map +1 -1
  30. package/dist/commands/products-db.d.ts +1 -0
  31. package/dist/commands/products-db.js +15 -15
  32. package/dist/commands/products-db.js.map +1 -1
  33. package/dist/commands/servers.d.ts +30 -3
  34. package/dist/commands/servers.js +130 -8
  35. package/dist/commands/servers.js.map +1 -1
  36. package/dist/commands/vm.d.ts +2 -0
  37. package/dist/commands/vm.js +8 -0
  38. package/dist/commands/vm.js.map +1 -1
  39. package/dist/index.js +90 -11
  40. package/dist/index.js.map +1 -1
  41. package/dist/lib/agent-artifact-url.d.ts +19 -0
  42. package/dist/lib/agent-artifact-url.js +48 -0
  43. package/dist/lib/agent-artifact-url.js.map +1 -0
  44. package/dist/lib/api-client.d.ts +11 -3
  45. package/dist/lib/api-client.js +55 -24
  46. package/dist/lib/api-client.js.map +1 -1
  47. package/dist/lib/api-error.js +32 -1
  48. package/dist/lib/api-error.js.map +1 -1
  49. package/dist/lib/auth.d.ts +2 -9
  50. package/dist/lib/auth.js +34 -18
  51. package/dist/lib/auth.js.map +1 -1
  52. package/dist/lib/cli-write.d.ts +31 -0
  53. package/dist/lib/cli-write.js +51 -2
  54. package/dist/lib/cli-write.js.map +1 -1
  55. package/dist/lib/telemetry.d.ts +7 -0
  56. package/dist/lib/telemetry.js +9 -0
  57. package/dist/lib/telemetry.js.map +1 -1
  58. package/package.json +2 -1
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import chalk from 'chalk';
10
10
  import ora from 'ora';
11
- import { apiRequest } from '../lib/api-client.js';
11
+ import { apiRequest, CliApiError } from '../lib/api-client.js';
12
12
  import { requireToken, handleApiError } from '../lib/cli-read.js';
13
13
  import { confirmDestructive, printWriteResult, resolveStepUp, } from '../lib/cli-write.js';
14
14
  import { renderTable } from '../lib/render.js';
@@ -144,13 +144,10 @@ export async function runServersProvision(opts) {
144
144
  (await promptText('Machine type:', { default: 'e2-small', json: opts.json }));
145
145
  const role = opts.role ?? 'multi';
146
146
  const isDbVm = !!opts.isDbVm;
147
- // isDbVm muda a postura de rede (sem IP público + tag neetru-db-vm) — mesma
148
- // superfície sensível que o Server Action browser exige MFA pra tocar
149
- // (GAP-M0-1). Só resolve step-up quando isDbVm=true: VM de app comum não
150
- // prompta TOTP à toa.
151
- const headers = isDbVm
152
- ? (await resolveStepUp({ mfaToken: opts.mfaToken, json: opts.json })).headers
153
- : undefined;
147
+ // M6 (auditoria cli/v1 2026-09-29, revisão): o Core exige step-up MFA em
148
+ // TODA provisão — toda VM é faturada e a resposta traz token de registro de
149
+ // agente. Antes (GAP-M0-1) só `isDbVm=true` era gateado.
150
+ const { headers } = await resolveStepUp({ mfaToken: opts.mfaToken, json: opts.json });
154
151
  const displayName = name || `(auto snee-NNN-${role})`;
155
152
  const spinner = opts.json
156
153
  ? null
@@ -499,6 +496,131 @@ export async function runServersDispatch(id, commandType, opts) {
499
496
  }
500
497
  printWriteResult({ commandId: res.commandId }, `Comando enfileirado: ${res.commandId}`, opts.json);
501
498
  }
499
+ /** Guia PT-BR (o que significa + o que fazer) pras recusas 409 da trava lógica. */
500
+ const PGBOUNCER_SYNC_REFUSAL_GUIDANCE = {
501
+ no_active_databases: 'Não há banco Postgres ATIVO nesta VM — nada para sincronizar no PgBouncer. Confira ' +
502
+ `${chalk.cyan('neetru servers describe <serverId>')} (bancos hospedados).`,
503
+ replace_incomplete: "mode 'replace' recusado: a lista calculada AGORA não é a completa da VM (a mensagem " +
504
+ 'acima já lista os motivos — banco em status bloqueante, migração de banco em curso ou ' +
505
+ "papel fora do formato). Resolva o bloqueio, ou use o padrão 'merge' (sem --replace), que " +
506
+ 'só faz upsert dos papéis esperados.',
507
+ };
508
+ /**
509
+ * `neetru servers pgbouncer sync-userlist <serverId>` — re-sincroniza o
510
+ * userlist do PgBouncer da VM (`agent.db.pgbouncer.sync_userlist`, Core PR
511
+ * #539): o agente relê o hash SCRAM do `pg_shadow` de cada papel Postgres
512
+ * ATIVO da VM e reescreve as linhas — remediação de SASL sem SSH e sem
513
+ * rotacionar senha. A lista de papéis é montada pelo Core a partir de
514
+ * `product_databases` (nunca vem do cliente). `merge` (padrão) só faz upsert;
515
+ * `--replace` reescreve o arquivo INTEIRO e é recusado (`replace_incomplete`)
516
+ * se a lista não for a COMPLETA da VM (banco bloqueado, migração de banco
517
+ * ativa ou papel fora do formato).
518
+ *
519
+ * MFA INCONDICIONAL — diferente da maioria das rotas com dry-run deste CLI: a
520
+ * rota do Core chama `requireCliStepUpMfa` ANTES de ler `dryRun`, então
521
+ * `--dry-run` aqui NÃO pula o step-up (fecha o bypass que dry-run
522
+ * representaria). Por isso este comando NUNCA repassa `opts.dryRun` pro
523
+ * `resolveStepUp` padrão (que pularia o header MFA) — resolve o MFA sempre e
524
+ * anexa `?dryRun=true` à parte.
525
+ */
526
+ export async function runServersPgbouncerSyncUserlist(serverId, opts = {}) {
527
+ if (!opts.json)
528
+ log.banner();
529
+ if (!serverId || !/^[a-zA-Z0-9_-]{1,64}$/.test(serverId)) {
530
+ const msg = 'serverId inválido.';
531
+ if (opts.json)
532
+ console.log(JSON.stringify({ ok: false, error: 'invalid_param', message: msg }));
533
+ else
534
+ log.error(msg);
535
+ safeExit(1);
536
+ }
537
+ const mode = opts.replace ? 'replace' : 'merge';
538
+ // Espelho client-side de `reason_required` — o Core TAMBÉM isenta em
539
+ // dry-run (só preview; nada é aplicado, então o motivo ainda não importa).
540
+ if (mode === 'replace' && !opts.dryRun && (!opts.reason || opts.reason.trim().length < 10)) {
541
+ const msg = "--replace reescreve o userlist INTEIRO da VM — exige --reason com pelo menos 10 " +
542
+ 'caracteres (vai pro audit).';
543
+ if (opts.json)
544
+ console.log(JSON.stringify({ ok: false, error: 'reason_required', message: msg }));
545
+ else
546
+ log.error(msg);
547
+ safeExit(1);
548
+ }
549
+ await requireToken(opts.json);
550
+ if (mode === 'replace' && !opts.dryRun) {
551
+ await confirmDestructive(`Reescrever (REPLACE) o userlist do PgBouncer na VM ${serverId}? A lista completa ` +
552
+ 'calculada AGORA substitui TODAS as linhas — qualquer papel fora dela é removido. O ' +
553
+ 'Core recusa (replace_incomplete) se a lista não for a completa da VM.', { yes: opts.yes, json: opts.json });
554
+ }
555
+ const { headers } = await resolveStepUp({
556
+ mfaToken: opts.mfaToken,
557
+ json: opts.json,
558
+ yes: opts.yes,
559
+ });
560
+ const body = {};
561
+ if (mode === 'replace')
562
+ body.mode = 'replace';
563
+ if (opts.reason)
564
+ body.reason = opts.reason.trim();
565
+ const spinner = opts.json
566
+ ? null
567
+ : ora({
568
+ text: opts.dryRun
569
+ ? 'Calculando o plano do PgBouncer (dry-run)…'
570
+ : 'Sincronizando o userlist do PgBouncer…',
571
+ color: 'blue',
572
+ }).start();
573
+ let resp;
574
+ try {
575
+ resp = await apiRequest(`/api/cli/v1/servers/${encodeURIComponent(serverId)}/pgbouncer/sync-userlist${opts.dryRun ? '?dryRun=true' : ''}`, { method: 'POST', body, headers });
576
+ spinner?.stop();
577
+ }
578
+ catch (err) {
579
+ spinner?.fail('Falha ao sincronizar o userlist do PgBouncer.');
580
+ // 409 = recusa da TRAVA LÓGICA (não erro de transporte) — guidance PT-BR
581
+ // específica por código, igual ao padrão de `db move decommission`.
582
+ if (err instanceof CliApiError && err.status === 409) {
583
+ const guidance = PGBOUNCER_SYNC_REFUSAL_GUIDANCE[err.code];
584
+ if (opts.json) {
585
+ console.log(JSON.stringify({ ok: false, error: err.code, message: err.message, guidance: guidance ?? null }));
586
+ }
587
+ else {
588
+ log.error(guidance ? `${err.message}\n ${guidance}` : err.message);
589
+ }
590
+ safeExit(1);
591
+ }
592
+ handleApiError(err, opts.json);
593
+ }
594
+ if (opts.json) {
595
+ console.log(JSON.stringify({ ok: true, ...resp }));
596
+ return;
597
+ }
598
+ const plan = 'wouldApply' in resp ? resp.wouldApply : resp;
599
+ if ('wouldApply' in resp) {
600
+ log.warn(`[dry-run] Nada foi aplicado — plano calculado (mode ${plan.mode}):`);
601
+ }
602
+ else {
603
+ log.success(`Userlist do PgBouncer sincronizado na VM ${resp.serverId} (mode ${resp.mode}).`);
604
+ }
605
+ renderTable([
606
+ { header: 'DB', value: (r) => r.dbId, maxWidth: 24 },
607
+ { header: 'PAPÉIS', value: (r) => r.roles.join(', '), maxWidth: 50 },
608
+ ], plan.databases);
609
+ if (plan.skipped.length > 0) {
610
+ log.heading('Bancos deixados de fora (papel fora do formato)');
611
+ renderTable([
612
+ { header: 'DB', value: (r) => r.dbId, maxWidth: 24 },
613
+ { header: 'MOTIVO', value: (r) => r.reason, maxWidth: 50 },
614
+ ], plan.skipped);
615
+ }
616
+ if ('wouldApply' in resp)
617
+ return;
618
+ log.dim(` Papéis enviados ao agente: ${resp.users.join(', ')}`);
619
+ log.success(`commandId: ${resp.commandId}`);
620
+ log.info('O agente aplica de forma assíncrona — acompanhe com: ' +
621
+ `${chalk.cyan(`neetru servers logs ${serverId} --source audit`)} ou pelo próximo ` +
622
+ `heartbeat (${chalk.cyan(`neetru servers describe ${serverId}`)}).`);
623
+ }
502
624
  /**
503
625
  * `neetru servers fleet decisions approve <id>` — aprova uma fleet_decision proposed.
504
626
  *
@@ -1 +1 @@
1
- {"version":3,"file":"servers.js","sourceRoot":"","sources":["../../src/commands/servers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"servers.js","sourceRoot":"","sources":["../../src/commands/servers.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,7 @@ export interface VmProvisionOptions {
2
2
  machineType?: string;
3
3
  zone?: string;
4
4
  yes?: boolean;
5
+ /** `--mfa-token <código>` — TOTP do step-up MFA. */
6
+ mfaToken?: string;
5
7
  }
6
8
  export declare function runVmProvision(opts: VmProvisionOptions): Promise<void>;
@@ -4,10 +4,15 @@
4
4
  * Fluxo de Ambientes Fase 2. Mostra a spec + custo estimado, pede confirmação
5
5
  * (regra: nunca cria infra silenciosamente) e dispara o provisionamento.
6
6
  * A regra "1 VM única" é imposta no servidor.
7
+ *
8
+ * Auditoria cli/v1 2026-09-29 (M6): cada chamada cria uma VM FATURADA — o Core
9
+ * exige step-up MFA (sessão 1h via `neetru auth mfa-session` → `--mfa-token` →
10
+ * prompt TOTP), resolvido depois da confirmação de custo.
7
11
  */
8
12
  import inquirer from 'inquirer';
9
13
  import { apiRequest } from '../lib/api-client.js';
10
14
  import { handleApiError } from '../lib/api-error.js';
15
+ import { resolveStepUp } from '../lib/cli-write.js';
11
16
  import { log } from '../utils/logger.js';
12
17
  import { safeExit } from '../utils/safe-exit.js';
13
18
  // handleApiError unificado em ../lib/api-error.js (auditoria qualidade 2026-06-20).
@@ -55,10 +60,13 @@ export async function runVmProvision(opts) {
55
60
  safeExit(0);
56
61
  }
57
62
  }
63
+ // M6: VM paga exige step-up MFA (a chave sozinha não gera custo).
64
+ const { headers } = await resolveStepUp({ mfaToken: opts.mfaToken, nonInteractive });
58
65
  let res;
59
66
  try {
60
67
  res = await apiRequest('/api/cli/v1/vm/provision', {
61
68
  method: 'POST',
69
+ headers,
62
70
  body: { machineType: opts.machineType, zone: opts.zone, confirmed: true },
63
71
  });
64
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vm.js","sourceRoot":"","sources":["../../src/commands/vm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vm.js","sourceRoot":"","sources":["../../src/commands/vm.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ import { log } from './utils/logger.js';
4
4
  import { CLI_VERSION } from './version.js';
5
5
  import { installTelemetryFlushHook, markCommandStart, markCommandEnd, } from './lib/telemetry.js';
6
6
  import { safeExit, isSafeExitHalt } from './utils/safe-exit.js';
7
+ import { CliApiError } from './lib/api-client.js';
7
8
  // UV_HANDLE_CLOSING no Windows (bug_818cf6d): o double-destroy de stdin (handler
8
9
  // 'exit' redundante) foi removido em 2026-07-15 (ddd479f), MAS isso não bastou
9
10
  // — a causa dominante é o `uv_async_t` do undici (fetch) ainda vivo quando o
@@ -30,6 +31,11 @@ function handleFatalSignal(err) {
30
31
  return; // saída já agendada dentro do safeExit
31
32
  try {
32
33
  log.error(err instanceof Error ? (err.stack ?? err.message) : String(err));
34
+ // LABS #6 (2026-09-28): se o erro carrega o x-correlation-id do Core, mostra
35
+ // no rodapé pra o usuário informar ao suporte — fecha o loop de debug de campo.
36
+ if (err instanceof CliApiError && err.correlationId) {
37
+ log.error(`ref: ${err.correlationId} — informe ao suporte`);
38
+ }
33
39
  }
34
40
  catch {
35
41
  /* logger indisponível — segue direto pro exit deferido */
@@ -438,6 +444,7 @@ program
438
444
  .option('--build-local', 'forçar docker build local em vez de Cloud Build remoto (exige Docker instalado). (target=cloud-run)')
439
445
  .option('--env-file <file>', 'arquivo .env com vars passadas pro deploy')
440
446
  .option('--env <env>', 'ambiente alvo: dev | staging | prod', 'dev')
447
+ .option('--mfa-token <code>', 'código TOTP para step-up MFA (só --env prod; ou use `neetru auth mfa-session`)')
441
448
  .option('--local-artifact', 'F-11: NÃO faz upload pra GCS — manda file:// pro Core (só funciona se o agent compartilha FS com este CLI)')
442
449
  .option('--non-interactive', 'falha em vez de perguntar (modo CI)')
443
450
  .option('--force', 'ignora o gate de schema e prossegue mesmo com divergência de fingerprint')
@@ -466,6 +473,7 @@ program
466
473
  nonInteractive: !!opts.nonInteractive,
467
474
  force: !!opts.force,
468
475
  skipHealthProbe: !!opts.skipHealthProbe,
476
+ mfaToken: opts.mfaToken,
469
477
  json: !!opts.json,
470
478
  });
471
479
  });
@@ -709,10 +717,10 @@ serversCmd
709
717
  .option('--zone <zone>', 'zona GCP (ex: us-central1-a)')
710
718
  .option('--machine-type <type>', 'machine type GCP (ex: e2-small)')
711
719
  .option('--role <role>', 'multi (default) | db | app | worker — role da VM (nome/metadado)')
712
- .option('--is-db-vm', 'postura de rede de VM de banco: sem IP público + tag neetru-db-vm (exige step-up MFA)')
720
+ .option('--is-db-vm', 'postura de rede de VM de banco: sem IP público + tag neetru-db-vm')
713
721
  .option('--tenant <tenantId>', 'tenant associado')
714
722
  .option('--customer <customerId>', 'customer associado')
715
- .option('--mfa-token <code>', 'código TOTP para step-up MFA (só usado com --is-db-vm)')
723
+ .option('--mfa-token <code>', 'código TOTP para step-up MFA (ou use `neetru auth mfa-session`)')
716
724
  .option('--json', 'saída em JSON')
717
725
  .action(async (opts) => {
718
726
  const { runServersProvision } = await import('./commands/servers.js');
@@ -848,6 +856,34 @@ serversCmd
848
856
  json: !!opts.json,
849
857
  });
850
858
  });
859
+ // ── neetru servers pgbouncer ─────────────────────────────────────────────
860
+ // Remediação SASL sem SSH (Core PR #539): re-sincroniza o userlist do
861
+ // PgBouncer da VM relendo o hash SCRAM do pg_shadow de cada papel. MFA
862
+ // INCONDICIONAL — a rota do Core exige step-up MESMO em --dry-run (fecha o
863
+ // bypass que dry-run representaria em outras rotas).
864
+ const serversPgbouncerCmd = serversCmd
865
+ .command('pgbouncer')
866
+ .description('Operações de PgBouncer da VM (userlist)');
867
+ serversPgbouncerCmd
868
+ .command('sync-userlist <serverId>')
869
+ .description('Re-sincronizar o userlist do PgBouncer da VM (POST /api/cli/v1/servers/[id]/pgbouncer/sync-userlist — exige MFA mesmo em --dry-run)')
870
+ .option('--replace', "mode 'replace' — reescreve o userlist INTEIRO da VM (exige --reason ≥10 chars fora de --dry-run)")
871
+ .option('--reason <text>', 'motivo do replace (vai pro audit)')
872
+ .option('--dry-run', 'só calcula e mostra o plano, sem despachar (ainda exige MFA)')
873
+ .option('--mfa-token <code>', 'código TOTP step-up MFA (ou use `neetru auth mfa-session`)')
874
+ .option('-y, --yes', 'pula a confirmação interativa do --replace (modo script)')
875
+ .option('--json', 'saída em JSON')
876
+ .action(async (serverId, opts) => {
877
+ const { runServersPgbouncerSyncUserlist } = await import('./commands/servers.js');
878
+ await runServersPgbouncerSyncUserlist(serverId, {
879
+ replace: !!opts.replace,
880
+ reason: opts.reason,
881
+ dryRun: !!opts.dryRun,
882
+ mfaToken: opts.mfaToken,
883
+ yes: !!opts.yes,
884
+ json: !!opts.json,
885
+ });
886
+ });
851
887
  // ── neetru workspaces ─────────────────────────────────────────────────
852
888
  const workspacesCmd = program
853
889
  .command('workspaces')
@@ -1313,10 +1349,15 @@ adminDatabaseCmd
1313
1349
  .command('set-status [id] [status]')
1314
1350
  .description('[Staff] ESCRITA — forçar status do ciclo de vida de um banco (active/failed/archived/…)')
1315
1351
  .option('--reason <text>', 'motivo da mudança de status')
1352
+ .option('--mfa-token <code>', 'código TOTP para step-up MFA (exigido se o banco está active/degraded)')
1316
1353
  .option('--json')
1317
1354
  .action(async (id, status, opts) => {
1318
1355
  const { runDbSetStatus } = await import('./commands/products-db.js');
1319
- await runDbSetStatus(id, status, { reason: opts.reason, json: !!opts.json });
1356
+ await runDbSetStatus(id, status, {
1357
+ reason: opts.reason,
1358
+ mfaToken: opts.mfaToken,
1359
+ json: !!opts.json,
1360
+ });
1320
1361
  });
1321
1362
  adminDatabaseCmd
1322
1363
  .command('retry [id]')
@@ -1454,6 +1495,23 @@ adminOidcLoginCmd
1454
1495
  json: !!opts.json,
1455
1496
  });
1456
1497
  });
1498
+ adminOidcLoginCmd
1499
+ .command('rotate <clientId>')
1500
+ .description('[Staff] Rotacionar o client_secret de um login-client OIDC (exige MFA). ' +
1501
+ 'O secret novo NÃO é exibido — o próximo deploy o injeta server-side.')
1502
+ .requiredOption('--product-id <id>', 'ID (ou slug) do produto dono do client')
1503
+ .option('--immediate', 'revoga o secret anterior NA HORA (vazamento) — o login do produto cai até o próximo deploy')
1504
+ .option('--mfa-token <code>', 'código TOTP para step-up MFA (ou use `neetru auth mfa-session`)')
1505
+ .option('--json', 'saída em JSON')
1506
+ .action(async (clientId, opts) => {
1507
+ const { runOidcLoginRotate } = await import('./commands/admin/oidc-login.js');
1508
+ await runOidcLoginRotate(clientId, {
1509
+ productId: opts.productId,
1510
+ immediate: !!opts.immediate,
1511
+ mfaToken: opts.mfaToken,
1512
+ json: !!opts.json,
1513
+ });
1514
+ });
1457
1515
  adminOidcLoginCmd
1458
1516
  .command('list')
1459
1517
  .description('[Staff] Listar login-clients OIDC de um produto (mascarado)')
@@ -1617,12 +1675,14 @@ vmCmd
1617
1675
  .option('--machine-type <type>', 'machine type GCP (default e2-medium)')
1618
1676
  .option('--zone <zone>', 'zona GCP (default southamerica-east1-a)')
1619
1677
  .option('-y, --yes', 'confirma o custo recorrente sem prompt')
1678
+ .option('--mfa-token <code>', 'código TOTP para step-up MFA (ou use `neetru auth mfa-session`)')
1620
1679
  .action(async (opts) => {
1621
1680
  const { runVmProvision } = await import('./commands/vm.js');
1622
1681
  await runVmProvision({
1623
1682
  machineType: opts.machineType,
1624
1683
  zone: opts.zone,
1625
1684
  yes: !!opts.yes,
1685
+ mfaToken: opts.mfaToken,
1626
1686
  });
1627
1687
  });
1628
1688
  // ── neetru vm memory ──────────────────────────────────────────────────
@@ -2143,14 +2203,18 @@ dbMoveCmd
2143
2203
  });
2144
2204
  });
2145
2205
  // ── neetru db move decommission ───────────────────────────────────────
2146
- // Comando SEPARADO e explícito que DROPA a ORIGEM de um move JÁ concluído
2147
- // (fecha a janela de rollback). É o único caminho que destrói a origem —
2148
- // gated por MFA e recusado client-side se o ledger ainda não aponta pro
2149
- // destino (espelho da INV-DESTROY). O Core é a autoridade final.
2206
+ // Comando SEPARADO e explícito que DESPACHA o drop da ORIGEM de um move JÁ
2207
+ // concluído (fecha a janela de rollback). É o único caminho que destrói a
2208
+ // origem — gated por MFA e recusado client-side se o ledger ainda não aponta
2209
+ // pro destino (espelho da INV-DESTROY). O Core é a autoridade final (checa
2210
+ // também o período de observação de 7 dias após o `done`). O drop é
2211
+ // ASSÍNCRONO: este comando só confirma o despacho — acompanhe o desfecho com
2212
+ // `db move status`. `--retry` só é aceito depois de uma tentativa `failed`.
2150
2213
  dbMoveCmd
2151
2214
  .command('decommission <migrationId>')
2152
- .description('Descomissionar (DROPAR) a origem de um move concluído — fecha o rollback (POST /api/cli/v1/db/relocate/[id]/decommission — exige MFA)')
2215
+ .description('Despachar o drop (DESCOMISSIONAR) da origem de um move concluído — assíncrono, fecha o rollback (POST /api/cli/v1/db/relocate/[id]/decommission — exige MFA)')
2153
2216
  .requiredOption('--reason <text>', 'motivo do descomissionamento (vai pro audit)')
2217
+ .option('--retry', 'nova tentativa explícita — só aceita depois de uma tentativa anterior "failed"')
2154
2218
  .option('-y, --yes', 'pula a confirmação interativa (modo script)')
2155
2219
  .option('--mfa-token <code>', 'código TOTP step-up MFA (ou use `neetru auth mfa-session`)')
2156
2220
  .option('--json', 'saída em JSON')
@@ -2158,6 +2222,7 @@ dbMoveCmd
2158
2222
  const { runDbMoveDecommission } = await import('./commands/db-move.js');
2159
2223
  await runDbMoveDecommission(migrationId, {
2160
2224
  reason: opts.reason,
2225
+ retry: !!opts.retry,
2161
2226
  yes: !!opts.yes,
2162
2227
  mfaToken: opts.mfaToken,
2163
2228
  json: !!opts.json,
@@ -2320,6 +2385,7 @@ agentCmd
2320
2385
  .option('--binary <arch=path>', 'binário local (sha256+size computados, URL canônica GCS auto-derivada). Repetível.', (val, prev = []) => [...prev, val])
2321
2386
  .option('--artifact <arch=URL@sha256@sizeBytes>', 'artifact com URL/sha256/size explícitos (não toca FS). Repetível.', (val, prev = []) => [...prev, val])
2322
2387
  .option('--dry-run', 'imprime payload sem enviar')
2388
+ .option('--mfa-token <code>', 'código TOTP para step-up MFA (ou use `neetru auth mfa-session`)')
2323
2389
  .action(async (opts) => {
2324
2390
  const { runAgentRelease } = await import('./commands/agent-release.js');
2325
2391
  await runAgentRelease({
@@ -2330,6 +2396,7 @@ agentCmd
2330
2396
  binary: opts.binary,
2331
2397
  artifact: opts.artifact,
2332
2398
  dryRun: !!opts.dryRun,
2399
+ mfaToken: opts.mfaToken,
2333
2400
  });
2334
2401
  });
2335
2402
  agentCmd
@@ -2357,11 +2424,12 @@ const agentCanaryCmd = agentCmd
2357
2424
  .description('Controlar canary rollout de releases do agente');
2358
2425
  agentCanaryCmd
2359
2426
  .command('start <version>')
2360
- .description('Iniciar canary rollout de uma release (phase1 5%)')
2427
+ .description('Iniciar canary rollout de uma release (phase1 5%) — exige MFA')
2428
+ .option('--mfa-token <code>', 'código TOTP para step-up MFA (ou use `neetru auth mfa-session`)')
2361
2429
  .option('--json', 'saída em JSON')
2362
2430
  .action(async (version, opts) => {
2363
2431
  const { runAgentCanaryStart } = await import('./commands/agent-write.js');
2364
- await runAgentCanaryStart(version, { json: !!opts.json });
2432
+ await runAgentCanaryStart(version, { json: !!opts.json, mfaToken: opts.mfaToken });
2365
2433
  });
2366
2434
  agentCanaryCmd
2367
2435
  .command('rollback <version>')
@@ -2949,7 +3017,18 @@ mobileCmd
2949
3017
  registerChatCommand(program);
2950
3018
  }
2951
3019
  // ── parse ─────────────────────────────────────────────────────────────
2952
- if (!process.argv.slice(2).length) {
3020
+ if (process.argv[2] === '--version' || process.argv[2] === '-v') {
3021
+ // B3 (LABS 2026-09-28): `.version(CLI_VERSION, '-V')` liberou `--version` pros
3022
+ // subcomandos que o usam como opção própria (build/deploy/workspaces advance/
3023
+ // deployments create/api-catalog/agent release), mas removeu a long flag do
3024
+ // ROOT — `neetru --version` e `neetru -v` passaram a dar "unknown option".
3025
+ // Reintroduz AMBAS só no TOPO (primeiro token = argv[2]); o `--version <valor>`
3026
+ // dos subcomandos vem sempre DEPOIS do nome do comando, nunca como argv[2],
3027
+ // então não colide.
3028
+ console.log(CLI_VERSION);
3029
+ safeExit(0);
3030
+ }
3031
+ else if (!process.argv.slice(2).length) {
2953
3032
  if (process.stdin.isTTY && process.stdout.isTTY && process.env.CI !== 'true') {
2954
3033
  const { runTerminalUi } = await import('./commands/ui.js');
2955
3034
  await runTerminalUi();