primocode 8.42.1 → 8.42.2

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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # PrimoCode v8.42.1
1
+ # PrimoCode v8.42.2
2
2
 
3
3
  Agente de engenharia brasileiro para o terminal, no estilo Claude Code.
4
4
  Cria arquivos de verdade, roda comandos, **controla o navegador e o desktop** —
@@ -11,7 +11,7 @@ do Claude ou do GPT escolhe isso na abertura, com as setinhas, e passa a usar a
11
11
  assinatura dele.
12
12
 
13
13
  ```
14
- ▐▛███▜▌ Primo Code v8.42.1
14
+ ▐▛███▜▌ Primo Code v8.42.2
15
15
  ▝▜█████▛▘ Bem-vindo de volta, Joel
16
16
  ▘▘ ▝▝ ~/primocode · /dir <pasta> muda
17
17
  ```
package/bin/primocode.js CHANGED
@@ -344,6 +344,26 @@ function makePrompt() {
344
344
  }
345
345
  function refreshPrompt() { if (rl) rl.setPrompt(makePrompt()); }
346
346
 
347
+ /**
348
+ * O portão do plano (`state.liberado`) SÓ era decidido uma vez, na abertura.
349
+ * Quem conectava DEPOIS — `/connect` manual, `/connect trocar`, `/logout` —
350
+ * mudava a conta de verdade e o portão continuava com a resposta antiga.
351
+ *
352
+ * "conecta mas depois de uns 10 segundos desconecta": era exatamente isto.
353
+ * A pessoa via "Conectado. Plano premium" — real, acabou de vir do
354
+ * servidor — e no pedido seguinte caía em "O PrimoCode pede o plano
355
+ * Premium ou Super", porque `state.liberado` tinha ficado `false` de uma
356
+ * tentativa anterior (sem plano, ou login que não deu) e nada o atualizava.
357
+ *
358
+ * Toda vez que a conexão muda, chame isto com o que se sabe AGORA — o
359
+ * `{ pro }` que já veio de `conta.entrar()` ou de `conta.atual()`, sem ir à
360
+ * rede de novo: essas chamadas já confirmaram o servidor há segundos.
361
+ */
362
+ function sincronizarLiberacao({ pro, motivo } = {}) {
363
+ state.liberado = !!pro;
364
+ state.motivoBloqueio = pro ? null : (motivo || 'sem-plano');
365
+ }
366
+
347
367
  // Enquanto uma pergunta está no ar, a próxima linha digitada é a RESPOSTA dela
348
368
  // — não um novo comando. Sem isso o "s" de confirmação virava prompt para a IA.
349
369
  let pendingAsk = null;
@@ -1323,6 +1343,11 @@ async function handleSlash(text) {
1323
1343
  console.log(c.muted(' Já conectado como ') + c.brand(jaEsta.uid.slice(0, 12) + '…')
1324
1344
  + c.muted(` · plano ${jaEsta.plano}`));
1325
1345
  console.log(c.dim(' Para entrar com outra conta: ') + c.brand('/connect trocar'));
1346
+ // Sem isto, quem tinha sido barrado na abertura (plano velho,
1347
+ // login que não deu a tempo) e depois só confere com um
1348
+ // `/connect` continuava barrado: este comando não passava por
1349
+ // `entrar()`, e nada reabria o portão.
1350
+ sincronizarLiberacao(jaEsta);
1326
1351
  break;
1327
1352
  }
1328
1353
  if (rest === 'trocar') conta.sair();
@@ -1363,6 +1388,11 @@ async function handleSlash(text) {
1363
1388
  if (!r.ok) { console.log(c.err(` ${r.error}`)); break; }
1364
1389
  console.log(c.ok(' Conectado.')
1365
1390
  + c.muted(` Plano ${r.plano}${r.pro ? '' : ' — assine Premium no app para liberar tudo'}`));
1391
+ // O QUE FALTAVA: sem isto, "Conectado. Plano premium" na tela e o
1392
+ // PRÓXIMO pedido caindo em "O PrimoCode pede Premium ou Super" —
1393
+ // porque o portão (`state.liberado`) só era decidido na abertura,
1394
+ // e um /connect no meio da sessão nunca o reabria.
1395
+ sincronizarLiberacao(r);
1366
1396
  break;
1367
1397
  }
1368
1398
 
@@ -1420,6 +1450,10 @@ async function handleSlash(text) {
1420
1450
  conta.sair();
1421
1451
  console.log(c.ok(' Desconectado deste computador.')
1422
1452
  + c.dim(' A conta continua intacta; entre de novo com /connect.'));
1453
+ // O mesmo portão do connect: sem login não há como confirmar
1454
+ // Premium/Super, e deixar `state.liberado` de pé seria a mesma
1455
+ // dessincronia ao contrário — trabalhando sem estar conectado.
1456
+ sincronizarLiberacao({ pro: false, motivo: 'sem-login' });
1423
1457
  break;
1424
1458
  }
1425
1459
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "primocode",
3
- "version": "8.42.1",
3
+ "version": "8.42.2",
4
4
  "description": "PrimoCode — agente de engenharia com IA e cursor próprio. Requer conta Conecta Primo AI (Premium ou Super). 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": {