primocode 8.42.1 → 9.0.0

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 (102) hide show
  1. package/README.md +41 -37
  2. package/bin/primocode.js +599 -327
  3. package/lib/acervo.js +8 -1
  4. package/lib/act.js +205 -114
  5. package/lib/api.js +35 -4
  6. package/lib/boas-vindas.js +31 -192
  7. package/lib/catalogo.js +60 -60
  8. package/lib/config.js +1 -1
  9. package/lib/conta.js +3 -24
  10. package/lib/diff.js +161 -0
  11. package/lib/diretor.js +37 -47
  12. package/lib/entrada.js +545 -0
  13. package/lib/especialistas.js +2 -2
  14. package/lib/estudio/assets.js +343 -0
  15. package/lib/estudio/identidade.js +560 -0
  16. package/lib/estudio/index.js +565 -0
  17. package/lib/estudio/plano.js +327 -0
  18. package/lib/estudio/projeto.js +246 -0
  19. package/lib/estudio/remotion.js +606 -0
  20. package/lib/estudio/slides.js +190 -0
  21. package/lib/estudio/video.js +296 -0
  22. package/lib/fala.js +13 -1
  23. package/lib/marca.js +4 -1
  24. package/lib/marketplace.js +189 -0
  25. package/lib/permissao.js +137 -0
  26. package/lib/registro.js +229 -0
  27. package/lib/skills.js +329 -0
  28. package/lib/tools.js +51 -181
  29. package/lib/ui.js +7 -3
  30. package/lib/voz.js +239 -0
  31. package/package.json +12 -3
  32. package/skills/acessibilidade/SKILL.md +28 -0
  33. package/skills/api-que-nao-quebra/SKILL.md +27 -0
  34. package/skills/depurar-de-verdade/SKILL.md +29 -0
  35. package/skills/editar-meu-video/SKILL.md +59 -0
  36. package/skills/escrever-em-portugues/SKILL.md +28 -0
  37. package/skills/git-limpo/SKILL.md +28 -0
  38. package/skills/motion-de-primeira/SKILL.md +62 -0
  39. package/skills/pagina-que-converte/SKILL.md +28 -0
  40. package/skills/performance-web/SKILL.md +28 -0
  41. package/skills/revisao-antes-de-entregar/SKILL.md +27 -0
  42. package/skills/slides-que-prendem/SKILL.md +40 -0
  43. package/studio/edge.py +16 -66
  44. package/studio/narrar.py +274 -0
  45. package/studio/pessoa.py +167 -0
  46. package/voz/primo_voz/__init__.py +0 -0
  47. package/voz/primo_voz/__main__.py +325 -0
  48. package/voz/primo_voz/escuta.py +235 -0
  49. package/voz/primo_voz/orbe.py +216 -0
  50. package/lib/audio-livre.js +0 -177
  51. package/lib/chaves.js +0 -149
  52. package/lib/claude-engine.js +0 -631
  53. package/lib/codex-engine.js +0 -208
  54. package/lib/remotion.js +0 -663
  55. package/lib/studio.js +0 -960
  56. package/studio/PRIMOCODE.md +0 -58
  57. package/studio/README.md +0 -154
  58. package/studio/__pycache__/edge.cpython-311.pyc +0 -0
  59. package/studio/__pycache__/elevenlabs.cpython-311.pyc +0 -0
  60. package/studio/__pycache__/voz.cpython-311.pyc +0 -0
  61. package/studio/arquivos/corte-teste-de-camera-fb823.json +0 -57
  62. package/studio/ferramentas/00-protocolo.md +0 -125
  63. package/studio/ferramentas/01-modelos.md +0 -270
  64. package/studio/ferramentas/README.md +0 -32
  65. package/studio/ferramentas/corte.md +0 -919
  66. package/studio/ferramentas/grade.md +0 -92
  67. package/studio/ferramentas/prisma.md +0 -107
  68. package/studio/ferramentas/prosa.md +0 -86
  69. package/studio/ferramentas/tela.md +0 -93
  70. package/studio/ferramentas/traco.md +0 -79
  71. package/studio/server.py +0 -2254
  72. package/studio/studio.log +0 -57
  73. package/studio/voz.py +0 -388
  74. package/studio/web/analise.html +0 -52
  75. package/studio/web/core.css +0 -1167
  76. package/studio/web/fontes/bebas.woff2 +0 -0
  77. package/studio/web/fontes/grotesk-700.woff2 +0 -0
  78. package/studio/web/fontes/inter-400.woff2 +0 -0
  79. package/studio/web/fontes/inter-700.woff2 +0 -0
  80. package/studio/web/fontes/jetbrains-400.woff2 +0 -0
  81. package/studio/web/fontes/playfair-700.woff2 +0 -0
  82. package/studio/web/fontes.css +0 -23
  83. package/studio/web/home.html +0 -217
  84. package/studio/web/js/analise.js +0 -510
  85. package/studio/web/js/audio.js +0 -607
  86. package/studio/web/js/editor.js +0 -1802
  87. package/studio/web/js/exportar.js +0 -222
  88. package/studio/web/js/ferramentas.js +0 -108
  89. package/studio/web/js/icones.js +0 -120
  90. package/studio/web/js/midia.js +0 -157
  91. package/studio/web/js/narracao.js +0 -325
  92. package/studio/web/js/player.js +0 -903
  93. package/studio/web/js/render-grade.js +0 -243
  94. package/studio/web/js/render-prosa.js +0 -104
  95. package/studio/web/js/render.js +0 -1852
  96. package/studio/web/js/sfx.js +0 -233
  97. package/studio/web/js/video.js +0 -464
  98. package/studio/web/js/voz-neural.js +0 -152
  99. package/studio/web/render.css +0 -1352
  100. package/studio/web/tf.html +0 -15
  101. package/studio/web/tool.html +0 -78
  102. package/studio/web/view.html +0 -27
package/README.md CHANGED
@@ -1,17 +1,15 @@
1
- # PrimoCode v8.42.1
1
+ # PrimoCode v9.0.0
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** —
5
5
  e lembra do que fez entre uma sessão e outra.
6
6
 
7
- **Sem chave de API sua.** O modelo vem hospedado: você entra com a conta do
8
- Conecta Primo AI (plano **Premium** ou **Super**) e usa — nada de console de
9
- provedor, nada de teto de gasto para acompanhar. Quem preferir a própria chave
10
- do Claude ou do GPT escolhe isso na abertura, com as setinhas, e passa a usar a
11
- assinatura dele.
7
+ **A API já vem configurada.** Entrou na sua conta Conecta Primo AI, pode usar: não há provedor para escolher, chave para colar nem teto de gasto seu. Os modelos são os grátis do
8
+ OpenRouter, e cada apelido (`top`/`main`/`fast`) é uma **corrente**: se um modelo
9
+ está no limite de pedidos, o próximo atende. Você não vê o erro, e não paga nada.
12
10
 
13
11
  ```
14
- ▐▛███▜▌ Primo Code v8.42.1
12
+ ▐▛███▜▌ Primo Code v9.0.0
15
13
  ▝▜█████▛▘ Bem-vindo de volta, Joel
16
14
  ▘▘ ▝▝ ~/primocode · /dir <pasta> muda
17
15
  ```
@@ -29,37 +27,10 @@ veja `/mascot` e `/name`.
29
27
  | **Memória** | Cada projeto lembra o que foi feito, entre sessões | Esquece ao fechar |
30
28
  | **Instalação** | Node puro, **zero dependências** — segundos | Pacotes e dependências |
31
29
  | **Cara própria** | Mascote, nome e temas que você escolhe | Fixo |
32
- | **Modelos** | Claude Opus 5, Sonnet 5 e Haiku 4.5 via OpenRouter — trocáveis com `/model` | Preso ao provedor do fabricante |
30
+ | **Modelos** | Escolhidos pelo produto, não por você: `/effort` regula o esforço e o modelo sai daí | Preso ao provedor do fabricante |
33
31
 
34
32
  Em uma frase: **é o poder de um agente de código no terminal, em português, controlando o seu computador de verdade — sem você precisar configurar chave de API nenhuma.**
35
33
 
36
- ## Vídeo e apresentação: o diretor entra antes da produção
37
-
38
- Quando o pedido é de vídeo, reels, teaser ou apresentação narrada, o PrimoCode
39
- não sai montando cena: ele chama primeiro o **diretor** — uma IA que só
40
- estrutura. Ela devolve o roteiro cena a cena com a **narração escrita para ser
41
- falada**, a duração, a transição, o movimento de cada cena, a voz (perfil e
42
- instrução de leitura) e a lista de imagens, logos e música a buscar. Só depois
43
- disso a produção começa, e ela segue a pauta em vez de inventar.
44
-
45
- A mídia é de verdade: foto com licença aberta (Openverse), logo em SVG da marca
46
- (Wikimedia Commons) e, com chave própria, a busca de imagens do Google pela API
47
- oficial. Música e efeito sonoro vêm do `buscar_audio`, que baixa e já traz o
48
- crédito; a identidade de uma empresa — logo, cor, paleta, fontes e frase — o
49
- `marca_da_empresa` lê do site dela. Tudo o que desce guarda a licença ao lado do
50
- arquivo, e os créditos saem prontos para a cena final. Recorte de fundo com
51
- `rembg`, quando instalado.
52
-
53
- O quadro também se move: cada cena aceita uma **câmera** (`aproximar`,
54
- `empurrar`, `pan-direita`, `balanco`…) e cada elemento uma **profundidade**, e
55
- aí as camadas andam em velocidades diferentes — é o que separa motion de slide
56
- animado. Junto com as chaves em 3D, as curvas com nome e o som por elemento,
57
- dá para montar no navegador o que antes pedia After Effects.
58
-
59
- O motor não é gosto: vídeo curto sai pelo estúdio, em segundos, sem instalar
60
- nada; vídeo longo, canal alfa, ProRes ou fps alto viram projeto **Remotion** na
61
- sua pasta — e a resposta sempre diz por que escolheu.
62
-
63
34
  ## Instalação
64
35
 
65
36
  **macOS / Linux / WSL** — um comando, e ele resolve tudo (inclusive instalar o Node, se faltar):
@@ -232,6 +203,36 @@ Variáveis de ambiente úteis:
232
203
  - `CHROME_PATH` / `PRIMOCODE_CHROME` — aponta para um Chrome fora do caminho padrão
233
204
  - `PRIMOCODE_BROWSER_HEADLESS=1` — roda o navegador sem janela (CI/servidor)
234
205
 
206
+ ## O Estúdio: vídeo, slides e arte
207
+
208
+ Sete ferramentas (`estudio_projeto`, `estudio_plano`, `estudio_midia`,
209
+ `estudio_narrar`, `estudio_video`, `estudio_render`, `estudio_site`), um
210
+ renderizador só — o **Remotion** — e nenhum template. Não há tema pronto,
211
+ layout pronto nem fundo pronto: o plano é feito de **primitivas** (texto,
212
+ forma, imagem, vídeo, ícone, legenda, componente) com keyframes e câmera
213
+ própria por cena, e é a IA que compõe cada vídeo do zero. Lista fechada de
214
+ seis temas é template com outro nome, e o resultado dela é todo vídeo sair
215
+ igual.
216
+
217
+ Antes de produzir entra o **diretor** (`planejar_producao`): uma conversa
218
+ própria que decide arco, narração falada cena a cena, voz, direção de arte e
219
+ a mídia a buscar — e só então o produtor monta as cenas. Ele existe porque
220
+ quem está montando o JSON já gastou a atenção no JSON, e é ali que o roteiro
221
+ vira legenda de slide ("Vantagens", "Nossos serviços") em vez de virar fala.
222
+
223
+ De onde vem o material, tudo sem chave de API:
224
+
225
+ | O quê | Fonte |
226
+ |---|---|
227
+ | Ícones | **Iconify** — 200 mil ícones, 150 coleções |
228
+ | Imagens e som | **Openverse** (licença aberta); Pexels/Freesound entram por cima quando há chave |
229
+ | Fontes | **Google Fonts** inteiro |
230
+ | Logo de marca | **Simple Icons** → o site da empresa → **Wikimedia Commons** |
231
+ | Identidade visual | o próprio site: cor, paleta, tipografia e o que a marca diz de si |
232
+
233
+ A licença desce junto de tudo, num `.licenca.json` ao lado do arquivo:
234
+ descobrir depois de publicar que a foto exigia crédito é tarde.
235
+
235
236
  ## Subagentes
236
237
 
237
238
  Para tarefas com partes independentes, o agente delega:
@@ -289,10 +290,13 @@ primocode -f app.js "onde está o bug?" # com arquivo anexado
289
290
  | `/dir <caminho>` | Trabalha numa pasta que já existe, onde você quiser |
290
291
  | `/project` | Lista projetos. `/project <nome>` cria em `~/primocode` |
291
292
  | `/mode primocode\|chat\|auto` | Alterna o modo (fica guardado) |
292
- | `/model top\|main\|fast` | **Todos grátis.** top = o mais capaz (550B, 1M de contexto), main = agente de código (padrão), fast = o mais rápido. Aceita qualquer ID do OpenRouter |
293
+ | `/voice` | Modo voz: uma orb, você fala, ele faz. O cérebro é o mesmo do terminal |
294
+ | `/skills` · `/marketplace` | O que ele sabe fazer bem. Tela navegável pelas setas, e "New Skill" para escrever a sua |
295
+ | `/connectors` | Quem está atendendo os seus pedidos (só mostra — não há o que configurar) |
296
+ | `/effort` | O esforço do agente, num slider (←/→, Enter confirma): do `low` ao `ultracode`. O modelo sai daí — não há provedor nem chave para configurar |
293
297
  | `/attach <arquivo>` | Anexa arquivo ao próximo pedido |
294
298
  | `/detach` · `/files` | Remove / lista anexos |
295
- | `/tudo` | Lista as 44 ferramentas que ele sabe usar, por grupo |
299
+ | `/all` | Lista as 46 ferramentas que ele sabe usar, por grupo |
296
300
  | `/tree [n]` | Árvore do projeto atual |
297
301
  | `/read <arquivo>` | Mostra um arquivo do projeto |
298
302
  | `/run <comando>` | Executa no shell, dentro da pasta do projeto |