primocode 8.33.0 → 8.33.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/bin/primocode.js +29 -16
  2. package/package.json +1 -1
package/bin/primocode.js CHANGED
@@ -1403,22 +1403,6 @@ async function main() {
1403
1403
  }));
1404
1404
  rl = readline.createInterface({ input: process.stdin, output: process.stdout, prompt: makePrompt(), completer: completarSlash });
1405
1405
 
1406
- /* A primeira vez. Antes o CLI abria direto no prompt e quem instalava não
1407
- descobria que existe conta, nem que dá para usar a própria chave — ia
1408
- usar o gratuito achando que era só aquilo, até bater na cota e concluir
1409
- que o produto não presta. Aparece UMA vez; depois disso, /conectar e
1410
- /chave é que são o caminho. */
1411
- if (!boasVindas.jaAbriu({ arquivoConfig: cfg.CONFIG_FILE })) {
1412
- await boasVindas.rodar({
1413
- perguntar: ask,
1414
- mostrar: (t) => console.log(t),
1415
- cores: c,
1416
- interativo: !!(process.stdin.isTTY && process.stdout.isTTY),
1417
- conectar: () => handleSlash('/conectar'),
1418
- configurarChave: () => handleSlash('/chave'),
1419
- });
1420
- }
1421
-
1422
1406
  rl.prompt();
1423
1407
 
1424
1408
  // Fila: o readline continua emitindo 'line' enquanto um pedido está sendo
@@ -1525,6 +1509,35 @@ async function main() {
1525
1509
  });
1526
1510
 
1527
1511
  rl.on('close', () => { closed = true; if (!busy) sayBye(); });
1512
+
1513
+ /* A primeira vez — e ela roda AQUI, depois de `line` e `close` existirem.
1514
+ *
1515
+ * Estava lá em cima, logo depois de criar o readline. Parecia certo e
1516
+ * estava errado: o `await` do assistente segurava o resto do main(), e
1517
+ * tudo o que chegasse pelo teclado nesse meio-tempo caía no vazio, porque
1518
+ * ainda não havia ouvinte de `line` para pegar. Quem colasse dois comandos
1519
+ * de uma vez perdia o segundo, e quem fechasse a entrada (Ctrl+D, um
1520
+ * script) saía sem nem o "Até logo" — porque o ouvinte de `close` também
1521
+ * ainda não existia.
1522
+ *
1523
+ * Digitando devagar ninguém via: os ouvintes ficavam prontos milissegundos
1524
+ * depois. Foi preciso um terminal de mentira mandando as linhas de uma vez
1525
+ * para o defeito aparecer.
1526
+ *
1527
+ * Aparece UMA vez; depois disso, /conectar e /chave é que são o caminho. */
1528
+ if (!boasVindas.jaAbriu({ arquivoConfig: cfg.CONFIG_FILE })) {
1529
+ boasVindas.rodar({
1530
+ perguntar: ask,
1531
+ mostrar: (t) => console.log(t),
1532
+ cores: c,
1533
+ interativo: !!(process.stdin.isTTY && process.stdout.isTTY),
1534
+ conectar: () => handleSlash('/conectar'),
1535
+ configurarChave: () => handleSlash('/chave'),
1536
+ }).then(() => { if (!closed && !busy) rl.prompt(); })
1537
+ // Um assistente que falha não pode levar o CLI junto: ele é uma
1538
+ // apresentação, não uma condição para usar o programa.
1539
+ .catch(() => {});
1540
+ }
1528
1541
  }
1529
1542
 
1530
1543
  main().catch((e) => { console.error(c.err(e.message || e)); process.exit(1); });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "primocode",
3
- "version": "8.33.0",
3
+ "version": "8.33.1",
4
4
  "description": "PrimoCode — agente de engenharia com IA e cursor próprio. Modelos grátis. Cria arquivos, roda comandos, controla navegador e desktop: abre apps, clica em botões e ícones pelo nome, digita e usa atalhos.",
5
5
  "main": "bin/primocode.js",
6
6
  "bin": {