@neetru/cli 2.5.0 → 2.7.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,15 @@ export interface LogsOptions {
4
4
  lines?: string;
5
5
  since?: string;
6
6
  level?: string;
7
- /** v1.3filtrar por productId (corresponde a `logs/{productId}/...`). */
7
+ /** slug do produto logs de runtime em `logs/{productId}/...`. */
8
8
  product?: string;
9
+ /** estágio do ambiente (dev|staging|prod) — filtro do modo produto. */
10
+ env?: string;
9
11
  /** v1.3 — filtrar por channel (`stdout` | `stderr` | `app` etc). */
10
12
  channel?: string;
11
13
  /** v1.3 — buscar logs com `correlationId == <uuid>`. */
12
14
  correlationId?: string;
15
+ /** C2 2026-05-18 — saída NDJSON linha a linha (útil para pipes). */
16
+ json?: boolean;
13
17
  }
14
18
  export declare function runLogs(opts: LogsOptions): Promise<void>;
@@ -2,7 +2,10 @@
2
2
  * `neetru logs` — visualiza logs do workspace.
3
3
  *
4
4
  * Endpoint: `GET /api/v1/cli/logs?clientId=<id>&limit=N&since=<ms>&level=<lvl>`.
5
- * Suporta tail contínuo (`-f`) com poll a cada 5s usando `after=<lastTs>`.
5
+ * Suporta tail contínuo (`-f`):
6
+ * - Modo SSE (Server-Sent Events): usa `/api/cli/v1/logs/stream` se disponível.
7
+ * - Modo polling NDJSON (fallback): poll a cada 5s com `after=<lastTs>`.
8
+ * Saída NDJSON (`--json`): imprime cada LogEntry como JSON line.
6
9
  */
7
10
  import chalk from 'chalk';
8
11
  import { apiRequest, CliApiError, CliNetworkError } from '../lib/api-client.js';
@@ -32,7 +35,11 @@ function colorLevel(level) {
32
35
  default: return chalk.blue;
33
36
  }
34
37
  }
35
- function printLog(entry) {
38
+ function printLog(entry, jsonMode) {
39
+ if (jsonMode) {
40
+ process.stdout.write(JSON.stringify(entry) + '\n');
41
+ return;
42
+ }
36
43
  const ts = new Date(entry.timestamp).toLocaleTimeString('pt-BR');
37
44
  const lvl = (entry.level ?? 'info').toUpperCase().padEnd(5);
38
45
  const color = colorLevel(entry.level);
@@ -52,6 +59,8 @@ async function fetchLogs(clientId, params) {
52
59
  qs.set('level', params.level);
53
60
  if (params.product)
54
61
  qs.set('product', params.product);
62
+ if (params.env)
63
+ qs.set('env', params.env);
55
64
  if (params.channel)
56
65
  qs.set('channel', params.channel);
57
66
  if (params.correlationId)
@@ -59,25 +68,213 @@ async function fetchLogs(clientId, params) {
59
68
  const res = await apiRequest(`/api/v1/cli/logs?${qs.toString()}`);
60
69
  return res.logs ?? [];
61
70
  }
71
+ /**
72
+ * Modo SSE (Server-Sent Events) — mantém conexão aberta e recebe eventos
73
+ * em real-time via `/api/cli/v1/logs/stream`.
74
+ *
75
+ * Estratégia de reconexão: em erro de rede, tenta reconectar após 3s até
76
+ * 5 tentativas consecutivas, depois cai no polling NDJSON como fallback.
77
+ *
78
+ * @returns `true` se SSE foi encerrado por Ctrl+C, `false` se fallback necessário.
79
+ */
80
+ async function runSseFollow(clientId, opts, jsonMode) {
81
+ const apiKey = config.get('neetruApiKey');
82
+ const apiBase = config.get('apiBase') ?? 'https://api.neetru.com';
83
+ const qs = new URLSearchParams({ clientId });
84
+ if (opts.level)
85
+ qs.set('level', opts.level);
86
+ if (opts.product)
87
+ qs.set('product', opts.product);
88
+ if (opts.channel)
89
+ qs.set('channel', opts.channel);
90
+ if (opts.correlationId)
91
+ qs.set('correlationId', opts.correlationId);
92
+ const streamUrl = `${apiBase}/api/cli/v1/logs/stream?${qs.toString()}`;
93
+ let attempts = 0;
94
+ const MAX_RECONNECTS = 5;
95
+ let lastEventId;
96
+ // Graceful shutdown via Ctrl+C
97
+ let stopped = false;
98
+ const abortCtrl = new AbortController();
99
+ const onSigint = () => {
100
+ stopped = true;
101
+ abortCtrl.abort();
102
+ };
103
+ process.once('SIGINT', onSigint);
104
+ try {
105
+ while (!stopped && attempts <= MAX_RECONNECTS) {
106
+ try {
107
+ const headers = {
108
+ Authorization: `Bearer ${apiKey}`,
109
+ Accept: 'text/event-stream',
110
+ 'Cache-Control': 'no-cache',
111
+ };
112
+ if (lastEventId)
113
+ headers['Last-Event-ID'] = lastEventId;
114
+ const res = await fetch(streamUrl, {
115
+ headers,
116
+ signal: abortCtrl.signal,
117
+ });
118
+ if (res.status === 404 || res.status === 405) {
119
+ // Endpoint SSE não suportado — sinaliza fallback.
120
+ return false;
121
+ }
122
+ if (!res.ok) {
123
+ if (!jsonMode)
124
+ log.dim(` SSE: erro ${res.status} — retentando…`);
125
+ attempts++;
126
+ await new Promise((r) => setTimeout(r, 3000));
127
+ continue;
128
+ }
129
+ if (!res.body)
130
+ return false;
131
+ attempts = 0; // reset em conexão bem-sucedida
132
+ if (!jsonMode)
133
+ log.dim(' Conectado ao stream live… (Ctrl+C para sair)');
134
+ // Parse do protocolo SSE linha a linha.
135
+ const decoder = new TextDecoder();
136
+ let buffer = '';
137
+ const reader = res.body.getReader();
138
+ while (!stopped) {
139
+ const { done, value } = await reader.read();
140
+ if (done)
141
+ break;
142
+ buffer += decoder.decode(value, { stream: true });
143
+ const lines = buffer.split('\n');
144
+ buffer = lines.pop() ?? '';
145
+ let dataLines = [];
146
+ let eventId;
147
+ for (const line of lines) {
148
+ if (line.startsWith('id:')) {
149
+ eventId = line.slice(3).trim();
150
+ }
151
+ else if (line.startsWith('data:')) {
152
+ dataLines.push(line.slice(5).trim());
153
+ }
154
+ else if (line === '') {
155
+ // Dispatch do evento SSE completo.
156
+ if (dataLines.length > 0) {
157
+ const raw = dataLines.join('\n');
158
+ if (raw === '[DONE]') {
159
+ stopped = true;
160
+ break;
161
+ }
162
+ try {
163
+ const entry = JSON.parse(raw);
164
+ printLog(entry, jsonMode);
165
+ if (eventId)
166
+ lastEventId = eventId;
167
+ }
168
+ catch {
169
+ // Evento não-JSON (ping/keepalive) — ignorar silenciosamente.
170
+ }
171
+ }
172
+ dataLines = [];
173
+ eventId = undefined;
174
+ }
175
+ }
176
+ }
177
+ if (!stopped) {
178
+ // Conexão encerrada pelo servidor — reconectar.
179
+ attempts++;
180
+ if (!jsonMode)
181
+ log.dim(' Stream encerrado pelo servidor. Reconectando…');
182
+ await new Promise((r) => setTimeout(r, 2000));
183
+ }
184
+ }
185
+ catch (err) {
186
+ if (stopped)
187
+ break;
188
+ if (err instanceof Error && err.name === 'AbortError')
189
+ break;
190
+ attempts++;
191
+ if (attempts > MAX_RECONNECTS)
192
+ return false; // sinaliza fallback
193
+ if (!jsonMode)
194
+ log.dim(` Erro de rede no stream (tentativa ${attempts}/${MAX_RECONNECTS})…`);
195
+ await new Promise((r) => setTimeout(r, 3000));
196
+ }
197
+ }
198
+ }
199
+ finally {
200
+ process.removeListener('SIGINT', onSigint);
201
+ }
202
+ if (!jsonMode && stopped) {
203
+ process.stdout.write('\n');
204
+ log.dim(' stream encerrado.');
205
+ }
206
+ return true; // encerrado normalmente (Ctrl+C ou MAX_RECONNECTS esgotado com retorno)
207
+ }
208
+ /**
209
+ * Modo polling NDJSON — fallback quando SSE não está disponível.
210
+ * Poll a cada 5s usando `after=<lastTs>`.
211
+ */
212
+ async function runPollingFollow(clientId, lastTs, lines, opts, jsonMode) {
213
+ if (!jsonMode)
214
+ log.dim(' Aguardando novos logs… (Ctrl+C para sair)');
215
+ let currentLastTs = lastTs;
216
+ let stopped = false;
217
+ const onSigint = () => { stopped = true; };
218
+ process.once('SIGINT', onSigint);
219
+ try {
220
+ while (!stopped) {
221
+ await new Promise((r) => setTimeout(r, 5000));
222
+ if (stopped)
223
+ break;
224
+ try {
225
+ const next = await fetchLogs(clientId, {
226
+ limit: lines,
227
+ after: currentLastTs,
228
+ level: opts.level,
229
+ product: opts.product,
230
+ env: opts.env,
231
+ channel: opts.channel,
232
+ correlationId: opts.correlationId,
233
+ });
234
+ for (const e of next) {
235
+ printLog(e, jsonMode);
236
+ currentLastTs = e.timestamp;
237
+ }
238
+ }
239
+ catch (error) {
240
+ // Erros transientes no follow não derrubam o tail.
241
+ if (error instanceof CliNetworkError)
242
+ continue;
243
+ throw error;
244
+ }
245
+ }
246
+ }
247
+ finally {
248
+ process.removeListener('SIGINT', onSigint);
249
+ }
250
+ if (!jsonMode) {
251
+ process.stdout.write('\n');
252
+ log.dim(' stream encerrado.');
253
+ }
254
+ }
62
255
  export async function runLogs(opts) {
63
- if (!opts.clientId) {
64
- log.error('--client-id <oauthClientId> obrigatório.');
256
+ if (!opts.clientId && !opts.product) {
257
+ log.error('Informe --product <slug> ou --client-id <oauthClientId>.');
65
258
  process.exit(1);
66
259
  }
67
260
  if (!config.get('neetruApiKey')) {
68
261
  log.error('Não autenticado. Execute: neetru login');
69
262
  process.exit(2);
70
263
  }
264
+ const jsonMode = opts.json ?? false;
71
265
  const lines = Math.max(1, Math.min(1000, Number.parseInt(opts.lines ?? '50', 10) || 50));
72
266
  const sinceMs = parseDuration(opts.since ?? '15m');
73
267
  const since = Date.now() - sinceMs;
268
+ // No modo produto o clientId é ignorado pelo servidor (`product` manda).
269
+ const clientId = opts.clientId ?? '';
74
270
  let entries;
75
271
  try {
76
- entries = await fetchLogs(opts.clientId, {
272
+ entries = await fetchLogs(clientId, {
77
273
  limit: lines,
78
274
  since,
79
275
  level: opts.level,
80
276
  product: opts.product,
277
+ env: opts.env,
81
278
  channel: opts.channel,
82
279
  correlationId: opts.correlationId,
83
280
  });
@@ -103,38 +300,25 @@ export async function runLogs(opts) {
103
300
  process.exit(4);
104
301
  }
105
302
  if (entries.length === 0) {
106
- log.dim(' Nenhum log encontrado no intervalo.');
303
+ if (!jsonMode)
304
+ log.dim(' Nenhum log encontrado no intervalo.');
107
305
  }
108
306
  else {
109
307
  for (const e of entries)
110
- printLog(e);
308
+ printLog(e, jsonMode);
111
309
  }
112
310
  if (!opts.follow)
113
311
  return;
114
- let lastTs = entries.length > 0 ? entries[entries.length - 1].timestamp : new Date().toISOString();
115
- log.dim(' Aguardando novos logs… (Ctrl+C para sair)');
116
- while (true) {
117
- await new Promise((r) => setTimeout(r, 5000));
118
- try {
119
- const next = await fetchLogs(opts.clientId, {
120
- limit: lines,
121
- after: lastTs,
122
- level: opts.level,
123
- product: opts.product,
124
- channel: opts.channel,
125
- correlationId: opts.correlationId,
126
- });
127
- for (const e of next) {
128
- printLog(e);
129
- lastTs = e.timestamp;
130
- }
131
- }
132
- catch (error) {
133
- // Transient errors no follow não derrubam o tail
134
- if (error instanceof CliNetworkError)
135
- continue;
136
- throw error;
137
- }
312
+ const lastTs = entries.length > 0 ? entries[entries.length - 1].timestamp : new Date().toISOString();
313
+ // Modo produto não tem endpoint SSE — vai direto pro polling.
314
+ if (opts.product) {
315
+ await runPollingFollow(clientId, lastTs, lines, opts, jsonMode);
316
+ return;
317
+ }
318
+ // Tenta SSE primeiro; cai no polling se endpoint não suportado.
319
+ const sseHandled = await runSseFollow(clientId, opts, jsonMode);
320
+ if (!sseHandled) {
321
+ await runPollingFollow(clientId, lastTs, lines, opts, jsonMode);
138
322
  }
139
323
  }
140
324
  //# sourceMappingURL=logs.js.map
@@ -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":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAgCzC,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC1C,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAC1B,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAC/B,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACpC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACzC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACjC,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,QAAQ,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACxC,KAAK,OAAO,CAAC;QAAC,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC;QAC7C,KAAK,MAAM,CAAC;QAAC,KAAK,SAAS,CAAC,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC;QACjD,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC;QAChC,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAe,EAAE,QAAiB;IAClD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,QAAgB,EAChB,MASC;IAED,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC;QAC7B,QAAQ;QACR,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;KAC5B,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,KAAK;QAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;SAC3C,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,KAAK;QAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,OAAO;QAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,GAAG;QAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,OAAO;QAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,aAAa;QAAE,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAExE,MAAM,GAAG,GAAG,MAAM,UAAU,CAAe,oBAAoB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChF,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;AACxB,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,YAAY,CACzB,QAAgB,EAChB,IAAiB,EACjB,QAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAuB,CAAC;IAChE,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAuB,IAAI,wBAAwB,CAAC;IAExF,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,KAAK;QAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,OAAO;QAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,OAAO;QAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,aAAa;QAAE,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAEpE,MAAM,SAAS,GAAG,GAAG,OAAO,2BAA2B,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;IAEvE,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,cAAc,GAAG,CAAC,CAAC;IACzB,IAAI,WAA+B,CAAC;IAEpC,+BAA+B;IAC/B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,OAAO,GAAG,IAAI,CAAC;QACf,SAAS,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEjC,IAAI,CAAC;QACH,OAAO,CAAC,OAAO,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,OAAO,GAA2B;oBACtC,aAAa,EAAE,UAAU,MAAM,EAAE;oBACjC,MAAM,EAAE,mBAAmB;oBAC3B,eAAe,EAAE,UAAU;iBAC5B,CAAC;gBACF,IAAI,WAAW;oBAAE,OAAO,CAAC,eAAe,CAAC,GAAG,WAAW,CAAC;gBAExD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;oBACjC,OAAO;oBACP,MAAM,EAAE,SAAS,CAAC,MAAM;iBACzB,CAAC,CAAC;gBAEH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC7C,kDAAkD;oBAClD,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACZ,IAAI,CAAC,QAAQ;wBAAE,GAAG,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,MAAM,gBAAgB,CAAC,CAAC;oBAClE,QAAQ,EAAE,CAAC;oBACX,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC9C,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,GAAG,CAAC,IAAI;oBAAE,OAAO,KAAK,CAAC;gBAE5B,QAAQ,GAAG,CAAC,CAAC,CAAC,gCAAgC;gBAC9C,IAAI,CAAC,QAAQ;oBAAE,GAAG,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;gBAEzE,wCAAwC;gBACxC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;gBAClC,IAAI,MAAM,GAAG,EAAE,CAAC;gBAEhB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpC,OAAO,CAAC,OAAO,EAAE,CAAC;oBAChB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC5C,IAAI,IAAI;wBAAE,MAAM;oBAEhB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;oBAE3B,IAAI,SAAS,GAAa,EAAE,CAAC;oBAC7B,IAAI,OAA2B,CAAC;oBAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC3B,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;wBACjC,CAAC;6BAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;4BACpC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;wBACvC,CAAC;6BAAM,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;4BACvB,mCAAmC;4BACnC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACzB,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACjC,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;oCACrB,OAAO,GAAG,IAAI,CAAC;oCACf,MAAM;gCACR,CAAC;gCACD,IAAI,CAAC;oCACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,CAAC;oCAC1C,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oCAC1B,IAAI,OAAO;wCAAE,WAAW,GAAG,OAAO,CAAC;gCACrC,CAAC;gCAAC,MAAM,CAAC;oCACP,8DAA8D;gCAChE,CAAC;4BACH,CAAC;4BACD,SAAS,GAAG,EAAE,CAAC;4BACf,OAAO,GAAG,SAAS,CAAC;wBACtB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,gDAAgD;oBAChD,QAAQ,EAAE,CAAC;oBACX,IAAI,CAAC,QAAQ;wBAAE,GAAG,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;oBAC1E,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,OAAO;oBAAE,MAAM;gBACnB,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;oBAAE,MAAM;gBAC7D,QAAQ,EAAE,CAAC;gBACX,IAAI,QAAQ,GAAG,cAAc;oBAAE,OAAO,KAAK,CAAC,CAAC,oBAAoB;gBACjE,IAAI,CAAC,QAAQ;oBAAE,GAAG,CAAC,GAAG,CAAC,uCAAuC,QAAQ,IAAI,cAAc,IAAI,CAAC,CAAC;gBAC9F,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,wEAAwE;AACvF,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,gBAAgB,CAC7B,QAAgB,EAChB,MAAc,EACd,KAAa,EACb,IAAiB,EACjB,QAAiB;IAEjB,IAAI,CAAC,QAAQ;QAAE,GAAG,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAEtE,IAAI,aAAa,GAAG,MAAM,CAAC;IAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEjC,IAAI,CAAC;QACH,OAAO,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9C,IAAI,OAAO;gBAAE,MAAM;YACnB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE;oBACrC,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,aAAa,EAAE,IAAI,CAAC,aAAa;iBAClC,CAAC,CAAC;gBACH,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBACrB,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oBACtB,aAAa,GAAG,CAAC,CAAC,SAAS,CAAC;gBAC9B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,mDAAmD;gBACnD,IAAI,KAAK,YAAY,eAAe;oBAAE,SAAS;gBAC/C,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAiB;IAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,GAAG,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACnC,yEAAyE;IACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IAErC,IAAI,OAAmB,CAAC;IACxB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE;YAClC,KAAK,EAAE,KAAK;YACZ,KAAK;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACzB,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACzB,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,qBAAqB,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,GAAG,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ;YAAE,GAAG,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEzB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErG,8DAA8D;IAC9D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,gEAAgE;IAChE,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * `neetru ops` — comandos de operação interna do Neetru Core.
3
+ *
4
+ * Substitui os scripts ad-hoc em scripts/ com interface consistente, autenticação
5
+ * via Bearer token e flags --dry-run onde há mutação.
6
+ *
7
+ * Namespace ops:
8
+ * neetru ops heartbeat — checar heartbeat do agente em um server
9
+ * neetru ops smoke notification — dispara notification de smoke end-to-end
10
+ * neetru ops smoke observability — smoke test do pipeline de observability
11
+ * neetru ops reg-token <serverId> — gerar registration token para um server
12
+ * neetru ops resolve-errors — resolver erros abertos em lote
13
+ * neetru ops openapi-diff — detectar breaking changes na spec OpenAPI
14
+ *
15
+ * TODO (próximo sprint): bootstrap-admin, backfill incidents-source, backfill workspaces,
16
+ * seed api-catalog, rehash-sdk-secrets, migrate cli-keys.
17
+ */
18
+ import { Command } from 'commander';
19
+ declare function deprecationBanner(scriptName: string, command: string): void;
20
+ export interface OpsHeartbeatOptions {
21
+ serverId?: string;
22
+ json?: boolean;
23
+ }
24
+ export declare function runOpsHeartbeat(opts: OpsHeartbeatOptions): Promise<void>;
25
+ export interface OpsSmokeNotificationOptions {
26
+ recipientRole?: string;
27
+ recipientUid?: string;
28
+ kind?: string;
29
+ title?: string;
30
+ link?: string;
31
+ json?: boolean;
32
+ }
33
+ export declare function runOpsSmokeNotification(opts: OpsSmokeNotificationOptions): Promise<void>;
34
+ export interface OpsSmokeObservabilityOptions {
35
+ baseUrl?: string;
36
+ bearer?: string;
37
+ waitSec?: number;
38
+ json?: boolean;
39
+ }
40
+ export declare function runOpsSmokeObservability(opts: OpsSmokeObservabilityOptions): Promise<void>;
41
+ export interface OpsRegTokenOptions {
42
+ expiresMin?: number;
43
+ json?: boolean;
44
+ }
45
+ export declare function runOpsRegToken(serverId: string, opts: OpsRegTokenOptions): Promise<void>;
46
+ export interface OpsResolveErrorsOptions {
47
+ dryRun?: boolean;
48
+ resolvedBy?: string;
49
+ json?: boolean;
50
+ }
51
+ export declare function runOpsResolveErrors(opts: OpsResolveErrorsOptions): Promise<void>;
52
+ export interface OpsOpenapiDiffOptions {
53
+ update?: boolean;
54
+ json?: boolean;
55
+ }
56
+ export declare function runOpsOpenapiDiff(opts: OpsOpenapiDiffOptions): Promise<void>;
57
+ export declare function registerOpsCommand(program: Command): void;
58
+ export { deprecationBanner };