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 CHANGED
@@ -1,4 +1,4 @@
1
- # PrimoCode v9.2.0
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.0
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
- const REFERENCIAS = new Set(['studio_manual', 'studio_spec']);
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 Studio: studio_criar com ferramenta "corte" (leia studio_spec antes). '
433
- + 'O Studio devolve o link "ver" — é ESSE o vídeo. Não use ffmpeg: não é preciso.',
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
- return {
614
- ok: false,
615
- error: `A ferramenta "${name}" não existe.`,
616
- parecidas: catalogo.parecidasCom(name),
617
- comoResolver: 'chame uma das ferramentas que existem de verdade — as "parecidas" '
618
- + 'acima são as de nome mais próximo. Não invente nome de ferramenta, e não '
619
- + 'desista da tarefa por causa disto.',
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:'Estúdio·manual', studio_spec:'Estúdio·spec', studio_criar:'Estúdio·criar',
299
- studio_ler:'Estúdio·ler', studio_atualizar:'Estúdio·ajustar', studio_listar:'Estúdio·lista',
300
- studio_versoes:'Estúdio·histórico',
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
- studio_midia:'Estúdio·mídia', studio_analisar:'Estúdio·analisar', construir_app:'Construir',
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.0",
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": {