@neetru/cli 2.12.6 → 2.12.8
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/dist/commands/build.js +12 -7
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/chat-menu.d.ts +10 -0
- package/dist/commands/chat-menu.js +599 -0
- package/dist/commands/chat-menu.js.map +1 -0
- package/dist/commands/chat.d.ts +33 -3
- package/dist/commands/chat.js +176 -64
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/db.d.ts +19 -0
- package/dist/commands/db.js +69 -0
- package/dist/commands/db.js.map +1 -1
- package/dist/commands/deploy.js +4 -1
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/ui.d.ts +1 -1
- package/dist/commands/ui.js +55 -0
- package/dist/commands/ui.js.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/api-client.js +41 -20
- package/dist/lib/api-client.js.map +1 -1
- package/package.json +2 -2
package/dist/commands/chat.d.ts
CHANGED
|
@@ -1,20 +1,41 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
2
|
type ActorType = 'agent_claude' | 'human' | 'cli';
|
|
3
|
+
export interface ChatChannelsOptions {
|
|
4
|
+
json?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Lista os canais de chat abertos.
|
|
8
|
+
*
|
|
9
|
+
* integrationNeeded — registrar em `registerChatCommand`:
|
|
10
|
+
* ```ts
|
|
11
|
+
* chatCmd.command('channels').action(async (opts) => runChatChannels(opts));
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare function runChatChannels(opts: ChatChannelsOptions): Promise<void>;
|
|
3
15
|
export interface ChatSendOptions {
|
|
4
|
-
product
|
|
16
|
+
/** Canal de destino (novo — tem precedência sobre product). */
|
|
17
|
+
channel?: string;
|
|
18
|
+
/** Produto legado (mantido por retrocompat; ignorado quando channel está presente). */
|
|
19
|
+
product?: string;
|
|
5
20
|
actorType?: ActorType;
|
|
6
21
|
productId?: string;
|
|
7
22
|
json?: boolean;
|
|
8
23
|
}
|
|
9
24
|
export declare function runChatSend(message: string, opts: ChatSendOptions): Promise<void>;
|
|
10
25
|
export interface ChatHistoryOptions {
|
|
11
|
-
product
|
|
26
|
+
/** Canal de destino (novo — tem precedência sobre product). */
|
|
27
|
+
channel?: string;
|
|
28
|
+
/** Produto legado (mantido por retrocompat). */
|
|
29
|
+
product?: string;
|
|
12
30
|
hours?: string;
|
|
13
31
|
json?: boolean;
|
|
14
32
|
}
|
|
15
33
|
export declare function runChatHistory(opts: ChatHistoryOptions): Promise<void>;
|
|
16
34
|
export interface ChatLoopOptions {
|
|
17
|
-
product
|
|
35
|
+
/** Canal de destino (novo — tem precedência sobre product). */
|
|
36
|
+
channel?: string;
|
|
37
|
+
/** Produto legado (retrocompat). */
|
|
38
|
+
product?: string;
|
|
18
39
|
actorType?: ActorType;
|
|
19
40
|
json?: boolean;
|
|
20
41
|
}
|
|
@@ -22,6 +43,15 @@ export declare function runChatLoop(opts: ChatLoopOptions): Promise<void>;
|
|
|
22
43
|
/**
|
|
23
44
|
* Registra o comando `neetru chat` no programa Commander.
|
|
24
45
|
*
|
|
46
|
+
* Subcomandos:
|
|
47
|
+
* neetru chat channels → lista canais abertos
|
|
48
|
+
* neetru chat send --channel <id> "msg" → envia mensagem num canal
|
|
49
|
+
* neetru chat send --product <slug> "msg" → legado (por produto)
|
|
50
|
+
* neetru chat history --channel <id> → histórico de canal
|
|
51
|
+
* neetru chat history --product <slug> → histórico legado
|
|
52
|
+
* neetru chat --channel <id> → loop interativo de canal
|
|
53
|
+
* neetru chat --product <slug> → loop interativo legado
|
|
54
|
+
*
|
|
25
55
|
* integrationNeeded — adicionar em src/index.ts (ou onde os subcomandos
|
|
26
56
|
* são registrados):
|
|
27
57
|
* ```ts
|
package/dist/commands/chat.js
CHANGED
|
@@ -55,9 +55,60 @@ function printMessage(msg) {
|
|
|
55
55
|
console.log(` ${msg.body}`);
|
|
56
56
|
console.log();
|
|
57
57
|
}
|
|
58
|
+
function channelTypeLabel(type) {
|
|
59
|
+
if (type === 'global')
|
|
60
|
+
return chalk.cyan('global');
|
|
61
|
+
if (type === 'product')
|
|
62
|
+
return chalk.blue('produto');
|
|
63
|
+
return chalk.dim('custom');
|
|
64
|
+
}
|
|
65
|
+
function printChannel(ch) {
|
|
66
|
+
const tag = channelTypeLabel(ch.type);
|
|
67
|
+
const slug = ch.productSlug ? chalk.dim(` (${ch.productSlug})`) : '';
|
|
68
|
+
const lastMsg = ch.lastMessageAt
|
|
69
|
+
? chalk.dim(` última msg: ${fmtTimestamp(ch.lastMessageAt)}`)
|
|
70
|
+
: '';
|
|
71
|
+
console.log(` ${chalk.bold(ch.name)}${slug} ${tag} ${chalk.dim(ch.id)}${lastMsg}`);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Lista os canais de chat abertos.
|
|
75
|
+
*
|
|
76
|
+
* integrationNeeded — registrar em `registerChatCommand`:
|
|
77
|
+
* ```ts
|
|
78
|
+
* chatCmd.command('channels').action(async (opts) => runChatChannels(opts));
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export async function runChatChannels(opts) {
|
|
82
|
+
const token = await requireToken(opts.json);
|
|
83
|
+
const spinner = opts.json ? null : ora({ text: 'Buscando canais…', color: 'blue' }).start();
|
|
84
|
+
let res;
|
|
85
|
+
try {
|
|
86
|
+
res = await apiRequest('/api/cli/v1/chat/channels', { token });
|
|
87
|
+
spinner?.stop();
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
spinner?.fail('Falha ao buscar canais.');
|
|
91
|
+
handleApiError(error, opts.json);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (opts.json) {
|
|
95
|
+
console.log(JSON.stringify(res));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
console.log(chalk.bold(`\nCanais abertos (${res.count})\n`));
|
|
99
|
+
if (res.count === 0) {
|
|
100
|
+
log.dim('Nenhum canal encontrado.');
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
for (const ch of res.channels)
|
|
104
|
+
printChannel(ch);
|
|
105
|
+
console.log();
|
|
106
|
+
}
|
|
58
107
|
export async function runChatSend(message, opts) {
|
|
59
|
-
|
|
60
|
-
|
|
108
|
+
const channelId = opts.channel?.trim();
|
|
109
|
+
const productSlug = opts.product?.trim();
|
|
110
|
+
if (!channelId && !productSlug) {
|
|
111
|
+
log.error('Informe --channel <id> (canais) ou --product <slug> (legado).');
|
|
61
112
|
safeExit(1);
|
|
62
113
|
}
|
|
63
114
|
if (!message || !message.trim()) {
|
|
@@ -68,23 +119,32 @@ export async function runChatSend(message, opts) {
|
|
|
68
119
|
const spinner = opts.json
|
|
69
120
|
? null
|
|
70
121
|
: ora({ text: 'Enviando mensagem…', color: 'blue' }).start();
|
|
122
|
+
// Monta o body: channelId tem precedência sobre productSlug (legado).
|
|
123
|
+
const body = {
|
|
124
|
+
message: message.trim(),
|
|
125
|
+
actorType: opts.actorType ?? 'cli',
|
|
126
|
+
};
|
|
127
|
+
if (channelId) {
|
|
128
|
+
body.channelId = channelId;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
body.productSlug = productSlug;
|
|
132
|
+
if (opts.productId)
|
|
133
|
+
body.productId = opts.productId;
|
|
134
|
+
}
|
|
71
135
|
let res;
|
|
72
136
|
try {
|
|
73
137
|
res = await apiRequest('/api/cli/v1/chat', {
|
|
74
138
|
method: 'POST',
|
|
75
139
|
token,
|
|
76
|
-
body
|
|
77
|
-
productSlug: opts.product,
|
|
78
|
-
message: message.trim(),
|
|
79
|
-
actorType: opts.actorType ?? 'cli',
|
|
80
|
-
...(opts.productId ? { productId: opts.productId } : {}),
|
|
81
|
-
},
|
|
140
|
+
body,
|
|
82
141
|
});
|
|
83
142
|
spinner?.stop();
|
|
84
143
|
}
|
|
85
144
|
catch (error) {
|
|
86
145
|
spinner?.fail('Falha ao enviar mensagem.');
|
|
87
146
|
handleApiError(error, opts.json);
|
|
147
|
+
return;
|
|
88
148
|
}
|
|
89
149
|
if (opts.json) {
|
|
90
150
|
console.log(JSON.stringify(res));
|
|
@@ -93,16 +153,21 @@ export async function runChatSend(message, opts) {
|
|
|
93
153
|
log.success(`Mensagem enviada (id: ${res.id}).`);
|
|
94
154
|
}
|
|
95
155
|
export async function runChatHistory(opts) {
|
|
96
|
-
|
|
97
|
-
|
|
156
|
+
const channelId = opts.channel?.trim();
|
|
157
|
+
const productSlug = opts.product?.trim();
|
|
158
|
+
if (!channelId && !productSlug) {
|
|
159
|
+
log.error('Informe --channel <id> (canais) ou --product <slug> (legado).');
|
|
98
160
|
safeExit(1);
|
|
99
161
|
}
|
|
100
162
|
const sinceHours = Math.min(Math.max(Number(opts.hours ?? '24'), 1), 24);
|
|
101
163
|
const token = await requireToken(opts.json);
|
|
102
|
-
const qs = new URLSearchParams({
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
164
|
+
const qs = new URLSearchParams({ sinceHours: String(sinceHours) });
|
|
165
|
+
if (channelId) {
|
|
166
|
+
qs.set('channelId', channelId);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
qs.set('productSlug', productSlug);
|
|
170
|
+
}
|
|
106
171
|
const spinner = opts.json ? null : ora({ text: 'Buscando histórico…', color: 'blue' }).start();
|
|
107
172
|
let res;
|
|
108
173
|
try {
|
|
@@ -112,12 +177,14 @@ export async function runChatHistory(opts) {
|
|
|
112
177
|
catch (error) {
|
|
113
178
|
spinner?.fail('Falha ao buscar histórico.');
|
|
114
179
|
handleApiError(error, opts.json);
|
|
180
|
+
return;
|
|
115
181
|
}
|
|
116
182
|
if (opts.json) {
|
|
117
183
|
console.log(JSON.stringify(res));
|
|
118
184
|
return;
|
|
119
185
|
}
|
|
120
|
-
|
|
186
|
+
const label = channelId ? `canal ${channelId}` : `produto ${productSlug}`;
|
|
187
|
+
console.log(chalk.bold(`\nHistórico — ${label} (últimas ${sinceHours}h · ${res.count} msg)\n`));
|
|
121
188
|
if (res.count === 0) {
|
|
122
189
|
log.dim('Nenhuma mensagem no período.');
|
|
123
190
|
return;
|
|
@@ -127,22 +194,31 @@ export async function runChatHistory(opts) {
|
|
|
127
194
|
}
|
|
128
195
|
}
|
|
129
196
|
export async function runChatLoop(opts) {
|
|
130
|
-
|
|
131
|
-
|
|
197
|
+
const channelId = opts.channel?.trim();
|
|
198
|
+
const productSlug = opts.product?.trim();
|
|
199
|
+
if (!channelId && !productSlug) {
|
|
200
|
+
log.error('Informe --channel <id> (canais) ou --product <slug> (legado).');
|
|
132
201
|
safeExit(1);
|
|
133
202
|
}
|
|
134
203
|
const token = await requireToken(opts.json);
|
|
135
204
|
// Mostrar histórico ao entrar no loop
|
|
136
|
-
const qs = new URLSearchParams({
|
|
205
|
+
const qs = new URLSearchParams({ sinceHours: '24' });
|
|
206
|
+
if (channelId) {
|
|
207
|
+
qs.set('channelId', channelId);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
qs.set('productSlug', productSlug);
|
|
211
|
+
}
|
|
212
|
+
const label = channelId ? `canal ${channelId}` : `produto ${productSlug}`;
|
|
137
213
|
try {
|
|
138
214
|
const res = await apiRequest(`/api/cli/v1/chat?${qs.toString()}`, { token });
|
|
139
215
|
if (res.count > 0) {
|
|
140
|
-
console.log(chalk.bold(`\nHistórico — ${
|
|
216
|
+
console.log(chalk.bold(`\nHistórico — ${label} (últimas 24h · ${res.count} msg)\n`));
|
|
141
217
|
for (const msg of res.messages)
|
|
142
218
|
printMessage(msg);
|
|
143
219
|
}
|
|
144
220
|
else {
|
|
145
|
-
console.log(chalk.dim(`\nNenhuma mensagem recente para ${
|
|
221
|
+
console.log(chalk.dim(`\nNenhuma mensagem recente para ${label}.\n`));
|
|
146
222
|
}
|
|
147
223
|
}
|
|
148
224
|
catch {
|
|
@@ -158,47 +234,70 @@ export async function runChatLoop(opts) {
|
|
|
158
234
|
const askLine = () => new Promise((resolve) => {
|
|
159
235
|
rl.question(chalk.cyan('> '), (answer) => resolve(answer.trim()));
|
|
160
236
|
});
|
|
161
|
-
//
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
237
|
+
// try/finally garante que o readline (e o raw mode do TTY) sejam SEMPRE
|
|
238
|
+
// fechados — inclusive se algo inesperado lançar dentro do loop. Sem isso,
|
|
239
|
+
// um throw deixaria o terminal travado em modo de linha.
|
|
240
|
+
try {
|
|
241
|
+
// eslint-disable-next-line no-constant-condition
|
|
242
|
+
while (true) {
|
|
243
|
+
let line;
|
|
244
|
+
try {
|
|
245
|
+
line = await askLine();
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
break;
|
|
249
|
+
}
|
|
250
|
+
if (!line) {
|
|
251
|
+
console.log(chalk.dim('(loop encerrado)'));
|
|
252
|
+
break;
|
|
253
|
+
}
|
|
254
|
+
// Spinner declarado ANTES do try e parado no finally → nunca vaza,
|
|
255
|
+
// mesmo que a montagem do body ou o envio lancem.
|
|
256
|
+
const spinner = ora({ text: 'Enviando…', color: 'blue' }).start();
|
|
257
|
+
try {
|
|
258
|
+
const msgBody = {
|
|
181
259
|
message: line,
|
|
182
260
|
actorType: opts.actorType ?? 'cli',
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
261
|
+
};
|
|
262
|
+
if (channelId) {
|
|
263
|
+
msgBody.channelId = channelId;
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
msgBody.productSlug = productSlug;
|
|
267
|
+
}
|
|
268
|
+
const res = await apiRequest('/api/cli/v1/chat', {
|
|
269
|
+
method: 'POST',
|
|
270
|
+
token,
|
|
271
|
+
body: msgBody,
|
|
272
|
+
});
|
|
273
|
+
spinner.stop();
|
|
274
|
+
log.success(`Enviado (id: ${res.id})`);
|
|
275
|
+
}
|
|
276
|
+
catch (error) {
|
|
277
|
+
spinner.fail('Falha ao enviar.');
|
|
278
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
279
|
+
console.error(chalk.red(` ${detail}`));
|
|
280
|
+
// Não encerra o loop — permite tentar de novo
|
|
192
281
|
}
|
|
193
|
-
// Não encerra o loop — permite tentar de novo
|
|
194
282
|
}
|
|
195
283
|
}
|
|
196
|
-
|
|
284
|
+
finally {
|
|
285
|
+
rl.close();
|
|
286
|
+
}
|
|
197
287
|
}
|
|
198
288
|
// ─── Registro do comando `chat` em program ────────────────────────────────────
|
|
199
289
|
/**
|
|
200
290
|
* Registra o comando `neetru chat` no programa Commander.
|
|
201
291
|
*
|
|
292
|
+
* Subcomandos:
|
|
293
|
+
* neetru chat channels → lista canais abertos
|
|
294
|
+
* neetru chat send --channel <id> "msg" → envia mensagem num canal
|
|
295
|
+
* neetru chat send --product <slug> "msg" → legado (por produto)
|
|
296
|
+
* neetru chat history --channel <id> → histórico de canal
|
|
297
|
+
* neetru chat history --product <slug> → histórico legado
|
|
298
|
+
* neetru chat --channel <id> → loop interativo de canal
|
|
299
|
+
* neetru chat --product <slug> → loop interativo legado
|
|
300
|
+
*
|
|
202
301
|
* integrationNeeded — adicionar em src/index.ts (ou onde os subcomandos
|
|
203
302
|
* são registrados):
|
|
204
303
|
* ```ts
|
|
@@ -210,35 +309,46 @@ export async function runChatLoop(opts) {
|
|
|
210
309
|
export function registerChatCommand(program) {
|
|
211
310
|
const chatCmd = program
|
|
212
311
|
.command('chat')
|
|
213
|
-
.description('
|
|
214
|
-
'
|
|
215
|
-
.option('--
|
|
312
|
+
.description('Canais de chat dev→operador do Core (histórico rolante de 24h). ' +
|
|
313
|
+
'Use --channel <id> pra entrar num canal (ou --product <slug> legado).')
|
|
314
|
+
.option('--channel <id>', 'id do canal (ex: global)')
|
|
315
|
+
.option('--product <slug>', 'slug do produto — legado (retrocompat)')
|
|
216
316
|
.option('--actor-type <tipo>', 'tipo do ator: cli|human|agent_claude (default: cli)', 'cli')
|
|
217
317
|
.option('--json', 'saída em JSON')
|
|
218
318
|
.action(async (cmdOpts) => {
|
|
219
|
-
if (!cmdOpts.product) {
|
|
220
|
-
log.error('--
|
|
221
|
-
log.dim(' Use: neetru chat --
|
|
222
|
-
log.dim(' Ou: neetru chat
|
|
223
|
-
log.dim(' Ou: neetru chat history --product <slug>');
|
|
319
|
+
if (!cmdOpts.channel && !cmdOpts.product) {
|
|
320
|
+
log.error('Informe --channel <id> (canais) ou --product <slug> (legado).');
|
|
321
|
+
log.dim(' Use: neetru chat --channel global');
|
|
322
|
+
log.dim(' Ou: neetru chat channels (para listar canais)');
|
|
224
323
|
safeExit(1);
|
|
225
324
|
}
|
|
226
325
|
await runChatLoop({
|
|
326
|
+
channel: cmdOpts.channel,
|
|
227
327
|
product: cmdOpts.product,
|
|
228
328
|
actorType: cmdOpts.actorType,
|
|
229
329
|
json: !!cmdOpts.json,
|
|
230
330
|
});
|
|
231
331
|
});
|
|
332
|
+
// ── chat channels ──────────────────────────────────────────────────────────
|
|
333
|
+
chatCmd
|
|
334
|
+
.command('channels')
|
|
335
|
+
.description('Listar canais de chat abertos (inclui o canal Global)')
|
|
336
|
+
.option('--json', 'saída em JSON')
|
|
337
|
+
.action(async (cmdOpts) => {
|
|
338
|
+
await runChatChannels({ json: !!cmdOpts.json });
|
|
339
|
+
});
|
|
232
340
|
// ── chat send ──────────────────────────────────────────────────────────────
|
|
233
341
|
chatCmd
|
|
234
342
|
.command('send <mensagem>')
|
|
235
|
-
.description('Postar uma mensagem
|
|
236
|
-
.
|
|
343
|
+
.description('Postar uma mensagem num canal')
|
|
344
|
+
.option('--channel <id>', 'id do canal de destino (ex: global)')
|
|
345
|
+
.option('--product <slug>', 'slug do produto — legado (retrocompat)')
|
|
237
346
|
.option('--actor-type <tipo>', 'tipo do ator: cli|human|agent_claude (default: cli)', 'cli')
|
|
238
|
-
.option('--product-id <id>', 'id interno do produto (opcional,
|
|
347
|
+
.option('--product-id <id>', 'id interno do produto (opcional, legado)')
|
|
239
348
|
.option('--json', 'saída em JSON')
|
|
240
349
|
.action(async (mensagem, cmdOpts) => {
|
|
241
350
|
await runChatSend(mensagem, {
|
|
351
|
+
channel: cmdOpts.channel,
|
|
242
352
|
product: cmdOpts.product,
|
|
243
353
|
actorType: cmdOpts.actorType,
|
|
244
354
|
productId: cmdOpts.productId,
|
|
@@ -248,12 +358,14 @@ export function registerChatCommand(program) {
|
|
|
248
358
|
// ── chat history ───────────────────────────────────────────────────────────
|
|
249
359
|
chatCmd
|
|
250
360
|
.command('history')
|
|
251
|
-
.description('Exibir histórico
|
|
252
|
-
.
|
|
361
|
+
.description('Exibir histórico de um canal (últimas N horas, default: 24)')
|
|
362
|
+
.option('--channel <id>', 'id do canal (ex: global)')
|
|
363
|
+
.option('--product <slug>', 'slug do produto — legado (retrocompat)')
|
|
253
364
|
.option('--hours <n>', 'janela de histórico em horas (1–24, default: 24)', '24')
|
|
254
365
|
.option('--json', 'saída em JSON')
|
|
255
366
|
.action(async (cmdOpts) => {
|
|
256
367
|
await runChatHistory({
|
|
368
|
+
channel: cmdOpts.channel,
|
|
257
369
|
product: cmdOpts.product,
|
|
258
370
|
hours: cmdOpts.hours,
|
|
259
371
|
json: !!cmdOpts.json,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/db.d.ts
CHANGED
|
@@ -113,3 +113,22 @@ export interface DbHostsOptions {
|
|
|
113
113
|
* ficará ausente/vazio até o Core implementar o enriquecimento.
|
|
114
114
|
*/
|
|
115
115
|
export declare function runDbHosts(opts?: DbHostsOptions): Promise<void>;
|
|
116
|
+
export interface DbMigrationsCancelOptions {
|
|
117
|
+
json?: boolean;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Cancela uma migração presa em `awaiting_confirmation` ou `pending`,
|
|
121
|
+
* transitando-a para `cancelled` (bug_728fa11c fix).
|
|
122
|
+
*
|
|
123
|
+
* Casos de uso:
|
|
124
|
+
* - Migração classificada como destrutiva pelo classifier ANTIGO — com o
|
|
125
|
+
* db-classifier 0.1.2 seria aditiva, mas continua presa indefinidamente.
|
|
126
|
+
* - Dev quer descartar a migração e submeter uma corrigida.
|
|
127
|
+
*
|
|
128
|
+
* NÃO aplica nada — apenas muda o status para `cancelled`. A migração fica
|
|
129
|
+
* registrada para rastreabilidade de auditoria. Após cancelar, rode
|
|
130
|
+
* `neetru db apply` para submeter uma nova migração.
|
|
131
|
+
*
|
|
132
|
+
* Roles: admin ou operator.
|
|
133
|
+
*/
|
|
134
|
+
export declare function runDbMigrationsCancel(migrationId: string, opts?: DbMigrationsCancelOptions): Promise<void>;
|
package/dist/commands/db.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* neetru db apply [--dry-run] — pipeline de migração + envia ao Core
|
|
12
12
|
* neetru db migrations list [--db <id>]
|
|
13
13
|
* neetru db migrations confirm <id> — confirma migração destrutiva (exige --mfa)
|
|
14
|
+
* neetru db migrations cancel <id> — cancela migração presa em awaiting_confirmation ou pending
|
|
14
15
|
*
|
|
15
16
|
* Todos os comandos que chamam o Core usam `apiRequest` do `api-client` —
|
|
16
17
|
* autenticação via Bearer token resolvido automaticamente do config local.
|
|
@@ -1167,8 +1168,76 @@ export async function runDbHosts(opts = {}) {
|
|
|
1167
1168
|
{ header: 'Bancos', value: (r) => dbDensityLabel(r.databases), maxWidth: 50 },
|
|
1168
1169
|
], resp.servers);
|
|
1169
1170
|
}
|
|
1171
|
+
/**
|
|
1172
|
+
* Cancela uma migração presa em `awaiting_confirmation` ou `pending`,
|
|
1173
|
+
* transitando-a para `cancelled` (bug_728fa11c fix).
|
|
1174
|
+
*
|
|
1175
|
+
* Casos de uso:
|
|
1176
|
+
* - Migração classificada como destrutiva pelo classifier ANTIGO — com o
|
|
1177
|
+
* db-classifier 0.1.2 seria aditiva, mas continua presa indefinidamente.
|
|
1178
|
+
* - Dev quer descartar a migração e submeter uma corrigida.
|
|
1179
|
+
*
|
|
1180
|
+
* NÃO aplica nada — apenas muda o status para `cancelled`. A migração fica
|
|
1181
|
+
* registrada para rastreabilidade de auditoria. Após cancelar, rode
|
|
1182
|
+
* `neetru db apply` para submeter uma nova migração.
|
|
1183
|
+
*
|
|
1184
|
+
* Roles: admin ou operator.
|
|
1185
|
+
*/
|
|
1186
|
+
export async function runDbMigrationsCancel(migrationId, opts = {}) {
|
|
1187
|
+
if (!opts.json)
|
|
1188
|
+
log.banner();
|
|
1189
|
+
if (!migrationId) {
|
|
1190
|
+
const msg = '<migrationId> é obrigatório.';
|
|
1191
|
+
if (opts.json) {
|
|
1192
|
+
jsonError(msg, 'missing_migration_id');
|
|
1193
|
+
}
|
|
1194
|
+
else {
|
|
1195
|
+
log.error(msg);
|
|
1196
|
+
}
|
|
1197
|
+
safeExit(1);
|
|
1198
|
+
return;
|
|
1199
|
+
}
|
|
1200
|
+
const spinner = opts.json
|
|
1201
|
+
? null
|
|
1202
|
+
: ora({ text: `Cancelando migração ${migrationId}…`, color: 'yellow' }).start();
|
|
1203
|
+
let resp;
|
|
1204
|
+
try {
|
|
1205
|
+
resp = await apiRequest(`/api/cli/v1/db/migrations/${encodeURIComponent(migrationId)}/cancel`, { method: 'POST' });
|
|
1206
|
+
spinner?.succeed(`Migração ${chalk.bold(resp.migrationId)} cancelada — status: ${resp.status}`);
|
|
1207
|
+
}
|
|
1208
|
+
catch (err) {
|
|
1209
|
+
spinner?.fail('Falha ao cancelar migração.');
|
|
1210
|
+
if (err instanceof CliApiError && err.status === 409) {
|
|
1211
|
+
const msg = `Não foi possível cancelar: ${err.message}\n` +
|
|
1212
|
+
`Apenas migrações em "pending" ou "awaiting_confirmation" podem ser canceladas.`;
|
|
1213
|
+
if (opts.json) {
|
|
1214
|
+
console.log(JSON.stringify({ ok: false, error: 'migration_not_cancellable', message: msg }));
|
|
1215
|
+
safeExit(4);
|
|
1216
|
+
}
|
|
1217
|
+
else {
|
|
1218
|
+
log.error(msg);
|
|
1219
|
+
safeExit(4);
|
|
1220
|
+
}
|
|
1221
|
+
return;
|
|
1222
|
+
}
|
|
1223
|
+
if (opts.json) {
|
|
1224
|
+
jsonError(err.message ?? String(err), 'cancel_failed');
|
|
1225
|
+
safeExit(4);
|
|
1226
|
+
}
|
|
1227
|
+
handleApiError(err);
|
|
1228
|
+
return;
|
|
1229
|
+
}
|
|
1230
|
+
if (opts.json) {
|
|
1231
|
+
console.log(JSON.stringify(resp));
|
|
1232
|
+
return;
|
|
1233
|
+
}
|
|
1234
|
+
log.dim('');
|
|
1235
|
+
log.dim(` Migração cancelada: ${chalk.bold(migrationId)}`);
|
|
1236
|
+
log.dim(` Para reenviar: neetru db apply`);
|
|
1237
|
+
}
|
|
1170
1238
|
// ── D-3: runDbMigrate e runDbSeed removidos (legado Sprint 10) ──────────────
|
|
1171
1239
|
// Esses comandos operavam via schema.manifest.json (Sprint 10) e foram cortados
|
|
1172
1240
|
// junto com o branch legado do `db init`. O fluxo canônico é:
|
|
1173
1241
|
// neetru db init → neetru db apply → neetru db migrations confirm (se destrutiva)
|
|
1242
|
+
// → neetru db migrations cancel (se presa em awaiting_confirmation)
|
|
1174
1243
|
//# sourceMappingURL=db.js.map
|