@neetru/cli 2.7.2 → 2.7.3

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 CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  Convenção: [Keep a Changelog](https://keepachangelog.com/) + [SemVer](https://semver.org/).
4
4
 
5
+ ## [2.7.3] — 2026-05-20 (polish do cabeçalho)
6
+
7
+ ### Mudado
8
+
9
+ - Cabeçalho do `neetru` interativo: logo renderizado **ao lado** do texto
10
+ (antes era acima), com a sessão e a versão alinhadas à direita do logo.
11
+ - Paleta de contorno do menu e do logo ajustada para um azul mais suave.
12
+
5
13
  ## [2.7.2] — 2026-05-20 (aviso de versão + menu em 2 colunas)
6
14
 
7
15
  ### Adicionado
@@ -1,12 +1,28 @@
1
- type MenuAction = 'overview' | 'quickstart' | 'products' | 'workspaces' | 'deploy' | 'servers' | 'databases' | 'tenants' | 'support' | 'health' | 'auth' | 'exit';
2
- export declare const MENU_OUTLINE_COLOR = "#001F3F";
1
+ import { type DocsBannerInfo } from '../utils/logger.js';
2
+ type MenuAction = 'overview' | 'quickstart' | 'products' | 'workspaces' | 'deploy' | 'servers' | 'databases' | 'tenants' | 'support' | 'docs' | 'health' | 'auth' | 'exit';
3
+ export declare const MENU_OUTLINE_COLOR = "#334C65";
4
+ export declare const MENU_FOOTER_TEXT_COLOR = "#CBD5E1";
3
5
  type MenuDirection = 'up' | 'down' | 'left' | 'right';
6
+ type DocsMenuAction = 'list' | 'get' | 'meta' | 'back' | `recent:${string}`;
4
7
  /** Item do menu principal: nome do recurso + descrição opcional. */
5
8
  interface MainMenuItem {
6
9
  label: string;
7
10
  value: MenuAction;
8
11
  description?: string;
9
12
  }
13
+ export interface DocsMenuChoice {
14
+ name: string;
15
+ value: DocsMenuAction;
16
+ short: string;
17
+ }
18
+ export interface MenuFooterTask {
19
+ label: string;
20
+ progress: number;
21
+ }
22
+ export interface MenuFooterState {
23
+ sessionEmail?: string | null;
24
+ tasks?: MenuFooterTask[];
25
+ }
10
26
  /**
11
27
  * Menu principal do CLI. Cada recurso tem um nome e, quando ajuda, uma
12
28
  * descrição curta exibida abaixo dele.
@@ -23,6 +39,7 @@ export declare function buildMenuChoices(items: MainMenuItem[]): Array<{
23
39
  short: string;
24
40
  }>;
25
41
  export declare function moveMenuSelection(currentIndex: number, direction: MenuDirection, totalItems: number, columns?: number): number;
26
- export declare function renderMainMenu(items: MainMenuItem[], selectedIndex: number, terminalColumns?: number): string;
42
+ export declare function renderMainMenu(items: MainMenuItem[], selectedIndex: number, terminalColumns?: number, footer?: MenuFooterState): string;
43
+ export declare function buildDocsMenuChoices(docsInfo?: DocsBannerInfo): DocsMenuChoice[];
27
44
  export declare function runTerminalUi(): Promise<void>;
28
45
  export {};
@@ -9,11 +9,13 @@ import { resolveSessionEmail } from '../lib/auth.js';
9
9
  import { checkForUpdate } from '../lib/version-check.js';
10
10
  import { CLI_VERSION } from '../version.js';
11
11
  import { log } from '../utils/logger.js';
12
- export const MENU_OUTLINE_COLOR = '#001F3F';
12
+ export const MENU_OUTLINE_COLOR = '#334C65';
13
+ export const MENU_FOOTER_TEXT_COLOR = '#CBD5E1';
13
14
  const MENU_COLUMNS = 2;
14
15
  const MENU_GAP = 2;
15
16
  const MENU_MIN_WIDTH = 58;
16
17
  const MENU_MAX_WIDTH = 112;
18
+ const DOCS_RECENT_LIMIT = 5;
17
19
  /**
18
20
  * Erro lançado no lugar de `process.exit()` enquanto o menu interativo está
19
21
  * ativo. Os comandos do CLI chamam `process.exit()` em erro (ex.: "Nenhum
@@ -80,7 +82,12 @@ export const MAIN_MENU = [
80
82
  description: 'Tickets de suporte — listar, responder, mudar status',
81
83
  },
82
84
  {
83
- label: 'Status e diagnóstico',
85
+ label: 'Docs live',
86
+ value: 'docs',
87
+ description: 'Registry publicado no Core - listar e ler markdown',
88
+ },
89
+ {
90
+ label: 'Status e diagnostico',
84
91
  value: 'health',
85
92
  description: 'Saúde das superfícies, doctor e whoami',
86
93
  },
@@ -124,6 +131,39 @@ function padMenuText(text, width) {
124
131
  function menuBorder(text) {
125
132
  return chalk.hex(MENU_OUTLINE_COLOR)(text);
126
133
  }
134
+ function menuFooterText(text) {
135
+ return chalk.hex(MENU_FOOTER_TEXT_COLOR)(text);
136
+ }
137
+ function renderProgressBar(progress, width = 10) {
138
+ const safeProgress = Math.max(0, Math.min(100, Math.round(progress)));
139
+ const filled = Math.round((safeProgress / 100) * width);
140
+ return `${menuBorder('[')}${chalk.hex('#1E90FF')('#'.repeat(filled))}${chalk.dim('-'.repeat(width - filled))}${menuBorder(']')} ${safeProgress}%`;
141
+ }
142
+ function renderTaskFooter(tasks, width) {
143
+ if (!tasks || tasks.length === 0) {
144
+ return menuFooterText(padMenuText('tasks sem tarefas ativas', width));
145
+ }
146
+ const task = tasks[0];
147
+ const remaining = tasks.length > 1 ? ` +${tasks.length - 1}` : '';
148
+ return menuFooterText(padMenuText(`task ${task.label}${remaining} `, Math.max(0, width - 18))) + renderProgressBar(task.progress);
149
+ }
150
+ function renderFooterColumns(left, right, width) {
151
+ const gap = ' ';
152
+ const leftWidth = Math.max(20, Math.floor((width - gap.length) * 0.45));
153
+ const rightWidth = Math.max(10, width - leftWidth - gap.length);
154
+ return `${menuFooterText(padMenuText(left, leftWidth))}${gap}${menuFooterText(padMenuText(right, rightWidth))}`;
155
+ }
156
+ function renderMenuFooter(footer, width) {
157
+ const session = footer.sessionEmail
158
+ ? `logado como ${footer.sessionEmail}`
159
+ : 'sem login - neetru login';
160
+ const taskWidth = Math.max(18, Math.floor(width * 0.52));
161
+ return [
162
+ ` ${menuBorder('─'.repeat(width))}`,
163
+ ` ${renderFooterColumns('Neetru CLI', `Developer Kit neetru.com v${CLI_VERSION}`, width)}`,
164
+ ` ${menuFooterText(padMenuText(session, Math.max(20, width - taskWidth - 2)))} ${renderTaskFooter(footer.tasks, taskWidth)}`,
165
+ ];
166
+ }
127
167
  function renderMenuCell(item, selected, width) {
128
168
  if (!item) {
129
169
  const empty = ' '.repeat(width);
@@ -166,7 +206,7 @@ export function moveMenuSelection(currentIndex, direction, totalItems, columns =
166
206
  }
167
207
  return current;
168
208
  }
169
- export function renderMainMenu(items, selectedIndex, terminalColumns = process.stdout.columns) {
209
+ export function renderMainMenu(items, selectedIndex, terminalColumns = process.stdout.columns, footer = {}) {
170
210
  const targetWidth = clampMenuWidth(terminalColumns);
171
211
  const columnWidth = Math.max(24, Math.floor((targetWidth - 2 - MENU_GAP) / MENU_COLUMNS));
172
212
  const innerWidth = columnWidth * MENU_COLUMNS + MENU_GAP;
@@ -182,8 +222,12 @@ export function renderMainMenu(items, selectedIndex, terminalColumns = process.s
182
222
  });
183
223
  lines.push(` ${menuBorder('│')}${cells.map((cell) => cell[0]).join(' '.repeat(MENU_GAP))}${menuBorder('│')}`);
184
224
  lines.push(` ${menuBorder('│')}${cells.map((cell) => cell[1]).join(' '.repeat(MENU_GAP))}${menuBorder('│')}`);
225
+ if (row < rows - 1) {
226
+ lines.push(` ${menuBorder('│')}${' '.repeat(innerWidth)}${menuBorder('│')}`);
227
+ }
185
228
  }
186
229
  lines.push(` ${menuBorder(`└${'─'.repeat(innerWidth)}┘`)}`);
230
+ lines.push(...renderMenuFooter(footer, innerWidth + 2));
187
231
  return lines.join('\n');
188
232
  }
189
233
  function decodeMenuKey(data) {
@@ -207,7 +251,47 @@ function readMenuKey() {
207
251
  process.stdin.once('data', (data) => resolve(decodeMenuKey(data)));
208
252
  });
209
253
  }
210
- async function promptMainMenu(items) {
254
+ function formatDocDate(value) {
255
+ if (!value)
256
+ return undefined;
257
+ const date = new Date(value);
258
+ if (Number.isNaN(date.getTime()))
259
+ return undefined;
260
+ return date.toISOString().slice(0, 10);
261
+ }
262
+ function docPublishedTime(doc) {
263
+ const time = Date.parse(doc.publishedAt ?? '');
264
+ return Number.isNaN(time) ? 0 : time;
265
+ }
266
+ async function loadDocsBannerInfo() {
267
+ const token = await resolveToken();
268
+ if (!token)
269
+ return { message: 'login para consultar registry' };
270
+ const ctrl = new AbortController();
271
+ const timer = setTimeout(() => ctrl.abort(), 1500);
272
+ try {
273
+ const result = await apiRequest('/api/cli/v1/docs', {
274
+ token,
275
+ signal: ctrl.signal,
276
+ });
277
+ const recent = [...(result.docs ?? [])]
278
+ .sort((a, b) => docPublishedTime(b) - docPublishedTime(a))
279
+ .slice(0, DOCS_RECENT_LIMIT)
280
+ .map((doc) => ({
281
+ title: doc.title || doc.slug,
282
+ slug: doc.slug,
283
+ updated: formatDocDate(doc.publishedAt),
284
+ }));
285
+ return { count: result.count ?? result.docs?.length ?? 0, recent };
286
+ }
287
+ catch {
288
+ return { message: 'registry indisponivel agora' };
289
+ }
290
+ finally {
291
+ clearTimeout(timer);
292
+ }
293
+ }
294
+ async function promptMainMenu(items, footer = {}) {
211
295
  let selectedIndex = 0;
212
296
  let renderedLines = 0;
213
297
  const wasRaw = process.stdin.isRaw === true;
@@ -223,7 +307,7 @@ async function promptMainMenu(items) {
223
307
  process.stdout.write('\x1B[?25l');
224
308
  try {
225
309
  for (;;) {
226
- const frame = renderMainMenu(items, selectedIndex);
310
+ const frame = renderMainMenu(items, selectedIndex, process.stdout.columns, footer);
227
311
  clearRenderedMenu();
228
312
  process.stdout.write(`${frame}\n`);
229
313
  renderedLines = frame.split('\n').length;
@@ -253,7 +337,7 @@ async function pause() {
253
337
  {
254
338
  type: 'input',
255
339
  name: 'continue',
256
- message: 'Enter para voltar ao menu',
340
+ message: 'Enter para continuar',
257
341
  },
258
342
  ]);
259
343
  }
@@ -267,13 +351,24 @@ async function safeRun(fn, opts = {}) {
267
351
  // `CommandExitError` = um comando chamou `process.exit()` e já imprimiu a
268
352
  // própria mensagem. Qualquer outro erro: mostramos a mensagem. Nos dois
269
353
  // casos pausamos (a função não chegou ao seu próprio `pause()`) e voltamos
270
- // ao menu — o CLI NUNCA encerra por causa de um comando.
354
+ // ao fluxo interativo — o CLI NUNCA encerra por causa de um comando.
271
355
  if (!(error instanceof CommandExitError)) {
272
356
  log.error(error instanceof Error ? error.message : String(error));
273
357
  }
274
358
  await pause();
275
359
  }
276
360
  }
361
+ async function runSubmenuAction(fn) {
362
+ try {
363
+ await fn();
364
+ }
365
+ catch (error) {
366
+ if (!(error instanceof CommandExitError)) {
367
+ log.error(error instanceof Error ? error.message : String(error));
368
+ }
369
+ }
370
+ await pause();
371
+ }
277
372
  async function readLocalProject(cwd) {
278
373
  for (const file of ['neetru.config.json', '.neetru.json']) {
279
374
  const full = path.join(cwd, file);
@@ -356,285 +451,353 @@ async function quickstart() {
356
451
  });
357
452
  }
358
453
  async function productsMenu() {
359
- const answer = await inquirer.prompt([
360
- {
361
- type: 'list',
362
- name: 'action',
363
- message: 'Produtos',
364
- choices: [
365
- { name: 'Listar produtos', value: 'list' },
366
- { name: 'Criar produto', value: 'create' },
367
- { name: 'Publicar no catalogo', value: 'publish' },
368
- { name: 'Remover do catalogo', value: 'unpublish' },
369
- { name: 'Voltar', value: 'back' },
370
- ],
371
- },
372
- ]);
373
- if (answer.action === 'back')
374
- return;
375
- const products = await import('./products.js');
376
- if (answer.action === 'list')
377
- await products.runProductsList({});
378
- if (answer.action === 'create')
379
- await products.runProductsCreate({});
380
- if (answer.action === 'publish')
381
- await products.runProductsPublish(undefined, {});
382
- if (answer.action === 'unpublish')
383
- await products.runProductsUnpublish(undefined, {});
384
- await pause();
454
+ for (;;) {
455
+ const answer = await inquirer.prompt([
456
+ {
457
+ type: 'list',
458
+ name: 'action',
459
+ message: 'Produtos',
460
+ choices: [
461
+ { name: 'Listar produtos', value: 'list' },
462
+ { name: 'Criar produto', value: 'create' },
463
+ { name: 'Publicar no catalogo', value: 'publish' },
464
+ { name: 'Remover do catalogo', value: 'unpublish' },
465
+ { name: 'Voltar', value: 'back' },
466
+ ],
467
+ },
468
+ ]);
469
+ if (answer.action === 'back')
470
+ return;
471
+ await runSubmenuAction(async () => {
472
+ const products = await import('./products.js');
473
+ if (answer.action === 'list')
474
+ await products.runProductsList({});
475
+ if (answer.action === 'create')
476
+ await products.runProductsCreate({});
477
+ if (answer.action === 'publish')
478
+ await products.runProductsPublish(undefined, {});
479
+ if (answer.action === 'unpublish')
480
+ await products.runProductsUnpublish(undefined, {});
481
+ });
482
+ }
385
483
  }
386
484
  async function workspacesMenu() {
387
- const answer = await inquirer.prompt([
388
- {
389
- type: 'list',
390
- name: 'action',
391
- message: 'Workspaces',
392
- choices: [
393
- { name: 'Listar workspaces', value: 'list' },
394
- { name: 'Criar workspace', value: 'create' },
395
- { name: 'Ver detalhes', value: 'get' },
396
- { name: 'Abrir no painel', value: 'open' },
397
- { name: 'Promover bundle', value: 'advance' },
398
- { name: 'Voltar', value: 'back' },
399
- ],
400
- },
401
- ]);
402
- if (answer.action === 'back')
403
- return;
404
- const workspaces = await import('./workspaces.js');
405
- if (answer.action === 'list')
406
- await workspaces.runWorkspacesList({});
407
- if (answer.action === 'create')
408
- await workspaces.runWorkspacesCreate({});
409
- if (answer.action === 'get')
410
- await workspaces.runWorkspacesGet(undefined, {});
411
- if (answer.action === 'open')
412
- await workspaces.runWorkspacesOpen(undefined);
413
- if (answer.action === 'advance')
414
- await workspaces.runWorkspacesAdvance(undefined, {});
415
- await pause();
485
+ for (;;) {
486
+ const answer = await inquirer.prompt([
487
+ {
488
+ type: 'list',
489
+ name: 'action',
490
+ message: 'Workspaces',
491
+ choices: [
492
+ { name: 'Listar workspaces', value: 'list' },
493
+ { name: 'Criar workspace', value: 'create' },
494
+ { name: 'Ver detalhes', value: 'get' },
495
+ { name: 'Abrir no painel', value: 'open' },
496
+ { name: 'Promover bundle', value: 'advance' },
497
+ { name: 'Voltar', value: 'back' },
498
+ ],
499
+ },
500
+ ]);
501
+ if (answer.action === 'back')
502
+ return;
503
+ await runSubmenuAction(async () => {
504
+ const workspaces = await import('./workspaces.js');
505
+ if (answer.action === 'list')
506
+ await workspaces.runWorkspacesList({});
507
+ if (answer.action === 'create')
508
+ await workspaces.runWorkspacesCreate({});
509
+ if (answer.action === 'get')
510
+ await workspaces.runWorkspacesGet(undefined, {});
511
+ if (answer.action === 'open')
512
+ await workspaces.runWorkspacesOpen(undefined);
513
+ if (answer.action === 'advance')
514
+ await workspaces.runWorkspacesAdvance(undefined, {});
515
+ });
516
+ }
416
517
  }
417
518
  async function serversMenu() {
418
- const answer = await inquirer.prompt([
419
- {
420
- type: 'list',
421
- name: 'action',
422
- message: 'Servers',
423
- choices: [
424
- { name: 'Listar servers', value: 'list' },
425
- { name: 'Provisionar VM', value: 'provision' },
426
- { name: 'Despachar comando', value: 'dispatch' },
427
- { name: 'Desativar server', value: 'deactivate' },
428
- { name: 'Voltar', value: 'back' },
429
- ],
430
- },
431
- ]);
432
- if (answer.action === 'back')
433
- return;
434
- const servers = await import('./servers.js');
435
- if (answer.action === 'list')
436
- await servers.runServersList({ capacity: true });
437
- if (answer.action === 'provision')
438
- await servers.runServersProvision({});
439
- if (answer.action === 'dispatch')
440
- await servers.runServersDispatch(undefined, undefined, {});
441
- if (answer.action === 'deactivate')
442
- await servers.runServersDeactivate(undefined, {});
443
- await pause();
519
+ for (;;) {
520
+ const answer = await inquirer.prompt([
521
+ {
522
+ type: 'list',
523
+ name: 'action',
524
+ message: 'Servers',
525
+ choices: [
526
+ { name: 'Listar servers', value: 'list' },
527
+ { name: 'Provisionar VM', value: 'provision' },
528
+ { name: 'Despachar comando', value: 'dispatch' },
529
+ { name: 'Desativar server', value: 'deactivate' },
530
+ { name: 'Voltar', value: 'back' },
531
+ ],
532
+ },
533
+ ]);
534
+ if (answer.action === 'back')
535
+ return;
536
+ await runSubmenuAction(async () => {
537
+ const servers = await import('./servers.js');
538
+ if (answer.action === 'list')
539
+ await servers.runServersList({ capacity: true });
540
+ if (answer.action === 'provision')
541
+ await servers.runServersProvision({});
542
+ if (answer.action === 'dispatch')
543
+ await servers.runServersDispatch(undefined, undefined, {});
544
+ if (answer.action === 'deactivate')
545
+ await servers.runServersDeactivate(undefined, {});
546
+ });
547
+ }
444
548
  }
445
549
  async function databasesMenu() {
446
- const answer = await inquirer.prompt([
447
- {
448
- type: 'list',
449
- name: 'action',
450
- message: 'Bancos de produto',
451
- choices: [
452
- { name: 'Listar bancos', value: 'list' },
453
- { name: 'Criar banco', value: 'create' },
454
- { name: 'Detalhar banco', value: 'get' },
455
- { name: 'Listar engines', value: 'engines' },
456
- { name: 'Retry provisionamento', value: 'retry' },
457
- { name: 'Rotacionar credenciais', value: 'rotate' },
458
- { name: 'Arquivar banco', value: 'delete' },
459
- { name: 'Voltar', value: 'back' },
460
- ],
461
- },
462
- ]);
463
- if (answer.action === 'back')
464
- return;
465
- const db = await import('./products-db.js');
466
- if (answer.action === 'list')
467
- await db.runDbList({});
468
- if (answer.action === 'create')
469
- await db.runDbCreate({ region: 'us-central1' });
470
- if (answer.action === 'get')
471
- await db.runDbGet(undefined, {});
472
- if (answer.action === 'engines')
473
- await db.runDbEngines({});
474
- if (answer.action === 'retry')
475
- await db.runDbRetry(undefined, {});
476
- if (answer.action === 'rotate')
477
- await db.runDbRotate(undefined, {});
478
- if (answer.action === 'delete')
479
- await db.runDbDelete(undefined, {});
480
- await pause();
550
+ for (;;) {
551
+ const answer = await inquirer.prompt([
552
+ {
553
+ type: 'list',
554
+ name: 'action',
555
+ message: 'Bancos de produto',
556
+ choices: [
557
+ { name: 'Listar bancos', value: 'list' },
558
+ { name: 'Criar banco', value: 'create' },
559
+ { name: 'Detalhar banco', value: 'get' },
560
+ { name: 'Listar engines', value: 'engines' },
561
+ { name: 'Retry provisionamento', value: 'retry' },
562
+ { name: 'Rotacionar credenciais', value: 'rotate' },
563
+ { name: 'Arquivar banco', value: 'delete' },
564
+ { name: 'Voltar', value: 'back' },
565
+ ],
566
+ },
567
+ ]);
568
+ if (answer.action === 'back')
569
+ return;
570
+ await runSubmenuAction(async () => {
571
+ const db = await import('./products-db.js');
572
+ if (answer.action === 'list')
573
+ await db.runDbList({});
574
+ if (answer.action === 'create')
575
+ await db.runDbCreate({ region: 'us-central1' });
576
+ if (answer.action === 'get')
577
+ await db.runDbGet(undefined, {});
578
+ if (answer.action === 'engines')
579
+ await db.runDbEngines({});
580
+ if (answer.action === 'retry')
581
+ await db.runDbRetry(undefined, {});
582
+ if (answer.action === 'rotate')
583
+ await db.runDbRotate(undefined, {});
584
+ if (answer.action === 'delete')
585
+ await db.runDbDelete(undefined, {});
586
+ });
587
+ }
481
588
  }
482
589
  async function tenantsMenu() {
483
- const answer = await inquirer.prompt([
484
- {
485
- type: 'list',
486
- name: 'action',
487
- message: 'Tenants',
488
- choices: [
489
- { name: 'Listar tenants', value: 'list' },
490
- { name: 'Detalhar tenant', value: 'get' },
491
- { name: 'Criar tenant', value: 'create' },
492
- { name: 'Atualizar tenant', value: 'update' },
493
- { name: 'Suspender tenant', value: 'suspend' },
494
- { name: 'Reativar tenant', value: 'reactivate' },
495
- { name: 'Voltar', value: 'back' },
496
- ],
497
- },
498
- ]);
499
- if (answer.action === 'back')
500
- return;
501
- const tenants = await import('./tenants.js');
502
- if (answer.action === 'list')
503
- await tenants.runTenantsList({});
504
- if (answer.action === 'get')
505
- await tenants.runTenantsGet(undefined, {});
506
- if (answer.action === 'create')
507
- await tenants.runTenantsCreate({});
508
- if (answer.action === 'update')
509
- await tenants.runTenantsUpdate(undefined, {});
510
- if (answer.action === 'suspend')
511
- await tenants.runTenantsSuspend(undefined, {});
512
- if (answer.action === 'reactivate')
513
- await tenants.runTenantsReactivate(undefined, {});
514
- await pause();
515
- }
516
- async function supportMenu() {
517
- const answer = await inquirer.prompt([
518
- {
519
- type: 'list',
520
- name: 'action',
521
- message: 'Suporte',
522
- choices: [
523
- { name: 'Listar tickets', value: 'list' },
524
- { name: 'Detalhar ticket', value: 'describe' },
525
- { name: 'Responder ticket', value: 'reply' },
526
- { name: 'Mudar status', value: 'status' },
527
- { name: 'Voltar', value: 'back' },
528
- ],
529
- },
530
- ]);
531
- if (answer.action === 'back')
532
- return;
533
- const support = await import('./support.js');
534
- if (answer.action === 'list')
535
- await support.runSupportTicketsList({});
536
- if (answer.action === 'describe') {
537
- const { id } = await inquirer.prompt([
538
- { type: 'input', name: 'id', message: 'Ticket ID:', validate: Boolean },
590
+ for (;;) {
591
+ const answer = await inquirer.prompt([
592
+ {
593
+ type: 'list',
594
+ name: 'action',
595
+ message: 'Tenants',
596
+ choices: [
597
+ { name: 'Listar tenants', value: 'list' },
598
+ { name: 'Detalhar tenant', value: 'get' },
599
+ { name: 'Criar tenant', value: 'create' },
600
+ { name: 'Atualizar tenant', value: 'update' },
601
+ { name: 'Suspender tenant', value: 'suspend' },
602
+ { name: 'Reativar tenant', value: 'reactivate' },
603
+ { name: 'Voltar', value: 'back' },
604
+ ],
605
+ },
539
606
  ]);
540
- await support.runSupportTicketsDescribe(id, {});
607
+ if (answer.action === 'back')
608
+ return;
609
+ await runSubmenuAction(async () => {
610
+ const tenants = await import('./tenants.js');
611
+ if (answer.action === 'list')
612
+ await tenants.runTenantsList({});
613
+ if (answer.action === 'get')
614
+ await tenants.runTenantsGet(undefined, {});
615
+ if (answer.action === 'create')
616
+ await tenants.runTenantsCreate({});
617
+ if (answer.action === 'update')
618
+ await tenants.runTenantsUpdate(undefined, {});
619
+ if (answer.action === 'suspend')
620
+ await tenants.runTenantsSuspend(undefined, {});
621
+ if (answer.action === 'reactivate')
622
+ await tenants.runTenantsReactivate(undefined, {});
623
+ });
541
624
  }
542
- if (answer.action === 'reply') {
543
- const { id, message } = await inquirer.prompt([
544
- { type: 'input', name: 'id', message: 'Ticket ID:', validate: Boolean },
545
- { type: 'editor', name: 'message', message: 'Mensagem:' },
625
+ }
626
+ async function supportMenu() {
627
+ for (;;) {
628
+ const answer = await inquirer.prompt([
629
+ {
630
+ type: 'list',
631
+ name: 'action',
632
+ message: 'Suporte',
633
+ choices: [
634
+ { name: 'Listar tickets', value: 'list' },
635
+ { name: 'Detalhar ticket', value: 'describe' },
636
+ { name: 'Responder ticket', value: 'reply' },
637
+ { name: 'Mudar status', value: 'status' },
638
+ { name: 'Voltar', value: 'back' },
639
+ ],
640
+ },
546
641
  ]);
547
- await support.runSupportTicketsReply(id, { message });
642
+ if (answer.action === 'back')
643
+ return;
644
+ await runSubmenuAction(async () => {
645
+ const support = await import('./support.js');
646
+ if (answer.action === 'list')
647
+ await support.runSupportTicketsList({});
648
+ if (answer.action === 'describe') {
649
+ const { id } = await inquirer.prompt([
650
+ { type: 'input', name: 'id', message: 'Ticket ID:', validate: Boolean },
651
+ ]);
652
+ await support.runSupportTicketsDescribe(id, {});
653
+ }
654
+ if (answer.action === 'reply') {
655
+ const { id, message } = await inquirer.prompt([
656
+ { type: 'input', name: 'id', message: 'Ticket ID:', validate: Boolean },
657
+ { type: 'editor', name: 'message', message: 'Mensagem:' },
658
+ ]);
659
+ await support.runSupportTicketsReply(id, { message });
660
+ }
661
+ if (answer.action === 'status') {
662
+ const { id, to } = await inquirer.prompt([
663
+ { type: 'input', name: 'id', message: 'Ticket ID:', validate: Boolean },
664
+ {
665
+ type: 'list',
666
+ name: 'to',
667
+ message: 'Novo status:',
668
+ choices: ['open', 'in_progress', 'resolved', 'closed'],
669
+ },
670
+ ]);
671
+ await support.runSupportTicketsStatus(id, { to });
672
+ }
673
+ });
548
674
  }
549
- if (answer.action === 'status') {
550
- const { id, to } = await inquirer.prompt([
551
- { type: 'input', name: 'id', message: 'Ticket ID:', validate: Boolean },
675
+ }
676
+ export function buildDocsMenuChoices(docsInfo) {
677
+ const recent = docsInfo?.recent?.slice(0, DOCS_RECENT_LIMIT) ?? [];
678
+ const recentChoices = recent.map((doc) => ({
679
+ name: `Abrir ${chalk.bold(doc.title)}${doc.updated ? chalk.dim(` ${doc.updated}`) : ''}`,
680
+ value: `recent:${doc.slug}`,
681
+ short: doc.title,
682
+ }));
683
+ return [
684
+ ...recentChoices,
685
+ { name: 'Listar todos os docs publicados', value: 'list', short: 'Listar docs' },
686
+ { name: 'Buscar por slug', value: 'get', short: 'Buscar por slug' },
687
+ { name: 'Ler metadata por slug', value: 'meta', short: 'Ler metadata' },
688
+ { name: 'Voltar', value: 'back', short: 'Voltar' },
689
+ ];
690
+ }
691
+ async function docsMenu(docsInfo) {
692
+ for (;;) {
693
+ const answer = await inquirer.prompt([
552
694
  {
553
695
  type: 'list',
554
- name: 'to',
555
- message: 'Novo status:',
556
- choices: ['open', 'in_progress', 'resolved', 'closed'],
696
+ name: 'action',
697
+ message: 'Docs live',
698
+ choices: buildDocsMenuChoices(docsInfo),
557
699
  },
558
700
  ]);
559
- await support.runSupportTicketsStatus(id, { to });
701
+ if (answer.action === 'back')
702
+ return;
703
+ await runSubmenuAction(async () => {
704
+ const docs = await import('./docs.js');
705
+ if (answer.action.startsWith('recent:')) {
706
+ await docs.runDocsGet(answer.action.slice('recent:'.length), { metaOnly: false });
707
+ }
708
+ if (answer.action === 'list') {
709
+ await docs.runDocsList({});
710
+ }
711
+ if (answer.action === 'get' || answer.action === 'meta') {
712
+ const { slug } = await inquirer.prompt([
713
+ { type: 'input', name: 'slug', message: 'Slug do doc:', validate: Boolean },
714
+ ]);
715
+ await docs.runDocsGet(slug, { metaOnly: answer.action === 'meta' });
716
+ }
717
+ });
560
718
  }
561
- await pause();
562
719
  }
563
720
  async function healthMenu() {
564
- const answer = await inquirer.prompt([
565
- {
566
- type: 'list',
567
- name: 'action',
568
- message: 'Status e diagnostico',
569
- choices: [
570
- { name: 'Status das superficies', value: 'status' },
571
- { name: 'Doctor', value: 'doctor' },
572
- { name: 'Whoami', value: 'whoami' },
573
- { name: 'Voltar', value: 'back' },
574
- ],
575
- },
576
- ]);
577
- if (answer.action === 'back')
578
- return;
579
- if (answer.action === 'status') {
580
- const { runSurfaceStatus } = await import('./surface-status.js');
581
- await runSurfaceStatus({});
582
- }
583
- if (answer.action === 'doctor') {
584
- const doctor = await import('./doctor.js');
585
- const checks = [
586
- await doctor.checkToken(),
587
- await doctor.checkCoreHealth(),
588
- await doctor.checkConfigSchema(process.cwd()),
589
- await doctor.checkNeetruEnv(process.cwd()),
590
- await doctor.checkCliVersion(),
591
- ];
592
- log.heading('Doctor');
593
- for (const check of checks) {
594
- const marker = check.ok ? chalk.green('*') : check.warning ? chalk.yellow('!') : chalk.red('x');
595
- console.log(` ${marker} ${check.name}${check.detail ? chalk.dim(` - ${check.detail}`) : ''}`);
596
- }
597
- }
598
- if (answer.action === 'whoami') {
599
- const { runWhoami } = await import('./whoami.js');
600
- await runWhoami({});
721
+ for (;;) {
722
+ const answer = await inquirer.prompt([
723
+ {
724
+ type: 'list',
725
+ name: 'action',
726
+ message: 'Status e diagnostico',
727
+ choices: [
728
+ { name: 'Status das superficies', value: 'status' },
729
+ { name: 'Doctor', value: 'doctor' },
730
+ { name: 'Whoami', value: 'whoami' },
731
+ { name: 'Voltar', value: 'back' },
732
+ ],
733
+ },
734
+ ]);
735
+ if (answer.action === 'back')
736
+ return;
737
+ await runSubmenuAction(async () => {
738
+ if (answer.action === 'status') {
739
+ const { runSurfaceStatus } = await import('./surface-status.js');
740
+ await runSurfaceStatus({});
741
+ }
742
+ if (answer.action === 'doctor') {
743
+ const doctor = await import('./doctor.js');
744
+ const checks = [
745
+ await doctor.checkToken(),
746
+ await doctor.checkCoreHealth(),
747
+ await doctor.checkConfigSchema(process.cwd()),
748
+ await doctor.checkNeetruEnv(process.cwd()),
749
+ await doctor.checkCliVersion(),
750
+ ];
751
+ log.heading('Doctor');
752
+ for (const check of checks) {
753
+ const marker = check.ok ? chalk.green('*') : check.warning ? chalk.yellow('!') : chalk.red('x');
754
+ console.log(` ${marker} ${check.name}${check.detail ? chalk.dim(` - ${check.detail}`) : ''}`);
755
+ }
756
+ }
757
+ if (answer.action === 'whoami') {
758
+ const { runWhoami } = await import('./whoami.js');
759
+ await runWhoami({});
760
+ }
761
+ });
601
762
  }
602
- await pause();
603
763
  }
604
764
  async function authMenu() {
605
- const answer = await inquirer.prompt([
606
- {
607
- type: 'list',
608
- name: 'action',
609
- message: 'Login e configuracao',
610
- choices: [
611
- { name: 'Login', value: 'login' },
612
- { name: 'Logout', value: 'logout' },
613
- { name: 'Ver config', value: 'config' },
614
- { name: 'Caminho da config', value: 'path' },
615
- { name: 'Voltar', value: 'back' },
616
- ],
617
- },
618
- ]);
619
- if (answer.action === 'back')
620
- return;
621
- if (answer.action === 'login') {
622
- const { runLogin } = await import('./login.js');
623
- await runLogin({});
624
- }
625
- if (answer.action === 'logout') {
626
- const { runLogout } = await import('./logout.js');
627
- await runLogout();
628
- }
629
- if (answer.action === 'config') {
630
- const { configGet } = await import('./config.js');
631
- configGet();
632
- }
633
- if (answer.action === 'path') {
634
- const { configPath } = await import('./config.js');
635
- configPath();
765
+ for (;;) {
766
+ const answer = await inquirer.prompt([
767
+ {
768
+ type: 'list',
769
+ name: 'action',
770
+ message: 'Login e configuracao',
771
+ choices: [
772
+ { name: 'Login', value: 'login' },
773
+ { name: 'Logout', value: 'logout' },
774
+ { name: 'Ver config', value: 'config' },
775
+ { name: 'Caminho da config', value: 'path' },
776
+ { name: 'Voltar', value: 'back' },
777
+ ],
778
+ },
779
+ ]);
780
+ if (answer.action === 'back')
781
+ return;
782
+ await runSubmenuAction(async () => {
783
+ if (answer.action === 'login') {
784
+ const { runLogin } = await import('./login.js');
785
+ await runLogin({});
786
+ }
787
+ if (answer.action === 'logout') {
788
+ const { runLogout } = await import('./logout.js');
789
+ await runLogout();
790
+ }
791
+ if (answer.action === 'config') {
792
+ const { configGet } = await import('./config.js');
793
+ configGet();
794
+ }
795
+ if (answer.action === 'path') {
796
+ const { configPath } = await import('./config.js');
797
+ configPath();
798
+ }
799
+ });
636
800
  }
637
- await pause();
638
801
  }
639
802
  export async function runTerminalUi() {
640
803
  if (!canPrompt()) {
@@ -650,16 +813,17 @@ export async function runTerminalUi() {
650
813
  throw new CommandExitError(typeof code === 'number' ? code : 0);
651
814
  });
652
815
  try {
653
- const [email, version] = await Promise.all([
816
+ const [email, version, docsInfo] = await Promise.all([
654
817
  resolveSessionEmail(),
655
818
  checkForUpdate(),
819
+ loadDocsBannerInfo(),
656
820
  ]);
657
- log.banner(email, version);
821
+ log.banner(email, version, docsInfo);
658
822
  let running = true;
659
823
  while (running) {
660
824
  let answer;
661
825
  try {
662
- answer = await promptMainMenu(MAIN_MENU);
826
+ answer = await promptMainMenu(MAIN_MENU, { sessionEmail: email });
663
827
  }
664
828
  catch {
665
829
  // Ctrl+C / fechamento do prompt = o usuário encerrando por vontade
@@ -695,6 +859,8 @@ export async function runTerminalUi() {
695
859
  await safeRun(tenantsMenu, { pauseAfter: false });
696
860
  if (answer.action === 'support')
697
861
  await safeRun(supportMenu, { pauseAfter: false });
862
+ if (answer.action === 'docs')
863
+ await safeRun(() => docsMenu(docsInfo), { pauseAfter: false });
698
864
  if (answer.action === 'health')
699
865
  await safeRun(healthMenu, { pauseAfter: false });
700
866
  if (answer.action === 'auth')
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"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"}
@@ -137,9 +137,9 @@ export declare const catalogUpsertPayloadSchema: z.ZodObject<{
137
137
  status: "beta" | "soon" | "live";
138
138
  slug: string;
139
139
  published: boolean;
140
+ order: number;
140
141
  tagline: string;
141
142
  iconKey: "spark" | "activity" | "factory" | "chart" | "shield" | "target" | "trending";
142
- order: number;
143
143
  ctaHref?: string | undefined;
144
144
  ctaLabel?: string | undefined;
145
145
  }, {
@@ -148,9 +148,9 @@ export declare const catalogUpsertPayloadSchema: z.ZodObject<{
148
148
  status: "beta" | "soon" | "live";
149
149
  slug: string;
150
150
  published: boolean;
151
+ order: number;
151
152
  tagline: string;
152
153
  iconKey: "spark" | "activity" | "factory" | "chart" | "shield" | "target" | "trending";
153
- order: number;
154
154
  ctaHref?: string | undefined;
155
155
  ctaLabel?: string | undefined;
156
156
  }>;
@@ -1,4 +1,13 @@
1
1
  import type { VersionInfo } from '../lib/version-check.js';
2
+ export interface DocsBannerInfo {
3
+ count?: number;
4
+ recent?: Array<{
5
+ title: string;
6
+ slug: string;
7
+ updated?: string;
8
+ }>;
9
+ message?: string;
10
+ }
2
11
  export declare const log: {
3
12
  info: (msg: string) => void;
4
13
  success: (msg: string) => void;
@@ -18,7 +27,7 @@ export declare const log: {
18
27
  * Logo, sessão e versão só aparecem nos pontos de entrada (`neetru`
19
28
  * interativo / help), que passam esses argumentos.
20
29
  */
21
- banner(session?: string | null, version?: VersionInfo): void;
30
+ banner(session?: string | null, version?: VersionInfo, docs?: DocsBannerInfo): void;
22
31
  separator(): void;
23
32
  stream: (chunk: string) => boolean;
24
33
  newline: () => boolean;
@@ -4,6 +4,45 @@ import { renderNeetruLogo } from './logo.js';
4
4
  const brand = chalk.hex('#1E90FF');
5
5
  const brandDim = chalk.hex('#1E90FF').dim;
6
6
  const ink = chalk.hex('#07090D');
7
+ const asideText = chalk.hex('#CBD5E1');
8
+ function visibleLength(text) {
9
+ return Array.from(text.replace(/\x1B\[[0-?]*[ -/]*[@-~]/g, '')).length;
10
+ }
11
+ function padEndVisible(text, width) {
12
+ return text + ' '.repeat(Math.max(0, width - visibleLength(text)));
13
+ }
14
+ function renderLogoAside(lines) {
15
+ const logoLines = renderNeetruLogo().split('\n');
16
+ const logoWidth = Math.max(...logoLines.map(visibleLength));
17
+ const rows = Math.max(logoLines.length, lines.length);
18
+ const gap = ' ';
19
+ return Array.from({ length: rows }, (_, i) => {
20
+ const logo = logoLines[i] ?? '';
21
+ const aside = lines[i] ?? '';
22
+ return `${padEndVisible(logo, logoWidth)}${gap}${aside}`.trimEnd();
23
+ }).join('\n');
24
+ }
25
+ function renderDocsBannerLines(docs) {
26
+ if (!docs)
27
+ return [];
28
+ if (docs.message) {
29
+ return [
30
+ asideText('Docs live'),
31
+ chalk.dim(`|____ ${docs.message}`),
32
+ ];
33
+ }
34
+ if (typeof docs.count !== 'number')
35
+ return [];
36
+ const lines = [
37
+ asideText('Docs live'),
38
+ chalk.dim(`|____ ${docs.count} publicados no Core`),
39
+ ];
40
+ for (const doc of docs.recent?.slice(0, 2) ?? []) {
41
+ const updated = doc.updated ? ` ${doc.updated}` : '';
42
+ lines.push(chalk.dim(`|____ ${doc.title}${updated}`));
43
+ }
44
+ return lines;
45
+ }
7
46
  export const log = {
8
47
  info: (msg) => console.log(` ${chalk.blue('ℹ')} ${msg}`),
9
48
  success: (msg) => console.log(` ${chalk.green('✓')} ${msg}`),
@@ -23,11 +62,25 @@ export const log = {
23
62
  * Logo, sessão e versão só aparecem nos pontos de entrada (`neetru`
24
63
  * interativo / help), que passam esses argumentos.
25
64
  */
26
- banner(session, version) {
65
+ banner(session, version, docs) {
27
66
  console.log();
28
67
  if (session !== undefined) {
29
- console.log(renderNeetruLogo());
68
+ const versionTag = version ? ` · v${version.current}` : '';
69
+ const lines = [
70
+ brand.bold('◆ Neetru CLI'),
71
+ '',
72
+ asideText(`Developer Kit · neetru.com${versionTag}`),
73
+ session
74
+ ? `${chalk.green('●')} ${asideText('logado como')} ${asideText(session)}`
75
+ : `${chalk.yellow('○')} ${asideText('sem login -')} ${chalk.cyan('neetru login')}`,
76
+ ...renderDocsBannerLines(docs),
77
+ ];
78
+ if (version?.updateAvailable && version.latest) {
79
+ lines.push(`${chalk.yellow(`nova versão disponível: v${version.latest}`)} ${chalk.dim('rode')} ${chalk.cyan('neetru upgrade')}`);
80
+ }
81
+ console.log(renderLogoAside(lines));
30
82
  console.log();
83
+ return;
31
84
  }
32
85
  console.log(brand.bold(' ◆ Neetru CLI'));
33
86
  const versionTag = version ? chalk.dim(` · v${version.current}`) : '';
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG7C,gBAAgB;AAChB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;AAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACjC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAQvC,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AACzE,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,KAAa;IAChD,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,eAAe,CAAC,KAAe;IACtC,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,UAAU,CAAC;IAEvB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAqB;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO;YACL,SAAS,CAAC,WAAW,CAAC;YACtB,KAAK,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;SACnC,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAE9C,MAAM,KAAK,GAAG;QACZ,SAAS,CAAC,WAAW,CAAC;QACtB,KAAK,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,KAAK,qBAAqB,CAAC;KACpD,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IACjE,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IACrE,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IACnE,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IACnE,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IAExD,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAE7D;;;;;;;;;;OAUG;IACH,MAAM,CAAC,OAAuB,EAAE,OAAqB,EAAE,IAAqB;QAC1E,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG;gBACZ,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC1B,EAAE;gBACF,SAAS,CAAC,6BAA6B,UAAU,EAAE,CAAC;gBACpD,OAAO;oBACL,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE;oBACzE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;gBACpF,GAAG,qBAAqB,CAAC,IAAI,CAAC;aAC/B,CAAC;YACF,IAAI,OAAO,EAAE,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC/C,KAAK,CAAC,IAAI,CACR,GAAG,KAAK,CAAC,MAAM,CAAC,4BAA4B,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CACrH,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,GAAG,UAAU,CAAC,CAAC;QACpE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CACT,OAAO;gBACL,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,EAAE;gBAChE,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CACvF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,EAAE,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,MAAM,CAAC,8BAA8B,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;gBACjE,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAC5D,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,SAAS;QACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,4CAA4C;IAC5C,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;IACtD,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;CAC1C,CAAC"}
@@ -1,4 +1,4 @@
1
- export declare const LOGO_OUTLINE_COLOR = "#001F3F";
1
+ export declare const LOGO_OUTLINE_COLOR = "#334C65";
2
2
  export declare function resolveLogoColor(hex: string): string;
3
3
  /**
4
4
  * Renderiza o logo Neetru como string ANSI truecolor (10 linhas), pronta
@@ -5,7 +5,7 @@
5
5
  * NÃO editar à mão — rode o script pra regenerar.
6
6
  */
7
7
  import chalk from 'chalk';
8
- export const LOGO_OUTLINE_COLOR = '#001F3F';
8
+ export const LOGO_OUTLINE_COLOR = '#334C65';
9
9
  const OUTLINE_COLORS = new Set([
10
10
  '#445dae',
11
11
  '#445cb0',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neetru/cli",
3
- "version": "2.7.2",
3
+ "version": "2.7.3",
4
4
  "type": "module",
5
5
  "description": "Neetru Developer Kit — scaffold, AI assistant, publish, build e deploy de produtos SaaS Neetru via Core (VM-based agents)",
6
6
  "keywords": [