@semacode/cli 2.0.0 → 2.1.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 (103) hide show
  1. package/LICENSE +39 -39
  2. package/README.md +125 -121
  3. package/dist/agentEntryPoints.js +499 -499
  4. package/dist/doctorCommand.js +28 -0
  5. package/dist/geracaoCore.js +97 -1
  6. package/dist/iaPrompts.d.ts +1 -1
  7. package/dist/iaPrompts.js +307 -307
  8. package/dist/index.part01.js +4 -3
  9. package/dist/index.part02.js +21 -21
  10. package/dist/index.part04.js +96 -96
  11. package/dist/index.part06.js +1 -1
  12. package/dist/index.part07.js +35 -24
  13. package/dist/init/templates.part01.js +393 -393
  14. package/dist/init/templates.part02.js +189 -189
  15. package/dist/initTemplatesBackend.js +73 -73
  16. package/dist/initTemplatesBase.js +81 -81
  17. package/dist/initTemplatesFlutter.js +137 -137
  18. package/dist/initTemplatesRuntime.js +350 -350
  19. package/dist/initTemplatesWeb.js +309 -309
  20. package/dist/nativeToolchains.d.ts +15 -0
  21. package/dist/nativeToolchains.js +132 -0
  22. package/dist/projetoConfig.js +7 -1
  23. package/dist/projetoResolucao.js +21 -6
  24. package/dist/sync/index.js +35 -35
  25. package/docs/README.md +25 -25
  26. package/docs/ai-onboarding.md +62 -62
  27. package/docs/ai-workflow.md +1 -1
  28. package/docs/auth.md +26 -26
  29. package/docs/cli.md +79 -72
  30. package/docs/commands.md +1 -1
  31. package/docs/database.md +15 -15
  32. package/docs/deploy.md +41 -36
  33. package/docs/documentation.md +39 -39
  34. package/docs/env.md +16 -16
  35. package/docs/frontend.md +41 -41
  36. package/docs/getting-started.md +57 -57
  37. package/docs/i18n.md +15 -15
  38. package/docs/profiles.md +45 -43
  39. package/docs/repositories.md +43 -43
  40. package/docs/rollback.md +31 -31
  41. package/docs/security.md +32 -32
  42. package/docs/support.md +8 -8
  43. package/docs/syntax.md +1 -1
  44. package/docs/testing.md +35 -28
  45. package/docs/vocabulary.md +29 -29
  46. package/exemplos/agendamento.sema +1 -1
  47. package/exemplos/assinatura.sema +1 -1
  48. package/exemplos/auditoria.sema +1 -1
  49. package/exemplos/autenticacao.sema +1 -1
  50. package/exemplos/author_obra_comum.sema +1 -1
  51. package/exemplos/author_tema_sensivel.sema +1 -1
  52. package/exemplos/automacao.sema +1 -1
  53. package/exemplos/cadastro_usuario.sema +1 -1
  54. package/exemplos/calculadora.sema +1 -1
  55. package/exemplos/crud_simples.sema +1 -1
  56. package/exemplos/estoque.sema +1 -1
  57. package/exemplos/exportacao.sema +1 -1
  58. package/exemplos/fila.sema +1 -1
  59. package/exemplos/integracao_externa.sema +1 -1
  60. package/exemplos/multi_tenant.sema +1 -1
  61. package/exemplos/notificacao.sema +1 -1
  62. package/exemplos/operacao_estrategia.sema +132 -132
  63. package/exemplos/operacao_estrategia_discovery.sema +220 -220
  64. package/exemplos/operacao_estrategia_fluxo.sema +114 -114
  65. package/exemplos/operacao_estrategia_gates.sema +106 -106
  66. package/exemplos/operacao_estrategia_quarentena.sema +133 -133
  67. package/exemplos/operacao_estrategia_rollout.sema +124 -124
  68. package/exemplos/pagamento.sema +1 -1
  69. package/exemplos/pagamento_dominio.sema +1 -1
  70. package/exemplos/pedido.sema +1 -1
  71. package/exemplos/permissao.sema +1 -1
  72. package/exemplos/persistencia_vendor_first.sema +1 -1
  73. package/exemplos/profile_conversas.sema +165 -165
  74. package/exemplos/profile_game.sema +1 -1
  75. package/exemplos/profile_legal.sema +1 -1
  76. package/exemplos/profile_ops.sema +1 -1
  77. package/exemplos/profile_research.sema +1 -1
  78. package/exemplos/profile_software.sema +1 -1
  79. package/exemplos/profile_workflow_n8n.sema +1 -1
  80. package/exemplos/relatorio.sema +1 -1
  81. package/exemplos/replica_analitica_erp.sema +1 -1
  82. package/exemplos/testes_embutidos.sema +1 -1
  83. package/exemplos/tratamento_erro.sema +1 -1
  84. package/exemplos/upload_arquivo.sema +1 -1
  85. package/exemplos/webhook.sema +1 -1
  86. package/node_modules/@sema/gerador-cpp/dist/index.d.ts +3 -0
  87. package/node_modules/@sema/gerador-cpp/dist/index.js +859 -0
  88. package/node_modules/@sema/gerador-cpp/dist/index.js.map +1 -0
  89. package/node_modules/@sema/gerador-cpp/package.json +7 -0
  90. package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
  91. package/node_modules/@sema/gerador-css/dist/index.part02.js +460 -460
  92. package/node_modules/@sema/gerador-dotnet/dist/index.d.ts +3 -0
  93. package/node_modules/@sema/gerador-dotnet/dist/index.js +828 -0
  94. package/node_modules/@sema/gerador-dotnet/dist/index.js.map +1 -0
  95. package/node_modules/@sema/gerador-dotnet/package.json +7 -0
  96. package/node_modules/@sema/gerador-html/dist/index.js +17 -17
  97. package/node_modules/@sema/gerador-lua/dist/index.js +5 -5
  98. package/node_modules/@sema/gerador-php/dist/index.js +113 -113
  99. package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
  100. package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
  101. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
  102. package/node_modules/@sema/padroes/dist/index.d.ts +1 -1
  103. package/package.json +5 -1
@@ -320,27 +320,27 @@ export function criarBriefingMinimo(resumo, modo, tamanho) {
320
320
  }
321
321
  export function criarPromptCurtoModulo(resumo, modo, tamanho, capacidade) {
322
322
  const resumoTexto = renderizarResumoModuloTexto(resumo, tamanho, modo).trim();
323
- return `Você está operando Sema em modo IA-first.
324
-
325
- Esta linguagem existe para traduzir intenção operacional em contrato consumível por IA. Humanos aprovam; agentes operam.
326
-
327
- Capacidade alvo: ${capacidade}
328
- Modo da tarefa: ${modo}
329
-
330
- Regras:
331
- - não invente sintaxe nem bloco fora da gramática oficial
332
- - preserve a intenção do contrato
333
- - use este resumo como fonte compacta inicial
334
- - se a tarefa pedir mais contexto, rode \`sema contexto-ia <arquivo.sema> --saida <diretorio> --json\` e então abra \`briefing.min.json\`, \`drift.json\` e \`ir.json\` nessa saída
335
- - não saia editando software vivo sem olhar risco, lacuna e checks sugeridos
336
- - se abrir código com \`SEMA-GOVERNED\`, volte ao contrato e chame Sema antes de editar
337
- - não crie nem conclua código governado acima de ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO} linhas; acima de ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO}, planeje divisão; documentação Markdown não entra nesse limite de código
338
- - não crie nem edite contrato .sema acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} linhas; acima de ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA}, planeje split por domínio/capacidade, nunca parte_1/parte_2
339
- - vários contratos .sema podem governar o mesmo arquivo por vinculos; Sema Código deve preservar essa rastreabilidade
340
- ${resumo.consumerFramework ? "- se for tarefa visual consumer, priorize `appRoutes`, `consumerSurfaces` e `consumerBridges` antes de abrir arquivos aleatórios" : ""}
341
-
342
- Contexto compacto:
343
- ${resumoTexto}
323
+ return `Você está operando Sema em modo IA-first.
324
+
325
+ Esta linguagem existe para traduzir intenção operacional em contrato consumível por IA. Humanos aprovam; agentes operam.
326
+
327
+ Capacidade alvo: ${capacidade}
328
+ Modo da tarefa: ${modo}
329
+
330
+ Regras:
331
+ - não invente sintaxe nem bloco fora da gramática oficial
332
+ - preserve a intenção do contrato
333
+ - use este resumo como fonte compacta inicial
334
+ - se a tarefa pedir mais contexto, rode \`sema contexto-ia <arquivo.sema> --saida <diretorio> --json\` e então abra \`briefing.min.json\`, \`drift.json\` e \`ir.json\` nessa saída
335
+ - não saia editando software vivo sem olhar risco, lacuna e checks sugeridos
336
+ - se abrir código com \`SEMA-GOVERNED\`, volte ao contrato e chame Sema antes de editar
337
+ - não crie nem conclua código governado acima de ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO} linhas; acima de ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO}, planeje divisão; documentação Markdown não entra nesse limite de código
338
+ - não crie nem edite contrato .sema acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} linhas; acima de ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA}, planeje split por domínio/capacidade, nunca parte_1/parte_2
339
+ - vários contratos .sema podem governar o mesmo arquivo por vinculos; Sema Código deve preservar essa rastreabilidade
340
+ ${resumo.consumerFramework ? "- se for tarefa visual consumer, priorize `appRoutes`, `consumerSurfaces` e `consumerBridges` antes de abrir arquivos aleatórios" : ""}
341
+
342
+ Contexto compacto:
343
+ ${resumoTexto}
344
344
  `;
345
345
  }
346
346
  //# sourceMappingURL=index.part02.js.map
@@ -206,102 +206,102 @@ export async function gerarContextoIa(arquivoEntrada, pastaSaidaOpcional) {
206
206
  await escreverArquivoWorkspaceSeguro(pastaBase, artefato.caminhoRelativo, artefato.conteudo, { sobrescrever: true });
207
207
  }
208
208
  const resumoGerado = await gerarArquivosResumoModuloIa(contexto, pastaBase);
209
- const resumo = `# Contexto de IA para ${contexto.modulo}
210
-
211
- - Arquivo alvo: \`${contexto.arquivo}\`
212
- - Modulo: \`${contexto.modulo}\`
213
- - Sucesso em validar: \`${contexto.sucesso}\`
214
- - Quantidade de diagnosticos: \`${contexto.diagnosticos.length}\`
215
- - Gerado em: \`${contexto.geradoEm}\`
216
-
217
- ## Arquivos gerados neste pacote
218
-
219
- - \`agent-context-pack.json\`
220
- - \`${ARQUIVO_SEMA_BOOT}\`
221
- - \`${ARQUIVO_SEMA_SMALL_MODEL}\`
222
- - \`resumo.micro.txt\`
223
- - \`resumo.curto.txt\`
224
- - \`resumo.md\`
225
- - \`briefing.min.json\`
226
- - \`prompt-curto.txt\`
227
- - \`validar.json\`
228
- - \`diagnosticos.json\`
229
- - \`ast.json\`
230
- - \`ir.json\`
231
- - \`drift.json\`
232
- - \`briefing.json\`
233
-
234
- ## Fluxo recomendado para o agente
235
-
236
- Antes de escolher arquivo de código, leia \`${ARQUIVO_SEMA_BOOT}\` e \`agent-context-pack.json\`. Eles declaram regras obrigatórias, proibições, prioridades, idioma humano e quando abrir texto bruto como \`AGENTS.md\`, \`exemplos/\`, docs e contratos.
237
-
238
- ## Políticas da plataforma
239
-
240
- - Sema governa contrato, escopo, drift, evidência e qualidade; não contorna políticas, termos, permissões, segurança ou leis.
241
- - Se houver alerta externo, trate como bloqueio da plataforma ou falso positivo possível, explique de forma neutra e não tente burlar filtro.
242
-
243
- ### IA fraca, gratuita ou com pouca disciplina
244
-
245
- 1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
246
- 2. Ler \`${ARQUIVO_SEMA_SMALL_MODEL}\`.
247
- 3. Ler \`agent-context-pack.json\`.
248
- 4. Ler \`resumo.micro.txt\`.
249
- 5. Ler \`briefing.min.json\`.
250
- 6. Se ainda couber contexto, ler \`resumo.curto.txt\`.
251
-
252
- ### IA média
253
-
254
- 1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
255
- 2. Ler \`agent-context-pack.json\`.
256
- 3. Ler \`resumo.curto.txt\`.
257
- 4. Ler \`briefing.min.json\`.
258
- 5. Ler \`drift.json\`.
259
- 6. Se precisar, subir para \`resumo.md\`.
260
-
261
- ### IA forte ou com tool use
262
-
263
- 1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
264
- 2. Ler \`agent-context-pack.json\`.
265
- 3. Ler \`README.md\`.
266
- 4. Ler \`resumo.md\`.
267
- 5. Ler \`briefing.json\`.
268
- 6. Ler \`drift.json\`.
269
- 7. Só depois abrir \`ir.json\` e \`ast.json\`.
270
-
271
- ## Idioma humano
272
-
273
- - Responda no idioma do usuário.
274
- - Em PT-BR, use acentos, cedilha, pontuação e símbolos normais.
275
- - A DSL \`.sema\` pode ser ASCII; texto humano não precisa ser.
276
-
277
- ## Texto bruto sob demanda
278
-
279
- - Abra \`AGENTS.md\` antes de editar código, contrato, docs operacionais, release ou deploy.
280
- - Abra \`exemplos/\` antes de criar ou corrigir sintaxe \`.sema\`.
281
- - Abra \`docs/syntax.md\` quando exemplos não bastarem para resolver a gramática.
282
- - Abra \`contratos/\` antes de qualquer implementação ou mudança de comportamento.
283
-
284
- ## Timeout e retry
285
-
286
- - Timeout local do agente não é falha do Sema.
287
- - Se uma chamada Sema estourar, aumente o timeout e tente de novo.
288
- - Se o projeto inteiro for lento, escopar para \`sema resumo "${contexto.arquivo}" --micro --para mudanca\`.
289
- - Se o ambiente impedir continuar, pare bloqueado e não avance com código sem Sema.
290
-
291
- ## Fechamento
292
-
293
- 1. Editar o arquivo \`.sema\`.
294
- 2. Rodar \`sema formatar "${contexto.arquivo}"\`.
295
- 3. Rodar \`sema validar "${contexto.arquivo}" --json\`.
296
- 4. Rodar \`sema drift "${contexto.arquivo}" --json\`.
297
- 5. Fechar com \`sema verificar <arquivo-ou-pasta> --json --saida ./.tmp/verificacao-ia\`.
298
-
299
- ## Textos base para onboarding do agente
300
-
301
- - \`sema starter-ia\`
302
- - \`sema resumo "${contexto.arquivo}" --micro --para onboarding\`
303
- - \`sema prompt-curto "${contexto.arquivo}" --para mudanca\`
304
- - \`sema prompt-ia\`
209
+ const resumo = `# Contexto de IA para ${contexto.modulo}
210
+
211
+ - Arquivo alvo: \`${contexto.arquivo}\`
212
+ - Modulo: \`${contexto.modulo}\`
213
+ - Sucesso em validar: \`${contexto.sucesso}\`
214
+ - Quantidade de diagnosticos: \`${contexto.diagnosticos.length}\`
215
+ - Gerado em: \`${contexto.geradoEm}\`
216
+
217
+ ## Arquivos gerados neste pacote
218
+
219
+ - \`agent-context-pack.json\`
220
+ - \`${ARQUIVO_SEMA_BOOT}\`
221
+ - \`${ARQUIVO_SEMA_SMALL_MODEL}\`
222
+ - \`resumo.micro.txt\`
223
+ - \`resumo.curto.txt\`
224
+ - \`resumo.md\`
225
+ - \`briefing.min.json\`
226
+ - \`prompt-curto.txt\`
227
+ - \`validar.json\`
228
+ - \`diagnosticos.json\`
229
+ - \`ast.json\`
230
+ - \`ir.json\`
231
+ - \`drift.json\`
232
+ - \`briefing.json\`
233
+
234
+ ## Fluxo recomendado para o agente
235
+
236
+ Antes de escolher arquivo de código, leia \`${ARQUIVO_SEMA_BOOT}\` e \`agent-context-pack.json\`. Eles declaram regras obrigatórias, proibições, prioridades, idioma humano e quando abrir texto bruto como \`AGENTS.md\`, \`exemplos/\`, docs e contratos.
237
+
238
+ ## Políticas da plataforma
239
+
240
+ - Sema governa contrato, escopo, drift, evidência e qualidade; não contorna políticas, termos, permissões, segurança ou leis.
241
+ - Se houver alerta externo, trate como bloqueio da plataforma ou falso positivo possível, explique de forma neutra e não tente burlar filtro.
242
+
243
+ ### IA fraca, gratuita ou com pouca disciplina
244
+
245
+ 1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
246
+ 2. Ler \`${ARQUIVO_SEMA_SMALL_MODEL}\`.
247
+ 3. Ler \`agent-context-pack.json\`.
248
+ 4. Ler \`resumo.micro.txt\`.
249
+ 5. Ler \`briefing.min.json\`.
250
+ 6. Se ainda couber contexto, ler \`resumo.curto.txt\`.
251
+
252
+ ### IA média
253
+
254
+ 1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
255
+ 2. Ler \`agent-context-pack.json\`.
256
+ 3. Ler \`resumo.curto.txt\`.
257
+ 4. Ler \`briefing.min.json\`.
258
+ 5. Ler \`drift.json\`.
259
+ 6. Se precisar, subir para \`resumo.md\`.
260
+
261
+ ### IA forte ou com tool use
262
+
263
+ 1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
264
+ 2. Ler \`agent-context-pack.json\`.
265
+ 3. Ler \`README.md\`.
266
+ 4. Ler \`resumo.md\`.
267
+ 5. Ler \`briefing.json\`.
268
+ 6. Ler \`drift.json\`.
269
+ 7. Só depois abrir \`ir.json\` e \`ast.json\`.
270
+
271
+ ## Idioma humano
272
+
273
+ - Responda no idioma do usuário.
274
+ - Em PT-BR, use acentos, cedilha, pontuação e símbolos normais.
275
+ - A DSL \`.sema\` pode ser ASCII; texto humano não precisa ser.
276
+
277
+ ## Texto bruto sob demanda
278
+
279
+ - Abra \`AGENTS.md\` antes de editar código, contrato, docs operacionais, release ou deploy.
280
+ - Abra \`exemplos/\` antes de criar ou corrigir sintaxe \`.sema\`.
281
+ - Abra \`docs/syntax.md\` quando exemplos não bastarem para resolver a gramática.
282
+ - Abra \`contratos/\` antes de qualquer implementação ou mudança de comportamento.
283
+
284
+ ## Timeout e retry
285
+
286
+ - Timeout local do agente não é falha do Sema.
287
+ - Se uma chamada Sema estourar, aumente o timeout e tente de novo.
288
+ - Se o projeto inteiro for lento, escopar para \`sema resumo "${contexto.arquivo}" --micro --para mudanca\`.
289
+ - Se o ambiente impedir continuar, pare bloqueado e não avance com código sem Sema.
290
+
291
+ ## Fechamento
292
+
293
+ 1. Editar o arquivo \`.sema\`.
294
+ 2. Rodar \`sema formatar "${contexto.arquivo}"\`.
295
+ 3. Rodar \`sema validar "${contexto.arquivo}" --json\`.
296
+ 4. Rodar \`sema drift "${contexto.arquivo}" --json\`.
297
+ 5. Fechar com \`sema verificar <arquivo-ou-pasta> --json --saida ./.tmp/verificacao-ia\`.
298
+
299
+ ## Textos base para onboarding do agente
300
+
301
+ - \`sema starter-ia\`
302
+ - \`sema resumo "${contexto.arquivo}" --micro --para onboarding\`
303
+ - \`sema prompt-curto "${contexto.arquivo}" --para mudanca\`
304
+ - \`sema prompt-ia\`
305
305
  `;
306
306
  await escreverArquivoWorkspaceSeguro(pastaBase, "README.md", resumo, {
307
307
  sobrescrever: true,
@@ -215,7 +215,7 @@ export async function comandoAjudaIa() {
215
215
  "Use `sema docs-impacto --intencao <acao>` para ler ou criar docs obrigatorias antes de agir.",
216
216
  "Use `sema finalizar-mudanca --intencao <acao>` para bloquear conclusao sem leitura documental comprovada.",
217
217
  "Use `sema contexto-ia <arquivo.sema> --saida <diretorio> --json` para gerar AST, IR, drift, `briefing.json` e `briefing.min.json`.",
218
- "Use `sema compilar <arquivo-ou-pasta> --alvo <typescript|python|php|dart|lua|javascript|html|css> --saida <diretorio>` quando a tarefa pedir codigo derivado.",
218
+ "Use `sema compilar <arquivo-ou-pasta> --alvo <typescript|python|php|dart|lua|javascript|html|css|dotnet|cpp> --saida <diretorio>` quando a tarefa pedir codigo derivado.",
219
219
  ]));
220
220
  console.log("");
221
221
  console.log(renderizarSecaoAscii("Regras praticas", [
@@ -45,30 +45,30 @@ export async function comandoPromptCurto(entrada, args, emJson) {
45
45
  : "SEMA_BRIEF.md";
46
46
  const contextoProjeto = await readFile(path.join(resumoProjeto.pastaSaida, arquivoResumo), "utf8");
47
47
  const capacidade = tamanho === "micro" ? "fraca" : tamanho === "curto" ? "media" : "forte";
48
- const prompt = `⚠️ REGRA OBRIGATÓRIA DE GOVERNANÇA:
49
-
50
- ANTES DE QUALQUER AÇÃO (editar, criar, deletar, executar, consultar ou modificar):
51
- 1. Rode \`sema docs-impacto --intencao "<ação>" --json\` com sua intenção declarada.
52
- 2. Aguarde a resposta com as docs obrigatórias.
53
- 3. Leia as docs antes de agir.
54
- 4. Antes de concluir, rode \`sema finalizar-mudanca --intencao "<ação>" --doc-lida <arquivo> --json\` com todas as docs lidas.
55
-
56
- Você está operando Sema em modo IA-first.
57
-
58
- Isto é contexto comprimido para IA operar contrato semântico antes de tocar código vivo.
59
-
60
- Capacidade alvo: ${capacidade}
61
- Modo da tarefa: ${modo}
62
-
63
- Regras:
64
- - ANTES DE TUDO: rode \`sema docs-impacto --intencao "<ação>" --json\`.
65
- - Comece pelo resumo compacto abaixo.
66
- - Se a tarefa pedir mais contexto, abra \`AGENT_CONTEXT_PACK.json\` e depois \`SEMA_INDEX.json\`.
67
- - Não tente ler o repositório inteiro se o resumo já disser onde tocar.
68
- - Preserve contrato, risco, lacuna e checks sugeridos.
69
-
70
- Contexto do projeto:
71
- ${contextoProjeto.trim()}
48
+ const prompt = `⚠️ REGRA OBRIGATÓRIA DE GOVERNANÇA:
49
+
50
+ ANTES DE QUALQUER AÇÃO (editar, criar, deletar, executar, consultar ou modificar):
51
+ 1. Rode \`sema docs-impacto --intencao "<ação>" --json\` com sua intenção declarada.
52
+ 2. Aguarde a resposta com as docs obrigatórias.
53
+ 3. Leia as docs antes de agir.
54
+ 4. Antes de concluir, rode \`sema finalizar-mudanca --intencao "<ação>" --doc-lida <arquivo> --json\` com todas as docs lidas.
55
+
56
+ Você está operando Sema em modo IA-first.
57
+
58
+ Isto é contexto comprimido para IA operar contrato semântico antes de tocar código vivo.
59
+
60
+ Capacidade alvo: ${capacidade}
61
+ Modo da tarefa: ${modo}
62
+
63
+ Regras:
64
+ - ANTES DE TUDO: rode \`sema docs-impacto --intencao "<ação>" --json\`.
65
+ - Comece pelo resumo compacto abaixo.
66
+ - Se a tarefa pedir mais contexto, abra \`AGENT_CONTEXT_PACK.json\` e depois \`SEMA_INDEX.json\`.
67
+ - Não tente ler o repositório inteiro se o resumo já disser onde tocar.
68
+ - Preserve contrato, risco, lacuna e checks sugeridos.
69
+
70
+ Contexto do projeto:
71
+ ${contextoProjeto.trim()}
72
72
  `;
73
73
  if (emJson) {
74
74
  console.log(JSON.stringify({
@@ -104,6 +104,17 @@ export async function comandoTestar(arquivo, alvo, saida, estrutura, framework)
104
104
  console.error(incompatibilidade);
105
105
  return 1;
106
106
  }
107
+ if (framework === "base") {
108
+ const configuracaoAlvo = {
109
+ alvo,
110
+ ...resolverConfiguracaoVerificacaoPorAlvo(alvo),
111
+ };
112
+ const verificacaoDependencias = avaliarDependenciasVerificacao([configuracaoAlvo]);
113
+ if (!verificacaoDependencias.ok) {
114
+ imprimirFalhaDependenciasVerificacao(verificacaoDependencias);
115
+ return 1;
116
+ }
117
+ }
107
118
  const codigo = await lerArquivoTexto(arquivo);
108
119
  const resultado = compilarCodigo(codigo, arquivo);
109
120
  if (temErros(resultado.diagnosticos)) {