primocode 7.9.1 → 7.10.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.
- package/README.md +2 -2
- package/lib/ui.js +15 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# PrimoCode v7.
|
|
1
|
+
# PrimoCode v7.10.1
|
|
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** —
|
|
@@ -9,7 +9,7 @@ OpenRouter, e cada apelido (`top`/`main`/`fast`) é uma **corrente**: se um mode
|
|
|
9
9
|
está no limite de pedidos, o próximo atende. Você não vê o erro, e não paga nada.
|
|
10
10
|
|
|
11
11
|
```
|
|
12
|
-
▐▛███▜▌ Primo Code v7.
|
|
12
|
+
▐▛███▜▌ Primo Code v7.10.1
|
|
13
13
|
▝▜█████▛▘ Bem-vindo de volta, Joel
|
|
14
14
|
▘▘ ▝▝ ~/primocode · /dir <pasta> muda
|
|
15
15
|
```
|
package/lib/ui.js
CHANGED
|
@@ -161,7 +161,7 @@ const TIPS = [
|
|
|
161
161
|
];
|
|
162
162
|
|
|
163
163
|
const NEWS = [
|
|
164
|
-
'
|
|
164
|
+
'Dois provedores em corrente: acabou a cota de um, o outro atende',
|
|
165
165
|
'Ele trabalha em ~/primocode. Fale o nome de uma pasta e ele muda sozinho',
|
|
166
166
|
'Falha de navegador agora diz quais seletores EXISTEM na página',
|
|
167
167
|
];
|
|
@@ -381,10 +381,21 @@ function friendlyError(raw) {
|
|
|
381
381
|
// corrente de reserva também não — o limite é da CONTA, não do modelo, então
|
|
382
382
|
// todos os elos recusam junto. Medido: 429 idêntico nos três modelos testados.
|
|
383
383
|
if (/free-models-per-day|free model requests per day/i.test(low)) {
|
|
384
|
-
|
|
384
|
+
// O servidor avisa quando existe provedor de reserva DESLIGADO por falta de
|
|
385
|
+
// chave. Esse detalhe é a ação que resolve — descartá-lo para mostrar um
|
|
386
|
+
// texto genérico faria o usuário achar que não havia nada a fazer.
|
|
387
|
+
const semChave = s.match(/provedor de reserva \(([^)]+)\) está sem chave/i);
|
|
388
|
+
if (semChave) {
|
|
389
|
+
return `📅 A cota diária de grátis do OpenRouter acabou (são 50 por dia na conta sem crédito),`
|
|
390
|
+
+ ` e o provedor de reserva (${semChave[1]}) está sem chave no servidor — não houve para onde cair.`
|
|
391
|
+
+ ` Configure a chave dele no Render, ou adicione 10 dólares de crédito no OpenRouter`
|
|
392
|
+
+ ` para subir de 50 para 1.000 pedidos por dia (esse crédito não é gasto pelos modelos grátis).`;
|
|
393
|
+
}
|
|
394
|
+
return '📅 A cota diária de grátis acabou nos DOIS provedores (OpenRouter e Groq).'
|
|
395
|
+
+ ' Se chegou até aqui, o servidor já tentou os dez modelos da corrente.'
|
|
385
396
|
+ ' Trocar de modelo não resolve: o limite é da conta, não do modelo.'
|
|
386
|
-
+ ' Adicionar 10 dólares de crédito no OpenRouter sobe para 1.000
|
|
387
|
-
+ ' e esse crédito NÃO é gasto pelos modelos grátis,
|
|
397
|
+
+ ' Adicionar 10 dólares de crédito no OpenRouter sobe de 50 para 1.000 pedidos'
|
|
398
|
+
+ ' por dia — e esse crédito NÃO é gasto pelos modelos grátis, só destrava a cota.'
|
|
388
399
|
+ ' Sem isso, libera amanhã.';
|
|
389
400
|
}
|
|
390
401
|
if (/rate.?limit|too many requests|\b429\b/i.test(low)) {
|
package/package.json
CHANGED