@neetru/cli 2.25.0 → 2.26.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.
@@ -7,6 +7,8 @@
7
7
  * - Modo polling NDJSON (fallback): poll a cada 5s com `after=<lastTs>`.
8
8
  * Saída NDJSON (`--json`): imprime cada LogEntry como JSON line.
9
9
  */
10
+ import { existsSync, readFileSync, statSync, openSync, readSync, closeSync } from 'node:fs';
11
+ import { join } from 'node:path';
10
12
  import chalk from 'chalk';
11
13
  import { apiRequest, CliApiError, CliNetworkError } from '../lib/api-client.js';
12
14
  import { config } from '../lib/config.js';
@@ -48,6 +50,160 @@ function printLog(entry, jsonMode) {
48
50
  const src = entry.source ? chalk.dim(`[${entry.source}]`) : '';
49
51
  console.log(`${chalk.dim(ts)} ${color(lvl)} ${src} ${entry.message}`);
50
52
  }
53
+ // ── Dev Suite — leitura do NDJSON local do emulador (`neetru dev up`) ─────────
54
+ // Pareia com o coletor do Core (`.neetru/dev/logs.ndjson`), que espelha o log
55
+ // estruturado quando NEETRU_ENV=dev-local. O CLI lê esse arquivo direto, sem
56
+ // tocar em rede/auth — é o "observável sob demanda" do backstage local.
57
+ /** Caminho default do NDJSON local (bate com o DEFAULT_LOG_PATH do coletor do Core). */
58
+ function resolveLocalLogPath(local) {
59
+ if (typeof local === 'string' && local.length > 0)
60
+ return local;
61
+ return process.env.LOG_COLLECTOR_PATH ?? join('.neetru', 'dev', 'logs.ndjson');
62
+ }
63
+ /** Mapeia `severity` do Core (INFO/WARNING/...) pro `level` do CLI (info/warn/...). */
64
+ function severityToLevel(sev) {
65
+ if (typeof sev !== 'string')
66
+ return undefined;
67
+ switch (sev.toUpperCase()) {
68
+ case 'DEBUG': return 'debug';
69
+ case 'INFO':
70
+ case 'NOTICE': return 'info';
71
+ case 'WARNING':
72
+ case 'WARN': return 'warn';
73
+ case 'ERROR': return 'error';
74
+ case 'CRITICAL':
75
+ case 'FATAL': return 'fatal';
76
+ default: return sev.toLowerCase();
77
+ }
78
+ }
79
+ /**
80
+ * Normaliza uma linha crua do NDJSON local pro shape `LogEntry`. Aceita tanto o
81
+ * shape do Core (`severity`/`event`/`service`) quanto um `LogEntry` já pronto
82
+ * (`level`/`source`). Campos não-mapeados viram `metadata`.
83
+ */
84
+ export function normalizeLocalEntry(raw) {
85
+ const { timestamp, level, severity, message, event, source, service, ...rest } = raw;
86
+ return {
87
+ timestamp: typeof timestamp === 'string' ? timestamp : new Date().toISOString(),
88
+ level: (typeof level === 'string' ? level : undefined) ?? severityToLevel(severity),
89
+ message: typeof message === 'string' ? message
90
+ : typeof event === 'string' ? event
91
+ : '(sem mensagem)',
92
+ source: (typeof source === 'string' ? source : undefined)
93
+ ?? (typeof service === 'string' ? service : undefined),
94
+ metadata: Object.keys(rest).length > 0 ? rest : undefined,
95
+ };
96
+ }
97
+ function passesLevel(entry, level) {
98
+ if (!level)
99
+ return true;
100
+ return (entry.level ?? 'info').toLowerCase() === level.toLowerCase();
101
+ }
102
+ /**
103
+ * Lê o NDJSON local, parseia linha a linha (ignora malformadas), filtra por
104
+ * `level` e retorna as últimas `lines` entradas normalizadas.
105
+ */
106
+ export function readLocalNdjson(filePath, opts = {}) {
107
+ if (!existsSync(filePath))
108
+ return [];
109
+ const entries = [];
110
+ for (const line of readFileSync(filePath, 'utf8').split('\n')) {
111
+ const t = line.trim();
112
+ if (!t)
113
+ continue;
114
+ let parsed;
115
+ try {
116
+ parsed = JSON.parse(t);
117
+ }
118
+ catch {
119
+ continue;
120
+ }
121
+ const entry = normalizeLocalEntry(parsed);
122
+ if (passesLevel(entry, opts.level))
123
+ entries.push(entry);
124
+ }
125
+ const n = opts.lines && opts.lines > 0 ? opts.lines : entries.length;
126
+ return entries.slice(-n);
127
+ }
128
+ /** Modo `--local`: lê o NDJSON do emulador, imprime, e faz tail se `--follow`. */
129
+ async function runLocalLogs(opts) {
130
+ const jsonMode = opts.json ?? false;
131
+ const filePath = resolveLocalLogPath(opts.local ?? true);
132
+ const lines = Math.max(1, Math.min(1000, Number.parseInt(opts.lines ?? '50', 10) || 50));
133
+ if (!existsSync(filePath)) {
134
+ if (!jsonMode) {
135
+ log.error(`Nenhum coletor local em ${filePath}.`);
136
+ log.dim(' Suba o emulador (`neetru dev up`, NEETRU_ENV=dev-local) pra gerar logs.');
137
+ }
138
+ return;
139
+ }
140
+ const initial = readLocalNdjson(filePath, { lines, level: opts.level });
141
+ if (initial.length === 0 && !jsonMode)
142
+ log.dim(' Nenhum log local no arquivo.');
143
+ else
144
+ for (const e of initial)
145
+ printLog(e, jsonMode);
146
+ if (!opts.follow)
147
+ return;
148
+ // Tail por polling do tamanho do arquivo (robusto no Windows; ~igual ao remoto).
149
+ if (!jsonMode)
150
+ log.dim(' Aguardando novos logs locais… (Ctrl+C para sair)');
151
+ let offset = statSync(filePath).size;
152
+ let stopped = false;
153
+ const onSigint = () => { stopped = true; };
154
+ process.once('SIGINT', onSigint);
155
+ try {
156
+ while (!stopped) {
157
+ await new Promise((r) => setTimeout(r, 1000));
158
+ if (stopped)
159
+ break;
160
+ if (!existsSync(filePath))
161
+ continue;
162
+ let size;
163
+ try {
164
+ size = statSync(filePath).size;
165
+ }
166
+ catch {
167
+ continue;
168
+ }
169
+ if (size < offset)
170
+ offset = 0; // rotacionou/truncou
171
+ if (size <= offset)
172
+ continue;
173
+ const fd = openSync(filePath, 'r');
174
+ const buf = Buffer.alloc(size - offset);
175
+ try {
176
+ readSync(fd, buf, 0, buf.length, offset);
177
+ }
178
+ finally {
179
+ closeSync(fd);
180
+ }
181
+ offset = size;
182
+ for (const line of buf.toString('utf8').split('\n')) {
183
+ const t = line.trim();
184
+ if (!t)
185
+ continue;
186
+ let parsed;
187
+ try {
188
+ parsed = JSON.parse(t);
189
+ }
190
+ catch {
191
+ continue;
192
+ }
193
+ const entry = normalizeLocalEntry(parsed);
194
+ if (passesLevel(entry, opts.level))
195
+ printLog(entry, jsonMode);
196
+ }
197
+ }
198
+ }
199
+ finally {
200
+ process.removeListener('SIGINT', onSigint);
201
+ }
202
+ if (!jsonMode) {
203
+ process.stdout.write('\n');
204
+ log.dim(' tail local encerrado.');
205
+ }
206
+ }
51
207
  async function fetchLogs(clientId, params) {
52
208
  const qs = new URLSearchParams({
53
209
  clientId,
@@ -256,6 +412,11 @@ async function runPollingFollow(clientId, lastTs, lines, opts, jsonMode) {
256
412
  }
257
413
  }
258
414
  export async function runLogs(opts) {
415
+ // Dev Suite: `--local` lê o NDJSON do emulador e curto-circuita rede/auth.
416
+ if (opts.local !== undefined && opts.local !== false) {
417
+ await runLocalLogs(opts);
418
+ return;
419
+ }
259
420
  if (!opts.clientId && !opts.product) {
260
421
  log.error('Informe --product <slug> ou --client-id <oauthClientId>.');
261
422
  safeExit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export interface WebhooksRegisterOptions {
2
+ productId: string;
3
+ url: string;
4
+ events: string[];
5
+ secret?: string;
6
+ json?: boolean;
7
+ }
8
+ export declare function runWebhooksRegister(opts: WebhooksRegisterOptions): Promise<void>;
9
+ export interface WebhooksListOptions {
10
+ productId: string;
11
+ json?: boolean;
12
+ }
13
+ export declare function runWebhooksList(opts: WebhooksListOptions): Promise<void>;
14
+ export interface WebhooksUnregisterOptions {
15
+ id: string;
16
+ productId: string;
17
+ json?: boolean;
18
+ }
19
+ export declare function runWebhooksUnregister(opts: WebhooksUnregisterOptions): Promise<void>;
20
+ export interface WebhooksTestOptions {
21
+ id: string;
22
+ productId: string;
23
+ event?: string;
24
+ json?: boolean;
25
+ }
26
+ export declare function runWebhooksTest(opts: WebhooksTestOptions): Promise<void>;
27
+ export interface WebhooksDeliveriesOptions {
28
+ id: string;
29
+ productId: string;
30
+ status?: string;
31
+ limit?: number;
32
+ json?: boolean;
33
+ }
34
+ export declare function runWebhooksDeliveries(opts: WebhooksDeliveriesOptions): Promise<void>;
@@ -0,0 +1,162 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { apiRequest } from '../lib/api-client.js';
4
+ import { requireToken, handleApiError } from '../lib/cli-read.js';
5
+ import { renderTable } from '../lib/render.js';
6
+ import { log } from '../utils/logger.js';
7
+ const ALL_EVENTS = [
8
+ 'subscription.activated',
9
+ 'subscription.cancelled',
10
+ 'subscription.payment_failed',
11
+ 'subscription.trial_ending',
12
+ 'usage.quota_exceeded',
13
+ 'account.suspended',
14
+ 'account.reactivated',
15
+ 'support.ticket_replied',
16
+ ];
17
+ export async function runWebhooksRegister(opts) {
18
+ const token = await requireToken(opts.json);
19
+ const spinner = opts.json ? null : ora({ text: 'Registrando webhook…', color: 'blue' }).start();
20
+ let res;
21
+ try {
22
+ res = await apiRequest('/api/cli/v1/webhooks', {
23
+ method: 'POST',
24
+ token,
25
+ body: {
26
+ productId: opts.productId,
27
+ url: opts.url,
28
+ events: opts.events,
29
+ secret: opts.secret,
30
+ },
31
+ });
32
+ spinner?.stop();
33
+ }
34
+ catch (error) {
35
+ spinner?.fail('Falha ao registrar webhook.');
36
+ handleApiError(error, opts.json);
37
+ }
38
+ if (opts.json) {
39
+ console.log(JSON.stringify(res));
40
+ return;
41
+ }
42
+ log.success('Webhook registrado com sucesso.');
43
+ console.log(` ${chalk.dim('ID:')} ${res.id}`);
44
+ console.log(` ${chalk.dim('URL:')} ${res.url}`);
45
+ console.log(` ${chalk.dim('Eventos:')} ${res.events.join(', ')}`);
46
+ console.log(` ${chalk.dim('Secret:')} ${res.hasSecret ? chalk.green('definido') : chalk.yellow('nenhum')}`);
47
+ console.log(` ${chalk.dim('Status:')} ${res.status}`);
48
+ }
49
+ export async function runWebhooksList(opts) {
50
+ const token = await requireToken(opts.json);
51
+ const spinner = opts.json ? null : ora({ text: 'Buscando webhooks…', color: 'blue' }).start();
52
+ let res;
53
+ try {
54
+ res = await apiRequest(`/api/cli/v1/webhooks?productId=${encodeURIComponent(opts.productId)}`, { token });
55
+ spinner?.stop();
56
+ }
57
+ catch (error) {
58
+ spinner?.fail('Falha ao listar webhooks.');
59
+ handleApiError(error, opts.json);
60
+ }
61
+ if (opts.json) {
62
+ console.log(JSON.stringify(res));
63
+ return;
64
+ }
65
+ if (res.count === 0) {
66
+ log.info('Nenhum webhook registrado para este produto.');
67
+ return;
68
+ }
69
+ log.heading(`Webhooks — ${res.productId} (${res.count})`);
70
+ renderTable([
71
+ { header: 'ID', value: (e) => e.id, maxWidth: 24 },
72
+ { header: 'URL', value: (e) => e.url, maxWidth: 48 },
73
+ { header: 'EVENTOS', value: (e) => e.events.join(', '), maxWidth: 36 },
74
+ { header: 'SECRET', value: (e) => (e.hasSecret ? chalk.green('sim') : chalk.yellow('não')) },
75
+ { header: 'STATUS', value: (e) => e.status === 'active' ? chalk.green(e.status) : chalk.red(e.status) },
76
+ { header: 'FALHAS', value: (e) => String(e.consecutiveFailures) },
77
+ ], res.endpoints);
78
+ }
79
+ export async function runWebhooksUnregister(opts) {
80
+ const token = await requireToken(opts.json);
81
+ const spinner = opts.json ? null : ora({ text: 'Removendo webhook…', color: 'yellow' }).start();
82
+ let res;
83
+ try {
84
+ res = await apiRequest(`/api/cli/v1/webhooks/${encodeURIComponent(opts.id)}?productId=${encodeURIComponent(opts.productId)}`, { method: 'DELETE', token });
85
+ spinner?.stop();
86
+ }
87
+ catch (error) {
88
+ spinner?.fail('Falha ao remover webhook.');
89
+ handleApiError(error, opts.json);
90
+ }
91
+ if (opts.json) {
92
+ console.log(JSON.stringify(res));
93
+ return;
94
+ }
95
+ log.success('Webhook removido.');
96
+ }
97
+ export async function runWebhooksTest(opts) {
98
+ const token = await requireToken(opts.json);
99
+ const spinner = opts.json ? null : ora({ text: 'Disparando evento de teste…', color: 'blue' }).start();
100
+ let res;
101
+ try {
102
+ res = await apiRequest(`/api/cli/v1/webhooks/${encodeURIComponent(opts.id)}/test?productId=${encodeURIComponent(opts.productId)}`, {
103
+ method: 'POST',
104
+ token,
105
+ body: opts.event ? { productId: opts.productId, event: opts.event } : { productId: opts.productId },
106
+ });
107
+ spinner?.stop();
108
+ }
109
+ catch (error) {
110
+ spinner?.fail('Falha ao disparar teste.');
111
+ handleApiError(error, opts.json);
112
+ }
113
+ if (opts.json) {
114
+ console.log(JSON.stringify(res));
115
+ return;
116
+ }
117
+ log.success(`Evento de teste "${res.eventType}" enfileirado (${res.eventId}).`);
118
+ console.log(` A entrega é assíncrona. Consulte ${chalk.cyan('neetru webhooks deliveries')} para ver o resultado.`);
119
+ }
120
+ export async function runWebhooksDeliveries(opts) {
121
+ const token = await requireToken(opts.json);
122
+ const params = new URLSearchParams({ productId: opts.productId });
123
+ if (opts.status)
124
+ params.set('status', opts.status);
125
+ if (opts.limit)
126
+ params.set('limit', String(opts.limit));
127
+ const spinner = opts.json ? null : ora({ text: 'Buscando entregas…', color: 'blue' }).start();
128
+ let res;
129
+ try {
130
+ res = await apiRequest(`/api/cli/v1/webhooks/${encodeURIComponent(opts.id)}/deliveries?${params.toString()}`, { token });
131
+ spinner?.stop();
132
+ }
133
+ catch (error) {
134
+ spinner?.fail('Falha ao listar entregas.');
135
+ handleApiError(error, opts.json);
136
+ }
137
+ if (opts.json) {
138
+ console.log(JSON.stringify(res));
139
+ return;
140
+ }
141
+ if (res.count === 0) {
142
+ log.info('Nenhuma entrega encontrada para este endpoint.');
143
+ return;
144
+ }
145
+ log.heading(`Entregas — ${res.endpointId} (${res.count})`);
146
+ renderTable([
147
+ { header: 'EVENTO', value: (d) => d.eventType ?? d.eventId.slice(0, 8), maxWidth: 28 },
148
+ { header: 'STATUS', value: (d) => {
149
+ switch (d.status) {
150
+ case 'delivered': return chalk.green(d.status);
151
+ case 'failed': return chalk.red(d.status);
152
+ case 'dead': return chalk.red.bold(d.status);
153
+ case 'delivering': return chalk.yellow(d.status);
154
+ default: return chalk.dim(d.status);
155
+ }
156
+ } },
157
+ { header: 'TENTATIVAS', value: (d) => `${d.attempts}${d.maxAttempts ? `/${d.maxAttempts}` : ''}` },
158
+ { header: 'CÓDIGO', value: (d) => d.lastStatusCode != null ? String(d.lastStatusCode) : '-' },
159
+ { header: 'ERRO', value: (d) => d.lastError ?? '-', maxWidth: 32 },
160
+ ], res.deliveries);
161
+ }
162
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/commands/webhooks.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,12 +3,15 @@ import { Command } from 'commander';
3
3
  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
- import { safeExit } from './utils/safe-exit.js';
7
- // safeExit() em src/utils/safe-exit.ts já faz cleanupHandles() que destrói
8
- // stdin ANTES do process.exit(). O handler 'exit' abaixo causava double-destroy
9
- // (safeExit → cleanupHandles → stdin.destroy() → process.exit → handler exit
10
- // → stdin.destroy() de novo), disparando UV_HANDLE_CLOSING no Windows.
11
- // Removido em bug_818cf6d / bug_6362578e fix definitivo (2026-07-15).
6
+ import { safeExit, isSafeExitHalt } from './utils/safe-exit.js';
7
+ // UV_HANDLE_CLOSING no Windows (bug_818cf6d): o double-destroy de stdin (handler
8
+ // 'exit' redundante) foi removido em 2026-07-15 (ddd479f), MAS isso não bastou
9
+ // — a causa dominante é o `uv_async_t` do undici (fetch) ainda vivo quando o
10
+ // `process.exit()` roda SÍNCRONO. Fix real (2026-07-16, re-confirmado por repro
11
+ // empírico 6/6): `safeExit()` em produção DEFERE o exit um macrotask (~100ms) e
12
+ // lança `SafeExitHalt`; os traps globais abaixo engolem o sinal — e deferem
13
+ // também qualquer erro não-tratado, que senão dispararia o mesmo crash pelo
14
+ // exit síncrono default do Node.
12
15
  // H-01 fix (Opus review 2026-05-27): instala flush hook NO ENTRY-POINT,
13
16
  // antes de qualquer parse. Garante que beforeExit + exit hooks estao armados
14
17
  // pra TODOS os caminhos — sucesso, falha via safeExit, ou exit direto.
@@ -16,6 +19,26 @@ import { safeExit } from './utils/safe-exit.js';
16
19
  // pulava safeExit(N != 0) — feature CLI telemetry capturava ~ε% do
17
20
  // que se propunha a medir.
18
21
  installTelemetryFlushHook();
22
+ // ── Traps globais de saída (bug_818cf6d / UV_HANDLE_CLOSING) ──────────────
23
+ // `safeExit()` lança `SafeExitHalt` em produção pra parar o caller sem
24
+ // `process.exit()` síncrono (que crasharia o undici no Windows). Aqui só
25
+ // engolimos o sinal — o `setTimeout` agendado dentro do `safeExit` faz a saída
26
+ // real. Qualquer OUTRO erro não-tratado é logado (com stack) e sai com exit
27
+ // DEFERIDO pelo mesmo motivo. `log.error` vai em try/catch pra nunca re-entrar.
28
+ function handleFatalSignal(err) {
29
+ if (isSafeExitHalt(err))
30
+ return; // saída já agendada dentro do safeExit
31
+ try {
32
+ log.error(err instanceof Error ? (err.stack ?? err.message) : String(err));
33
+ }
34
+ catch {
35
+ /* logger indisponível — segue direto pro exit deferido */
36
+ }
37
+ process.exitCode = 1;
38
+ setTimeout(() => process.exit(1), 100);
39
+ }
40
+ process.on('uncaughtException', handleFatalSignal);
41
+ process.on('unhandledRejection', handleFatalSignal);
19
42
  const program = new Command();
20
43
  program
21
44
  .name('neetru')
@@ -271,12 +294,11 @@ program
271
294
  // ── neetru dev ────────────────────────────────────────────────────────
272
295
  // `neetru dev` (sem subcomando) = banco local Docker + watch de schema (M1
273
296
  // GAP-M1-4) — comportamento legado preservado (action + options intactos).
274
- // `neetru dev up` = emulador local completo (Firebase Emulators + Core),
275
- // estilo `firebase emulators` (ENG_REVERSA_CLI F-EMU/P0). Subcomando aditivo:
276
- // a action de `dev` só dispara quando nenhum subcomando casa.
297
+ // `neetru dev up` = ambiente dev-local (banco + agente) via Docker Compose.
298
+ // Subcomando aditivo: a action de `dev` só dispara quando nenhum subcomando casa.
277
299
  const devCmd = program
278
300
  .command('dev')
279
- .description('Ambiente de dev local — banco Docker (default) ou emulador completo (`dev up`)')
301
+ .description('Ambiente de dev local — banco Docker (default) ou ambiente completo (`dev up`)')
280
302
  .option('--db <name>', 'banco alvo do .neetru/db.json (default: único registrado)')
281
303
  .option('--schema <path>', 'caminho do arquivo de schema (default: db/schema.ts)')
282
304
  .action(async (opts) => {
@@ -285,22 +307,12 @@ const devCmd = program
285
307
  });
286
308
  devCmd
287
309
  .command('up')
288
- .description('Subir emulador local completo (Firebase Emulators + Core Next.js) — 100% offline')
289
- .option('--only <emus>', 'emuladores a subir (default: contexto dev ou firestore,auth,functions)')
290
- .option('--core-port <port>', 'porta do Core (default 9003)')
291
- .option('--core-path <path>', 'diretório do Core (default: cwd; precisa ter firebase.json)')
292
- .option('--skip-core', 'só os emuladores, sem subir o Core')
293
- .option('--import <dir>', 'importa estado dos emuladores deste diretório (seed portátil)')
294
- .option('--export-on-exit <dir>', 'exporta o estado dos emuladores ao sair (snapshot)')
310
+ .description('Sobe o ambiente dev-local (banco + agente) via Docker Compose')
311
+ .option('--core-port <port>', 'porta do app SaaS local (default 3000)')
295
312
  .action(async (opts) => {
296
313
  const { runDevUp } = await import('./commands/dev-up.js');
297
314
  await runDevUp({
298
- only: opts.only,
299
315
  corePort: opts.corePort ? Number(opts.corePort) : undefined,
300
- corePath: opts.corePath,
301
- skipCore: Boolean(opts.skipCore),
302
- importDir: opts.import,
303
- exportOnExit: opts.exportOnExit,
304
316
  });
305
317
  });
306
318
  devCmd
@@ -1409,6 +1421,7 @@ program
1409
1421
  .option('--channel <channel>', 'filtrar por channel (stdout | stderr | app)')
1410
1422
  .option('--correlation-id <id>', 'filtrar por correlationId (UUID)')
1411
1423
  .option('--json', 'saída em JSON (NDJSON linha a linha, útil para pipes)')
1424
+ .option('--local [path]', 'ler NDJSON local do emulador (dev up) em vez do Core; default .neetru/dev/logs.ndjson')
1412
1425
  .action(async (opts) => {
1413
1426
  const { runLogs } = await import('./commands/logs.js');
1414
1427
  await runLogs({
@@ -1422,6 +1435,7 @@ program
1422
1435
  channel: opts.channel,
1423
1436
  correlationId: opts.correlationId,
1424
1437
  json: !!opts.json,
1438
+ local: opts.local,
1425
1439
  });
1426
1440
  });
1427
1441
  // ── neetru vm ─────────────────────────────────────────────────────────
@@ -2361,6 +2375,79 @@ docsCmd
2361
2375
  json: !!opts.json,
2362
2376
  });
2363
2377
  });
2378
+ // ── neetru webhooks ──────────────────────────────────────────────────
2379
+ // Produtos SaaS registram endpoints de webhook pra receber eventos do Core.
2380
+ const webhooksCmd = program
2381
+ .command('webhooks')
2382
+ .description('Gerenciar webhooks de produto (register/list/unregister/test)');
2383
+ webhooksCmd
2384
+ .command('register')
2385
+ .description('Registrar endpoint de webhook para receber eventos do Core')
2386
+ .requiredOption('--product-id <id>', 'ID do produto')
2387
+ .requiredOption('--url <url>', 'URL do endpoint que receberá os eventos')
2388
+ .requiredOption('--events <csv>', 'eventos separados por vírgula')
2389
+ .option('--secret <secret>', 'segredo HMAC para assinar payloads (gerado automaticamente se omitido)')
2390
+ .option('--json', 'saída em JSON')
2391
+ .action(async (opts) => {
2392
+ const { runWebhooksRegister } = await import('./commands/webhooks.js');
2393
+ await runWebhooksRegister({
2394
+ productId: opts.productId,
2395
+ url: opts.url,
2396
+ events: opts.events.split(',').map((s) => s.trim()),
2397
+ secret: opts.secret,
2398
+ json: !!opts.json,
2399
+ });
2400
+ });
2401
+ webhooksCmd
2402
+ .command('list')
2403
+ .description('Listar endpoints de webhook registrados para um produto')
2404
+ .requiredOption('--product-id <id>', 'ID do produto')
2405
+ .option('--json', 'saída em JSON')
2406
+ .action(async (opts) => {
2407
+ const { runWebhooksList } = await import('./commands/webhooks.js');
2408
+ await runWebhooksList({ productId: opts.productId, json: !!opts.json });
2409
+ });
2410
+ webhooksCmd
2411
+ .command('unregister <id>')
2412
+ .description('Remover endpoint de webhook')
2413
+ .requiredOption('--product-id <id>', 'ID do produto')
2414
+ .option('--json', 'saída em JSON')
2415
+ .action(async (id, opts) => {
2416
+ const { runWebhooksUnregister } = await import('./commands/webhooks.js');
2417
+ await runWebhooksUnregister({ id, productId: opts.productId, json: !!opts.json });
2418
+ });
2419
+ webhooksCmd
2420
+ .command('test <id>')
2421
+ .description('Disparar evento de teste para um endpoint')
2422
+ .requiredOption('--product-id <id>', 'ID do produto')
2423
+ .option('--event <event>', 'evento específico a testar (default: primeiro inscrito)')
2424
+ .option('--json', 'saída em JSON')
2425
+ .action(async (id, opts) => {
2426
+ const { runWebhooksTest } = await import('./commands/webhooks.js');
2427
+ await runWebhooksTest({
2428
+ id,
2429
+ productId: opts.productId,
2430
+ event: opts.event,
2431
+ json: !!opts.json,
2432
+ });
2433
+ });
2434
+ webhooksCmd
2435
+ .command('deliveries <id>')
2436
+ .description('Histórico de entregas de um endpoint')
2437
+ .requiredOption('--product-id <id>', 'ID do produto')
2438
+ .option('--status <status>', 'filtrar por status: pending | delivering | delivered | failed | dead')
2439
+ .option('--limit <n>', 'máximo de eventos (1-100)', '20')
2440
+ .option('--json', 'saída em JSON')
2441
+ .action(async (id, opts) => {
2442
+ const { runWebhooksDeliveries } = await import('./commands/webhooks.js');
2443
+ await runWebhooksDeliveries({
2444
+ id,
2445
+ productId: opts.productId,
2446
+ status: opts.status,
2447
+ limit: opts.limit ? parseInt(opts.limit, 10) : undefined,
2448
+ json: !!opts.json,
2449
+ });
2450
+ });
2364
2451
  // ── neetru domains ──────────────────────────────────────────────────
2365
2452
  // Devs/IAs gerem os domínios de ambiente dos seus produtos (lista/reconcile/retry).
2366
2453
  const domainsCmd = program