primocode 11.0.0 → 11.2.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 (3879) hide show
  1. package/README.md +18 -4
  2. package/agentes/algoritmos.md +10 -0
  3. package/agentes/angular.md +10 -0
  4. package/agentes/animacao-web.md +10 -0
  5. package/agentes/anuncios.md +10 -0
  6. package/agentes/apresentacao.md +10 -0
  7. package/agentes/arquitetura.md +10 -0
  8. package/agentes/audio.md +10 -0
  9. package/agentes/auth.md +10 -0
  10. package/agentes/automacao.md +10 -0
  11. package/agentes/bash.md +10 -0
  12. package/agentes/blockchain.md +10 -0
  13. package/agentes/brand.md +10 -0
  14. package/agentes/canvas.md +10 -0
  15. package/agentes/ci-cd.md +10 -0
  16. package/agentes/cloud.md +10 -0
  17. package/agentes/cores.md +10 -0
  18. package/agentes/cpp.md +10 -0
  19. package/agentes/csharp.md +10 -0
  20. package/agentes/css-layout.md +1 -1
  21. package/agentes/dados-sql-analise.md +10 -0
  22. package/agentes/depuracao.md +1 -1
  23. package/agentes/design-system.md +10 -0
  24. package/agentes/docker.md +10 -0
  25. package/agentes/electron.md +10 -0
  26. package/agentes/email-mkt.md +10 -0
  27. package/agentes/extensao-chrome.md +10 -0
  28. package/agentes/filas.md +10 -0
  29. package/agentes/firebase.md +10 -0
  30. package/agentes/flutter.md +10 -0
  31. package/agentes/games.md +10 -0
  32. package/agentes/geral/capacidades/backend.json +246 -0
  33. package/agentes/geral/capacidades/banco.json +186 -0
  34. package/agentes/geral/capacidades/codigo.json +576 -0
  35. package/agentes/geral/capacidades/depuracao.json +570 -0
  36. package/agentes/geral/capacidades/design.json +246 -0
  37. package/agentes/geral/capacidades/devops.json +240 -0
  38. package/agentes/geral/capacidades/frontend.json +252 -0
  39. package/agentes/geral/capacidades/git.json +558 -0
  40. package/agentes/geral/capacidades/ia-llm.json +246 -0
  41. package/agentes/geral/capacidades/marketing.json +252 -0
  42. package/agentes/geral/capacidades/mobile.json +192 -0
  43. package/agentes/geral/capacidades/produto-negocio.json +186 -0
  44. package/agentes/geral/capacidades/shell.json +522 -0
  45. package/agentes/geral/capacidades/testes.json +186 -0
  46. package/agentes/geral/capacidades/video-motion.json +246 -0
  47. package/agentes/geral/capacidades/windows-linux.json +216 -0
  48. package/agentes/go.md +10 -0
  49. package/agentes/graphql.md +10 -0
  50. package/agentes/growth.md +10 -0
  51. package/agentes/ia-evals.md +10 -0
  52. package/agentes/ilustracao.md +10 -0
  53. package/agentes/indice.md +1 -86
  54. package/agentes/iot.md +10 -0
  55. package/agentes/java.md +10 -0
  56. package/agentes/javascript.md +10 -0
  57. package/agentes/juridico-basico.md +10 -0
  58. package/agentes/kotlin.md +10 -0
  59. package/agentes/kubernetes.md +10 -0
  60. package/agentes/landing.md +10 -0
  61. package/agentes/legado.md +10 -0
  62. package/agentes/linux.md +10 -0
  63. package/agentes/llm-prompts.md +10 -0
  64. package/agentes/mcp.md +10 -0
  65. package/agentes/ml.md +10 -0
  66. package/agentes/mongodb.md +10 -0
  67. package/agentes/motion.md +10 -0
  68. package/agentes/negocio.md +10 -0
  69. package/agentes/observabilidade.md +10 -0
  70. package/agentes/orm.md +10 -0
  71. package/agentes/pagamentos.md +10 -0
  72. package/agentes/pentest.md +10 -0
  73. package/agentes/performance.md +1 -1
  74. package/agentes/pesquisa-usuario.md +10 -0
  75. package/agentes/php.md +10 -0
  76. package/agentes/planilhas.md +10 -0
  77. package/agentes/privacidade.md +10 -0
  78. package/agentes/produto.md +10 -0
  79. package/agentes/pwa.md +10 -0
  80. package/agentes/qa-manual.md +10 -0
  81. package/agentes/raspagem.md +10 -0
  82. package/agentes/react-native.md +10 -0
  83. package/agentes/rede.md +10 -0
  84. package/agentes/redis.md +10 -0
  85. package/agentes/regex.md +10 -0
  86. package/agentes/revisao-texto.md +10 -0
  87. package/agentes/ruby.md +10 -0
  88. package/agentes/rust.md +10 -0
  89. package/agentes/seo.md +10 -0
  90. package/agentes/social.md +10 -0
  91. package/agentes/svelte.md +10 -0
  92. package/agentes/swift.md +10 -0
  93. package/agentes/tailwind.md +10 -0
  94. package/agentes/testes-carga.md +10 -0
  95. package/agentes/testes-e2e.md +10 -0
  96. package/agentes/testes-unit.md +10 -0
  97. package/agentes/thumbnails.md +10 -0
  98. package/agentes/tipografia.md +10 -0
  99. package/agentes/traducao.md +10 -0
  100. package/agentes/ui-mobile.md +10 -0
  101. package/agentes/video-edicao.md +10 -0
  102. package/agentes/video-roteiro.md +10 -0
  103. package/agentes/visualizacao.md +10 -0
  104. package/agentes/vue.md +10 -0
  105. package/agentes/web3d.md +10 -0
  106. package/agentes/websocket.md +10 -0
  107. package/bin/primocode-rpc.js +100 -0
  108. package/bin/primocode.js +3 -4209
  109. package/editor/modelo-projeto/build.py +12 -4
  110. package/kits/KITS.md +4 -0
  111. package/lib/agentes/index.js +47 -4
  112. package/lib/agentes/nucleo.js +1 -1
  113. package/lib/agentes-pessoais.js +117 -0
  114. package/lib/agents-md.js +1 -1
  115. package/lib/app-chat.js +1 -1
  116. package/lib/app-server/cli.js +61 -0
  117. package/lib/app-server/index.js +3 -0
  118. package/lib/app-server/pareamento.js +61 -0
  119. package/lib/app-server/protocolo.js +86 -0
  120. package/lib/app-server/servidor.js +685 -0
  121. package/lib/app-server/websocket.js +87 -0
  122. package/lib/avisos.js +64 -0
  123. package/lib/backup-banco.js +1 -1
  124. package/lib/browser.js +7 -3
  125. package/lib/cli/boas-vindas.js +153 -0
  126. package/lib/cli/comando-api.js +85 -0
  127. package/lib/cli/comandos-extra.js +553 -0
  128. package/lib/cli/comandos.js +104 -0
  129. package/lib/cli/headless.js +102 -0
  130. package/lib/cli/sessao.js +4179 -0
  131. package/lib/cli/statusline.js +52 -0
  132. package/lib/cli/util.js +2 -2
  133. package/lib/cli-nova.js +237 -0
  134. package/lib/conferir.js +4 -4
  135. package/lib/config/config.js +419 -0
  136. package/lib/config/limites.js +100 -0
  137. package/lib/cursor.js +3 -3
  138. package/lib/diff.js +1 -1
  139. package/lib/effort.js +1 -1
  140. package/lib/entrega.js +1 -1
  141. package/lib/escopo.js +1 -1
  142. package/lib/explicar.js +1 -1
  143. package/lib/fala.js +2 -2
  144. package/lib/guardar.js +2 -2
  145. package/lib/mcp/mcp.js +819 -0
  146. package/lib/memoria-usuario.js +1 -1
  147. package/lib/motor/aprovacao.js +114 -0
  148. package/lib/motor/eventos.js +77 -0
  149. package/lib/motor/index.js +8 -0
  150. package/lib/motor/tela-terminal.js +64 -0
  151. package/lib/motor/turno.js +43 -0
  152. package/lib/motor/voz.js +65 -0
  153. package/lib/mudou.js +1 -1
  154. package/lib/nome-projeto.js +1 -1
  155. package/lib/nuvem.js +2 -2
  156. package/lib/permission/perigo.js +401 -0
  157. package/lib/permission/permissao.js +137 -0
  158. package/lib/permission/sandbox.js +252 -0
  159. package/lib/piloto.js +39 -0
  160. package/lib/placar.js +1 -1
  161. package/lib/plano-previo.js +1 -1
  162. package/lib/plugin/auto-preview.js +71 -0
  163. package/lib/plugin/autoteste.js +1 -0
  164. package/lib/plugin/desktop.js +756 -0
  165. package/lib/plugin/editor-pro-maquina.js +355 -0
  166. package/lib/plugin/editor-pro.js +1022 -0
  167. package/lib/plugin/entregaveis/carrossel.js +93 -0
  168. package/lib/plugin/entregaveis/cartaz.js +112 -0
  169. package/lib/plugin/entregaveis/cli.js +36 -0
  170. package/lib/plugin/entregaveis/documento.js +169 -0
  171. package/lib/plugin/entregaveis/especialistas.js +72 -0
  172. package/lib/plugin/entregaveis/nucleo.js +243 -0
  173. package/lib/plugin/entregaveis/slides.js +232 -0
  174. package/lib/plugin/estudio/acervo.js +418 -0
  175. package/lib/plugin/estudio/assets.js +497 -0
  176. package/lib/plugin/estudio/assinatura.js +108 -0
  177. package/lib/plugin/estudio/conferencia-visual.js +76 -0
  178. package/lib/plugin/estudio/conferir-quadros.js +56 -0
  179. package/lib/plugin/estudio/cota.js +157 -0
  180. package/lib/plugin/estudio/criar.js +113 -0
  181. package/lib/plugin/estudio/diretor.js +392 -0
  182. package/lib/plugin/estudio/editor.js +290 -0
  183. package/lib/plugin/estudio/gosto-descrever.js +87 -0
  184. package/lib/plugin/estudio/gosto.js +608 -0
  185. package/lib/plugin/estudio/historico.js +60 -0
  186. package/lib/plugin/estudio/identidade.js +560 -0
  187. package/lib/plugin/estudio/index.js +2725 -0
  188. package/lib/plugin/estudio/kit.js +91 -0
  189. package/lib/plugin/estudio/kits-tela.js +199 -0
  190. package/lib/plugin/estudio/kokoro.js +127 -0
  191. package/lib/plugin/estudio/maquina-foto.js +177 -0
  192. package/lib/plugin/estudio/maquina-trilha.js +199 -0
  193. package/lib/plugin/estudio/maquina-voz.js +429 -0
  194. package/lib/plugin/estudio/marca.js +398 -0
  195. package/lib/plugin/estudio/materiais.js +218 -0
  196. package/lib/plugin/estudio/miniatura.js +56 -0
  197. package/lib/plugin/estudio/morfar.js +191 -0
  198. package/lib/plugin/estudio/print-site.js +341 -0
  199. package/lib/plugin/estudio/projeto.js +340 -0
  200. package/lib/plugin/estudio/projetos.js +72 -0
  201. package/lib/plugin/kits-parecidos.js +99 -0
  202. package/lib/plugin/kits.js +585 -0
  203. package/lib/plugin/marca-kit.js +312 -0
  204. package/lib/plugin/motioncraft.js +67 -0
  205. package/lib/plugin/pesquisar.js +7 -4
  206. package/lib/plugin/video/analise.js +89 -0
  207. package/lib/plugin/video/auto.js +344 -0
  208. package/lib/plugin/video/catalogo.js +20 -0
  209. package/lib/plugin/video/mutar.js +28 -0
  210. package/lib/plugin/video/ops-fx.js +453 -0
  211. package/lib/plugin/video/ops.js +373 -0
  212. package/lib/plugin/video/pedido.js +191 -0
  213. package/lib/plugin/video/projeto.js +133 -0
  214. package/lib/plugin/video/rastrear.js +95 -0
  215. package/lib/plugin/video/render.js +274 -0
  216. package/lib/plugin/video/transcript.js +124 -0
  217. package/lib/plugin/video/zoom.js +275 -0
  218. package/lib/plugin/voz-ponte.js +15 -0
  219. package/lib/plugin/voz.js +532 -0
  220. package/lib/porta.js +4 -4
  221. package/lib/pre-leitura.js +2 -2
  222. package/lib/preparar.js +11 -11
  223. package/lib/projetos-meta.js +90 -0
  224. package/lib/provider/api.js +310 -0
  225. package/lib/provider/claude-engine.js +673 -0
  226. package/lib/provider/codex-engine.js +225 -0
  227. package/lib/provider/local/motor-cli.js +93 -0
  228. package/lib/provider/local/motor.js +267 -0
  229. package/lib/provider/local/provedor.js +169 -0
  230. package/lib/publicar.js +2 -2
  231. package/lib/qr.js +209 -0
  232. package/lib/registro.js +2 -2
  233. package/lib/repeticao.js +2 -2
  234. package/lib/segredos.js +2 -2
  235. package/lib/session/checkpoint-git.js +221 -0
  236. package/lib/session/checkpoint.js +366 -0
  237. package/lib/session/compactacao.js +1 -1
  238. package/lib/session/exportar-conversa.js +49 -0
  239. package/lib/session/linha-do-tempo.js +130 -0
  240. package/lib/session/runner/act.js +2562 -0
  241. package/lib/skill/catalogo.js +369 -0
  242. package/lib/skill/marketplace.js +189 -0
  243. package/lib/skill/skills.js +468 -0
  244. package/lib/team.js +4 -4
  245. package/lib/tool/diagnostico.js +14 -3
  246. package/lib/tool/lsp.js +211 -0
  247. package/lib/tool/perguntar.js +55 -1
  248. package/lib/tool/tools.js +1101 -0
  249. package/lib/trava.js +1 -1
  250. package/lib/travado.js +1 -1
  251. package/lib/tui/entrada.js +1031 -0
  252. package/lib/tui/tela.js +245 -0
  253. package/lib/tui/ui.js +763 -0
  254. package/materiais/adesivos/base.ts +101 -0
  255. package/materiais/adesivos/camera/CameraDeriva.tsx +37 -0
  256. package/materiais/adesivos/cores/paleta.json +30 -0
  257. package/materiais/adesivos/cores/paleta.png +0 -0
  258. package/materiais/adesivos/formas/AdesivoForma.tsx +42 -0
  259. package/materiais/adesivos/formas/AdesivoFoto.tsx +36 -0
  260. package/materiais/adesivos/formas/SeloPreco.tsx +38 -0
  261. package/materiais/adesivos/pecas.json +496 -0
  262. package/materiais/adesivos/referencia/analise.md +85 -0
  263. package/materiais/adesivos/referencia/quadro-1.png +0 -0
  264. package/materiais/adesivos/referencia/quadro-2.png +0 -0
  265. package/materiais/adesivos/referencia/quadro-3.png +0 -0
  266. package/materiais/adesivos/referencia/quadro-4.png +0 -0
  267. package/materiais/adesivos/referencia/referencia.mp4 +0 -0
  268. package/materiais/adesivos/regras.md +138 -0
  269. package/materiais/adesivos/sons/Som.tsx +33 -0
  270. package/materiais/adesivos/texturas/ChuvaDeAdesivos.tsx +29 -0
  271. package/materiais/adesivos/texturas/Fundo.tsx +21 -0
  272. package/materiais/adesivos/texturas/Particulas.tsx +22 -0
  273. package/materiais/adesivos/tipografia/AdesivoTexto.tsx +35 -0
  274. package/materiais/adesivos/tipografia/AssinaturaMarca.tsx +36 -0
  275. package/materiais/adesivos/tipografia/TituloEtiquetas.tsx +33 -0
  276. package/materiais/adesivos/transicoes/Cena.tsx +48 -0
  277. package/materiais/adesivos/transicoes/CorteImpacto.tsx +16 -0
  278. package/materiais/antes-depois/base.ts +82 -0
  279. package/materiais/antes-depois/camera/CameraDeriva.tsx +37 -0
  280. package/materiais/antes-depois/cores/paleta.json +28 -0
  281. package/materiais/antes-depois/cores/paleta.png +0 -0
  282. package/materiais/antes-depois/formas/BarraMedidor.tsx +43 -0
  283. package/materiais/antes-depois/formas/FaixaMarquee.tsx +35 -0
  284. package/materiais/antes-depois/formas/ListaMudancas.tsx +37 -0
  285. package/materiais/antes-depois/formas/RotuloAntesDepois.tsx +26 -0
  286. package/materiais/antes-depois/formas/TelaDividida.tsx +68 -0
  287. package/materiais/antes-depois/pecas.json +520 -0
  288. package/materiais/antes-depois/referencia/analise.md +85 -0
  289. package/materiais/antes-depois/referencia/quadro-1.png +0 -0
  290. package/materiais/antes-depois/referencia/quadro-2.png +0 -0
  291. package/materiais/antes-depois/referencia/quadro-3.png +0 -0
  292. package/materiais/antes-depois/referencia/quadro-4.png +0 -0
  293. package/materiais/antes-depois/referencia/referencia.mp4 +0 -0
  294. package/materiais/antes-depois/regras.md +141 -0
  295. package/materiais/antes-depois/sons/Som.tsx +40 -0
  296. package/materiais/antes-depois/texturas/Fundo.tsx +24 -0
  297. package/materiais/antes-depois/texturas/Particulas.tsx +22 -0
  298. package/materiais/antes-depois/tipografia/NumeroDelta.tsx +36 -0
  299. package/materiais/antes-depois/transicoes/Cena.tsx +41 -0
  300. package/materiais/antes-depois/transicoes/CorteImpacto.tsx +16 -0
  301. package/materiais/apple-tipografico/base.ts +111 -0
  302. package/materiais/apple-tipografico/camera/Camera.tsx +23 -0
  303. package/materiais/apple-tipografico/camera/CameraDeriva.tsx +37 -0
  304. package/materiais/apple-tipografico/cores/paleta.json +21 -0
  305. package/materiais/apple-tipografico/cores/paleta.png +0 -0
  306. package/materiais/apple-tipografico/formas/CartaoRadial.tsx +41 -0
  307. package/materiais/apple-tipografico/formas/Produto3D.tsx +126 -0
  308. package/materiais/apple-tipografico/formas/ProdutoFoto.tsx +47 -0
  309. package/materiais/apple-tipografico/lib/produto3d-apoio.ts +22 -0
  310. package/materiais/apple-tipografico/pecas.json +491 -0
  311. package/materiais/apple-tipografico/referencia/analise.md +87 -0
  312. package/materiais/apple-tipografico/referencia/quadro-1.png +0 -0
  313. package/materiais/apple-tipografico/referencia/quadro-2.png +0 -0
  314. package/materiais/apple-tipografico/referencia/quadro-3.png +0 -0
  315. package/materiais/apple-tipografico/referencia/quadro-4.png +0 -0
  316. package/materiais/apple-tipografico/referencia/referencia.mp4 +0 -0
  317. package/materiais/apple-tipografico/regras.md +171 -0
  318. package/materiais/apple-tipografico/sons/Som.tsx +40 -0
  319. package/materiais/apple-tipografico/texturas/Fundo.tsx +21 -0
  320. package/materiais/apple-tipografico/texturas/Particulas.tsx +22 -0
  321. package/materiais/apple-tipografico/tipografia/AssinaturaPreta.tsx +33 -0
  322. package/materiais/apple-tipografico/tipografia/LegendaCurta.tsx +51 -0
  323. package/materiais/apple-tipografico/transicoes/Cena.tsx +55 -0
  324. package/materiais/apple-tipografico/transicoes/CorteImpacto.tsx +16 -0
  325. package/materiais/aquarela/base.ts +97 -0
  326. package/materiais/aquarela/camera/CameraDeriva.tsx +37 -0
  327. package/materiais/aquarela/cores/paleta.json +30 -0
  328. package/materiais/aquarela/cores/paleta.png +0 -0
  329. package/materiais/aquarela/formas/AnotacaoManual.tsx +40 -0
  330. package/materiais/aquarela/formas/ManchaTinta.tsx +46 -0
  331. package/materiais/aquarela/formas/Pincelada.tsx +43 -0
  332. package/materiais/aquarela/formas/Pingos.tsx +31 -0
  333. package/materiais/aquarela/pecas.json +498 -0
  334. package/materiais/aquarela/referencia/analise.md +87 -0
  335. package/materiais/aquarela/referencia/quadro-1.png +0 -0
  336. package/materiais/aquarela/referencia/quadro-2.png +0 -0
  337. package/materiais/aquarela/referencia/quadro-3.png +0 -0
  338. package/materiais/aquarela/referencia/quadro-4.png +0 -0
  339. package/materiais/aquarela/referencia/referencia.mp4 +0 -0
  340. package/materiais/aquarela/regras.md +141 -0
  341. package/materiais/aquarela/sons/Som.tsx +33 -0
  342. package/materiais/aquarela/texturas/Fundo.tsx +24 -0
  343. package/materiais/aquarela/texturas/PapelRasgado.tsx +50 -0
  344. package/materiais/aquarela/texturas/Particulas.tsx +22 -0
  345. package/materiais/aquarela/tipografia/AssinaturaMarca.tsx +33 -0
  346. package/materiais/aquarela/tipografia/TituloPincel.tsx +51 -0
  347. package/materiais/aquarela/transicoes/Cena.tsx +48 -0
  348. package/materiais/aquarela/transicoes/CorteImpacto.tsx +16 -0
  349. package/materiais/aurora/base.ts +93 -0
  350. package/materiais/aurora/camera/CameraDeriva.tsx +37 -0
  351. package/materiais/aurora/cores/paleta.json +30 -0
  352. package/materiais/aurora/cores/paleta.png +0 -0
  353. package/materiais/aurora/formas/CartaoVidro.tsx +29 -0
  354. package/materiais/aurora/formas/CeuEstrelado.tsx +22 -0
  355. package/materiais/aurora/formas/Montanhas.tsx +24 -0
  356. package/materiais/aurora/pecas.json +485 -0
  357. package/materiais/aurora/referencia/analise.md +84 -0
  358. package/materiais/aurora/referencia/quadro-1.png +0 -0
  359. package/materiais/aurora/referencia/quadro-2.png +0 -0
  360. package/materiais/aurora/referencia/quadro-3.png +0 -0
  361. package/materiais/aurora/referencia/quadro-4.png +0 -0
  362. package/materiais/aurora/referencia/referencia.mp4 +0 -0
  363. package/materiais/aurora/regras.md +140 -0
  364. package/materiais/aurora/sons/Som.tsx +33 -0
  365. package/materiais/aurora/texturas/Fundo.tsx +35 -0
  366. package/materiais/aurora/texturas/Particulas.tsx +22 -0
  367. package/materiais/aurora/tipografia/AssinaturaMarca.tsx +24 -0
  368. package/materiais/aurora/tipografia/Legenda.tsx +23 -0
  369. package/materiais/aurora/tipografia/TituloSerif.tsx +36 -0
  370. package/materiais/aurora/transicoes/Cena.tsx +48 -0
  371. package/materiais/aurora/transicoes/CorteImpacto.tsx +16 -0
  372. package/materiais/aurora/transicoes/CortinaDeLuz.tsx +36 -0
  373. package/materiais/bauhaus/base.ts +74 -0
  374. package/materiais/bauhaus/camera/Camera.tsx +21 -0
  375. package/materiais/bauhaus/camera/CameraDeriva.tsx +37 -0
  376. package/materiais/bauhaus/cores/paleta.json +27 -0
  377. package/materiais/bauhaus/cores/paleta.png +0 -0
  378. package/materiais/bauhaus/formas/BarraDiagonal.tsx +20 -0
  379. package/materiais/bauhaus/formas/ComposicaoGeometrica.tsx +54 -0
  380. package/materiais/bauhaus/formas/ListaFaixas.tsx +27 -0
  381. package/materiais/bauhaus/formas/Overlay.tsx +18 -0
  382. package/materiais/bauhaus/pecas.json +520 -0
  383. package/materiais/bauhaus/referencia/analise.md +81 -0
  384. package/materiais/bauhaus/referencia/quadro-1.png +0 -0
  385. package/materiais/bauhaus/referencia/quadro-2.png +0 -0
  386. package/materiais/bauhaus/referencia/quadro-3.png +0 -0
  387. package/materiais/bauhaus/referencia/quadro-4.png +0 -0
  388. package/materiais/bauhaus/referencia/referencia.mp4 +0 -0
  389. package/materiais/bauhaus/regras.md +127 -0
  390. package/materiais/bauhaus/sons/Som.tsx +30 -0
  391. package/materiais/bauhaus/texturas/Fundo.tsx +13 -0
  392. package/materiais/bauhaus/texturas/Particulas.tsx +22 -0
  393. package/materiais/bauhaus/tipografia/AssinaturaMarca.tsx +26 -0
  394. package/materiais/bauhaus/tipografia/NumeroBauhaus.tsx +21 -0
  395. package/materiais/bauhaus/tipografia/TituloBauhaus.tsx +32 -0
  396. package/materiais/bauhaus/transicoes/Cena.tsx +36 -0
  397. package/materiais/bauhaus/transicoes/CorteImpacto.tsx +16 -0
  398. package/materiais/brutalista/base.ts +71 -0
  399. package/materiais/brutalista/camera/CameraDeriva.tsx +37 -0
  400. package/materiais/brutalista/cores/paleta.json +25 -0
  401. package/materiais/brutalista/cores/paleta.png +0 -0
  402. package/materiais/brutalista/formas/BlocoSombra.tsx +18 -0
  403. package/materiais/brutalista/formas/CartaoFotoBruto.tsx +19 -0
  404. package/materiais/brutalista/formas/FitaAlerta.tsx +20 -0
  405. package/materiais/brutalista/formas/ListaBruta.tsx +23 -0
  406. package/materiais/brutalista/formas/MonoEnorme.tsx +43 -0
  407. package/materiais/brutalista/formas/QuadroCor.tsx +14 -0
  408. package/materiais/brutalista/formas/Terminal.tsx +25 -0
  409. package/materiais/brutalista/pecas.json +559 -0
  410. package/materiais/brutalista/referencia/analise.md +81 -0
  411. package/materiais/brutalista/referencia/quadro-1.png +0 -0
  412. package/materiais/brutalista/referencia/quadro-2.png +0 -0
  413. package/materiais/brutalista/referencia/quadro-3.png +0 -0
  414. package/materiais/brutalista/referencia/quadro-4.png +0 -0
  415. package/materiais/brutalista/referencia/referencia.mp4 +0 -0
  416. package/materiais/brutalista/regras.md +128 -0
  417. package/materiais/brutalista/sons/Som.tsx +38 -0
  418. package/materiais/brutalista/texturas/Fundo.tsx +9 -0
  419. package/materiais/brutalista/texturas/Particulas.tsx +22 -0
  420. package/materiais/brutalista/tipografia/AssinaturaMarca.tsx +21 -0
  421. package/materiais/brutalista/tipografia/ContadorGrande.tsx +21 -0
  422. package/materiais/brutalista/transicoes/Cena.tsx +41 -0
  423. package/materiais/brutalista/transicoes/CorteImpacto.tsx +16 -0
  424. package/materiais/campos-de-cor/base.ts +87 -0
  425. package/materiais/campos-de-cor/camera/Camera.tsx +23 -0
  426. package/materiais/campos-de-cor/camera/CameraDeriva.tsx +37 -0
  427. package/materiais/campos-de-cor/cores/paleta.json +25 -0
  428. package/materiais/campos-de-cor/cores/paleta.png +0 -0
  429. package/materiais/campos-de-cor/formas/Asterisco.tsx +26 -0
  430. package/materiais/campos-de-cor/formas/CampoDeCor.tsx +39 -0
  431. package/materiais/campos-de-cor/formas/FormaGeometrica.tsx +37 -0
  432. package/materiais/campos-de-cor/formas/ListaRegua.tsx +30 -0
  433. package/materiais/campos-de-cor/pecas.json +534 -0
  434. package/materiais/campos-de-cor/referencia/analise.md +81 -0
  435. package/materiais/campos-de-cor/referencia/quadro-1.png +0 -0
  436. package/materiais/campos-de-cor/referencia/quadro-2.png +0 -0
  437. package/materiais/campos-de-cor/referencia/quadro-3.png +0 -0
  438. package/materiais/campos-de-cor/referencia/quadro-4.png +0 -0
  439. package/materiais/campos-de-cor/referencia/referencia.mp4 +0 -0
  440. package/materiais/campos-de-cor/regras.md +125 -0
  441. package/materiais/campos-de-cor/sons/Som.tsx +39 -0
  442. package/materiais/campos-de-cor/texturas/Fundo.tsx +11 -0
  443. package/materiais/campos-de-cor/texturas/Particulas.tsx +22 -0
  444. package/materiais/campos-de-cor/tipografia/AssinaturaMarca.tsx +18 -0
  445. package/materiais/campos-de-cor/tipografia/FitaDeTexto.tsx +24 -0
  446. package/materiais/campos-de-cor/tipografia/LegendaItalica.tsx +12 -0
  447. package/materiais/campos-de-cor/tipografia/PalavraGigante.tsx +44 -0
  448. package/materiais/campos-de-cor/transicoes/Cena.tsx +46 -0
  449. package/materiais/campos-de-cor/transicoes/CorteImpacto.tsx +16 -0
  450. package/materiais/cartaz-cinetico/base.ts +72 -0
  451. package/materiais/cartaz-cinetico/camera/CameraDeriva.tsx +37 -0
  452. package/materiais/cartaz-cinetico/cores/paleta.json +26 -0
  453. package/materiais/cartaz-cinetico/cores/paleta.png +0 -0
  454. package/materiais/cartaz-cinetico/formas/CirculoPoster.tsx +22 -0
  455. package/materiais/cartaz-cinetico/formas/PilhaCartaz.tsx +40 -0
  456. package/materiais/cartaz-cinetico/formas/Selo.tsx +25 -0
  457. package/materiais/cartaz-cinetico/pecas.json +524 -0
  458. package/materiais/cartaz-cinetico/referencia/analise.md +83 -0
  459. package/materiais/cartaz-cinetico/referencia/quadro-1.png +0 -0
  460. package/materiais/cartaz-cinetico/referencia/quadro-2.png +0 -0
  461. package/materiais/cartaz-cinetico/referencia/quadro-3.png +0 -0
  462. package/materiais/cartaz-cinetico/referencia/quadro-4.png +0 -0
  463. package/materiais/cartaz-cinetico/referencia/referencia.mp4 +0 -0
  464. package/materiais/cartaz-cinetico/regras.md +131 -0
  465. package/materiais/cartaz-cinetico/sons/Som.tsx +38 -0
  466. package/materiais/cartaz-cinetico/texturas/Fundo.tsx +16 -0
  467. package/materiais/cartaz-cinetico/texturas/Particulas.tsx +22 -0
  468. package/materiais/cartaz-cinetico/tipografia/AssinaturaMarca.tsx +31 -0
  469. package/materiais/cartaz-cinetico/tipografia/CartazPalavra.tsx +40 -0
  470. package/materiais/cartaz-cinetico/tipografia/EcoPalavra.tsx +27 -0
  471. package/materiais/cartaz-cinetico/tipografia/RoletaPalavras.tsx +30 -0
  472. package/materiais/cartaz-cinetico/transicoes/Cena.tsx +41 -0
  473. package/materiais/cartaz-cinetico/transicoes/CorteImpacto.tsx +16 -0
  474. package/materiais/colagem/base.ts +77 -0
  475. package/materiais/colagem/camera/Camera.tsx +21 -0
  476. package/materiais/colagem/camera/CameraDeriva.tsx +37 -0
  477. package/materiais/colagem/cores/paleta.json +30 -0
  478. package/materiais/colagem/cores/paleta.png +0 -0
  479. package/materiais/colagem/formas/FitaAdesiva.tsx +11 -0
  480. package/materiais/colagem/formas/FotoRasgada.tsx +26 -0
  481. package/materiais/colagem/formas/ListaRecortes.tsx +23 -0
  482. package/materiais/colagem/formas/NotaDatilografada.tsx +35 -0
  483. package/materiais/colagem/formas/RecorteForma.tsx +23 -0
  484. package/materiais/colagem/lib/rasgado.ts +16 -0
  485. package/materiais/colagem/pecas.json +547 -0
  486. package/materiais/colagem/referencia/analise.md +82 -0
  487. package/materiais/colagem/referencia/quadro-1.png +0 -0
  488. package/materiais/colagem/referencia/quadro-2.png +0 -0
  489. package/materiais/colagem/referencia/quadro-3.png +0 -0
  490. package/materiais/colagem/referencia/quadro-4.png +0 -0
  491. package/materiais/colagem/referencia/referencia.mp4 +0 -0
  492. package/materiais/colagem/regras.md +129 -0
  493. package/materiais/colagem/sons/Som.tsx +30 -0
  494. package/materiais/colagem/texturas/Fundo.tsx +16 -0
  495. package/materiais/colagem/texturas/Particulas.tsx +22 -0
  496. package/materiais/colagem/tipografia/AssinaturaMarca.tsx +17 -0
  497. package/materiais/colagem/tipografia/TituloRecorte.tsx +34 -0
  498. package/materiais/colagem/transicoes/Cena.tsx +36 -0
  499. package/materiais/colagem/transicoes/CorteImpacto.tsx +16 -0
  500. package/materiais/contagem/base.ts +79 -0
  501. package/materiais/contagem/camera/CameraDeriva.tsx +37 -0
  502. package/materiais/contagem/cores/paleta.json +27 -0
  503. package/materiais/contagem/cores/paleta.png +0 -0
  504. package/materiais/contagem/formas/AnelTempo.tsx +36 -0
  505. package/materiais/contagem/formas/BarraDias.tsx +41 -0
  506. package/materiais/contagem/formas/CarimboData.tsx +37 -0
  507. package/materiais/contagem/formas/RelogioFlip.tsx +51 -0
  508. package/materiais/contagem/pecas.json +509 -0
  509. package/materiais/contagem/referencia/analise.md +85 -0
  510. package/materiais/contagem/referencia/quadro-1.png +0 -0
  511. package/materiais/contagem/referencia/quadro-2.png +0 -0
  512. package/materiais/contagem/referencia/quadro-3.png +0 -0
  513. package/materiais/contagem/referencia/quadro-4.png +0 -0
  514. package/materiais/contagem/referencia/referencia.mp4 +0 -0
  515. package/materiais/contagem/regras.md +134 -0
  516. package/materiais/contagem/sons/Som.tsx +41 -0
  517. package/materiais/contagem/texturas/Fundo.tsx +27 -0
  518. package/materiais/contagem/texturas/Particulas.tsx +22 -0
  519. package/materiais/contagem/tipografia/NumeroRolando.tsx +49 -0
  520. package/materiais/contagem/transicoes/Cena.tsx +39 -0
  521. package/materiais/contagem/transicoes/CorteImpacto.tsx +16 -0
  522. package/materiais/convite-evento/base.ts +82 -0
  523. package/materiais/convite-evento/camera/CameraDeriva.tsx +37 -0
  524. package/materiais/convite-evento/cores/paleta.json +27 -0
  525. package/materiais/convite-evento/cores/paleta.png +0 -0
  526. package/materiais/convite-evento/formas/BotaoInscricao.tsx +36 -0
  527. package/materiais/convite-evento/formas/DataGigante.tsx +37 -0
  528. package/materiais/convite-evento/formas/IngressoBilhete.tsx +40 -0
  529. package/materiais/convite-evento/formas/LugarGigante.tsx +38 -0
  530. package/materiais/convite-evento/formas/SeloRotativo.tsx +32 -0
  531. package/materiais/convite-evento/pecas.json +511 -0
  532. package/materiais/convite-evento/referencia/analise.md +84 -0
  533. package/materiais/convite-evento/referencia/quadro-1.png +0 -0
  534. package/materiais/convite-evento/referencia/quadro-2.png +0 -0
  535. package/materiais/convite-evento/referencia/quadro-3.png +0 -0
  536. package/materiais/convite-evento/referencia/quadro-4.png +0 -0
  537. package/materiais/convite-evento/referencia/referencia.mp4 +0 -0
  538. package/materiais/convite-evento/regras.md +135 -0
  539. package/materiais/convite-evento/sons/Som.tsx +40 -0
  540. package/materiais/convite-evento/texturas/Fundo.tsx +30 -0
  541. package/materiais/convite-evento/texturas/Particulas.tsx +22 -0
  542. package/materiais/convite-evento/tipografia/TituloEvento.tsx +33 -0
  543. package/materiais/convite-evento/transicoes/Cena.tsx +39 -0
  544. package/materiais/convite-evento/transicoes/CorteImpacto.tsx +16 -0
  545. package/materiais/corte-podcast/base.ts +82 -0
  546. package/materiais/corte-podcast/camera/CameraDeriva.tsx +37 -0
  547. package/materiais/corte-podcast/cores/paleta.json +28 -0
  548. package/materiais/corte-podcast/cores/paleta.png +0 -0
  549. package/materiais/corte-podcast/formas/BarraEpisodio.tsx +43 -0
  550. package/materiais/corte-podcast/formas/CartaoConvidado.tsx +32 -0
  551. package/materiais/corte-podcast/formas/OndaAudio.tsx +41 -0
  552. package/materiais/corte-podcast/formas/SeloEpisodio.tsx +33 -0
  553. package/materiais/corte-podcast/pecas.json +516 -0
  554. package/materiais/corte-podcast/referencia/analise.md +84 -0
  555. package/materiais/corte-podcast/referencia/quadro-1.png +0 -0
  556. package/materiais/corte-podcast/referencia/quadro-2.png +0 -0
  557. package/materiais/corte-podcast/referencia/quadro-3.png +0 -0
  558. package/materiais/corte-podcast/referencia/quadro-4.png +0 -0
  559. package/materiais/corte-podcast/referencia/referencia.mp4 +0 -0
  560. package/materiais/corte-podcast/regras.md +132 -0
  561. package/materiais/corte-podcast/sons/Som.tsx +40 -0
  562. package/materiais/corte-podcast/texturas/Fundo.tsx +27 -0
  563. package/materiais/corte-podcast/texturas/Particulas.tsx +22 -0
  564. package/materiais/corte-podcast/tipografia/CitacaoGrande.tsx +42 -0
  565. package/materiais/corte-podcast/tipografia/LegendaKaraoke.tsx +32 -0
  566. package/materiais/corte-podcast/transicoes/Cena.tsx +41 -0
  567. package/materiais/corte-podcast/transicoes/CorteImpacto.tsx +16 -0
  568. package/materiais/cubos/base.ts +97 -0
  569. package/materiais/cubos/camera/CameraDeriva.tsx +37 -0
  570. package/materiais/cubos/cores/paleta.json +29 -0
  571. package/materiais/cubos/cores/paleta.png +0 -0
  572. package/materiais/cubos/formas/Cubo.tsx +40 -0
  573. package/materiais/cubos/formas/CuboGiratorio.tsx +37 -0
  574. package/materiais/cubos/formas/MontagemDeCubos.tsx +58 -0
  575. package/materiais/cubos/formas/PlacaBloco.tsx +29 -0
  576. package/materiais/cubos/formas/TorreDeCubos.tsx +39 -0
  577. package/materiais/cubos/pecas.json +477 -0
  578. package/materiais/cubos/referencia/analise.md +83 -0
  579. package/materiais/cubos/referencia/quadro-1.png +0 -0
  580. package/materiais/cubos/referencia/quadro-2.png +0 -0
  581. package/materiais/cubos/referencia/quadro-3.png +0 -0
  582. package/materiais/cubos/referencia/quadro-4.png +0 -0
  583. package/materiais/cubos/referencia/referencia.mp4 +0 -0
  584. package/materiais/cubos/regras.md +136 -0
  585. package/materiais/cubos/sons/Som.tsx +33 -0
  586. package/materiais/cubos/texturas/Fundo.tsx +15 -0
  587. package/materiais/cubos/texturas/Particulas.tsx +22 -0
  588. package/materiais/cubos/tipografia/AssinaturaMarca.tsx +29 -0
  589. package/materiais/cubos/transicoes/Cena.tsx +48 -0
  590. package/materiais/cubos/transicoes/CorteImpacto.tsx +16 -0
  591. package/materiais/dashboard-dados/base.ts +87 -0
  592. package/materiais/dashboard-dados/camera/Camera.tsx +23 -0
  593. package/materiais/dashboard-dados/camera/CameraDeriva.tsx +37 -0
  594. package/materiais/dashboard-dados/cores/paleta.json +30 -0
  595. package/materiais/dashboard-dados/cores/paleta.png +0 -0
  596. package/materiais/dashboard-dados/formas/BarrasCrescendo.tsx +27 -0
  597. package/materiais/dashboard-dados/formas/LinhaTendencia.tsx +29 -0
  598. package/materiais/dashboard-dados/formas/RankingBarras.tsx +27 -0
  599. package/materiais/dashboard-dados/formas/RoscaDados.tsx +39 -0
  600. package/materiais/dashboard-dados/pecas.json +490 -0
  601. package/materiais/dashboard-dados/referencia/analise.md +84 -0
  602. package/materiais/dashboard-dados/referencia/quadro-1.png +0 -0
  603. package/materiais/dashboard-dados/referencia/quadro-2.png +0 -0
  604. package/materiais/dashboard-dados/referencia/quadro-3.png +0 -0
  605. package/materiais/dashboard-dados/referencia/quadro-4.png +0 -0
  606. package/materiais/dashboard-dados/referencia/referencia.mp4 +0 -0
  607. package/materiais/dashboard-dados/regras.md +130 -0
  608. package/materiais/dashboard-dados/sons/Som.tsx +39 -0
  609. package/materiais/dashboard-dados/texturas/Fundo.tsx +12 -0
  610. package/materiais/dashboard-dados/texturas/Particulas.tsx +22 -0
  611. package/materiais/dashboard-dados/tipografia/AssinaturaMarca.tsx +19 -0
  612. package/materiais/dashboard-dados/tipografia/NumeroGigante.tsx +21 -0
  613. package/materiais/dashboard-dados/transicoes/Cena.tsx +46 -0
  614. package/materiais/dashboard-dados/transicoes/CorteImpacto.tsx +16 -0
  615. package/materiais/depoimento/base.ts +83 -0
  616. package/materiais/depoimento/camera/CameraDeriva.tsx +37 -0
  617. package/materiais/depoimento/cores/paleta.json +29 -0
  618. package/materiais/depoimento/cores/paleta.png +0 -0
  619. package/materiais/depoimento/formas/Avatar.tsx +37 -0
  620. package/materiais/depoimento/formas/CartaoDepoimento.tsx +69 -0
  621. package/materiais/depoimento/formas/FaixaAvatares.tsx +41 -0
  622. package/materiais/depoimento/formas/NotaGigante.tsx +38 -0
  623. package/materiais/depoimento/formas/PilhaCartoes.tsx +37 -0
  624. package/materiais/depoimento/formas/SeloVerificado.tsx +29 -0
  625. package/materiais/depoimento/pecas.json +548 -0
  626. package/materiais/depoimento/referencia/analise.md +84 -0
  627. package/materiais/depoimento/referencia/quadro-1.png +0 -0
  628. package/materiais/depoimento/referencia/quadro-2.png +0 -0
  629. package/materiais/depoimento/referencia/quadro-3.png +0 -0
  630. package/materiais/depoimento/referencia/quadro-4.png +0 -0
  631. package/materiais/depoimento/referencia/referencia.mp4 +0 -0
  632. package/materiais/depoimento/regras.md +135 -0
  633. package/materiais/depoimento/sons/Som.tsx +41 -0
  634. package/materiais/depoimento/texturas/Estrelas.tsx +34 -0
  635. package/materiais/depoimento/texturas/Fundo.tsx +23 -0
  636. package/materiais/depoimento/texturas/Particulas.tsx +22 -0
  637. package/materiais/depoimento/transicoes/Cena.tsx +39 -0
  638. package/materiais/depoimento/transicoes/CorteImpacto.tsx +16 -0
  639. package/materiais/infografico/base.ts +80 -0
  640. package/materiais/infografico/camera/CameraDeriva.tsx +37 -0
  641. package/materiais/infografico/cores/paleta.json +28 -0
  642. package/materiais/infografico/cores/paleta.png +0 -0
  643. package/materiais/infografico/formas/Anotacao.tsx +34 -0
  644. package/materiais/infografico/formas/CadeiaPassos.tsx +49 -0
  645. package/materiais/infografico/formas/GraficoBarras.tsx +41 -0
  646. package/materiais/infografico/formas/Icone.tsx +35 -0
  647. package/materiais/infografico/formas/NoProcesso.tsx +33 -0
  648. package/materiais/infografico/formas/SetaCurva.tsx +33 -0
  649. package/materiais/infografico/pecas.json +540 -0
  650. package/materiais/infografico/referencia/analise.md +84 -0
  651. package/materiais/infografico/referencia/quadro-1.png +0 -0
  652. package/materiais/infografico/referencia/quadro-2.png +0 -0
  653. package/materiais/infografico/referencia/quadro-3.png +0 -0
  654. package/materiais/infografico/referencia/quadro-4.png +0 -0
  655. package/materiais/infografico/referencia/referencia.mp4 +0 -0
  656. package/materiais/infografico/regras.md +132 -0
  657. package/materiais/infografico/sons/Som.tsx +40 -0
  658. package/materiais/infografico/texturas/Fundo.tsx +23 -0
  659. package/materiais/infografico/texturas/Particulas.tsx +22 -0
  660. package/materiais/infografico/tipografia/NumeroDestaque.tsx +35 -0
  661. package/materiais/infografico/transicoes/Cena.tsx +39 -0
  662. package/materiais/infografico/transicoes/CorteImpacto.tsx +16 -0
  663. package/materiais/isometrico/base.ts +86 -0
  664. package/materiais/isometrico/camera/Camera.tsx +23 -0
  665. package/materiais/isometrico/camera/CameraDeriva.tsx +37 -0
  666. package/materiais/isometrico/cores/paleta.json +29 -0
  667. package/materiais/isometrico/cores/paleta.png +0 -0
  668. package/materiais/isometrico/formas/BlocosMontando.tsx +36 -0
  669. package/materiais/isometrico/formas/CidadeDeDados.tsx +33 -0
  670. package/materiais/isometrico/formas/RedeDeBlocos.tsx +41 -0
  671. package/materiais/isometrico/pecas.json +503 -0
  672. package/materiais/isometrico/referencia/analise.md +83 -0
  673. package/materiais/isometrico/referencia/quadro-1.png +0 -0
  674. package/materiais/isometrico/referencia/quadro-2.png +0 -0
  675. package/materiais/isometrico/referencia/quadro-3.png +0 -0
  676. package/materiais/isometrico/referencia/quadro-4.png +0 -0
  677. package/materiais/isometrico/referencia/referencia.mp4 +0 -0
  678. package/materiais/isometrico/regras.md +125 -0
  679. package/materiais/isometrico/sons/Som.tsx +39 -0
  680. package/materiais/isometrico/texturas/Fundo.tsx +13 -0
  681. package/materiais/isometrico/texturas/Particulas.tsx +22 -0
  682. package/materiais/isometrico/tipografia/AssinaturaMarca.tsx +24 -0
  683. package/materiais/isometrico/tipografia/LegendaPlaca.tsx +18 -0
  684. package/materiais/isometrico/tipografia/TextoNoChao.tsx +28 -0
  685. package/materiais/isometrico/transicoes/Cena.tsx +46 -0
  686. package/materiais/isometrico/transicoes/CorteImpacto.tsx +16 -0
  687. package/materiais/jornal/base.ts +76 -0
  688. package/materiais/jornal/camera/CameraDeriva.tsx +37 -0
  689. package/materiais/jornal/cores/paleta.json +27 -0
  690. package/materiais/jornal/cores/paleta.png +0 -0
  691. package/materiais/jornal/formas/Cabecalho.tsx +21 -0
  692. package/materiais/jornal/formas/Carimbo.tsx +18 -0
  693. package/materiais/jornal/formas/Colunas.tsx +24 -0
  694. package/materiais/jornal/formas/FotoMeiaTinta.tsx +20 -0
  695. package/materiais/jornal/formas/JornalGirando.tsx +27 -0
  696. package/materiais/jornal/formas/Ticker.tsx +19 -0
  697. package/materiais/jornal/pecas.json +535 -0
  698. package/materiais/jornal/referencia/analise.md +81 -0
  699. package/materiais/jornal/referencia/quadro-1.png +0 -0
  700. package/materiais/jornal/referencia/quadro-2.png +0 -0
  701. package/materiais/jornal/referencia/quadro-3.png +0 -0
  702. package/materiais/jornal/referencia/quadro-4.png +0 -0
  703. package/materiais/jornal/referencia/referencia.mp4 +0 -0
  704. package/materiais/jornal/regras.md +131 -0
  705. package/materiais/jornal/sons/Som.tsx +38 -0
  706. package/materiais/jornal/texturas/Fundo.tsx +18 -0
  707. package/materiais/jornal/texturas/Particulas.tsx +22 -0
  708. package/materiais/jornal/tipografia/AssinaturaMarca.tsx +25 -0
  709. package/materiais/jornal/tipografia/Manchete.tsx +30 -0
  710. package/materiais/jornal/transicoes/Cena.tsx +41 -0
  711. package/materiais/jornal/transicoes/CorteImpacto.tsx +16 -0
  712. package/materiais/legenda-viva/base.ts +73 -0
  713. package/materiais/legenda-viva/camera/CameraDeriva.tsx +37 -0
  714. package/materiais/legenda-viva/cores/paleta.json +27 -0
  715. package/materiais/legenda-viva/cores/paleta.png +0 -0
  716. package/materiais/legenda-viva/formas/ChipTema.tsx +19 -0
  717. package/materiais/legenda-viva/formas/OndaVoz.tsx +23 -0
  718. package/materiais/legenda-viva/formas/QuadroFalante.tsx +17 -0
  719. package/materiais/legenda-viva/pecas.json +503 -0
  720. package/materiais/legenda-viva/referencia/analise.md +79 -0
  721. package/materiais/legenda-viva/referencia/quadro-1.png +0 -0
  722. package/materiais/legenda-viva/referencia/quadro-2.png +0 -0
  723. package/materiais/legenda-viva/referencia/quadro-3.png +0 -0
  724. package/materiais/legenda-viva/referencia/quadro-4.png +0 -0
  725. package/materiais/legenda-viva/referencia/referencia.mp4 +0 -0
  726. package/materiais/legenda-viva/regras.md +130 -0
  727. package/materiais/legenda-viva/sons/Som.tsx +38 -0
  728. package/materiais/legenda-viva/texturas/Fundo.tsx +6 -0
  729. package/materiais/legenda-viva/texturas/Particulas.tsx +22 -0
  730. package/materiais/legenda-viva/tipografia/AssinaturaMarca.tsx +29 -0
  731. package/materiais/legenda-viva/tipografia/LegendaCaixa.tsx +36 -0
  732. package/materiais/legenda-viva/tipografia/LegendaPalavra.tsx +32 -0
  733. package/materiais/legenda-viva/tipografia/PalavraGigante.tsx +18 -0
  734. package/materiais/legenda-viva/transicoes/Cena.tsx +41 -0
  735. package/materiais/legenda-viva/transicoes/CorteImpacto.tsx +16 -0
  736. package/materiais/luxo/base.ts +85 -0
  737. package/materiais/luxo/camera/CameraDeriva.tsx +37 -0
  738. package/materiais/luxo/cores/paleta.json +28 -0
  739. package/materiais/luxo/cores/paleta.png +0 -0
  740. package/materiais/luxo/formas/ConviteOuro.tsx +34 -0
  741. package/materiais/luxo/formas/LinhaOuro.tsx +24 -0
  742. package/materiais/luxo/formas/MolduraArco.tsx +36 -0
  743. package/materiais/luxo/formas/Monograma.tsx +35 -0
  744. package/materiais/luxo/pecas.json +505 -0
  745. package/materiais/luxo/referencia/analise.md +82 -0
  746. package/materiais/luxo/referencia/quadro-1.png +0 -0
  747. package/materiais/luxo/referencia/quadro-2.png +0 -0
  748. package/materiais/luxo/referencia/quadro-3.png +0 -0
  749. package/materiais/luxo/referencia/quadro-4.png +0 -0
  750. package/materiais/luxo/referencia/referencia.mp4 +0 -0
  751. package/materiais/luxo/regras.md +132 -0
  752. package/materiais/luxo/sons/Som.tsx +40 -0
  753. package/materiais/luxo/texturas/Fundo.tsx +26 -0
  754. package/materiais/luxo/texturas/Particulas.tsx +22 -0
  755. package/materiais/luxo/tipografia/LegendaFina.tsx +25 -0
  756. package/materiais/luxo/tipografia/TituloSerifa.tsx +35 -0
  757. package/materiais/luxo/transicoes/Cena.tsx +36 -0
  758. package/materiais/luxo/transicoes/CorteImpacto.tsx +16 -0
  759. package/materiais/mapa/base.ts +89 -0
  760. package/materiais/mapa/camera/CameraDeriva.tsx +37 -0
  761. package/materiais/mapa/cores/paleta.json +33 -0
  762. package/materiais/mapa/cores/paleta.png +0 -0
  763. package/materiais/mapa/formas/CartaoEndereco.tsx +40 -0
  764. package/materiais/mapa/formas/ChipTempo.tsx +29 -0
  765. package/materiais/mapa/formas/MapaBase.tsx +63 -0
  766. package/materiais/mapa/formas/Pino.tsx +38 -0
  767. package/materiais/mapa/formas/RotaAnimada.tsx +38 -0
  768. package/materiais/mapa/pecas.json +529 -0
  769. package/materiais/mapa/referencia/analise.md +85 -0
  770. package/materiais/mapa/referencia/quadro-1.png +0 -0
  771. package/materiais/mapa/referencia/quadro-2.png +0 -0
  772. package/materiais/mapa/referencia/quadro-3.png +0 -0
  773. package/materiais/mapa/referencia/quadro-4.png +0 -0
  774. package/materiais/mapa/referencia/referencia.mp4 +0 -0
  775. package/materiais/mapa/regras.md +135 -0
  776. package/materiais/mapa/sons/Som.tsx +41 -0
  777. package/materiais/mapa/texturas/Fundo.tsx +25 -0
  778. package/materiais/mapa/texturas/Particulas.tsx +22 -0
  779. package/materiais/mapa/tipografia/TituloLocal.tsx +38 -0
  780. package/materiais/mapa/transicoes/Cena.tsx +41 -0
  781. package/materiais/mapa/transicoes/CorteImpacto.tsx +16 -0
  782. package/materiais/massinha/base.ts +79 -0
  783. package/materiais/massinha/camera/Camera.tsx +21 -0
  784. package/materiais/massinha/camera/CameraDeriva.tsx +37 -0
  785. package/materiais/massinha/cores/paleta.json +32 -0
  786. package/materiais/massinha/cores/paleta.png +0 -0
  787. package/materiais/massinha/formas/BichinhoMassa.tsx +30 -0
  788. package/materiais/massinha/formas/BolasMassa.tsx +25 -0
  789. package/materiais/massinha/formas/FormaMassa.tsx +23 -0
  790. package/materiais/massinha/formas/ListaMassa.tsx +19 -0
  791. package/materiais/massinha/formas/Overlay.tsx +11 -0
  792. package/materiais/massinha/formas/PlacaMassa.tsx +24 -0
  793. package/materiais/massinha/pecas.json +544 -0
  794. package/materiais/massinha/referencia/analise.md +81 -0
  795. package/materiais/massinha/referencia/quadro-1.png +0 -0
  796. package/materiais/massinha/referencia/quadro-2.png +0 -0
  797. package/materiais/massinha/referencia/quadro-3.png +0 -0
  798. package/materiais/massinha/referencia/quadro-4.png +0 -0
  799. package/materiais/massinha/referencia/referencia.mp4 +0 -0
  800. package/materiais/massinha/regras.md +129 -0
  801. package/materiais/massinha/sons/Som.tsx +30 -0
  802. package/materiais/massinha/texturas/Fundo.tsx +12 -0
  803. package/materiais/massinha/texturas/Particulas.tsx +22 -0
  804. package/materiais/massinha/tipografia/AssinaturaMarca.tsx +20 -0
  805. package/materiais/massinha/tipografia/TituloMassa.tsx +31 -0
  806. package/materiais/massinha/transicoes/Cena.tsx +36 -0
  807. package/materiais/massinha/transicoes/CorteImpacto.tsx +16 -0
  808. package/materiais/memphis/base.ts +78 -0
  809. package/materiais/memphis/camera/Camera.tsx +21 -0
  810. package/materiais/memphis/camera/CameraDeriva.tsx +37 -0
  811. package/materiais/memphis/cores/paleta.json +31 -0
  812. package/materiais/memphis/cores/paleta.png +0 -0
  813. package/materiais/memphis/formas/CartaoMemphis.tsx +16 -0
  814. package/materiais/memphis/formas/FitaMarquee.tsx +21 -0
  815. package/materiais/memphis/formas/FormasMemphis.tsx +46 -0
  816. package/materiais/memphis/formas/ListaPilulas.tsx +17 -0
  817. package/materiais/memphis/formas/Overlay.tsx +23 -0
  818. package/materiais/memphis/pecas.json +544 -0
  819. package/materiais/memphis/referencia/analise.md +82 -0
  820. package/materiais/memphis/referencia/quadro-1.png +0 -0
  821. package/materiais/memphis/referencia/quadro-2.png +0 -0
  822. package/materiais/memphis/referencia/quadro-3.png +0 -0
  823. package/materiais/memphis/referencia/quadro-4.png +0 -0
  824. package/materiais/memphis/referencia/referencia.mp4 +0 -0
  825. package/materiais/memphis/regras.md +130 -0
  826. package/materiais/memphis/sons/Som.tsx +30 -0
  827. package/materiais/memphis/texturas/Fundo.tsx +15 -0
  828. package/materiais/memphis/texturas/Particulas.tsx +22 -0
  829. package/materiais/memphis/tipografia/AssinaturaMarca.tsx +20 -0
  830. package/materiais/memphis/tipografia/NumeroGigante.tsx +19 -0
  831. package/materiais/memphis/tipografia/TituloMemphis.tsx +28 -0
  832. package/materiais/memphis/transicoes/Cena.tsx +36 -0
  833. package/materiais/memphis/transicoes/CorteImpacto.tsx +16 -0
  834. package/materiais/metal-liquido/base.ts +94 -0
  835. package/materiais/metal-liquido/camera/CameraDeriva.tsx +37 -0
  836. package/materiais/metal-liquido/cores/paleta.json +30 -0
  837. package/materiais/metal-liquido/cores/paleta.png +0 -0
  838. package/materiais/metal-liquido/formas/AnelCromo.tsx +28 -0
  839. package/materiais/metal-liquido/formas/BolhasCromadas.tsx +53 -0
  840. package/materiais/metal-liquido/formas/EsferaCromo.tsx +32 -0
  841. package/materiais/metal-liquido/formas/PilulaCromo.tsx +23 -0
  842. package/materiais/metal-liquido/pecas.json +469 -0
  843. package/materiais/metal-liquido/referencia/analise.md +84 -0
  844. package/materiais/metal-liquido/referencia/quadro-1.png +0 -0
  845. package/materiais/metal-liquido/referencia/quadro-2.png +0 -0
  846. package/materiais/metal-liquido/referencia/quadro-3.png +0 -0
  847. package/materiais/metal-liquido/referencia/quadro-4.png +0 -0
  848. package/materiais/metal-liquido/referencia/referencia.mp4 +0 -0
  849. package/materiais/metal-liquido/regras.md +135 -0
  850. package/materiais/metal-liquido/sons/Som.tsx +33 -0
  851. package/materiais/metal-liquido/texturas/Fundo.tsx +20 -0
  852. package/materiais/metal-liquido/texturas/Particulas.tsx +22 -0
  853. package/materiais/metal-liquido/tipografia/AssinaturaMarca.tsx +26 -0
  854. package/materiais/metal-liquido/tipografia/TituloCromo.tsx +32 -0
  855. package/materiais/metal-liquido/transicoes/Cena.tsx +48 -0
  856. package/materiais/metal-liquido/transicoes/CorteImpacto.tsx +16 -0
  857. package/materiais/minimal/base.ts +80 -0
  858. package/materiais/minimal/camera/CameraDeriva.tsx +37 -0
  859. package/materiais/minimal/cores/paleta.json +26 -0
  860. package/materiais/minimal/cores/paleta.png +0 -0
  861. package/materiais/minimal/formas/FormaMorph.tsx +44 -0
  862. package/materiais/minimal/formas/LinhaFina.tsx +24 -0
  863. package/materiais/minimal/formas/PontoMovel.tsx +27 -0
  864. package/materiais/minimal/pecas.json +505 -0
  865. package/materiais/minimal/referencia/analise.md +84 -0
  866. package/materiais/minimal/referencia/quadro-1.png +0 -0
  867. package/materiais/minimal/referencia/quadro-2.png +0 -0
  868. package/materiais/minimal/referencia/quadro-3.png +0 -0
  869. package/materiais/minimal/referencia/quadro-4.png +0 -0
  870. package/materiais/minimal/referencia/referencia.mp4 +0 -0
  871. package/materiais/minimal/regras.md +127 -0
  872. package/materiais/minimal/sons/Som.tsx +40 -0
  873. package/materiais/minimal/texturas/Fundo.tsx +20 -0
  874. package/materiais/minimal/texturas/Particulas.tsx +22 -0
  875. package/materiais/minimal/tipografia/FraseUnica.tsx +33 -0
  876. package/materiais/minimal/tipografia/NumeroSolo.tsx +33 -0
  877. package/materiais/minimal/tipografia/RodapeMinimal.tsx +26 -0
  878. package/materiais/minimal/transicoes/Cena.tsx +39 -0
  879. package/materiais/minimal/transicoes/CorteImpacto.tsx +16 -0
  880. package/materiais/neon-cidade/base.ts +100 -0
  881. package/materiais/neon-cidade/camera/CameraDeriva.tsx +37 -0
  882. package/materiais/neon-cidade/cores/paleta.json +29 -0
  883. package/materiais/neon-cidade/cores/paleta.png +0 -0
  884. package/materiais/neon-cidade/formas/CaixaLuminosa.tsx +40 -0
  885. package/materiais/neon-cidade/formas/FormaNeon.tsx +42 -0
  886. package/materiais/neon-cidade/formas/Horizonte.tsx +34 -0
  887. package/materiais/neon-cidade/formas/LetreiroNeon.tsx +46 -0
  888. package/materiais/neon-cidade/pecas.json +464 -0
  889. package/materiais/neon-cidade/referencia/analise.md +84 -0
  890. package/materiais/neon-cidade/referencia/quadro-1.png +0 -0
  891. package/materiais/neon-cidade/referencia/quadro-2.png +0 -0
  892. package/materiais/neon-cidade/referencia/quadro-3.png +0 -0
  893. package/materiais/neon-cidade/referencia/quadro-4.png +0 -0
  894. package/materiais/neon-cidade/referencia/referencia.mp4 +0 -0
  895. package/materiais/neon-cidade/regras.md +137 -0
  896. package/materiais/neon-cidade/sons/Som.tsx +33 -0
  897. package/materiais/neon-cidade/texturas/Chuva.tsx +23 -0
  898. package/materiais/neon-cidade/texturas/Fundo.tsx +18 -0
  899. package/materiais/neon-cidade/texturas/Particulas.tsx +22 -0
  900. package/materiais/neon-cidade/tipografia/AssinaturaMarca.tsx +24 -0
  901. package/materiais/neon-cidade/transicoes/Cena.tsx +48 -0
  902. package/materiais/neon-cidade/transicoes/CorteImpacto.tsx +16 -0
  903. package/materiais/notion-editorial/base.ts +87 -0
  904. package/materiais/notion-editorial/camera/Camera.tsx +23 -0
  905. package/materiais/notion-editorial/camera/CameraDeriva.tsx +37 -0
  906. package/materiais/notion-editorial/cores/paleta.json +28 -0
  907. package/materiais/notion-editorial/cores/paleta.png +0 -0
  908. package/materiais/notion-editorial/formas/BlocoNota.tsx +38 -0
  909. package/materiais/notion-editorial/formas/Diagrama.tsx +29 -0
  910. package/materiais/notion-editorial/formas/PassosNumerados.tsx +23 -0
  911. package/materiais/notion-editorial/formas/RabiscoIcone.tsx +33 -0
  912. package/materiais/notion-editorial/pecas.json +496 -0
  913. package/materiais/notion-editorial/referencia/analise.md +83 -0
  914. package/materiais/notion-editorial/referencia/quadro-1.png +0 -0
  915. package/materiais/notion-editorial/referencia/quadro-2.png +0 -0
  916. package/materiais/notion-editorial/referencia/quadro-3.png +0 -0
  917. package/materiais/notion-editorial/referencia/quadro-4.png +0 -0
  918. package/materiais/notion-editorial/referencia/referencia.mp4 +0 -0
  919. package/materiais/notion-editorial/regras.md +126 -0
  920. package/materiais/notion-editorial/sons/Som.tsx +39 -0
  921. package/materiais/notion-editorial/texturas/Fundo.tsx +12 -0
  922. package/materiais/notion-editorial/texturas/Particulas.tsx +22 -0
  923. package/materiais/notion-editorial/tipografia/AssinaturaMarca.tsx +20 -0
  924. package/materiais/notion-editorial/tipografia/TextoSerifa.tsx +53 -0
  925. package/materiais/notion-editorial/transicoes/Cena.tsx +46 -0
  926. package/materiais/notion-editorial/transicoes/CorteImpacto.tsx +16 -0
  927. package/materiais/papel-recortado/base.ts +51 -0
  928. package/materiais/papel-recortado/camera/Camera.tsx +28 -0
  929. package/materiais/papel-recortado/camera/CameraDeriva.tsx +37 -0
  930. package/materiais/papel-recortado/cores/paleta.json +28 -0
  931. package/materiais/papel-recortado/cores/paleta.png +0 -0
  932. package/materiais/papel-recortado/formas/CamadaPapel.tsx +81 -0
  933. package/materiais/papel-recortado/formas/CartaoCamadas.tsx +38 -0
  934. package/materiais/papel-recortado/formas/EtiquetaPapel.tsx +40 -0
  935. package/materiais/papel-recortado/formas/Fita.tsx +21 -0
  936. package/materiais/papel-recortado/formas/FolhaPopUp.tsx +49 -0
  937. package/materiais/papel-recortado/formas/MolduraPapel.tsx +12 -0
  938. package/materiais/papel-recortado/pecas.json +545 -0
  939. package/materiais/papel-recortado/referencia/analise.md +82 -0
  940. package/materiais/papel-recortado/referencia/quadro-1.png +0 -0
  941. package/materiais/papel-recortado/referencia/quadro-2.png +0 -0
  942. package/materiais/papel-recortado/referencia/quadro-3.png +0 -0
  943. package/materiais/papel-recortado/referencia/quadro-4.png +0 -0
  944. package/materiais/papel-recortado/referencia/referencia.mp4 +0 -0
  945. package/materiais/papel-recortado/regras.md +117 -0
  946. package/materiais/papel-recortado/sons/Som.tsx +30 -0
  947. package/materiais/papel-recortado/texturas/Fundo.tsx +10 -0
  948. package/materiais/papel-recortado/texturas/Particulas.tsx +22 -0
  949. package/materiais/papel-recortado/tipografia/LetrasRecortadas.tsx +48 -0
  950. package/materiais/papel-recortado/transicoes/Cena.tsx +29 -0
  951. package/materiais/papel-recortado/transicoes/CorteImpacto.tsx +16 -0
  952. package/materiais/pixel/base.ts +79 -0
  953. package/materiais/pixel/camera/Camera.tsx +21 -0
  954. package/materiais/pixel/camera/CameraDeriva.tsx +37 -0
  955. package/materiais/pixel/cores/paleta.json +32 -0
  956. package/materiais/pixel/cores/paleta.png +0 -0
  957. package/materiais/pixel/formas/CaixaDialogo.tsx +22 -0
  958. package/materiais/pixel/formas/HudPlacar.tsx +19 -0
  959. package/materiais/pixel/formas/MenuPixel.tsx +19 -0
  960. package/materiais/pixel/formas/Overlay.tsx +14 -0
  961. package/materiais/pixel/formas/Sprite.tsx +33 -0
  962. package/materiais/pixel/pecas.json +543 -0
  963. package/materiais/pixel/referencia/analise.md +82 -0
  964. package/materiais/pixel/referencia/quadro-1.png +0 -0
  965. package/materiais/pixel/referencia/quadro-2.png +0 -0
  966. package/materiais/pixel/referencia/quadro-3.png +0 -0
  967. package/materiais/pixel/referencia/quadro-4.png +0 -0
  968. package/materiais/pixel/referencia/referencia.mp4 +0 -0
  969. package/materiais/pixel/regras.md +129 -0
  970. package/materiais/pixel/sons/Som.tsx +30 -0
  971. package/materiais/pixel/texturas/ChuvaDeSprites.tsx +15 -0
  972. package/materiais/pixel/texturas/Fundo.tsx +23 -0
  973. package/materiais/pixel/texturas/Particulas.tsx +22 -0
  974. package/materiais/pixel/tipografia/AssinaturaMarca.tsx +18 -0
  975. package/materiais/pixel/tipografia/TituloPixel.tsx +31 -0
  976. package/materiais/pixel/transicoes/Cena.tsx +36 -0
  977. package/materiais/pixel/transicoes/CorteImpacto.tsx +16 -0
  978. package/materiais/pontos-3d/base.ts +92 -0
  979. package/materiais/pontos-3d/camera/CameraDeriva.tsx +37 -0
  980. package/materiais/pontos-3d/cores/paleta.json +28 -0
  981. package/materiais/pontos-3d/cores/paleta.png +0 -0
  982. package/materiais/pontos-3d/formas/NuvemDePontos.tsx +84 -0
  983. package/materiais/pontos-3d/formas/RotuloPonto.tsx +32 -0
  984. package/materiais/pontos-3d/pecas.json +481 -0
  985. package/materiais/pontos-3d/referencia/analise.md +85 -0
  986. package/materiais/pontos-3d/referencia/quadro-1.png +0 -0
  987. package/materiais/pontos-3d/referencia/quadro-2.png +0 -0
  988. package/materiais/pontos-3d/referencia/quadro-3.png +0 -0
  989. package/materiais/pontos-3d/referencia/quadro-4.png +0 -0
  990. package/materiais/pontos-3d/referencia/referencia.mp4 +0 -0
  991. package/materiais/pontos-3d/regras.md +136 -0
  992. package/materiais/pontos-3d/sons/Som.tsx +33 -0
  993. package/materiais/pontos-3d/texturas/Fundo.tsx +20 -0
  994. package/materiais/pontos-3d/texturas/Particulas.tsx +22 -0
  995. package/materiais/pontos-3d/tipografia/AssinaturaMarca.tsx +23 -0
  996. package/materiais/pontos-3d/tipografia/Contador.tsx +32 -0
  997. package/materiais/pontos-3d/tipografia/TextoDePontos.tsx +55 -0
  998. package/materiais/pontos-3d/tipografia/TituloSora.tsx +36 -0
  999. package/materiais/pontos-3d/transicoes/Cena.tsx +48 -0
  1000. package/materiais/pontos-3d/transicoes/CorteImpacto.tsx +16 -0
  1001. package/materiais/produto-3d/base.ts +109 -0
  1002. package/materiais/produto-3d/camera/Camera.tsx +23 -0
  1003. package/materiais/produto-3d/camera/CameraDeriva.tsx +37 -0
  1004. package/materiais/produto-3d/cores/paleta.json +31 -0
  1005. package/materiais/produto-3d/cores/paleta.png +0 -0
  1006. package/materiais/produto-3d/formas/Produto3D.tsx +131 -0
  1007. package/materiais/produto-3d/lib/produto3d-apoio.ts +21 -0
  1008. package/materiais/produto-3d/pecas.json +516 -0
  1009. package/materiais/produto-3d/referencia/analise.md +83 -0
  1010. package/materiais/produto-3d/referencia/quadro-1.png +0 -0
  1011. package/materiais/produto-3d/referencia/quadro-2.png +0 -0
  1012. package/materiais/produto-3d/referencia/quadro-3.png +0 -0
  1013. package/materiais/produto-3d/referencia/quadro-4.png +0 -0
  1014. package/materiais/produto-3d/referencia/referencia.mp4 +0 -0
  1015. package/materiais/produto-3d/regras.md +128 -0
  1016. package/materiais/produto-3d/sons/Som.tsx +39 -0
  1017. package/materiais/produto-3d/texturas/Fundo.tsx +45 -0
  1018. package/materiais/produto-3d/texturas/Particulas.tsx +22 -0
  1019. package/materiais/produto-3d/tipografia/AssinaturaMarca.tsx +28 -0
  1020. package/materiais/produto-3d/tipografia/NumeroDestaque.tsx +35 -0
  1021. package/materiais/produto-3d/tipografia/RotuloChamada.tsx +43 -0
  1022. package/materiais/produto-3d/tipografia/TituloMinimo.tsx +45 -0
  1023. package/materiais/produto-3d/transicoes/Cena.tsx +55 -0
  1024. package/materiais/produto-3d/transicoes/CorteImpacto.tsx +16 -0
  1025. package/materiais/produto-3d/transicoes/VarreduraLuz.tsx +22 -0
  1026. package/materiais/quadro-giz/base.ts +78 -0
  1027. package/materiais/quadro-giz/camera/Camera.tsx +21 -0
  1028. package/materiais/quadro-giz/camera/CameraDeriva.tsx +37 -0
  1029. package/materiais/quadro-giz/cores/paleta.json +31 -0
  1030. package/materiais/quadro-giz/cores/paleta.png +0 -0
  1031. package/materiais/quadro-giz/formas/ApagadorVarrendo.tsx +32 -0
  1032. package/materiais/quadro-giz/formas/CartaoGiz.tsx +25 -0
  1033. package/materiais/quadro-giz/formas/ContaNoQuadro.tsx +34 -0
  1034. package/materiais/quadro-giz/formas/DesenhoGiz.tsx +29 -0
  1035. package/materiais/quadro-giz/formas/ListaGiz.tsx +21 -0
  1036. package/materiais/quadro-giz/formas/Overlay.tsx +12 -0
  1037. package/materiais/quadro-giz/lib/traco.ts +9 -0
  1038. package/materiais/quadro-giz/pecas.json +546 -0
  1039. package/materiais/quadro-giz/referencia/analise.md +82 -0
  1040. package/materiais/quadro-giz/referencia/quadro-1.png +0 -0
  1041. package/materiais/quadro-giz/referencia/quadro-2.png +0 -0
  1042. package/materiais/quadro-giz/referencia/quadro-3.png +0 -0
  1043. package/materiais/quadro-giz/referencia/quadro-4.png +0 -0
  1044. package/materiais/quadro-giz/referencia/referencia.mp4 +0 -0
  1045. package/materiais/quadro-giz/regras.md +132 -0
  1046. package/materiais/quadro-giz/sons/Som.tsx +30 -0
  1047. package/materiais/quadro-giz/texturas/Fundo.tsx +21 -0
  1048. package/materiais/quadro-giz/texturas/Particulas.tsx +22 -0
  1049. package/materiais/quadro-giz/tipografia/AssinaturaMarca.tsx +20 -0
  1050. package/materiais/quadro-giz/tipografia/TituloGiz.tsx +29 -0
  1051. package/materiais/quadro-giz/transicoes/Cena.tsx +36 -0
  1052. package/materiais/quadro-giz/transicoes/CorteImpacto.tsx +16 -0
  1053. package/materiais/rabisco/base.ts +76 -0
  1054. package/materiais/rabisco/camera/Camera.tsx +21 -0
  1055. package/materiais/rabisco/camera/CameraDeriva.tsx +37 -0
  1056. package/materiais/rabisco/cores/paleta.json +29 -0
  1057. package/materiais/rabisco/cores/paleta.png +0 -0
  1058. package/materiais/rabisco/formas/Bonequinho.tsx +31 -0
  1059. package/materiais/rabisco/formas/CartaoRabiscado.tsx +27 -0
  1060. package/materiais/rabisco/formas/ListaRabiscada.tsx +23 -0
  1061. package/materiais/rabisco/formas/TracoDesenhando.tsx +31 -0
  1062. package/materiais/rabisco/lib/traco.ts +10 -0
  1063. package/materiais/rabisco/pecas.json +520 -0
  1064. package/materiais/rabisco/referencia/analise.md +82 -0
  1065. package/materiais/rabisco/referencia/quadro-1.png +0 -0
  1066. package/materiais/rabisco/referencia/quadro-2.png +0 -0
  1067. package/materiais/rabisco/referencia/quadro-3.png +0 -0
  1068. package/materiais/rabisco/referencia/quadro-4.png +0 -0
  1069. package/materiais/rabisco/referencia/referencia.mp4 +0 -0
  1070. package/materiais/rabisco/regras.md +126 -0
  1071. package/materiais/rabisco/sons/Som.tsx +30 -0
  1072. package/materiais/rabisco/texturas/Fundo.tsx +17 -0
  1073. package/materiais/rabisco/texturas/Particulas.tsx +22 -0
  1074. package/materiais/rabisco/tipografia/AssinaturaMarca.tsx +21 -0
  1075. package/materiais/rabisco/tipografia/TituloRabisco.tsx +28 -0
  1076. package/materiais/rabisco/transicoes/Cena.tsx +36 -0
  1077. package/materiais/rabisco/transicoes/CorteImpacto.tsx +16 -0
  1078. package/materiais/retro-70/base.ts +73 -0
  1079. package/materiais/retro-70/camera/CameraDeriva.tsx +37 -0
  1080. package/materiais/retro-70/cores/paleta.json +27 -0
  1081. package/materiais/retro-70/cores/paleta.png +0 -0
  1082. package/materiais/retro-70/formas/ArcoListras.tsx +25 -0
  1083. package/materiais/retro-70/formas/CartaoData.tsx +24 -0
  1084. package/materiais/retro-70/formas/FaixaOnda.tsx +27 -0
  1085. package/materiais/retro-70/formas/Flor70.tsx +25 -0
  1086. package/materiais/retro-70/formas/FotoArredondada.tsx +19 -0
  1087. package/materiais/retro-70/formas/RaiosDeSol.tsx +27 -0
  1088. package/materiais/retro-70/pecas.json +533 -0
  1089. package/materiais/retro-70/referencia/analise.md +81 -0
  1090. package/materiais/retro-70/referencia/quadro-1.png +0 -0
  1091. package/materiais/retro-70/referencia/quadro-2.png +0 -0
  1092. package/materiais/retro-70/referencia/quadro-3.png +0 -0
  1093. package/materiais/retro-70/referencia/quadro-4.png +0 -0
  1094. package/materiais/retro-70/referencia/referencia.mp4 +0 -0
  1095. package/materiais/retro-70/regras.md +132 -0
  1096. package/materiais/retro-70/sons/Som.tsx +38 -0
  1097. package/materiais/retro-70/texturas/Fundo.tsx +11 -0
  1098. package/materiais/retro-70/texturas/Particulas.tsx +22 -0
  1099. package/materiais/retro-70/tipografia/AssinaturaMarca.tsx +21 -0
  1100. package/materiais/retro-70/tipografia/TituloGordo.tsx +28 -0
  1101. package/materiais/retro-70/transicoes/Cena.tsx +41 -0
  1102. package/materiais/retro-70/transicoes/CorteImpacto.tsx +16 -0
  1103. package/materiais/revista/base.ts +76 -0
  1104. package/materiais/revista/camera/CameraDeriva.tsx +37 -0
  1105. package/materiais/revista/cores/paleta.json +27 -0
  1106. package/materiais/revista/cores/paleta.png +0 -0
  1107. package/materiais/revista/formas/ColagemFotos.tsx +22 -0
  1108. package/materiais/revista/formas/Folio.tsx +19 -0
  1109. package/materiais/revista/formas/FotoSangrando.tsx +24 -0
  1110. package/materiais/revista/formas/PaginaDupla.tsx +36 -0
  1111. package/materiais/revista/pecas.json +506 -0
  1112. package/materiais/revista/referencia/analise.md +80 -0
  1113. package/materiais/revista/referencia/quadro-1.png +0 -0
  1114. package/materiais/revista/referencia/quadro-2.png +0 -0
  1115. package/materiais/revista/referencia/quadro-3.png +0 -0
  1116. package/materiais/revista/referencia/quadro-4.png +0 -0
  1117. package/materiais/revista/referencia/referencia.mp4 +0 -0
  1118. package/materiais/revista/regras.md +130 -0
  1119. package/materiais/revista/sons/Som.tsx +38 -0
  1120. package/materiais/revista/texturas/Fundo.tsx +11 -0
  1121. package/materiais/revista/texturas/Particulas.tsx +22 -0
  1122. package/materiais/revista/tipografia/AssinaturaMarca.tsx +23 -0
  1123. package/materiais/revista/tipografia/CitacaoGrande.tsx +27 -0
  1124. package/materiais/revista/tipografia/TituloEditorial.tsx +31 -0
  1125. package/materiais/revista/transicoes/Cena.tsx +41 -0
  1126. package/materiais/revista/transicoes/CorteImpacto.tsx +16 -0
  1127. package/materiais/risografia/base.ts +73 -0
  1128. package/materiais/risografia/camera/Camera.tsx +21 -0
  1129. package/materiais/risografia/camera/CameraDeriva.tsx +37 -0
  1130. package/materiais/risografia/cores/paleta.json +26 -0
  1131. package/materiais/risografia/cores/paleta.png +0 -0
  1132. package/materiais/risografia/formas/BolaReticula.tsx +26 -0
  1133. package/materiais/risografia/formas/FormaRiso.tsx +24 -0
  1134. package/materiais/risografia/formas/ListaRiso.tsx +22 -0
  1135. package/materiais/risografia/formas/Overlay.tsx +18 -0
  1136. package/materiais/risografia/formas/TarjaCarimbo.tsx +20 -0
  1137. package/materiais/risografia/pecas.json +538 -0
  1138. package/materiais/risografia/referencia/analise.md +82 -0
  1139. package/materiais/risografia/referencia/quadro-1.png +0 -0
  1140. package/materiais/risografia/referencia/quadro-2.png +0 -0
  1141. package/materiais/risografia/referencia/quadro-3.png +0 -0
  1142. package/materiais/risografia/referencia/quadro-4.png +0 -0
  1143. package/materiais/risografia/referencia/referencia.mp4 +0 -0
  1144. package/materiais/risografia/regras.md +123 -0
  1145. package/materiais/risografia/sons/Som.tsx +30 -0
  1146. package/materiais/risografia/texturas/Fundo.tsx +12 -0
  1147. package/materiais/risografia/texturas/Particulas.tsx +22 -0
  1148. package/materiais/risografia/tipografia/AssinaturaMarca.tsx +21 -0
  1149. package/materiais/risografia/tipografia/NumeroRiso.tsx +21 -0
  1150. package/materiais/risografia/tipografia/TituloRiso.tsx +26 -0
  1151. package/materiais/risografia/transicoes/Cena.tsx +36 -0
  1152. package/materiais/risografia/transicoes/CorteImpacto.tsx +16 -0
  1153. package/materiais/saas-linear/camera/CameraDeriva.tsx +37 -0
  1154. package/materiais/saas-linear/cores/paleta.png +0 -0
  1155. package/materiais/saas-linear/pecas.json +40 -34
  1156. package/materiais/saas-linear/referencia/analise.md +87 -0
  1157. package/materiais/saas-linear/referencia/quadro-1.png +0 -0
  1158. package/materiais/saas-linear/referencia/quadro-2.png +0 -0
  1159. package/materiais/saas-linear/referencia/quadro-3.png +0 -0
  1160. package/materiais/saas-linear/referencia/quadro-4.png +0 -0
  1161. package/materiais/saas-linear/referencia/referencia.mp4 +0 -0
  1162. package/materiais/saas-linear/sons/Som.tsx +1 -1
  1163. package/materiais/stripe-ondas/base.ts +85 -0
  1164. package/materiais/stripe-ondas/camera/Camera.tsx +23 -0
  1165. package/materiais/stripe-ondas/camera/CameraDeriva.tsx +37 -0
  1166. package/materiais/stripe-ondas/cores/paleta.json +28 -0
  1167. package/materiais/stripe-ondas/cores/paleta.png +0 -0
  1168. package/materiais/stripe-ondas/formas/CartaoPagamento.tsx +35 -0
  1169. package/materiais/stripe-ondas/formas/FaixaDeOndas.tsx +49 -0
  1170. package/materiais/stripe-ondas/formas/GraficoOnda.tsx +34 -0
  1171. package/materiais/stripe-ondas/formas/PainelCodigo.tsx +36 -0
  1172. package/materiais/stripe-ondas/formas/SelosDeMetodo.tsx +27 -0
  1173. package/materiais/stripe-ondas/pecas.json +510 -0
  1174. package/materiais/stripe-ondas/referencia/analise.md +83 -0
  1175. package/materiais/stripe-ondas/referencia/quadro-1.png +0 -0
  1176. package/materiais/stripe-ondas/referencia/quadro-2.png +0 -0
  1177. package/materiais/stripe-ondas/referencia/quadro-3.png +0 -0
  1178. package/materiais/stripe-ondas/referencia/quadro-4.png +0 -0
  1179. package/materiais/stripe-ondas/referencia/referencia.mp4 +0 -0
  1180. package/materiais/stripe-ondas/regras.md +131 -0
  1181. package/materiais/stripe-ondas/sons/Som.tsx +39 -0
  1182. package/materiais/stripe-ondas/texturas/Fundo.tsx +11 -0
  1183. package/materiais/stripe-ondas/texturas/Particulas.tsx +22 -0
  1184. package/materiais/stripe-ondas/tipografia/AssinaturaMarca.tsx +18 -0
  1185. package/materiais/stripe-ondas/tipografia/TituloLimpo.tsx +27 -0
  1186. package/materiais/stripe-ondas/transicoes/Cena.tsx +46 -0
  1187. package/materiais/stripe-ondas/transicoes/CorteImpacto.tsx +16 -0
  1188. package/materiais/suica/base.ts +76 -0
  1189. package/materiais/suica/camera/CameraDeriva.tsx +37 -0
  1190. package/materiais/suica/cores/paleta.json +27 -0
  1191. package/materiais/suica/cores/paleta.png +0 -0
  1192. package/materiais/suica/formas/DiscoFoto.tsx +20 -0
  1193. package/materiais/suica/formas/Indice.tsx +17 -0
  1194. package/materiais/suica/formas/ListaIndice.tsx +25 -0
  1195. package/materiais/suica/formas/Regua.tsx +20 -0
  1196. package/materiais/suica/pecas.json +528 -0
  1197. package/materiais/suica/referencia/analise.md +80 -0
  1198. package/materiais/suica/referencia/quadro-1.png +0 -0
  1199. package/materiais/suica/referencia/quadro-2.png +0 -0
  1200. package/materiais/suica/referencia/quadro-3.png +0 -0
  1201. package/materiais/suica/referencia/quadro-4.png +0 -0
  1202. package/materiais/suica/referencia/referencia.mp4 +0 -0
  1203. package/materiais/suica/regras.md +129 -0
  1204. package/materiais/suica/sons/Som.tsx +38 -0
  1205. package/materiais/suica/texturas/Fundo.tsx +16 -0
  1206. package/materiais/suica/texturas/GradeFotos.tsx +21 -0
  1207. package/materiais/suica/texturas/Particulas.tsx +22 -0
  1208. package/materiais/suica/tipografia/AssinaturaMarca.tsx +21 -0
  1209. package/materiais/suica/tipografia/NumeroGigante.tsx +21 -0
  1210. package/materiais/suica/tipografia/TituloGrade.tsx +38 -0
  1211. package/materiais/suica/transicoes/Cena.tsx +41 -0
  1212. package/materiais/suica/transicoes/CorteImpacto.tsx +16 -0
  1213. package/materiais/synthwave/base.ts +75 -0
  1214. package/materiais/synthwave/camera/CameraDeriva.tsx +37 -0
  1215. package/materiais/synthwave/cores/paleta.json +29 -0
  1216. package/materiais/synthwave/cores/paleta.png +0 -0
  1217. package/materiais/synthwave/formas/Montanhas.tsx +27 -0
  1218. package/materiais/synthwave/formas/Palmeiras.tsx +30 -0
  1219. package/materiais/synthwave/formas/QuadroHUD.tsx +33 -0
  1220. package/materiais/synthwave/formas/SolListrado.tsx +29 -0
  1221. package/materiais/synthwave/pecas.json +491 -0
  1222. package/materiais/synthwave/referencia/analise.md +81 -0
  1223. package/materiais/synthwave/referencia/quadro-1.png +0 -0
  1224. package/materiais/synthwave/referencia/quadro-2.png +0 -0
  1225. package/materiais/synthwave/referencia/quadro-3.png +0 -0
  1226. package/materiais/synthwave/referencia/quadro-4.png +0 -0
  1227. package/materiais/synthwave/referencia/referencia.mp4 +0 -0
  1228. package/materiais/synthwave/regras.md +132 -0
  1229. package/materiais/synthwave/sons/Som.tsx +38 -0
  1230. package/materiais/synthwave/texturas/Estrelas.tsx +27 -0
  1231. package/materiais/synthwave/texturas/Fundo.tsx +20 -0
  1232. package/materiais/synthwave/texturas/Particulas.tsx +22 -0
  1233. package/materiais/synthwave/tipografia/AssinaturaMarca.tsx +26 -0
  1234. package/materiais/synthwave/tipografia/TituloNeon.tsx +30 -0
  1235. package/materiais/synthwave/transicoes/Cena.tsx +41 -0
  1236. package/materiais/synthwave/transicoes/CorteImpacto.tsx +16 -0
  1237. package/materiais/terminal/base.ts +67 -0
  1238. package/materiais/terminal/camera/Camera.tsx +23 -0
  1239. package/materiais/terminal/camera/CameraDeriva.tsx +37 -0
  1240. package/materiais/terminal/cores/paleta.json +32 -0
  1241. package/materiais/terminal/cores/paleta.png +0 -0
  1242. package/materiais/terminal/formas/ArteAscii.tsx +61 -0
  1243. package/materiais/terminal/formas/BarraProgresso.tsx +42 -0
  1244. package/materiais/terminal/formas/BarraStatus.tsx +18 -0
  1245. package/materiais/terminal/formas/BootBios.tsx +41 -0
  1246. package/materiais/terminal/formas/LinhaComando.tsx +31 -0
  1247. package/materiais/terminal/formas/Monitor.tsx +42 -0
  1248. package/materiais/terminal/formas/PainelCaixa.tsx +35 -0
  1249. package/materiais/terminal/formas/Tela.tsx +25 -0
  1250. package/materiais/terminal/pecas.json +591 -0
  1251. package/materiais/terminal/referencia/analise.md +84 -0
  1252. package/materiais/terminal/referencia/quadro-1.png +0 -0
  1253. package/materiais/terminal/referencia/quadro-2.png +0 -0
  1254. package/materiais/terminal/referencia/quadro-3.png +0 -0
  1255. package/materiais/terminal/referencia/quadro-4.png +0 -0
  1256. package/materiais/terminal/referencia/referencia.mp4 +0 -0
  1257. package/materiais/terminal/regras.md +124 -0
  1258. package/materiais/terminal/sons/Som.tsx +32 -0
  1259. package/materiais/terminal/texturas/Fundo.tsx +22 -0
  1260. package/materiais/terminal/texturas/Particulas.tsx +22 -0
  1261. package/materiais/terminal/tipografia/TextoGrande.tsx +35 -0
  1262. package/materiais/terminal/transicoes/Cena.tsx +25 -0
  1263. package/materiais/terminal/transicoes/CorteImpacto.tsx +16 -0
  1264. package/materiais/tiktok-energia/base.ts +92 -0
  1265. package/materiais/tiktok-energia/camera/CameraDeriva.tsx +37 -0
  1266. package/materiais/tiktok-energia/cores/paleta.json +27 -0
  1267. package/materiais/tiktok-energia/cores/paleta.png +0 -0
  1268. package/materiais/tiktok-energia/formas/EmojiSticker.tsx +21 -0
  1269. package/materiais/tiktok-energia/formas/FotoSoco.tsx +27 -0
  1270. package/materiais/tiktok-energia/pecas.json +470 -0
  1271. package/materiais/tiktok-energia/referencia/analise.md +87 -0
  1272. package/materiais/tiktok-energia/referencia/quadro-1.png +0 -0
  1273. package/materiais/tiktok-energia/referencia/quadro-2.png +0 -0
  1274. package/materiais/tiktok-energia/referencia/quadro-3.png +0 -0
  1275. package/materiais/tiktok-energia/referencia/quadro-4.png +0 -0
  1276. package/materiais/tiktok-energia/referencia/referencia.mp4 +0 -0
  1277. package/materiais/tiktok-energia/regras.md +135 -0
  1278. package/materiais/tiktok-energia/sons/Som.tsx +33 -0
  1279. package/materiais/tiktok-energia/texturas/Fundo.tsx +8 -0
  1280. package/materiais/tiktok-energia/texturas/Particulas.tsx +22 -0
  1281. package/materiais/tiktok-energia/tipografia/AssinaturaMarca.tsx +25 -0
  1282. package/materiais/tiktok-energia/tipografia/PalavraSoco.tsx +29 -0
  1283. package/materiais/tiktok-energia/tipografia/TextoCaixa.tsx +25 -0
  1284. package/materiais/tiktok-energia/transicoes/Cena.tsx +48 -0
  1285. package/materiais/tiktok-energia/transicoes/CorteDeCor.tsx +22 -0
  1286. package/materiais/tiktok-energia/transicoes/CorteImpacto.tsx +16 -0
  1287. package/materiais/tunel/base.ts +97 -0
  1288. package/materiais/tunel/camera/CameraDeriva.tsx +37 -0
  1289. package/materiais/tunel/cores/paleta.json +28 -0
  1290. package/materiais/tunel/cores/paleta.png +0 -0
  1291. package/materiais/tunel/formas/LinhasDeVelocidade.tsx +25 -0
  1292. package/materiais/tunel/formas/PlacaVoadora.tsx +28 -0
  1293. package/materiais/tunel/formas/TunelDeFormas.tsx +52 -0
  1294. package/materiais/tunel/pecas.json +475 -0
  1295. package/materiais/tunel/referencia/analise.md +83 -0
  1296. package/materiais/tunel/referencia/quadro-1.png +0 -0
  1297. package/materiais/tunel/referencia/quadro-2.png +0 -0
  1298. package/materiais/tunel/referencia/quadro-3.png +0 -0
  1299. package/materiais/tunel/referencia/quadro-4.png +0 -0
  1300. package/materiais/tunel/referencia/referencia.mp4 +0 -0
  1301. package/materiais/tunel/regras.md +134 -0
  1302. package/materiais/tunel/sons/Som.tsx +33 -0
  1303. package/materiais/tunel/texturas/Fundo.tsx +13 -0
  1304. package/materiais/tunel/texturas/Particulas.tsx +22 -0
  1305. package/materiais/tunel/tipografia/AssinaturaMarca.tsx +22 -0
  1306. package/materiais/tunel/tipografia/NumeroGigante.tsx +28 -0
  1307. package/materiais/tunel/tipografia/TituloTunel.tsx +32 -0
  1308. package/materiais/tunel/transicoes/Cena.tsx +48 -0
  1309. package/materiais/tunel/transicoes/CorteImpacto.tsx +16 -0
  1310. package/materiais/tutorial-tela/base.ts +65 -0
  1311. package/materiais/tutorial-tela/camera/CameraDeriva.tsx +37 -0
  1312. package/materiais/tutorial-tela/camera/CameraTela.tsx +29 -0
  1313. package/materiais/tutorial-tela/cores/paleta.json +32 -0
  1314. package/materiais/tutorial-tela/cores/paleta.png +0 -0
  1315. package/materiais/tutorial-tela/formas/Cursor.tsx +36 -0
  1316. package/materiais/tutorial-tela/formas/DestaqueCaixa.tsx +17 -0
  1317. package/materiais/tutorial-tela/formas/JanelaApp.tsx +81 -0
  1318. package/materiais/tutorial-tela/formas/TeclaAtalho.tsx +29 -0
  1319. package/materiais/tutorial-tela/pecas.json +526 -0
  1320. package/materiais/tutorial-tela/referencia/analise.md +86 -0
  1321. package/materiais/tutorial-tela/referencia/quadro-1.png +0 -0
  1322. package/materiais/tutorial-tela/referencia/quadro-2.png +0 -0
  1323. package/materiais/tutorial-tela/referencia/quadro-3.png +0 -0
  1324. package/materiais/tutorial-tela/referencia/quadro-4.png +0 -0
  1325. package/materiais/tutorial-tela/referencia/referencia.mp4 +0 -0
  1326. package/materiais/tutorial-tela/regras.md +139 -0
  1327. package/materiais/tutorial-tela/sons/Som.tsx +41 -0
  1328. package/materiais/tutorial-tela/texturas/Fundo.tsx +12 -0
  1329. package/materiais/tutorial-tela/texturas/Particulas.tsx +22 -0
  1330. package/materiais/tutorial-tela/tipografia/PassoChamada.tsx +22 -0
  1331. package/materiais/tutorial-tela/tipografia/TituloTela.tsx +30 -0
  1332. package/materiais/tutorial-tela/transicoes/Cena.tsx +33 -0
  1333. package/materiais/tutorial-tela/transicoes/CorteImpacto.tsx +16 -0
  1334. package/materiais/ugc-reels/base.ts +92 -0
  1335. package/materiais/ugc-reels/camera/CameraDeriva.tsx +37 -0
  1336. package/materiais/ugc-reels/cores/paleta.json +28 -0
  1337. package/materiais/ugc-reels/cores/paleta.png +0 -0
  1338. package/materiais/ugc-reels/formas/BotaoLink.tsx +24 -0
  1339. package/materiais/ugc-reels/formas/CabecalhoPerfil.tsx +38 -0
  1340. package/materiais/ugc-reels/formas/Comentario.tsx +29 -0
  1341. package/materiais/ugc-reels/formas/NotaDeMao.tsx +29 -0
  1342. package/materiais/ugc-reels/formas/Reacoes.tsx +26 -0
  1343. package/materiais/ugc-reels/formas/VideoCelular.tsx +37 -0
  1344. package/materiais/ugc-reels/pecas.json +512 -0
  1345. package/materiais/ugc-reels/referencia/analise.md +85 -0
  1346. package/materiais/ugc-reels/referencia/quadro-1.png +0 -0
  1347. package/materiais/ugc-reels/referencia/quadro-2.png +0 -0
  1348. package/materiais/ugc-reels/referencia/quadro-3.png +0 -0
  1349. package/materiais/ugc-reels/referencia/quadro-4.png +0 -0
  1350. package/materiais/ugc-reels/referencia/referencia.mp4 +0 -0
  1351. package/materiais/ugc-reels/regras.md +138 -0
  1352. package/materiais/ugc-reels/sons/Som.tsx +33 -0
  1353. package/materiais/ugc-reels/texturas/Fundo.tsx +8 -0
  1354. package/materiais/ugc-reels/texturas/Particulas.tsx +22 -0
  1355. package/materiais/ugc-reels/tipografia/AssinaturaMarca.tsx +28 -0
  1356. package/materiais/ugc-reels/tipografia/LegendaEmoji.tsx +43 -0
  1357. package/materiais/ugc-reels/transicoes/Cena.tsx +48 -0
  1358. package/materiais/ugc-reels/transicoes/CorteImpacto.tsx +16 -0
  1359. package/materiais/vercel-mono/base.ts +82 -0
  1360. package/materiais/vercel-mono/camera/Camera.tsx +23 -0
  1361. package/materiais/vercel-mono/camera/CameraDeriva.tsx +37 -0
  1362. package/materiais/vercel-mono/cores/paleta.json +25 -0
  1363. package/materiais/vercel-mono/cores/paleta.png +0 -0
  1364. package/materiais/vercel-mono/formas/FaixaOutline.tsx +25 -0
  1365. package/materiais/vercel-mono/formas/Quadro.tsx +28 -0
  1366. package/materiais/vercel-mono/formas/TerminalComando.tsx +33 -0
  1367. package/materiais/vercel-mono/formas/TrianguloGigante.tsx +27 -0
  1368. package/materiais/vercel-mono/pecas.json +504 -0
  1369. package/materiais/vercel-mono/referencia/analise.md +82 -0
  1370. package/materiais/vercel-mono/referencia/quadro-1.png +0 -0
  1371. package/materiais/vercel-mono/referencia/quadro-2.png +0 -0
  1372. package/materiais/vercel-mono/referencia/quadro-3.png +0 -0
  1373. package/materiais/vercel-mono/referencia/quadro-4.png +0 -0
  1374. package/materiais/vercel-mono/referencia/referencia.mp4 +0 -0
  1375. package/materiais/vercel-mono/regras.md +120 -0
  1376. package/materiais/vercel-mono/sons/Som.tsx +39 -0
  1377. package/materiais/vercel-mono/texturas/Fundo.tsx +6 -0
  1378. package/materiais/vercel-mono/texturas/GradeDeNumeros.tsx +27 -0
  1379. package/materiais/vercel-mono/texturas/Particulas.tsx +22 -0
  1380. package/materiais/vercel-mono/tipografia/AssinaturaMarca.tsx +18 -0
  1381. package/materiais/vercel-mono/tipografia/PalavraMono.tsx +31 -0
  1382. package/materiais/vercel-mono/transicoes/Cena.tsx +46 -0
  1383. package/materiais/vercel-mono/transicoes/CorteImpacto.tsx +16 -0
  1384. package/materiais/vhs-90/base.ts +75 -0
  1385. package/materiais/vhs-90/camera/CameraDeriva.tsx +37 -0
  1386. package/materiais/vhs-90/cores/paleta.json +29 -0
  1387. package/materiais/vhs-90/cores/paleta.png +0 -0
  1388. package/materiais/vhs-90/formas/BarrasRastreio.tsx +21 -0
  1389. package/materiais/vhs-90/formas/CapaVHS.tsx +28 -0
  1390. package/materiais/vhs-90/formas/CarimboData.tsx +19 -0
  1391. package/materiais/vhs-90/formas/MenuOSD.tsx +27 -0
  1392. package/materiais/vhs-90/formas/TelaAzul.tsx +29 -0
  1393. package/materiais/vhs-90/pecas.json +507 -0
  1394. package/materiais/vhs-90/referencia/analise.md +81 -0
  1395. package/materiais/vhs-90/referencia/quadro-1.png +0 -0
  1396. package/materiais/vhs-90/referencia/quadro-2.png +0 -0
  1397. package/materiais/vhs-90/referencia/quadro-3.png +0 -0
  1398. package/materiais/vhs-90/referencia/quadro-4.png +0 -0
  1399. package/materiais/vhs-90/referencia/referencia.mp4 +0 -0
  1400. package/materiais/vhs-90/regras.md +133 -0
  1401. package/materiais/vhs-90/sons/Som.tsx +38 -0
  1402. package/materiais/vhs-90/texturas/Fundo.tsx +27 -0
  1403. package/materiais/vhs-90/texturas/Particulas.tsx +22 -0
  1404. package/materiais/vhs-90/tipografia/AssinaturaMarca.tsx +29 -0
  1405. package/materiais/vhs-90/tipografia/TituloFita.tsx +40 -0
  1406. package/materiais/vhs-90/transicoes/Cena.tsx +41 -0
  1407. package/materiais/vhs-90/transicoes/CorteImpacto.tsx +16 -0
  1408. package/materiais/vidro-ios/base.ts +87 -0
  1409. package/materiais/vidro-ios/camera/Camera.tsx +23 -0
  1410. package/materiais/vidro-ios/camera/CameraDeriva.tsx +37 -0
  1411. package/materiais/vidro-ios/cores/paleta.json +28 -0
  1412. package/materiais/vidro-ios/cores/paleta.png +0 -0
  1413. package/materiais/vidro-ios/formas/IlhaDinamica.tsx +24 -0
  1414. package/materiais/vidro-ios/formas/PainelControle.tsx +33 -0
  1415. package/materiais/vidro-ios/formas/PilhaNotificacoes.tsx +29 -0
  1416. package/materiais/vidro-ios/formas/WidgetsGrade.tsx +34 -0
  1417. package/materiais/vidro-ios/formas/vidro.tsx +20 -0
  1418. package/materiais/vidro-ios/pecas.json +504 -0
  1419. package/materiais/vidro-ios/referencia/analise.md +84 -0
  1420. package/materiais/vidro-ios/referencia/quadro-1.png +0 -0
  1421. package/materiais/vidro-ios/referencia/quadro-2.png +0 -0
  1422. package/materiais/vidro-ios/referencia/quadro-3.png +0 -0
  1423. package/materiais/vidro-ios/referencia/quadro-4.png +0 -0
  1424. package/materiais/vidro-ios/referencia/referencia.mp4 +0 -0
  1425. package/materiais/vidro-ios/regras.md +127 -0
  1426. package/materiais/vidro-ios/sons/Som.tsx +39 -0
  1427. package/materiais/vidro-ios/texturas/Fundo.tsx +17 -0
  1428. package/materiais/vidro-ios/texturas/Particulas.tsx +22 -0
  1429. package/materiais/vidro-ios/tipografia/AssinaturaMarca.tsx +21 -0
  1430. package/materiais/vidro-ios/tipografia/TituloVidro.tsx +22 -0
  1431. package/materiais/vidro-ios/transicoes/Cena.tsx +46 -0
  1432. package/materiais/vidro-ios/transicoes/CorteImpacto.tsx +16 -0
  1433. package/materiais/y2k-cromado/base.ts +75 -0
  1434. package/materiais/y2k-cromado/camera/CameraDeriva.tsx +37 -0
  1435. package/materiais/y2k-cromado/cores/paleta.json +29 -0
  1436. package/materiais/y2k-cromado/cores/paleta.png +0 -0
  1437. package/materiais/y2k-cromado/formas/Bolhas.tsx +30 -0
  1438. package/materiais/y2k-cromado/formas/CartaoGloss.tsx +26 -0
  1439. package/materiais/y2k-cromado/formas/FitaMarquee.tsx +20 -0
  1440. package/materiais/y2k-cromado/formas/JanelaY2K.tsx +31 -0
  1441. package/materiais/y2k-cromado/formas/OrbeCromo.tsx +20 -0
  1442. package/materiais/y2k-cromado/pecas.json +527 -0
  1443. package/materiais/y2k-cromado/referencia/analise.md +81 -0
  1444. package/materiais/y2k-cromado/referencia/quadro-1.png +0 -0
  1445. package/materiais/y2k-cromado/referencia/quadro-2.png +0 -0
  1446. package/materiais/y2k-cromado/referencia/quadro-3.png +0 -0
  1447. package/materiais/y2k-cromado/referencia/quadro-4.png +0 -0
  1448. package/materiais/y2k-cromado/referencia/referencia.mp4 +0 -0
  1449. package/materiais/y2k-cromado/regras.md +133 -0
  1450. package/materiais/y2k-cromado/sons/Som.tsx +38 -0
  1451. package/materiais/y2k-cromado/texturas/Brilhos.tsx +28 -0
  1452. package/materiais/y2k-cromado/texturas/Fundo.tsx +18 -0
  1453. package/materiais/y2k-cromado/texturas/Particulas.tsx +22 -0
  1454. package/materiais/y2k-cromado/tipografia/AssinaturaMarca.tsx +25 -0
  1455. package/materiais/y2k-cromado/tipografia/TextoCromo.tsx +34 -0
  1456. package/materiais/y2k-cromado/transicoes/Cena.tsx +41 -0
  1457. package/materiais/y2k-cromado/transicoes/CorteImpacto.tsx +16 -0
  1458. package/package.json +6 -2
  1459. package/skills/apresentacao-pptx/SKILL.md +1 -1
  1460. package/skills/carrossel-conferido/SKILL.md +21 -0
  1461. package/skills/cartaz-conferido/SKILL.md +28 -0
  1462. package/skills/deck-conferido/SKILL.md +5 -4
  1463. package/skills/documento-conferido/SKILL.md +23 -0
  1464. package/vendor/fontes/anton.woff2 +0 -0
  1465. package/vendor/fontes/caveat.woff2 +0 -0
  1466. package/vendor/fontes/inter.woff2 +0 -0
  1467. package/vendor/fontes/jetbrains-mono.woff2 +0 -0
  1468. package/vendor/fontes/montserrat.woff2 +0 -0
  1469. package/voz/primo_voz/__main__.py +1 -1
  1470. package/voz/primo_voz/app.py +8 -8
  1471. package/voz/primo_voz/transcrever.py +2 -2
  1472. package/kits/adesivos/assets/ASSETS.md +0 -22
  1473. package/kits/adesivos/elementos/AdesivoForma.tsx +0 -42
  1474. package/kits/adesivos/elementos/AdesivoFoto.tsx +0 -36
  1475. package/kits/adesivos/elementos/AdesivoTexto.tsx +0 -35
  1476. package/kits/adesivos/elementos/AssinaturaMarca.tsx +0 -36
  1477. package/kits/adesivos/elementos/Cena.tsx +0 -48
  1478. package/kits/adesivos/elementos/ChuvaDeAdesivos.tsx +0 -29
  1479. package/kits/adesivos/elementos/Fundo.tsx +0 -21
  1480. package/kits/adesivos/elementos/Montagem.tsx +0 -68
  1481. package/kits/adesivos/elementos/SeloPreco.tsx +0 -38
  1482. package/kits/adesivos/elementos/Som.tsx +0 -33
  1483. package/kits/adesivos/elementos/TituloEtiquetas.tsx +0 -33
  1484. package/kits/adesivos/elementos/base.ts +0 -101
  1485. package/kits/adesivos/elementos/index.ts +0 -16
  1486. package/kits/adesivos/exemplos/fotos/foto-01.jpg +0 -0
  1487. package/kits/adesivos/exemplos/fotos/foto-02.jpg +0 -0
  1488. package/kits/adesivos/exemplos/fotos/foto-03.jpg +0 -0
  1489. package/kits/adesivos/exemplos/logo-grude.svg +0 -1
  1490. package/kits/adesivos/exemplos/plano.json +0 -328
  1491. package/kits/adesivos/exemplos/roteiro.md +0 -21
  1492. package/kits/adesivos/preview.tsx +0 -15
  1493. package/kits/adesivos/receita.json +0 -212
  1494. package/kits/adesivos/regras/area-segura.md +0 -17
  1495. package/kits/adesivos/regras/cor.md +0 -23
  1496. package/kits/adesivos/regras/movimento.md +0 -17
  1497. package/kits/adesivos/regras/ritmo.md +0 -16
  1498. package/kits/adesivos/regras/som.md +0 -20
  1499. package/kits/adesivos/regras/tipografia.md +0 -16
  1500. package/kits/antes-depois/assets/ASSETS.md +0 -23
  1501. package/kits/antes-depois/elementos/BarraMedidor.tsx +0 -43
  1502. package/kits/antes-depois/elementos/Cena.tsx +0 -41
  1503. package/kits/antes-depois/elementos/FaixaMarquee.tsx +0 -35
  1504. package/kits/antes-depois/elementos/Fundo.tsx +0 -24
  1505. package/kits/antes-depois/elementos/ListaMudancas.tsx +0 -37
  1506. package/kits/antes-depois/elementos/Montagem.tsx +0 -59
  1507. package/kits/antes-depois/elementos/NumeroDelta.tsx +0 -36
  1508. package/kits/antes-depois/elementos/RotuloAntesDepois.tsx +0 -26
  1509. package/kits/antes-depois/elementos/Som.tsx +0 -40
  1510. package/kits/antes-depois/elementos/TelaDividida.tsx +0 -68
  1511. package/kits/antes-depois/elementos/base.ts +0 -82
  1512. package/kits/antes-depois/elementos/index.ts +0 -15
  1513. package/kits/antes-depois/exemplos/fotos/foto-07.jpg +0 -0
  1514. package/kits/antes-depois/exemplos/fotos/foto-08.jpg +0 -0
  1515. package/kits/antes-depois/exemplos/plano.json +0 -276
  1516. package/kits/antes-depois/exemplos/roteiro.md +0 -19
  1517. package/kits/antes-depois/preview.tsx +0 -13
  1518. package/kits/antes-depois/receita.json +0 -21
  1519. package/kits/antes-depois/regras/area-segura.md +0 -21
  1520. package/kits/antes-depois/regras/cor.md +0 -15
  1521. package/kits/antes-depois/regras/movimento.md +0 -23
  1522. package/kits/antes-depois/regras/ritmo.md +0 -15
  1523. package/kits/antes-depois/regras/som.md +0 -20
  1524. package/kits/antes-depois/regras/tipografia.md +0 -18
  1525. package/kits/apple-tipografico/assets/ASSETS.md +0 -23
  1526. package/kits/apple-tipografico/elementos/AssinaturaPreta.tsx +0 -33
  1527. package/kits/apple-tipografico/elementos/Camera.tsx +0 -23
  1528. package/kits/apple-tipografico/elementos/CartaoRadial.tsx +0 -41
  1529. package/kits/apple-tipografico/elementos/Cena.tsx +0 -55
  1530. package/kits/apple-tipografico/elementos/Fundo.tsx +0 -21
  1531. package/kits/apple-tipografico/elementos/LegendaCurta.tsx +0 -51
  1532. package/kits/apple-tipografico/elementos/Montagem.tsx +0 -55
  1533. package/kits/apple-tipografico/elementos/Produto3D.tsx +0 -140
  1534. package/kits/apple-tipografico/elementos/ProdutoFoto.tsx +0 -47
  1535. package/kits/apple-tipografico/elementos/Som.tsx +0 -40
  1536. package/kits/apple-tipografico/elementos/base.ts +0 -111
  1537. package/kits/apple-tipografico/elementos/index.ts +0 -18
  1538. package/kits/apple-tipografico/exemplos/logo-lume.svg +0 -1
  1539. package/kits/apple-tipografico/exemplos/plano.json +0 -56
  1540. package/kits/apple-tipografico/exemplos/roteiro.md +0 -19
  1541. package/kits/apple-tipografico/preview.tsx +0 -12
  1542. package/kits/apple-tipografico/receita.json +0 -22
  1543. package/kits/apple-tipografico/regras/area-segura.md +0 -19
  1544. package/kits/apple-tipografico/regras/cor.md +0 -24
  1545. package/kits/apple-tipografico/regras/movimento.md +0 -29
  1546. package/kits/apple-tipografico/regras/ritmo.md +0 -29
  1547. package/kits/apple-tipografico/regras/som.md +0 -20
  1548. package/kits/apple-tipografico/regras/tipografia.md +0 -21
  1549. package/kits/aquarela/assets/ASSETS.md +0 -21
  1550. package/kits/aquarela/elementos/AnotacaoManual.tsx +0 -40
  1551. package/kits/aquarela/elementos/AssinaturaMarca.tsx +0 -33
  1552. package/kits/aquarela/elementos/Cena.tsx +0 -48
  1553. package/kits/aquarela/elementos/Fundo.tsx +0 -24
  1554. package/kits/aquarela/elementos/ManchaTinta.tsx +0 -46
  1555. package/kits/aquarela/elementos/Montagem.tsx +0 -60
  1556. package/kits/aquarela/elementos/PapelRasgado.tsx +0 -50
  1557. package/kits/aquarela/elementos/Pincelada.tsx +0 -43
  1558. package/kits/aquarela/elementos/Pingos.tsx +0 -31
  1559. package/kits/aquarela/elementos/Som.tsx +0 -33
  1560. package/kits/aquarela/elementos/TituloPincel.tsx +0 -51
  1561. package/kits/aquarela/elementos/base.ts +0 -97
  1562. package/kits/aquarela/elementos/index.ts +0 -16
  1563. package/kits/aquarela/exemplos/logo-mare.svg +0 -1
  1564. package/kits/aquarela/exemplos/plano.json +0 -62
  1565. package/kits/aquarela/exemplos/roteiro.md +0 -21
  1566. package/kits/aquarela/preview.tsx +0 -12
  1567. package/kits/aquarela/receita.json +0 -213
  1568. package/kits/aquarela/regras/area-segura.md +0 -17
  1569. package/kits/aquarela/regras/cor.md +0 -23
  1570. package/kits/aquarela/regras/movimento.md +0 -19
  1571. package/kits/aquarela/regras/ritmo.md +0 -17
  1572. package/kits/aquarela/regras/som.md +0 -20
  1573. package/kits/aquarela/regras/tipografia.md +0 -16
  1574. package/kits/aurora/assets/ASSETS.md +0 -21
  1575. package/kits/aurora/elementos/AssinaturaMarca.tsx +0 -24
  1576. package/kits/aurora/elementos/CartaoVidro.tsx +0 -29
  1577. package/kits/aurora/elementos/Cena.tsx +0 -48
  1578. package/kits/aurora/elementos/CeuEstrelado.tsx +0 -22
  1579. package/kits/aurora/elementos/CortinaDeLuz.tsx +0 -36
  1580. package/kits/aurora/elementos/Fundo.tsx +0 -35
  1581. package/kits/aurora/elementos/Legenda.tsx +0 -23
  1582. package/kits/aurora/elementos/Montagem.tsx +0 -68
  1583. package/kits/aurora/elementos/Montanhas.tsx +0 -24
  1584. package/kits/aurora/elementos/Som.tsx +0 -33
  1585. package/kits/aurora/elementos/TituloSerif.tsx +0 -36
  1586. package/kits/aurora/elementos/base.ts +0 -93
  1587. package/kits/aurora/elementos/index.ts +0 -16
  1588. package/kits/aurora/exemplos/logo-boreal.svg +0 -1
  1589. package/kits/aurora/exemplos/plano.json +0 -204
  1590. package/kits/aurora/exemplos/roteiro.md +0 -19
  1591. package/kits/aurora/preview.tsx +0 -12
  1592. package/kits/aurora/receita.json +0 -146
  1593. package/kits/aurora/regras/area-segura.md +0 -18
  1594. package/kits/aurora/regras/cor.md +0 -24
  1595. package/kits/aurora/regras/movimento.md +0 -20
  1596. package/kits/aurora/regras/ritmo.md +0 -14
  1597. package/kits/aurora/regras/som.md +0 -20
  1598. package/kits/aurora/regras/tipografia.md +0 -15
  1599. package/kits/bauhaus/assets/ASSETS.md +0 -18
  1600. package/kits/bauhaus/elementos/AssinaturaMarca.tsx +0 -26
  1601. package/kits/bauhaus/elementos/BarraDiagonal.tsx +0 -20
  1602. package/kits/bauhaus/elementos/Camera.tsx +0 -21
  1603. package/kits/bauhaus/elementos/Cena.tsx +0 -36
  1604. package/kits/bauhaus/elementos/ComposicaoGeometrica.tsx +0 -54
  1605. package/kits/bauhaus/elementos/Fundo.tsx +0 -13
  1606. package/kits/bauhaus/elementos/ListaFaixas.tsx +0 -27
  1607. package/kits/bauhaus/elementos/Montagem.tsx +0 -55
  1608. package/kits/bauhaus/elementos/NumeroBauhaus.tsx +0 -21
  1609. package/kits/bauhaus/elementos/Overlay.tsx +0 -18
  1610. package/kits/bauhaus/elementos/Som.tsx +0 -30
  1611. package/kits/bauhaus/elementos/TituloBauhaus.tsx +0 -32
  1612. package/kits/bauhaus/elementos/base.ts +0 -74
  1613. package/kits/bauhaus/elementos/index.ts +0 -16
  1614. package/kits/bauhaus/exemplos/plano.json +0 -221
  1615. package/kits/bauhaus/exemplos/roteiro.md +0 -20
  1616. package/kits/bauhaus/preview.tsx +0 -12
  1617. package/kits/bauhaus/receita.json +0 -174
  1618. package/kits/bauhaus/regras/area-segura.md +0 -15
  1619. package/kits/bauhaus/regras/cor.md +0 -13
  1620. package/kits/bauhaus/regras/movimento.md +0 -17
  1621. package/kits/bauhaus/regras/ritmo.md +0 -15
  1622. package/kits/bauhaus/regras/som.md +0 -18
  1623. package/kits/bauhaus/regras/tipografia.md +0 -20
  1624. package/kits/brutalista/assets/ASSETS.md +0 -23
  1625. package/kits/brutalista/elementos/AssinaturaMarca.tsx +0 -21
  1626. package/kits/brutalista/elementos/BlocoSombra.tsx +0 -18
  1627. package/kits/brutalista/elementos/CartaoFotoBruto.tsx +0 -19
  1628. package/kits/brutalista/elementos/Cena.tsx +0 -41
  1629. package/kits/brutalista/elementos/ContadorGrande.tsx +0 -21
  1630. package/kits/brutalista/elementos/FitaAlerta.tsx +0 -20
  1631. package/kits/brutalista/elementos/Fundo.tsx +0 -9
  1632. package/kits/brutalista/elementos/ListaBruta.tsx +0 -23
  1633. package/kits/brutalista/elementos/MonoEnorme.tsx +0 -43
  1634. package/kits/brutalista/elementos/Montagem.tsx +0 -62
  1635. package/kits/brutalista/elementos/QuadroCor.tsx +0 -14
  1636. package/kits/brutalista/elementos/Som.tsx +0 -38
  1637. package/kits/brutalista/elementos/Terminal.tsx +0 -25
  1638. package/kits/brutalista/elementos/base.ts +0 -71
  1639. package/kits/brutalista/elementos/index.ts +0 -18
  1640. package/kits/brutalista/exemplos/fotos/foto-02.jpg +0 -0
  1641. package/kits/brutalista/exemplos/fotos/foto-03.jpg +0 -0
  1642. package/kits/brutalista/exemplos/fotos/foto-05.jpg +0 -0
  1643. package/kits/brutalista/exemplos/fotos/foto-07.jpg +0 -0
  1644. package/kits/brutalista/exemplos/fotos/foto-08.jpg +0 -0
  1645. package/kits/brutalista/exemplos/logo-bloco.svg +0 -1
  1646. package/kits/brutalista/exemplos/plano.json +0 -52
  1647. package/kits/brutalista/exemplos/roteiro.md +0 -19
  1648. package/kits/brutalista/preview.tsx +0 -20
  1649. package/kits/brutalista/receita.json +0 -195
  1650. package/kits/brutalista/regras/area-segura.md +0 -18
  1651. package/kits/brutalista/regras/cor.md +0 -12
  1652. package/kits/brutalista/regras/movimento.md +0 -16
  1653. package/kits/brutalista/regras/ritmo.md +0 -16
  1654. package/kits/brutalista/regras/som.md +0 -21
  1655. package/kits/brutalista/regras/tipografia.md +0 -16
  1656. package/kits/campos-de-cor/assets/ASSETS.md +0 -19
  1657. package/kits/campos-de-cor/elementos/AssinaturaMarca.tsx +0 -18
  1658. package/kits/campos-de-cor/elementos/Asterisco.tsx +0 -26
  1659. package/kits/campos-de-cor/elementos/Camera.tsx +0 -23
  1660. package/kits/campos-de-cor/elementos/CampoDeCor.tsx +0 -39
  1661. package/kits/campos-de-cor/elementos/Cena.tsx +0 -46
  1662. package/kits/campos-de-cor/elementos/FitaDeTexto.tsx +0 -24
  1663. package/kits/campos-de-cor/elementos/FormaGeometrica.tsx +0 -37
  1664. package/kits/campos-de-cor/elementos/Fundo.tsx +0 -11
  1665. package/kits/campos-de-cor/elementos/LegendaItalica.tsx +0 -12
  1666. package/kits/campos-de-cor/elementos/ListaRegua.tsx +0 -30
  1667. package/kits/campos-de-cor/elementos/Montagem.tsx +0 -62
  1668. package/kits/campos-de-cor/elementos/PalavraGigante.tsx +0 -44
  1669. package/kits/campos-de-cor/elementos/Som.tsx +0 -39
  1670. package/kits/campos-de-cor/elementos/base.ts +0 -87
  1671. package/kits/campos-de-cor/elementos/index.ts +0 -17
  1672. package/kits/campos-de-cor/exemplos/logo-pulso.svg +0 -1
  1673. package/kits/campos-de-cor/exemplos/plano.json +0 -258
  1674. package/kits/campos-de-cor/exemplos/roteiro.md +0 -19
  1675. package/kits/campos-de-cor/preview.tsx +0 -12
  1676. package/kits/campos-de-cor/receita.json +0 -174
  1677. package/kits/campos-de-cor/regras/area-segura.md +0 -15
  1678. package/kits/campos-de-cor/regras/cor.md +0 -14
  1679. package/kits/campos-de-cor/regras/movimento.md +0 -15
  1680. package/kits/campos-de-cor/regras/ritmo.md +0 -15
  1681. package/kits/campos-de-cor/regras/som.md +0 -18
  1682. package/kits/campos-de-cor/regras/tipografia.md +0 -13
  1683. package/kits/cartaz-cinetico/assets/ASSETS.md +0 -22
  1684. package/kits/cartaz-cinetico/elementos/AssinaturaMarca.tsx +0 -31
  1685. package/kits/cartaz-cinetico/elementos/CartazPalavra.tsx +0 -40
  1686. package/kits/cartaz-cinetico/elementos/Cena.tsx +0 -41
  1687. package/kits/cartaz-cinetico/elementos/CirculoPoster.tsx +0 -22
  1688. package/kits/cartaz-cinetico/elementos/EcoPalavra.tsx +0 -27
  1689. package/kits/cartaz-cinetico/elementos/Fundo.tsx +0 -16
  1690. package/kits/cartaz-cinetico/elementos/Montagem.tsx +0 -59
  1691. package/kits/cartaz-cinetico/elementos/PilhaCartaz.tsx +0 -40
  1692. package/kits/cartaz-cinetico/elementos/RoletaPalavras.tsx +0 -30
  1693. package/kits/cartaz-cinetico/elementos/Selo.tsx +0 -25
  1694. package/kits/cartaz-cinetico/elementos/Som.tsx +0 -38
  1695. package/kits/cartaz-cinetico/elementos/base.ts +0 -72
  1696. package/kits/cartaz-cinetico/elementos/index.ts +0 -16
  1697. package/kits/cartaz-cinetico/exemplos/logo-feira.svg +0 -1
  1698. package/kits/cartaz-cinetico/exemplos/plano.json +0 -55
  1699. package/kits/cartaz-cinetico/exemplos/roteiro.md +0 -20
  1700. package/kits/cartaz-cinetico/preview.tsx +0 -16
  1701. package/kits/cartaz-cinetico/receita.json +0 -209
  1702. package/kits/cartaz-cinetico/regras/area-segura.md +0 -19
  1703. package/kits/cartaz-cinetico/regras/cor.md +0 -13
  1704. package/kits/cartaz-cinetico/regras/movimento.md +0 -16
  1705. package/kits/cartaz-cinetico/regras/ritmo.md +0 -17
  1706. package/kits/cartaz-cinetico/regras/som.md +0 -21
  1707. package/kits/cartaz-cinetico/regras/tipografia.md +0 -16
  1708. package/kits/colagem/assets/ASSETS.md +0 -25
  1709. package/kits/colagem/elementos/AssinaturaMarca.tsx +0 -17
  1710. package/kits/colagem/elementos/Camera.tsx +0 -21
  1711. package/kits/colagem/elementos/Cena.tsx +0 -36
  1712. package/kits/colagem/elementos/FitaAdesiva.tsx +0 -11
  1713. package/kits/colagem/elementos/FotoRasgada.tsx +0 -26
  1714. package/kits/colagem/elementos/Fundo.tsx +0 -16
  1715. package/kits/colagem/elementos/ListaRecortes.tsx +0 -23
  1716. package/kits/colagem/elementos/Montagem.tsx +0 -56
  1717. package/kits/colagem/elementos/NotaDatilografada.tsx +0 -35
  1718. package/kits/colagem/elementos/RecorteForma.tsx +0 -23
  1719. package/kits/colagem/elementos/Som.tsx +0 -30
  1720. package/kits/colagem/elementos/TituloRecorte.tsx +0 -34
  1721. package/kits/colagem/elementos/base.ts +0 -77
  1722. package/kits/colagem/elementos/index.ts +0 -17
  1723. package/kits/colagem/elementos/rasgado.ts +0 -16
  1724. package/kits/colagem/exemplos/fotos/foto-01.jpg +0 -0
  1725. package/kits/colagem/exemplos/fotos/foto-02.jpg +0 -0
  1726. package/kits/colagem/exemplos/plano.json +0 -228
  1727. package/kits/colagem/exemplos/roteiro.md +0 -20
  1728. package/kits/colagem/preview.tsx +0 -13
  1729. package/kits/colagem/receita.json +0 -171
  1730. package/kits/colagem/regras/area-segura.md +0 -15
  1731. package/kits/colagem/regras/cor.md +0 -16
  1732. package/kits/colagem/regras/movimento.md +0 -18
  1733. package/kits/colagem/regras/ritmo.md +0 -15
  1734. package/kits/colagem/regras/som.md +0 -18
  1735. package/kits/colagem/regras/tipografia.md +0 -18
  1736. package/kits/contagem/assets/ASSETS.md +0 -20
  1737. package/kits/contagem/elementos/AnelTempo.tsx +0 -36
  1738. package/kits/contagem/elementos/BarraDias.tsx +0 -41
  1739. package/kits/contagem/elementos/CarimboData.tsx +0 -37
  1740. package/kits/contagem/elementos/Cena.tsx +0 -39
  1741. package/kits/contagem/elementos/Fundo.tsx +0 -27
  1742. package/kits/contagem/elementos/Montagem.tsx +0 -58
  1743. package/kits/contagem/elementos/NumeroRolando.tsx +0 -49
  1744. package/kits/contagem/elementos/RelogioFlip.tsx +0 -51
  1745. package/kits/contagem/elementos/Som.tsx +0 -41
  1746. package/kits/contagem/elementos/base.ts +0 -79
  1747. package/kits/contagem/elementos/index.ts +0 -14
  1748. package/kits/contagem/exemplos/plano.json +0 -48
  1749. package/kits/contagem/exemplos/roteiro.md +0 -19
  1750. package/kits/contagem/preview.tsx +0 -9
  1751. package/kits/contagem/receita.json +0 -21
  1752. package/kits/contagem/regras/area-segura.md +0 -16
  1753. package/kits/contagem/regras/cor.md +0 -14
  1754. package/kits/contagem/regras/movimento.md +0 -23
  1755. package/kits/contagem/regras/ritmo.md +0 -15
  1756. package/kits/contagem/regras/som.md +0 -21
  1757. package/kits/contagem/regras/tipografia.md +0 -16
  1758. package/kits/convite-evento/assets/ASSETS.md +0 -19
  1759. package/kits/convite-evento/elementos/BotaoInscricao.tsx +0 -36
  1760. package/kits/convite-evento/elementos/Cena.tsx +0 -39
  1761. package/kits/convite-evento/elementos/DataGigante.tsx +0 -37
  1762. package/kits/convite-evento/elementos/Fundo.tsx +0 -30
  1763. package/kits/convite-evento/elementos/IngressoBilhete.tsx +0 -40
  1764. package/kits/convite-evento/elementos/LugarGigante.tsx +0 -38
  1765. package/kits/convite-evento/elementos/Montagem.tsx +0 -59
  1766. package/kits/convite-evento/elementos/SeloRotativo.tsx +0 -32
  1767. package/kits/convite-evento/elementos/Som.tsx +0 -40
  1768. package/kits/convite-evento/elementos/TituloEvento.tsx +0 -33
  1769. package/kits/convite-evento/elementos/base.ts +0 -82
  1770. package/kits/convite-evento/elementos/index.ts +0 -15
  1771. package/kits/convite-evento/exemplos/plano.json +0 -49
  1772. package/kits/convite-evento/exemplos/roteiro.md +0 -19
  1773. package/kits/convite-evento/preview.tsx +0 -9
  1774. package/kits/convite-evento/receita.json +0 -21
  1775. package/kits/convite-evento/regras/area-segura.md +0 -20
  1776. package/kits/convite-evento/regras/cor.md +0 -13
  1777. package/kits/convite-evento/regras/movimento.md +0 -20
  1778. package/kits/convite-evento/regras/ritmo.md +0 -15
  1779. package/kits/convite-evento/regras/som.md +0 -20
  1780. package/kits/convite-evento/regras/tipografia.md +0 -18
  1781. package/kits/corte-podcast/assets/ASSETS.md +0 -19
  1782. package/kits/corte-podcast/elementos/BarraEpisodio.tsx +0 -43
  1783. package/kits/corte-podcast/elementos/CartaoConvidado.tsx +0 -32
  1784. package/kits/corte-podcast/elementos/Cena.tsx +0 -41
  1785. package/kits/corte-podcast/elementos/CitacaoGrande.tsx +0 -42
  1786. package/kits/corte-podcast/elementos/Fundo.tsx +0 -27
  1787. package/kits/corte-podcast/elementos/LegendaKaraoke.tsx +0 -32
  1788. package/kits/corte-podcast/elementos/Montagem.tsx +0 -59
  1789. package/kits/corte-podcast/elementos/OndaAudio.tsx +0 -41
  1790. package/kits/corte-podcast/elementos/SeloEpisodio.tsx +0 -33
  1791. package/kits/corte-podcast/elementos/Som.tsx +0 -40
  1792. package/kits/corte-podcast/elementos/base.ts +0 -82
  1793. package/kits/corte-podcast/elementos/index.ts +0 -15
  1794. package/kits/corte-podcast/exemplos/plano.json +0 -62
  1795. package/kits/corte-podcast/exemplos/roteiro.md +0 -20
  1796. package/kits/corte-podcast/preview.tsx +0 -9
  1797. package/kits/corte-podcast/receita.json +0 -21
  1798. package/kits/corte-podcast/regras/area-segura.md +0 -18
  1799. package/kits/corte-podcast/regras/cor.md +0 -15
  1800. package/kits/corte-podcast/regras/movimento.md +0 -18
  1801. package/kits/corte-podcast/regras/ritmo.md +0 -16
  1802. package/kits/corte-podcast/regras/som.md +0 -20
  1803. package/kits/corte-podcast/regras/tipografia.md +0 -16
  1804. package/kits/cubos/assets/ASSETS.md +0 -21
  1805. package/kits/cubos/elementos/AssinaturaMarca.tsx +0 -29
  1806. package/kits/cubos/elementos/Cena.tsx +0 -48
  1807. package/kits/cubos/elementos/Cubo.tsx +0 -40
  1808. package/kits/cubos/elementos/CuboGiratorio.tsx +0 -37
  1809. package/kits/cubos/elementos/Fundo.tsx +0 -15
  1810. package/kits/cubos/elementos/Montagem.tsx +0 -67
  1811. package/kits/cubos/elementos/MontagemDeCubos.tsx +0 -58
  1812. package/kits/cubos/elementos/PlacaBloco.tsx +0 -29
  1813. package/kits/cubos/elementos/Som.tsx +0 -33
  1814. package/kits/cubos/elementos/TorreDeCubos.tsx +0 -39
  1815. package/kits/cubos/elementos/base.ts +0 -97
  1816. package/kits/cubos/elementos/index.ts +0 -15
  1817. package/kits/cubos/exemplos/logo-encaixa.svg +0 -1
  1818. package/kits/cubos/exemplos/plano.json +0 -45
  1819. package/kits/cubos/exemplos/roteiro.md +0 -20
  1820. package/kits/cubos/preview.tsx +0 -12
  1821. package/kits/cubos/receita.json +0 -151
  1822. package/kits/cubos/regras/area-segura.md +0 -18
  1823. package/kits/cubos/regras/cor.md +0 -23
  1824. package/kits/cubos/regras/movimento.md +0 -17
  1825. package/kits/cubos/regras/ritmo.md +0 -14
  1826. package/kits/cubos/regras/som.md +0 -20
  1827. package/kits/cubos/regras/tipografia.md +0 -15
  1828. package/kits/dashboard-dados/assets/ASSETS.md +0 -18
  1829. package/kits/dashboard-dados/elementos/AssinaturaMarca.tsx +0 -19
  1830. package/kits/dashboard-dados/elementos/BarrasCrescendo.tsx +0 -27
  1831. package/kits/dashboard-dados/elementos/Camera.tsx +0 -23
  1832. package/kits/dashboard-dados/elementos/Cena.tsx +0 -46
  1833. package/kits/dashboard-dados/elementos/Fundo.tsx +0 -12
  1834. package/kits/dashboard-dados/elementos/LinhaTendencia.tsx +0 -29
  1835. package/kits/dashboard-dados/elementos/Montagem.tsx +0 -60
  1836. package/kits/dashboard-dados/elementos/NumeroGigante.tsx +0 -21
  1837. package/kits/dashboard-dados/elementos/RankingBarras.tsx +0 -27
  1838. package/kits/dashboard-dados/elementos/RoscaDados.tsx +0 -39
  1839. package/kits/dashboard-dados/elementos/Som.tsx +0 -39
  1840. package/kits/dashboard-dados/elementos/base.ts +0 -87
  1841. package/kits/dashboard-dados/elementos/index.ts +0 -16
  1842. package/kits/dashboard-dados/exemplos/logo-radar.svg +0 -1
  1843. package/kits/dashboard-dados/exemplos/plano.json +0 -325
  1844. package/kits/dashboard-dados/exemplos/roteiro.md +0 -20
  1845. package/kits/dashboard-dados/preview.tsx +0 -12
  1846. package/kits/dashboard-dados/receita.json +0 -173
  1847. package/kits/dashboard-dados/regras/area-segura.md +0 -13
  1848. package/kits/dashboard-dados/regras/cor.md +0 -17
  1849. package/kits/dashboard-dados/regras/movimento.md +0 -17
  1850. package/kits/dashboard-dados/regras/ritmo.md +0 -14
  1851. package/kits/dashboard-dados/regras/som.md +0 -18
  1852. package/kits/dashboard-dados/regras/tipografia.md +0 -16
  1853. package/kits/depoimento/assets/ASSETS.md +0 -20
  1854. package/kits/depoimento/elementos/Avatar.tsx +0 -37
  1855. package/kits/depoimento/elementos/CartaoDepoimento.tsx +0 -69
  1856. package/kits/depoimento/elementos/Cena.tsx +0 -39
  1857. package/kits/depoimento/elementos/Estrelas.tsx +0 -34
  1858. package/kits/depoimento/elementos/FaixaAvatares.tsx +0 -41
  1859. package/kits/depoimento/elementos/Fundo.tsx +0 -23
  1860. package/kits/depoimento/elementos/Montagem.tsx +0 -60
  1861. package/kits/depoimento/elementos/NotaGigante.tsx +0 -38
  1862. package/kits/depoimento/elementos/PilhaCartoes.tsx +0 -37
  1863. package/kits/depoimento/elementos/SeloVerificado.tsx +0 -29
  1864. package/kits/depoimento/elementos/Som.tsx +0 -41
  1865. package/kits/depoimento/elementos/base.ts +0 -83
  1866. package/kits/depoimento/elementos/index.ts +0 -16
  1867. package/kits/depoimento/exemplos/plano.json +0 -57
  1868. package/kits/depoimento/exemplos/roteiro.md +0 -19
  1869. package/kits/depoimento/preview.tsx +0 -9
  1870. package/kits/depoimento/receita.json +0 -21
  1871. package/kits/depoimento/regras/area-segura.md +0 -17
  1872. package/kits/depoimento/regras/cor.md +0 -16
  1873. package/kits/depoimento/regras/movimento.md +0 -20
  1874. package/kits/depoimento/regras/ritmo.md +0 -15
  1875. package/kits/depoimento/regras/som.md +0 -21
  1876. package/kits/depoimento/regras/tipografia.md +0 -17
  1877. package/kits/infografico/assets/ASSETS.md +0 -19
  1878. package/kits/infografico/elementos/Anotacao.tsx +0 -34
  1879. package/kits/infografico/elementos/CadeiaPassos.tsx +0 -49
  1880. package/kits/infografico/elementos/Cena.tsx +0 -39
  1881. package/kits/infografico/elementos/Fundo.tsx +0 -23
  1882. package/kits/infografico/elementos/GraficoBarras.tsx +0 -41
  1883. package/kits/infografico/elementos/Icone.tsx +0 -35
  1884. package/kits/infografico/elementos/Montagem.tsx +0 -60
  1885. package/kits/infografico/elementos/NoProcesso.tsx +0 -33
  1886. package/kits/infografico/elementos/NumeroDestaque.tsx +0 -35
  1887. package/kits/infografico/elementos/SetaCurva.tsx +0 -33
  1888. package/kits/infografico/elementos/Som.tsx +0 -40
  1889. package/kits/infografico/elementos/base.ts +0 -80
  1890. package/kits/infografico/elementos/index.ts +0 -16
  1891. package/kits/infografico/exemplos/plano.json +0 -49
  1892. package/kits/infografico/exemplos/roteiro.md +0 -19
  1893. package/kits/infografico/preview.tsx +0 -9
  1894. package/kits/infografico/receita.json +0 -21
  1895. package/kits/infografico/regras/area-segura.md +0 -17
  1896. package/kits/infografico/regras/cor.md +0 -15
  1897. package/kits/infografico/regras/movimento.md +0 -20
  1898. package/kits/infografico/regras/ritmo.md +0 -15
  1899. package/kits/infografico/regras/som.md +0 -20
  1900. package/kits/infografico/regras/tipografia.md +0 -16
  1901. package/kits/isometrico/assets/ASSETS.md +0 -18
  1902. package/kits/isometrico/elementos/AssinaturaMarca.tsx +0 -24
  1903. package/kits/isometrico/elementos/BlocosMontando.tsx +0 -36
  1904. package/kits/isometrico/elementos/Camera.tsx +0 -23
  1905. package/kits/isometrico/elementos/Cena.tsx +0 -46
  1906. package/kits/isometrico/elementos/CidadeDeDados.tsx +0 -33
  1907. package/kits/isometrico/elementos/Fundo.tsx +0 -13
  1908. package/kits/isometrico/elementos/LegendaPlaca.tsx +0 -18
  1909. package/kits/isometrico/elementos/Montagem.tsx +0 -60
  1910. package/kits/isometrico/elementos/RedeDeBlocos.tsx +0 -41
  1911. package/kits/isometrico/elementos/Som.tsx +0 -39
  1912. package/kits/isometrico/elementos/TextoNoChao.tsx +0 -28
  1913. package/kits/isometrico/elementos/base.ts +0 -86
  1914. package/kits/isometrico/elementos/index.ts +0 -16
  1915. package/kits/isometrico/exemplos/logo-nodo.svg +0 -1
  1916. package/kits/isometrico/exemplos/plano.json +0 -433
  1917. package/kits/isometrico/exemplos/roteiro.md +0 -20
  1918. package/kits/isometrico/preview.tsx +0 -12
  1919. package/kits/isometrico/receita.json +0 -155
  1920. package/kits/isometrico/regras/area-segura.md +0 -13
  1921. package/kits/isometrico/regras/cor.md +0 -18
  1922. package/kits/isometrico/regras/movimento.md +0 -16
  1923. package/kits/isometrico/regras/ritmo.md +0 -13
  1924. package/kits/isometrico/regras/som.md +0 -18
  1925. package/kits/isometrico/regras/tipografia.md +0 -12
  1926. package/kits/jornal/assets/ASSETS.md +0 -24
  1927. package/kits/jornal/elementos/AssinaturaMarca.tsx +0 -25
  1928. package/kits/jornal/elementos/Cabecalho.tsx +0 -21
  1929. package/kits/jornal/elementos/Carimbo.tsx +0 -18
  1930. package/kits/jornal/elementos/Cena.tsx +0 -41
  1931. package/kits/jornal/elementos/Colunas.tsx +0 -24
  1932. package/kits/jornal/elementos/FotoMeiaTinta.tsx +0 -20
  1933. package/kits/jornal/elementos/Fundo.tsx +0 -18
  1934. package/kits/jornal/elementos/JornalGirando.tsx +0 -27
  1935. package/kits/jornal/elementos/Manchete.tsx +0 -30
  1936. package/kits/jornal/elementos/Montagem.tsx +0 -61
  1937. package/kits/jornal/elementos/Som.tsx +0 -38
  1938. package/kits/jornal/elementos/Ticker.tsx +0 -19
  1939. package/kits/jornal/elementos/base.ts +0 -76
  1940. package/kits/jornal/elementos/index.ts +0 -17
  1941. package/kits/jornal/exemplos/fotos/foto-03.jpg +0 -0
  1942. package/kits/jornal/exemplos/fotos/foto-07.jpg +0 -0
  1943. package/kits/jornal/exemplos/logo-esquina.svg +0 -1
  1944. package/kits/jornal/exemplos/plano.json +0 -48
  1945. package/kits/jornal/exemplos/roteiro.md +0 -19
  1946. package/kits/jornal/preview.tsx +0 -17
  1947. package/kits/jornal/receita.json +0 -170
  1948. package/kits/jornal/regras/area-segura.md +0 -19
  1949. package/kits/jornal/regras/cor.md +0 -14
  1950. package/kits/jornal/regras/movimento.md +0 -16
  1951. package/kits/jornal/regras/ritmo.md +0 -15
  1952. package/kits/jornal/regras/som.md +0 -21
  1953. package/kits/jornal/regras/tipografia.md +0 -17
  1954. package/kits/legenda-viva/assets/ASSETS.md +0 -23
  1955. package/kits/legenda-viva/elementos/AssinaturaMarca.tsx +0 -29
  1956. package/kits/legenda-viva/elementos/Cena.tsx +0 -41
  1957. package/kits/legenda-viva/elementos/ChipTema.tsx +0 -19
  1958. package/kits/legenda-viva/elementos/Fundo.tsx +0 -6
  1959. package/kits/legenda-viva/elementos/LegendaCaixa.tsx +0 -36
  1960. package/kits/legenda-viva/elementos/LegendaPalavra.tsx +0 -32
  1961. package/kits/legenda-viva/elementos/Montagem.tsx +0 -59
  1962. package/kits/legenda-viva/elementos/OndaVoz.tsx +0 -23
  1963. package/kits/legenda-viva/elementos/PalavraGigante.tsx +0 -18
  1964. package/kits/legenda-viva/elementos/QuadroFalante.tsx +0 -17
  1965. package/kits/legenda-viva/elementos/Som.tsx +0 -38
  1966. package/kits/legenda-viva/elementos/base.ts +0 -73
  1967. package/kits/legenda-viva/elementos/index.ts +0 -16
  1968. package/kits/legenda-viva/exemplos/fotos/foto-01.jpg +0 -0
  1969. package/kits/legenda-viva/exemplos/fotos/foto-02.jpg +0 -0
  1970. package/kits/legenda-viva/exemplos/fotos/foto-03.jpg +0 -0
  1971. package/kits/legenda-viva/exemplos/fotos/foto-05.jpg +0 -0
  1972. package/kits/legenda-viva/exemplos/logo-dica.svg +0 -1
  1973. package/kits/legenda-viva/exemplos/plano.json +0 -45
  1974. package/kits/legenda-viva/exemplos/roteiro.md +0 -18
  1975. package/kits/legenda-viva/preview.tsx +0 -19
  1976. package/kits/legenda-viva/receita.json +0 -171
  1977. package/kits/legenda-viva/regras/area-segura.md +0 -19
  1978. package/kits/legenda-viva/regras/cor.md +0 -14
  1979. package/kits/legenda-viva/regras/movimento.md +0 -16
  1980. package/kits/legenda-viva/regras/ritmo.md +0 -15
  1981. package/kits/legenda-viva/regras/som.md +0 -21
  1982. package/kits/legenda-viva/regras/tipografia.md +0 -16
  1983. package/kits/luxo/assets/ASSETS.md +0 -20
  1984. package/kits/luxo/elementos/Cena.tsx +0 -36
  1985. package/kits/luxo/elementos/ConviteOuro.tsx +0 -34
  1986. package/kits/luxo/elementos/Fundo.tsx +0 -26
  1987. package/kits/luxo/elementos/LegendaFina.tsx +0 -25
  1988. package/kits/luxo/elementos/LinhaOuro.tsx +0 -24
  1989. package/kits/luxo/elementos/MolduraArco.tsx +0 -36
  1990. package/kits/luxo/elementos/Monograma.tsx +0 -35
  1991. package/kits/luxo/elementos/Montagem.tsx +0 -59
  1992. package/kits/luxo/elementos/Som.tsx +0 -40
  1993. package/kits/luxo/elementos/TituloSerifa.tsx +0 -35
  1994. package/kits/luxo/elementos/base.ts +0 -85
  1995. package/kits/luxo/elementos/index.ts +0 -15
  1996. package/kits/luxo/exemplos/fotos/foto-07.jpg +0 -0
  1997. package/kits/luxo/exemplos/fotos/foto-08.jpg +0 -0
  1998. package/kits/luxo/exemplos/plano.json +0 -145
  1999. package/kits/luxo/exemplos/roteiro.md +0 -18
  2000. package/kits/luxo/preview.tsx +0 -13
  2001. package/kits/luxo/receita.json +0 -18
  2002. package/kits/luxo/regras/area-segura.md +0 -16
  2003. package/kits/luxo/regras/cor.md +0 -16
  2004. package/kits/luxo/regras/movimento.md +0 -19
  2005. package/kits/luxo/regras/ritmo.md +0 -14
  2006. package/kits/luxo/regras/som.md +0 -21
  2007. package/kits/luxo/regras/tipografia.md +0 -17
  2008. package/kits/mapa/assets/ASSETS.md +0 -20
  2009. package/kits/mapa/elementos/CartaoEndereco.tsx +0 -40
  2010. package/kits/mapa/elementos/Cena.tsx +0 -41
  2011. package/kits/mapa/elementos/ChipTempo.tsx +0 -29
  2012. package/kits/mapa/elementos/Fundo.tsx +0 -25
  2013. package/kits/mapa/elementos/MapaBase.tsx +0 -63
  2014. package/kits/mapa/elementos/Montagem.tsx +0 -59
  2015. package/kits/mapa/elementos/Pino.tsx +0 -38
  2016. package/kits/mapa/elementos/RotaAnimada.tsx +0 -38
  2017. package/kits/mapa/elementos/Som.tsx +0 -41
  2018. package/kits/mapa/elementos/TituloLocal.tsx +0 -38
  2019. package/kits/mapa/elementos/base.ts +0 -89
  2020. package/kits/mapa/elementos/index.ts +0 -15
  2021. package/kits/mapa/exemplos/plano.json +0 -48
  2022. package/kits/mapa/exemplos/roteiro.md +0 -19
  2023. package/kits/mapa/preview.tsx +0 -9
  2024. package/kits/mapa/receita.json +0 -21
  2025. package/kits/mapa/regras/area-segura.md +0 -15
  2026. package/kits/mapa/regras/cor.md +0 -18
  2027. package/kits/mapa/regras/movimento.md +0 -21
  2028. package/kits/mapa/regras/ritmo.md +0 -15
  2029. package/kits/mapa/regras/som.md +0 -21
  2030. package/kits/mapa/regras/tipografia.md +0 -16
  2031. package/kits/massinha/assets/ASSETS.md +0 -18
  2032. package/kits/massinha/elementos/AssinaturaMarca.tsx +0 -20
  2033. package/kits/massinha/elementos/BichinhoMassa.tsx +0 -30
  2034. package/kits/massinha/elementos/BolasMassa.tsx +0 -25
  2035. package/kits/massinha/elementos/Camera.tsx +0 -21
  2036. package/kits/massinha/elementos/Cena.tsx +0 -36
  2037. package/kits/massinha/elementos/FormaMassa.tsx +0 -23
  2038. package/kits/massinha/elementos/Fundo.tsx +0 -12
  2039. package/kits/massinha/elementos/ListaMassa.tsx +0 -19
  2040. package/kits/massinha/elementos/Montagem.tsx +0 -56
  2041. package/kits/massinha/elementos/Overlay.tsx +0 -11
  2042. package/kits/massinha/elementos/PlacaMassa.tsx +0 -24
  2043. package/kits/massinha/elementos/Som.tsx +0 -30
  2044. package/kits/massinha/elementos/TituloMassa.tsx +0 -31
  2045. package/kits/massinha/elementos/base.ts +0 -79
  2046. package/kits/massinha/elementos/index.ts +0 -17
  2047. package/kits/massinha/exemplos/plano.json +0 -220
  2048. package/kits/massinha/exemplos/roteiro.md +0 -20
  2049. package/kits/massinha/preview.tsx +0 -12
  2050. package/kits/massinha/receita.json +0 -170
  2051. package/kits/massinha/regras/area-segura.md +0 -15
  2052. package/kits/massinha/regras/cor.md +0 -18
  2053. package/kits/massinha/regras/movimento.md +0 -17
  2054. package/kits/massinha/regras/ritmo.md +0 -15
  2055. package/kits/massinha/regras/som.md +0 -17
  2056. package/kits/massinha/regras/tipografia.md +0 -18
  2057. package/kits/memphis/assets/ASSETS.md +0 -18
  2058. package/kits/memphis/elementos/AssinaturaMarca.tsx +0 -20
  2059. package/kits/memphis/elementos/Camera.tsx +0 -21
  2060. package/kits/memphis/elementos/CartaoMemphis.tsx +0 -16
  2061. package/kits/memphis/elementos/Cena.tsx +0 -36
  2062. package/kits/memphis/elementos/FitaMarquee.tsx +0 -21
  2063. package/kits/memphis/elementos/FormasMemphis.tsx +0 -46
  2064. package/kits/memphis/elementos/Fundo.tsx +0 -15
  2065. package/kits/memphis/elementos/ListaPilulas.tsx +0 -17
  2066. package/kits/memphis/elementos/Montagem.tsx +0 -56
  2067. package/kits/memphis/elementos/NumeroGigante.tsx +0 -19
  2068. package/kits/memphis/elementos/Overlay.tsx +0 -23
  2069. package/kits/memphis/elementos/Som.tsx +0 -30
  2070. package/kits/memphis/elementos/TituloMemphis.tsx +0 -28
  2071. package/kits/memphis/elementos/base.ts +0 -78
  2072. package/kits/memphis/elementos/index.ts +0 -17
  2073. package/kits/memphis/exemplos/plano.json +0 -314
  2074. package/kits/memphis/exemplos/roteiro.md +0 -20
  2075. package/kits/memphis/preview.tsx +0 -12
  2076. package/kits/memphis/receita.json +0 -174
  2077. package/kits/memphis/regras/area-segura.md +0 -14
  2078. package/kits/memphis/regras/cor.md +0 -17
  2079. package/kits/memphis/regras/movimento.md +0 -18
  2080. package/kits/memphis/regras/ritmo.md +0 -15
  2081. package/kits/memphis/regras/som.md +0 -18
  2082. package/kits/memphis/regras/tipografia.md +0 -19
  2083. package/kits/metal-liquido/assets/ASSETS.md +0 -21
  2084. package/kits/metal-liquido/elementos/AnelCromo.tsx +0 -28
  2085. package/kits/metal-liquido/elementos/AssinaturaMarca.tsx +0 -26
  2086. package/kits/metal-liquido/elementos/BolhasCromadas.tsx +0 -53
  2087. package/kits/metal-liquido/elementos/Cena.tsx +0 -48
  2088. package/kits/metal-liquido/elementos/EsferaCromo.tsx +0 -32
  2089. package/kits/metal-liquido/elementos/Fundo.tsx +0 -20
  2090. package/kits/metal-liquido/elementos/Montagem.tsx +0 -67
  2091. package/kits/metal-liquido/elementos/PilulaCromo.tsx +0 -23
  2092. package/kits/metal-liquido/elementos/Som.tsx +0 -33
  2093. package/kits/metal-liquido/elementos/TituloCromo.tsx +0 -32
  2094. package/kits/metal-liquido/elementos/base.ts +0 -94
  2095. package/kits/metal-liquido/elementos/index.ts +0 -15
  2096. package/kits/metal-liquido/exemplos/logo-mercurio.svg +0 -1
  2097. package/kits/metal-liquido/exemplos/plano.json +0 -48
  2098. package/kits/metal-liquido/exemplos/roteiro.md +0 -20
  2099. package/kits/metal-liquido/preview.tsx +0 -12
  2100. package/kits/metal-liquido/receita.json +0 -173
  2101. package/kits/metal-liquido/regras/area-segura.md +0 -16
  2102. package/kits/metal-liquido/regras/cor.md +0 -23
  2103. package/kits/metal-liquido/regras/movimento.md +0 -18
  2104. package/kits/metal-liquido/regras/ritmo.md +0 -14
  2105. package/kits/metal-liquido/regras/som.md +0 -20
  2106. package/kits/metal-liquido/regras/tipografia.md +0 -15
  2107. package/kits/minimal/assets/ASSETS.md +0 -19
  2108. package/kits/minimal/elementos/Cena.tsx +0 -39
  2109. package/kits/minimal/elementos/FormaMorph.tsx +0 -44
  2110. package/kits/minimal/elementos/FraseUnica.tsx +0 -33
  2111. package/kits/minimal/elementos/Fundo.tsx +0 -20
  2112. package/kits/minimal/elementos/LinhaFina.tsx +0 -24
  2113. package/kits/minimal/elementos/Montagem.tsx +0 -59
  2114. package/kits/minimal/elementos/NumeroSolo.tsx +0 -33
  2115. package/kits/minimal/elementos/PontoMovel.tsx +0 -27
  2116. package/kits/minimal/elementos/RodapeMinimal.tsx +0 -26
  2117. package/kits/minimal/elementos/Som.tsx +0 -40
  2118. package/kits/minimal/elementos/base.ts +0 -80
  2119. package/kits/minimal/elementos/index.ts +0 -15
  2120. package/kits/minimal/exemplos/plano.json +0 -48
  2121. package/kits/minimal/exemplos/roteiro.md +0 -19
  2122. package/kits/minimal/preview.tsx +0 -9
  2123. package/kits/minimal/receita.json +0 -21
  2124. package/kits/minimal/regras/area-segura.md +0 -15
  2125. package/kits/minimal/regras/cor.md +0 -12
  2126. package/kits/minimal/regras/movimento.md +0 -20
  2127. package/kits/minimal/regras/ritmo.md +0 -15
  2128. package/kits/minimal/regras/som.md +0 -21
  2129. package/kits/minimal/regras/tipografia.md +0 -15
  2130. package/kits/neon-cidade/assets/ASSETS.md +0 -21
  2131. package/kits/neon-cidade/elementos/AssinaturaMarca.tsx +0 -24
  2132. package/kits/neon-cidade/elementos/CaixaLuminosa.tsx +0 -40
  2133. package/kits/neon-cidade/elementos/Cena.tsx +0 -48
  2134. package/kits/neon-cidade/elementos/Chuva.tsx +0 -23
  2135. package/kits/neon-cidade/elementos/FormaNeon.tsx +0 -42
  2136. package/kits/neon-cidade/elementos/Fundo.tsx +0 -18
  2137. package/kits/neon-cidade/elementos/Horizonte.tsx +0 -34
  2138. package/kits/neon-cidade/elementos/LetreiroNeon.tsx +0 -46
  2139. package/kits/neon-cidade/elementos/Montagem.tsx +0 -67
  2140. package/kits/neon-cidade/elementos/Som.tsx +0 -33
  2141. package/kits/neon-cidade/elementos/base.ts +0 -100
  2142. package/kits/neon-cidade/elementos/index.ts +0 -15
  2143. package/kits/neon-cidade/exemplos/logo-fenix.svg +0 -1
  2144. package/kits/neon-cidade/exemplos/plano.json +0 -50
  2145. package/kits/neon-cidade/exemplos/roteiro.md +0 -20
  2146. package/kits/neon-cidade/preview.tsx +0 -12
  2147. package/kits/neon-cidade/receita.json +0 -151
  2148. package/kits/neon-cidade/regras/area-segura.md +0 -18
  2149. package/kits/neon-cidade/regras/cor.md +0 -23
  2150. package/kits/neon-cidade/regras/movimento.md +0 -18
  2151. package/kits/neon-cidade/regras/ritmo.md +0 -14
  2152. package/kits/neon-cidade/regras/som.md +0 -20
  2153. package/kits/neon-cidade/regras/tipografia.md +0 -15
  2154. package/kits/notion-editorial/assets/ASSETS.md +0 -19
  2155. package/kits/notion-editorial/elementos/AssinaturaMarca.tsx +0 -20
  2156. package/kits/notion-editorial/elementos/BlocoNota.tsx +0 -38
  2157. package/kits/notion-editorial/elementos/Camera.tsx +0 -23
  2158. package/kits/notion-editorial/elementos/Cena.tsx +0 -46
  2159. package/kits/notion-editorial/elementos/Diagrama.tsx +0 -29
  2160. package/kits/notion-editorial/elementos/Fundo.tsx +0 -12
  2161. package/kits/notion-editorial/elementos/Montagem.tsx +0 -60
  2162. package/kits/notion-editorial/elementos/PassosNumerados.tsx +0 -23
  2163. package/kits/notion-editorial/elementos/RabiscoIcone.tsx +0 -33
  2164. package/kits/notion-editorial/elementos/Som.tsx +0 -39
  2165. package/kits/notion-editorial/elementos/TextoSerifa.tsx +0 -53
  2166. package/kits/notion-editorial/elementos/base.ts +0 -87
  2167. package/kits/notion-editorial/elementos/index.ts +0 -16
  2168. package/kits/notion-editorial/exemplos/logo-pauta.svg +0 -1
  2169. package/kits/notion-editorial/exemplos/plano.json +0 -254
  2170. package/kits/notion-editorial/exemplos/roteiro.md +0 -20
  2171. package/kits/notion-editorial/preview.tsx +0 -12
  2172. package/kits/notion-editorial/receita.json +0 -165
  2173. package/kits/notion-editorial/regras/area-segura.md +0 -13
  2174. package/kits/notion-editorial/regras/cor.md +0 -15
  2175. package/kits/notion-editorial/regras/movimento.md +0 -16
  2176. package/kits/notion-editorial/regras/ritmo.md +0 -14
  2177. package/kits/notion-editorial/regras/som.md +0 -18
  2178. package/kits/notion-editorial/regras/tipografia.md +0 -15
  2179. package/kits/papel-recortado/assets/ASSETS.md +0 -18
  2180. package/kits/papel-recortado/elementos/CamadaPapel.tsx +0 -81
  2181. package/kits/papel-recortado/elementos/Camera.tsx +0 -28
  2182. package/kits/papel-recortado/elementos/CartaoCamadas.tsx +0 -38
  2183. package/kits/papel-recortado/elementos/Cena.tsx +0 -29
  2184. package/kits/papel-recortado/elementos/EtiquetaPapel.tsx +0 -40
  2185. package/kits/papel-recortado/elementos/Fita.tsx +0 -21
  2186. package/kits/papel-recortado/elementos/FolhaPopUp.tsx +0 -49
  2187. package/kits/papel-recortado/elementos/Fundo.tsx +0 -10
  2188. package/kits/papel-recortado/elementos/LetrasRecortadas.tsx +0 -48
  2189. package/kits/papel-recortado/elementos/MolduraPapel.tsx +0 -12
  2190. package/kits/papel-recortado/elementos/Montagem.tsx +0 -42
  2191. package/kits/papel-recortado/elementos/Som.tsx +0 -30
  2192. package/kits/papel-recortado/elementos/base.ts +0 -51
  2193. package/kits/papel-recortado/elementos/index.ts +0 -15
  2194. package/kits/papel-recortado/exemplos/plano.json +0 -410
  2195. package/kits/papel-recortado/exemplos/roteiro.md +0 -13
  2196. package/kits/papel-recortado/preview.tsx +0 -9
  2197. package/kits/papel-recortado/receita.json +0 -14
  2198. package/kits/papel-recortado/regras/area-segura.md +0 -13
  2199. package/kits/papel-recortado/regras/cor.md +0 -16
  2200. package/kits/papel-recortado/regras/movimento.md +0 -17
  2201. package/kits/papel-recortado/regras/ritmo.md +0 -13
  2202. package/kits/papel-recortado/regras/som.md +0 -17
  2203. package/kits/papel-recortado/regras/tipografia.md +0 -12
  2204. package/kits/pixel/assets/ASSETS.md +0 -18
  2205. package/kits/pixel/elementos/AssinaturaMarca.tsx +0 -18
  2206. package/kits/pixel/elementos/CaixaDialogo.tsx +0 -22
  2207. package/kits/pixel/elementos/Camera.tsx +0 -21
  2208. package/kits/pixel/elementos/Cena.tsx +0 -36
  2209. package/kits/pixel/elementos/ChuvaDeSprites.tsx +0 -15
  2210. package/kits/pixel/elementos/Fundo.tsx +0 -23
  2211. package/kits/pixel/elementos/HudPlacar.tsx +0 -19
  2212. package/kits/pixel/elementos/MenuPixel.tsx +0 -19
  2213. package/kits/pixel/elementos/Montagem.tsx +0 -56
  2214. package/kits/pixel/elementos/Overlay.tsx +0 -14
  2215. package/kits/pixel/elementos/Som.tsx +0 -30
  2216. package/kits/pixel/elementos/Sprite.tsx +0 -33
  2217. package/kits/pixel/elementos/TituloPixel.tsx +0 -31
  2218. package/kits/pixel/elementos/base.ts +0 -79
  2219. package/kits/pixel/elementos/index.ts +0 -17
  2220. package/kits/pixel/exemplos/plano.json +0 -309
  2221. package/kits/pixel/exemplos/roteiro.md +0 -20
  2222. package/kits/pixel/preview.tsx +0 -12
  2223. package/kits/pixel/receita.json +0 -175
  2224. package/kits/pixel/regras/area-segura.md +0 -14
  2225. package/kits/pixel/regras/cor.md +0 -17
  2226. package/kits/pixel/regras/movimento.md +0 -18
  2227. package/kits/pixel/regras/ritmo.md +0 -15
  2228. package/kits/pixel/regras/som.md +0 -18
  2229. package/kits/pixel/regras/tipografia.md +0 -18
  2230. package/kits/pontos-3d/assets/ASSETS.md +0 -21
  2231. package/kits/pontos-3d/elementos/AssinaturaMarca.tsx +0 -23
  2232. package/kits/pontos-3d/elementos/Cena.tsx +0 -48
  2233. package/kits/pontos-3d/elementos/Contador.tsx +0 -32
  2234. package/kits/pontos-3d/elementos/Fundo.tsx +0 -20
  2235. package/kits/pontos-3d/elementos/Montagem.tsx +0 -67
  2236. package/kits/pontos-3d/elementos/NuvemDePontos.tsx +0 -84
  2237. package/kits/pontos-3d/elementos/RotuloPonto.tsx +0 -32
  2238. package/kits/pontos-3d/elementos/Som.tsx +0 -33
  2239. package/kits/pontos-3d/elementos/TextoDePontos.tsx +0 -55
  2240. package/kits/pontos-3d/elementos/TituloSora.tsx +0 -36
  2241. package/kits/pontos-3d/elementos/base.ts +0 -92
  2242. package/kits/pontos-3d/elementos/index.ts +0 -15
  2243. package/kits/pontos-3d/exemplos/logo-malha.svg +0 -1
  2244. package/kits/pontos-3d/exemplos/plano.json +0 -46
  2245. package/kits/pontos-3d/exemplos/roteiro.md +0 -20
  2246. package/kits/pontos-3d/preview.tsx +0 -12
  2247. package/kits/pontos-3d/receita.json +0 -153
  2248. package/kits/pontos-3d/regras/area-segura.md +0 -17
  2249. package/kits/pontos-3d/regras/cor.md +0 -21
  2250. package/kits/pontos-3d/regras/movimento.md +0 -19
  2251. package/kits/pontos-3d/regras/ritmo.md +0 -14
  2252. package/kits/pontos-3d/regras/som.md +0 -20
  2253. package/kits/pontos-3d/regras/tipografia.md +0 -16
  2254. package/kits/produto-3d/assets/ASSETS.md +0 -18
  2255. package/kits/produto-3d/elementos/AssinaturaMarca.tsx +0 -28
  2256. package/kits/produto-3d/elementos/Camera.tsx +0 -23
  2257. package/kits/produto-3d/elementos/Cena.tsx +0 -55
  2258. package/kits/produto-3d/elementos/Fundo.tsx +0 -45
  2259. package/kits/produto-3d/elementos/Montagem.tsx +0 -53
  2260. package/kits/produto-3d/elementos/NumeroDestaque.tsx +0 -35
  2261. package/kits/produto-3d/elementos/Produto3D.tsx +0 -144
  2262. package/kits/produto-3d/elementos/RotuloChamada.tsx +0 -43
  2263. package/kits/produto-3d/elementos/Som.tsx +0 -39
  2264. package/kits/produto-3d/elementos/TituloMinimo.tsx +0 -45
  2265. package/kits/produto-3d/elementos/VarreduraLuz.tsx +0 -22
  2266. package/kits/produto-3d/elementos/base.ts +0 -109
  2267. package/kits/produto-3d/elementos/index.ts +0 -13
  2268. package/kits/produto-3d/exemplos/plano.json +0 -53
  2269. package/kits/produto-3d/exemplos/roteiro.md +0 -15
  2270. package/kits/produto-3d/preview.tsx +0 -9
  2271. package/kits/produto-3d/receita.json +0 -16
  2272. package/kits/produto-3d/regras/area-segura.md +0 -14
  2273. package/kits/produto-3d/regras/cor.md +0 -20
  2274. package/kits/produto-3d/regras/movimento.md +0 -19
  2275. package/kits/produto-3d/regras/ritmo.md +0 -15
  2276. package/kits/produto-3d/regras/som.md +0 -18
  2277. package/kits/produto-3d/regras/tipografia.md +0 -13
  2278. package/kits/quadro-giz/assets/ASSETS.md +0 -18
  2279. package/kits/quadro-giz/elementos/ApagadorVarrendo.tsx +0 -32
  2280. package/kits/quadro-giz/elementos/AssinaturaMarca.tsx +0 -20
  2281. package/kits/quadro-giz/elementos/Camera.tsx +0 -21
  2282. package/kits/quadro-giz/elementos/CartaoGiz.tsx +0 -25
  2283. package/kits/quadro-giz/elementos/Cena.tsx +0 -36
  2284. package/kits/quadro-giz/elementos/ContaNoQuadro.tsx +0 -34
  2285. package/kits/quadro-giz/elementos/DesenhoGiz.tsx +0 -29
  2286. package/kits/quadro-giz/elementos/Fundo.tsx +0 -21
  2287. package/kits/quadro-giz/elementos/ListaGiz.tsx +0 -21
  2288. package/kits/quadro-giz/elementos/Montagem.tsx +0 -56
  2289. package/kits/quadro-giz/elementos/Overlay.tsx +0 -12
  2290. package/kits/quadro-giz/elementos/Som.tsx +0 -30
  2291. package/kits/quadro-giz/elementos/TituloGiz.tsx +0 -29
  2292. package/kits/quadro-giz/elementos/base.ts +0 -78
  2293. package/kits/quadro-giz/elementos/index.ts +0 -17
  2294. package/kits/quadro-giz/elementos/traco.ts +0 -9
  2295. package/kits/quadro-giz/exemplos/plano.json +0 -237
  2296. package/kits/quadro-giz/exemplos/roteiro.md +0 -20
  2297. package/kits/quadro-giz/preview.tsx +0 -12
  2298. package/kits/quadro-giz/receita.json +0 -193
  2299. package/kits/quadro-giz/regras/area-segura.md +0 -15
  2300. package/kits/quadro-giz/regras/cor.md +0 -17
  2301. package/kits/quadro-giz/regras/movimento.md +0 -18
  2302. package/kits/quadro-giz/regras/ritmo.md +0 -16
  2303. package/kits/quadro-giz/regras/som.md +0 -18
  2304. package/kits/quadro-giz/regras/tipografia.md +0 -19
  2305. package/kits/rabisco/assets/ASSETS.md +0 -18
  2306. package/kits/rabisco/elementos/AssinaturaMarca.tsx +0 -21
  2307. package/kits/rabisco/elementos/Bonequinho.tsx +0 -31
  2308. package/kits/rabisco/elementos/Camera.tsx +0 -21
  2309. package/kits/rabisco/elementos/CartaoRabiscado.tsx +0 -27
  2310. package/kits/rabisco/elementos/Cena.tsx +0 -36
  2311. package/kits/rabisco/elementos/Fundo.tsx +0 -17
  2312. package/kits/rabisco/elementos/ListaRabiscada.tsx +0 -23
  2313. package/kits/rabisco/elementos/Montagem.tsx +0 -55
  2314. package/kits/rabisco/elementos/Som.tsx +0 -30
  2315. package/kits/rabisco/elementos/TituloRabisco.tsx +0 -28
  2316. package/kits/rabisco/elementos/TracoDesenhando.tsx +0 -31
  2317. package/kits/rabisco/elementos/base.ts +0 -76
  2318. package/kits/rabisco/elementos/index.ts +0 -16
  2319. package/kits/rabisco/elementos/traco.ts +0 -10
  2320. package/kits/rabisco/exemplos/plano.json +0 -238
  2321. package/kits/rabisco/exemplos/roteiro.md +0 -20
  2322. package/kits/rabisco/preview.tsx +0 -12
  2323. package/kits/rabisco/receita.json +0 -171
  2324. package/kits/rabisco/regras/area-segura.md +0 -14
  2325. package/kits/rabisco/regras/cor.md +0 -15
  2326. package/kits/rabisco/regras/movimento.md +0 -18
  2327. package/kits/rabisco/regras/ritmo.md +0 -15
  2328. package/kits/rabisco/regras/som.md +0 -17
  2329. package/kits/rabisco/regras/tipografia.md +0 -18
  2330. package/kits/retro-70/assets/ASSETS.md +0 -23
  2331. package/kits/retro-70/elementos/ArcoListras.tsx +0 -25
  2332. package/kits/retro-70/elementos/AssinaturaMarca.tsx +0 -21
  2333. package/kits/retro-70/elementos/CartaoData.tsx +0 -24
  2334. package/kits/retro-70/elementos/Cena.tsx +0 -41
  2335. package/kits/retro-70/elementos/FaixaOnda.tsx +0 -27
  2336. package/kits/retro-70/elementos/Flor70.tsx +0 -25
  2337. package/kits/retro-70/elementos/FotoArredondada.tsx +0 -19
  2338. package/kits/retro-70/elementos/Fundo.tsx +0 -11
  2339. package/kits/retro-70/elementos/Montagem.tsx +0 -60
  2340. package/kits/retro-70/elementos/RaiosDeSol.tsx +0 -27
  2341. package/kits/retro-70/elementos/Som.tsx +0 -38
  2342. package/kits/retro-70/elementos/TituloGordo.tsx +0 -28
  2343. package/kits/retro-70/elementos/base.ts +0 -73
  2344. package/kits/retro-70/elementos/index.ts +0 -17
  2345. package/kits/retro-70/exemplos/fotos/foto-02.jpg +0 -0
  2346. package/kits/retro-70/exemplos/fotos/foto-03.jpg +0 -0
  2347. package/kits/retro-70/exemplos/logo-girassol.svg +0 -1
  2348. package/kits/retro-70/exemplos/plano.json +0 -50
  2349. package/kits/retro-70/exemplos/roteiro.md +0 -19
  2350. package/kits/retro-70/preview.tsx +0 -17
  2351. package/kits/retro-70/receita.json +0 -172
  2352. package/kits/retro-70/regras/area-segura.md +0 -20
  2353. package/kits/retro-70/regras/cor.md +0 -14
  2354. package/kits/retro-70/regras/movimento.md +0 -16
  2355. package/kits/retro-70/regras/ritmo.md +0 -15
  2356. package/kits/retro-70/regras/som.md +0 -21
  2357. package/kits/retro-70/regras/tipografia.md +0 -17
  2358. package/kits/revista/assets/ASSETS.md +0 -24
  2359. package/kits/revista/elementos/AssinaturaMarca.tsx +0 -23
  2360. package/kits/revista/elementos/Cena.tsx +0 -41
  2361. package/kits/revista/elementos/CitacaoGrande.tsx +0 -27
  2362. package/kits/revista/elementos/ColagemFotos.tsx +0 -22
  2363. package/kits/revista/elementos/Folio.tsx +0 -19
  2364. package/kits/revista/elementos/FotoSangrando.tsx +0 -24
  2365. package/kits/revista/elementos/Fundo.tsx +0 -11
  2366. package/kits/revista/elementos/Montagem.tsx +0 -59
  2367. package/kits/revista/elementos/PaginaDupla.tsx +0 -36
  2368. package/kits/revista/elementos/Som.tsx +0 -38
  2369. package/kits/revista/elementos/TituloEditorial.tsx +0 -31
  2370. package/kits/revista/elementos/base.ts +0 -76
  2371. package/kits/revista/elementos/index.ts +0 -16
  2372. package/kits/revista/exemplos/fotos/foto-02.jpg +0 -0
  2373. package/kits/revista/exemplos/fotos/foto-03.jpg +0 -0
  2374. package/kits/revista/exemplos/fotos/foto-05.jpg +0 -0
  2375. package/kits/revista/exemplos/fotos/foto-06.jpg +0 -0
  2376. package/kits/revista/exemplos/fotos/foto-07.jpg +0 -0
  2377. package/kits/revista/exemplos/fotos/foto-08.jpg +0 -0
  2378. package/kits/revista/exemplos/logo-linho.svg +0 -1
  2379. package/kits/revista/exemplos/plano.json +0 -44
  2380. package/kits/revista/exemplos/roteiro.md +0 -19
  2381. package/kits/revista/preview.tsx +0 -21
  2382. package/kits/revista/receita.json +0 -168
  2383. package/kits/revista/regras/area-segura.md +0 -19
  2384. package/kits/revista/regras/cor.md +0 -14
  2385. package/kits/revista/regras/movimento.md +0 -15
  2386. package/kits/revista/regras/ritmo.md +0 -15
  2387. package/kits/revista/regras/som.md +0 -21
  2388. package/kits/revista/regras/tipografia.md +0 -17
  2389. package/kits/risografia/assets/ASSETS.md +0 -18
  2390. package/kits/risografia/elementos/AssinaturaMarca.tsx +0 -21
  2391. package/kits/risografia/elementos/BolaReticula.tsx +0 -26
  2392. package/kits/risografia/elementos/Camera.tsx +0 -21
  2393. package/kits/risografia/elementos/Cena.tsx +0 -36
  2394. package/kits/risografia/elementos/FormaRiso.tsx +0 -24
  2395. package/kits/risografia/elementos/Fundo.tsx +0 -12
  2396. package/kits/risografia/elementos/ListaRiso.tsx +0 -22
  2397. package/kits/risografia/elementos/Montagem.tsx +0 -56
  2398. package/kits/risografia/elementos/NumeroRiso.tsx +0 -21
  2399. package/kits/risografia/elementos/Overlay.tsx +0 -18
  2400. package/kits/risografia/elementos/Som.tsx +0 -30
  2401. package/kits/risografia/elementos/TarjaCarimbo.tsx +0 -20
  2402. package/kits/risografia/elementos/TituloRiso.tsx +0 -26
  2403. package/kits/risografia/elementos/base.ts +0 -73
  2404. package/kits/risografia/elementos/index.ts +0 -17
  2405. package/kits/risografia/exemplos/plano.json +0 -209
  2406. package/kits/risografia/exemplos/roteiro.md +0 -20
  2407. package/kits/risografia/preview.tsx +0 -12
  2408. package/kits/risografia/receita.json +0 -169
  2409. package/kits/risografia/regras/area-segura.md +0 -14
  2410. package/kits/risografia/regras/cor.md +0 -12
  2411. package/kits/risografia/regras/movimento.md +0 -18
  2412. package/kits/risografia/regras/ritmo.md +0 -15
  2413. package/kits/risografia/regras/som.md +0 -17
  2414. package/kits/risografia/regras/tipografia.md +0 -18
  2415. package/kits/saas-linear/assets/ASSETS.md +0 -19
  2416. package/kits/saas-linear/assets/fontes/OFL-Inter.txt +0 -93
  2417. package/kits/saas-linear/assets/fontes/OFL-Newsreader.txt +0 -93
  2418. package/kits/saas-linear/assets/fontes/inter-400.woff2 +0 -0
  2419. package/kits/saas-linear/assets/fontes/inter-600.woff2 +0 -0
  2420. package/kits/saas-linear/assets/fontes/newsreader-400.woff2 +0 -0
  2421. package/kits/saas-linear/elementos/Agenda.tsx +0 -46
  2422. package/kits/saas-linear/elementos/CaixaPrompt.tsx +0 -41
  2423. package/kits/saas-linear/elementos/Camera.tsx +0 -38
  2424. package/kits/saas-linear/elementos/CartoesIntegracao.tsx +0 -57
  2425. package/kits/saas-linear/elementos/Cena.tsx +0 -38
  2426. package/kits/saas-linear/elementos/Cursor.tsx +0 -40
  2427. package/kits/saas-linear/elementos/FraseSerifa.tsx +0 -25
  2428. package/kits/saas-linear/elementos/Fundo.tsx +0 -18
  2429. package/kits/saas-linear/elementos/Marca.tsx +0 -20
  2430. package/kits/saas-linear/elementos/MarcaFinal.tsx +0 -22
  2431. package/kits/saas-linear/elementos/Menu.tsx +0 -46
  2432. package/kits/saas-linear/elementos/Monitor.tsx +0 -28
  2433. package/kits/saas-linear/elementos/Montagem.tsx +0 -67
  2434. package/kits/saas-linear/elementos/Saudacao.tsx +0 -27
  2435. package/kits/saas-linear/elementos/Som.tsx +0 -39
  2436. package/kits/saas-linear/elementos/base.ts +0 -84
  2437. package/kits/saas-linear/elementos/index.ts +0 -21
  2438. package/kits/saas-linear/exemplos/plano.json +0 -459
  2439. package/kits/saas-linear/exemplos/roteiro.md +0 -15
  2440. package/kits/saas-linear/preview.tsx +0 -9
  2441. package/kits/saas-linear/receita.json +0 -32
  2442. package/kits/saas-linear/regras/area-segura.md +0 -17
  2443. package/kits/saas-linear/regras/cor.md +0 -19
  2444. package/kits/saas-linear/regras/movimento.md +0 -20
  2445. package/kits/saas-linear/regras/ritmo.md +0 -14
  2446. package/kits/saas-linear/regras/som.md +0 -16
  2447. package/kits/saas-linear/regras/tipografia.md +0 -17
  2448. package/kits/stripe-ondas/assets/ASSETS.md +0 -18
  2449. package/kits/stripe-ondas/elementos/AssinaturaMarca.tsx +0 -18
  2450. package/kits/stripe-ondas/elementos/Camera.tsx +0 -23
  2451. package/kits/stripe-ondas/elementos/CartaoPagamento.tsx +0 -35
  2452. package/kits/stripe-ondas/elementos/Cena.tsx +0 -46
  2453. package/kits/stripe-ondas/elementos/FaixaDeOndas.tsx +0 -49
  2454. package/kits/stripe-ondas/elementos/Fundo.tsx +0 -11
  2455. package/kits/stripe-ondas/elementos/GraficoOnda.tsx +0 -34
  2456. package/kits/stripe-ondas/elementos/Montagem.tsx +0 -61
  2457. package/kits/stripe-ondas/elementos/PainelCodigo.tsx +0 -36
  2458. package/kits/stripe-ondas/elementos/SelosDeMetodo.tsx +0 -27
  2459. package/kits/stripe-ondas/elementos/Som.tsx +0 -39
  2460. package/kits/stripe-ondas/elementos/TituloLimpo.tsx +0 -27
  2461. package/kits/stripe-ondas/elementos/base.ts +0 -85
  2462. package/kits/stripe-ondas/elementos/index.ts +0 -16
  2463. package/kits/stripe-ondas/exemplos/logo-cais.svg +0 -1
  2464. package/kits/stripe-ondas/exemplos/plano.json +0 -366
  2465. package/kits/stripe-ondas/exemplos/roteiro.md +0 -20
  2466. package/kits/stripe-ondas/preview.tsx +0 -12
  2467. package/kits/stripe-ondas/receita.json +0 -177
  2468. package/kits/stripe-ondas/regras/area-segura.md +0 -16
  2469. package/kits/stripe-ondas/regras/cor.md +0 -17
  2470. package/kits/stripe-ondas/regras/movimento.md +0 -16
  2471. package/kits/stripe-ondas/regras/ritmo.md +0 -14
  2472. package/kits/stripe-ondas/regras/som.md +0 -18
  2473. package/kits/stripe-ondas/regras/tipografia.md +0 -15
  2474. package/kits/suica/assets/ASSETS.md +0 -23
  2475. package/kits/suica/elementos/AssinaturaMarca.tsx +0 -21
  2476. package/kits/suica/elementos/Cena.tsx +0 -41
  2477. package/kits/suica/elementos/DiscoFoto.tsx +0 -20
  2478. package/kits/suica/elementos/Fundo.tsx +0 -16
  2479. package/kits/suica/elementos/GradeFotos.tsx +0 -21
  2480. package/kits/suica/elementos/Indice.tsx +0 -17
  2481. package/kits/suica/elementos/ListaIndice.tsx +0 -25
  2482. package/kits/suica/elementos/Montagem.tsx +0 -60
  2483. package/kits/suica/elementos/NumeroGigante.tsx +0 -21
  2484. package/kits/suica/elementos/Regua.tsx +0 -20
  2485. package/kits/suica/elementos/Som.tsx +0 -38
  2486. package/kits/suica/elementos/TituloGrade.tsx +0 -38
  2487. package/kits/suica/elementos/base.ts +0 -76
  2488. package/kits/suica/elementos/index.ts +0 -17
  2489. package/kits/suica/exemplos/fotos/foto-01.jpg +0 -0
  2490. package/kits/suica/exemplos/fotos/foto-02.jpg +0 -0
  2491. package/kits/suica/exemplos/fotos/foto-03.jpg +0 -0
  2492. package/kits/suica/exemplos/fotos/foto-05.jpg +0 -0
  2493. package/kits/suica/exemplos/fotos/foto-06.jpg +0 -0
  2494. package/kits/suica/exemplos/fotos/foto-07.jpg +0 -0
  2495. package/kits/suica/exemplos/logo-ponto.svg +0 -1
  2496. package/kits/suica/exemplos/plano.json +0 -268
  2497. package/kits/suica/exemplos/roteiro.md +0 -19
  2498. package/kits/suica/preview.tsx +0 -21
  2499. package/kits/suica/receita.json +0 -197
  2500. package/kits/suica/regras/area-segura.md +0 -18
  2501. package/kits/suica/regras/cor.md +0 -13
  2502. package/kits/suica/regras/movimento.md +0 -15
  2503. package/kits/suica/regras/ritmo.md +0 -17
  2504. package/kits/suica/regras/som.md +0 -21
  2505. package/kits/suica/regras/tipografia.md +0 -16
  2506. package/kits/synthwave/assets/ASSETS.md +0 -22
  2507. package/kits/synthwave/elementos/AssinaturaMarca.tsx +0 -26
  2508. package/kits/synthwave/elementos/Cena.tsx +0 -41
  2509. package/kits/synthwave/elementos/Estrelas.tsx +0 -27
  2510. package/kits/synthwave/elementos/Fundo.tsx +0 -20
  2511. package/kits/synthwave/elementos/Montagem.tsx +0 -59
  2512. package/kits/synthwave/elementos/Montanhas.tsx +0 -27
  2513. package/kits/synthwave/elementos/Palmeiras.tsx +0 -30
  2514. package/kits/synthwave/elementos/QuadroHUD.tsx +0 -33
  2515. package/kits/synthwave/elementos/SolListrado.tsx +0 -29
  2516. package/kits/synthwave/elementos/Som.tsx +0 -38
  2517. package/kits/synthwave/elementos/TituloNeon.tsx +0 -30
  2518. package/kits/synthwave/elementos/base.ts +0 -75
  2519. package/kits/synthwave/elementos/index.ts +0 -16
  2520. package/kits/synthwave/exemplos/logo-arcade.svg +0 -1
  2521. package/kits/synthwave/exemplos/plano.json +0 -50
  2522. package/kits/synthwave/exemplos/roteiro.md +0 -19
  2523. package/kits/synthwave/preview.tsx +0 -16
  2524. package/kits/synthwave/receita.json +0 -170
  2525. package/kits/synthwave/regras/area-segura.md +0 -19
  2526. package/kits/synthwave/regras/cor.md +0 -16
  2527. package/kits/synthwave/regras/movimento.md +0 -16
  2528. package/kits/synthwave/regras/ritmo.md +0 -15
  2529. package/kits/synthwave/regras/som.md +0 -21
  2530. package/kits/synthwave/regras/tipografia.md +0 -16
  2531. package/kits/terminal/assets/ASSETS.md +0 -20
  2532. package/kits/terminal/elementos/ArteAscii.tsx +0 -61
  2533. package/kits/terminal/elementos/BarraProgresso.tsx +0 -42
  2534. package/kits/terminal/elementos/BarraStatus.tsx +0 -18
  2535. package/kits/terminal/elementos/BootBios.tsx +0 -41
  2536. package/kits/terminal/elementos/Camera.tsx +0 -23
  2537. package/kits/terminal/elementos/Cena.tsx +0 -25
  2538. package/kits/terminal/elementos/Fundo.tsx +0 -22
  2539. package/kits/terminal/elementos/LinhaComando.tsx +0 -31
  2540. package/kits/terminal/elementos/Monitor.tsx +0 -42
  2541. package/kits/terminal/elementos/Montagem.tsx +0 -52
  2542. package/kits/terminal/elementos/PainelCaixa.tsx +0 -35
  2543. package/kits/terminal/elementos/Som.tsx +0 -32
  2544. package/kits/terminal/elementos/Tela.tsx +0 -25
  2545. package/kits/terminal/elementos/TextoGrande.tsx +0 -35
  2546. package/kits/terminal/elementos/base.ts +0 -67
  2547. package/kits/terminal/elementos/index.ts +0 -16
  2548. package/kits/terminal/exemplos/plano.json +0 -330
  2549. package/kits/terminal/exemplos/roteiro.md +0 -14
  2550. package/kits/terminal/preview.tsx +0 -9
  2551. package/kits/terminal/receita.json +0 -14
  2552. package/kits/terminal/regras/area-segura.md +0 -18
  2553. package/kits/terminal/regras/cor.md +0 -16
  2554. package/kits/terminal/regras/movimento.md +0 -15
  2555. package/kits/terminal/regras/ritmo.md +0 -14
  2556. package/kits/terminal/regras/som.md +0 -17
  2557. package/kits/terminal/regras/tipografia.md +0 -15
  2558. package/kits/tiktok-energia/assets/ASSETS.md +0 -22
  2559. package/kits/tiktok-energia/elementos/AssinaturaMarca.tsx +0 -25
  2560. package/kits/tiktok-energia/elementos/Cena.tsx +0 -48
  2561. package/kits/tiktok-energia/elementos/CorteDeCor.tsx +0 -22
  2562. package/kits/tiktok-energia/elementos/EmojiSticker.tsx +0 -21
  2563. package/kits/tiktok-energia/elementos/FotoSoco.tsx +0 -27
  2564. package/kits/tiktok-energia/elementos/Fundo.tsx +0 -8
  2565. package/kits/tiktok-energia/elementos/Montagem.tsx +0 -67
  2566. package/kits/tiktok-energia/elementos/PalavraSoco.tsx +0 -29
  2567. package/kits/tiktok-energia/elementos/Som.tsx +0 -33
  2568. package/kits/tiktok-energia/elementos/TextoCaixa.tsx +0 -25
  2569. package/kits/tiktok-energia/elementos/base.ts +0 -92
  2570. package/kits/tiktok-energia/elementos/index.ts +0 -15
  2571. package/kits/tiktok-energia/exemplos/fotos/foto-03.jpg +0 -0
  2572. package/kits/tiktok-energia/exemplos/logo-pulo.svg +0 -1
  2573. package/kits/tiktok-energia/exemplos/plano.json +0 -66
  2574. package/kits/tiktok-energia/exemplos/roteiro.md +0 -22
  2575. package/kits/tiktok-energia/preview.tsx +0 -13
  2576. package/kits/tiktok-energia/receita.json +0 -166
  2577. package/kits/tiktok-energia/regras/area-segura.md +0 -19
  2578. package/kits/tiktok-energia/regras/cor.md +0 -20
  2579. package/kits/tiktok-energia/regras/movimento.md +0 -17
  2580. package/kits/tiktok-energia/regras/ritmo.md +0 -15
  2581. package/kits/tiktok-energia/regras/som.md +0 -20
  2582. package/kits/tiktok-energia/regras/tipografia.md +0 -15
  2583. package/kits/tunel/assets/ASSETS.md +0 -21
  2584. package/kits/tunel/elementos/AssinaturaMarca.tsx +0 -22
  2585. package/kits/tunel/elementos/Cena.tsx +0 -48
  2586. package/kits/tunel/elementos/Fundo.tsx +0 -13
  2587. package/kits/tunel/elementos/LinhasDeVelocidade.tsx +0 -25
  2588. package/kits/tunel/elementos/Montagem.tsx +0 -67
  2589. package/kits/tunel/elementos/NumeroGigante.tsx +0 -28
  2590. package/kits/tunel/elementos/PlacaVoadora.tsx +0 -28
  2591. package/kits/tunel/elementos/Som.tsx +0 -33
  2592. package/kits/tunel/elementos/TituloTunel.tsx +0 -32
  2593. package/kits/tunel/elementos/TunelDeFormas.tsx +0 -52
  2594. package/kits/tunel/elementos/base.ts +0 -97
  2595. package/kits/tunel/elementos/index.ts +0 -15
  2596. package/kits/tunel/exemplos/logo-rota21.svg +0 -1
  2597. package/kits/tunel/exemplos/plano.json +0 -51
  2598. package/kits/tunel/exemplos/roteiro.md +0 -20
  2599. package/kits/tunel/preview.tsx +0 -12
  2600. package/kits/tunel/receita.json +0 -153
  2601. package/kits/tunel/regras/area-segura.md +0 -18
  2602. package/kits/tunel/regras/cor.md +0 -21
  2603. package/kits/tunel/regras/movimento.md +0 -17
  2604. package/kits/tunel/regras/ritmo.md +0 -14
  2605. package/kits/tunel/regras/som.md +0 -20
  2606. package/kits/tunel/regras/tipografia.md +0 -15
  2607. package/kits/tutorial-tela/assets/ASSETS.md +0 -20
  2608. package/kits/tutorial-tela/elementos/CameraTela.tsx +0 -29
  2609. package/kits/tutorial-tela/elementos/Cursor.tsx +0 -36
  2610. package/kits/tutorial-tela/elementos/DestaqueCaixa.tsx +0 -17
  2611. package/kits/tutorial-tela/elementos/Fundo.tsx +0 -12
  2612. package/kits/tutorial-tela/elementos/JanelaApp.tsx +0 -81
  2613. package/kits/tutorial-tela/elementos/Montagem.tsx +0 -49
  2614. package/kits/tutorial-tela/elementos/PassoChamada.tsx +0 -22
  2615. package/kits/tutorial-tela/elementos/Som.tsx +0 -41
  2616. package/kits/tutorial-tela/elementos/TeclaAtalho.tsx +0 -29
  2617. package/kits/tutorial-tela/elementos/TituloTela.tsx +0 -30
  2618. package/kits/tutorial-tela/elementos/base.ts +0 -65
  2619. package/kits/tutorial-tela/elementos/index.ts +0 -12
  2620. package/kits/tutorial-tela/exemplos/plano.json +0 -41
  2621. package/kits/tutorial-tela/exemplos/roteiro.md +0 -14
  2622. package/kits/tutorial-tela/preview.tsx +0 -9
  2623. package/kits/tutorial-tela/receita.json +0 -15
  2624. package/kits/tutorial-tela/regras/area-segura.md +0 -13
  2625. package/kits/tutorial-tela/regras/cor.md +0 -17
  2626. package/kits/tutorial-tela/regras/movimento.md +0 -20
  2627. package/kits/tutorial-tela/regras/ritmo.md +0 -24
  2628. package/kits/tutorial-tela/regras/som.md +0 -21
  2629. package/kits/tutorial-tela/regras/tipografia.md +0 -15
  2630. package/kits/ugc-reels/assets/ASSETS.md +0 -22
  2631. package/kits/ugc-reels/elementos/AssinaturaMarca.tsx +0 -28
  2632. package/kits/ugc-reels/elementos/BotaoLink.tsx +0 -24
  2633. package/kits/ugc-reels/elementos/CabecalhoPerfil.tsx +0 -38
  2634. package/kits/ugc-reels/elementos/Cena.tsx +0 -48
  2635. package/kits/ugc-reels/elementos/Comentario.tsx +0 -29
  2636. package/kits/ugc-reels/elementos/Fundo.tsx +0 -8
  2637. package/kits/ugc-reels/elementos/LegendaEmoji.tsx +0 -43
  2638. package/kits/ugc-reels/elementos/Montagem.tsx +0 -69
  2639. package/kits/ugc-reels/elementos/NotaDeMao.tsx +0 -29
  2640. package/kits/ugc-reels/elementos/Reacoes.tsx +0 -26
  2641. package/kits/ugc-reels/elementos/Som.tsx +0 -33
  2642. package/kits/ugc-reels/elementos/VideoCelular.tsx +0 -37
  2643. package/kits/ugc-reels/elementos/base.ts +0 -92
  2644. package/kits/ugc-reels/elementos/index.ts +0 -17
  2645. package/kits/ugc-reels/exemplos/fotos/foto-02.jpg +0 -0
  2646. package/kits/ugc-reels/exemplos/fotos/foto-03.jpg +0 -0
  2647. package/kits/ugc-reels/exemplos/fotos/foto-04.jpg +0 -0
  2648. package/kits/ugc-reels/exemplos/fotos/foto-06.jpg +0 -0
  2649. package/kits/ugc-reels/exemplos/logo-rotina.svg +0 -1
  2650. package/kits/ugc-reels/exemplos/plano.json +0 -54
  2651. package/kits/ugc-reels/exemplos/roteiro.md +0 -20
  2652. package/kits/ugc-reels/preview.tsx +0 -16
  2653. package/kits/ugc-reels/receita.json +0 -147
  2654. package/kits/ugc-reels/regras/area-segura.md +0 -18
  2655. package/kits/ugc-reels/regras/cor.md +0 -22
  2656. package/kits/ugc-reels/regras/movimento.md +0 -19
  2657. package/kits/ugc-reels/regras/ritmo.md +0 -14
  2658. package/kits/ugc-reels/regras/som.md +0 -20
  2659. package/kits/ugc-reels/regras/tipografia.md +0 -16
  2660. package/kits/vercel-mono/assets/ASSETS.md +0 -18
  2661. package/kits/vercel-mono/assets/sons/assinatura.mp3 +0 -0
  2662. package/kits/vercel-mono/assets/sons/clique.mp3 +0 -0
  2663. package/kits/vercel-mono/assets/sons/impacto.mp3 +0 -0
  2664. package/kits/vercel-mono/assets/sons/pop-cartao.mp3 +0 -0
  2665. package/kits/vercel-mono/assets/sons/pop-palavra.mp3 +0 -0
  2666. package/kits/vercel-mono/assets/sons/subida.mp3 +0 -0
  2667. package/kits/vercel-mono/assets/sons/swoosh.mp3 +0 -0
  2668. package/kits/vercel-mono/assets/sons/whoosh-entra.mp3 +0 -0
  2669. package/kits/vercel-mono/assets/sons/whoosh-sai.mp3 +0 -0
  2670. package/kits/vercel-mono/elementos/AssinaturaMarca.tsx +0 -18
  2671. package/kits/vercel-mono/elementos/Camera.tsx +0 -23
  2672. package/kits/vercel-mono/elementos/Cena.tsx +0 -46
  2673. package/kits/vercel-mono/elementos/FaixaOutline.tsx +0 -25
  2674. package/kits/vercel-mono/elementos/Fundo.tsx +0 -6
  2675. package/kits/vercel-mono/elementos/GradeDeNumeros.tsx +0 -27
  2676. package/kits/vercel-mono/elementos/Montagem.tsx +0 -61
  2677. package/kits/vercel-mono/elementos/PalavraMono.tsx +0 -31
  2678. package/kits/vercel-mono/elementos/Quadro.tsx +0 -28
  2679. package/kits/vercel-mono/elementos/Som.tsx +0 -39
  2680. package/kits/vercel-mono/elementos/TerminalComando.tsx +0 -33
  2681. package/kits/vercel-mono/elementos/TrianguloGigante.tsx +0 -27
  2682. package/kits/vercel-mono/elementos/base.ts +0 -82
  2683. package/kits/vercel-mono/elementos/index.ts +0 -16
  2684. package/kits/vercel-mono/exemplos/logo-vetor.svg +0 -1
  2685. package/kits/vercel-mono/exemplos/plano.json +0 -318
  2686. package/kits/vercel-mono/exemplos/roteiro.md +0 -20
  2687. package/kits/vercel-mono/preview.tsx +0 -12
  2688. package/kits/vercel-mono/receita.json +0 -156
  2689. package/kits/vercel-mono/regras/area-segura.md +0 -13
  2690. package/kits/vercel-mono/regras/cor.md +0 -12
  2691. package/kits/vercel-mono/regras/movimento.md +0 -15
  2692. package/kits/vercel-mono/regras/ritmo.md +0 -13
  2693. package/kits/vercel-mono/regras/som.md +0 -18
  2694. package/kits/vercel-mono/regras/tipografia.md +0 -14
  2695. package/kits/vhs-90/assets/ASSETS.md +0 -23
  2696. package/kits/vhs-90/elementos/AssinaturaMarca.tsx +0 -29
  2697. package/kits/vhs-90/elementos/BarrasRastreio.tsx +0 -21
  2698. package/kits/vhs-90/elementos/CapaVHS.tsx +0 -28
  2699. package/kits/vhs-90/elementos/CarimboData.tsx +0 -19
  2700. package/kits/vhs-90/elementos/Cena.tsx +0 -41
  2701. package/kits/vhs-90/elementos/Fundo.tsx +0 -27
  2702. package/kits/vhs-90/elementos/MenuOSD.tsx +0 -27
  2703. package/kits/vhs-90/elementos/Montagem.tsx +0 -60
  2704. package/kits/vhs-90/elementos/Som.tsx +0 -38
  2705. package/kits/vhs-90/elementos/TelaAzul.tsx +0 -29
  2706. package/kits/vhs-90/elementos/TituloFita.tsx +0 -40
  2707. package/kits/vhs-90/elementos/base.ts +0 -75
  2708. package/kits/vhs-90/elementos/index.ts +0 -16
  2709. package/kits/vhs-90/exemplos/fotos/foto-05.jpg +0 -0
  2710. package/kits/vhs-90/exemplos/fotos/foto-07.jpg +0 -0
  2711. package/kits/vhs-90/exemplos/logo-rewind.svg +0 -1
  2712. package/kits/vhs-90/exemplos/plano.json +0 -47
  2713. package/kits/vhs-90/exemplos/roteiro.md +0 -19
  2714. package/kits/vhs-90/preview.tsx +0 -17
  2715. package/kits/vhs-90/receita.json +0 -189
  2716. package/kits/vhs-90/regras/area-segura.md +0 -18
  2717. package/kits/vhs-90/regras/cor.md +0 -16
  2718. package/kits/vhs-90/regras/movimento.md +0 -16
  2719. package/kits/vhs-90/regras/ritmo.md +0 -16
  2720. package/kits/vhs-90/regras/som.md +0 -21
  2721. package/kits/vhs-90/regras/tipografia.md +0 -17
  2722. package/kits/vidro-ios/assets/ASSETS.md +0 -18
  2723. package/kits/vidro-ios/elementos/AssinaturaMarca.tsx +0 -21
  2724. package/kits/vidro-ios/elementos/Camera.tsx +0 -23
  2725. package/kits/vidro-ios/elementos/Cena.tsx +0 -46
  2726. package/kits/vidro-ios/elementos/Fundo.tsx +0 -17
  2727. package/kits/vidro-ios/elementos/IlhaDinamica.tsx +0 -24
  2728. package/kits/vidro-ios/elementos/Montagem.tsx +0 -60
  2729. package/kits/vidro-ios/elementos/PainelControle.tsx +0 -33
  2730. package/kits/vidro-ios/elementos/PilhaNotificacoes.tsx +0 -29
  2731. package/kits/vidro-ios/elementos/Som.tsx +0 -39
  2732. package/kits/vidro-ios/elementos/TituloVidro.tsx +0 -22
  2733. package/kits/vidro-ios/elementos/WidgetsGrade.tsx +0 -34
  2734. package/kits/vidro-ios/elementos/base.ts +0 -87
  2735. package/kits/vidro-ios/elementos/index.ts +0 -16
  2736. package/kits/vidro-ios/elementos/vidro.tsx +0 -20
  2737. package/kits/vidro-ios/exemplos/logo-vento.svg +0 -1
  2738. package/kits/vidro-ios/exemplos/plano.json +0 -288
  2739. package/kits/vidro-ios/exemplos/roteiro.md +0 -20
  2740. package/kits/vidro-ios/preview.tsx +0 -12
  2741. package/kits/vidro-ios/receita.json +0 -170
  2742. package/kits/vidro-ios/regras/area-segura.md +0 -13
  2743. package/kits/vidro-ios/regras/cor.md +0 -16
  2744. package/kits/vidro-ios/regras/movimento.md +0 -16
  2745. package/kits/vidro-ios/regras/ritmo.md +0 -14
  2746. package/kits/vidro-ios/regras/som.md +0 -18
  2747. package/kits/vidro-ios/regras/tipografia.md +0 -15
  2748. package/kits/y2k-cromado/assets/ASSETS.md +0 -23
  2749. package/kits/y2k-cromado/elementos/AssinaturaMarca.tsx +0 -25
  2750. package/kits/y2k-cromado/elementos/Bolhas.tsx +0 -30
  2751. package/kits/y2k-cromado/elementos/Brilhos.tsx +0 -28
  2752. package/kits/y2k-cromado/elementos/CartaoGloss.tsx +0 -26
  2753. package/kits/y2k-cromado/elementos/Cena.tsx +0 -41
  2754. package/kits/y2k-cromado/elementos/FitaMarquee.tsx +0 -20
  2755. package/kits/y2k-cromado/elementos/Fundo.tsx +0 -18
  2756. package/kits/y2k-cromado/elementos/JanelaY2K.tsx +0 -31
  2757. package/kits/y2k-cromado/elementos/Montagem.tsx +0 -60
  2758. package/kits/y2k-cromado/elementos/OrbeCromo.tsx +0 -20
  2759. package/kits/y2k-cromado/elementos/Som.tsx +0 -38
  2760. package/kits/y2k-cromado/elementos/TextoCromo.tsx +0 -34
  2761. package/kits/y2k-cromado/elementos/base.ts +0 -75
  2762. package/kits/y2k-cromado/elementos/index.ts +0 -17
  2763. package/kits/y2k-cromado/exemplos/fotos/foto-02.jpg +0 -0
  2764. package/kits/y2k-cromado/exemplos/fotos/foto-03.jpg +0 -0
  2765. package/kits/y2k-cromado/exemplos/logo-bolha.svg +0 -1
  2766. package/kits/y2k-cromado/exemplos/plano.json +0 -47
  2767. package/kits/y2k-cromado/exemplos/roteiro.md +0 -19
  2768. package/kits/y2k-cromado/preview.tsx +0 -17
  2769. package/kits/y2k-cromado/receita.json +0 -174
  2770. package/kits/y2k-cromado/regras/area-segura.md +0 -19
  2771. package/kits/y2k-cromado/regras/cor.md +0 -16
  2772. package/kits/y2k-cromado/regras/movimento.md +0 -16
  2773. package/kits/y2k-cromado/regras/ritmo.md +0 -15
  2774. package/kits/y2k-cromado/regras/som.md +0 -21
  2775. package/kits/y2k-cromado/regras/tipografia.md +0 -17
  2776. package/lib/act.js +0 -2512
  2777. package/lib/api.js +0 -310
  2778. package/lib/boas-vindas.js +0 -153
  2779. package/lib/catalogo.js +0 -367
  2780. package/lib/checkpoint-git.js +0 -221
  2781. package/lib/checkpoint.js +0 -366
  2782. package/lib/claude-engine.js +0 -673
  2783. package/lib/codex-engine.js +0 -225
  2784. package/lib/comandos-extra.js +0 -553
  2785. package/lib/comandos.js +0 -104
  2786. package/lib/config.js +0 -414
  2787. package/lib/desktop.js +0 -756
  2788. package/lib/editor-pro-maquina.js +0 -165
  2789. package/lib/editor-pro.js +0 -930
  2790. package/lib/entrada.js +0 -1031
  2791. package/lib/entregaveis/cli.js +0 -26
  2792. package/lib/entregaveis/especialistas.js +0 -50
  2793. package/lib/entregaveis/nucleo.js +0 -111
  2794. package/lib/entregaveis/slides.js +0 -221
  2795. package/lib/estudio/acervo.js +0 -418
  2796. package/lib/estudio/assets.js +0 -497
  2797. package/lib/estudio/assinatura.js +0 -108
  2798. package/lib/estudio/conferencia-visual.js +0 -76
  2799. package/lib/estudio/cota.js +0 -157
  2800. package/lib/estudio/diretor.js +0 -392
  2801. package/lib/estudio/editor.js +0 -290
  2802. package/lib/estudio/gosto-descrever.js +0 -87
  2803. package/lib/estudio/gosto.js +0 -608
  2804. package/lib/estudio/identidade.js +0 -560
  2805. package/lib/estudio/index.js +0 -2712
  2806. package/lib/estudio/kit.js +0 -91
  2807. package/lib/estudio/kits-tela.js +0 -199
  2808. package/lib/estudio/kokoro.js +0 -127
  2809. package/lib/estudio/maquina-foto.js +0 -177
  2810. package/lib/estudio/maquina-trilha.js +0 -160
  2811. package/lib/estudio/maquina-voz.js +0 -429
  2812. package/lib/estudio/marca.js +0 -398
  2813. package/lib/estudio/materiais.js +0 -172
  2814. package/lib/estudio/morfar.js +0 -191
  2815. package/lib/estudio/print-site.js +0 -341
  2816. package/lib/estudio/projeto.js +0 -340
  2817. package/lib/estudio/projetos.js +0 -72
  2818. package/lib/exportar-conversa.js +0 -49
  2819. package/lib/headless.js +0 -102
  2820. package/lib/kits-parecidos.js +0 -99
  2821. package/lib/kits-plano.js +0 -557
  2822. package/lib/kits.js +0 -1084
  2823. package/lib/limites.js +0 -100
  2824. package/lib/linha-do-tempo.js +0 -130
  2825. package/lib/local/motor-cli.js +0 -93
  2826. package/lib/local/motor.js +0 -267
  2827. package/lib/local/provedor.js +0 -169
  2828. package/lib/marca-kit.js +0 -312
  2829. package/lib/marketplace.js +0 -189
  2830. package/lib/mcp.js +0 -819
  2831. package/lib/motioncraft.js +0 -67
  2832. package/lib/perigo.js +0 -401
  2833. package/lib/permissao.js +0 -137
  2834. package/lib/sandbox.js +0 -252
  2835. package/lib/skills.js +0 -468
  2836. package/lib/statusline.js +0 -52
  2837. package/lib/tela.js +0 -245
  2838. package/lib/tools.js +0 -1086
  2839. package/lib/ui.js +0 -763
  2840. package/lib/video/analise.js +0 -89
  2841. package/lib/video/auto.js +0 -344
  2842. package/lib/video/ops-fx.js +0 -453
  2843. package/lib/video/ops.js +0 -384
  2844. package/lib/video/pedido.js +0 -191
  2845. package/lib/video/projeto.js +0 -133
  2846. package/lib/video/rastrear.js +0 -95
  2847. package/lib/video/render.js +0 -274
  2848. package/lib/video/transcript.js +0 -124
  2849. package/lib/video/zoom.js +0 -275
  2850. package/lib/voz-ponte.js +0 -15
  2851. package/lib/voz.js +0 -532
  2852. package/materiais/saas-linear/sons/trilha.mp3 +0 -0
  2853. /package/lib/{comecar.js → cli/comecar.js} +0 -0
  2854. /package/lib/{conta.js → config/conta.js} +0 -0
  2855. /package/lib/{limite.js → config/limite.js} +0 -0
  2856. /package/lib/{protecao.js → permission/protecao.js} +0 -0
  2857. /package/lib/{entregaveis.js → plugin/entregaveis.js} +0 -0
  2858. /package/lib/{estudio → plugin/estudio}/acervo-site.js +0 -0
  2859. /package/lib/{estudio → plugin/estudio}/assinaturas/fluido.json +0 -0
  2860. /package/lib/{estudio → plugin/estudio}/assinaturas/gerativo.json +0 -0
  2861. /package/lib/{estudio → plugin/estudio}/batida.js +0 -0
  2862. /package/lib/{estudio → plugin/estudio}/biblioteca.js +0 -0
  2863. /package/lib/{estudio → plugin/estudio}/camadas.js +0 -0
  2864. /package/lib/{estudio → plugin/estudio}/cena.js +0 -0
  2865. /package/lib/{estudio → plugin/estudio}/cenarios.js +0 -0
  2866. /package/lib/{estudio → plugin/estudio}/cinema.js +0 -0
  2867. /package/lib/{estudio → plugin/estudio}/colecao.js +0 -0
  2868. /package/lib/{estudio → plugin/estudio}/composicao.js +0 -0
  2869. /package/lib/{estudio → plugin/estudio}/conferencia.js +0 -0
  2870. /package/lib/{estudio → plugin/estudio}/dados/fluent-3d.json +0 -0
  2871. /package/lib/{estudio → plugin/estudio}/dados/noto-animado.json +0 -0
  2872. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-ad5.json +0 -0
  2873. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-ae-sem-memoria.json +0 -0
  2874. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-agent.json +0 -0
  2875. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-antes-e-agora.json +0 -0
  2876. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-apresentando-clube.json +0 -0
  2877. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-bluevisa.json +0 -0
  2878. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-caught-in-the-fire.json +0 -0
  2879. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-chat-cliente-satisfeito.json +0 -0
  2880. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-chatgpt-anuncios.json +0 -0
  2881. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-claude-dj.json +0 -0
  2882. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-claude-mcp.json +0 -0
  2883. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-cleanui.json +0 -0
  2884. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-clinica-take-unico.json +0 -0
  2885. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-clinica.json +0 -0
  2886. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-clube-opener.json +0 -0
  2887. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-clube.json +0 -0
  2888. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-codigo.json +0 -0
  2889. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-distilbook.json +0 -0
  2890. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-drive-upload.json +0 -0
  2891. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-dub.json +0 -0
  2892. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-enxovaly.json +0 -0
  2893. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-fecha7.json +0 -0
  2894. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-filatov.json +0 -0
  2895. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-frame.json +0 -0
  2896. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-glass.json +0 -0
  2897. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-letra-em-apps.json +0 -0
  2898. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-letra-globo-3d.json +0 -0
  2899. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-letra-nos-apps.json +0 -0
  2900. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-letra-seis-mundos.json +0 -0
  2901. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-lula-3.json +0 -0
  2902. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-morph.json +0 -0
  2903. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-motion-designer.json +0 -0
  2904. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-motion-pacote.json +0 -0
  2905. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-movimento.json +0 -0
  2906. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-not-like-us.json +0 -0
  2907. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-pinterest-inspiracao.json +0 -0
  2908. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-pixel-e-tinta.json +0 -0
  2909. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-ponte.json +0 -0
  2910. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-processo-edit-tonal.json +0 -0
  2911. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-processo-motion-100-ia.json +0 -0
  2912. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-promo.json +0 -0
  2913. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-proposito.json +0 -0
  2914. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-rankhog.json +0 -0
  2915. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-recursao.json +0 -0
  2916. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-revelar.json +0 -0
  2917. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-robo.json +0 -0
  2918. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-shelby-ep2.json +0 -0
  2919. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-shelby.json +0 -0
  2920. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-solar-eclipse.json +0 -0
  2921. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-soldier.json +0 -0
  2922. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-som-de-cena.json +0 -0
  2923. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-spotify-candidatura.json +0 -0
  2924. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-tda-app.json +0 -0
  2925. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-tda-ia.json +0 -0
  2926. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-telegram-chat.json +0 -0
  2927. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-telegram-ilha.json +0 -0
  2928. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-tennessee-nike.json +0 -0
  2929. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-tudo-se-move.json +0 -0
  2930. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-uiad.json +0 -0
  2931. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-viralgrow.json +0 -0
  2932. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-whose-side.json +0 -0
  2933. /package/lib/{estudio → plugin/estudio}/dados/projetos/clube-youtube-inscrever.json +0 -0
  2934. /package/lib/{estudio → plugin/estudio}/dados/projetos/elementos-do-site-em-movimento.json +0 -0
  2935. /package/lib/{estudio → plugin/estudio}/dados/projetos/explainer-narrado.json +0 -0
  2936. /package/lib/{estudio → plugin/estudio}/dados/projetos/lancamento-de-produto.json +0 -0
  2937. /package/lib/{estudio → plugin/estudio}/dados/projetos/motion-so-com-sons.json +0 -0
  2938. /package/lib/{estudio → plugin/estudio}/dados/projetos/titulo-em-after-effects.json +0 -0
  2939. /package/lib/{estudio → plugin/estudio}/dados/projetos/tour-de-saas.json +0 -0
  2940. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/antes-e-agora/ae/cenas.jsx +0 -0
  2941. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/antes-e-agora/assets/fazer_assets.py +0 -0
  2942. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-em-apps/ae/cenas.jsx +0 -0
  2943. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-em-apps/assets/preparar_assets.py +0 -0
  2944. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-em-apps/assets/svg_para_ae.py +0 -0
  2945. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/BRIEF-AGENTES.md +0 -0
  2946. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/README.md +0 -0
  2947. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ROTEIRO-CENAS.md +0 -0
  2948. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/A-agenda.jsx +0 -0
  2949. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/B-docs.jsx +0 -0
  2950. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/C-alttab.jsx +0 -0
  2951. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/D-spotify.jsx +0 -0
  2952. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/E-notas.jsx +0 -0
  2953. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/F-jornal1.jsx +0 -0
  2954. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/G-google.jsx +0 -0
  2955. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/H-mapa.jsx +0 -0
  2956. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/I-imagens.jsx +0 -0
  2957. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/J-jornal2.jsx +0 -0
  2958. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/K-maps.jsx +0 -0
  2959. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/camera-movimentos.jsx +0 -0
  2960. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/camera.jsx +0 -0
  2961. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/card-spotify.jsx +0 -0
  2962. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/digitar.jsx +0 -0
  2963. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/jornal-comum.jsx +0 -0
  2964. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/letra.jsx +0 -0
  2965. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/letra_automatica.py +0 -0
  2966. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/montagem.jsx +0 -0
  2967. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/w-agenda/render_html.py +0 -0
  2968. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/w-agenda/util.jsx +0 -0
  2969. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/w-midia-comum.jsx +0 -0
  2970. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/ae/wg-util.jsx +0 -0
  2971. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/assets/F-jornal1/render_html.py +0 -0
  2972. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/assets/render_w-midia.py +0 -0
  2973. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/assets/w-midia-ferramentas/inclin.py +0 -0
  2974. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/assets/w-midia-ferramentas/medir_d.py +0 -0
  2975. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/assets/w-midia-ferramentas/medir_e.py +0 -0
  2976. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/ajustar_movimentos.py +0 -0
  2977. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/ancorar.py +0 -0
  2978. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/assar.py +0 -0
  2979. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/camera3d_jornal.py +0 -0
  2980. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/comparar.py +0 -0
  2981. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/dados_ae_jornal.py +0 -0
  2982. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/folha_contato.py +0 -0
  2983. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/homografia_jornal.py +0 -0
  2984. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/integrar.py +0 -0
  2985. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/medir_quadro_a_quadro.py +0 -0
  2986. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/mesa_2d.py +0 -0
  2987. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/plot_cenas.py +0 -0
  2988. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/retificar_quadros.py +0 -0
  2989. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/w-agenda/assar_ab.py +0 -0
  2990. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/w-agenda/medir_ab.py +0 -0
  2991. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/wg_ajustar_h.py +0 -0
  2992. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/wg_corrige_cam.py +0 -0
  2993. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/wg_ecc_cadeia.py +0 -0
  2994. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/wg_finalizar_cam.py +0 -0
  2995. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/camera/wg_mosaico.py +0 -0
  2996. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/01-gramatica-e-roteiro.md +0 -0
  2997. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/02-camera.md +0 -0
  2998. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/03-montagem-no-ae.md +0 -0
  2999. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/04-render-e-conferencia.md +0 -0
  3000. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/05-abertura-celular-mergulho.md +0 -0
  3001. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces.md +0 -0
  3002. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/transicao/atraso_imagem.py +0 -0
  3003. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/transicao/fundo.py +0 -0
  3004. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/transicao/juntar.py +0 -0
  3005. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/transicao/montar.py +0 -0
  3006. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/transicao/rastreio.py +0 -0
  3007. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/letra-nos-apps/transicao/sincronia.py +0 -0
  3008. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/pinterest-inspiracao/ae/cenas.jsx +0 -0
  3009. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/pinterest-inspiracao/assets/fazer_assets.py +0 -0
  3010. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/assets/pessoas/figurinha.py +0 -0
  3011. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/comp-a/BRIEF-A.md +0 -0
  3012. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/comp-a/audio.py +0 -0
  3013. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/comp-a/confere.py +0 -0
  3014. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/comp-a/dados/tempo-parte1.js +0 -0
  3015. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/comp-a/dados/tempo-parte2.js +0 -0
  3016. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/comp-a/gerar_emojis.py +0 -0
  3017. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/comp-a/img/filmes/_indice.js +0 -0
  3018. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/comp-a/js/base.js +0 -0
  3019. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/comp-a/js/main.js +0 -0
  3020. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/comp-a/js/p1a.js +0 -0
  3021. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/comp-a/js/p1b.js +0 -0
  3022. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/comp-a/js/p1c.js +0 -0
  3023. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/comp-a/js/p2.js +0 -0
  3024. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/comp-a/video.py +0 -0
  3025. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/take-unico/README.md +0 -0
  3026. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/take-unico/oraculo_take.py +0 -0
  3027. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/take-unico/render_take.py +0 -0
  3028. /package/lib/{estudio → plugin/estudio}/dados/projetos-ae/processo-motion-100-ia/take-unico/take.js +0 -0
  3029. /package/lib/{estudio → plugin/estudio}/decisao.js +0 -0
  3030. /package/lib/{estudio → plugin/estudio}/edicao.js +0 -0
  3031. /package/lib/{estudio → plugin/estudio}/efeitos-fabrica/brilho-varredura.jsx +0 -0
  3032. /package/lib/{estudio → plugin/estudio}/efeitos-fabrica/camadas-empilhadas.jsx +0 -0
  3033. /package/lib/{estudio → plugin/estudio}/efeitos-fabrica/cor-inunda.jsx +0 -0
  3034. /package/lib/{estudio → plugin/estudio}/efeitos-fabrica/mola-com-peso.jsx +0 -0
  3035. /package/lib/{estudio → plugin/estudio}/efeitos-fabrica/peca-impacto-3d.jsx +0 -0
  3036. /package/lib/{estudio → plugin/estudio}/efeitos-fabrica/raios-de-luz.jsx +0 -0
  3037. /package/lib/{estudio → plugin/estudio}/efeitos-fabrica/risco-multilinha.jsx +0 -0
  3038. /package/lib/{estudio → plugin/estudio}/efeitos-fabrica/terminal-digitando.jsx +0 -0
  3039. /package/lib/{estudio → plugin/estudio}/efeitos.js +0 -0
  3040. /package/lib/{estudio → plugin/estudio}/effectcraft.js +0 -0
  3041. /package/lib/{estudio → plugin/estudio}/ende.js +0 -0
  3042. /package/lib/{estudio → plugin/estudio}/estilo.js +0 -0
  3043. /package/lib/{estudio → plugin/estudio}/estilos.js +0 -0
  3044. /package/lib/{estudio → plugin/estudio}/exportar.js +0 -0
  3045. /package/lib/{estudio → plugin/estudio}/falantes.js +0 -0
  3046. /package/lib/{estudio → plugin/estudio}/fluido.js +0 -0
  3047. /package/lib/{estudio → plugin/estudio}/gerativo.js +0 -0
  3048. /package/lib/{estudio → plugin/estudio}/glifos.js +0 -0
  3049. /package/lib/{estudio → plugin/estudio}/gosto/tela.html +0 -0
  3050. /package/lib/{estudio → plugin/estudio}/gosto-medir.js +0 -0
  3051. /package/lib/{estudio → plugin/estudio}/gosto-prova.js +0 -0
  3052. /package/lib/{estudio → plugin/estudio}/hibrido.js +0 -0
  3053. /package/lib/{estudio → plugin/estudio}/impacto.js +0 -0
  3054. /package/lib/{estudio → plugin/estudio}/kit/animacao.jsx +0 -0
  3055. /package/lib/{estudio → plugin/estudio}/kit/base.jsx +0 -0
  3056. /package/lib/{estudio → plugin/estudio}/kit/fluido.jsx +0 -0
  3057. /package/lib/{estudio → plugin/estudio}/kit/gerativo.jsx +0 -0
  3058. /package/lib/{estudio → plugin/estudio}/kit/index.jsx +0 -0
  3059. /package/lib/{estudio → plugin/estudio}/kit/marca.jsx +0 -0
  3060. /package/lib/{estudio → plugin/estudio}/kit/mundo.jsx +0 -0
  3061. /package/lib/{estudio → plugin/estudio}/kit/natural.js +0 -0
  3062. /package/lib/{estudio → plugin/estudio}/kit/personagem.jsx +0 -0
  3063. /package/lib/{estudio → plugin/estudio}/kit/rosto.jsx +0 -0
  3064. /package/lib/{estudio → plugin/estudio}/kit/tres.jsx +0 -0
  3065. /package/lib/{estudio → plugin/estudio}/kit/vox.jsx +0 -0
  3066. /package/lib/{estudio → plugin/estudio}/kit/voxel.jsx +0 -0
  3067. /package/lib/{estudio → plugin/estudio}/kit-ae/base.jsx +0 -0
  3068. /package/lib/{estudio → plugin/estudio}/kit-ae/cenas.jsx +0 -0
  3069. /package/lib/{estudio → plugin/estudio}/kit-ae/guarda.jsx +0 -0
  3070. /package/lib/{estudio → plugin/estudio}/kit-ae/primitivas.jsx +0 -0
  3071. /package/lib/{estudio → plugin/estudio}/kits/tela.html +0 -0
  3072. /package/lib/{estudio → plugin/estudio}/lancamento.js +0 -0
  3073. /package/lib/{estudio → plugin/estudio}/legibilidade.js +0 -0
  3074. /package/lib/{estudio → plugin/estudio}/maquina-diretor.js +0 -0
  3075. /package/lib/{estudio → plugin/estudio}/maquina-elementos.js +0 -0
  3076. /package/lib/{estudio → plugin/estudio}/maquina-guarda.js +0 -0
  3077. /package/lib/{estudio → plugin/estudio}/maquina-layout.js +0 -0
  3078. /package/lib/{estudio → plugin/estudio}/maquina-som.js +0 -0
  3079. /package/lib/{estudio → plugin/estudio}/maquina.js +0 -0
  3080. /package/lib/{estudio → plugin/estudio}/margem.js +0 -0
  3081. /package/lib/{estudio → plugin/estudio}/motion.js +0 -0
  3082. /package/lib/{estudio → plugin/estudio}/movimentos.js +0 -0
  3083. /package/lib/{estudio → plugin/estudio}/mundo.js +0 -0
  3084. /package/lib/{estudio → plugin/estudio}/personagem.js +0 -0
  3085. /package/lib/{estudio → plugin/estudio}/plano.js +0 -0
  3086. /package/lib/{estudio → plugin/estudio}/producao.js +0 -0
  3087. /package/lib/{estudio → plugin/estudio}/referencias.js +0 -0
  3088. /package/lib/{estudio → plugin/estudio}/regras-motion.js +0 -0
  3089. /package/lib/{estudio → plugin/estudio}/remotion.js +0 -0
  3090. /package/lib/{estudio → plugin/estudio}/revisor.js +0 -0
  3091. /package/lib/{estudio → plugin/estudio}/ritmo.js +0 -0
  3092. /package/lib/{estudio → plugin/estudio}/sem-narracao.js +0 -0
  3093. /package/lib/{estudio → plugin/estudio}/slides.js +0 -0
  3094. /package/lib/{estudio → plugin/estudio}/sons-leves.js +0 -0
  3095. /package/lib/{estudio → plugin/estudio}/variacao3d.js +0 -0
  3096. /package/lib/{estudio → plugin/estudio}/variedade.js +0 -0
  3097. /package/lib/{estudio → plugin/estudio}/video.js +0 -0
  3098. /package/lib/{estudio → plugin/estudio}/visao/visao.swift +0 -0
  3099. /package/lib/{estudio → plugin/estudio}/visao.js +0 -0
  3100. /package/lib/{estudio → plugin/estudio}/voicestudio.js +0 -0
  3101. /package/lib/{estudio → plugin/estudio}/vox.js +0 -0
  3102. /package/lib/{video → plugin/video}/camadas.js +0 -0
  3103. /package/lib/{video → plugin/video}/cli.js +0 -0
  3104. /package/lib/{video → plugin/video}/conferir-legenda.js +0 -0
  3105. /package/lib/{video → plugin/video}/cor.js +0 -0
  3106. /package/lib/{video → plugin/video}/delta.js +0 -0
  3107. /package/lib/{video → plugin/video}/edits.js +0 -0
  3108. /package/lib/{video → plugin/video}/filters.js +0 -0
  3109. /package/lib/{video → plugin/video}/fx3d/Camadas.jsx +0 -0
  3110. /package/lib/{video → plugin/video}/fx3d/Objetos.jsx +0 -0
  3111. /package/lib/{video → plugin/video}/fx3d/Root.jsx +0 -0
  3112. /package/lib/{video → plugin/video}/fx3d/modelos.jsx +0 -0
  3113. /package/lib/{video → plugin/video}/fx3d.js +0 -0
  3114. /package/lib/{video → plugin/video}/gerados.js +0 -0
  3115. /package/lib/{video → plugin/video}/objetos.js +0 -0
  3116. /package/lib/{video → plugin/video}/paralelo.js +0 -0
  3117. /package/lib/{video → plugin/video}/rastro.js +0 -0
  3118. /package/lib/{video → plugin/video}/texto.js +0 -0
  3119. /package/lib/{video → plugin/video}/timeline.js +0 -0
  3120. /package/lib/{local → provider/local}/cerebro.json +0 -0
  3121. /package/lib/{local → provider/local}/entrada.js +0 -0
  3122. /package/lib/{encolheu.js → session/encolheu.js} +0 -0
  3123. /package/lib/{memoria-conversa.js → session/memoria-conversa.js} +0 -0
  3124. /package/lib/{retomar.js → session/retomar.js} +0 -0
  3125. /package/lib/{snapshot.js → session/snapshot.js} +0 -0
  3126. /package/lib/{titulo-conversa.js → session/titulo-conversa.js} +0 -0
  3127. /package/lib/{especialistas.js → skill/especialistas.js} +0 -0
  3128. /package/lib/{personas.js → skill/personas.js} +0 -0
  3129. /package/lib/{portao-skill.js → skill/portao-skill.js} +0 -0
  3130. /package/lib/{casar.js → tool/casar.js} +0 -0
  3131. /package/lib/{markdown.js → tui/markdown.js} +0 -0
  3132. /package/{kits/adesivos/elementos → materiais/adesivos/camera}/Camera.tsx +0 -0
  3133. /package/{kits/adesivos/assets → materiais/adesivos}/fontes/OFL-BowlbyOne.txt +0 -0
  3134. /package/{kits/adesivos/assets → materiais/adesivos}/fontes/OFL-Nunito.txt +0 -0
  3135. /package/{kits/adesivos/assets → materiais/adesivos}/fontes/bowlby-latin.woff2 +0 -0
  3136. /package/{kits/adesivos/assets → materiais/adesivos}/fontes/nunito-latin.woff2 +0 -0
  3137. /package/{kits/adesivos/assets → materiais/adesivos}/sons/assinatura.mp3 +0 -0
  3138. /package/{kits/adesivos/assets → materiais/adesivos}/sons/cola.mp3 +0 -0
  3139. /package/{kits/adesivos/assets → materiais/adesivos}/sons/confete.mp3 +0 -0
  3140. /package/{kits/adesivos/assets → materiais/adesivos}/sons/impacto.mp3 +0 -0
  3141. /package/{kits/adesivos/assets → materiais/adesivos}/sons/palavra.mp3 +0 -0
  3142. /package/{kits/adesivos/assets → materiais/adesivos}/sons/pop.mp3 +0 -0
  3143. /package/{kits/adesivos/assets → materiais/adesivos}/sons/swipe.mp3 +0 -0
  3144. /package/{kits/adesivos/assets → materiais/adesivos}/sons/whoosh.mp3 +0 -0
  3145. /package/{kits/adesivos/assets → materiais/adesivos}/trilha/pop-colorido-112bpm.mp3 +0 -0
  3146. /package/{kits/antes-depois/elementos → materiais/antes-depois/camera}/Camera.tsx +0 -0
  3147. /package/{kits/antes-depois/assets → materiais/antes-depois}/fontes/OFL-ArchivoBlack.txt +0 -0
  3148. /package/{kits/antes-depois/assets → materiais/antes-depois}/fontes/OFL-Manrope.txt +0 -0
  3149. /package/{kits/antes-depois/assets → materiais/antes-depois}/fontes/archivoblack.woff2 +0 -0
  3150. /package/{kits/antes-depois/assets → materiais/antes-depois}/fontes/manrope.woff2 +0 -0
  3151. /package/{kits/antes-depois/assets → materiais/antes-depois}/sons/assinatura.mp3 +0 -0
  3152. /package/{kits/antes-depois/assets → materiais/antes-depois}/sons/clique.mp3 +0 -0
  3153. /package/{kits/antes-depois/assets → materiais/antes-depois}/sons/impacto.mp3 +0 -0
  3154. /package/{kits/antes-depois/assets → materiais/antes-depois}/sons/pop-cartao.mp3 +0 -0
  3155. /package/{kits/antes-depois/assets → materiais/antes-depois}/sons/pop-palavra.mp3 +0 -0
  3156. /package/{kits/antes-depois/assets → materiais/antes-depois}/sons/subida.mp3 +0 -0
  3157. /package/{kits/antes-depois/assets → materiais/antes-depois}/sons/swoosh.mp3 +0 -0
  3158. /package/{kits/antes-depois/assets → materiais/antes-depois}/sons/tick.mp3 +0 -0
  3159. /package/{kits/antes-depois/assets → materiais/antes-depois}/sons/whoosh-entra.mp3 +0 -0
  3160. /package/{kits/antes-depois/assets → materiais/antes-depois}/sons/whoosh-sai.mp3 +0 -0
  3161. /package/{kits/antes-depois/assets → materiais/antes-depois}/trilha/corte-118bpm.mp3 +0 -0
  3162. /package/{kits/apple-tipografico/assets → materiais/apple-tipografico}/fontes/OFL-Inter.txt +0 -0
  3163. /package/{kits/apple-tipografico/assets → materiais/apple-tipografico}/fontes/inter-latin-500-800.woff2 +0 -0
  3164. /package/{kits/apple-tipografico/elementos → materiais/apple-tipografico/lib}/modelos.ts +0 -0
  3165. /package/{kits/apple-tipografico/elementos → materiais/apple-tipografico/lib}/raymarch.ts +0 -0
  3166. /package/{kits/apple-tipografico/assets → materiais/apple-tipografico}/sons/assinatura.mp3 +0 -0
  3167. /package/{kits/apple-tipografico/assets → materiais/apple-tipografico}/sons/clique.mp3 +0 -0
  3168. /package/{kits/apple-tipografico/assets → materiais/apple-tipografico}/sons/impacto.mp3 +0 -0
  3169. /package/{kits/apple-tipografico/assets → materiais/apple-tipografico}/sons/pop-cartao.mp3 +0 -0
  3170. /package/{kits/apple-tipografico/assets → materiais/apple-tipografico}/sons/pop-palavra.mp3 +0 -0
  3171. /package/{kits/apple-tipografico/assets → materiais/apple-tipografico}/sons/subida.mp3 +0 -0
  3172. /package/{kits/apple-tipografico/assets → materiais/apple-tipografico}/sons/swoosh.mp3 +0 -0
  3173. /package/{kits/apple-tipografico/assets → materiais/apple-tipografico}/sons/whoosh-entra.mp3 +0 -0
  3174. /package/{kits/apple-tipografico/assets → materiais/apple-tipografico}/sons/whoosh-sai.mp3 +0 -0
  3175. /package/{kits/apple-tipografico/assets → materiais/apple-tipografico}/trilha/tech-claro-125bpm.mp3 +0 -0
  3176. /package/{kits/aquarela/elementos → materiais/aquarela/camera}/Camera.tsx +0 -0
  3177. /package/{kits/aquarela/assets → materiais/aquarela}/fontes/OFL-Caveat.txt +0 -0
  3178. /package/{kits/aquarela/assets → materiais/aquarela}/fontes/OFL-Fraunces.txt +0 -0
  3179. /package/{kits/aquarela/assets → materiais/aquarela}/fontes/caveat-latin.woff2 +0 -0
  3180. /package/{kits/aquarela/assets → materiais/aquarela}/fontes/fraunces-latin.woff2 +0 -0
  3181. /package/{kits/aquarela/assets → materiais/aquarela}/sons/assinatura.mp3 +0 -0
  3182. /package/{kits/aquarela/assets → materiais/aquarela}/sons/gota.mp3 +0 -0
  3183. /package/{kits/aquarela/assets → materiais/aquarela}/sons/impacto.mp3 +0 -0
  3184. /package/{kits/aquarela/assets → materiais/aquarela}/sons/palavra.mp3 +0 -0
  3185. /package/{kits/aquarela/assets → materiais/aquarela}/sons/papel-cai.mp3 +0 -0
  3186. /package/{kits/aquarela/assets → materiais/aquarela}/sons/pop-mancha.mp3 +0 -0
  3187. /package/{kits/aquarela/assets → materiais/aquarela}/sons/risco.mp3 +0 -0
  3188. /package/{kits/aquarela/assets → materiais/aquarela}/sons/whoosh-pincel.mp3 +0 -0
  3189. /package/{kits/aquarela/assets → materiais/aquarela}/trilha/calma-com-punch-108bpm.mp3 +0 -0
  3190. /package/{kits/aurora/elementos → materiais/aurora/camera}/Camera.tsx +0 -0
  3191. /package/{kits/aurora/assets → materiais/aurora}/fontes/OFL-InstrumentSerif.txt +0 -0
  3192. /package/{kits/aurora/assets → materiais/aurora}/fontes/OFL-Manrope.txt +0 -0
  3193. /package/{kits/aurora/assets → materiais/aurora}/fontes/instrument-latin.woff2 +0 -0
  3194. /package/{kits/aurora/assets → materiais/aurora}/fontes/manrope-latin.woff2 +0 -0
  3195. /package/{kits/aurora/assets → materiais/aurora}/sons/assinatura.mp3 +0 -0
  3196. /package/{kits/aurora/assets → materiais/aurora}/sons/brilho.mp3 +0 -0
  3197. /package/{kits/aurora/assets → materiais/aurora}/sons/meteoro.mp3 +0 -0
  3198. /package/{kits/aurora/assets → materiais/aurora}/sons/onda.mp3 +0 -0
  3199. /package/{kits/aurora/assets → materiais/aurora}/sons/sino.mp3 +0 -0
  3200. /package/{kits/aurora/assets → materiais/aurora}/sons/sopro.mp3 +0 -0
  3201. /package/{kits/aurora/assets → materiais/aurora}/sons/subida.mp3 +0 -0
  3202. /package/{kits/aurora/assets → materiais/aurora}/sons/toque.mp3 +0 -0
  3203. /package/{kits/aurora/assets → materiais/aurora}/trilha/suave-88bpm.mp3 +0 -0
  3204. /package/{kits/bauhaus/assets → materiais/bauhaus}/fontes/OFL-bebas-neue.txt +0 -0
  3205. /package/{kits/bauhaus/assets → materiais/bauhaus}/fontes/OFL-jost-900.txt +0 -0
  3206. /package/{kits/bauhaus/assets → materiais/bauhaus}/fontes/bebas-neue.woff2 +0 -0
  3207. /package/{kits/bauhaus/assets → materiais/bauhaus}/fontes/jost-900.woff2 +0 -0
  3208. /package/{kits/bauhaus/assets → materiais/bauhaus}/sons/assinatura.mp3 +0 -0
  3209. /package/{kits/bauhaus/assets → materiais/bauhaus}/sons/clique.mp3 +0 -0
  3210. /package/{kits/bauhaus/assets → materiais/bauhaus}/sons/impacto.mp3 +0 -0
  3211. /package/{kits/bauhaus/assets → materiais/bauhaus}/sons/pop-cartao.mp3 +0 -0
  3212. /package/{kits/bauhaus/assets → materiais/bauhaus}/sons/pop-palavra.mp3 +0 -0
  3213. /package/{kits/bauhaus/assets → materiais/bauhaus}/sons/subida.mp3 +0 -0
  3214. /package/{kits/bauhaus/assets → materiais/bauhaus}/sons/swoosh.mp3 +0 -0
  3215. /package/{kits/bauhaus/assets → materiais/bauhaus}/sons/tick.mp3 +0 -0
  3216. /package/{kits/bauhaus/assets → materiais/bauhaus}/sons/whoosh-entra.mp3 +0 -0
  3217. /package/{kits/bauhaus/assets → materiais/bauhaus}/sons/whoosh-sai.mp3 +0 -0
  3218. /package/{kits/bauhaus/assets → materiais/bauhaus}/trilha/trilha.mp3 +0 -0
  3219. /package/{kits/brutalista/elementos → materiais/brutalista/camera}/Camera.tsx +0 -0
  3220. /package/{kits/brutalista/assets → materiais/brutalista}/fontes/OFL-ArchivoBlack.txt +0 -0
  3221. /package/{kits/brutalista/assets → materiais/brutalista}/fontes/OFL-JetBrainsMono.txt +0 -0
  3222. /package/{kits/brutalista/assets → materiais/brutalista}/fontes/archivo-black.woff2 +0 -0
  3223. /package/{kits/brutalista/assets → materiais/brutalista}/fontes/jetbrains-mono.woff2 +0 -0
  3224. /package/{kits/brutalista/assets → materiais/brutalista}/sons/assinatura.mp3 +0 -0
  3225. /package/{kits/brutalista/assets → materiais/brutalista}/sons/clique.mp3 +0 -0
  3226. /package/{kits/brutalista/assets → materiais/brutalista}/sons/impacto.mp3 +0 -0
  3227. /package/{kits/brutalista/assets → materiais/brutalista}/sons/pop-cartao.mp3 +0 -0
  3228. /package/{kits/brutalista/assets → materiais/brutalista}/sons/pop-palavra.mp3 +0 -0
  3229. /package/{kits/brutalista/assets → materiais/brutalista}/sons/subida.mp3 +0 -0
  3230. /package/{kits/brutalista/assets → materiais/brutalista}/sons/swoosh.mp3 +0 -0
  3231. /package/{kits/brutalista/assets → materiais/brutalista}/sons/whoosh-entra.mp3 +0 -0
  3232. /package/{kits/brutalista/assets → materiais/brutalista}/sons/whoosh-sai.mp3 +0 -0
  3233. /package/{kits/brutalista/assets → materiais/brutalista}/trilha/bruta-108bpm.mp3 +0 -0
  3234. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/fontes/OFL-Archivo-Black.txt +0 -0
  3235. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/fontes/OFL-DM-Mono.txt +0 -0
  3236. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/fontes/OFL-Playfair-Italic.txt +0 -0
  3237. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/fontes/archivo-black.woff2 +0 -0
  3238. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/fontes/dm-mono.woff2 +0 -0
  3239. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/fontes/playfair-italic.woff2 +0 -0
  3240. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/sons/assinatura.mp3 +0 -0
  3241. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/sons/clique.mp3 +0 -0
  3242. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/sons/impacto.mp3 +0 -0
  3243. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/sons/pop-cartao.mp3 +0 -0
  3244. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/sons/pop-palavra.mp3 +0 -0
  3245. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/sons/subida.mp3 +0 -0
  3246. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/sons/swoosh.mp3 +0 -0
  3247. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/sons/whoosh-entra.mp3 +0 -0
  3248. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/sons/whoosh-sai.mp3 +0 -0
  3249. /package/{kits/campos-de-cor/assets → materiais/campos-de-cor}/trilha/trilha.mp3 +0 -0
  3250. /package/{kits/cartaz-cinetico/elementos → materiais/cartaz-cinetico/camera}/Camera.tsx +0 -0
  3251. /package/{kits/cartaz-cinetico/assets → materiais/cartaz-cinetico}/fontes/OFL-Anton.txt +0 -0
  3252. /package/{kits/cartaz-cinetico/assets → materiais/cartaz-cinetico}/fontes/OFL-Archivo.txt +0 -0
  3253. /package/{kits/cartaz-cinetico/assets → materiais/cartaz-cinetico}/fontes/anton.woff2 +0 -0
  3254. /package/{kits/cartaz-cinetico/assets → materiais/cartaz-cinetico}/fontes/archivo.woff2 +0 -0
  3255. /package/{kits/cartaz-cinetico/assets → materiais/cartaz-cinetico}/sons/assinatura.mp3 +0 -0
  3256. /package/{kits/cartaz-cinetico/assets → materiais/cartaz-cinetico}/sons/clique.mp3 +0 -0
  3257. /package/{kits/cartaz-cinetico/assets → materiais/cartaz-cinetico}/sons/impacto.mp3 +0 -0
  3258. /package/{kits/cartaz-cinetico/assets → materiais/cartaz-cinetico}/sons/pop-cartao.mp3 +0 -0
  3259. /package/{kits/cartaz-cinetico/assets → materiais/cartaz-cinetico}/sons/pop-palavra.mp3 +0 -0
  3260. /package/{kits/cartaz-cinetico/assets → materiais/cartaz-cinetico}/sons/subida.mp3 +0 -0
  3261. /package/{kits/cartaz-cinetico/assets → materiais/cartaz-cinetico}/sons/swoosh.mp3 +0 -0
  3262. /package/{kits/cartaz-cinetico/assets → materiais/cartaz-cinetico}/sons/whoosh-entra.mp3 +0 -0
  3263. /package/{kits/cartaz-cinetico/assets → materiais/cartaz-cinetico}/sons/whoosh-sai.mp3 +0 -0
  3264. /package/{kits/cartaz-cinetico/assets → materiais/cartaz-cinetico}/trilha/cartaz-124bpm.mp3 +0 -0
  3265. /package/{kits/colagem/assets → materiais/colagem}/fontes/OFL-abril-fatface.txt +0 -0
  3266. /package/{kits/colagem/assets → materiais/colagem}/fontes/OFL-special-elite.txt +0 -0
  3267. /package/{kits/colagem/assets → materiais/colagem}/fontes/abril-fatface.woff2 +0 -0
  3268. /package/{kits/colagem/assets → materiais/colagem}/fontes/special-elite.woff2 +0 -0
  3269. /package/{kits/colagem/elementos → materiais/colagem/formas}/Overlay.tsx +0 -0
  3270. /package/{kits/colagem/assets → materiais/colagem}/sons/assinatura.mp3 +0 -0
  3271. /package/{kits/colagem/assets → materiais/colagem}/sons/clique.mp3 +0 -0
  3272. /package/{kits/colagem/assets → materiais/colagem}/sons/impacto.mp3 +0 -0
  3273. /package/{kits/colagem/assets → materiais/colagem}/sons/pop-cartao.mp3 +0 -0
  3274. /package/{kits/colagem/assets → materiais/colagem}/sons/pop-palavra.mp3 +0 -0
  3275. /package/{kits/colagem/assets → materiais/colagem}/sons/subida.mp3 +0 -0
  3276. /package/{kits/colagem/assets → materiais/colagem}/sons/swoosh.mp3 +0 -0
  3277. /package/{kits/colagem/assets → materiais/colagem}/sons/tick.mp3 +0 -0
  3278. /package/{kits/colagem/assets → materiais/colagem}/sons/whoosh-entra.mp3 +0 -0
  3279. /package/{kits/colagem/assets → materiais/colagem}/sons/whoosh-sai.mp3 +0 -0
  3280. /package/{kits/colagem/assets → materiais/colagem}/trilha/trilha.mp3 +0 -0
  3281. /package/{kits/contagem/elementos → materiais/contagem/camera}/Camera.tsx +0 -0
  3282. /package/{kits/contagem/assets → materiais/contagem}/fontes/OFL-BigShouldersDisplay.txt +0 -0
  3283. /package/{kits/contagem/assets → materiais/contagem}/fontes/OFL-SpaceMono.txt +0 -0
  3284. /package/{kits/contagem/assets → materiais/contagem}/fontes/bigshoulders.woff2 +0 -0
  3285. /package/{kits/contagem/assets → materiais/contagem}/fontes/spacemono.woff2 +0 -0
  3286. /package/{kits/contagem/assets → materiais/contagem}/sons/assinatura.mp3 +0 -0
  3287. /package/{kits/contagem/assets → materiais/contagem}/sons/clique.mp3 +0 -0
  3288. /package/{kits/contagem/assets → materiais/contagem}/sons/confete.mp3 +0 -0
  3289. /package/{kits/contagem/assets → materiais/contagem}/sons/impacto.mp3 +0 -0
  3290. /package/{kits/contagem/assets → materiais/contagem}/sons/pop-cartao.mp3 +0 -0
  3291. /package/{kits/contagem/assets → materiais/contagem}/sons/pop-palavra.mp3 +0 -0
  3292. /package/{kits/contagem/assets → materiais/contagem}/sons/subida.mp3 +0 -0
  3293. /package/{kits/contagem/assets → materiais/contagem}/sons/swoosh.mp3 +0 -0
  3294. /package/{kits/contagem/assets → materiais/contagem}/sons/tick.mp3 +0 -0
  3295. /package/{kits/contagem/assets → materiais/contagem}/sons/whoosh-entra.mp3 +0 -0
  3296. /package/{kits/contagem/assets → materiais/contagem}/sons/whoosh-sai.mp3 +0 -0
  3297. /package/{kits/contagem/assets → materiais/contagem}/trilha/pulso-128bpm.mp3 +0 -0
  3298. /package/{kits/convite-evento/elementos → materiais/convite-evento/camera}/Camera.tsx +0 -0
  3299. /package/{kits/convite-evento/assets → materiais/convite-evento}/fontes/OFL-InstrumentSerif.txt +0 -0
  3300. /package/{kits/convite-evento/assets → materiais/convite-evento}/fontes/OFL-Unbounded.txt +0 -0
  3301. /package/{kits/convite-evento/assets → materiais/convite-evento}/fontes/instrumentserif-i.woff2 +0 -0
  3302. /package/{kits/convite-evento/assets → materiais/convite-evento}/fontes/unbounded.woff2 +0 -0
  3303. /package/{kits/convite-evento/assets → materiais/convite-evento}/sons/assinatura.mp3 +0 -0
  3304. /package/{kits/convite-evento/assets → materiais/convite-evento}/sons/clique.mp3 +0 -0
  3305. /package/{kits/convite-evento/assets → materiais/convite-evento}/sons/confete.mp3 +0 -0
  3306. /package/{kits/convite-evento/assets → materiais/convite-evento}/sons/impacto.mp3 +0 -0
  3307. /package/{kits/convite-evento/assets → materiais/convite-evento}/sons/pop-cartao.mp3 +0 -0
  3308. /package/{kits/convite-evento/assets → materiais/convite-evento}/sons/pop-palavra.mp3 +0 -0
  3309. /package/{kits/convite-evento/assets → materiais/convite-evento}/sons/subida.mp3 +0 -0
  3310. /package/{kits/convite-evento/assets → materiais/convite-evento}/sons/swoosh.mp3 +0 -0
  3311. /package/{kits/convite-evento/assets → materiais/convite-evento}/sons/whoosh-entra.mp3 +0 -0
  3312. /package/{kits/convite-evento/assets → materiais/convite-evento}/sons/whoosh-sai.mp3 +0 -0
  3313. /package/{kits/convite-evento/assets → materiais/convite-evento}/trilha/festa-112bpm.mp3 +0 -0
  3314. /package/{kits/corte-podcast/elementos → materiais/corte-podcast/camera}/Camera.tsx +0 -0
  3315. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/fontes/OFL-Anton.txt +0 -0
  3316. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/fontes/OFL-IBMPlexMono.txt +0 -0
  3317. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/fontes/anton.woff2 +0 -0
  3318. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/fontes/plexmono.woff2 +0 -0
  3319. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/sons/assinatura.mp3 +0 -0
  3320. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/sons/clique.mp3 +0 -0
  3321. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/sons/impacto.mp3 +0 -0
  3322. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/sons/pop-cartao.mp3 +0 -0
  3323. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/sons/pop-palavra.mp3 +0 -0
  3324. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/sons/subida.mp3 +0 -0
  3325. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/sons/swoosh.mp3 +0 -0
  3326. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/sons/tick.mp3 +0 -0
  3327. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/sons/whoosh-entra.mp3 +0 -0
  3328. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/sons/whoosh-sai.mp3 +0 -0
  3329. /package/{kits/corte-podcast/assets → materiais/corte-podcast}/trilha/lofi-pulso-100bpm.mp3 +0 -0
  3330. /package/{kits/cubos/elementos → materiais/cubos/camera}/Camera.tsx +0 -0
  3331. /package/{kits/cubos/assets → materiais/cubos}/fontes/OFL-ArchivoBlack.txt +0 -0
  3332. /package/{kits/cubos/assets → materiais/cubos}/fontes/OFL-DMSans.txt +0 -0
  3333. /package/{kits/cubos/assets → materiais/cubos}/fontes/archivoblack-latin.woff2 +0 -0
  3334. /package/{kits/cubos/assets → materiais/cubos}/fontes/dmsans-latin.woff2 +0 -0
  3335. /package/{kits/cubos/assets → materiais/cubos}/sons/assinatura.mp3 +0 -0
  3336. /package/{kits/cubos/assets → materiais/cubos}/sons/bloco.mp3 +0 -0
  3337. /package/{kits/cubos/assets → materiais/cubos}/sons/desmonta.mp3 +0 -0
  3338. /package/{kits/cubos/assets → materiais/cubos}/sons/encaixa.mp3 +0 -0
  3339. /package/{kits/cubos/assets → materiais/cubos}/sons/estala.mp3 +0 -0
  3340. /package/{kits/cubos/assets → materiais/cubos}/sons/gira.mp3 +0 -0
  3341. /package/{kits/cubos/assets → materiais/cubos}/sons/queda.mp3 +0 -0
  3342. /package/{kits/cubos/assets → materiais/cubos}/sons/whoosh.mp3 +0 -0
  3343. /package/{kits/cubos/assets → materiais/cubos}/trilha/calma-com-punch-108bpm.mp3 +0 -0
  3344. /package/{kits/dashboard-dados/assets → materiais/dashboard-dados}/fontes/OFL-IBM-Plex-Mono.txt +0 -0
  3345. /package/{kits/dashboard-dados/assets → materiais/dashboard-dados}/fontes/OFL-Montserrat.txt +0 -0
  3346. /package/{kits/dashboard-dados/assets → materiais/dashboard-dados}/fontes/montserrat.woff2 +0 -0
  3347. /package/{kits/dashboard-dados/assets → materiais/dashboard-dados}/fontes/plex-mono.woff2 +0 -0
  3348. /package/{kits/dashboard-dados/assets → materiais/dashboard-dados}/sons/assinatura.mp3 +0 -0
  3349. /package/{kits/dashboard-dados/assets → materiais/dashboard-dados}/sons/clique.mp3 +0 -0
  3350. /package/{kits/dashboard-dados/assets → materiais/dashboard-dados}/sons/impacto.mp3 +0 -0
  3351. /package/{kits/dashboard-dados/assets → materiais/dashboard-dados}/sons/pop-cartao.mp3 +0 -0
  3352. /package/{kits/dashboard-dados/assets → materiais/dashboard-dados}/sons/pop-palavra.mp3 +0 -0
  3353. /package/{kits/dashboard-dados/assets → materiais/dashboard-dados}/sons/subida.mp3 +0 -0
  3354. /package/{kits/dashboard-dados/assets → materiais/dashboard-dados}/sons/swoosh.mp3 +0 -0
  3355. /package/{kits/dashboard-dados/assets → materiais/dashboard-dados}/sons/whoosh-entra.mp3 +0 -0
  3356. /package/{kits/dashboard-dados/assets → materiais/dashboard-dados}/sons/whoosh-sai.mp3 +0 -0
  3357. /package/{kits/dashboard-dados/assets → materiais/dashboard-dados}/trilha/trilha.mp3 +0 -0
  3358. /package/{kits/depoimento/elementos → materiais/depoimento/camera}/Camera.tsx +0 -0
  3359. /package/{kits/depoimento/assets → materiais/depoimento}/fontes/OFL-Newsreader.txt +0 -0
  3360. /package/{kits/depoimento/assets → materiais/depoimento}/fontes/OFL-SpaceGrotesk.txt +0 -0
  3361. /package/{kits/depoimento/assets → materiais/depoimento}/fontes/newsreader-i.woff2 +0 -0
  3362. /package/{kits/depoimento/assets → materiais/depoimento}/fontes/spacegrotesk.woff2 +0 -0
  3363. /package/{kits/depoimento/assets → materiais/depoimento}/sons/assinatura.mp3 +0 -0
  3364. /package/{kits/depoimento/assets → materiais/depoimento}/sons/clique.mp3 +0 -0
  3365. /package/{kits/depoimento/assets → materiais/depoimento}/sons/estrela.mp3 +0 -0
  3366. /package/{kits/depoimento/assets → materiais/depoimento}/sons/impacto.mp3 +0 -0
  3367. /package/{kits/depoimento/assets → materiais/depoimento}/sons/pop-cartao.mp3 +0 -0
  3368. /package/{kits/depoimento/assets → materiais/depoimento}/sons/pop-palavra.mp3 +0 -0
  3369. /package/{kits/depoimento/assets → materiais/depoimento}/sons/subida.mp3 +0 -0
  3370. /package/{kits/depoimento/assets → materiais/depoimento}/sons/swoosh.mp3 +0 -0
  3371. /package/{kits/depoimento/assets → materiais/depoimento}/sons/verificado.mp3 +0 -0
  3372. /package/{kits/depoimento/assets → materiais/depoimento}/sons/whoosh-entra.mp3 +0 -0
  3373. /package/{kits/depoimento/assets → materiais/depoimento}/sons/whoosh-sai.mp3 +0 -0
  3374. /package/{kits/depoimento/assets → materiais/depoimento}/trilha/calor-104bpm.mp3 +0 -0
  3375. /package/{kits/infografico/elementos → materiais/infografico/camera}/Camera.tsx +0 -0
  3376. /package/{kits/infografico/assets → materiais/infografico}/fontes/OFL-Caveat.txt +0 -0
  3377. /package/{kits/infografico/assets → materiais/infografico}/fontes/OFL-Outfit.txt +0 -0
  3378. /package/{kits/infografico/assets → materiais/infografico}/fontes/caveat.woff2 +0 -0
  3379. /package/{kits/infografico/assets → materiais/infografico}/fontes/outfit.woff2 +0 -0
  3380. /package/{kits/infografico/assets → materiais/infografico}/sons/assinatura.mp3 +0 -0
  3381. /package/{kits/infografico/assets → materiais/infografico}/sons/clique.mp3 +0 -0
  3382. /package/{kits/infografico/assets → materiais/infografico}/sons/impacto.mp3 +0 -0
  3383. /package/{kits/infografico/assets → materiais/infografico}/sons/pop-cartao.mp3 +0 -0
  3384. /package/{kits/infografico/assets → materiais/infografico}/sons/pop-palavra.mp3 +0 -0
  3385. /package/{kits/infografico/assets → materiais/infografico}/sons/subida.mp3 +0 -0
  3386. /package/{kits/infografico/assets → materiais/infografico}/sons/swoosh.mp3 +0 -0
  3387. /package/{kits/infografico/assets → materiais/infografico}/sons/traco.mp3 +0 -0
  3388. /package/{kits/infografico/assets → materiais/infografico}/sons/whoosh-entra.mp3 +0 -0
  3389. /package/{kits/infografico/assets → materiais/infografico}/sons/whoosh-sai.mp3 +0 -0
  3390. /package/{kits/infografico/assets → materiais/infografico}/trilha/explica-100bpm.mp3 +0 -0
  3391. /package/{kits/isometrico/assets → materiais/isometrico}/fontes/OFL-Archivo.txt +0 -0
  3392. /package/{kits/isometrico/assets → materiais/isometrico}/fontes/OFL-Jost.txt +0 -0
  3393. /package/{kits/isometrico/assets → materiais/isometrico}/fontes/archivo.woff2 +0 -0
  3394. /package/{kits/isometrico/assets → materiais/isometrico}/fontes/jost.woff2 +0 -0
  3395. /package/{kits/isometrico/elementos → materiais/isometrico/formas}/iso.tsx +0 -0
  3396. /package/{kits/isometrico/assets → materiais/isometrico}/sons/assinatura.mp3 +0 -0
  3397. /package/{kits/isometrico/assets → materiais/isometrico}/sons/clique.mp3 +0 -0
  3398. /package/{kits/isometrico/assets → materiais/isometrico}/sons/impacto.mp3 +0 -0
  3399. /package/{kits/isometrico/assets → materiais/isometrico}/sons/pop-cartao.mp3 +0 -0
  3400. /package/{kits/isometrico/assets → materiais/isometrico}/sons/pop-palavra.mp3 +0 -0
  3401. /package/{kits/isometrico/assets → materiais/isometrico}/sons/subida.mp3 +0 -0
  3402. /package/{kits/isometrico/assets → materiais/isometrico}/sons/swoosh.mp3 +0 -0
  3403. /package/{kits/isometrico/assets → materiais/isometrico}/sons/whoosh-entra.mp3 +0 -0
  3404. /package/{kits/isometrico/assets → materiais/isometrico}/sons/whoosh-sai.mp3 +0 -0
  3405. /package/{kits/isometrico/assets → materiais/isometrico}/trilha/trilha.mp3 +0 -0
  3406. /package/{kits/jornal/elementos → materiais/jornal/camera}/Camera.tsx +0 -0
  3407. /package/{kits/jornal/assets → materiais/jornal}/fontes/OFL-PlayfairDisplay.txt +0 -0
  3408. /package/{kits/jornal/assets → materiais/jornal}/fontes/OFL-UnifrakturMaguntia.txt +0 -0
  3409. /package/{kits/jornal/assets → materiais/jornal}/fontes/playfair-italic.woff2 +0 -0
  3410. /package/{kits/jornal/assets → materiais/jornal}/fontes/playfair.woff2 +0 -0
  3411. /package/{kits/jornal/assets → materiais/jornal}/fontes/unifraktur.woff2 +0 -0
  3412. /package/{kits/jornal/assets → materiais/jornal}/sons/assinatura.mp3 +0 -0
  3413. /package/{kits/jornal/assets → materiais/jornal}/sons/clique.mp3 +0 -0
  3414. /package/{kits/jornal/assets → materiais/jornal}/sons/impacto.mp3 +0 -0
  3415. /package/{kits/jornal/assets → materiais/jornal}/sons/pop-cartao.mp3 +0 -0
  3416. /package/{kits/jornal/assets → materiais/jornal}/sons/pop-palavra.mp3 +0 -0
  3417. /package/{kits/jornal/assets → materiais/jornal}/sons/subida.mp3 +0 -0
  3418. /package/{kits/jornal/assets → materiais/jornal}/sons/swoosh.mp3 +0 -0
  3419. /package/{kits/jornal/assets → materiais/jornal}/sons/whoosh-entra.mp3 +0 -0
  3420. /package/{kits/jornal/assets → materiais/jornal}/sons/whoosh-sai.mp3 +0 -0
  3421. /package/{kits/jornal/assets → materiais/jornal}/trilha/redacao-96bpm.mp3 +0 -0
  3422. /package/{kits/legenda-viva/elementos → materiais/legenda-viva/camera}/Camera.tsx +0 -0
  3423. /package/{kits/legenda-viva/assets → materiais/legenda-viva}/fontes/OFL-Inter.txt +0 -0
  3424. /package/{kits/legenda-viva/assets → materiais/legenda-viva}/fontes/OFL-Montserrat.txt +0 -0
  3425. /package/{kits/legenda-viva/assets → materiais/legenda-viva}/fontes/inter.woff2 +0 -0
  3426. /package/{kits/legenda-viva/assets → materiais/legenda-viva}/fontes/montserrat.woff2 +0 -0
  3427. /package/{kits/legenda-viva/assets → materiais/legenda-viva}/sons/assinatura.mp3 +0 -0
  3428. /package/{kits/legenda-viva/assets → materiais/legenda-viva}/sons/clique.mp3 +0 -0
  3429. /package/{kits/legenda-viva/assets → materiais/legenda-viva}/sons/impacto.mp3 +0 -0
  3430. /package/{kits/legenda-viva/assets → materiais/legenda-viva}/sons/pop-cartao.mp3 +0 -0
  3431. /package/{kits/legenda-viva/assets → materiais/legenda-viva}/sons/pop-palavra.mp3 +0 -0
  3432. /package/{kits/legenda-viva/assets → materiais/legenda-viva}/sons/subida.mp3 +0 -0
  3433. /package/{kits/legenda-viva/assets → materiais/legenda-viva}/sons/swoosh.mp3 +0 -0
  3434. /package/{kits/legenda-viva/assets → materiais/legenda-viva}/sons/whoosh-entra.mp3 +0 -0
  3435. /package/{kits/legenda-viva/assets → materiais/legenda-viva}/sons/whoosh-sai.mp3 +0 -0
  3436. /package/{kits/legenda-viva/assets → materiais/legenda-viva}/trilha/voz-118bpm.mp3 +0 -0
  3437. /package/{kits/luxo/elementos → materiais/luxo/camera}/Camera.tsx +0 -0
  3438. /package/{kits/luxo/assets → materiais/luxo}/fontes/OFL-CormorantGaramond.txt +0 -0
  3439. /package/{kits/luxo/assets → materiais/luxo}/fontes/OFL-Jost.txt +0 -0
  3440. /package/{kits/luxo/assets → materiais/luxo}/fontes/cormorant-i.woff2 +0 -0
  3441. /package/{kits/luxo/assets → materiais/luxo}/fontes/cormorant.woff2 +0 -0
  3442. /package/{kits/luxo/assets → materiais/luxo}/fontes/jost.woff2 +0 -0
  3443. /package/{kits/luxo/assets → materiais/luxo}/sons/assinatura.mp3 +0 -0
  3444. /package/{kits/luxo/assets → materiais/luxo}/sons/clique.mp3 +0 -0
  3445. /package/{kits/luxo/assets → materiais/luxo}/sons/impacto.mp3 +0 -0
  3446. /package/{kits/luxo/assets → materiais/luxo}/sons/pop-cartao.mp3 +0 -0
  3447. /package/{kits/luxo/assets → materiais/luxo}/sons/pop-palavra.mp3 +0 -0
  3448. /package/{kits/luxo/assets → materiais/luxo}/sons/sino.mp3 +0 -0
  3449. /package/{kits/luxo/assets → materiais/luxo}/sons/subida.mp3 +0 -0
  3450. /package/{kits/luxo/assets → materiais/luxo}/sons/swoosh.mp3 +0 -0
  3451. /package/{kits/luxo/assets → materiais/luxo}/sons/whoosh-entra.mp3 +0 -0
  3452. /package/{kits/luxo/assets → materiais/luxo}/sons/whoosh-sai.mp3 +0 -0
  3453. /package/{kits/luxo/assets → materiais/luxo}/trilha/ambar-78bpm.mp3 +0 -0
  3454. /package/{kits/mapa/elementos → materiais/mapa/camera}/Camera.tsx +0 -0
  3455. /package/{kits/mapa/assets → materiais/mapa}/fontes/OFL-DMMono.txt +0 -0
  3456. /package/{kits/mapa/assets → materiais/mapa}/fontes/OFL-DMSans.txt +0 -0
  3457. /package/{kits/mapa/assets → materiais/mapa}/fontes/dmmono.woff2 +0 -0
  3458. /package/{kits/mapa/assets → materiais/mapa}/fontes/dmsans.woff2 +0 -0
  3459. /package/{kits/mapa/assets → materiais/mapa}/sons/assinatura.mp3 +0 -0
  3460. /package/{kits/mapa/assets → materiais/mapa}/sons/clique.mp3 +0 -0
  3461. /package/{kits/mapa/assets → materiais/mapa}/sons/impacto.mp3 +0 -0
  3462. /package/{kits/mapa/assets → materiais/mapa}/sons/pop-cartao.mp3 +0 -0
  3463. /package/{kits/mapa/assets → materiais/mapa}/sons/pop-palavra.mp3 +0 -0
  3464. /package/{kits/mapa/assets → materiais/mapa}/sons/quique.mp3 +0 -0
  3465. /package/{kits/mapa/assets → materiais/mapa}/sons/subida.mp3 +0 -0
  3466. /package/{kits/mapa/assets → materiais/mapa}/sons/swoosh.mp3 +0 -0
  3467. /package/{kits/mapa/assets → materiais/mapa}/sons/traco.mp3 +0 -0
  3468. /package/{kits/mapa/assets → materiais/mapa}/sons/whoosh-entra.mp3 +0 -0
  3469. /package/{kits/mapa/assets → materiais/mapa}/sons/whoosh-sai.mp3 +0 -0
  3470. /package/{kits/mapa/assets → materiais/mapa}/trilha/rota-100bpm.mp3 +0 -0
  3471. /package/{kits/massinha/assets → materiais/massinha}/fontes/OFL-chewy.txt +0 -0
  3472. /package/{kits/massinha/assets → materiais/massinha}/fontes/OFL-nunito-800.txt +0 -0
  3473. /package/{kits/massinha/assets → materiais/massinha}/fontes/chewy.woff2 +0 -0
  3474. /package/{kits/massinha/assets → materiais/massinha}/fontes/nunito-800.woff2 +0 -0
  3475. /package/{kits/massinha/elementos → materiais/massinha/lib}/argila.ts +0 -0
  3476. /package/{kits/massinha/assets → materiais/massinha}/sons/assinatura.mp3 +0 -0
  3477. /package/{kits/massinha/assets → materiais/massinha}/sons/clique.mp3 +0 -0
  3478. /package/{kits/massinha/assets → materiais/massinha}/sons/impacto.mp3 +0 -0
  3479. /package/{kits/massinha/assets → materiais/massinha}/sons/pop-cartao.mp3 +0 -0
  3480. /package/{kits/massinha/assets → materiais/massinha}/sons/pop-palavra.mp3 +0 -0
  3481. /package/{kits/massinha/assets → materiais/massinha}/sons/subida.mp3 +0 -0
  3482. /package/{kits/massinha/assets → materiais/massinha}/sons/swoosh.mp3 +0 -0
  3483. /package/{kits/massinha/assets → materiais/massinha}/sons/tick.mp3 +0 -0
  3484. /package/{kits/massinha/assets → materiais/massinha}/sons/whoosh-entra.mp3 +0 -0
  3485. /package/{kits/massinha/assets → materiais/massinha}/sons/whoosh-sai.mp3 +0 -0
  3486. /package/{kits/massinha/assets → materiais/massinha}/trilha/trilha.mp3 +0 -0
  3487. /package/{kits/memphis/assets → materiais/memphis}/fontes/OFL-bowlby-one.txt +0 -0
  3488. /package/{kits/memphis/assets → materiais/memphis}/fontes/OFL-dm-sans-800.txt +0 -0
  3489. /package/{kits/memphis/assets → materiais/memphis}/fontes/bowlby-one.woff2 +0 -0
  3490. /package/{kits/memphis/assets → materiais/memphis}/fontes/dm-sans-800.woff2 +0 -0
  3491. /package/{kits/memphis/assets → materiais/memphis}/sons/assinatura.mp3 +0 -0
  3492. /package/{kits/memphis/assets → materiais/memphis}/sons/clique.mp3 +0 -0
  3493. /package/{kits/memphis/assets → materiais/memphis}/sons/impacto.mp3 +0 -0
  3494. /package/{kits/memphis/assets → materiais/memphis}/sons/pop-cartao.mp3 +0 -0
  3495. /package/{kits/memphis/assets → materiais/memphis}/sons/pop-palavra.mp3 +0 -0
  3496. /package/{kits/memphis/assets → materiais/memphis}/sons/subida.mp3 +0 -0
  3497. /package/{kits/memphis/assets → materiais/memphis}/sons/swoosh.mp3 +0 -0
  3498. /package/{kits/memphis/assets → materiais/memphis}/sons/tick.mp3 +0 -0
  3499. /package/{kits/memphis/assets → materiais/memphis}/sons/whoosh-entra.mp3 +0 -0
  3500. /package/{kits/memphis/assets → materiais/memphis}/sons/whoosh-sai.mp3 +0 -0
  3501. /package/{kits/memphis/assets → materiais/memphis}/trilha/trilha.mp3 +0 -0
  3502. /package/{kits/metal-liquido/elementos → materiais/metal-liquido/camera}/Camera.tsx +0 -0
  3503. /package/{kits/metal-liquido/assets → materiais/metal-liquido}/fontes/OFL-SpaceGrotesk.txt +0 -0
  3504. /package/{kits/metal-liquido/assets → materiais/metal-liquido}/fontes/OFL-Unbounded.txt +0 -0
  3505. /package/{kits/metal-liquido/assets → materiais/metal-liquido}/fontes/grotesk-latin.woff2 +0 -0
  3506. /package/{kits/metal-liquido/assets → materiais/metal-liquido}/fontes/unbounded-latin.woff2 +0 -0
  3507. /package/{kits/metal-liquido/assets → materiais/metal-liquido}/sons/assinatura.mp3 +0 -0
  3508. /package/{kits/metal-liquido/assets → materiais/metal-liquido}/sons/clique.mp3 +0 -0
  3509. /package/{kits/metal-liquido/assets → materiais/metal-liquido}/sons/cromo.mp3 +0 -0
  3510. /package/{kits/metal-liquido/assets → materiais/metal-liquido}/sons/liquido.mp3 +0 -0
  3511. /package/{kits/metal-liquido/assets → materiais/metal-liquido}/sons/quique.mp3 +0 -0
  3512. /package/{kits/metal-liquido/assets → materiais/metal-liquido}/sons/subida.mp3 +0 -0
  3513. /package/{kits/metal-liquido/assets → materiais/metal-liquido}/sons/varre.mp3 +0 -0
  3514. /package/{kits/metal-liquido/assets → materiais/metal-liquido}/sons/whoosh.mp3 +0 -0
  3515. /package/{kits/metal-liquido/assets → materiais/metal-liquido}/trilha/sombrio-114bpm.mp3 +0 -0
  3516. /package/{kits/minimal/elementos → materiais/minimal/camera}/Camera.tsx +0 -0
  3517. /package/{kits/minimal/assets → materiais/minimal}/fontes/OFL-HankenGrotesk.txt +0 -0
  3518. /package/{kits/minimal/assets → materiais/minimal}/fontes/OFL-SplineSansMono.txt +0 -0
  3519. /package/{kits/minimal/assets → materiais/minimal}/fontes/hanken.woff2 +0 -0
  3520. /package/{kits/minimal/assets → materiais/minimal}/fontes/splinemono.woff2 +0 -0
  3521. /package/{kits/minimal/assets → materiais/minimal}/sons/assinatura.mp3 +0 -0
  3522. /package/{kits/minimal/assets → materiais/minimal}/sons/clique.mp3 +0 -0
  3523. /package/{kits/minimal/assets → materiais/minimal}/sons/impacto.mp3 +0 -0
  3524. /package/{kits/minimal/assets → materiais/minimal}/sons/pop-cartao.mp3 +0 -0
  3525. /package/{kits/minimal/assets → materiais/minimal}/sons/pop-palavra.mp3 +0 -0
  3526. /package/{kits/minimal/assets → materiais/minimal}/sons/subida.mp3 +0 -0
  3527. /package/{kits/minimal/assets → materiais/minimal}/sons/swoosh.mp3 +0 -0
  3528. /package/{kits/minimal/assets → materiais/minimal}/sons/toque.mp3 +0 -0
  3529. /package/{kits/minimal/assets → materiais/minimal}/sons/whoosh-entra.mp3 +0 -0
  3530. /package/{kits/minimal/assets → materiais/minimal}/sons/whoosh-sai.mp3 +0 -0
  3531. /package/{kits/minimal/assets → materiais/minimal}/trilha/vazio-90bpm.mp3 +0 -0
  3532. /package/{kits/neon-cidade/elementos → materiais/neon-cidade/camera}/Camera.tsx +0 -0
  3533. /package/{kits/neon-cidade/assets → materiais/neon-cidade}/fontes/OFL-BarlowCondensed.txt +0 -0
  3534. /package/{kits/neon-cidade/assets → materiais/neon-cidade}/fontes/OFL-TiltNeon.txt +0 -0
  3535. /package/{kits/neon-cidade/assets → materiais/neon-cidade}/fontes/barlow-latin.woff2 +0 -0
  3536. /package/{kits/neon-cidade/assets → materiais/neon-cidade}/fontes/tiltneon-latin.woff2 +0 -0
  3537. /package/{kits/neon-cidade/assets → materiais/neon-cidade}/sons/assinatura.mp3 +0 -0
  3538. /package/{kits/neon-cidade/assets → materiais/neon-cidade}/sons/balanca.mp3 +0 -0
  3539. /package/{kits/neon-cidade/assets → materiais/neon-cidade}/sons/clique.mp3 +0 -0
  3540. /package/{kits/neon-cidade/assets → materiais/neon-cidade}/sons/impacto.mp3 +0 -0
  3541. /package/{kits/neon-cidade/assets → materiais/neon-cidade}/sons/liga.mp3 +0 -0
  3542. /package/{kits/neon-cidade/assets → materiais/neon-cidade}/sons/tick.mp3 +0 -0
  3543. /package/{kits/neon-cidade/assets → materiais/neon-cidade}/sons/whoosh.mp3 +0 -0
  3544. /package/{kits/neon-cidade/assets → materiais/neon-cidade}/sons/zumbido.mp3 +0 -0
  3545. /package/{kits/neon-cidade/assets → materiais/neon-cidade}/trilha/noite-100bpm.mp3 +0 -0
  3546. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/fontes/OFL-Cormorant-Italic.txt +0 -0
  3547. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/fontes/OFL-Cormorant.txt +0 -0
  3548. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/fontes/OFL-Jost.txt +0 -0
  3549. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/fontes/cormorant-italic.woff2 +0 -0
  3550. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/fontes/cormorant.woff2 +0 -0
  3551. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/fontes/jost.woff2 +0 -0
  3552. /package/{kits/notion-editorial/elementos → materiais/notion-editorial/formas}/desenho.tsx +0 -0
  3553. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/sons/assinatura.mp3 +0 -0
  3554. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/sons/clique.mp3 +0 -0
  3555. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/sons/impacto.mp3 +0 -0
  3556. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/sons/pop-cartao.mp3 +0 -0
  3557. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/sons/pop-palavra.mp3 +0 -0
  3558. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/sons/subida.mp3 +0 -0
  3559. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/sons/swoosh.mp3 +0 -0
  3560. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/sons/whoosh-entra.mp3 +0 -0
  3561. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/sons/whoosh-sai.mp3 +0 -0
  3562. /package/{kits/notion-editorial/assets → materiais/notion-editorial}/trilha/trilha.mp3 +0 -0
  3563. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/fontes/OFL-fredoka-700.txt +0 -0
  3564. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/fontes/OFL-nunito-700.txt +0 -0
  3565. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/fontes/fredoka-700.woff2 +0 -0
  3566. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/fontes/nunito-700.woff2 +0 -0
  3567. /package/{kits/papel-recortado/elementos → materiais/papel-recortado/formas}/Filtros.tsx +0 -0
  3568. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/sons/assinatura.mp3 +0 -0
  3569. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/sons/clique.mp3 +0 -0
  3570. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/sons/impacto.mp3 +0 -0
  3571. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/sons/pop-cartao.mp3 +0 -0
  3572. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/sons/pop-palavra.mp3 +0 -0
  3573. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/sons/subida.mp3 +0 -0
  3574. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/sons/swoosh.mp3 +0 -0
  3575. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/sons/tick.mp3 +0 -0
  3576. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/sons/whoosh-entra.mp3 +0 -0
  3577. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/sons/whoosh-sai.mp3 +0 -0
  3578. /package/{kits/papel-recortado/assets → materiais/papel-recortado}/trilha/trilha.mp3 +0 -0
  3579. /package/{kits/pixel/assets → materiais/pixel}/fontes/OFL-pressstart2p.txt +0 -0
  3580. /package/{kits/pixel/assets → materiais/pixel}/fontes/OFL-vt323.txt +0 -0
  3581. /package/{kits/pixel/assets → materiais/pixel}/fontes/pressstart2p.woff2 +0 -0
  3582. /package/{kits/pixel/assets → materiais/pixel}/fontes/vt323.woff2 +0 -0
  3583. /package/{kits/pixel/assets → materiais/pixel}/sons/assinatura.mp3 +0 -0
  3584. /package/{kits/pixel/assets → materiais/pixel}/sons/clique.mp3 +0 -0
  3585. /package/{kits/pixel/assets → materiais/pixel}/sons/impacto.mp3 +0 -0
  3586. /package/{kits/pixel/assets → materiais/pixel}/sons/pop-cartao.mp3 +0 -0
  3587. /package/{kits/pixel/assets → materiais/pixel}/sons/pop-palavra.mp3 +0 -0
  3588. /package/{kits/pixel/assets → materiais/pixel}/sons/subida.mp3 +0 -0
  3589. /package/{kits/pixel/assets → materiais/pixel}/sons/swoosh.mp3 +0 -0
  3590. /package/{kits/pixel/assets → materiais/pixel}/sons/tick.mp3 +0 -0
  3591. /package/{kits/pixel/assets → materiais/pixel}/sons/whoosh-entra.mp3 +0 -0
  3592. /package/{kits/pixel/assets → materiais/pixel}/sons/whoosh-sai.mp3 +0 -0
  3593. /package/{kits/pixel/assets → materiais/pixel}/trilha/trilha.mp3 +0 -0
  3594. /package/{kits/pontos-3d/elementos → materiais/pontos-3d/camera}/Camera.tsx +0 -0
  3595. /package/{kits/pontos-3d/assets → materiais/pontos-3d}/fontes/OFL-JetBrainsMono.txt +0 -0
  3596. /package/{kits/pontos-3d/assets → materiais/pontos-3d}/fontes/OFL-Sora.txt +0 -0
  3597. /package/{kits/pontos-3d/assets → materiais/pontos-3d}/fontes/jetbrains-latin.woff2 +0 -0
  3598. /package/{kits/pontos-3d/assets → materiais/pontos-3d}/fontes/sora-latin.woff2 +0 -0
  3599. /package/{kits/pontos-3d/assets → materiais/pontos-3d}/sons/assinatura.mp3 +0 -0
  3600. /package/{kits/pontos-3d/assets → materiais/pontos-3d}/sons/clique.mp3 +0 -0
  3601. /package/{kits/pontos-3d/assets → materiais/pontos-3d}/sons/impacto.mp3 +0 -0
  3602. /package/{kits/pontos-3d/assets → materiais/pontos-3d}/sons/pop.mp3 +0 -0
  3603. /package/{kits/pontos-3d/assets → materiais/pontos-3d}/sons/subida.mp3 +0 -0
  3604. /package/{kits/pontos-3d/assets → materiais/pontos-3d}/sons/tick.mp3 +0 -0
  3605. /package/{kits/pontos-3d/assets → materiais/pontos-3d}/sons/varre.mp3 +0 -0
  3606. /package/{kits/pontos-3d/assets → materiais/pontos-3d}/sons/whoosh.mp3 +0 -0
  3607. /package/{kits/pontos-3d/assets → materiais/pontos-3d}/trilha/tech-120bpm.mp3 +0 -0
  3608. /package/{kits/produto-3d/assets → materiais/produto-3d}/fontes/OFL-IBMPlexMono.txt +0 -0
  3609. /package/{kits/produto-3d/assets → materiais/produto-3d}/fontes/OFL-Syncopate.txt +0 -0
  3610. /package/{kits/produto-3d/assets → materiais/produto-3d}/fontes/plex-mono.woff2 +0 -0
  3611. /package/{kits/produto-3d/assets → materiais/produto-3d}/fontes/syncopate-latin.woff2 +0 -0
  3612. /package/{kits/produto-3d/elementos → materiais/produto-3d/lib}/modelos.ts +0 -0
  3613. /package/{kits/produto-3d/elementos → materiais/produto-3d/lib}/raymarch.ts +0 -0
  3614. /package/{kits/produto-3d/assets → materiais/produto-3d}/sons/assinatura.mp3 +0 -0
  3615. /package/{kits/produto-3d/assets → materiais/produto-3d}/sons/clique.mp3 +0 -0
  3616. /package/{kits/produto-3d/assets → materiais/produto-3d}/sons/impacto.mp3 +0 -0
  3617. /package/{kits/produto-3d/assets → materiais/produto-3d}/sons/pop-cartao.mp3 +0 -0
  3618. /package/{kits/produto-3d/assets → materiais/produto-3d}/sons/pop-palavra.mp3 +0 -0
  3619. /package/{kits/produto-3d/assets → materiais/produto-3d}/sons/subida.mp3 +0 -0
  3620. /package/{kits/produto-3d/assets → materiais/produto-3d}/sons/swoosh.mp3 +0 -0
  3621. /package/{kits/produto-3d/assets → materiais/produto-3d}/sons/whoosh-entra.mp3 +0 -0
  3622. /package/{kits/produto-3d/assets → materiais/produto-3d}/sons/whoosh-sai.mp3 +0 -0
  3623. /package/{kits/produto-3d/assets → materiais/produto-3d}/trilha/trilha.mp3 +0 -0
  3624. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/fontes/OFL-patrick-hand.txt +0 -0
  3625. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/fontes/OFL-schoolbell.txt +0 -0
  3626. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/fontes/patrick-hand.woff2 +0 -0
  3627. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/fontes/schoolbell.woff2 +0 -0
  3628. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/sons/assinatura.mp3 +0 -0
  3629. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/sons/clique.mp3 +0 -0
  3630. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/sons/impacto.mp3 +0 -0
  3631. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/sons/pop-cartao.mp3 +0 -0
  3632. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/sons/pop-palavra.mp3 +0 -0
  3633. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/sons/subida.mp3 +0 -0
  3634. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/sons/swoosh.mp3 +0 -0
  3635. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/sons/tick.mp3 +0 -0
  3636. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/sons/whoosh-entra.mp3 +0 -0
  3637. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/sons/whoosh-sai.mp3 +0 -0
  3638. /package/{kits/quadro-giz/assets → materiais/quadro-giz}/trilha/trilha.mp3 +0 -0
  3639. /package/{kits/rabisco/assets → materiais/rabisco}/fontes/OFL-caveat-700.txt +0 -0
  3640. /package/{kits/rabisco/assets → materiais/rabisco}/fontes/OFL-permanent-marker.txt +0 -0
  3641. /package/{kits/rabisco/assets → materiais/rabisco}/fontes/caveat-700.woff2 +0 -0
  3642. /package/{kits/rabisco/assets → materiais/rabisco}/fontes/permanent-marker.woff2 +0 -0
  3643. /package/{kits/rabisco/elementos → materiais/rabisco/formas}/Overlay.tsx +0 -0
  3644. /package/{kits/rabisco/assets → materiais/rabisco}/sons/assinatura.mp3 +0 -0
  3645. /package/{kits/rabisco/assets → materiais/rabisco}/sons/clique.mp3 +0 -0
  3646. /package/{kits/rabisco/assets → materiais/rabisco}/sons/impacto.mp3 +0 -0
  3647. /package/{kits/rabisco/assets → materiais/rabisco}/sons/pop-cartao.mp3 +0 -0
  3648. /package/{kits/rabisco/assets → materiais/rabisco}/sons/pop-palavra.mp3 +0 -0
  3649. /package/{kits/rabisco/assets → materiais/rabisco}/sons/subida.mp3 +0 -0
  3650. /package/{kits/rabisco/assets → materiais/rabisco}/sons/swoosh.mp3 +0 -0
  3651. /package/{kits/rabisco/assets → materiais/rabisco}/sons/tick.mp3 +0 -0
  3652. /package/{kits/rabisco/assets → materiais/rabisco}/sons/whoosh-entra.mp3 +0 -0
  3653. /package/{kits/rabisco/assets → materiais/rabisco}/sons/whoosh-sai.mp3 +0 -0
  3654. /package/{kits/rabisco/assets → materiais/rabisco}/trilha/trilha.mp3 +0 -0
  3655. /package/{kits/retro-70/elementos → materiais/retro-70/camera}/Camera.tsx +0 -0
  3656. /package/{kits/retro-70/assets → materiais/retro-70}/fontes/OFL-Fredoka.txt +0 -0
  3657. /package/{kits/retro-70/assets → materiais/retro-70}/fontes/OFL-Shrikhand.txt +0 -0
  3658. /package/{kits/retro-70/assets → materiais/retro-70}/fontes/fredoka.woff2 +0 -0
  3659. /package/{kits/retro-70/assets → materiais/retro-70}/fontes/shrikhand.woff2 +0 -0
  3660. /package/{kits/retro-70/assets → materiais/retro-70}/sons/assinatura.mp3 +0 -0
  3661. /package/{kits/retro-70/assets → materiais/retro-70}/sons/clique.mp3 +0 -0
  3662. /package/{kits/retro-70/assets → materiais/retro-70}/sons/impacto.mp3 +0 -0
  3663. /package/{kits/retro-70/assets → materiais/retro-70}/sons/pop-cartao.mp3 +0 -0
  3664. /package/{kits/retro-70/assets → materiais/retro-70}/sons/pop-palavra.mp3 +0 -0
  3665. /package/{kits/retro-70/assets → materiais/retro-70}/sons/subida.mp3 +0 -0
  3666. /package/{kits/retro-70/assets → materiais/retro-70}/sons/swoosh.mp3 +0 -0
  3667. /package/{kits/retro-70/assets → materiais/retro-70}/sons/whoosh-entra.mp3 +0 -0
  3668. /package/{kits/retro-70/assets → materiais/retro-70}/sons/whoosh-sai.mp3 +0 -0
  3669. /package/{kits/retro-70/assets → materiais/retro-70}/trilha/solar-104bpm.mp3 +0 -0
  3670. /package/{kits/revista/elementos → materiais/revista/camera}/Camera.tsx +0 -0
  3671. /package/{kits/revista/assets → materiais/revista}/fontes/OFL-CormorantGaramond.txt +0 -0
  3672. /package/{kits/revista/assets → materiais/revista}/fontes/OFL-Jost.txt +0 -0
  3673. /package/{kits/revista/assets → materiais/revista}/fontes/cormorant-italic.woff2 +0 -0
  3674. /package/{kits/revista/assets → materiais/revista}/fontes/cormorant.woff2 +0 -0
  3675. /package/{kits/revista/assets → materiais/revista}/fontes/jost.woff2 +0 -0
  3676. /package/{kits/revista/assets → materiais/revista}/sons/assinatura.mp3 +0 -0
  3677. /package/{kits/revista/assets → materiais/revista}/sons/clique.mp3 +0 -0
  3678. /package/{kits/revista/assets → materiais/revista}/sons/impacto.mp3 +0 -0
  3679. /package/{kits/revista/assets → materiais/revista}/sons/pop-cartao.mp3 +0 -0
  3680. /package/{kits/revista/assets → materiais/revista}/sons/pop-palavra.mp3 +0 -0
  3681. /package/{kits/revista/assets → materiais/revista}/sons/subida.mp3 +0 -0
  3682. /package/{kits/revista/assets → materiais/revista}/sons/swoosh.mp3 +0 -0
  3683. /package/{kits/revista/assets → materiais/revista}/sons/whoosh-entra.mp3 +0 -0
  3684. /package/{kits/revista/assets → materiais/revista}/sons/whoosh-sai.mp3 +0 -0
  3685. /package/{kits/revista/assets → materiais/revista}/trilha/editorial-100bpm.mp3 +0 -0
  3686. /package/{kits/risografia/assets → materiais/risografia}/fontes/OFL-bricolage-800.txt +0 -0
  3687. /package/{kits/risografia/assets → materiais/risografia}/fontes/OFL-space-mono-700.txt +0 -0
  3688. /package/{kits/risografia/assets → materiais/risografia}/fontes/bricolage-800.woff2 +0 -0
  3689. /package/{kits/risografia/assets → materiais/risografia}/fontes/space-mono-700.woff2 +0 -0
  3690. /package/{kits/risografia/assets → materiais/risografia}/sons/assinatura.mp3 +0 -0
  3691. /package/{kits/risografia/assets → materiais/risografia}/sons/clique.mp3 +0 -0
  3692. /package/{kits/risografia/assets → materiais/risografia}/sons/impacto.mp3 +0 -0
  3693. /package/{kits/risografia/assets → materiais/risografia}/sons/pop-cartao.mp3 +0 -0
  3694. /package/{kits/risografia/assets → materiais/risografia}/sons/pop-palavra.mp3 +0 -0
  3695. /package/{kits/risografia/assets → materiais/risografia}/sons/subida.mp3 +0 -0
  3696. /package/{kits/risografia/assets → materiais/risografia}/sons/swoosh.mp3 +0 -0
  3697. /package/{kits/risografia/assets → materiais/risografia}/sons/tick.mp3 +0 -0
  3698. /package/{kits/risografia/assets → materiais/risografia}/sons/whoosh-entra.mp3 +0 -0
  3699. /package/{kits/risografia/assets → materiais/risografia}/sons/whoosh-sai.mp3 +0 -0
  3700. /package/{kits/risografia/assets → materiais/risografia}/trilha/trilha.mp3 +0 -0
  3701. /package/materiais/saas-linear/{paleta.json → cores/paleta.json} +0 -0
  3702. /package/{kits/saas-linear/assets → materiais/saas-linear}/trilha/trilha.mp3 +0 -0
  3703. /package/{kits/stripe-ondas/assets → materiais/stripe-ondas}/fontes/OFL-DM-Mono.txt +0 -0
  3704. /package/{kits/stripe-ondas/assets → materiais/stripe-ondas}/fontes/OFL-Inter.txt +0 -0
  3705. /package/{kits/stripe-ondas/assets → materiais/stripe-ondas}/fontes/dm-mono.woff2 +0 -0
  3706. /package/{kits/stripe-ondas/assets → materiais/stripe-ondas}/fontes/inter.woff2 +0 -0
  3707. /package/{kits/stripe-ondas/assets → materiais/stripe-ondas}/sons/assinatura.mp3 +0 -0
  3708. /package/{kits/stripe-ondas/assets → materiais/stripe-ondas}/sons/clique.mp3 +0 -0
  3709. /package/{kits/stripe-ondas/assets → materiais/stripe-ondas}/sons/impacto.mp3 +0 -0
  3710. /package/{kits/stripe-ondas/assets → materiais/stripe-ondas}/sons/pop-cartao.mp3 +0 -0
  3711. /package/{kits/stripe-ondas/assets → materiais/stripe-ondas}/sons/pop-palavra.mp3 +0 -0
  3712. /package/{kits/stripe-ondas/assets → materiais/stripe-ondas}/sons/subida.mp3 +0 -0
  3713. /package/{kits/stripe-ondas/assets → materiais/stripe-ondas}/sons/swoosh.mp3 +0 -0
  3714. /package/{kits/stripe-ondas/assets → materiais/stripe-ondas}/sons/whoosh-entra.mp3 +0 -0
  3715. /package/{kits/stripe-ondas/assets → materiais/stripe-ondas}/sons/whoosh-sai.mp3 +0 -0
  3716. /package/{kits/stripe-ondas/assets → materiais/stripe-ondas}/trilha/trilha.mp3 +0 -0
  3717. /package/{kits/suica/elementos → materiais/suica/camera}/Camera.tsx +0 -0
  3718. /package/{kits/suica/assets → materiais/suica}/fontes/OFL-IBMPlexMono.txt +0 -0
  3719. /package/{kits/suica/assets → materiais/suica}/fontes/OFL-InterTight.txt +0 -0
  3720. /package/{kits/suica/assets → materiais/suica}/fontes/inter-tight.woff2 +0 -0
  3721. /package/{kits/suica/assets → materiais/suica}/fontes/plex-mono.woff2 +0 -0
  3722. /package/{kits/saas-linear/assets → materiais/suica}/sons/assinatura.mp3 +0 -0
  3723. /package/{kits/saas-linear/assets → materiais/suica}/sons/clique.mp3 +0 -0
  3724. /package/{kits/saas-linear/assets → materiais/suica}/sons/impacto.mp3 +0 -0
  3725. /package/{kits/saas-linear/assets → materiais/suica}/sons/pop-cartao.mp3 +0 -0
  3726. /package/{kits/saas-linear/assets → materiais/suica}/sons/pop-palavra.mp3 +0 -0
  3727. /package/{kits/saas-linear/assets → materiais/suica}/sons/subida.mp3 +0 -0
  3728. /package/{kits/saas-linear/assets → materiais/suica}/sons/swoosh.mp3 +0 -0
  3729. /package/{kits/saas-linear/assets → materiais/suica}/sons/whoosh-entra.mp3 +0 -0
  3730. /package/{kits/saas-linear/assets → materiais/suica}/sons/whoosh-sai.mp3 +0 -0
  3731. /package/{kits/suica/assets → materiais/suica}/trilha/frio-120bpm.mp3 +0 -0
  3732. /package/{kits/synthwave/elementos → materiais/synthwave/camera}/Camera.tsx +0 -0
  3733. /package/{kits/synthwave/assets → materiais/synthwave}/fontes/OFL-Orbitron.txt +0 -0
  3734. /package/{kits/synthwave/assets → materiais/synthwave}/fontes/OFL-Rajdhani.txt +0 -0
  3735. /package/{kits/synthwave/assets → materiais/synthwave}/fontes/orbitron.woff2 +0 -0
  3736. /package/{kits/synthwave/assets → materiais/synthwave}/fontes/rajdhani.woff2 +0 -0
  3737. /package/{kits/suica/assets → materiais/synthwave}/sons/assinatura.mp3 +0 -0
  3738. /package/{kits/suica/assets → materiais/synthwave}/sons/clique.mp3 +0 -0
  3739. /package/{kits/suica/assets → materiais/synthwave}/sons/impacto.mp3 +0 -0
  3740. /package/{kits/suica/assets → materiais/synthwave}/sons/pop-cartao.mp3 +0 -0
  3741. /package/{kits/suica/assets → materiais/synthwave}/sons/pop-palavra.mp3 +0 -0
  3742. /package/{kits/suica/assets → materiais/synthwave}/sons/subida.mp3 +0 -0
  3743. /package/{kits/suica/assets → materiais/synthwave}/sons/swoosh.mp3 +0 -0
  3744. /package/{kits/suica/assets → materiais/synthwave}/sons/whoosh-entra.mp3 +0 -0
  3745. /package/{kits/suica/assets → materiais/synthwave}/sons/whoosh-sai.mp3 +0 -0
  3746. /package/{kits/synthwave/assets → materiais/synthwave}/trilha/noite-110bpm.mp3 +0 -0
  3747. /package/{kits/terminal/assets → materiais/terminal}/fontes/OFL-jetbrains-mono-700.txt +0 -0
  3748. /package/{kits/terminal/assets → materiais/terminal}/fontes/OFL-vt323.txt +0 -0
  3749. /package/{kits/terminal/assets → materiais/terminal}/fontes/jetbrains-mono-700.woff2 +0 -0
  3750. /package/{kits/terminal/assets → materiais/terminal}/fontes/vt323.woff2 +0 -0
  3751. /package/{kits/terminal/assets → materiais/terminal}/sons/assinatura.mp3 +0 -0
  3752. /package/{kits/terminal/assets → materiais/terminal}/sons/clique.mp3 +0 -0
  3753. /package/{kits/terminal/assets → materiais/terminal}/sons/digitar.mp3 +0 -0
  3754. /package/{kits/terminal/assets → materiais/terminal}/sons/impacto.mp3 +0 -0
  3755. /package/{kits/terminal/assets → materiais/terminal}/sons/liga-crt.mp3 +0 -0
  3756. /package/{kits/terminal/assets → materiais/terminal}/sons/pop-cartao.mp3 +0 -0
  3757. /package/{kits/terminal/assets → materiais/terminal}/sons/pop-palavra.mp3 +0 -0
  3758. /package/{kits/terminal/assets → materiais/terminal}/sons/subida.mp3 +0 -0
  3759. /package/{kits/terminal/assets → materiais/terminal}/sons/swoosh.mp3 +0 -0
  3760. /package/{kits/terminal/assets → materiais/terminal}/sons/tick.mp3 +0 -0
  3761. /package/{kits/terminal/assets → materiais/terminal}/sons/whoosh-entra.mp3 +0 -0
  3762. /package/{kits/terminal/assets → materiais/terminal}/sons/whoosh-sai.mp3 +0 -0
  3763. /package/{kits/terminal/assets → materiais/terminal}/trilha/trilha.mp3 +0 -0
  3764. /package/{kits/tiktok-energia/elementos → materiais/tiktok-energia/camera}/Camera.tsx +0 -0
  3765. /package/{kits/tiktok-energia/assets → materiais/tiktok-energia}/fontes/OFL-Anton.txt +0 -0
  3766. /package/{kits/tiktok-energia/assets → materiais/tiktok-energia}/fontes/OFL-Rubik.txt +0 -0
  3767. /package/{kits/tiktok-energia/assets → materiais/tiktok-energia}/fontes/anton-latin.woff2 +0 -0
  3768. /package/{kits/tiktok-energia/assets → materiais/tiktok-energia}/fontes/rubik-latin.woff2 +0 -0
  3769. /package/{kits/tiktok-energia/assets → materiais/tiktok-energia}/sons/assinatura.mp3 +0 -0
  3770. /package/{kits/tiktok-energia/assets → materiais/tiktok-energia}/sons/corte.mp3 +0 -0
  3771. /package/{kits/tiktok-energia/assets → materiais/tiktok-energia}/sons/palavra.mp3 +0 -0
  3772. /package/{kits/tiktok-energia/assets → materiais/tiktok-energia}/sons/pop.mp3 +0 -0
  3773. /package/{kits/tiktok-energia/assets → materiais/tiktok-energia}/sons/soco.mp3 +0 -0
  3774. /package/{kits/tiktok-energia/assets → materiais/tiktok-energia}/sons/subida.mp3 +0 -0
  3775. /package/{kits/tiktok-energia/assets → materiais/tiktok-energia}/sons/whoosh.mp3 +0 -0
  3776. /package/{kits/tiktok-energia/assets → materiais/tiktok-energia}/sons/zap.mp3 +0 -0
  3777. /package/{kits/tiktok-energia/assets → materiais/tiktok-energia}/trilha/tech-128bpm.mp3 +0 -0
  3778. /package/{kits/tunel/elementos → materiais/tunel/camera}/Camera.tsx +0 -0
  3779. /package/{kits/tunel/assets → materiais/tunel}/fontes/OFL-ChakraPetch.txt +0 -0
  3780. /package/{kits/tunel/assets → materiais/tunel}/fontes/OFL-Syncopate.txt +0 -0
  3781. /package/{kits/tunel/assets → materiais/tunel}/fontes/chakra-latin.woff2 +0 -0
  3782. /package/{kits/tunel/assets → materiais/tunel}/fontes/syncopate-latin.woff2 +0 -0
  3783. /package/{kits/tunel/assets → materiais/tunel}/sons/assinatura.mp3 +0 -0
  3784. /package/{kits/tunel/assets → materiais/tunel}/sons/clique.mp3 +0 -0
  3785. /package/{kits/tunel/assets → materiais/tunel}/sons/impacto.mp3 +0 -0
  3786. /package/{kits/tunel/assets → materiais/tunel}/sons/passa.mp3 +0 -0
  3787. /package/{kits/tunel/assets → materiais/tunel}/sons/subida.mp3 +0 -0
  3788. /package/{kits/tunel/assets → materiais/tunel}/sons/tick.mp3 +0 -0
  3789. /package/{kits/tunel/assets → materiais/tunel}/sons/varre.mp3 +0 -0
  3790. /package/{kits/tunel/assets → materiais/tunel}/sons/whoosh.mp3 +0 -0
  3791. /package/{kits/tunel/assets → materiais/tunel}/trilha/tech-128bpm.mp3 +0 -0
  3792. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/fontes/OFL-JetBrainsMono.txt +0 -0
  3793. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/fontes/OFL-PlusJakartaSans.txt +0 -0
  3794. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/fontes/jakarta.woff2 +0 -0
  3795. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/fontes/jbmono.woff2 +0 -0
  3796. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/sons/assinatura.mp3 +0 -0
  3797. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/sons/clique.mp3 +0 -0
  3798. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/sons/digitar.mp3 +0 -0
  3799. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/sons/impacto.mp3 +0 -0
  3800. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/sons/pop-cartao.mp3 +0 -0
  3801. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/sons/pop-palavra.mp3 +0 -0
  3802. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/sons/subida.mp3 +0 -0
  3803. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/sons/sucesso.mp3 +0 -0
  3804. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/sons/swoosh.mp3 +0 -0
  3805. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/sons/whoosh-entra.mp3 +0 -0
  3806. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/sons/whoosh-sai.mp3 +0 -0
  3807. /package/{kits/tutorial-tela/assets → materiais/tutorial-tela}/trilha/passo-108bpm.mp3 +0 -0
  3808. /package/{kits/ugc-reels/elementos → materiais/ugc-reels/camera}/Camera.tsx +0 -0
  3809. /package/{kits/ugc-reels/assets → materiais/ugc-reels}/fontes/OFL-Caveat.txt +0 -0
  3810. /package/{kits/ugc-reels/assets → materiais/ugc-reels}/fontes/OFL-Montserrat.txt +0 -0
  3811. /package/{kits/ugc-reels/assets → materiais/ugc-reels}/fontes/caveat-latin.woff2 +0 -0
  3812. /package/{kits/ugc-reels/assets → materiais/ugc-reels}/fontes/montserrat-latin.woff2 +0 -0
  3813. /package/{kits/ugc-reels/assets → materiais/ugc-reels}/sons/assinatura.mp3 +0 -0
  3814. /package/{kits/ugc-reels/assets → materiais/ugc-reels}/sons/corte.mp3 +0 -0
  3815. /package/{kits/ugc-reels/assets → materiais/ugc-reels}/sons/impacto.mp3 +0 -0
  3816. /package/{kits/ugc-reels/assets → materiais/ugc-reels}/sons/notificacao.mp3 +0 -0
  3817. /package/{kits/ugc-reels/assets → materiais/ugc-reels}/sons/palavra.mp3 +0 -0
  3818. /package/{kits/ugc-reels/assets → materiais/ugc-reels}/sons/pop.mp3 +0 -0
  3819. /package/{kits/ugc-reels/assets → materiais/ugc-reels}/sons/toque.mp3 +0 -0
  3820. /package/{kits/ugc-reels/assets → materiais/ugc-reels}/sons/whoosh.mp3 +0 -0
  3821. /package/{kits/ugc-reels/assets → materiais/ugc-reels}/trilha/pop-120bpm.mp3 +0 -0
  3822. /package/{kits/vercel-mono/assets → materiais/vercel-mono}/fontes/OFL-Inter.txt +0 -0
  3823. /package/{kits/vercel-mono/assets → materiais/vercel-mono}/fontes/OFL-JetBrains-Mono.txt +0 -0
  3824. /package/{kits/vercel-mono/assets → materiais/vercel-mono}/fontes/inter.woff2 +0 -0
  3825. /package/{kits/vercel-mono/assets → materiais/vercel-mono}/fontes/jetbrains-mono.woff2 +0 -0
  3826. /package/{kits/synthwave/assets → materiais/vercel-mono}/sons/assinatura.mp3 +0 -0
  3827. /package/{kits/synthwave/assets → materiais/vercel-mono}/sons/clique.mp3 +0 -0
  3828. /package/{kits/synthwave/assets → materiais/vercel-mono}/sons/impacto.mp3 +0 -0
  3829. /package/{kits/synthwave/assets → materiais/vercel-mono}/sons/pop-cartao.mp3 +0 -0
  3830. /package/{kits/synthwave/assets → materiais/vercel-mono}/sons/pop-palavra.mp3 +0 -0
  3831. /package/{kits/synthwave/assets → materiais/vercel-mono}/sons/subida.mp3 +0 -0
  3832. /package/{kits/synthwave/assets → materiais/vercel-mono}/sons/swoosh.mp3 +0 -0
  3833. /package/{kits/synthwave/assets → materiais/vercel-mono}/sons/whoosh-entra.mp3 +0 -0
  3834. /package/{kits/synthwave/assets → materiais/vercel-mono}/sons/whoosh-sai.mp3 +0 -0
  3835. /package/{kits/vercel-mono/assets → materiais/vercel-mono}/trilha/trilha.mp3 +0 -0
  3836. /package/{kits/vhs-90/elementos → materiais/vhs-90/camera}/Camera.tsx +0 -0
  3837. /package/{kits/vhs-90/assets → materiais/vhs-90}/fontes/OFL-BebasNeue.txt +0 -0
  3838. /package/{kits/vhs-90/assets → materiais/vhs-90}/fontes/OFL-VT323.txt +0 -0
  3839. /package/{kits/vhs-90/assets → materiais/vhs-90}/fontes/bebas.woff2 +0 -0
  3840. /package/{kits/vhs-90/assets → materiais/vhs-90}/fontes/vt323.woff2 +0 -0
  3841. /package/{kits/vhs-90/assets → materiais/vhs-90}/sons/assinatura.mp3 +0 -0
  3842. /package/{kits/vhs-90/assets → materiais/vhs-90}/sons/clique.mp3 +0 -0
  3843. /package/{kits/vhs-90/assets → materiais/vhs-90}/sons/impacto.mp3 +0 -0
  3844. /package/{kits/vhs-90/assets → materiais/vhs-90}/sons/pop-cartao.mp3 +0 -0
  3845. /package/{kits/vhs-90/assets → materiais/vhs-90}/sons/pop-palavra.mp3 +0 -0
  3846. /package/{kits/vhs-90/assets → materiais/vhs-90}/sons/subida.mp3 +0 -0
  3847. /package/{kits/vhs-90/assets → materiais/vhs-90}/sons/swoosh.mp3 +0 -0
  3848. /package/{kits/vhs-90/assets → materiais/vhs-90}/sons/whoosh-entra.mp3 +0 -0
  3849. /package/{kits/vhs-90/assets → materiais/vhs-90}/sons/whoosh-sai.mp3 +0 -0
  3850. /package/{kits/vhs-90/assets → materiais/vhs-90}/trilha/fita-88bpm.mp3 +0 -0
  3851. /package/{kits/vidro-ios/assets → materiais/vidro-ios}/fontes/OFL-DM-Mono.txt +0 -0
  3852. /package/{kits/vidro-ios/assets → materiais/vidro-ios}/fontes/OFL-Inter.txt +0 -0
  3853. /package/{kits/vidro-ios/assets → materiais/vidro-ios}/fontes/dm-mono.woff2 +0 -0
  3854. /package/{kits/vidro-ios/assets → materiais/vidro-ios}/fontes/inter.woff2 +0 -0
  3855. /package/{kits/vidro-ios/assets → materiais/vidro-ios}/sons/assinatura.mp3 +0 -0
  3856. /package/{kits/vidro-ios/assets → materiais/vidro-ios}/sons/clique.mp3 +0 -0
  3857. /package/{kits/vidro-ios/assets → materiais/vidro-ios}/sons/impacto.mp3 +0 -0
  3858. /package/{kits/vidro-ios/assets → materiais/vidro-ios}/sons/pop-cartao.mp3 +0 -0
  3859. /package/{kits/vidro-ios/assets → materiais/vidro-ios}/sons/pop-palavra.mp3 +0 -0
  3860. /package/{kits/vidro-ios/assets → materiais/vidro-ios}/sons/subida.mp3 +0 -0
  3861. /package/{kits/vidro-ios/assets → materiais/vidro-ios}/sons/swoosh.mp3 +0 -0
  3862. /package/{kits/vidro-ios/assets → materiais/vidro-ios}/sons/whoosh-entra.mp3 +0 -0
  3863. /package/{kits/vidro-ios/assets → materiais/vidro-ios}/sons/whoosh-sai.mp3 +0 -0
  3864. /package/{kits/vidro-ios/assets → materiais/vidro-ios}/trilha/trilha.mp3 +0 -0
  3865. /package/{kits/y2k-cromado/elementos → materiais/y2k-cromado/camera}/Camera.tsx +0 -0
  3866. /package/{kits/y2k-cromado/assets → materiais/y2k-cromado}/fontes/OFL-DMMono.txt +0 -0
  3867. /package/{kits/y2k-cromado/assets → materiais/y2k-cromado}/fontes/OFL-Unbounded.txt +0 -0
  3868. /package/{kits/y2k-cromado/assets → materiais/y2k-cromado}/fontes/dm-mono.woff2 +0 -0
  3869. /package/{kits/y2k-cromado/assets → materiais/y2k-cromado}/fontes/unbounded.woff2 +0 -0
  3870. /package/{kits/y2k-cromado/assets → materiais/y2k-cromado}/sons/assinatura.mp3 +0 -0
  3871. /package/{kits/y2k-cromado/assets → materiais/y2k-cromado}/sons/clique.mp3 +0 -0
  3872. /package/{kits/y2k-cromado/assets → materiais/y2k-cromado}/sons/impacto.mp3 +0 -0
  3873. /package/{kits/y2k-cromado/assets → materiais/y2k-cromado}/sons/pop-cartao.mp3 +0 -0
  3874. /package/{kits/y2k-cromado/assets → materiais/y2k-cromado}/sons/pop-palavra.mp3 +0 -0
  3875. /package/{kits/y2k-cromado/assets → materiais/y2k-cromado}/sons/subida.mp3 +0 -0
  3876. /package/{kits/y2k-cromado/assets → materiais/y2k-cromado}/sons/swoosh.mp3 +0 -0
  3877. /package/{kits/y2k-cromado/assets → materiais/y2k-cromado}/sons/whoosh-entra.mp3 +0 -0
  3878. /package/{kits/y2k-cromado/assets → materiais/y2k-cromado}/sons/whoosh-sai.mp3 +0 -0
  3879. /package/{kits/y2k-cromado/assets → materiais/y2k-cromado}/trilha/y2k-128bpm.mp3 +0 -0
package/lib/act.js DELETED
@@ -1,2512 +0,0 @@
1
- // Loop do agente autônomo — streaming via /api/act/stream.
2
- //
3
- // O contrato com o servidor é uma conversa completa (`messages`, estilo OpenAI).
4
- // Cada volta: o servidor devolve tool_calls -> executamos AQUI, com await, e
5
- // devolvemos o resultado na volta seguinte. Sem isso o modelo fica cego e
6
- // repete a mesma tool até estourar o limite.
7
- //
8
- // spawn_agent roda este mesmo loop recursivamente, com conversa própria: o
9
- // subagente não enxerga o diálogo do usuário e devolve só o resumo final.
10
-
11
- 'use strict';
12
-
13
- /* A EDIÇÃO COMPLETA de vídeo falado (20/10/2026): o motor do EDIT IA PRO, pela
14
- ferramenta editor_pro ou, com servidor antigo, pelo `primocode editor` no
15
- run_shell. É o caminho SE a pessoa quer o vídeo editado; quem decide é o modelo. */
16
- const EDICAO_DE_VIDEO_FALADO = 'SE ELA QUER A GRAVAÇÃO DELA FALANDO EDITADA DE VERDADE (a edição completa: "edita meu vídeo", "faz um reels disso", '
17
- + '"coloca legenda e efeitos", corte + legenda + gancho + efeitos + sons + trilha), o caminho é o editor_pro (motor EDIT IA PRO; a skill editar-video explica): '
18
- + 'acao:"cortar" {video} → leia a fala que volta, com os tempos → acao:"montar" {pasta, plano:{gancho, pecas, broll}} → entregue <pasta>/final.mp4 só com o portão PASSOU '
19
- + '(atalho sem plano: acao:"editar"). Se editor_pro não estiver na sua lista de ferramentas, rode o mesmo pelo run_shell: '
20
- + '`primocode editor cortar --json \'{"video":"<arquivo>"}\'` (montar e editar do mesmo jeito; a saída é uma linha de JSON).\n';
21
-
22
- const { c, Spinner, PENSANDO } = require('./ui');
23
- const fala = require('./fala');
24
- const especialistas = require('./especialistas');
25
- const limites = require('./limites');
26
- let avisouParalelo = false;
27
- const tools = require('./tools');
28
- const api = require('./api');
29
- const cfg = require('./config');
30
- const catalogo = require('./catalogo');
31
- const repeticao = require('./repeticao');
32
- const diff = require('./diff');
33
- const registro = require('./registro');
34
- const permissao = require('./permissao');
35
- const perigo = require('./perigo');
36
- const skills = require('./skills');
37
- const checkpoint = require('./checkpoint');
38
- const hooks = require('./hooks');
39
- const tempos = require('./tempos');
40
- const preLeitura = require('./pre-leitura');
41
- const travado = require('./travado');
42
- const auditoria = require('./auditoria');
43
- const chamadaTorta = require('./chamada-torta');
44
- const idioma = require('./idioma');
45
- const entregaveis = require('./entregaveis');
46
-
47
- // 40, não 15: com o freio de repetição (repeticao.js) e o de rodada parada,
48
- // volta a mais não é volta em círculo — é trabalho. Quinze acabavam no meio
49
- // de um vídeo de dez cenas com pesquisa, e a pessoa lia "gastei as voltas".
50
- const MAX_ITERATIONS = Number(process.env.PRIMOCODE_MAX_VOLTAS || 40);
51
- const MAX_VOLTAS_AGENTE = Number(process.env.PRIMOCODE_MAX_VOLTAS_AGENTE || 20);
52
- // Quantas vezes o agente é EMPURRADO quando para no meio para narrar
53
- // ("agora vou criar o arquivo…") em vez de fazer. Ver `pareceParadaNoMeio`.
54
- const MAX_EMPURROES = 3;
55
- // Voltas seguidas sem executar nada antes de desistir.
56
- const MAX_RODADAS_PARADAS = 3;
57
- const MAX_PROFUNDIDADE = 2; // principal + 1 nível de subagente
58
- // As leituras que, repetidas sem mudança no meio, devolvem o guardado.
59
- const RELEITURA = new Set(['read_file', 'list_dir']);
60
- /* O que só lê: pode rodar junto com as outras leituras da mesma rodada. */
61
- const SO_LEITURA = new Set(['read_file', 'list_dir', 'glob', 'grep', 'pesquisar_referencia', 'buscar_web', 'ler_url', 'estudio_site', 'mcp_procurar']);
62
- const ehLeitura = (tc) => SO_LEITURA.has(tc.name)
63
- || (tc.name === 'run_shell' && /^\s*primocode\s+(skill|mcp\s+list|video\s+(help|get_timeline|get_transcript))\b/.test(String((tc.arguments && tc.arguments.command) || '')));
64
-
65
- // ── Interrupção (Esc Esc) ─────────────────────────────────────────────────
66
- // O usuário aperta Esc duas vezes e o agente PARA — entre uma rodada e outra
67
- // e entre uma tool e a seguinte (uma tool já em execução termina; o que ela
68
- // fez, ficou feito). A flag é do módulo de propósito: parar o principal para
69
- // os subagentes junto.
70
- let PARAR = false;
71
- // O pedido que está em voo agora. Sem isto o Esc Esc só valia entre uma
72
- // rodada e outra: o modelo seguia escrevendo do outro lado e o usuário ficava
73
- // vendo o spinner girar depois de ter mandado parar.
74
- let emVoo = null;
75
- /** Se o último pedido foi parado com Esc Esc (o PARAR só volta a false no começo do próximo). */
76
- function interrompido() { return PARAR; }
77
-
78
- function interromper() {
79
- PARAR = true;
80
- if (emVoo) { try { emVoo.abort(); } catch {} }
81
- }
82
-
83
- /* ── A CAIXA DE ENTRADA: o que a pessoa digita enquanto ele trabalha ────
84
- * Antes, a linha digitada durante uma tarefa ia para a fila do terminal e só
85
- * rodava DEPOIS — como um pedido novo, que não sabia nada do que estava em
86
- * curso. "Mesmo quando ela estiver trabalhando poderá enviar mensagem; ela
87
- * vai à fila e, quando o PrimoCode termina um passo, recebe a mensagem e
88
- * integra na tarefa." É o que o Claude Code e o Codex fazem: o recado entra
89
- * na conversa na fronteira seguinte — depois do resultado das ferramentas,
90
- * antes da próxima ida ao modelo. Nenhuma ferramenta é cortada no meio.
91
- *
92
- * Só o pedido PRINCIPAL lê a caixa (o subagente trabalha para ele). O que
93
- * sobrar quando a tarefa acabar volta para o terminal como pedido normal. */
94
- const CAIXA = [];
95
- let TRABALHANDO = false;
96
- function mandarDuranteATarefa(texto) {
97
- const t = String(texto || '').trim();
98
- if (!t || !TRABALHANDO) return false;
99
- CAIXA.push(t);
100
- return true;
101
- }
102
- function trabalhando() { return TRABALHANDO; }
103
- /** O que ficou na caixa sem ser lido — o terminal roda como pedido novo. */
104
- function sobrasDaCaixa() { return CAIXA.splice(0); }
105
- /* Esvazia a caixa dentro da conversa. Devolve quantos recados entraram. */
106
- function entregarRecados(messages, profundidade) {
107
- if (!CAIXA.length) return 0;
108
- const recados = CAIXA.splice(0);
109
- for (const r of recados) fala.pensamento(`recado recebido — entrando na tarefa: ${r}`, profundidade);
110
- messages.push({
111
- role: 'user',
112
- content: (recados.length === 1 ? 'MENSAGEM NOVA do usuário, enviada enquanto você trabalhava:\n'
113
- : 'MENSAGENS NOVAS do usuário, enviadas enquanto você trabalhava:\n')
114
- + recados.map((r) => `- ${r}`).join('\n')
115
- + '\n\nIntegre isto na tarefa em curso: se é um ajuste, aplique; se muda o rumo, siga o novo rumo; '
116
- + 'se é uma pergunta, responda em uma frase e continue. Não recomece o que já está feito.',
117
- });
118
- return recados.length;
119
- }
120
-
121
- /**
122
- * Este erro é "não coube no minuto"?
123
- *
124
- * É o único erro que a gente sabe consertar sozinho: encolher o que já foi
125
- * feito e continuar. Rede, cota do dia e chave inválida não se resolvem
126
- * assim, e tentar de novo só gastaria a vez do usuário.
127
- */
128
- function ehTetoDeToken(e) {
129
- const s = String((e && e.message) || e || '').toLowerCase();
130
- return /não cabe no teto|conversa passou do teto|request too large|tokens per minute|\btpm\b|reduce your message size/.test(s);
131
- }
132
-
133
- /**
134
- * Este erro é PASSAGEIRO — daqui a alguns segundos a mesma chamada passa?
135
- *
136
- * 429 por pedidos, 5xx do provedor ou do servidor, conexão que caiu no meio.
137
- * Nada disso é do usuário, e nada disso ele precisa ver: espera-se um pouco
138
- * e repete-se, com o spinner de pensar girando. O que NÃO entra aqui, de
139
- * propósito: cota do DIA (esperar minutos não resolve), crédito, chave e o
140
- * teto de tokens (esse tem a função acima e o conserto próprio, encolher).
141
- */
142
- /**
143
- * Erro que o NOSSO servidor mandou no meio do stream, sem chave própria.
144
- *
145
- * Quando a corrente inteira falha, o servidor repassa o erro do último
146
- * provedor dela. Se esse último recusou a chave DELE (401/403), o erro chegava
147
- * cru e virava "este servidor pede um token" — com o login da pessoa válido,
148
- * e sem nova tentativa (23/10: o /comecar caiu assim, e o pedido seguinte
149
- * passou). O 401 do nosso portão não vem por aqui: vem como HTTP 401, antes
150
- * do stream. Então aqui é a corrente fora do ar, e isso é passageiro.
151
- */
152
- function erroDaCorrente(erro) {
153
- const s = String(erro || '');
154
- if (!/\b40[13]\b|unauthorized|forbidden/i.test(s)) return erro;
155
- traco(`a corrente falhou e o último provedor recusou a chave dele: ${s.slice(0, 160)}`);
156
- return '503 nenhum provedor de IA do servidor respondeu agora';
157
- }
158
-
159
- /** A linha de quando respondeu um modelo de reserva: trocar em silêncio é a queixa nº 7 da pesquisa (Gemini cai
160
- pra Flash sem avisar). O servidor manda { modelo, reserva } desde a 10.19; antes disso, nada aparece. */
161
- function linhaDaReserva(modelo) {
162
- const nome = String(modelo || '').replace(/^[a-z0-9]+:/i, '') || 'outro modelo';
163
- return `respondeu um modelo de reserva (${nome}): o principal estava ocupado, e a qualidade pode variar um pouco.`;
164
- }
165
-
166
- function ehTransitorio(e) {
167
- const s = String((e && e.message) || e || '').toLowerCase();
168
- if (/tokens per day|\btpd\b|free-models-per-day|per day|\b402\b|\b401\b|\b403\b|afford|credit/.test(s)) return false;
169
- return /rate.?limit|too many requests|\b429\b|\b50[234]\b|bad gateway|service unavailable|gateway timeout|overloaded|socket hang up|econnreset|etimedout|aborted|internal server error|\b500\b/.test(s);
170
- }
171
-
172
- /**
173
- * O /compact automático, feito no meio da tarefa.
174
- *
175
- * O dono: "quando bate no teto dos 6 mil, ele roda o compact ocultamente e
176
- * continua a tarefa, pega todo o contexto que ele fez antes, como se nada
177
- * tivesse acontecido".
178
- *
179
- * Troca as rodadas já feitas por UMA anotação do que se descobriu e do que
180
- * ficou pronto. O agente perde o texto literal das ferramentas e mantém o que
181
- * importa para seguir: onde estava, o que já sabe, o que falta.
182
- */
183
- /** O motivo de uma tool que falhou, curto: o error, o código de saída e a linha de falha da saída do comando. */
184
- function porqueFalhou(corpo) {
185
- let j = null;
186
- try { j = JSON.parse(String(corpo).replace(/…\(truncado\)$/, '')); } catch { /* não é JSON inteiro */ }
187
- if (!j) { const m = /"error"\s*:\s*"([^"]{1,160})/.exec(corpo); return m ? ` — ${m[1]}` : ''; }
188
- const partes = [];
189
- if (j.error) partes.push(String(j.error).slice(0, 140));
190
- if (j.code != null && j.code !== 0) partes.push(`código ${j.code}`);
191
- const linha = `${j.stdout || ''}\n${j.stderr || ''}`.split('\n').reverse().find((l) => require('./saida').FALHA.test(l));
192
- if (linha) partes.push(linha.trim().slice(0, 160));
193
- return partes.length ? ` — ${partes.join(' · ')}` : '';
194
- }
195
-
196
- /** O resumo de cima da anotação: os arquivos que a tarefa escreveu e o último comando que falhou (e não passou depois). */
197
- function resumoDoQueJaFoi(messages) {
198
- const chamadas = repeticao.chamadasPorId(messages);
199
- const escritos = new Set();
200
- let ultimaFalha = null;
201
- for (const m of messages) {
202
- if (!m || m.role !== 'tool') continue;
203
- const ch = chamadas.get(m.tool_call_id);
204
- if (!ch) continue;
205
- const ok = !/"ok"\s*:\s*false/.test(String(m.content || ''));
206
- if (ok && /^(write_file|edit_file|multi_edit)$/.test(ch.nome) && ch.args && ch.args.path) escritos.add(ch.args.path);
207
- if (ch.nome === 'run_shell' && ch.args && ch.args.command) {
208
- if (!ok) ultimaFalha = { cmd: ch.args.command, porque: porqueFalhou(m.content) };
209
- else if (ultimaFalha && mesmoComando(ultimaFalha.cmd, ch.args.command)) ultimaFalha = null;
210
- }
211
- }
212
- const linhas = [];
213
- if (escritos.size) linhas.push(`Arquivos que você já escreveu (estão no disco; releia antes de editar): ${[...escritos].join(', ')}`);
214
- if (ultimaFalha) linhas.push(`Ainda falhando: \`${String(ultimaFalha.cmd).slice(0, 120)}\`${ultimaFalha.porque}`);
215
- return linhas;
216
- }
217
-
218
- function anotacaoDoQueJaFoi(messages) {
219
- const chamadas = repeticao.chamadasPorId(messages);
220
- const feitos = [];
221
- for (const m of messages) {
222
- if (!m || m.role !== 'tool') continue;
223
- const ch = chamadas.get(m.tool_call_id);
224
- if (!ch) continue;
225
- const alvo = ch.args && (ch.args.path || ch.args.command || ch.args.consulta || ch.args.ferramenta || ch.args.titulo || ch.args.id);
226
- const corpo = String(m.content || '');
227
- const deuErrado = /"ok"\s*:\s*false/.test(corpo);
228
- feitos.push(`- ${ch.nome}${alvo ? `(${String(alvo).slice(0, 80)})` : ''}: `
229
- + (deuErrado ? `FALHOU${porqueFalhou(corpo)}` : corpo.slice(0, 220).replace(/\s+/g, ' ')));
230
- }
231
- return feitos;
232
- }
233
-
234
- function ident(profundidade) {
235
- return ' '.repeat(profundidade);
236
- }
237
-
238
- /* O bloco de diff embaixo do resultado.
239
- *
240
- * O `_antes`/`_depois` vem das tools de arquivo e existe só para isto: são as
241
- * duas versões do texto, que o `limparParaOModelo` apaga antes de a conversa
242
- * seguir. Sem essa limpeza, cada edição mandaria o arquivo inteiro de volta
243
- * ao modelo — que acabou de escrevê-lo e não aprende nada relendo. */
244
- function mostrarDiff(result, profundidade) {
245
- if (!result || typeof result._antes !== 'string' || typeof result._depois !== 'string') return;
246
- const bloco = diff.desenhar(result._antes, result._depois, {
247
- prefixo: fala.recuo(profundidade),
248
- });
249
- if (bloco) console.log(bloco);
250
- }
251
-
252
- /* O que NÃO pode ir para a conversa. Chave com `_` é desenho de tela: o
253
- arquivo inteiro, duas vezes, por edição. */
254
- function limparParaOModelo(result) {
255
- if (!result || typeof result !== 'object') return result;
256
- const limpo = {};
257
- for (const [k, v] of Object.entries(result)) if (!k.startsWith('_')) limpo[k] = v;
258
- return limpo;
259
- }
260
-
261
- function logResult(kind, result, profundidade) {
262
- const p = fala.resultado(profundidade);
263
- if (!result) return;
264
- // Uma tool que falhou é informação para o AGENTE, que vai consertar na
265
- // volta seguinte — não é o erro do usuário. Âmbar, uma linha, sem o
266
- // vermelho que faz parecer que a tarefa morreu.
267
- if (result.ok === false) {
268
- const texto = String(result.error || `exit ${result.code ?? 'erro'}`).replace(/\s+/g, ' ').trim();
269
- // Erro de permissão não corta: a instrução que resolve ("Acessibilidade…
270
- // peça de novo") fica justamente depois do 160º caractere.
271
- const teto = result.permissao === false ? 400 : 160;
272
- console.log(p + c.warn(texto.length > teto ? texto.slice(0, teto - 1) + '…' : texto));
273
- return;
274
- }
275
-
276
- switch (kind) {
277
- case 'write_file':
278
- console.log(p + c.muted(`${result.created ? 'criado' : 'atualizado'} · ${tools.fmtBytes(result.bytes)}`));
279
- // Reescrever arquivo que já existia apaga o que estava lá. O
280
- // número de bytes não conta isso; o bloco embaixo conta.
281
- mostrarDiff(result, profundidade);
282
- return;
283
- case 'edit_file':
284
- case 'multi_edit': {
285
- const delta = result.linhasDepois - result.linhasAntes;
286
- const sinal = delta > 0 ? c.ok(`+${delta}`) : delta < 0 ? c.err(`${delta}`) : c.muted('±0');
287
- console.log(p + c.muted(`${result.substituicoes} troca${result.substituicoes > 1 ? 's' : ''} · `) + sinal + c.muted(' linhas'));
288
- mostrarDiff(result, profundidade);
289
- return;
290
- }
291
- case 'read_file':
292
- console.log(p + c.muted(result.de
293
- ? `linhas ${result.de}–${result.ate} de ${result.linhas}`
294
- : `${result.linhas} linhas · ${tools.fmtBytes(result.bytes || 0)}${result.truncado ? ' (cortado)' : ''}`));
295
- return;
296
- case 'list_dir': {
297
- const linhas = (result.tree || '').split('\n').filter(Boolean);
298
- for (const l of linhas.slice(0, 8)) console.log(p + c.muted(l));
299
- if (linhas.length > 8) console.log(p + c.muted(`… +${linhas.length - 8}`));
300
- return;
301
- }
302
- case 'glob':
303
- console.log(p + c.muted(`${result.total} arquivo${result.total === 1 ? '' : 's'}`));
304
- for (const f of (result.arquivos || []).slice(0, 5)) console.log(p + c.dim(f));
305
- if ((result.arquivos || []).length > 5) console.log(p + c.dim(`… +${result.arquivos.length - 5}`));
306
- return;
307
- case 'grep': {
308
- console.log(p + c.muted(`${result.total} ocorrência${result.total === 1 ? '' : 's'} em ${result.arquivosVistos} arquivos`));
309
- for (const r of (result.resultados || []).slice(0, 5)) {
310
- console.log(p + c.dim(`${r.arquivo}:${r.linha}`));
311
- }
312
- if ((result.resultados || []).length > 5) console.log(p + c.dim(`… +${result.resultados.length - 5}`));
313
- return;
314
- }
315
- case 'run_shell': {
316
- const saida = (result.stdout || '').trim().split('\n').filter(Boolean);
317
- for (const l of saida.slice(0, 6)) console.log(p + c.muted(l.slice(0, 160)));
318
- if (saida.length > 6) console.log(p + c.muted(`… +${saida.length - 6} linhas`));
319
- if (!saida.length) console.log(p + c.ok('exit 0'));
320
- return;
321
- }
322
- case 'open_in_browser':
323
- console.log(p + c.muted(result.opener || 'aberto'));
324
- return;
325
- case 'multi_edit': {
326
- const delta = result.linhasDepois - result.linhasAntes;
327
- const sinal = delta > 0 ? c.ok(`+${delta}`) : delta < 0 ? c.err(`${delta}`) : c.muted('±0');
328
- console.log(p + c.muted(`${result.substituicoes} trocas · `) + sinal + c.muted(' linhas'));
329
- return;
330
- }
331
- case 'write_todos': {
332
- const marca = { completed: c.ok('✔'), in_progress: c.brand('▶'), pending: c.dim('○') };
333
- for (const t of result.todos || []) {
334
- const texto = t.status === 'completed' ? c.dim(t.content) : c.white(t.content);
335
- console.log(p + `${marca[t.status] || c.dim('○')} ${texto}`);
336
- }
337
- console.log(p + c.muted(`${result.feitos}/${result.total} concluídas`));
338
- return;
339
- }
340
- case 'browser_open':
341
- console.log(p + c.muted(result.url || 'aberto'));
342
- return;
343
- case 'browser_read': {
344
- const refs = (String(result.pagina || '').match(/^@e\d+/gm) || []).length;
345
- console.log(p + c.muted(refs ? `${refs} elementos com ref · ${(result.text || '').length} caracteres de texto`
346
- : `${(result.text || '').length} caracteres lidos da página`));
347
- return;
348
- }
349
- case 'pesquisar_referencia': {
350
- console.log(p + c.muted(`${result.fontes} fonte${result.fontes === 1 ? '' : 's'} lida${result.fontes === 1 ? '' : 's'} sobre "${result.consulta}"`));
351
- for (const r of (result.referencias || []).slice(0, 4)) {
352
- console.log(p + c.dim(`${r.titulo}`.slice(0, 100)));
353
- console.log(p + c.dim(` ${r.url}`.slice(0, 110)));
354
- }
355
- return;
356
- }
357
- case 'mcp_procurar': {
358
- console.log(p + c.muted(`${(result.resultados || []).length} MCP para "${result.busca}"`));
359
- for (const r of (result.resultados || []).slice(0, 4)) console.log(p + c.dim(`${r.nome} · ${r.descricao}`.slice(0, 110)));
360
- return;
361
- }
362
- case 'mcp_conectar':
363
- console.log(p + c.ok('conectado') + c.muted(` · ${result.servidor} · ${(result.ferramentas || []).length} tools`));
364
- return;
365
- case 'mcp_usar':
366
- console.log(p + c.muted(`${result.servidor}.${result.ferramenta} · ${String(result.resultado || '').length} caracteres`));
367
- return;
368
- case 'desktop_windows': {
369
- console.log(p + c.muted(`${result.total} janela${result.total === 1 ? '' : 's'}`));
370
- for (const j of (result.janelas || []).slice(0, 5)) console.log(p + c.dim(`${j.app ? j.app + ' · ' : ''}${j.titulo}`.slice(0, 120)));
371
- if ((result.janelas || []).length > 5) console.log(p + c.dim(`… +${result.janelas.length - 5}`));
372
- return;
373
- }
374
- case 'desktop_elements': {
375
- console.log(p + c.muted(`${result.total} elemento${result.total === 1 ? '' : 's'} em “${result.janela || 'janela em foco'}”`));
376
- for (const e of (result.elementos || []).slice(0, 5)) console.log(p + c.dim(`${e.nome} (${e.x},${e.y})`.slice(0, 120)));
377
- if ((result.elementos || []).length > 5) console.log(p + c.dim(`… +${result.elementos.length - 5}`));
378
- return;
379
- }
380
- case 'desktop_click_element':
381
- console.log(p + c.ok('ok') + c.muted(` · ${result.duplo ? 'clique duplo' : 'clique'} em “${result.clicado}” (${result.x},${result.y})`));
382
- return;
383
- case 'desktop_open_app':
384
- console.log(p + c.ok('ok') + c.muted(` · ${result.app}`));
385
- return;
386
- case 'desktop_focus':
387
- console.log(p + c.ok('ok') + c.muted(` · ${result.janela || 'em foco'}`));
388
- return;
389
- case 'browser_screenshot':
390
- case 'desktop_screenshot':
391
- console.log(p + c.muted(`${result.path} · ${tools.fmtBytes(result.bytes || 0)}`));
392
- return;
393
- case 'browser_click':
394
- case 'browser_type':
395
- case 'browser_key':
396
- case 'browser_scroll':
397
- case 'browser_wait':
398
- case 'browser_eval':
399
- case 'desktop_click':
400
- case 'desktop_double_click':
401
- case 'desktop_move':
402
- case 'desktop_drag':
403
- case 'desktop_type':
404
- case 'desktop_key':
405
- case 'desktop_scroll':
406
- case 'desktop_size':
407
- console.log(p + c.ok('ok') + (result.text || result.tag || result.selector || result.width ? c.muted(' · ' + (result.selector || result.tag || (result.width ? `${result.width}×${result.height}` : ''))) : ''));
408
- return;
409
- }
410
- }
411
-
412
- /** Dois comandos de shell que resolvem a mesma coisa: o mesmo texto, o mesmo `primocode kit <x> <n>`, ou os dois rodam testes/build. */
413
- const RODA_TESTE = /\b(test|tests|jest|vitest|mocha|pytest|unittest|cargo\s+test|go\s+test|tsc|build|lint|check)\b/i;
414
- function mesmoComando(a, b) {
415
- const n = (c) => String(c || '').trim().replace(/\s+/g, ' ');
416
- const x = n(a), y = n(b);
417
- if (!x || !y) return false;
418
- if (x === y) return true;
419
- const kit = (c) => (/^(primocode|primo) kits? /.test(c) ? c.split(' ').slice(0, 4).join(' ') : null);
420
- if (kit(x) && kit(x) === kit(y)) return true;
421
- return RODA_TESTE.test(x) && RODA_TESTE.test(y);
422
- }
423
-
424
- // O que volta para o modelo. Cortamos saídas gigantes para não estourar a
425
- // janela de contexto na iteração seguinte.
426
- function summarizeForModel(result) {
427
- // As chaves com `_` são desenho de tela (as duas versões do arquivo, para
428
- // o diff). Se escapassem daqui, cada edição mandaria o arquivo inteiro,
429
- // duas vezes, de volta a um modelo que acabou de escrevê-lo.
430
- // saída de comando: começo + as falhas do meio + o fim, e o stderr com a sua cota (lib/saida.js)
431
- const S = require('./saida');
432
- const json = JSON.stringify(S.caber(S.resumirComando(limparParaOModelo(result))));
433
- return json.length > 6000 ? json.slice(0, 6000) + '…(truncado)' : json;
434
- }
435
-
436
- // Quantos resultados de tool ficam INTEIROS na conversa. Os mais novos são o
437
- // que o modelo precisa para decidir o próximo passo; os velhos viram peso.
438
- const RESULTADOS_INTEIROS = 3;
439
- const RESTO_DO_RESULTADO = 300;
440
- /* ── COM MOTOR PRÓPRIO, A MEMÓRIA NÃO É AMPUTADA ────────────────────────
441
- * Os 3 e os 300 de cima são para o teto de ~6 mil tokens por minuto do
442
- * servidor grátis. Com Claude Code, Codex ou chave própria (`provedor.atual()`)
443
- * eles valiam igual, e o modelo perdia o arquivo que tinha acabado de ler:
444
- * no jogo de carro de 09/10 o Claude leu o world.js (458 linhas) sete vezes,
445
- * em fatias, porque a cada três ferramentas a leitura anterior virava 300
446
- * caracteres. A pre-leitura já folgava com motor próprio; o compactar agora
447
- * também. */
448
- const RESULTADOS_INTEIROS_FOLGADO = 20;
449
- const RESTO_DO_RESULTADO_FOLGADO = 1500;
450
- // A pesquisa é MATÉRIA-PRIMA, não passo intermediário: é dela que saem os
451
- // fatos do vídeo, do post, do slide. Ela sempre fica velha (pesquisa-se no
452
- // começo, escreve-se no fim), e a 300 caracteres não sobrava fato nenhum — o
453
- // modelo escrevia genérico, que foi exatamente a reclamação de "está tudo
454
- // padrão". Encolhe também, mas com espaço para os fatos sobreviverem.
455
- const RESTO_DA_PESQUISA = 1500;
456
- const MATERIA_PRIMA = new Set(['pesquisar_referencia']);
457
-
458
- /* ── O ARQUIVO JÁ GRAVADO NÃO VIAJA DE NOVO ─────────────────────────────
459
- * O `compactar` encolhia o resultado das ferramentas e deixava intacto o que
460
- * o MODELO escreveu — e o que ele escreve num site é o arquivo inteiro, dentro
461
- * da chamada write_file. Medido em 29/09 ("crie uma landing de barbearia"):
462
- * depois do index.html (7,6 KB) e do style.css (15 KB), cada ida ao modelo
463
- * levava os dois de novo, passava do teto de tokens por minuto do plano
464
- * grátis e ficava esperando a janela virar, em silêncio — "escreve dois
465
- * arquivos e trava". O conteúdo já está no disco: nas voltas antigas ele vira
466
- * um ponteiro. As duas últimas ficam inteiras (é nelas que o modelo decide o
467
- * próximo passo, e é delas que sai a releitura sem disco — ver read_file). */
468
- const ESCRITAS_INTEIRAS = 2;
469
- const RESTO_DA_ESCRITA = 400;
470
- function assistentesAntigas(messages) {
471
- const idx = [];
472
- for (let i = 0; i < messages.length; i++) {
473
- const m = messages[i];
474
- if (m && m.role === 'assistant' && Array.isArray(m.tool_calls) && m.tool_calls.length) idx.push(i);
475
- }
476
- return new Set(idx.slice(0, -ESCRITAS_INTEIRAS));
477
- }
478
- function encolherEscritas(m) {
479
- let mudou = false;
480
- const tool_calls = m.tool_calls.map((tc) => {
481
- const f = tc && tc.function;
482
- if (!f || !/^(write_file|edit_file|multi_edit)$/.test(f.name)) return tc;
483
- const bruto = String(f.arguments || '');
484
- if (bruto.length <= RESTO_DA_ESCRITA) return tc;
485
- let a;
486
- try { a = JSON.parse(bruto); } catch { return tc; }
487
- const ponteiro = (n) => `(${n} caracteres — já gravado no disco; para mudar, leia com read_file e use edit_file)`;
488
- if (f.name === 'write_file' && typeof a.content === 'string' && a.content.length > RESTO_DA_ESCRITA) a.content = ponteiro(a.content.length);
489
- else if (f.name === 'edit_file' && typeof a.new_string === 'string' && a.new_string.length > RESTO_DA_ESCRITA) {
490
- a.new_string = ponteiro(a.new_string.length);
491
- if (typeof a.old_string === 'string' && a.old_string.length > 200) a.old_string = a.old_string.slice(0, 200) + '…';
492
- } else if (f.name === 'multi_edit' && Array.isArray(a.edits)) {
493
- a.edits = a.edits.map((e) => (e && typeof e.new_string === 'string' && e.new_string.length > RESTO_DA_ESCRITA
494
- ? { ...e, new_string: ponteiro(e.new_string.length), old_string: String(e.old_string || '').slice(0, 200) } : e));
495
- } else return tc;
496
- mudou = true;
497
- return { ...tc, function: { ...f, arguments: JSON.stringify(a) } };
498
- });
499
- return mudou ? { ...m, tool_calls } : m;
500
- }
501
-
502
- /**
503
- * Encolhe os resultados de tool ANTIGOS antes de mandar a conversa.
504
- *
505
- * Sem isto, cada página lida e cada pesquisa ficava inteira no histórico para
506
- * sempre. Medido num pedido real ("pesquise sobre a empresa X e faça um
507
- * vídeo"): cinco pesquisas e seis leituras de página levaram a conversa a
508
- * 27.454 tokens contra um teto de 6.000 por minuto do plano grátis — a tarefa
509
- * morreu no meio, depois de todo o trabalho de pesquisa já feito.
510
- *
511
- * MAS: encolher REFERÊNCIA cria um loop. O manual e as specs do estúdio são o
512
- * formato que o modelo precisa ter em mãos na hora de escrever o documento;
513
- * encolhidos, ele pede de novo — e é encolhido de novo. Foi assim que um
514
- * pedido de vídeo pesquisou e leu a mesma spec sete vezes sem criar nada. A
515
- * cópia mais nova de cada referência fica INTEIRA; as velhas, que são o mesmo
516
- * texto repetido, viram um ponteiro para ela.
517
- *
518
- * Nenhuma mensagem é REMOVIDA: a API exige que cada role:'tool' continue
519
- * pareada com o tool_call que a pediu. Só o texto encolhe.
520
- */
521
- function compactar(messages, { folgado = false } = {}) {
522
- const { inteiras, duplicadas } = repeticao.referenciasNaConversa(messages);
523
- const quantosInteiros = folgado ? RESULTADOS_INTEIROS_FOLGADO : RESULTADOS_INTEIROS;
524
- const resto = folgado ? RESTO_DO_RESULTADO_FOLGADO : RESTO_DO_RESULTADO;
525
-
526
- const indices = [];
527
- for (let i = 0; i < messages.length; i++) if (messages[i].role === 'tool') indices.push(i);
528
- if (indices.length <= quantosInteiros && !duplicadas.size && !assistentesAntigas(messages).size) return messages;
529
-
530
- const chamadas = repeticao.chamadasPorId(messages);
531
- const encolher = new Set(indices.slice(0, -quantosInteiros));
532
- const antigas = assistentesAntigas(messages);
533
- return messages.map((m, i) => {
534
- if (antigas.has(i)) return encolherEscritas(m);
535
- if (duplicadas.has(i)) {
536
- return { ...m, content: '(a mesma referência aparece inteira mais adiante nesta conversa — use aquela)' };
537
- }
538
- if (inteiras.has(i) || !encolher.has(i)) return m;
539
- const chamada = chamadas.get(m.tool_call_id);
540
- const limite = chamada && MATERIA_PRIMA.has(chamada.nome) ? Math.max(RESTO_DA_PESQUISA, resto) : resto;
541
- const texto = String(m.content || '');
542
- if (texto.length <= limite) return m;
543
- return { ...m, content: texto.slice(0, limite) + `…(resultado antigo encurtado; eram ${texto.length} caracteres)` };
544
- });
545
- }
546
-
547
- /**
548
- * Por que parou, quando o modelo não disse.
549
- *
550
- * "Parei sem concluir e sem explicação do modelo" era a resposta para tudo, e
551
- * quase sempre mentia: na prática o agente tinha gastado as 15 voltas dando
552
- * murro em ponta de faca. Dizer o motivo certo é a diferença entre o usuário
553
- * saber o que fazer e ficar no escuro.
554
- */
555
- /**
556
- * Troca as rodadas já feitas por uma ANOTAÇÃO do que se descobriu, no lugar.
557
- *
558
- * Mexe no array recebido de propósito: quem chamou continua o mesmo loop, com
559
- * a mesma conversa, só que leve. O pedido do usuário e a mensagem de sistema
560
- * ficam — sem eles o agente não sabe mais o que estava fazendo.
561
- */
562
- function encolherParaContinuar(messages) {
563
- const anotacao = [...resumoDoQueJaFoi(messages), ...anotacaoDoQueJaFoi(messages)];
564
- const guardar = messages.filter((m) => m.role === 'system' || m.role === 'user');
565
- messages.length = 0;
566
- messages.push(...guardar);
567
- if (anotacao.length) {
568
- messages.push({
569
- role: 'system',
570
- content: 'O QUE VOCÊ JÁ FEZ NESTA TAREFA (a conversa foi encolhida para caber no limite; '
571
- + 'estas são as suas anotações, continue de onde parou e NÃO refaça o que já está aqui):\n'
572
- + anotacao.join('\n')
573
- + '\n\nSiga para o próximo passo. Se já tem o que precisa, PRODUZA o resultado agora.',
574
- });
575
- }
576
- }
577
-
578
- /** Quanto esperar quando o minuto estourou. O provedor costuma dizer
579
- * ("Please try again in 7.664s"); sem isso, meio minuto é seguro. */
580
- function esperaDoErro(e, tentativa = 0) {
581
- const m = /try again in ([0-9.]+)s/i.exec(String((e && e.message) || e || ''));
582
- if (m) return Math.min(70, Math.max(5, Math.ceil(parseFloat(m[1])) + 2)) * 1000;
583
- // Sem o tempo do provedor, cresce a passada a cada tentativa: bater na
584
- // mesma porta a cada 30s por horas só esquenta o rate limit.
585
- if (ehTetoDeToken(e)) return Math.min(70, Math.max(5, 30 + tentativa * 10)) * 1000;
586
- // Rede e 5xx voltam em segundos, não em minutos: 3, 6, 12, 20, 20…
587
- // Esperar meio minuto para um servidor que já voltou é a tela parada à toa.
588
- return Math.min(20, 3 * 2 ** Math.max(0, tentativa - 1)) * 1000;
589
- }
590
-
591
- /** Espera a vez no modelo — À VISTA, com os segundos, também no subagente.
592
- * Antes girava o spinner de "pensando" (e no subagente, nada): eram minutos
593
- * de tela parada que pareciam trava. "As coisas estão acontecendo, só não
594
- * estão sendo mostradas." Dizer que é a vez do modelo, sem alarme, é a
595
- * diferença entre esperar e desistir. */
596
- /* PRIMOCODE_TRACO=1: uma linha por ida ao modelo no stderr — o tamanho da
597
- conversa, o erro e a espera. É o que diz ONDE uma tarefa travou quando a
598
- tela (ou um log sem terminal) só mostra o último arquivo escrito. */
599
- function traco(texto) {
600
- if (process.env.PRIMOCODE_TRACO === '1') process.stderr.write(` [traço ${new Date().toTimeString().slice(0, 8)}] ${texto}\n`);
601
- }
602
-
603
- async function pausar(ms, subagent) {
604
- traco(`esperando ${Math.round(ms / 1000)}s pela vez no modelo${subagent ? ' (agente)' : ''}`);
605
- const sp = new Spinner(subagent ? 'o agente espera a vez no modelo' : 'esperando a vez no modelo').start();
606
- await new Promise((r) => setTimeout(r, ms));
607
- if (sp) sp.stop();
608
- tempos.somar('espera de cota/rede', ms);
609
- }
610
-
611
- /**
612
- * O modelo devolveu TEXTO, sem tool e sem finish. Isso é resposta — ou é o
613
- * agente parando no meio para narrar o que ia fazer?
614
- *
615
- * Reclamação do dono: "ele tá parando sem concluir, ele deve continuar até o
616
- * fim". Medido: o modelo escreve "Agora vou criar o vídeo com as cenas…" e
617
- * para, porque texto sem tool encerra a rodada. Quem lê vê uma promessa no
618
- * lugar da entrega. Três sinais dizem que foi parada, não resposta:
619
- *
620
- * 1. Há um plano (write_todos) com item por fazer — ele mesmo disse que
621
- * não acabou.
622
- * 2. O texto é INTENÇÃO: anuncia o próximo passo ("vou", "em seguida",
623
- * "próximo passo"), ou termina em dois-pontos e reticências.
624
- * 3. É curto. Uma resposta de verdade a "explique este erro" tem corpo; um
625
- * "vou abrir o arquivo agora" não tem.
626
- *
627
- * Pergunta ao usuário NÃO conta como parada: o prompt proíbe perguntar, mas
628
- * se o modelo perguntou, empurrá-lo faria ele decidir sozinho o que talvez
629
- * não devesse.
630
- */
631
- const INTENCAO = /(^|[.!,;\n]\s*)(agora\s+)?(vou|irei|deixa eu|deixe-me|preciso (agora )?(de )?(criar|ler|abrir|rodar|ver|conferir|pesquisar|mandar|fazer|gerar|escrever)|primeiro (vou|eu)|em seguida|pr[óo]ximo passo|a seguir,?\s+(vou|eu)|vamos (criar|ler|abrir|rodar|ver|conferir|come[çc]ar|fazer|gerar|escrever))\b/i;
632
- /* o mesmo em inglês: a trava de idioma responde na língua do pedido, e "Now I'll update the tests." parava a tarefa calado */
633
- const INTENCAO_EN = /(^|[.!,;\n]\s*)(now,?\s+|next,?\s+|first,?\s+|then,?\s+)?(i'll|i will|i'm going to|i am going to|i need to|let me|let's|we'll|we will|next step)\b/i;
634
- function pareceParadaNoMeio(texto, { todosPendentes = 0, rodouTool = false } = {}) {
635
- const t = String(texto || '').trim();
636
- if (!t) return false;
637
- if (todosPendentes > 0) return true;
638
- if (t.length > 700) return false; // resposta com corpo
639
- if (/\?\s*$/.test(t)) return false; // perguntou: não é parada
640
- if (INTENCAO.test(t) || INTENCAO_EN.test(t)) return true;
641
- if (rodouTool && /[:…]\s*$|\.\.\.\s*$/.test(t)) return true; // "Criando as cenas:" e nada depois
642
- return false;
643
- }
644
-
645
- /** O recado do plano com passo aberto (o "pronto" com "0/1 concluídas"). Puro. */
646
- function recadoDoPlanoAberto(abertos) {
647
- const lista = abertos.map((t) => `"${t.content}"`).join('; ');
648
- return `o seu plano ainda tem ${abertos.length} passo(s) aberto(s): ${lista}. `
649
- + 'Termine esses passos e marque como feitos (write_todos). Se algum não dá pra fazer, '
650
- + 'diga claramente o que falta e por quê, e finalize.';
651
- }
652
-
653
- /* O recado da troca de rota: não repete o que já tentou, quebra o que falta
654
- em pedaços e faz o primeiro. Quem divide a tarefa é o agente, não a pessoa. */
655
- const TROCA_DE_ROTA = 'Você ficou três voltas sem conseguir rodar nada, repetindo chamadas que já tinha feito. '
656
- + 'Não repita nenhuma delas. Olhe o que já está pronto na conversa, divida o que falta em passos pequenos '
657
- + '(write_todos) e faça AGORA o primeiro passo, por um caminho diferente: outra ferramenta, outro arquivo, '
658
- + 'outro comando. Se não houver caminho, chame finish e diga em uma frase o que impediu.';
659
-
660
- function motivoDaParada({ voltas, voltasEmFalso, falhasPendentes, travou, teto = MAX_ITERATIONS }) {
661
- if (falhasPendentes.length) {
662
- return `Parei sem concluir. A última falha foi: ${falhasPendentes[falhasPendentes.length - 1].texto}`;
663
- }
664
- if (travou) {
665
- return 'Fiquei preso: tentei dois caminhos e os dois voltaram ao mesmo lugar, então parei antes de gastar sua cota à toa. '
666
- + 'O que já fiz está salvo. Diga "continua" que eu retomo daqui.';
667
- }
668
- if (voltas >= teto) {
669
- const emFalso = voltasEmFalso
670
- ? ` ${voltasEmFalso} ${voltasEmFalso === 1 ? 'chamada foi repetida' : 'chamadas foram repetidas'} e não rodaram de novo.`
671
- : '';
672
- return `Usei as ${teto} voltas deste pedido sem chegar ao fim.${emFalso}`
673
- + ' O que já fiz está salvo. Diga "continua" que eu retomo daqui.';
674
- }
675
- return 'Parei sem concluir e sem explicação do modelo. Diga "continua" que eu tento de novo daqui.';
676
- }
677
-
678
- /* ── O MAPA DO PROJETO ───────────────────────────────────────────────────
679
- * "Continua o jogo" num projeto de vinte arquivos: o agente começava às
680
- * cegas, gastava uma volta listando a pasta — ou, pior, escrevia um index.html
681
- * novo por cima do que existia. Agora ele recebe, junto da memória, a lista dos
682
- * arquivos do projeto (até 80, sem node_modules nem build), e sabe de saída
683
- * onde está cada coisa. Só em pasta de projeto: a raiz ~/primocode lista
684
- * outros projetos, não este. */
685
- const PULAR_NO_MAPA = new Set(['node_modules', '.git', 'dist', 'build', '.next', '.nuxt', 'out',
686
- '.cache', 'coverage', '__pycache__', '.venv', 'venv', '.turbo', '.vercel', '.idea', '.vscode']);
687
-
688
- function arquivosDoProjeto(dir, limite = 80) {
689
- const path = require('path');
690
- const fs = require('fs');
691
- if (!dir || path.resolve(dir) === path.resolve(cfg.ROOT_DIR)) return [];
692
- const achados = [];
693
- const andar = (atual, fundo) => {
694
- if (fundo > 4 || achados.length >= limite) return;
695
- let itens = [];
696
- try { itens = fs.readdirSync(atual, { withFileTypes: true }); } catch { return; }
697
- itens.sort((a, b) => (a.isDirectory() === b.isDirectory() ? a.name.localeCompare(b.name) : a.isDirectory() ? 1 : -1));
698
- for (const it of itens) {
699
- if (achados.length >= limite) return;
700
- if (PULAR_NO_MAPA.has(it.name) || (it.name.startsWith('.') && it.name !== '.env.example')) continue;
701
- const cheio = path.join(atual, it.name);
702
- if (it.isDirectory()) andar(cheio, fundo + 1);
703
- else if (it.name !== 'memory.md') achados.push(path.relative(dir, cheio));
704
- }
705
- };
706
- andar(dir, 0);
707
- return achados;
708
- }
709
-
710
- function mapaDoProjeto(dir, limite = 80, achados = arquivosDoProjeto(dir, limite)) {
711
- if (!achados.length) return '';
712
- const mais = achados.length >= limite ? `\n… (mais arquivos — use glob para achar)` : '';
713
- return `Arquivos que JÁ existem neste projeto (edite-os em vez de recriar):\n${achados.join('\n')}${mais}`;
714
- }
715
-
716
- /* O comando de shell que só LÊ um arquivo — `cat x`, `sed -n '10,40p' x`,
717
- `head -50 x`, `tail x`, `nl x`, com ou sem `cd pasta &&` na frente. Medido
718
- num pedido de site (29/09): depois de escrever o script.js, o agente o
719
- releu em quatro fatias de `sed -n`, uma volta de modelo cada. Devolve o
720
- caminho lido (absoluto quando houve cd), ou null. */
721
- function leituraPeloShell(comando) {
722
- const m = /^\s*(?:cd\s+("[^"]+"|'[^']+'|\S+)\s*&&\s*)?(?:cat|nl|sed\s+-n\s+(?:'[^']*'|"[^"]*"|\S+)|head(?:\s+-n?\s*\d+)?|tail(?:\s+-n?\s*\d+)?)\s+("[^"]+"|'[^']+'|[^\s|;&><]+)\s*$/.exec(String(comando || ''));
723
- if (!m) return null;
724
- const tira = (x) => String(x || '').replace(/^["']|["']$/g, '');
725
- const arquivo = tira(m[2]);
726
- return m[1] ? require('path').resolve(tira(m[1]), arquivo) : arquivo;
727
- }
728
-
729
- /* ── O HISTÓRICO QUE VIAJA ─────────────────────────────────────────────
730
- * Vinte mensagens INTEIRAS iam em toda volta do agente principal. Medido em
731
- * 29/09: num pedido de site, 28 mil dos 38 mil caracteres da primeira ida
732
- * eram respostas de pedidos anteriores — sozinhas, acima do teto por minuto
733
- * do plano grátis. O que a conversa precisa para continuar é o fio (o que
734
- * foi pedido, o que ficou pronto), não o texto inteiro: cada mensagem entra
735
- * até um teto, e o total também, das mais novas para as mais velhas. */
736
- const HISTORICO_POR_MENSAGEM = 1200;
737
- const HISTORICO_TOTAL = 6000;
738
- function historicoEnxuto(history) {
739
- const fora = [];
740
- let total = 0;
741
- for (const m of (history || []).slice(-20).reverse()) {
742
- if (!m || !m.role || !m.content) continue;
743
- let t = String(m.content);
744
- if (t.length > HISTORICO_POR_MENSAGEM) t = t.slice(0, HISTORICO_POR_MENSAGEM) + '…(encurtado)';
745
- if (total + t.length > HISTORICO_TOTAL && fora.length) break;
746
- total += t.length;
747
- fora.unshift({ role: m.role, content: t });
748
- }
749
- // A API quer a conversa começando pelo usuário.
750
- while (fora.length && fora[0].role !== 'user') fora.shift();
751
- return fora;
752
- }
753
-
754
- /* ── O RITMO ─────────────────────────────────────────────────────────
755
- * "A potência não deve vir do modelo, deve vir do sistema." O prompt do
756
- * servidor manda "leia antes de editar" e "confira antes de dizer que
757
- * terminou" — certo para editar código dos outros, e a receita do laço
758
- * quando o arquivo foi ele mesmo que escreveu um minuto antes. Estas regras
759
- * vêm do que o opencode e o Codex põem nos prompts deles para o modelo não
760
- * reler o que fez; entram em TODO pedido, curtas, porque o plano conta token.
761
- * A conferência de verdade é nossa (a página aberta no Chrome escondido). */
762
- /* MCP primeiro, mouse por último: vale no modo local e no subagente, que não
763
- recebem o prompt do servidor. */
764
- const FERRAMENTA_CERTA = '- FERRAMENTA CERTA: para agir num serviço ou app, use primeiro um MCP (veja [mcp]). '
765
- + 'Sem MCP: mcp_procurar → mcp_conectar → mcp_usar. Mouse/desktop_* só quando não houver MCP, API ou CLI.';
766
-
767
- const RITMO = '[ritmo]\n'
768
- + '- O resultado de write_file/edit_file é a verdade. Não releia um arquivo que você acabou de escrever para conferir (nem com cat/sed/head): a conferência é do PrimoCode.\n'
769
- + '- Várias ações independentes vão na MESMA resposta (ex.: escrever index.html, style.css e script.js juntos).\n'
770
- + '- Leia um arquivo inteiro uma vez, não em pedaços pequenos; não leia de novo o que não mudou.\n'
771
- + '- PERGUNTAR (ferramenta perguntar) só quando está BLOQUEADO: duas saídas razoáveis e errar custa caro. Pergunta de educação gasta a vez da pessoa; escolha e siga.\n'
772
- + '- Não narre o próximo passo: faça. Termine com finish("o que foi feito").\n'
773
- + '- VOCÊ DECIDE O CAMINHO. Pedido simples: faça direto. Pedido grande com partes independentes: write_todos com as partes, '
774
- + 'depois spawn_agent — um por parte, até 8 NA MESMA resposta (rodam juntos), cada um com o especialista e tudo que ele precisa saber. '
775
- + 'Cada um volta com uma ENTREGA: confira; o que falhou volta para conserto; a parte que depende de outra recebe a entrega dela no prompt.\n'
776
- + '- Antes de dizer pronto, PROVE: rode o teste ou o comando, abra o resultado, olhe a imagem. Sem prova, não está pronto.\n'
777
- + FERRAMENTA_CERTA;
778
-
779
- /* O ritmo do subagente: o mesmo, sem a parte de orquestrar (ele não abre outro agente). */
780
- const RITMO_AGENTE = '[ritmo]\n'
781
- + '- O resultado de write_file/edit_file é a verdade. Não releia o que acabou de escrever.\n'
782
- + '- Leia um arquivo INTEIRO uma vez (read_file sem offset). Não leia aos pedaços, não leia de novo o que não mudou.\n'
783
- + '- Várias ações independentes na MESMA resposta.\n'
784
- + '- Faça o que a sua parte pede, prove (teste ou comando) e chame finish. Polimento além do pedido não é sua parte.\n'
785
- + FERRAMENTA_CERTA;
786
-
787
- /* `pedido` é opcional: com ele, o arquivo citado no pedido é o primeiro a
788
- entrar já lido (ver lib/pre-leitura.js). */
789
- /** O agente quer o editor de gravação (`primocode video`) num pedido que não é editar gravação? Puro. */
790
- function videoForaDeEdicao(nome, args, ehEdicao) {
791
- return nome === 'run_shell' && !ehEdicao && /^\s*(?:cd\s+\S+\s*&&\s*)?(?:npx\s+)?primocode\s+video\b/.test(String((args || {}).command || ''));
792
- }
793
-
794
- function buildMemoryContext(projectDir, projectName, pedido = '', { memoriaDaPasta = true } = {}) {
795
- const parts = [];
796
- /* NO SERVIDOR O CONTEXTO É CURTO (13/10: "continua lendo e listando
797
- coisas desnecessárias"). O plano grátis guarda ~1.900 tokens de
798
- conversa; 3.400 de contexto fixo empurravam para fora o que o modelo
799
- acabou de ler, e ele lia de novo. Com provedor próprio (/api) nada muda. */
800
- let proprio = false;
801
- try { proprio = !!require('./local/provedor.js').atual(); } catch { /* sem provedor próprio */ }
802
- const curto = (t) => (proprio || t.length <= 1500 ? t : '…' + t.slice(-1500));
803
- // As instruções vêm primeiro: são regra de quem manda no projeto, e a
804
- // memória é o que o agente anotou. Entram aqui (e não no bin) para valer
805
- // igual no terminal, no modo voz e em cada passo de um plano.
806
- const instrucoes = require('./mencoes.js').instrucoesDoProjeto(projectDir);
807
- if (instrucoes) parts.push(instrucoes);
808
- /* A conversa das sessões anteriores NESTA pasta (lib/agents-md.js). É o
809
- que faz a sessão de amanhã começar de onde a de hoje parou. Quando o
810
- resumo da conversa já a carrega (`memoriaDaPasta: false`, quem sabe é o
811
- bin), ela não vem de novo. */
812
- if (memoriaDaPasta) {
813
- const daPasta = require('./agents-md.js').ler(projectDir);
814
- if (daPasta) parts.push(`[AGENTS.md — memória desta pasta: de onde a conversa parou]\n${curto(daPasta)}`);
815
- }
816
- // A memória entre sessões (lib/memoria-usuario.js): a instrução e o índice; no servidor, só as 25 primeiras.
817
- try { parts.push(require('./memoria-usuario.js').blocoDoContexto(undefined, { linhas: proprio ? undefined : 25 })); } catch { /* memória é conveniência */ }
818
- const geral = cfg.readGeneralMemory();
819
- if (geral.trim()) parts.push(`[memory-geral.md]\n${curto(geral)}`);
820
- const projeto = cfg.readProjectMemory(projectDir);
821
- if (projeto.trim()) parts.push(`[${projectName || 'projeto'}/memory.md]\n${curto(projeto)}`);
822
- const arquivos = arquivosDoProjeto(projectDir);
823
- const mapa = mapaDoProjeto(projectDir, proprio ? 80 : 30, arquivos);
824
- if (mapa) parts.push(`[${projectName || 'projeto'}/arquivos]\n${mapa}\n\n${preLeitura.JUNTAR_LEITURAS}`);
825
- const lidos = preLeitura.bloco(preLeitura.escolher(projectDir, arquivos, pedido));
826
- if (lidos) parts.push(lidos);
827
- parts.push(RITMO);
828
- // Mastermind + Geral (lib/agentes): o núcleo sempre ligado; o resto o modelo busca (agentes_buscar, capacidade_buscar).
829
- try { parts.push(require('./agentes').nucleo()); } catch { /* sem núcleo, segue com o ritmo */ }
830
- // Os servidores MCP configurados, numa linha (lib/mcp.js).
831
- try { const m = require('./mcp.js').dica(projectDir); if (m) parts.push(m); } catch { /* sem mcp */ }
832
- // A equipe calada (lib/personas.js): o olhar do especialista que o pedido pede.
833
- const equipe = require('./personas.js').bloco(pedido);
834
- if (equipe) parts.push(equipe);
835
- return parts.join('\n\n');
836
- }
837
-
838
- /* O PLACAR (lib/placar.js): o PrimoCode aprende qual modelo grátis acerta mais em cada tipo de tarefa.
839
- Aqui ele (1) classifica o pedido, (2) sem modelo fixado, manda ao servidor o melhor modelo do apelido como
840
- DICA (`preferido`), e (3) no fim anota o desfecho. Só no agente principal e no servidor de verdade
841
- (motor injetado = teste = sem placar). Qualquer falha aqui é ignorada: o placar nunca atrapalha a tarefa. */
842
- let _vivos = { em: 0, dados: null };
843
- async function modelosVivos(server, token, alias) {
844
- if (!_vivos.dados || Date.now() - _vivos.em > 10 * 60 * 1000) {
845
- const h = await Promise.race([api.getHealth(server, token), new Promise((_, rej) => setTimeout(() => rej(new Error('lento')), 2500))]);
846
- _vivos = { em: Date.now(), dados: (h && (h.correntes_ativas || h.correntes)) || {} };
847
- }
848
- return _vivos.dados[alias] || [];
849
- }
850
-
851
- async function runAct(userPrompt, opts = {}) {
852
- if (opts.subagent || (opts.profundidade || 0) > 0 || (opts.motor && opts.motor !== api) || opts.sinais || process.env.PRIMOCODE_PLACAR === 'off') {
853
- return runActInterno(userPrompt, opts);
854
- }
855
- const P = require('./placar.js');
856
- const tipo = P.classificar(userPrompt);
857
- const sinais = { modelo: null, testes: null, diagSujo: false };
858
- let preferido = null;
859
- const fixado = /[\/:]/.test(String(opts.model || '')); // /model <id>: o placar não mexe
860
- if (!fixado) {
861
- try {
862
- const alias = ['fast', 'main', 'top'].includes(opts.model) ? opts.model : 'main';
863
- const dados = P.ler();
864
- const temDado = Object.values(dados.tipos[tipo] || {}).some((c) => (c.ganhos || 0) + (c.perdas || 0) >= P.MIN_AMOSTRAS);
865
- if (temDado) {
866
- const e = P.escolher(dados, tipo, await modelosVivos(opts.server, opts.token, alias));
867
- if (e) preferido = e.modelo;
868
- }
869
- } catch { /* sem dica: o servidor decide */ }
870
- }
871
- const r = await runActInterno(userPrompt, { ...opts, sinais, preferido });
872
- try { P.fechar(tipo, sinais, r && r.concluiu); } catch { /* anotar é conveniência */ }
873
- return r;
874
- }
875
-
876
- async function runActInterno(userPrompt, opts) {
877
- const {
878
- server, model, token, history, projectDir, projectName,
879
- sinais = null, preferido = null, // o placar (lib/placar.js): onde anotar o que aconteceu, e a dica de modelo
880
- ensureWorkDir, profundidade = 0, subagent = false, effort,
881
- /* A memória do AGENTS.md entra no contexto? O bin diz não quando o
882
- resumo da conversa já a dobrou (lib/memoria-conversa.js). */
883
- memoriaDaPasta = true,
884
- /* Quem troca a pasta de trabalho quando o modelo chama mudar_pasta:
885
- async ({ caminho, motivo }) → { ok, caminho, memoria?, error? }.
886
- Vem do bin, porque é lá que se PERGUNTA ao usuário — sem ele (pipe,
887
- subagente) a troca é recusada. */
888
- mudarPasta = null,
889
- /* Quem responde ao pedido de controle do computador, e o estado da
890
- resposta. Vêm de fora porque quem sabe perguntar é o terminal, e
891
- quem sabe lembrar é a SESSÃO — um subagente não pode começar do
892
- zero e pedir de novo o que já foi autorizado. */
893
- autorizar = null, controle = null,
894
- /* Quem mostra a pergunta com opções da ferramenta `perguntar` (terminal). Sem ele: 1ª opção + log. */
895
- escolher = null,
896
- /* O modo do /permissoes (auto · perguntar · livre). Vem da config pela
897
- CLI e desce para os subagentes pelo ctx: eles recusam o perigoso,
898
- mas só sabem que é "livre" se alguém disser. */
899
- permissoes = 'auto',
900
- /* O cliente HTTP, injetável. NÃO é mais um comutador de motor — o
901
- PrimoCode tem um motor só, o do servidor, e não há provedor para o
902
- usuário escolher. Continua um parâmetro porque é por aqui que o
903
- teste põe um servidor de mentira no lugar da rede: sem ele,
904
- `test/repeticao.js` e `test/continuar.js` teriam de falar com a
905
- internet para verificar o loop do agente. */
906
- motor = api,
907
- /* Instrução de FORMA que vai junto do pedido mas não É o pedido — a
908
- do modo voz ("responda em três frases faladas"). Ela chega ao
909
- modelo; a memória e o histórico guardam só o que a pessoa disse.
910
- Antes ela ia colada no texto, e a memória do projeto enchia de
911
- "[MODO VOZ] A sua resposta vai ser lida em voz alta…". */
912
- instrucao = '',
913
- /* Quem abre a página para conferir antes do "pronto". Injetável pelo
914
- mesmo motivo do `motor`: o teste mede a regra sem abrir um Chrome. */
915
- medirPagina = (dir) => require('./pipeline.js').medirNoNavegador(dir),
916
- /* Quem LIGA o navegador escondido antes da hora. Injetável pelo mesmo
917
- motivo do `medirPagina` — e só vale junto com o padrão dele: um
918
- teste que troca o medidor não pode subir um Chrome de verdade. */
919
- aquecerPagina = opts && opts.medirPagina ? null
920
- : () => require('./browser.js').aquecerRevisor(),
921
- /* Quem é este agente no livro de ações (auditoria.js). */
922
- rotulo = subagent ? 'subagente' : 'principal',
923
- } = opts || {};
924
-
925
- // A pasta de projeto só nasce quando o agente for mesmo MEXER EM ARQUIVO.
926
- // Antes ela nascia na primeira tool qualquer — pedir "abre o Chrome" criava
927
- // um projeto vazio, e ~/primocode enchia de pasta que não era projeto de
928
- // nada. Quem decide é o catálogo: `escreve: true`.
929
- let criarPasta = ensureWorkDir || null;
930
- let pastaAtual = projectDir; // onde as tools agem AGORA
931
- let estudioDaTarefa = null; // o projeto do Estúdio desta tarefa, se houver
932
- let temPasta = !criarPasta; // já é a pasta definitiva?
933
- /* Cria a pasta do projeto pendente, uma vez. Chamado antes de qualquer
934
- ferramenta que faz código (ver `criaProjeto` no catálogo) — e ANTES do
935
- subagente e do pipeline, que senão escreviam na raiz de ~/primocode. */
936
- const garantirPasta = () => {
937
- if (!criarPasta) return;
938
- const nova = criarPasta();
939
- if (nova) pastaAtual = nova;
940
- criarPasta = null;
941
- temPasta = true;
942
- };
943
- const falhasPendentes = [];
944
- let tentativasDeEncerrar = 0;
945
- // Portão de prova fresca (Gravitas, comum/desmontados/udaysharmadev-Gravitas.md): o
946
- // `finish` depois de editar código sem rodar nada depois volta UMA vez.
947
- const prova = novoPortaoDeProva();
948
- /* ── CONFERIR ANTES DE DIZER "PRONTO" ───────────────────────────────
949
- * Mexeu em página (html, css, js) nesta tarefa? Antes de aceitar o
950
- * `finish`, o PrimoCode abre a página num navegador invisível e olha: tela
951
- * em branco, erro de JavaScript, recurso que não carregou. Achou problema,
952
- * a tarefa volta para o agente com o relato — uma vez só, para não virar
953
- * laço. É a diferença entre "pronto!" e "pronto, e abre". */
954
- let mexeuNaPagina = false; // mexeu desde a última conferência?
955
- let conferencias = 0; // até duas: entregar, e conferir o conserto
956
- let avisoDaPagina = ''; // o que ainda estava quebrado na última
957
- let msConferindo = 0; // para o PRIMOCODE_TEMPOS separar as fases
958
- /* Abre a página e devolve o relato quando é para VOLTAR (achou problema e
959
- ainda cabe uma volta); null quando é para entregar. O que ficar
960
- quebrado na última conferência fica em `avisoDaPagina`, e a entrega sai
961
- com ele — nunca "pronto" seco sobre uma página com erro. Vale para os
962
- dois jeitos de terminar: a ferramenta finish e a resposta em texto. */
963
- const conferirPagina = async () => {
964
- if (subagent || !mexeuNaPagina || conferencias >= 2 || PARAR) return null;
965
- conferencias++;
966
- mexeuNaPagina = false;
967
- let medida = null;
968
- const t = Date.now();
969
- // Com spinner: eram segundos de tela parada entre o último arquivo e o
970
- // "pronto", e parecia que tinha travado ali.
971
- const sp = new Spinner('abrindo a página escondido para conferir').start();
972
- try {
973
- medida = await medirPagina(pastaAtual);
974
- } catch { medida = null; } finally { sp.stop(); }
975
- msConferindo += Date.now() - t;
976
- tempos.somar('conferir página', Date.now() - t);
977
- if (!medida || !medida.testou) return null;
978
- avisoDaPagina = medida.limpo ? ''
979
- : String(medida.relato || '').split('\n').filter((l) => /·|BRANCO/.test(l)).slice(0, 3).join(' ');
980
- if (medida.limpo) { fala.pensamento('a página abriu sem erro', profundidade); return null; }
981
- return conferencias >= 2 ? null : medida.relato;
982
- };
983
- /* ── RODAR OS TESTES ANTES DE DIZER "PRONTO" (lib/conferir.js) ──────
984
- * Mexeu em arquivo e a pasta tem como testar (npm test, pytest, cargo…)?
985
- * Antes de aceitar a entrega, roda. Passou: diz "funcionou" e marca o ponto
986
- * pro /voltar. Falhou: a tarefa volta pro agente uma vez, com a saída. Na
987
- * segunda, entrega dizendo que ainda falha. Prazo estourado não julga
988
- * nada. É a brecha 6 da pesquisa: ninguém testa sozinho pro iniciante. */
989
- let mexeuNoCodigo = false, rodadasDeTeste = 0, avisoDosTestes = '';
990
- let erroQueHavia = '', notaDoConserto = ''; // o que estava errado, pra entrega dizer (pesquisa 4: o iniciante quer saber)
991
- let avisouReserva = false; // uma vez por tarefa: o modelo de reserva respondeu
992
- /* A CHAVE NO CÓDIGO (lib/chave-exposta.js): os arquivos que a tarefa mexeu, olhados antes do "pronto". Achou,
993
- a tarefa volta pro agente uma vez; na segunda, a entrega sai dizendo onde está. */
994
- const arquivosDaTarefa = new Set();
995
- let conferiuChaves = 0, avisoDaChave = '';
996
- const conferirChaves = () => {
997
- if (subagent || !arquivosDaTarefa.size || conferiuChaves >= 2) return null;
998
- conferiuChaves++;
999
- const K = require('./chave-exposta.js');
1000
- const achados = K.procurar([...arquivosDaTarefa], { raiz: pastaAtual });
1001
- avisoDaChave = K.relato(achados);
1002
- if (!avisoDaChave) return null;
1003
- console.log(c.warn(` ⚠ ${avisoDaChave}`));
1004
- return conferiuChaves >= 2 ? null : `${avisoDaChave} Tire a chave do código: leia de um .env (process.env) ou do servidor, e ponha o .env no .gitignore.`;
1005
- };
1006
- const conferirTestes = async () => {
1007
- const C = require('./conferir.js');
1008
- if (!C.podeRodarSozinho({ subagent, mexeu: mexeuNoCodigo, rodadas: rodadasDeTeste, parar: PARAR, modo: perigo.normalizarModo(permissoes) })) return null;
1009
- const como = C.descobrir(pastaAtual);
1010
- if (!como) return null;
1011
- rodadasDeTeste++;
1012
- mexeuNoCodigo = false;
1013
- const t = Date.now();
1014
- const sp = new Spinner(`rodando ${como.rotulo} pra conferir`).start();
1015
- let r = null;
1016
- try { r = await C.rodar(como.comando, pastaAtual, { timeout: C.PRAZO_SOZINHO }); } catch { r = null; } finally { sp.stop(); }
1017
- tempos.somar('rodar os testes', Date.now() - t);
1018
- if (!r || r.estourou) { avisoDosTestes = ''; return null; }
1019
- if (sinais) sinais.testes = !!r.ok;
1020
- registro.anotarTeste(livro, { comando: como.comando, ok: r.ok, code: r.codigo, saida: r.saida });
1021
- const ex = C.explicar(r, como);
1022
- if (r.ok) {
1023
- avisoDosTestes = '';
1024
- if (erroQueHavia) notaDoConserto = `O que estava errado: os testes falhavam (${erroQueHavia}); depois do conserto, passaram.`;
1025
- console.log(c.ok(` ✓ ${ex.titulo}`) + c.dim(` (${como.comando})`));
1026
- try { checkpoint.marcarFuncionando(pastaAtual, `${como.comando}, pelo agente`); } catch { /* sem ponto pra marcar */ }
1027
- return null;
1028
- }
1029
- avisoDosTestes = `${ex.titulo} ${ex.linhas.slice(0, 2).join(' ')}`.trim();
1030
- // a frase que explica (a do Error:, se houver), não a do stack: é a que a pessoa entende
1031
- if (!erroQueHavia) erroQueHavia = String(ex.linhas.find((l) => /error|erro|assert|fail|falh/i.test(l)) || ex.linhas[0] || '').trim().slice(0, 140);
1032
- console.log(c.warn(` ✗ ${ex.titulo}`) + c.dim(` (${como.comando})`));
1033
- return rodadasDeTeste >= 2 ? null : `Rodei \`${como.comando}\` e falhou:\n${r.saida}`;
1034
- };
1035
- /* O ARQUIVO QUE O PEDIDO MANDA GRAVAR (lib/entregaveis.js): "grave o
1036
- PLANO.md" não termina como feito com o PLANO.md sem existir. Volta uma
1037
- vez; na segunda, a entrega sai dizendo que o arquivo não existe. */
1038
- let cobrouArquivo = false, avisoDoArquivo = '';
1039
- const conferirEntregaveis = () => {
1040
- if (subagent || perigo.normalizarModo(permissoes) === 'plano') return null;
1041
- const falta = entregaveis.faltando(userPrompt, pastaAtual, arquivosDaTarefa);
1042
- avisoDoArquivo = falta.length ? `o pedido mandava gravar ${falta.join(', ')}, e ainda não existe.` : '';
1043
- if (!falta.length || cobrouArquivo) return null;
1044
- cobrouArquivo = true;
1045
- return entregaveis.recado(falta);
1046
- };
1047
- /* O PLANO COM PASSO ABERTO: o agente escreveu um plano (write_todos) e
1048
- disse "pronto" com passo por fazer ("0/1 concluídas"). Volta uma vez
1049
- pra terminar ou dizer o que falta e por quê; na segunda, a entrega sai
1050
- com os passos abertos. `todosDaTarefa` é lido na hora: é preenchido
1051
- mais abaixo, quando o write_todos roda. */
1052
- let cobrouPlano = false, avisoDoPlano = '';
1053
- const conferirPlano = () => {
1054
- if (subagent) return null;
1055
- const abertos = todosDaTarefa.filter((t) => t.status !== 'completed');
1056
- avisoDoPlano = abertos.length ? `o plano ficou com ${abertos.length} passo(s) aberto(s): ${abertos.map((t) => t.content).join('; ')}.` : '';
1057
- if (!abertos.length || cobrouPlano) return null;
1058
- cobrouPlano = true;
1059
- return recadoDoPlanoAberto(abertos);
1060
- };
1061
- /* O RESUMO QUE DIZ TER MUDADO UM ARQUIVO INTACTO (lib/afirmacoes.js): volta uma vez; na segunda, a entrega avisa. */
1062
- const inicioDaTarefa = Date.now();
1063
- let cobrouAfirmacao = false, avisoDaAfirmacao = '';
1064
- const conferirAfirmacoes = (resumo) => {
1065
- if (subagent) return null;
1066
- const A = require('./afirmacoes.js');
1067
- const falsos = A.semMudanca(resumo, { tocados: arquivosDaTarefa, pasta: pastaAtual, desde: inicioDaTarefa });
1068
- const semProva = A.testeSemProva(resumo, (livro && livro.testes) || []);
1069
- const partes = [];
1070
- if (falsos.length) partes.push(`o resumo diz que mudou ${falsos.join(', ')}, mas nesta tarefa nada foi escrito ${falsos.length > 1 ? 'neles' : 'nele'}`);
1071
- if (semProva) partes.push(`o resumo diz que o teste passou, mas ${semProva}`);
1072
- avisoDaAfirmacao = partes.length ? `${partes.join('; ')}.` : '';
1073
- if (!partes.length || cobrouAfirmacao) return null;
1074
- cobrouAfirmacao = true;
1075
- const pedidos = [];
1076
- if (falsos.length) pedidos.push(`você disse que mudou ${falsos.join(', ')}, mas nesta tarefa nada foi escrito ${falsos.length > 1 ? 'neles' : 'nele'}: faça a mudança agora (edit_file/write_file) ou corrija o resumo`);
1077
- if (semProva) pedidos.push(`você disse que o teste passou, mas ${semProva}: rode o teste agora e leia o resultado, ou tire isso do resumo`);
1078
- return `${pedidos.join('; e ')}.`;
1079
- };
1080
- const comAviso = (texto) => {
1081
- let t = avisoDaPagina ? `${texto}\n\nAtenção: abri a página e ela ainda tem problema — ${avisoDaPagina.trim()}` : texto;
1082
- if (avisoDosTestes) t += `\n\nAtenção: rodei os testes e eles ainda falham — ${avisoDosTestes}`;
1083
- if (avisoDaChave) t += `\n\nAtenção: ${avisoDaChave}`;
1084
- if (avisoDoArquivo) t += `\n\nAtenção: ${avisoDoArquivo}`;
1085
- if (avisoDoPlano) t += `\n\nAtenção: ${avisoDoPlano}`;
1086
- if (avisoDaAfirmacao) t += `\n\nAtenção: ${avisoDaAfirmacao}`;
1087
- if (notaDoConserto && !avisoDosTestes) t += `\n\n${notaDoConserto}`;
1088
- return t;
1089
- };
1090
- // Quem já foi chamado, e quantas vezes. Ver lib/repeticao.js.
1091
- const jaChamado = repeticao.novo();
1092
- /* Andando em círculo? (lib/travado.js — o subagente de 01/10 que releu o
1093
- mesmo arquivo por uma hora). Empurra uma vez; na segunda, para. */
1094
- const circulo = travado.novo();
1095
- let paradoPorTravar = null;
1096
- /* Anota ANTES de agir (lib/auditoria.js): recusado também fica no livro. */
1097
- const anotar = (tc, decisao, motivo) => {
1098
- if (decisao !== 'recusada' && decisao !== 'negada') require('./voz-ponte').ferramenta(tc.name, tc.arguments);
1099
- const id = auditoria.antes({ agente: rotulo, ferramenta: tc.name, args: tc.arguments, decisao, motivo });
1100
- const falhou = auditoria.problema();
1101
- if (falhou) console.log(c.warn(`⚠ ${falhou}`));
1102
- return id;
1103
- };
1104
- // O que read_file/list_dir devolveram, pela chave da época (repeticao.js).
1105
- const leiturasGuardadas = new Map();
1106
- // O que ELE escreveu inteiro nesta tarefa, por caminho absoluto — para
1107
- // não gastar uma volta relendo o próprio texto (ver read_file abaixo).
1108
- const escritosNaTarefa = new Map();
1109
- /* O livro deste pedido: arquivos, comandos, links, testes e falhas. Sai
1110
- no fim como balanço (ver lib/registro.js). O subagente tem o seu, que
1111
- não se mistura com o do principal — mas o que ele fez também precisa
1112
- aparecer, então o de cima incorpora o de baixo no retorno. */
1113
- const livro = registro.novo();
1114
- /* A autorização do computador vale pela SESSÃO, então o estado vem de
1115
- fora. Um subagente que criasse o seu perguntaria de novo o que já foi
1116
- respondido — e uma pergunta repetida é uma pergunta que se responde
1117
- sem ler. Sem ninguém de fora (teste, pipe), nasce um aqui, que começa
1118
- fechado. */
1119
- const portaoControle = controle || permissao.novo();
1120
-
1121
- /* AS SKILLS entram na frente do pedido, e só as que casam com ele.
1122
- *
1123
- * No pedido principal, não no subagente: o subagente já recebe o briefing
1124
- * do especialista dele, e empilhar os dois gastaria o teto de tokens
1125
- * duas vezes para dizer coisas parecidas.
1126
- *
1127
- * O que decide quais entram é o `quando:` de cada skill — ver
1128
- * lib/skills.js, que também explica por que mandar todas em todo pedido
1129
- * não é uma opção num plano limitado por token. */
1130
- let pedido = userPrompt;
1131
- /* Editar a GRAVAÇÃO da pessoa? Decide pelo que ELA escreveu (userPrompt),
1132
- não pelo `pedido` já com skills e instruções na frente: uma skill com
1133
- "editar… o vídeo" no corpo bastava para virar edição. */
1134
- const ehEdicaoDaGravacao = require('./estudio/diretor.js').precisaDeEdicao(userPrompt);
1135
- if (!subagent) {
1136
- const comSkills = skills.cardapio(userPrompt);
1137
- pedido = comSkills.texto;
1138
- /* O menu de comandos (lib/nomes.js): "põe no ar" sem barra nenhuma e o
1139
- agente aponta o /ship. A IA decide pelo "quando" de cada um; nenhum
1140
- regex escolhe comando. Os .md da pessoa entram no fim do menu. */
1141
- let dela = [];
1142
- try { dela = require('./comandos.js').carregar({ projectDir }); } catch { /* disco estranho não trava o pedido */ }
1143
- pedido = `${require('./nomes.js').menuParaIA({ dela })}\n\n${pedido}`;
1144
- /* OS KITS DE ESTILO DE MOTION (lib/kits.js): um turno novo por pedido da pessoa (o `kit fazer` só
1145
- passa depois que ela respondeu ao cartão) e o menu dos kits. A IA escolhe o kit; o "parece motion"
1146
- só decide se vai o menu inteiro ou uma linha. */
1147
- try {
1148
- const kits = require('./kits.js');
1149
- kits.novoTurno();
1150
- const cabeca = kits.cabecaDoPedido(userPrompt, { projectDir });
1151
- // o vídeo esperando o sim vai colado na resposta da pessoa (é dela que a IA decide); o menu, na frente
1152
- if (cabeca && /^\[VÍDEO (ESPERANDO|SENDO MONTADO)/.test(cabeca) && pedido.endsWith(userPrompt)) pedido = `${pedido.slice(0, pedido.length - userPrompt.length)}${cabeca}\n\nRESPOSTA DA PESSOA: ${userPrompt}`;
1153
- else if (cabeca) pedido = `${cabeca}\n\n${pedido}`;
1154
- } catch { /* pacote sem kits: segue */ }
1155
- if (instrucao) pedido = `${instrucao}\n\nPEDIDO: ${pedido}`;
1156
- }
1157
- let voltasEmFalso = 0;
1158
- // Pesquisas que voltaram de mãos vazias. A partir da terceira, a tool
1159
- // para de rodar e devolve ORDEM DE SEGUIR: sem isto o agente entrava em
1160
- // ciclo — buscava, não achava, lia "tente outra consulta", buscava de
1161
- // novo — até a cota do minuto acabar e o modelo responder vazio. Foi
1162
- // assim que "crie um vídeo para a tostudy" morreu sem entregar nada.
1163
- let pesquisasSecas = 0;
1164
- let rodadasParadas = 0;
1165
- let trocouDeRota = false;
1166
- /* Para o `pareceParadaNoMeio`: se alguma tool já rodou nesta tarefa, e o
1167
- último plano que o modelo escreveu (write_todos) — desta TAREFA, não da
1168
- sessão: um plano velho, de um pedido interrompido, não pode empurrar o
1169
- pedido seguinte. */
1170
- let rodouTool = false;
1171
- let todosDaTarefa = [];
1172
- let empurroes = 0, empurroesDoKit = 0;
1173
- // As travas do fim (idioma, arquivo pedido, plano aberto): cada uma manda de volta UMA vez por pedido.
1174
- let pediuIdioma = false;
1175
-
1176
- const messages = [];
1177
- if (!subagent) {
1178
- const memory = buildMemoryContext(projectDir, projectName, userPrompt, { memoriaDaPasta });
1179
- if (memory) messages.push({ role: 'system', content: `Memória persistente:\n\n${memory}` });
1180
- for (const m of historicoEnxuto(history)) messages.push(m);
1181
- } else {
1182
- // O subagente também trabalha no ritmo: sem isto ele relia o mesmo arquivo aos pedaços.
1183
- messages.push({ role: 'system', content: RITMO_AGENTE });
1184
- }
1185
- /* O que VAI para o modelo é `pedido` (com as skills na frente); o que
1186
- fica guardado na memória e no histórico é `userPrompt`, o que a pessoa
1187
- escreveu. Guardar o texto inflado faria a conversa crescer com o mesmo
1188
- conhecimento repetido em cada turno. */
1189
- /* ── O GATILHO DO DIRETOR ────────────────────────────────────────────
1190
- *
1191
- * "A IA identifica que precisa criar vídeo, ativa o agente, esse agente
1192
- * faz a estrutura e manda pra IA, e depois ela só faz o vídeo."
1193
- *
1194
- * Deixar isso só escrito no catálogo não basta: com um pedido curto
1195
- * ("faz um vídeo do produto") o modelo pula direto para montar cena,
1196
- * porque montar cena é o que ele sabe fazer — e o roteiro, escrito no
1197
- * meio do JSON, vira legenda de slide. Quem reconhece o pedido é uma
1198
- * regra (diretor.precisaDeProducao), e ela entra como ORDEM na conversa,
1199
- * não como conselho perdido no meio de quarenta e sete ferramentas.
1200
- *
1201
- * Num subagente não entra: ele já está fazendo uma parte de um plano, e
1202
- * um diretor dentro do diretor é uma volta a mais para o mesmo lugar. */
1203
- if (!subagent && profundidade === 0) {
1204
- const diretor = require('./estudio/diretor.js');
1205
- // Vídeo que o Estúdio fez se edita no Remotion Studio, não no editor por linha do tempo.
1206
- const EDITAR_DO_ESTUDIO = 'SE ELA QUER EDITAR UM VÍDEO QUE O ESTÚDIO FEZ (não uma gravação dela): '
1207
- + 'estudio_projeto acao:"editar" com o id do projeto abre o Remotion Studio no navegador; diga a pasta a ela e pare.\n';
1208
- const EDICAO_COMPLETA = EDICAO_DE_VIDEO_FALADO;
1209
- const producao = diretor.precisaDeProducao(userPrompt);
1210
- if (ehEdicaoDaGravacao) {
1211
- /* A gravação da pessoa FALANDO: a edição completa é do motor do EDIT IA PRO
1212
- (lib/editor-pro.js), decisão do Joel em 20/10 depois de comparar os dois no
1213
- mesmo vídeo. O editor por linha do tempo (lib/video/) fica para as operações
1214
- soltas. Quem escolhe entre os dois é o modelo, pelo que a pessoa pediu. */
1215
- messages.push({ role: 'system', content: EDITAR_DO_ESTUDIO + EDICAO_COMPLETA
1216
- + 'SE ela pediu UMA operação solta na gravação (cortar um trecho, juntar, exportar, trocar o fundo, um efeito que segue a mão), use o editor por linha do tempo via run_shell: '
1217
- + 'SE A GRAVAÇÃO TRAZ PEDIDOS FALADOS ("separe em camadas", "me coloca numa praia"): `primocode video import --json \'{"path":"<arquivo>"}\'`, '
1218
- + 'depois `primocode video auto --json \'{}\'` (lê o que ela FALA na gravação e aplica cada efeito no momento em que diz), inspect, export e abra o mp4. '
1219
- + 'Nos outros casos: '
1220
- + 'rode `primocode video help` UMA vez (lista as operações), depois import → remove_silence/remove_words → add_captions → inspect (olhe o png) → export. '
1221
- + 'Cada edição devolve um delta curto e tem undo: edite sem pedir licença a cada passo.\n'
1222
- /* "deixar os vídeos cinematográficos… fazer um color grading sozinha" (13/10). */
1223
- + 'CINEMATOGRÁFICO: `primocode video grade --json \'{}\'` mede a imagem e faz o color grading de cinema sozinho (look:cinema|quente|noite|natural|pb, intensidade); use antes do export quando a pessoa quer o vídeo bonito, e OLHE o inspect.\n'
1224
- + 'EFEITOS que seguem a pessoa: separate_layers (recorte + momento 3D), replace_background (fundo novo no estalo), '
1225
- + 'attach_3d (logo 3D na mão, segue a mão), merge_on_join (mãos juntas → fusão → cérebro), cut_silence_at (silêncio depois do estalo), '
1226
- + 'style_captions (cor, legenda em cima da cabeça) — detalhe em `primocode video help efeitos`. Atalho: `primocode video do --json \'{"pedido":"<o pedido em português>"}\'`.' });
1227
- } else if (producao.producao) {
1228
- /* "SE ESTIVER NA SUA LISTA" não é hesitação — é a diferença entre
1229
- a tarefa seguir e a tarefa morrer.
1230
-
1231
- A primeira versão mandava chamar `planejar_producao` sem
1232
- ressalva. Só que quem declara as ferramentas ao modelo é o
1233
- SERVIDOR, e este texto é do cliente: com o servidor
1234
- desatualizado, o modelo obedecia a uma ordem para chamar algo
1235
- que não estava na lista dele, e o provedor recusava com
1236
- "attempted to call tool 'planejar_producao' which was not in
1237
- request.tools" — erro FATAL, em inglês, na cara do usuário, com
1238
- a tarefa perdida antes da primeira ação.
1239
-
1240
- Um modelo não chama tool fora da lista por conta própria. Só
1241
- chamou porque este parágrafo mandou. */
1242
- /* O caminho do ROTEIRO (lib/estudio/composicao.js). Antes esta
1243
- ordem mandava chamar o diretor e depois compor "cena a cena,
1244
- com as primitivas" — o modelo escrevia posição em pixel e o
1245
- vídeo saía quebrado, além de custar três ou quatro rodadas a
1246
- mais de modelo (medido em 25/09). */
1247
- /* A IA DECIDE (01/10): "pedi um roteiro de vídeo e ela já ia fazer o
1248
- motion". A regra só sabe que a palavra "vídeo" apareceu; quem sabe
1249
- se a pessoa quer o vídeo PRONTO ou só o roteiro, a ideia ou uma
1250
- resposta é o modelo. Então isto é o caminho SE for produzir, e não
1251
- mais uma ordem de produzir. */
1252
- messages.push({ role: 'system', content:
1253
- EDITAR_DO_ESTUDIO + EDICAO_COMPLETA + 'VOCÊ DECIDE o que entregar, pelo que a pessoa pediu: se ela quer só o roteiro, a ideia, um texto ou uma resposta, ESCREVA isso e pare — não produza vídeo. '
1254
- + `SE ela quer a peça pronta (formato "${producao.formato === 'apresentacao' ? 'slides' : 'video'}"), faça em três passos: `
1255
- + `estudio_projeto acao:"criar" com formato "${producao.formato === 'apresentacao' ? 'slides' : 'video'}" → `
1256
- + 'estudio_plano com "roteiro" (partes com tipo e fala; o PrimoCode faz layout, voz, ícones, música e sons) → '
1257
- + 'estudio_render. Se a peça for de uma marca de verdade, estudio_site antes, e use as cores e a logo em roteiro.marca. '
1258
- /* "todo vídeo começa igual" (09/10): o cardápio de estruturas e o
1259
- que os últimos vídeos usaram. O modelo escolhe; nada aqui força. */
1260
- + 'ANTES de escrever as partes, escolha a estrutura do roteiro e diga qual em roteiro.estrutura. '
1261
- + 'SE a pessoa pediu duas vozes, dois narradores ou diálogo: roteiro.vozes {nome: voz} e falante em cada parte.\n'
1262
- + diretor.cardapioEstruturas() + '\n'
1263
- + 'NÃO escreva cenas, elementos nem posições à mão. '
1264
- + 'Se estudio_plano não aceitar "roteiro" (servidor antigo), siga com as ferramentas que você tem. '
1265
- + 'Nunca chame uma ferramenta que não está na sua lista — a chamada é recusada e a tarefa se perde.' });
1266
- }
1267
- }
1268
-
1269
- /* "O app não abre": o `primocode porta` (lib/porta.js) sabe a porta de verdade, e o modelo decide se roda.
1270
- A regra só SUGERE (a palavra apareceu); sem ela, a linha não ocupa o pedido de quem não falou disso. */
1271
- if (!subagent && profundidade === 0 && require('./porta.js').PEDE_PORTA.test(userPrompt)) {
1272
- messages.push({ role: 'system', content: 'SE a pessoa diz que o app ou o site não abre no navegador: rode `primocode porta` pelo run_shell, na pasta do projeto. '
1273
- + 'Ele diz a porta que o projeto declara, a que está respondendo de verdade (com o título da página) e o endereço certo. Use isso na resposta; não adivinhe a porta.' });
1274
- }
1275
-
1276
- /* A LÍNGUA DO PEDIDO (lib/idioma.js): pedido em português, resposta em
1277
- português — mesmo quando as ferramentas devolvem inglês. */
1278
- if (!subagent) {
1279
- const linha = idioma.instrucao(userPrompt);
1280
- if (linha) messages.push({ role: 'system', content: linha });
1281
- }
1282
- messages.push({ role: 'user', content: pedido });
1283
-
1284
- let finalText = '';
1285
-
1286
- // Pedido novo zera o pedido de parada anterior.
1287
- if (!subagent) PARAR = false;
1288
-
1289
- // Quantas vezes já encolhemos por estouro de teto. Duas bastam: se depois
1290
- // disso ainda não couber, o problema é o custo fixo, e encolher de novo só
1291
- // apagaria o trabalho sem resolver.
1292
- let compactacoes = 0;
1293
- const MAX_COMPACTACOES = 2;
1294
-
1295
- // O provedor recusa chamada de função malformada com um 400 que dizia
1296
- // "Failed to call a function. Please adjust your prompt." NA CARA do
1297
- // usuário — que não tem prompt nenhum para ajustar. É o modelo tropeçando
1298
- // ao escrever o JSON da chamada, e quase sempre acerta na segunda.
1299
- let funcoesQuebradas = 0;
1300
- /* As ferramentas que o provedor recusou por não estarem na lista do
1301
- pedido. Guardadas para não entrar em laço: tira a instrução, tenta de
1302
- novo UMA vez, e se voltar a acontecer com a mesma ferramenta é porque a
1303
- causa é outra. */
1304
- const toolsRecusadas = new Set();
1305
- let respostasVazias = 0;
1306
- // O teto de tokens é POR MINUTO, somando TODAS as chamadas — o plano, o
1307
- // resumo e cada rodada do loop dividem a mesma cota. Um pedido perfeito
1308
- // estoura se a rodada anterior já gastou o minuto. Encolher não resolve
1309
- // isso (num caso real "encolheu" de 2 para 2 mensagens); esperar a janela
1310
- // virar, sim.
1311
- let esperas = 0;
1312
- // Ordem do dono: limite de token NUNCA mais encerra a tarefa. Ele espera
1313
- // o quanto precisar — Esc Esc continua sendo a saída na mão do usuário.
1314
- // 200 esperas de até 70s são horas: na prática, para quem não apertou
1315
- // Esc, é "espera até dar".
1316
- // O teste derruba para 2 via env; em produção são 200.
1317
- const MAX_ESPERAS = Number(process.env.PRIMOCODE_MAX_ESPERAS || 200);
1318
- // Rede e 5xx têm teto menor: seis esperas curtas (~1 min) e aí é o
1319
- // servidor que caiu de verdade, e a pessoa merece saber.
1320
- const MAX_ESPERAS_REDE = Number(process.env.PRIMOCODE_MAX_ESPERAS_REDE || 6);
1321
-
1322
- let voltas = 0;
1323
- const teto = subagent ? MAX_VOLTAS_AGENTE : MAX_ITERATIONS;
1324
- let avisouTeto = false;
1325
- if (!subagent) TRABALHANDO = true;
1326
- try {
1327
- /* O AGENTE TEM TETO PRÓPRIO. No teste da loja (01/10) o "fechar
1328
- pendências do painel" passou de 38 voltas lendo o mesmo app.js aos
1329
- pedaços — a conversa dele inchou para 45 mil caracteres e uma resposta
1330
- levou 22 minutos. Uma parte de um plano cabe em 20 voltas; na 15ª ele
1331
- é avisado para fechar, e no teto volta com a entrega do que fez. */
1332
- let ultimoModelo = null; let voltaDoResumo = -9; // lib/session/compactacao.js
1333
- for (let iteration = 0; iteration < teto && !PARAR; iteration++) {
1334
- voltas++;
1335
- if (subagent && !avisouTeto && voltas >= teto - 5) {
1336
- avisouTeto = true;
1337
- messages.push({ role: 'user', content: `Faltam ${teto - voltas + 1} voltas para o seu limite. Feche o essencial do que foi pedido agora, `
1338
- + 'prove (rode o teste ou o comando) e chame finish dizendo o que ficou de fora. Nada de polimento extra.' });
1339
- }
1340
- // Recado digitado durante o passo anterior entra AGORA, antes da ida
1341
- // ao modelo — o resultado das ferramentas já está na conversa.
1342
- if (!subagent) entregarRecados(messages, profundidade);
1343
- // Tarefa em segundo plano que acabou desde a última volta (lib/fundo.js): o modelo fica sabendo.
1344
- if (!subagent) for (const av of require('./fundo').pegarAvisos()) messages.push({ role: 'user', content: av.texto });
1345
- const sp = new Spinner(subagent ? 'subagente trabalhando' : PENSANDO).start();
1346
-
1347
- const toolCalls = [];
1348
- let assistantText = '';
1349
- let streamError = null;
1350
- let modeloDaVolta = null; // { modelo, reserva }: o servidor conta quem respondeu
1351
- // O texto do modelo NÃO sai letra a letra enquanto chega: fica guardado
1352
- // até o fim da rodada, porque só ali se sabe o que ele É. Vieram
1353
- // tool_calls junto? É PENSAMENTO ("o vídeo veio em .avi, vou
1354
- // converter") e sai recuado, em cinza, com ✦. Não veio tool nenhuma? É
1355
- // a RESPOSTA, e sai com ● na cor da marca. Antes tudo saía em branco
1356
- // no mesmo lugar, e "vou converter" e "pronto, converti" tinham a
1357
- // mesma cara. A exceção é texto longo: passou do limiar sem tool à
1358
- // vista, é resposta — e aí volta a correr na tela conforme chega.
1359
- let fluxo = null;
1360
-
1361
- emVoo = new AbortController();
1362
- const tRodada = Date.now();
1363
- try {
1364
- let folgado = false;
1365
- try { folgado = !!require('./local/provedor.js').atual(); } catch { /* sem provedor próprio */ }
1366
- /* RESUMO AUTOMÁTICO (lib/session/compactacao.js): passou de ~80% da janela do modelo → as voltas antigas viram
1367
- um resumo feito pelo modelo (objetivo, decisões, arquivos, to-dos). Só depois o compactar() encolhe o resto. */
1368
- if (voltas - voltaDoResumo >= 3) {
1369
- try {
1370
- const comp = require('./session/compactacao');
1371
- if (comp.precisaCompactar(messages, { janela: comp.janelaDe(ultimoModelo) })) {
1372
- voltaDoResumo = voltas;
1373
- const r = await comp.compactarMensagens(messages, {
1374
- todos: todosDaTarefa,
1375
- resumir: ({ resumo, mensagens }, todos) => comp.resumirComFatos({ resumo, mensagens },
1376
- (p) => motor.requestResumo(server, { ...p, token }).then((x) => x && x.resumo), todos),
1377
- });
1378
- if (r.ok) console.log(ident(profundidade) + c.dim(` ⎿ conversa passou de 80% da janela: ${r.resumidas} mensagens viraram resumo (${r.antes} → ${r.depois} tokens)`));
1379
- }
1380
- } catch { /* resumo é economia, não requisito */ }
1381
- }
1382
- const enviadas = compactar(messages, { folgado });
1383
- traco(`volta ${voltas}${subagent ? ' (agente)' : ''} · ${enviadas.length} mensagens · ${JSON.stringify(enviadas).length} caracteres`);
1384
- await motor.requestAct(server, { messages: enviadas, model, preferido: preferido || undefined, effort, token, projectDir: pastaAtual, projectName, subagent, sinal: emVoo.signal }, (evt) => {
1385
- if (evt.erro) { streamError = folgado ? evt.erro : erroDaCorrente(evt.erro); return; }
1386
- if (evt.modelo) { modeloDaVolta = evt; ultimoModelo = evt.modelo; if (sinais) sinais.modelo = evt.modelo; require('./statusline').registrarModelo(evt.modelo); return; }
1387
- if (evt.tool_call) {
1388
- toolCalls.push(evt.tool_call);
1389
- const a = evt.tool_call.arguments || {};
1390
- sp.detalhe = `${toolCalls.length} ${toolCalls.length > 1 ? 'ações prontas' : 'ação pronta'} · ${evt.tool_call.name}${a.path ? ' ' + a.path : ''}`;
1391
- return;
1392
- }
1393
- if (evt.delta) {
1394
- assistantText += evt.delta;
1395
- sp.detalhe = assistantText.length > 200 ? `${Math.round(assistantText.length / 100) / 10} mil caracteres` : '';
1396
- if (!subagent && !toolCalls.length) {
1397
- if (!fluxo && assistantText.length > fala.LIMIAR_PENSAMENTO) {
1398
- sp.stop();
1399
- fluxo = fala.fluxo();
1400
- fluxo.escrever(assistantText);
1401
- } else if (fluxo) fluxo.escrever(evt.delta);
1402
- }
1403
- }
1404
- if (evt.assistant_message) assistantText = evt.assistant_message.content || assistantText;
1405
- });
1406
- } catch (e) {
1407
- sp.stop();
1408
- emVoo = null;
1409
- traco(`erro na volta ${voltas}: ${String((e && e.message) || e).slice(0, 200)}`);
1410
- if (fluxo) fluxo.fechar();
1411
- // Estourou o minuto: encolhe o que já foi feito e CONTINUA, em vez
1412
- // de devolver erro e jogar fora o trabalho. O usuário não precisa
1413
- // saber que isso aconteceu — a tarefa é dele, o encanamento é
1414
- // nosso. E não sabe MESMO: nada disto vai para a tela; o spinner de
1415
- // pensar segue girando com as frases de sempre.
1416
- if (ehTetoDeToken(e) && !PARAR && messages.length > 8 && compactacoes < MAX_COMPACTACOES) {
1417
- compactacoes++;
1418
- encolherParaContinuar(messages);
1419
- iteration--; // esta volta não contou: nada foi decidido
1420
- continue;
1421
- }
1422
- if ((ehTetoDeToken(e) || ehTransitorio(e)) && !PARAR) {
1423
- const teto = ehTetoDeToken(e) ? MAX_ESPERAS : MAX_ESPERAS_REDE;
1424
- if (esperas < teto) {
1425
- esperas++;
1426
- await pausar(esperaDoErro(e, esperas), subagent);
1427
- iteration--;
1428
- continue;
1429
- }
1430
- }
1431
- if (subagent) return { assistantMessage: { role: 'assistant', content: `Subagente falhou: ${fala.frase(e)}` } };
1432
- fala.problema(e);
1433
- throw e;
1434
- }
1435
- sp.stop();
1436
- emVoo = null;
1437
- if (!subagent && !avisouReserva && modeloDaVolta && modeloDaVolta.reserva) {
1438
- avisouReserva = true;
1439
- console.log(c.dim(` ⎿ ${linhaDaReserva(modeloDaVolta.modelo)}`));
1440
- }
1441
- traco(`volta ${voltas} voltou em ${Math.round((Date.now() - tRodada) / 1000)}s · ${toolCalls.map((t) => t.name).join(', ') || 'texto'}${streamError ? ' · erro: ' + String(streamError).slice(0, 160) : ''}`);
1442
- tempos.somar(subagent ? 'rodada do subagente' : 'rodada do modelo', Date.now() - tRodada);
1443
- if (PARAR) { if (fluxo) fluxo.fechar(); break; }
1444
-
1445
- // Chamada de função malformada: o modelo errou a SINTAXE da chamada,
1446
- // não a tarefa. Repetir a mesma rodada quase sempre resolve — e sem
1447
- // isto o 400 cru do provedor ("Failed to call a function. Please
1448
- // adjust your prompt.") caía na tela de quem não tem prompt nenhum
1449
- // para ajustar.
1450
- // "failed to parse tool call arguments" é a variante nova do mesmo
1451
- // tropeço: o provedor recusou o JSON que o MODELO gerou. Medido em
1452
- // produção num "crie um vídeo" — o documento grande saía torto e o
1453
- // erro cru parava a tarefa com a corrente inteira ainda de pé.
1454
- // Tudo o que é encanamento daqui para baixo acontece EM SILÊNCIO: o
1455
- // tropeço, o encolhimento, a espera. Antes cada um escrevia uma linha
1456
- // cinza ("o modelo tropeçou", "conversa encolhida (12 → 4)"), e quem
1457
- // lia via a máquina engasgando no meio do trabalho.
1458
- if (streamError && /failed to call a function|failed to parse tool call|failed_generation|tool_use_failed/i.test(String(streamError))
1459
- && funcoesQuebradas < 4 && !PARAR) {
1460
- funcoesQuebradas++;
1461
- if (fluxo) fluxo.fechar();
1462
- iteration--;
1463
- continue;
1464
- }
1465
-
1466
- /* FERRAMENTA FORA DA LISTA DO PEDIDO — recuperável, e antes não era.
1467
- O provedor recusa com "attempted to call tool 'X' which was not in
1468
- request.tools" e a rodada morria ali: erro cru em inglês, tarefa
1469
- perdida antes da primeira ação. Visto em produção num "crie um
1470
- vídeo para a Paris Group".
1471
-
1472
- Quem mandou chamar aquilo foi uma instrução NOSSA, de sistema (o
1473
- gatilho do diretor). Então a cura é tirar a instrução que cita a
1474
- ferramenta recusada e repetir a rodada: o modelo segue com o que
1475
- ele realmente tem, e a pessoa recebe o trabalho em vez de um erro.
1476
- Uma vez por ferramenta — insistindo, o problema é outro. */
1477
- const foraDaLista = streamError && String(streamError)
1478
- .match(/attempted to call tool '([^']+)' which was not in request\.tools/i);
1479
- if (foraDaLista && !PARAR && !toolsRecusadas.has(foraDaLista[1])) {
1480
- toolsRecusadas.add(foraDaLista[1]);
1481
- const nome = foraDaLista[1];
1482
- for (let i = messages.length - 1; i >= 0; i--) {
1483
- if (messages[i].role === 'system' && String(messages[i].content || '').includes(nome)) {
1484
- messages.splice(i, 1);
1485
- }
1486
- }
1487
- messages.push({ role: 'system', content:
1488
- `A ferramenta "${nome}" NÃO está disponível nesta sessão. Não a chame e não procure `
1489
- + 'equivalente com outro nome: siga a tarefa com as ferramentas da sua lista. '
1490
- + 'Se nenhuma delas servir para o que foi pedido, diga isso ao usuário em uma frase, '
1491
- + 'em vez de desistir sem explicar.' });
1492
- if (fluxo) fluxo.fechar();
1493
- iteration--;
1494
- continue;
1495
- }
1496
-
1497
- if (streamError && !PARAR && (ehTetoDeToken(streamError) || ehTransitorio(streamError))) {
1498
- if (fluxo) fluxo.fechar();
1499
- // Conversa longa: encolher resolve, porque o peso é o histórico.
1500
- if (ehTetoDeToken(streamError) && messages.length > 8 && compactacoes < MAX_COMPACTACOES) {
1501
- compactacoes++;
1502
- encolherParaContinuar(messages);
1503
- iteration--;
1504
- continue;
1505
- }
1506
- // Conversa curta: o peso é o MINUTO, não o histórico — as chamadas
1507
- // anteriores gastaram a cota. Espera a janela virar e repete. O
1508
- // 5xx e a rede caem no mesmo lugar, com o teto menor.
1509
- const teto = ehTetoDeToken(streamError) ? MAX_ESPERAS : MAX_ESPERAS_REDE;
1510
- if (esperas < teto) {
1511
- esperas++;
1512
- await pausar(esperaDoErro(streamError, esperas), subagent);
1513
- iteration--;
1514
- continue;
1515
- }
1516
- }
1517
-
1518
- if (streamError) {
1519
- if (fluxo) fluxo.fechar();
1520
- const amigavel = fala.frase(streamError);
1521
- if (subagent) return { assistantMessage: { role: 'assistant', content: `Subagente falhou: ${amigavel}` }, concluiu: false };
1522
- fala.problema(streamError);
1523
- // concluiu: false — o plano de passos não pode tratar um erro de
1524
- // provedor como resultado e passá-lo adiante como "fato".
1525
- return { assistantMessage: { role: 'assistant', content: amigavel }, concluiu: false };
1526
- }
1527
-
1528
- // Sem tool_calls: o modelo respondeu e acabou.
1529
- if (!toolCalls.length) {
1530
- finalText = assistantText.trim();
1531
- // Resposta VAZIA não é resposta: sem tool, sem texto e sem erro é
1532
- // o modelo grátis engasgando. Cair direto no "parei sem concluir"
1533
- // jogava a tarefa fora quando repetir a MESMA rodada quase sempre
1534
- // resolve — visto em produção no primeiro pedido de vídeo.
1535
- if (!finalText && respostasVazias < 3 && !PARAR) {
1536
- respostasVazias++;
1537
- // Repetir o MESMO contexto costuma produzir o mesmo vazio: se
1538
- // o turno anterior já engasgou, o que falta é um empurrão
1539
- // curto e concreto. A partir da segunda vez, entra um pedido
1540
- // explícito de fechamento — barato em tokens (é justamente
1541
- // quando a cota está no fim) e suficiente para o modelo
1542
- // escrever a resposta ou chamar finish.
1543
- if (respostasVazias >= 2) {
1544
- messages.push({
1545
- role: 'user',
1546
- content: 'Sua última resposta veio vazia. Não pesquise mais nem explique o processo: '
1547
- + 'faça agora a entrega pedida com o que você já tem e finalize.',
1548
- });
1549
- }
1550
- iteration--;
1551
- continue;
1552
- }
1553
- /* PAROU NO MEIO? Texto de intenção ("agora vou criar…") ou plano
1554
- com item aberto não é entrega. Em vez de encerrar, a tarefa
1555
- volta: "isso foi uma promessa — faça". Três empurrões; se
1556
- depois disso ele insistir em só falar, a resposta é dele. */
1557
- const pendentes = todosDaTarefa.filter((t) => t.status !== 'completed').length;
1558
- if (finalText && empurroes < MAX_EMPURROES && !PARAR
1559
- && pareceParadaNoMeio(finalText, { todosPendentes: pendentes, rodouTool })) {
1560
- empurroes++;
1561
- if (pendentes) cobrouPlano = true; // este empurrão já cobrou o plano aberto
1562
- if (!subagent) {
1563
- if (fluxo) fluxo.fechar();
1564
- else fala.pensamento(finalText, profundidade);
1565
- }
1566
- messages.push({ role: 'assistant', content: finalText });
1567
- messages.push({
1568
- role: 'user',
1569
- content: 'Isso foi uma intenção, não uma entrega: você parou no meio. Não narre o próximo '
1570
- + 'passo — CHAME a tool agora e siga até o fim'
1571
- + (pendentes ? `, o seu plano ainda tem ${pendentes} item(ns) por fazer` : '')
1572
- + '. Só pare quando tudo estiver feito, com finish("o que foi feito").',
1573
- });
1574
- finalText = '';
1575
- continue;
1576
- }
1577
- /* O VÍDEO DE KIT MONTADO PELA METADE: a pessoa pediu (ou confirmou) e o modelo parou falando com
1578
- batida vazia em motion/plano.json (E2E do Lume, 27/10: "Now I understand the structure…" e fim). Volta
1579
- com a batida que falta; duas vezes no máximo, e só se o pedido continua o vídeo. */
1580
- if (finalText && !subagent && !PARAR && empurroesDoKit < 2) {
1581
- let falta = [];
1582
- try { const K = require('./kits.js'); if (K.continuaVideo(userPrompt)) falta = K.batidasFaltando(pastaAtual); } catch { /* sem kits */ }
1583
- if (falta.length) {
1584
- empurroesDoKit++;
1585
- if (fluxo) fluxo.fechar(); else fala.pensamento(finalText, profundidade);
1586
- messages.push({ role: 'assistant', content: finalText });
1587
- messages.push({ role: 'user', content: `O vídeo ainda não está montado: faltam as batidas ${falta.join(', ')} em motion/plano.json. Não explique — mande agora a batida ${falta[0]}: run_shell "primocode kit batida ${falta[0]} --camadas '[…]'" (o formulário: "primocode kit batida ${falta[0]}"), e siga até o cartão (primocode kit plano).` });
1588
- finalText = '';
1589
- continue;
1590
- }
1591
- }
1592
- // Terminou falando, sem chamar finish: confere a página do mesmo jeito.
1593
- if (finalText) {
1594
- const relato = await conferirPagina();
1595
- if (relato) {
1596
- messages.push({ role: 'assistant', content: finalText });
1597
- messages.push({
1598
- role: 'user',
1599
- content: `AINDA NÃO. Abri a página para conferir e ela tem problema:\n${relato}\n\n`
1600
- + 'Conserte SÓ o que está apontado, com edit_file no arquivo do erro (leia só ele, se precisar), e finalize de novo.',
1601
- });
1602
- finalText = '';
1603
- continue;
1604
- }
1605
- const relatoDaChave = conferirChaves();
1606
- if (relatoDaChave) {
1607
- messages.push({ role: 'assistant', content: finalText });
1608
- messages.push({ role: 'user', content: `AINDA NÃO: ${relatoDaChave} Depois finalize de novo.` });
1609
- finalText = '';
1610
- continue;
1611
- }
1612
- const relatoDosTestes = await conferirTestes();
1613
- if (relatoDosTestes) {
1614
- messages.push({ role: 'assistant', content: finalText });
1615
- messages.push({ role: 'user', content: `AINDA NÃO. ${relatoDosTestes}\n\nAche a causa, conserte só o que quebrou e finalize de novo.` });
1616
- finalText = '';
1617
- continue;
1618
- }
1619
- const semArquivo = conferirEntregaveis();
1620
- if (semArquivo) {
1621
- if (fluxo) fluxo.fechar();
1622
- messages.push({ role: 'assistant', content: finalText });
1623
- messages.push({ role: 'user', content: `AINDA NÃO: ${semArquivo}` });
1624
- finalText = '';
1625
- continue;
1626
- }
1627
- const planoAberto = conferirPlano();
1628
- if (planoAberto) {
1629
- if (fluxo) fluxo.fechar();
1630
- messages.push({ role: 'assistant', content: finalText });
1631
- messages.push({ role: 'user', content: `AINDA NÃO: ${planoAberto}` });
1632
- finalText = '';
1633
- continue;
1634
- }
1635
- const troca = !subagent && !pediuIdioma && idioma.trocouDeIdioma(userPrompt, finalText);
1636
- if (troca) {
1637
- pediuIdioma = true;
1638
- if (fluxo) fluxo.fechar();
1639
- messages.push({ role: 'assistant', content: finalText });
1640
- messages.push({ role: 'user', content: `AINDA NÃO. ${troca} Responda só com o texto.` });
1641
- finalText = '';
1642
- continue;
1643
- }
1644
- finalText = comAviso(finalText);
1645
- }
1646
- if (!subagent) {
1647
- if (fluxo) fluxo.fechar();
1648
- else fala.resposta(finalText);
1649
- }
1650
- /* Ia terminar, mas chegou recado no meio: a tarefa não acaba com
1651
- a pessoa esperando resposta. A volta seguinte entrega o recado. */
1652
- if (!subagent && CAIXA.length && !PARAR) {
1653
- messages.push({ role: 'assistant', content: finalText });
1654
- finalText = '';
1655
- continue;
1656
- }
1657
- break;
1658
- }
1659
- respostasVazias = 0;
1660
-
1661
- // O que o modelo disse ANTES de agir é pensamento, e sai como tal.
1662
- if (!subagent) {
1663
- if (fluxo) fluxo.fechar();
1664
- else if (assistantText.trim()) fala.pensamento(assistantText, profundidade);
1665
- }
1666
-
1667
- // Registra o turno do assistente COM os tool_calls. A API exige que
1668
- // cada mensagem role:'tool' venha logo depois deste turno.
1669
- messages.push({
1670
- role: 'assistant',
1671
- content: assistantText || null,
1672
- tool_calls: toolCalls.map((tc) => ({
1673
- id: tc.id,
1674
- type: 'function',
1675
- function: { name: tc.name, arguments: JSON.stringify(tc.arguments || {}) },
1676
- })),
1677
- });
1678
-
1679
- let finished = null;
1680
- let algoRodou = false;
1681
- const tTools = Date.now();
1682
- const conferindoAntes = msConferindo;
1683
-
1684
- // ORQUESTRAÇÃO: subagentes da MESMA rodada rodam juntos. O modelo que
1685
- // pede "3 agentes, um por arquivo" esperava paralelismo e recebia uma
1686
- // fila — cada subagente só começava quando o anterior terminava, e a
1687
- // rodada custava a soma dos três. Agora as chamadas spawn_agent da
1688
- // rodada disparam de uma vez (Promise.all) e cada resultado volta na
1689
- // posição certa da conversa. Limite de 8 por rodada (era 4: o laço do
1690
- // Qwen despacha várias direções de uma vez); o excedente roda em série.
1691
- const spawns = toolCalls.filter((tc) => tc.name === 'spawn_agent');
1692
- const resultadosSpawn = new Map();
1693
- if (spawns.length && !PARAR) garantirPasta();
1694
- /* O plano decide quantos subagentes rodam JUNTOS (lib/limites.js; grátis e
1695
- Primo: um de cada vez, o resto continua em fila). Nunca recusa: só diz o porquê. */
1696
- const par = spawns.length > 1 ? await limites.paralelo() : null;
1697
- if (par) { const av = par.aviso(spawns.length); if (av && !avisouParalelo) { avisouParalelo = true; console.log(` ${av}`); } }
1698
- if (spawns.length > 1 && par.max > 1 && !PARAR) {
1699
- const juntos = spawns.slice(0, par.max);
1700
- fala.paralelo(juntos.length, profundidade);
1701
- const ids = juntos.map((tc) => anotar(tc, 'permitida'));
1702
- const rs = await Promise.all(juntos.map((tc) =>
1703
- runSubagent(tc.arguments || {}, {
1704
- server, model, token, projectDir: pastaAtual, projectName, profundidade, motor, permissoes,
1705
- }).catch((e) => `Subagente falhou: ${e && e.message}`)));
1706
- juntos.forEach((tc, i) => { resultadosSpawn.set(tc.id, rs[i]); auditoria.depois(ids[i], { ok: true }); });
1707
- }
1708
-
1709
- /* LEITURAS JUNTAS. O RITMO pede ao modelo para juntar as ações
1710
- independentes numa resposta só — e ele junta: três read_file, um
1711
- grep e uma pesquisa. Só que o laço abaixo rodava uma de cada vez, e
1712
- a rodada custava a soma. O que só LÊ (não muda arquivo, tela nem
1713
- conta) roda tudo de uma vez aqui; o laço usa o resultado pronto,
1714
- passando pelos mesmos freios de sempre (repetição, registro).
1715
- Só entra no lote o que o laço NÃO vai recusar: a releitura, a
1716
- mesma leitura duas vezes na resposta e a pesquisa depois de três
1717
- secas ficam de fora. Senão rodavam aqui e o livro anotava
1718
- "recusada" para o que já tinha rodado. */
1719
- const adiantadas = new Map();
1720
- const chavesDoLote = new Set();
1721
- const leituras = toolCalls.filter(ehLeitura).filter((tc) => {
1722
- if (tc.name === 'pesquisar_referencia' && pesquisasSecas >= 3) return false;
1723
- if (chamadaTorta.ehTorta(tc.arguments)) return false;
1724
- const { repetida, chave } = repeticao.espiar(jaChamado, tc.name, tc.arguments);
1725
- if (repetida || chavesDoLote.has(chave)) return false;
1726
- chavesDoLote.add(chave);
1727
- return true;
1728
- });
1729
- const idsAdiantados = new Map();
1730
- if (leituras.length > 1 && !PARAR) {
1731
- leituras.slice(0, 8).forEach((tc) => idsAdiantados.set(tc.id, anotar(tc, 'permitida')));
1732
- const rs = await Promise.all(leituras.slice(0, 8).map((tc) =>
1733
- tools.execute(tc.name, tc.arguments, { projectDir: pastaAtual, server, token, api })
1734
- .catch((e) => ({ ok: false, error: e && e.message }))));
1735
- leituras.slice(0, 8).forEach((tc, i) => adiantadas.set(tc.id, rs[i]));
1736
- traco(`${adiantadas.size} leituras em paralelo`);
1737
- }
1738
-
1739
- let motivoTravou = null;
1740
- for (const tc of toolCalls) {
1741
- /* O JSON da chamada veio quebrado (lib/chamada-torta.js): a
1742
- ferramenta não roda, e o modelo recebe o erro com os argumentos
1743
- crus para se corrigir — em vez de rodar com `{}` e repetir. */
1744
- if (chamadaTorta.ehTorta(tc.arguments)) {
1745
- anotar(tc, 'recusada', 'argumentos não são JSON válido');
1746
- messages.push({ role: 'tool', tool_call_id: tc.id, content: chamadaTorta.erroParaOModelo(tc.name, tc.arguments) });
1747
- continue;
1748
- }
1749
- if (PARAR) break;
1750
- prova.ver(tc);
1751
- if (tc.name === 'finish') {
1752
- // Os testes vêm ANTES do portão de prova: quando o PrimoCode sabe testar a pasta, ele mesmo
1753
- // roda, e isso é a prova. Sem isso, o portão mandava o agente rodar o que o PrimoCode já ia rodar.
1754
- const relatoDaChave = conferirChaves();
1755
- if (relatoDaChave) {
1756
- messages.push({ role: 'tool', tool_call_id: tc.id, content: `AINDA NÃO: ${relatoDaChave} Depois chame finish de novo.` });
1757
- continue;
1758
- }
1759
- const rodadasAntes = rodadasDeTeste;
1760
- const relatoDosTestes = await conferirTestes();
1761
- if (rodadasDeTeste > rodadasAntes) prova.rodouPorFora();
1762
- if (relatoDosTestes) {
1763
- messages.push({ role: 'tool', tool_call_id: tc.id, content: `AINDA NÃO. ${relatoDosTestes}\n\nAche a causa, conserte só o que quebrou e chame finish de novo.` });
1764
- continue;
1765
- }
1766
- const faltaProva = prova.barrar();
1767
- if (faltaProva) {
1768
- messages.push({ role: 'tool', tool_call_id: tc.id, content: faltaProva });
1769
- continue;
1770
- }
1771
- const relato = await conferirPagina();
1772
- if (relato) {
1773
- messages.push({
1774
- role: 'tool',
1775
- tool_call_id: tc.id,
1776
- content: `AINDA NÃO. Abri a página para conferir e ela tem problema:\n${relato}\n\n`
1777
- + 'Conserte (leia o arquivo antes de editar) e chame finish de novo.',
1778
- });
1779
- continue;
1780
- }
1781
- const semArquivo = conferirEntregaveis();
1782
- if (semArquivo) {
1783
- messages.push({ role: 'tool', tool_call_id: tc.id, content: `AINDA NÃO: ${semArquivo}` });
1784
- continue;
1785
- }
1786
- const planoAberto = conferirPlano();
1787
- if (planoAberto) {
1788
- messages.push({ role: 'tool', tool_call_id: tc.id, content: `AINDA NÃO: ${planoAberto}` });
1789
- continue;
1790
- }
1791
- const afirmou = conferirAfirmacoes((tc.arguments && tc.arguments.summary) || '');
1792
- if (afirmou) {
1793
- messages.push({ role: 'tool', tool_call_id: tc.id, content: `AINDA NÃO: ${afirmou}` });
1794
- continue;
1795
- }
1796
- const troca = !subagent && !pediuIdioma && idioma.trocouDeIdioma(userPrompt, (tc.arguments && tc.arguments.summary) || '');
1797
- if (troca) {
1798
- pediuIdioma = true;
1799
- messages.push({ role: 'tool', tool_call_id: tc.id, content: `AINDA NÃO. ${troca} Chame finish de novo com esse resumo.` });
1800
- continue;
1801
- }
1802
- }
1803
- if (tc.name === 'finish') {
1804
- // Encerrar com falha pendente é como o agente dizia "pronto!"
1805
- // sem ter mudado nada. Devolvemos a tarefa para ele.
1806
- if (falhasPendentes.length && tentativasDeEncerrar < 2) {
1807
- tentativasDeEncerrar++;
1808
- messages.push({
1809
- role: 'tool',
1810
- tool_call_id: tc.id,
1811
- content: `NÃO terminou. Estas tools falharam e você não corrigiu: ${falhasPendentes.map((f) => f.texto).join('; ')}. `
1812
- + 'Conserte agora com edit_file no arquivo que falhou ou, se for impossível, diga claramente ao usuário o que falhou.',
1813
- });
1814
- continue;
1815
- }
1816
- algoRodou = true;
1817
- finished = comAviso((tc.arguments && tc.arguments.summary) || 'Concluído.');
1818
- messages.push({ role: 'tool', tool_call_id: tc.id, content: 'ok' });
1819
- continue;
1820
- }
1821
-
1822
- /* TROCAR DE PASTA mora aqui, e não no tools.execute: ela muda
1823
- `pastaAtual`, que é deste laço, e precisa de quem PERGUNTA ao
1824
- usuário (o bin). Sem a resposta dele, não troca. */
1825
- if (tc.name === 'mudar_pasta') {
1826
- algoRodou = true;
1827
- fala.acao(tc.name, tc.arguments, profundidade);
1828
- const idA = anotar(tc, 'permitida');
1829
- const r = await require('./outra-pasta.js').pedirTroca(tc.arguments || {}, {
1830
- atual: pastaAtual, subagent, trocar: mudarPasta,
1831
- });
1832
- if (r.ok) {
1833
- pastaAtual = r.caminho;
1834
- criarPasta = null;
1835
- temPasta = true;
1836
- }
1837
- logResult(tc.name, r, profundidade);
1838
- auditoria.depois(idA, r);
1839
- repeticao.executou(jaChamado, tc.name, tc.arguments);
1840
- messages.push({ role: 'tool', tool_call_id: tc.id, content: JSON.stringify(r) });
1841
- continue;
1842
- }
1843
-
1844
- if (tc.name === 'spawn_agent') {
1845
- algoRodou = true;
1846
- const idA = resultadosSpawn.has(tc.id) ? null : anotar(tc, 'permitida');
1847
- const r = resultadosSpawn.has(tc.id)
1848
- ? resultadosSpawn.get(tc.id)
1849
- : await runSubagent(tc.arguments || {}, {
1850
- server, model, token, projectDir: pastaAtual, projectName, profundidade, motor, permissoes,
1851
- });
1852
- if (idA) auditoria.depois(idA, { ok: true });
1853
- repeticao.executou(jaChamado, tc.name, tc.arguments);
1854
- messages.push({ role: 'tool', tool_call_id: tc.id, content: r + lembreteDeParalelo(todosDaTarefa, spawns.length) });
1855
- continue;
1856
- }
1857
-
1858
- /* O DIRETOR mora aqui pela mesma razão: ele É uma conversa
1859
- nova, e quem sabe abrir conversa é este arquivo. */
1860
- if (tc.name === 'planejar_producao') {
1861
- algoRodou = true;
1862
- fala.acao(tc.name, tc.arguments, profundidade);
1863
- const idA = anotar(tc, 'permitida');
1864
- const r = await rodarDiretor(tc.arguments || {}, {
1865
- server, model, token, projectDir: pastaAtual, projectName, profundidade, motor, permissoes,
1866
- });
1867
- logResult(tc.name, r, profundidade);
1868
- auditoria.depois(idA, r);
1869
- messages.push({ role: 'tool', tool_call_id: tc.id, content: JSON.stringify(r) });
1870
- continue;
1871
- }
1872
-
1873
- /* O PIPELINE DE QUATRO PAPÉIS mora aqui pelo mesmo motivo que o
1874
- `spawn_agent`: ele PRECISA rodar agentes, e quem sabe rodar
1875
- agente é este arquivo. Pôr isto no `tools.execute` obrigaria
1876
- aquele módulo a conhecer o loop do agente — e um segundo lugar
1877
- que sabe abrir conversa com o modelo é um segundo lugar para
1878
- esquecer de passar o token ou a pasta. */
1879
- if (tc.name === 'construir_app') {
1880
- algoRodou = true;
1881
- garantirPasta();
1882
- fala.acao(tc.name, tc.arguments, profundidade);
1883
- const idA = anotar(tc, 'permitida');
1884
- const r = await rodarPipeline(tc.arguments || {}, {
1885
- server, model, token, projectDir: pastaAtual, projectName, profundidade, motor, permissoes, livro, autorizar, controle: portaoControle,
1886
- });
1887
- logResult(tc.name, r, profundidade);
1888
- auditoria.depois(idA, r);
1889
- repeticao.executou(jaChamado, tc.name, tc.arguments);
1890
- messages.push({ role: 'tool', tool_call_id: tc.id, content: JSON.stringify(r) });
1891
- if (r && r.ok && catalogo.escreveArquivo(tc.name)) temPasta = true;
1892
- continue;
1893
- }
1894
-
1895
- // Repetiu a mesma chamada? Não executa de novo. Rodar outra vez
1896
- // gastaria a cota para devolver exatamente o mesmo texto, e é
1897
- // esse texto que convence o modelo a repetir mais uma vez. Sem
1898
- // linha na tela: o freio é nosso, não do usuário — o modelo recebe
1899
- // o aviso e segue, e quem olha vê o trabalho continuar.
1900
- const eco = repeticao.ver(jaChamado, tc.name, tc.arguments);
1901
- if (eco.repetida) {
1902
- voltasEmFalso++;
1903
- anotar(tc, 'recusada', `repetida (${eco.vezes}ª vez) — não executou de novo`);
1904
- /* RELER SEM MUDANÇA devolve o que já foi lido, uma vez.
1905
- O aviso seco ("o resultado está na conversa acima") mentia
1906
- depois do `compactar`: a leitura velha já tinha virado 300
1907
- caracteres, e o modelo gastava OUTRA ida ao servidor para
1908
- achar o arquivo por outro caminho (um `cat`, um grep). Na
1909
- segunda vez vai o conteúdo guardado — ler de novo sem nada
1910
- mudar dá o mesmo texto, então não há o que executar. Da
1911
- terceira em diante é laço, e o freio segue como era. */
1912
- const guardado = eco.vezes === 2 && leiturasGuardadas.get(eco.chave);
1913
- messages.push({ role: 'tool', tool_call_id: tc.id, content: guardado
1914
- ? `(sem mudança desde a última leitura — é o mesmo conteúdo; não precisa ler de novo)\n${guardado}`
1915
- : eco.aviso });
1916
- continue;
1917
- }
1918
-
1919
- /* Só conta o que passou do freio de repetição: a chamada idêntica
1920
- já é barrada lá (e a rodada parada desiste sozinha). Aqui entra
1921
- o que escapa dele — a fatia sobreposta, a volta sem nada novo. */
1922
- /* VÍDEO SE FAZ NO ESTÚDIO (13/10). Pedida uma animação 3D, o modelo
1923
- do servidor rodou `primocode video do` e `primocode video help`
1924
- pelo shell cinco vezes até o freio parar — o editor por linha do
1925
- tempo é para a GRAVAÇÃO da pessoa, e as ferramentas do Estúdio
1926
- estavam ali. Fora de edição, a chamada volta com o caminho certo. */
1927
- if (videoForaDeEdicao(tc.name, tc.arguments, ehEdicaoDaGravacao)) {
1928
- anotar(tc, 'recusada', 'primocode video fora de edição de gravação');
1929
- messages.push({ role: 'tool', tool_call_id: tc.id, content: JSON.stringify({ ok: false,
1930
- error: '`primocode video` é só para editar uma GRAVAÇÃO da pessoa. Para criar vídeo, animação ou motion: '
1931
- + 'estudio_projeto acao:"criar" → estudio_plano com o roteiro → estudio_render.' }) });
1932
- continue;
1933
- }
1934
-
1935
- motivoTravou = motivoTravou || travado.observar(circulo, tc.name, tc.arguments, pastaAtual);
1936
-
1937
- if (criarPasta && catalogo.criaProjeto(tc.name, tc.arguments)) garantirPasta();
1938
-
1939
- /* RELER O QUE ACABOU DE ESCREVER. O modelo grátis escreve o
1940
- index.html e, na volta seguinte, pede para lê-lo "para
1941
- conferir" — uma ida ao servidor para receber o texto que ele
1942
- mesmo mandou, e que continua inteiro na chamada write_file dele
1943
- (o `compactar` só encolhe resultado de ferramenta, nunca o que
1944
- o modelo escreveu). Se o arquivo está byte a byte como ele
1945
- deixou, a resposta é essa, sem abrir nada. Depois de um
1946
- edit_file não vale: aí o texto na conversa está em pedaços. */
1947
- const relido = tc.name === 'read_file' && tc.arguments && tc.arguments.path
1948
- ? tc.arguments.path
1949
- : tc.name === 'run_shell' ? leituraPeloShell(tc.arguments && tc.arguments.command) : null;
1950
- if (relido && escritosNaTarefa.size) {
1951
- let igual = false;
1952
- try {
1953
- const abs = require('path').isAbsolute(relido) ? relido : tools.resolveInProject(relido, pastaAtual);
1954
- const e = escritosNaTarefa.get(abs);
1955
- // Só enquanto a escrita ainda viaja inteira na conversa
1956
- // (as duas últimas voltas — ver ESCRITAS_INTEIRAS).
1957
- igual = !!e && voltas - e.volta <= 1 && require('fs').readFileSync(abs, 'utf8') === e.texto;
1958
- } catch { igual = false; }
1959
- if (igual) {
1960
- fala.acao(tc.name, tc.arguments, profundidade);
1961
- console.log(fala.resultado(profundidade) + c.muted('igual ao que ele escreveu — não precisou ler'));
1962
- messages.push({ role: 'tool', tool_call_id: tc.id, content: JSON.stringify({
1963
- ok: true, igualAoQueVoceEscreveu: true,
1964
- aviso: 'Este arquivo está EXATAMENTE como você o escreveu nesta tarefa — o conteúdo é o da sua '
1965
- + 'chamada write_file acima. Não precisa ler. Para mudar, use edit_file direto; se terminou, siga.',
1966
- }) });
1967
- continue;
1968
- }
1969
- }
1970
-
1971
- if (tc.name === 'pesquisar_referencia' && pesquisasSecas >= 3) {
1972
- voltasEmFalso++;
1973
- anotar(tc, 'recusada', 'três pesquisas seguidas sem fonte');
1974
- messages.push({
1975
- role: 'tool',
1976
- tool_call_id: tc.id,
1977
- content: 'PARE DE PESQUISAR. Três buscas seguidas não trouxeram fonte nenhuma; '
1978
- + 'mais uma vai gastar a cota e devolver o mesmo nada. FAÇA AGORA a entrega '
1979
- + 'pedida com o que você já sabe. Se faltar um fato específico (número, data, '
1980
- + 'preço, nome de pessoa), NÃO invente: escreva a peça sem ele e avise o '
1981
- + 'usuário no final, em uma linha, o que não deu para confirmar.',
1982
- });
1983
- continue;
1984
- }
1985
-
1986
- /* O PORTÃO do controle do computador. Antes da ação, não depois:
1987
- depois é o ponteiro já tendo andado. Ler a tela não passa por
1988
- aqui — ver é o que ele precisa fazer para saber onde clicar. */
1989
- if (permissao.precisa(tc.name)) {
1990
- const porta = await permissao.pedir(portaoControle, tc.name, tc.arguments, autorizar);
1991
- if (!porta.ok) {
1992
- anotar(tc, 'recusada', porta.error);
1993
- fala.acao(tc.name, tc.arguments, profundidade);
1994
- console.log(fala.resultado(profundidade) + c.warn('não autorizado'));
1995
- registro.anotar(livro, tc.name, tc.arguments, { ok: false, error: porta.error });
1996
- messages.push({ role: 'tool', tool_call_id: tc.id, content: JSON.stringify({ ok: false, error: porta.error }) });
1997
- continue;
1998
- }
1999
- }
2000
-
2001
- /* O PORTÃO do que não tem volta (lib/perigo.js). No mesmo lugar do
2002
- portão do desktop e pelo mesmo motivo: antes, não depois. A
2003
- resposta mora no mesmo objeto da sessão — quem lembra é ela. */
2004
- if (!portaoControle.perigo) portaoControle.perigo = perigo.novo();
2005
- const risco = await perigo.portao(portaoControle.perigo, {
2006
- modo: permissoes, nome: tc.name, args: tc.arguments,
2007
- projectDir: pastaAtual, subagent, perguntar: autorizar,
2008
- });
2009
- if (!risco.ok) {
2010
- anotar(tc, 'recusada', risco.motivo || risco.error);
2011
- fala.acao(tc.name, tc.arguments, profundidade);
2012
- console.log(fala.resultado(profundidade) + c.warn(`não autorizado — ${risco.motivo}`));
2013
- registro.anotar(livro, tc.name, tc.arguments, { ok: false, error: risco.error });
2014
- messages.push({ role: 'tool', tool_call_id: tc.id, content: JSON.stringify({ ok: false, error: risco.error }) });
2015
- continue;
2016
- }
2017
-
2018
- /* Hook PreToolUse (lib/hooks.js): exit 2 bloqueia a ferramenta. */
2019
- const gancho = hooks.rodar('PreToolUse', { nome: tc.name, args: tc.arguments, projectDir: pastaAtual });
2020
- if (gancho.bloqueado) {
2021
- anotar(tc, 'recusada', gancho.motivo);
2022
- fala.acao(tc.name, tc.arguments, profundidade);
2023
- console.log(fala.resultado(profundidade) + c.warn(`bloqueado por hook — ${gancho.motivo.slice(0, 80)}`));
2024
- registro.anotar(livro, tc.name, tc.arguments, { ok: false, error: gancho.motivo });
2025
- messages.push({ role: 'tool', tool_call_id: tc.id, content: JSON.stringify({ ok: false, error: `Bloqueado por hook: ${gancho.motivo}` }) });
2026
- continue;
2027
- }
2028
-
2029
- /* Vai apagar dado do banco e a pessoa deixou (ou o modo livre deixa): copia o SQLite antes (lib/backup-banco.js).
2030
- O /undo devolve. Fica depois do portão de propósito: recusado não gera cópia. */
2031
- if (['run_shell', 'run_in_new_terminal', 'run_background'].includes(tc.name) && perigo.apagaBancoNoComando((tc.arguments || {}).command)) {
2032
- try {
2033
- const copia = require('./backup-banco.js').fazer(pastaAtual);
2034
- if (copia) console.log(c.ok(' ⎿ fiz uma cópia do banco antes') + c.dim(` (${copia.arquivos.join(', ')}) · /undo devolve`));
2035
- } catch { /* sem cópia o comando segue: ela é rede de segurança, não condição */ }
2036
- }
2037
-
2038
- algoRodou = true;
2039
- rodouTool = true;
2040
- fala.acao(tc.name, tc.arguments, profundidade);
2041
- /* Antes de mexer no arquivo, guarda o original — é o que o /desfazer
2042
- devolve. Caminho inválido não é problema nosso: a tool recusa. */
2043
- let antesDaEdicao = null, arquivoDaEdicao = null; // pro alarme do arquivo que encolheu (lib/encolheu.js)
2044
- if (checkpoint.MUDAM_ARQUIVO.has(tc.name)) {
2045
- mexeuNoCodigo = true; // o conferirTestes roda no fim da tarefa
2046
- try {
2047
- arquivoDaEdicao = tools.resolveInProject(tc.arguments && tc.arguments.path, pastaAtual);
2048
- arquivosDaTarefa.add(arquivoDaEdicao);
2049
- if (require('fs').statSync(arquivoDaEdicao).size < 2 * 1024 * 1024) antesDaEdicao = require('fs').readFileSync(arquivoDaEdicao, 'utf8');
2050
- } catch { antesDaEdicao = null; } // arquivo novo, ou caminho que a tool vai recusar
2051
- try { checkpoint.antesDeMudar(tools.resolveInProject(tc.arguments && tc.arguments.path, pastaAtual), pastaAtual); }
2052
- catch (e) {
2053
- // Caminho inválido a tool recusa sozinha. O resto (disco cheio, sem permissão)
2054
- // quer dizer que o /desfazer não vai devolver este arquivo: a pessoa tem que saber.
2055
- if (tc.arguments && tc.arguments.path) console.log(c.warn(` ⚠ não guardei o original de ${tc.arguments.path}: o /undo não vai voltar este arquivo (${e.message})`));
2056
- }
2057
- }
2058
- /* O servidor, o token e o cliente da API vão junto: a legenda do
2059
- estudio_video transcreve no servidor, e sem eles a ferramenta
2060
- respondia "a transcrição precisa do servidor". */
2061
- traco(`executando ${tc.name}`);
2062
- const idAcao = idsAdiantados.get(tc.id) || anotar(tc, 'permitida');
2063
- const result = adiantadas.has(tc.id) ? adiantadas.get(tc.id)
2064
- : await tools.execute(tc.name, tc.arguments, { projectDir: pastaAtual, server, token, api, escolher: subagent ? undefined : escolher });
2065
- auditoria.depois(idAcao, result);
2066
- if (sinais && result && result.ok && /^(write_file|edit_file|multi_edit)$/.test(tc.name)) sinais.diagSujo = !!result.diagnosticos; // diagnóstico depois da edição
2067
- if (antesDaEdicao != null && result && result.ok !== false) {
2068
- let depois = null;
2069
- try { depois = require('fs').readFileSync(arquivoDaEdicao, 'utf8'); } catch { depois = null; }
2070
- const encolheu = require('./encolheu.js').julgar(antesDaEdicao, depois);
2071
- if (encolheu) {
2072
- console.log(c.warn(` ⚠ ${tc.arguments.path}: ${encolheu.texto}. Se sumiu código sem querer, /undo volta.`));
2073
- result.aviso_encolheu = `ATENÇÃO: ${tc.arguments.path} ${encolheu.texto}. Confira se você não apagou código sem querer; se apagou, refaça a edição sem cortar nada.`;
2074
- }
2075
- }
2076
- for (const aviso of hooks.rodar('PostToolUse', { nome: tc.name, args: tc.arguments, resultado: result, projectDir: pastaAtual }).avisos) console.log(c.dim(` ⎿ ${aviso}`));
2077
- traco(`${tc.name} devolveu ok=${result && result.ok}`);
2078
- if (/^estudio_|^planejar_producao$/.test(tc.name) && result && result.ok !== false) {
2079
- const id = result.id || (result.projeto && result.projeto.id) || (tc.arguments && tc.arguments.id);
2080
- if (typeof id === 'string' && id) estudioDaTarefa = id;
2081
- }
2082
- logResult(tc.name, result, profundidade);
2083
- if (/^estudio_render/.test(tc.name) && result && result.conferencia && !subagent) {
2084
- for (const l of require('./estudio/conferencia.js').linhasPraPessoa(result.conferencia)) console.log(c.warn(` ⎿ ${l}`));
2085
- }
2086
- repeticao.executou(jaChamado, tc.name, tc.arguments);
2087
- if (RELEITURA.has(tc.name) && result && result.ok !== false) {
2088
- leiturasGuardadas.set(eco.chave, summarizeForModel(result));
2089
- }
2090
- if (tc.name === 'write_todos' && result && Array.isArray(result.todos)) todosDaTarefa = result.todos;
2091
- if (/^(write_file|edit_file|multi_edit)$/.test(tc.name) && tc.arguments && tc.arguments.path) {
2092
- try {
2093
- const abs = tools.resolveInProject(tc.arguments.path, pastaAtual);
2094
- if (tc.name === 'write_file' && result && result.ok !== false && typeof tc.arguments.content === 'string') {
2095
- escritosNaTarefa.set(abs, { texto: tc.arguments.content, volta: voltas });
2096
- } else escritosNaTarefa.delete(abs);
2097
- } catch { /* caminho inválido: a tool já recusou */ }
2098
- }
2099
- // Além de narrar, ANOTA: no fim do pedido sai o balanço do que
2100
- // nasceu, mudou, rodou e falhou. Narrar sozinho não basta — numa
2101
- // tarefa de trinta ações, a primeira já saiu da tela.
2102
- registro.anotar(livro, tc.name, tc.arguments, result);
2103
- if (result && result.ok !== false && catalogo.criaProjeto(tc.name, tc.arguments)
2104
- && /\.(html?|css|m?jsx?|tsx?|vue|svelte)$/i.test(String((tc.arguments && tc.arguments.path) || ''))) {
2105
- mexeuNaPagina = true;
2106
- /* O NAVEGADOR ESCONDIDO SOBE AGORA, e não no `finish`.
2107
- A conferência só roda quando o agente diz "pronto", e até
2108
- lá ainda há pelo menos uma rodada do modelo. Subir o Chrome
2109
- ali, em paralelo com ela, tira do "pronto" o tempo de ligar
2110
- o navegador e de fazer a PRIMEIRA navegação dele, que é a
2111
- parte cara (ver `aquecerRevisor` em lib/browser.js). Medido
2112
- em 24/09: a conferência num Chrome recém-aberto levava de
2113
- 2,1 a 4,6s; aquecido antes, 1,24s — que é o assentar de
2114
- 1,2s, e nada mais. Sem `await` e sem erro: se não subir, a
2115
- conferência tenta de novo e diz o que houve. */
2116
- if (aquecerPagina && !subagent && conferencias < 2) {
2117
- try { Promise.resolve(aquecerPagina()).catch(() => {}); } catch { /* segue */ }
2118
- }
2119
- }
2120
-
2121
- // Uma escrita bem-sucedida limpa a dívida — mas só a do MESMO
2122
- // arquivo. Escrever algo sem relação (ou um run_shell qualquer)
2123
- // não corrige um teste quebrado noutro lugar; antes isto zerava
2124
- // a lista inteira e o agente conseguia dizer "concluído" com uma
2125
- // falha real ainda pendente.
2126
- if (tc.name === 'pesquisar_referencia') {
2127
- if (result && result.ok === false) pesquisasSecas++;
2128
- else pesquisasSecas = 0; // achou fonte: o ciclo se rompeu
2129
- }
2130
-
2131
- if (result && result.ok === false) {
2132
- const cmd = tc.name === 'run_shell' ? String(tc.arguments?.command || '') : '';
2133
- falhasPendentes.push({
2134
- tool: tc.name,
2135
- alvo: tc.arguments?.path || '',
2136
- comando: cmd,
2137
- texto: cmd ? `run_shell(\`${cmd.slice(0, 120)}\`): saiu com código ${result.code ?? '?'}${result.error ? ` (${String(result.error).slice(0, 160)})` : ''}`
2138
- : `${tc.name}(${tc.arguments?.path || ''}): ${result.error}`,
2139
- });
2140
- } else {
2141
- // Deu certo: some com o que ESTA tool tinha deixado pendente.
2142
- //
2143
- // Antes só write_file/edit_file limpavam, e por caminho. Uma
2144
- // falha já superada continuava bloqueando o finish para sempre:
2145
- // medido num pedido real, o browser_read errou o seletor
2146
- // ("main"), acertou na tentativa seguinte lendo 5.240 chars — e
2147
- // mesmo assim a tarefa morreu com "Parei sem concluir. A última
2148
- // falha foi: browser_read()". Acertar depois de errar é
2149
- // exatamente o que esta guarda quer premiar, não punir.
2150
- const alvo = tc.arguments?.path;
2151
- const sobrou = falhasPendentes.filter((f) => {
2152
- // comando de shell: só o MESMO comando (ou outro jeito de rodar os testes) passando limpa.
2153
- // Antes um `ls` qualquer depois de um `npm test` vermelho apagava a dívida e o "pronto" passava.
2154
- if (f.tool === 'run_shell' && tc.name === 'run_shell') return !mesmoComando(f.comando, tc.arguments?.command);
2155
- if (f.tool === tc.name) return false; // a mesma tool funcionou
2156
- if (alvo && f.alvo === alvo) return false; // o mesmo arquivo foi resolvido
2157
- return true;
2158
- });
2159
- falhasPendentes.length = 0;
2160
- falhasPendentes.push(...sobrou);
2161
- }
2162
-
2163
- messages.push({ role: 'tool', tool_call_id: tc.id, content: summarizeForModel(result) });
2164
- }
2165
-
2166
- // A conferência da página tem linha própria: aqui fica só o resto.
2167
- tempos.somar('ferramentas', Date.now() - tTools - (msConferindo - conferindoAntes));
2168
-
2169
- /* ANDANDO EM CÍRCULO (lib/travado.js): a primeira vez, um empurrão
2170
- com o que ele está repetindo; a segunda, para — antes da cota. */
2171
- const giro = travado.fimDaVolta(circulo);
2172
- const travou = finished ? null : travado.decidir(circulo, motivoTravou || giro);
2173
- if (travou && travou.acao === 'empurrar') {
2174
- traco(`travado: ${motivoTravou || giro}`);
2175
- messages.push({ role: 'user', content: travou.texto });
2176
- } else if (travou) {
2177
- paradoPorTravar = travou.texto;
2178
- break;
2179
- }
2180
-
2181
- // Uma volta inteira sem executar nada é o modelo preso. Insistir custa
2182
- // um pedido ao servidor por volta, e as 15 voltas saíam caras para
2183
- // terminar no mesmo lugar — melhor parar e devolver a vez ao usuário.
2184
- if (!algoRodou && toolCalls.length) {
2185
- rodadasParadas++;
2186
- /* Antes de desistir, UMA troca de rota, sem aparecer na tela. Parar
2187
- aqui devolvia ao usuário o trabalho de dividir a tarefa — que é
2188
- justamente o que ele não sabe fazer e o sistema sabe: o que já
2189
- foi feito está na conversa, e o que falta é outro caminho. */
2190
- if (rodadasParadas >= MAX_RODADAS_PARADAS && !trocouDeRota) {
2191
- trocouDeRota = true;
2192
- rodadasParadas = 0;
2193
- messages.push({ role: 'user', content: TROCA_DE_ROTA });
2194
- continue;
2195
- }
2196
- // Quem fala é o motivoDaParada, uma vez só — aqui havia uma
2197
- // segunda frase de "travei", e as duas saíam em sequência.
2198
- if (rodadasParadas >= MAX_RODADAS_PARADAS) break;
2199
- } else {
2200
- rodadasParadas = 0;
2201
- }
2202
-
2203
- if (finished) {
2204
- finalText = finished;
2205
- if (!subagent) fala.resposta(finished);
2206
- // Recado chegou enquanto ele fechava: entrega e segue.
2207
- if (!subagent && CAIXA.length && !PARAR) { finalText = ''; continue; }
2208
- break;
2209
- }
2210
- }
2211
- } finally {
2212
- if (!subagent) TRABALHANDO = false;
2213
- }
2214
-
2215
- // O que o modelo entregou por vontade própria, ANTES dos textos de
2216
- // desistência. É esta a diferença que o plano de passos precisa: um passo
2217
- // que "parou sem concluir" não pode virar fato para o passo seguinte.
2218
- const concluiu = Boolean(finalText) && !PARAR;
2219
-
2220
- let passagemDaParada = null;
2221
- if (paradoPorTravar && !finalText) {
2222
- finalText = paradoPorTravar;
2223
- if (!subagent) fala.aviso(finalText);
2224
- // Parou sem terminar: a memória leva o estado, não só "parei" (lib/passagem.js).
2225
- passagemDaParada = require('./passagem').montar({ pedido: userPrompt, motivo: finalText, registro: livro, falhasPendentes });
2226
- }
2227
-
2228
- if (PARAR && !finalText) {
2229
- finalText = 'Parado por você (Esc Esc). O que já foi feito, ficou feito.';
2230
- if (!subagent) fala.aviso(finalText);
2231
- }
2232
-
2233
- // Nunca terminar em silêncio. Quando o modelo devolvia resposta vazia sem
2234
- // chamar tool, o usuário via a tela parar e mais nada — pior que erro, porque
2235
- // não dá nem para saber que acabou. Medido: um pedido de navegador morria assim
2236
- // depois de a primeira tentativa de seletor falhar.
2237
- if (!finalText) {
2238
- finalText = motivoDaParada({ voltas, voltasEmFalso, falhasPendentes, travou: rodadasParadas >= MAX_RODADAS_PARADAS, teto });
2239
- if (!subagent) fala.aviso(finalText);
2240
- passagemDaParada = require('./passagem').montar({ pedido: userPrompt, motivo: finalText, registro: livro, falhasPendentes });
2241
- }
2242
-
2243
- // Nada de arquivo mexido = nada para lembrar. E grava em `pastaAtual`, não em
2244
- // `projectDir`: quando a pasta do projeto nasceu no meio do caminho, a memória
2245
- // precisa ir para ela, não para a raiz onde a sessão começou.
2246
- //
2247
- // `projectName` NÃO entra na condição: ele só rotula a memória no prompt
2248
- // (buildMemoryContext), e sessão sem projeto nomeado (ex.: primeiro pedido
2249
- // antes de /project) tem `projectName` undefined mesmo já tendo mexido em
2250
- // arquivo de verdade — a memória era descartada nesse caso, sempre.
2251
- // A raiz de trabalho não é projeto: um memory.md solto em ~/primocode
2252
- // era o que um pedido de vídeo (que trabalha na raiz) deixava para trás.
2253
- if (!subagent && temPasta && require('path').resolve(pastaAtual) !== require('path').resolve(cfg.ROOT_DIR)) {
2254
- cfg.appendProjectMemory(pastaAtual, passagemDaParada || `**Pedido:** ${userPrompt.slice(0, 300)}\n**Resultado:** ${finalText.slice(0, 500)}`);
2255
- }
2256
-
2257
- // A memória GERAL é gravada sempre, tenha havido pasta ou não.
2258
- //
2259
- // Antes ela só era escrita se o agente chamasse `remember_general` — e ele
2260
- // quase nunca chamava. Pior: a memória de projeto acima depende de
2261
- // `temPasta`, e tarefa de estúdio (vídeo, slides) não cria pasta nenhuma.
2262
- // Resultado prático: quem só fazia vídeo NUNCA teve memória gravada, de
2263
- // tipo nenhum. O usuário notou: "nunca atualiza os arquivos de memória, e
2264
- // ela deve atualizar independente do projeto".
2265
- //
2266
- // Fica curto de propósito — isto entra em todo pedido seguinte. Uma linha
2267
- // por tarefa concluída, e podada por config.js quando passa do limite.
2268
- if (!subagent && concluiu && finalText.trim()) {
2269
- const pedido = userPrompt.replace(/\s+/g, ' ').trim().slice(0, 160);
2270
- const feito = finalText.replace(/\s+/g, ' ').trim().slice(0, 240);
2271
- cfg.appendGeneralMemory(`- **${pedido}** → ${feito}`);
2272
- }
2273
-
2274
- return {
2275
- userMessage: { role: 'user', content: userPrompt },
2276
- assistantMessage: { role: 'assistant', content: finalText },
2277
- registro: livro,
2278
- // Esc Esc no meio de um plano de vários passos precisa parar o plano
2279
- // INTEIRO, não só o passo — senão o próximo passo começa logo depois
2280
- // de o usuário ter mandado parar.
2281
- parado: PARAR,
2282
- concluiu,
2283
- // Onde terminou: o mudar_pasta pode ter trocado no meio.
2284
- pasta: pastaAtual,
2285
- // O projeto do Estúdio em que se mexeu, para a memória ir para a pasta dele.
2286
- estudio: estudioDaTarefa,
2287
- };
2288
- }
2289
-
2290
- async function runSubagent(args, ctx) {
2291
- const { server, model, token, projectDir, projectName, profundidade, motor, permissoes } = ctx;
2292
- const descricao = args.description || 'sub-tarefa';
2293
-
2294
- if (profundidade + 1 >= MAX_PROFUNDIDADE) {
2295
- return 'Recusado: subagente não pode criar outro subagente. Faça você mesmo.';
2296
- }
2297
- if (!args.prompt) return 'Recusado: prompt do subagente vazio.';
2298
-
2299
- // O ofício: o modelo diz quem faz (`especialista`), ou a tarefa sugere. O
2300
- // briefing vai na frente da tarefa, na mesma mensagem — ver especialistas.js.
2301
- // Novo catálogo (agentes/): "id" ou "id1,id2" (até 3 olhares na mesma tarefa); o que não existe cai no legado.
2302
- const novos = require('./agentes').resolver(args.especialista);
2303
- const esp = novos.length ? null : especialistas.escolher(args.especialista, args.prompt);
2304
- const agentes = require('./agentes');
2305
- const rot = novos.length ? agentes.rotulo(novos) : especialistas.rotulo(esp);
2306
- fala.agente(rot, descricao, profundidade);
2307
-
2308
- const r = await runAct(novos.length ? agentes.montarTarefa(novos, args.prompt) : especialistas.montarTarefa(esp, args.prompt), {
2309
- server, model, token, projectDir, projectName,
2310
- history: [],
2311
- profundidade: profundidade + 1,
2312
- subagent: true,
2313
- motor,
2314
- permissoes,
2315
- autorizar: ctx.autorizar,
2316
- controle: ctx.controle, // o mesmo objeto: a resposta vale para todos
2317
- rotulo: `subagente: ${String(descricao).slice(0, 60)}`,
2318
- });
2319
-
2320
- /* O que o subagente fez entra no livro de quem o chamou. Sem isto, o
2321
- balanço no fim mentiria por omissão: o especialista escreveu cinco
2322
- arquivos e a tela diria "nenhum arquivo". A conversa dele continua
2323
- separada — o que se junta é o registro do que aconteceu no disco. */
2324
- if (ctx.livro && r.registro) registro.juntar(ctx.livro, r.registro);
2325
-
2326
- const resumo = r.assistantMessage.content || 'sem resultado';
2327
- fala.agenteVoltou(resumo, profundidade);
2328
- return entregaDoAgente(rot, resumo, r.registro, { pasta: projectDir });
2329
- }
2330
-
2331
- /* UM AGENTE DE CADA VEZ é o padrão do modelo grátis: no teste da loja
2332
- (API + site + painel, 01/10) ele despachou os três em fila — 6 + 8 + 5
2333
- minutos — quando o site e o painel só dependiam do contrato, que já
2334
- existia. Quem decide continua sendo ele; a volta só lembra que as partes
2335
- que faltam podem ir JUNTAS. Pura. */
2336
- function lembreteDeParalelo(todos, naRodada) {
2337
- const faltam = (todos || []).filter((t) => t && t.status !== 'completed' && t.status !== 'concluida');
2338
- if (naRodada > 1 || faltam.length < 2) return '';
2339
- return `\n\n(Faltam ${faltam.length} partes do plano. As que não dependem uma da outra vão JUNTAS: `
2340
- + 'vários spawn_agent na MESMA resposta rodam em paralelo.)';
2341
- }
2342
-
2343
- /* O SALTO ENTRE AGENTES. O pai recebia só o texto final do especialista —
2344
- "pronto, fiz a API" — e, para passar a vez ao próximo (o do front, o
2345
- revisor), tinha de adivinhar o que existia. Agora a volta é uma ENTREGA:
2346
- quem fez, o que disse, os arquivos que nasceram e mudaram, os comandos, o
2347
- que falhou. É o contexto que o próximo especialista precisa no prompt
2348
- dele, e é o que deixa o pai mandar a falha de volta para conserto (o laço
2349
- do Qwen: planeja → despacha → confere → conserta). Pura, para o teste. */
2350
- function entregaDoAgente(quem, texto, reg, { pasta } = {}) {
2351
- const linhas = [`ENTREGA DO ${String(quem).toUpperCase()}`, require('./entrega').limitar(texto, { quem }).texto];
2352
- /* mexeu em código e não rodou teste nenhum: o subagente não roda o teste automático (só o agente de cima),
2353
- então quem chamou recebia "alterou x.js" sem prova. Diz com todas as letras e dá o comando do projeto. */
2354
- const codigo = (xs) => (xs || []).some((f) => /\.(m?[jt]sx?|cjs|py|go|rs|rb|php|java|kt|swift|vue|svelte|c|cc|cpp|h)$/i.test(String(f)));
2355
- if (reg && (codigo(reg.criados) || codigo(reg.alterados)) && !(reg.testes || []).length) {
2356
- let como = null;
2357
- try { como = pasta ? require('./conferir.js').descobrir(pasta) : null; } catch { /* sem pasta */ }
2358
- linhas.push(`NÃO TESTOU: mexeu em código e não rodou teste.${como ? ` Rode \`${como.comando}\` antes de dar por pronto.` : ' Confira rodando o que prova que funciona.'}`);
2359
- }
2360
- if (reg) {
2361
- const lista = (nome, xs) => { if (xs && xs.length) linhas.push(`${nome}: ${xs.slice(0, 15).join(', ')}`); };
2362
- lista('criou', reg.criados);
2363
- lista('alterou', reg.alterados);
2364
- lista('rodou', (reg.comandos || []).map((x) => `${x.comando}${x.ok === false ? ` (saiu ${x.code})` : ''}`));
2365
- lista('testes', (reg.testes || []).map((x) => `${x.comando}: ${x.ok ? 'passou' : 'FALHOU'}`));
2366
- if (reg.falhas && reg.falhas.length) linhas.push('FALHOU: ' + reg.falhas.slice(0, 6).map((f) => `${f.acao} ${f.alvo}: ${f.motivo}`.slice(0, 200)).join(' | '));
2367
- }
2368
- linhas.push(reg && ((reg.falhas && reg.falhas.length) || (reg.testes || []).some((x) => !x.ok))
2369
- ? 'PRÓXIMO: há falha acima — mande de volta para conserto (spawn_agent com o erro no prompt) ou conserte você, antes de seguir.'
2370
- : 'PRÓXIMO: se outra parte depende desta, passe a vez (spawn_agent) com esta entrega no prompt; senão, confira e siga.');
2371
- return linhas.join('\n');
2372
- }
2373
-
2374
- /* ══ O PIPELINE DE QUATRO PAPÉIS ═══════════════════════════════════════════
2375
- *
2376
- * "Engenheiro de Prompt → Construtor 1 (protótipo) → Construtor 2 (MVP) →
2377
- * Revisador (testa ocultamente) → loop de correção → abre no navegador."
2378
- *
2379
- * As regras dos papéis, os prompts e o revisor que abre a página moram em
2380
- * `pipeline.js`, que não conhece o loop do agente. O que esta função faz é a
2381
- * costura: dar a ele uma forma de RODAR um agente, uma de escrever na tela e
2382
- * uma de abrir o navegador da pessoa.
2383
- *
2384
- * Cada papel roda com `history: []` — conversa própria, sem ver a do usuário
2385
- * nem a do papel anterior. É essa separação que faz o revisor valer alguma
2386
- * coisa: quem acabou de escrever o código é o pior revisor dele, porque lê o
2387
- * que quis escrever em vez do que escreveu.
2388
- */
2389
- /**
2390
- * O DIRETOR: estrutura antes de alguém produzir.
2391
- *
2392
- * Por que uma conversa PRÓPRIA, e não mais um parágrafo no prompt de quem
2393
- * produz: o modelo que está montando as cenas já gastou a atenção dele em
2394
- * JSON — fonte, cor, duração, posição — e é ali que o roteiro morre. Vira
2395
- * legenda do que aparece na tela ("Vantagens", "Nossos serviços"), sem arco,
2396
- * sem narração escrita, sem decisão de voz. O diretor não vê JSON de cena
2397
- * nenhum: ele decide o que se conta, em que ordem, em quantos segundos, com
2398
- * que voz e com que direção de arte. Depois disso o produtor tem pouco a
2399
- * inventar — e inventar é onde ele erra.
2400
- */
2401
- async function rodarDiretor(args, ctx) {
2402
- const { server, model, token, projectDir, projectName, profundidade, motor, permissoes } = ctx;
2403
- if (profundidade > 0) {
2404
- return { ok: false, error: 'Recusado: o diretor não roda dentro de um subagente. '
2405
- + 'Produza com o plano que você já recebeu.' };
2406
- }
2407
- const diretor = require('./estudio/diretor.js');
2408
- const correr = async (prompt, rotulo) => {
2409
- if (PARAR) return '';
2410
- fala.agente('Diretor', rotulo, profundidade);
2411
- const r = await runAct(prompt, {
2412
- server, model, token, projectDir, projectName,
2413
- history: [], profundidade: profundidade + 1, subagent: true, motor, permissoes,
2414
- });
2415
- return (r && r.assistantMessage && r.assistantMessage.content) || '';
2416
- };
2417
-
2418
- const r = await diretor.planejar({
2419
- pedido: args.pedido || args.prompt || '',
2420
- segundos: Number(args.segundos) || 30,
2421
- formato: args.formato === 'apresentacao' ? 'apresentacao' : 'video',
2422
- contexto: args.contexto || '',
2423
- correr,
2424
- mostrar: (t) => fala.agente('Diretor', t, profundidade),
2425
- });
2426
- if (!r.ok) return r;
2427
-
2428
- /* A PAUTA é o que volta para o produtor, não o JSON cru. O JSON cru
2429
- convida a copiar campo por campo para dentro do plano de cena — e aí o
2430
- "fundo": "verde descendo" viraria uma string num lugar que espera cor.
2431
- A pauta é prosa: o produtor LÊ e compõe com os primitivos que ele tem. */
2432
- return {
2433
- ok: true,
2434
- aprovado: r.aprovado,
2435
- defeitos: r.defeitos.length ? r.defeitos : undefined,
2436
- pauta: diretor.pauta(r.plano),
2437
- voz: r.plano.voz,
2438
- midia: r.plano.midia,
2439
- trilha: r.plano.trilha,
2440
- segundos: r.plano.segundos,
2441
- proporcao: r.plano.proporcao,
2442
- };
2443
- }
2444
-
2445
- async function rodarPipeline(args, ctx) {
2446
- const { server, model, token, projectDir, projectName, profundidade, motor, permissoes } = ctx;
2447
- if (profundidade > 0) {
2448
- return { ok: false, error: 'Recusado: o pipeline não roda dentro de um subagente — '
2449
- + 'os papéis dele já são subagentes. Faça a parte que te cabe.' };
2450
- }
2451
-
2452
- const pipeline = require('./pipeline.js');
2453
- const path = require('path');
2454
- const pedido = args.pedido || args.prompt || '';
2455
- const base = projectDir || cfg.ROOT_DIR;
2456
- /* Dentro de um projeto, o app é montado NA pasta dele. A subpasta com
2457
- nome derivado do pedido só vale na raiz: era ela que fazia o app nascer
2458
- num lugar que a conversa nunca mais achava. */
2459
- const naRaiz = path.resolve(base) === path.resolve(cfg.ROOT_DIR);
2460
- const pasta = args.pasta
2461
- ? path.resolve(base, args.pasta)
2462
- : (naRaiz ? pipeline.pastaPara(pedido, base) : base);
2463
-
2464
- const correr = async (prompt, rotulo) => {
2465
- if (PARAR) return '';
2466
- fala.agente('Agente', rotulo, profundidade);
2467
- const r = await runAct(prompt, {
2468
- server, model, token, projectDir: pasta, projectName,
2469
- history: [], profundidade: profundidade + 1, subagent: true, motor, permissoes,
2470
- });
2471
- return (r && r.assistantMessage && r.assistantMessage.content) || '';
2472
- };
2473
-
2474
- return pipeline.construir({
2475
- pedido,
2476
- pasta,
2477
- rodadas: args.rodadas,
2478
- correr,
2479
- mostrar: (linha) => console.log(fala.resultado(profundidade) + c.muted(linha)),
2480
- abrir: tools.openInBrowser,
2481
- });
2482
- }
2483
-
2484
- /**
2485
- * Portão de prova fresca: marca a edição de código e o comando rodado, nessa
2486
- * ordem. `barrar()` devolve a frase de "AINDA NÃO" (uma vez só) quando o
2487
- * último código editado não tem comando depois dele; senão null. Página
2488
- * (html/css) fica com o conferirPagina.
2489
- */
2490
- const CODIGO = /\.(m?[jt]sx?|cjs|py|rb|go|rs|java|php|sh|c|cpp|cs)$/i;
2491
- function novoPortaoDeProva() {
2492
- let seq = 0, edicao = 0, rodou = 0, avisou = false;
2493
- return {
2494
- ver(tc) {
2495
- const a = (tc && tc.arguments) || {};
2496
- if (tc.name === 'write_file' || tc.name === 'edit_file' || tc.name === 'multi_edit') {
2497
- if (CODIGO.test(String(a.path || a.file_path || ''))) edicao = ++seq;
2498
- } else if (tc.name === 'run_shell' || tc.name === 'run_in_new_terminal' || tc.name === 'run_background') rodou = ++seq;
2499
- },
2500
- /** O PrimoCode rodou os testes por conta própria (conferirTestes): vale como o comando depois da edição. */
2501
- rodouPorFora() { if (edicao) rodou = ++seq; },
2502
- barrar() {
2503
- if (!edicao || rodou > edicao || avisou) return null;
2504
- avisou = true;
2505
- return 'AINDA NÃO: você editou código e não rodou nada depois. Rode o teste ou o comando que prova '
2506
- + 'que funciona, leia o resultado e chame finish de novo (ou diga o que não conseguiu conferir).';
2507
- },
2508
- };
2509
- }
2510
-
2511
- module.exports = { summarizeForModel, mesmoComando, EDICAO_DE_VIDEO_FALADO, novoPortaoDeProva, runAct, erroDaCorrente, linhaDaReserva, videoForaDeEdicao, entregaDoAgente, lembreteDeParalelo, buildMemoryContext, leituraPeloShell, historicoEnxuto, interromper, interrompido, mandarDuranteATarefa, trabalhando, sobrasDaCaixa, entregarRecados, compactar, motivoDaParada, pareceParadaNoMeio, ehTetoDeToken, ehTransitorio, esperaDoErro,
2512
- anotacaoDoQueJaFoi, resumoDoQueJaFoi, encolherParaContinuar, recadoDoPlanoAberto, MAX_ITERATIONS };