primocode 9.2.0 → 9.2.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/repeticao.js +6 -1
- package/lib/tools.js +35 -10
- package/lib/ui.js +10 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# PrimoCode v9.2.
|
|
1
|
+
# PrimoCode v9.2.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 v9.2.
|
|
12
|
+
▐▛███▜▌ Primo Code v9.2.1
|
|
13
13
|
▝▜█████▛▘ Bem-vindo de volta, Joel
|
|
14
14
|
▘▘ ▝▝ ~/primocode · /dir <pasta> muda
|
|
15
15
|
```
|
package/lib/repeticao.js
CHANGED
|
@@ -33,7 +33,12 @@
|
|
|
33
33
|
'use strict';
|
|
34
34
|
|
|
35
35
|
/** Tools cuja resposta é documento fixo — repetir é sempre desperdício. */
|
|
36
|
-
|
|
36
|
+
/* O documento fixo que NÃO pode encolher na conversa. Eram o manual e a spec
|
|
37
|
+
do Estúdio antigo; o Estúdio novo não tem manual porque não tem formato a
|
|
38
|
+
decorar. Quem ocupa esse lugar é a PAUTA do diretor, escrita uma vez, que o
|
|
39
|
+
produtor relê enquanto monta as cenas — encolhê-la faz o modelo chamar o
|
|
40
|
+
diretor de novo, que é o laço que isto existe para evitar. */
|
|
41
|
+
const REFERENCIAS = new Set(['planejar_producao', 'estudio_site']);
|
|
37
42
|
|
|
38
43
|
/** Acima disto, duas buscas são a mesma busca. */
|
|
39
44
|
const LIMITE_SEMELHANCA = 0.6;
|
package/lib/tools.js
CHANGED
|
@@ -429,8 +429,9 @@ async function despachar(name, args, ctx) {
|
|
|
429
429
|
return {
|
|
430
430
|
ok: false,
|
|
431
431
|
error: `"${args.path}" é arquivo de vídeo/áudio, e write_file só escreve TEXTO — isso criaria um arquivo falso que não abre. `
|
|
432
|
-
+ 'Vídeo se faz no
|
|
433
|
-
+ 'O
|
|
432
|
+
+ 'Vídeo se faz no Estúdio: estudio_projeto (criar) → planejar_producao → estudio_plano → '
|
|
433
|
+
+ 'estudio_render. O render devolve o CAMINHO do arquivo — é esse o vídeo. '
|
|
434
|
+
+ 'Não monte vídeo com ffmpeg à mão.',
|
|
434
435
|
};
|
|
435
436
|
}
|
|
436
437
|
const filePath = resolveInProject(args.path, projectDir);
|
|
@@ -610,14 +611,38 @@ async function despachar(name, args, ctx) {
|
|
|
610
611
|
divergir do catálogo daqui, e ela se conserta lá. Mas a rede
|
|
611
612
|
é o que separa uma tarefa que se recupera de uma que morre
|
|
612
613
|
com o usuário esperando. */
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
614
|
+
{
|
|
615
|
+
/* O CASO QUE ACONTECE DE VERDADE tem nome: o servidor
|
|
616
|
+
está desatualizado e continua oferecendo o Estúdio
|
|
617
|
+
antigo (studio_criar, studio_spec…). Visto ao vivo, e a
|
|
618
|
+
reação do modelo foi a pior possível: chutou nomes de
|
|
619
|
+
outro produto (`repo_browser.read_file`), tentou
|
|
620
|
+
escrever um .mp4 com write_file, e desistiu com "parei
|
|
621
|
+
sem concluir" — sem nunca dizer ao usuário qual era o
|
|
622
|
+
problema.
|
|
623
|
+
|
|
624
|
+
Então a resposta separa os dois casos. Para o Estúdio
|
|
625
|
+
velho ela EXPLICA o que houve e manda diagnosticar em
|
|
626
|
+
voz alta se as novas não estiverem na lista dele: um
|
|
627
|
+
"o servidor está desatualizado" é acionável; um "parei
|
|
628
|
+
sem concluir" não é. */
|
|
629
|
+
const velhoEstudio = /^studio_/.test(String(name));
|
|
630
|
+
return {
|
|
631
|
+
ok: false,
|
|
632
|
+
error: `A ferramenta "${name}" não existe.`,
|
|
633
|
+
parecidas: catalogo.parecidasCom(name),
|
|
634
|
+
comoResolver: velhoEstudio
|
|
635
|
+
? 'O Estúdio foi TROCADO: studio_* não existe mais. As ferramentas de hoje são '
|
|
636
|
+
+ 'planejar_producao, estudio_projeto, estudio_plano, estudio_midia, estudio_narrar, '
|
|
637
|
+
+ 'estudio_video, estudio_render e estudio_site. Use-as. '
|
|
638
|
+
+ 'Se ELAS não estiverem na sua lista de ferramentas, o servidor está desatualizado: '
|
|
639
|
+
+ 'PARE de tentar outros nomes e diga isso ao usuário em uma frase — é o que ele '
|
|
640
|
+
+ 'precisa saber para resolver.'
|
|
641
|
+
: 'Chame uma das ferramentas que existem de verdade; as "parecidas" acima são as de '
|
|
642
|
+
+ 'nome mais próximo. NÃO invente nome de ferramenta e não tente variações — se '
|
|
643
|
+
+ 'nenhuma servir, diga ao usuário o que faltou, em vez de desistir calado.',
|
|
644
|
+
};
|
|
645
|
+
}
|
|
621
646
|
}
|
|
622
647
|
}
|
|
623
648
|
}
|
package/lib/ui.js
CHANGED
|
@@ -295,12 +295,18 @@ const ROTULOS = {
|
|
|
295
295
|
desktop_drag:'Desktop·drag', desktop_type:'Desktop·type', desktop_key:'Desktop·key',
|
|
296
296
|
desktop_scroll:'Desktop·scroll', desktop_size:'Desktop·size',
|
|
297
297
|
desktop_double_click:'Desktop·2click', desktop_open_app:'Desktop·app',
|
|
298
|
-
studio_manual
|
|
299
|
-
|
|
300
|
-
|
|
298
|
+
/* Os nomes do Estúdio ATUAL. Os antigos (studio_manual, studio_spec,
|
|
299
|
+
studio_criar…) saíram daqui de propósito: enquanto estavam, uma
|
|
300
|
+
chamada a ferramenta que não existe mais aparecia na tela com
|
|
301
|
+
rótulo bonito ("Estúdio·spec corte"), como se fosse trabalho
|
|
302
|
+
legítimo — e só a linha de baixo revelava que tinha falhado. */
|
|
303
|
+
planejar_producao:'Diretor', estudio_projeto:'Estúdio·projeto',
|
|
304
|
+
estudio_plano:'Estúdio·plano', estudio_narrar:'Estúdio·narração',
|
|
305
|
+
estudio_video:'Estúdio·vídeo', estudio_render:'Estúdio·render',
|
|
306
|
+
estudio_site:'Estúdio·marca',
|
|
301
307
|
desktop_windows:'Desktop·janelas', desktop_focus:'Desktop·foco',
|
|
302
308
|
desktop_elements:'Desktop·elementos', desktop_click_element:'Desktop·click',
|
|
303
|
-
|
|
309
|
+
estudio_midia:'Estúdio·mídia', construir_app:'Construir',
|
|
304
310
|
remember_general:'Lembrar',
|
|
305
311
|
};
|
|
306
312
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "primocode",
|
|
3
|
-
"version": "9.2.
|
|
3
|
+
"version": "9.2.1",
|
|
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": {
|