@semacode/cli 1.5.36 → 1.5.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENT_CONTEXT_PACK.json +76 -8
- package/LICENSE +1 -2
- package/SEMA_BRIEF.curto.txt +8 -6
- package/SEMA_BRIEF.md +240 -204
- package/SEMA_BRIEF.micro.txt +9 -6
- package/SEMA_INDEX.json +2079 -1907
- package/dist/agentContext.d.ts +19 -0
- package/dist/agentContext.js +26 -0
- package/dist/agentContext.js.map +1 -0
- package/dist/agentContextPack.d.ts +3 -0
- package/dist/agentContextPack.js +403 -0
- package/dist/agentContextPack.js.map +1 -0
- package/dist/agentContextTipos.d.ts +96 -0
- package/dist/agentContextTipos.js +55 -0
- package/dist/agentContextTipos.js.map +1 -0
- package/dist/agentEntryPoints.d.ts +13 -0
- package/dist/agentEntryPoints.js +422 -0
- package/dist/agentEntryPoints.js.map +1 -0
- package/dist/authorAnalise.d.ts +15 -0
- package/dist/authorAnalise.js +210 -0
- package/dist/authorAnalise.js.map +1 -0
- package/dist/authorPoliticas.d.ts +37 -0
- package/dist/authorPoliticas.js +340 -0
- package/dist/authorPoliticas.js.map +1 -0
- package/dist/billing/index.d.ts +1 -1
- package/dist/billing/index.js +6 -2
- package/dist/billing/index.js.map +1 -1
- package/dist/bridge.js +2 -0
- package/dist/bridge.js.map +1 -1
- package/dist/carregarModulos.d.ts +2 -0
- package/dist/carregarModulos.js +9 -0
- package/dist/carregarModulos.js.map +1 -0
- package/dist/cliArgs.d.ts +6 -0
- package/dist/cliArgs.js +70 -0
- package/dist/cliArgs.js.map +1 -0
- package/dist/contexto.js +2 -0
- package/dist/contexto.js.map +1 -1
- package/dist/controleComercialSupabase.js.map +1 -1
- package/dist/controleComercialSupabaseAdmin.js.map +1 -1
- package/dist/controleComercialSupabaseCadastro.js.map +1 -1
- package/dist/controleComercialSupabaseConsumo.js.map +1 -1
- package/dist/controleComercialSupabaseConta.js.map +1 -1
- package/dist/controleComercialSupabaseProfiles.js.map +1 -1
- package/dist/dev/index.js +2 -0
- package/dist/dev/index.js.map +1 -1
- package/dist/dev/watcher.d.ts +1 -0
- package/dist/dev/watcher.js +4 -0
- package/dist/dev/watcher.js.map +1 -0
- package/dist/docs/resolver.d.ts +1 -0
- package/dist/docs/resolver.js +4 -0
- package/dist/docs/resolver.js.map +1 -0
- package/dist/docs.d.ts +2 -56
- package/dist/docs.js +5 -502
- package/dist/docs.js.map +1 -1
- package/dist/docs.part01.d.ts +78 -0
- package/dist/docs.part01.js +347 -0
- package/dist/docs.part01.js.map +1 -0
- package/dist/docs.part02.d.ts +20 -0
- package/dist/docs.part02.js +181 -0
- package/dist/docs.part02.js.map +1 -0
- package/dist/doctorCommand.d.ts +27 -0
- package/dist/doctorCommand.js +160 -0
- package/dist/doctorCommand.js.map +1 -0
- package/dist/drift.contrato.d.ts +23 -0
- package/dist/drift.contrato.js +33 -0
- package/dist/drift.contrato.js.map +1 -0
- package/dist/drift.d.ts +13 -227
- package/dist/drift.js +16 -3924
- package/dist/drift.js.map +1 -1
- package/dist/drift.part01.d.ts +252 -0
- package/dist/drift.part01.js +183 -0
- package/dist/drift.part01.js.map +1 -0
- package/dist/drift.part02.d.ts +30 -0
- package/dist/drift.part02.js +342 -0
- package/dist/drift.part02.js.map +1 -0
- package/dist/drift.part03.d.ts +26 -0
- package/dist/drift.part03.js +343 -0
- package/dist/drift.part03.js.map +1 -0
- package/dist/drift.part04.d.ts +46 -0
- package/dist/drift.part04.js +354 -0
- package/dist/drift.part04.js.map +1 -0
- package/dist/drift.part05.d.ts +47 -0
- package/dist/drift.part05.js +353 -0
- package/dist/drift.part05.js.map +1 -0
- package/dist/drift.part06.d.ts +17 -0
- package/dist/drift.part06.js +381 -0
- package/dist/drift.part06.js.map +1 -0
- package/dist/drift.part07.d.ts +48 -0
- package/dist/drift.part07.js +377 -0
- package/dist/drift.part07.js.map +1 -0
- package/dist/drift.part08.d.ts +26 -0
- package/dist/drift.part08.js +333 -0
- package/dist/drift.part08.js.map +1 -0
- package/dist/drift.part09.d.ts +22 -0
- package/dist/drift.part09.js +322 -0
- package/dist/drift.part09.js.map +1 -0
- package/dist/drift.part10.d.ts +11 -0
- package/dist/drift.part10.js +116 -0
- package/dist/drift.part10.js.map +1 -0
- package/dist/drift.part11.d.ts +3 -0
- package/dist/drift.part11.js +320 -0
- package/dist/drift.part11.js.map +1 -0
- package/dist/drift.part12.d.ts +17 -0
- package/dist/drift.part12.js +289 -0
- package/dist/drift.part12.js.map +1 -0
- package/dist/drift.part13.d.ts +17 -0
- package/dist/drift.part13.js +86 -0
- package/dist/drift.part13.js.map +1 -0
- package/dist/drift.part14.d.ts +44 -0
- package/dist/drift.part14.js +402 -0
- package/dist/drift.part14.js.map +1 -0
- package/dist/driftOrcamento.d.ts +69 -0
- package/dist/driftOrcamento.js +280 -0
- package/dist/driftOrcamento.js.map +1 -0
- package/dist/execucoesExternas.d.ts +10 -0
- package/dist/execucoesExternas.js +51 -0
- package/dist/execucoesExternas.js.map +1 -0
- package/dist/exemplosOficiais.d.ts +10 -0
- package/dist/exemplosOficiais.js +63 -0
- package/dist/exemplosOficiais.js.map +1 -0
- package/dist/fsGovernado.d.ts +10 -0
- package/dist/fsGovernado.js +50 -0
- package/dist/fsGovernado.js.map +1 -0
- package/dist/geracaoCore.d.ts +64 -0
- package/dist/geracaoCore.js +381 -0
- package/dist/geracaoCore.js.map +1 -0
- package/dist/iaPrompts.d.ts +6 -0
- package/dist/iaPrompts.js +318 -0
- package/dist/iaPrompts.js.map +1 -0
- package/dist/importador.d.ts +9 -31
- package/dist/importador.js +11 -2938
- package/dist/importador.js.map +1 -1
- package/dist/importador.part01.d.ts +150 -0
- package/dist/importador.part01.js +256 -0
- package/dist/importador.part01.js.map +1 -0
- package/dist/importador.part02.d.ts +25 -0
- package/dist/importador.part02.js +359 -0
- package/dist/importador.part02.js.map +1 -0
- package/dist/importador.part03.d.ts +53 -0
- package/dist/importador.part03.js +366 -0
- package/dist/importador.part03.js.map +1 -0
- package/dist/importador.part04.d.ts +26 -0
- package/dist/importador.part04.js +374 -0
- package/dist/importador.part04.js.map +1 -0
- package/dist/importador.part05.d.ts +28 -0
- package/dist/importador.part05.js +340 -0
- package/dist/importador.part05.js.map +1 -0
- package/dist/importador.part06.d.ts +8 -0
- package/dist/importador.part06.js +327 -0
- package/dist/importador.part06.js.map +1 -0
- package/dist/importador.part07.d.ts +23 -0
- package/dist/importador.part07.js +300 -0
- package/dist/importador.part07.js.map +1 -0
- package/dist/importador.part08.d.ts +12 -0
- package/dist/importador.part08.js +378 -0
- package/dist/importador.part08.js.map +1 -0
- package/dist/importador.part09.d.ts +16 -0
- package/dist/importador.part09.js +319 -0
- package/dist/importador.part09.js.map +1 -0
- package/dist/index.d.ts +12 -1
- package/dist/index.js +16 -7945
- package/dist/index.js.map +1 -1
- package/dist/index.part01.d.ts +148 -0
- package/dist/index.part01.js +252 -0
- package/dist/index.part01.js.map +1 -0
- package/dist/index.part02.d.ts +17 -0
- package/dist/index.part02.js +344 -0
- package/dist/index.part02.js.map +1 -0
- package/dist/index.part03.d.ts +59 -0
- package/dist/index.part03.js +352 -0
- package/dist/index.part03.js.map +1 -0
- package/dist/index.part04.d.ts +20 -0
- package/dist/index.part04.js +358 -0
- package/dist/index.part04.js.map +1 -0
- package/dist/index.part05.d.ts +10 -0
- package/dist/index.part05.js +370 -0
- package/dist/index.part05.js.map +1 -0
- package/dist/index.part06.d.ts +14 -0
- package/dist/index.part06.js +336 -0
- package/dist/index.part06.js.map +1 -0
- package/dist/index.part07.d.ts +9 -0
- package/dist/index.part07.js +287 -0
- package/dist/index.part07.js.map +1 -0
- package/dist/index.part08.d.ts +1 -0
- package/dist/index.part08.js +206 -0
- package/dist/index.part08.js.map +1 -0
- package/dist/init/index.js +2 -0
- package/dist/init/index.js.map +1 -1
- package/dist/init/templates.d.ts +2 -11
- package/dist/init/templates.js +4 -659
- package/dist/init/templates.js.map +1 -1
- package/dist/init/templates.part01.d.ts +11 -0
- package/dist/init/templates.part01.js +399 -0
- package/dist/init/templates.part01.js.map +1 -0
- package/dist/init/templates.part02.d.ts +8 -0
- package/dist/init/templates.part02.js +265 -0
- package/dist/init/templates.part02.js.map +1 -0
- package/dist/initCommand.d.ts +3 -0
- package/dist/initCommand.js +41 -0
- package/dist/initCommand.js.map +1 -0
- package/dist/initTemplatesBackend.d.ts +2 -0
- package/dist/initTemplatesBackend.js +127 -0
- package/dist/initTemplatesBackend.js.map +1 -0
- package/dist/initTemplatesBase.d.ts +9 -0
- package/dist/initTemplatesBase.js +79 -0
- package/dist/initTemplatesBase.js.map +1 -0
- package/dist/initTemplatesFlutter.d.ts +2 -0
- package/dist/initTemplatesFlutter.js +185 -0
- package/dist/initTemplatesFlutter.js.map +1 -0
- package/dist/initTemplatesRuntime.d.ts +2 -0
- package/dist/initTemplatesRuntime.js +494 -0
- package/dist/initTemplatesRuntime.js.map +1 -0
- package/dist/initTemplatesWeb.d.ts +2 -0
- package/dist/initTemplatesWeb.js +429 -0
- package/dist/initTemplatesWeb.js.map +1 -0
- package/dist/mcpInstalarChaveCommand.d.ts +1 -0
- package/dist/mcpInstalarChaveCommand.js +141 -0
- package/dist/mcpInstalarChaveCommand.js.map +1 -0
- package/dist/mcpRemoto.js.map +1 -1
- package/dist/mcp_chave.d.ts +1 -0
- package/dist/mcp_chave.js +4 -0
- package/dist/mcp_chave.js.map +1 -0
- package/dist/profileArtefatoBase.d.ts +30 -0
- package/dist/profileArtefatoBase.js +129 -0
- package/dist/profileArtefatoBase.js.map +1 -0
- package/dist/profileArtefatoValidadores.d.ts +9 -0
- package/dist/profileArtefatoValidadores.js +287 -0
- package/dist/profileArtefatoValidadores.js.map +1 -0
- package/dist/profileAuthorCommand.d.ts +6 -0
- package/dist/profileAuthorCommand.js +442 -0
- package/dist/profileAuthorCommand.js.map +1 -0
- package/dist/profileAuthorTipos.d.ts +225 -0
- package/dist/profileAuthorTipos.js +6 -0
- package/dist/profileAuthorTipos.js.map +1 -0
- package/dist/profileCatalogo.d.ts +8 -0
- package/dist/profileCatalogo.js +235 -0
- package/dist/profileCatalogo.js.map +1 -0
- package/dist/profileCommand.d.ts +33 -0
- package/dist/profileCommand.js +256 -0
- package/dist/profileCommand.js.map +1 -0
- package/dist/profileOrquestracao.d.ts +33 -0
- package/dist/profileOrquestracao.js +53 -0
- package/dist/profileOrquestracao.js.map +1 -0
- package/dist/profileRegras.d.ts +19 -0
- package/dist/profileRegras.js +219 -0
- package/dist/profileRegras.js.map +1 -0
- package/dist/profileRulePacks.d.ts +3 -0
- package/dist/profileRulePacks.js +334 -0
- package/dist/profileRulePacks.js.map +1 -0
- package/dist/profiles/validate.d.ts +1 -0
- package/dist/profiles/validate.js +4 -0
- package/dist/profiles/validate.js.map +1 -0
- package/dist/projeto.d.ts +4 -53
- package/dist/projeto.js +5 -649
- package/dist/projeto.js.map +1 -1
- package/dist/projetoBusca.d.ts +7 -0
- package/dist/projetoBusca.js +142 -0
- package/dist/projetoBusca.js.map +1 -0
- package/dist/projetoCarregar.d.ts +2 -0
- package/dist/projetoCarregar.js +50 -0
- package/dist/projetoCarregar.js.map +1 -0
- package/dist/projetoConfig.d.ts +10 -0
- package/dist/projetoConfig.js +89 -0
- package/dist/projetoConfig.js.map +1 -0
- package/dist/projetoLegado.d.ts +3 -0
- package/dist/projetoLegado.js +175 -0
- package/dist/projetoLegado.js.map +1 -0
- package/dist/projetoOrigens.d.ts +6 -0
- package/dist/projetoOrigens.js +185 -0
- package/dist/projetoOrigens.js.map +1 -0
- package/dist/projetoResolucao.d.ts +8 -0
- package/dist/projetoResolucao.js +43 -0
- package/dist/projetoResolucao.js.map +1 -0
- package/dist/projetoTipos.d.ts +43 -0
- package/dist/projetoTipos.js +4 -0
- package/dist/projetoTipos.js.map +1 -0
- package/dist/runnerValidacaoRemota.js.map +1 -1
- package/dist/runnerValidacaoRemotaBateria.js +2 -0
- package/dist/runnerValidacaoRemotaBateria.js.map +1 -1
- package/dist/runnerValidacaoRemotaExecucao.js +2 -0
- package/dist/runnerValidacaoRemotaExecucao.js.map +1 -1
- package/dist/runnerValidacaoRemotaRelatorio.js +2 -0
- package/dist/runnerValidacaoRemotaRelatorio.js.map +1 -1
- package/dist/runnerValidacaoRemotaSnapshot.js +2 -0
- package/dist/runnerValidacaoRemotaSnapshot.js.map +1 -1
- package/dist/runnerValidacaoRemotaWorkspace.js +2 -0
- package/dist/runnerValidacaoRemotaWorkspace.js.map +1 -1
- package/dist/sync/index.js +2 -0
- package/dist/sync/index.js.map +1 -1
- package/dist/textoListas.d.ts +4 -0
- package/dist/textoListas.js +22 -0
- package/dist/textoListas.js.map +1 -0
- package/dist/typescript-http-body.d.ts +12 -0
- package/dist/typescript-http-body.js +145 -0
- package/dist/typescript-http-body.js.map +1 -0
- package/dist/typescript-http-expressoes.d.ts +17 -0
- package/dist/typescript-http-expressoes.js +194 -0
- package/dist/typescript-http-expressoes.js.map +1 -0
- package/dist/typescript-http-modelos.d.ts +45 -0
- package/dist/typescript-http-modelos.js +82 -0
- package/dist/typescript-http-modelos.js.map +1 -0
- package/dist/typescript-http-rotas.d.ts +9 -0
- package/dist/typescript-http-rotas.js +129 -0
- package/dist/typescript-http-rotas.js.map +1 -0
- package/dist/typescript-http-semantica.d.ts +11 -0
- package/dist/typescript-http-semantica.js +329 -0
- package/dist/typescript-http-semantica.js.map +1 -0
- package/dist/typescript-http.d.ts +3 -35
- package/dist/typescript-http.js +4 -853
- package/dist/typescript-http.js.map +1 -1
- package/docs/AGENT_STARTER.md +1 -1
- package/docs/agentes-por-capacidade.md +46 -3
- package/docs/documentacao.md +1 -1
- package/docs/fluxo-pratico-ia-sema.md +1 -1
- package/docs/mcp.md +12 -0
- package/docs/pagamento-ponta-a-ponta.md +1 -1
- package/docs/persistencia-vendor-first.md +1 -1
- package/docs/prompt-base-ia-sema.md +1 -1
- package/docs/repositories.md +2 -2
- package/docs/seguranca.md +1 -1
- package/docs/sintaxe.md +1 -1
- package/exemplos/agendamento.sema +1 -1
- package/exemplos/assinatura.sema +1 -1
- package/exemplos/auditoria.sema +1 -1
- package/exemplos/autenticacao.sema +1 -1
- package/exemplos/author_obra_comum.sema +1 -1
- package/exemplos/author_tema_sensivel.sema +1 -1
- package/exemplos/automacao.sema +1 -1
- package/exemplos/cadastro_usuario.sema +1 -1
- package/exemplos/calculadora.sema +1 -1
- package/exemplos/crud_simples.sema +1 -1
- package/exemplos/estoque.sema +1 -1
- package/exemplos/exportacao.sema +1 -1
- package/exemplos/fila.sema +1 -1
- package/exemplos/integracao_externa.sema +1 -1
- package/exemplos/multi_tenant.sema +1 -1
- package/exemplos/notificacao.sema +1 -1
- package/exemplos/operacao_estrategia.sema +132 -633
- package/exemplos/operacao_estrategia_discovery.sema +220 -0
- package/exemplos/operacao_estrategia_fluxo.sema +114 -0
- package/exemplos/operacao_estrategia_gates.sema +106 -0
- package/exemplos/operacao_estrategia_quarentena.sema +133 -0
- package/exemplos/operacao_estrategia_rollout.sema +124 -0
- package/exemplos/pagamento.sema +1 -1
- package/exemplos/pagamento_dominio.sema +1 -1
- package/exemplos/pedido.sema +1 -1
- package/exemplos/permissao.sema +1 -1
- package/exemplos/persistencia_vendor_first.sema +1 -1
- package/exemplos/profile_game.sema +1 -1
- package/exemplos/profile_legal.sema +1 -1
- package/exemplos/profile_ops.sema +1 -1
- package/exemplos/profile_research.sema +1 -1
- package/exemplos/profile_software.sema +1 -1
- package/exemplos/profile_workflow_n8n.sema +1 -1
- package/exemplos/relatorio.sema +1 -1
- package/exemplos/replica_analitica_erp.sema +1 -1
- package/exemplos/testes_embutidos.sema +1 -1
- package/exemplos/tratamento_erro.sema +1 -1
- package/exemplos/upload_arquivo.sema +1 -1
- package/exemplos/webhook.sema +1 -1
- package/llms-full.txt +13 -8
- package/llms.txt +12 -7
- package/node_modules/@sema/gerador-css/dist/index.d.ts +2 -3
- package/node_modules/@sema/gerador-css/dist/index.js +4 -599
- package/node_modules/@sema/gerador-css/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-css/dist/index.part01.d.ts +6 -0
- package/node_modules/@sema/gerador-css/dist/index.part01.js +49 -0
- package/node_modules/@sema/gerador-css/dist/index.part01.js.map +1 -0
- package/node_modules/@sema/gerador-css/dist/index.part02.d.ts +3 -0
- package/node_modules/@sema/gerador-css/dist/index.part02.js +471 -0
- package/node_modules/@sema/gerador-css/dist/index.part02.js.map +1 -0
- package/node_modules/@sema/gerador-python/dist/index.d.ts +2 -6
- package/node_modules/@sema/gerador-python/dist/index.js +4 -771
- package/node_modules/@sema/gerador-python/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-python/dist/index.part01.d.ts +28 -0
- package/node_modules/@sema/gerador-python/dist/index.part01.js +383 -0
- package/node_modules/@sema/gerador-python/dist/index.part01.js.map +1 -0
- package/node_modules/@sema/gerador-python/dist/index.part02.d.ts +20 -0
- package/node_modules/@sema/gerador-python/dist/index.part02.js +396 -0
- package/node_modules/@sema/gerador-python/dist/index.part02.js.map +1 -0
- package/node_modules/@sema/gerador-typescript/dist/index.d.ts +3 -6
- package/node_modules/@sema/gerador-typescript/dist/index.js +5 -810
- package/node_modules/@sema/gerador-typescript/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part01.d.ts +25 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part01.js +358 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +1 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part02.d.ts +14 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js +405 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +1 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part03.d.ts +5 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part03.js +60 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +2 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.d.ts +6 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js +40 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +2 -9
- package/node_modules/@sema/nucleo/dist/formatador/index.js +4 -467
- package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.part01.d.ts +38 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.part01.js +382 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.part02.d.ts +4 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.part02.js +92 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/index.d.ts +2 -0
- package/node_modules/@sema/nucleo/dist/index.js +6 -0
- package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +3 -5
- package/node_modules/@sema/nucleo/dist/ir/conversor.js +5 -880
- package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part01.d.ts +30 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js +398 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part02.d.ts +41 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js +184 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part03.d.ts +5 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js +310 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +3 -9
- package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.d.ts +11 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js +150 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.js +5 -768
- package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.modulo.d.ts +3 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js +222 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part01.d.ts +9 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part01.js +61 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part02.d.ts +40 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part02.js +373 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part03.d.ts +4 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part03.js +9 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +2 -0
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +3 -59
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +2 -1682
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.d.ts +89 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js +292 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.d.ts +29 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js +168 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.d.ts +11 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js +185 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.d.ts +30 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js +200 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.d.ts +6 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js +193 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.d.ts +11 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js +208 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.d.ts +11 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js +247 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.d.ts +3 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js +249 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +2 -106
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +4 -474
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.d.ts +109 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js +259 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.d.ts +9 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js +223 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.d.ts +21 -0
- package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js +40 -0
- package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +1 -0
- package/package.json +10 -10
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
// SEMA-GOVERNED: sema.governanca_ia_contexto
|
|
2
|
+
// Descricao: CLI particionada; consulte contratos/sema/governanca_ia_contexto.sema antes de editar.
|
|
3
|
+
import { mkdir, readFile, stat, writeFile } from "node:fs/promises";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { compilarCodigo, formatarCodigo, formatarDiagnosticos, lerArquivoTexto, temErros, } from "@sema/nucleo";
|
|
6
|
+
import { carregarProjeto, } from "./projeto.js";
|
|
7
|
+
import { ARQUIVOS_CANONICOS_IA_RAIZ, } from './agentContextTipos.js';
|
|
8
|
+
import { criarGuiaCapacidadeIa } from './agentContextPack.js';
|
|
9
|
+
import { sincronizarEntryPointsAgentes, } from './agentEntryPoints.js';
|
|
10
|
+
import { escreverArquivos } from './fsGovernado.js';
|
|
11
|
+
import { materializarExemplosOficiais } from './exemplosOficiais.js';
|
|
12
|
+
import { carregarModulos } from './carregarModulos.js';
|
|
13
|
+
import { obterOpcao, possuiFlag } from './cliArgs.js';
|
|
14
|
+
import { EXEMPLOS_PROMPT_IA, PROMPT_BASE_IA, PROMPT_IA_REACT, PROMPT_IA_SEMA_PRIMEIRO, PROMPT_IA_UI, STARTER_IA } from './iaPrompts.js';
|
|
15
|
+
import { aplicarEstruturaSaida, gerarArquivosPorAlvo, garantirIr, validarCompatibilidadeFramework, } from './geracaoCore.js';
|
|
16
|
+
import { descobrirDocsIa, normalizarModoResumo, normalizarTamanhoResumo, renderizarCabecalhoDocsIa, renderizarCaixaAscii, renderizarSecaoAscii } from "./index.part01.js";
|
|
17
|
+
import { gerarResumoProjetoIa } from "./index.part04.js";
|
|
18
|
+
import { carregarContextoModuloIa, gerarArquivosResumoModuloIa } from "./index.part03.js";
|
|
19
|
+
import { coletarResumoSemanticoModulo, renderizarResumoModuloMarkdown, renderizarResumoModuloTexto } from "./index.part02.js";
|
|
20
|
+
export async function comandoCompilar(entrada, alvo, saida, estrutura, framework, cwd = process.cwd()) {
|
|
21
|
+
const incompatibilidade = validarCompatibilidadeFramework(alvo, framework);
|
|
22
|
+
if (incompatibilidade) {
|
|
23
|
+
console.error(incompatibilidade);
|
|
24
|
+
return 1;
|
|
25
|
+
}
|
|
26
|
+
const modulos = await carregarModulos(entrada, cwd);
|
|
27
|
+
const diagnosticos = modulos.flatMap((item) => item.resultado.diagnosticos);
|
|
28
|
+
if (temErros(diagnosticos)) {
|
|
29
|
+
console.error(formatarDiagnosticos(diagnosticos));
|
|
30
|
+
return 1;
|
|
31
|
+
}
|
|
32
|
+
for (const modulo of modulos) {
|
|
33
|
+
const ir = garantirIr(modulo.resultado, modulo.caminho);
|
|
34
|
+
const arquivos = aplicarEstruturaSaida(gerarArquivosPorAlvo(ir, alvo, framework), ir, estrutura);
|
|
35
|
+
await escreverArquivos(saida, arquivos, { artefatoGerado: true });
|
|
36
|
+
}
|
|
37
|
+
console.log(`Compilacao concluida para o alvo ${alvo} com estrutura ${estrutura} e framework ${framework}.`);
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
export async function comandoDiagnosticos(arquivo, emJson) {
|
|
41
|
+
const codigo = await lerArquivoTexto(arquivo);
|
|
42
|
+
const resultado = compilarCodigo(codigo, arquivo);
|
|
43
|
+
if (emJson) {
|
|
44
|
+
console.log(JSON.stringify(resultado.diagnosticos, null, 2));
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.log(formatarDiagnosticos(resultado.diagnosticos));
|
|
48
|
+
}
|
|
49
|
+
return temErros(resultado.diagnosticos) ? 1 : 0;
|
|
50
|
+
}
|
|
51
|
+
export async function comandoFormatar(entrada, verificarApenas, emJson) {
|
|
52
|
+
const contextoProjeto = await carregarProjeto(entrada, process.cwd());
|
|
53
|
+
const entradaResolvida = contextoProjeto.entradaResolvida;
|
|
54
|
+
const estatisticas = await stat(entradaResolvida);
|
|
55
|
+
const arquivos = estatisticas.isFile()
|
|
56
|
+
? [entradaResolvida]
|
|
57
|
+
: contextoProjeto.arquivosProjeto.filter((arquivo) => arquivo.startsWith(path.resolve(entradaResolvida)));
|
|
58
|
+
const resultados = [];
|
|
59
|
+
for (const arquivo of arquivos) {
|
|
60
|
+
const codigo = await lerArquivoTexto(arquivo);
|
|
61
|
+
const resultado = formatarCodigo(codigo, arquivo);
|
|
62
|
+
const sucesso = !temErros(resultado.diagnosticos) && Boolean(resultado.codigoFormatado);
|
|
63
|
+
resultados.push({
|
|
64
|
+
caminho: arquivo,
|
|
65
|
+
alterado: resultado.alterado,
|
|
66
|
+
sucesso,
|
|
67
|
+
diagnosticos: resultado.diagnosticos,
|
|
68
|
+
});
|
|
69
|
+
if (sucesso && !verificarApenas && resultado.alterado && resultado.codigoFormatado) {
|
|
70
|
+
await writeFile(arquivo, resultado.codigoFormatado, "utf8");
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const possuiErros = resultados.some((resultado) => !resultado.sucesso);
|
|
74
|
+
const possuiDiferencas = resultados.some((resultado) => resultado.alterado);
|
|
75
|
+
const codigoSaida = possuiErros ? 1 : verificarApenas && possuiDiferencas ? 1 : 0;
|
|
76
|
+
if (emJson) {
|
|
77
|
+
console.log(JSON.stringify({
|
|
78
|
+
comando: "formatar",
|
|
79
|
+
sucesso: codigoSaida === 0,
|
|
80
|
+
modo: verificarApenas ? "check" : "write",
|
|
81
|
+
arquivos: resultados,
|
|
82
|
+
totais: {
|
|
83
|
+
arquivos: resultados.length,
|
|
84
|
+
alterados: resultados.filter((resultado) => resultado.alterado).length,
|
|
85
|
+
erros: resultados.filter((resultado) => !resultado.sucesso).length,
|
|
86
|
+
},
|
|
87
|
+
}, null, 2));
|
|
88
|
+
return codigoSaida;
|
|
89
|
+
}
|
|
90
|
+
if (possuiErros) {
|
|
91
|
+
console.error(formatarDiagnosticos(resultados.flatMap((resultado) => resultado.diagnosticos)));
|
|
92
|
+
return 1;
|
|
93
|
+
}
|
|
94
|
+
if (verificarApenas) {
|
|
95
|
+
if (possuiDiferencas) {
|
|
96
|
+
console.error("Arquivos fora do formato canonico:");
|
|
97
|
+
for (const resultado of resultados.filter((item) => item.alterado)) {
|
|
98
|
+
console.error(`- ${resultado.caminho}`);
|
|
99
|
+
}
|
|
100
|
+
return 1;
|
|
101
|
+
}
|
|
102
|
+
console.log("Todos os arquivos ja estao no formato canonico.");
|
|
103
|
+
return 0;
|
|
104
|
+
}
|
|
105
|
+
console.log(`Formatacao concluida. Arquivos verificados=${resultados.length} alterados=${resultados.filter((resultado) => resultado.alterado).length}`);
|
|
106
|
+
return 0;
|
|
107
|
+
}
|
|
108
|
+
export async function comandoStarterIa() {
|
|
109
|
+
const descoberta = await descobrirDocsIa();
|
|
110
|
+
console.log("Starter de IA da Sema");
|
|
111
|
+
console.log("");
|
|
112
|
+
console.log(renderizarCabecalhoDocsIa(descoberta));
|
|
113
|
+
console.log("");
|
|
114
|
+
console.log(STARTER_IA);
|
|
115
|
+
return 0;
|
|
116
|
+
}
|
|
117
|
+
export async function comandoSyncAiEntrypoints(emJson) {
|
|
118
|
+
const resumoProjeto = await gerarResumoProjetoIa(process.cwd(), undefined, true);
|
|
119
|
+
const exemplos = await materializarExemplosOficiais(resumoProjeto.baseProjeto, true);
|
|
120
|
+
if (!exemplos.sucesso) {
|
|
121
|
+
if (emJson) {
|
|
122
|
+
console.log(JSON.stringify({
|
|
123
|
+
comando: "sync-ai-entrypoints",
|
|
124
|
+
sucesso: false,
|
|
125
|
+
baseProjeto: resumoProjeto.baseProjeto,
|
|
126
|
+
erro: exemplos.erro,
|
|
127
|
+
exemplos,
|
|
128
|
+
}, null, 2));
|
|
129
|
+
return 1;
|
|
130
|
+
}
|
|
131
|
+
console.error(exemplos.erro);
|
|
132
|
+
return 1;
|
|
133
|
+
}
|
|
134
|
+
const indexJson = JSON.parse(await readFile(path.join(resumoProjeto.pastaSaida, "SEMA_INDEX.json"), "utf8"));
|
|
135
|
+
const entrypointsClientes = await sincronizarEntryPointsAgentes(resumoProjeto.baseProjeto, indexJson.agentContextPack);
|
|
136
|
+
const artefatos = [...new Set([
|
|
137
|
+
...ARQUIVOS_CANONICOS_IA_RAIZ,
|
|
138
|
+
...resumoProjeto.artefatos,
|
|
139
|
+
...entrypointsClientes.arquivos.map((item) => item.caminho),
|
|
140
|
+
"exemplos",
|
|
141
|
+
])];
|
|
142
|
+
if (emJson) {
|
|
143
|
+
console.log(JSON.stringify({
|
|
144
|
+
comando: "sync-ai-entrypoints",
|
|
145
|
+
sucesso: true,
|
|
146
|
+
baseProjeto: resumoProjeto.baseProjeto,
|
|
147
|
+
pastaSaida: resumoProjeto.pastaSaida,
|
|
148
|
+
artefatos,
|
|
149
|
+
entradaCanonica: indexJson.entradaCanonica,
|
|
150
|
+
entrypointsClientes,
|
|
151
|
+
exemplos,
|
|
152
|
+
}, null, 2));
|
|
153
|
+
return 0;
|
|
154
|
+
}
|
|
155
|
+
console.log("Entrypoints IA-first sincronizados");
|
|
156
|
+
console.log("");
|
|
157
|
+
console.log(`Base do projeto: ${resumoProjeto.baseProjeto}`);
|
|
158
|
+
console.log(`Ordem canônica: ${indexJson.entradaCanonica.ordemLeitura.join(" -> ")}`);
|
|
159
|
+
console.log(`IA fraca: ${indexJson.entradaCanonica.porCapacidade.fraca.join(" -> ")}`);
|
|
160
|
+
console.log(`IA média: ${indexJson.entradaCanonica.porCapacidade.media.join(" -> ")}`);
|
|
161
|
+
console.log(`IA forte: ${indexJson.entradaCanonica.porCapacidade.forte.join(" -> ")}`);
|
|
162
|
+
console.log(`Clientes: ${entrypointsClientes.criados.length} criados, ${entrypointsClientes.atualizados.length} atualizados, ${entrypointsClientes.preservados.length} preservados`);
|
|
163
|
+
console.log(`Exemplos oficiais: ${exemplos.criados.length} criados, ${exemplos.preservados.length} preservados em ${exemplos.destino}`);
|
|
164
|
+
return 0;
|
|
165
|
+
}
|
|
166
|
+
export async function comandoAjudaIa() {
|
|
167
|
+
const descoberta = await descobrirDocsIa();
|
|
168
|
+
console.log("Ajuda de IA da Sema");
|
|
169
|
+
console.log("");
|
|
170
|
+
console.log(renderizarCaixaAscii([
|
|
171
|
+
"IA-first para greenfield, edicao guiada e legado sem contrato inicial",
|
|
172
|
+
"use o menor artefato semantico que resolva a tarefa",
|
|
173
|
+
]));
|
|
174
|
+
console.log("");
|
|
175
|
+
console.log(renderizarCabecalhoDocsIa(descoberta));
|
|
176
|
+
console.log("");
|
|
177
|
+
console.log(renderizarSecaoAscii("Tres jeitos de usar a Sema", [
|
|
178
|
+
"[1] Producao inicial: modele, valide, compile e verifique antes de subir codigo derivado.",
|
|
179
|
+
"[2] Edicao em projeto com Sema: inspecione, leia resumo, rode drift e gere contexto antes de editar codigo vivo.",
|
|
180
|
+
"[3] Projeto sem Sema ainda: importe, revise o rascunho, formate, valide e use drift como juiz da adocao incremental.",
|
|
181
|
+
]));
|
|
182
|
+
console.log("");
|
|
183
|
+
console.log(renderizarSecaoAscii("Capacidade de IA", [
|
|
184
|
+
"fraca: `sema resumo --micro`, `briefing.min.json`, `prompt-curto.txt`",
|
|
185
|
+
"média: `sema resumo --curto`, `drift.json`, `briefing.min.json`",
|
|
186
|
+
"forte: `sema contexto-ia`, `briefing.json`, `ir.json`, `ast.json`",
|
|
187
|
+
]));
|
|
188
|
+
console.log("");
|
|
189
|
+
console.log(renderizarSecaoAscii("Fluxo recomendado", [
|
|
190
|
+
"Use `sema starter-ia` para um texto curto de onboarding.",
|
|
191
|
+
"Use `sema sync-ai-entrypoints` para regenerar `AGENT_CONTEXT_PACK.json`, `SEMA_BRIEF.*` e `SEMA_INDEX.json` na raiz.",
|
|
192
|
+
"Use `sema instalar-exemplos` para materializar `exemplos/` oficiais sem sobrescrever arquivos locais.",
|
|
193
|
+
"Use `sema resumo <arquivo> --micro --para onboarding` para IA fraca.",
|
|
194
|
+
"Se `sema resumo` ou outro gate estourar timeout local, aumente o timeout e tente de novo; timeout do agente nao e falha do Sema.",
|
|
195
|
+
"Use `sema prompt-curto <arquivo> --curto --para mudanca` para colar contexto em modelo gratuito.",
|
|
196
|
+
"Use `sema prompt-ia`, `sema prompt-ia-ui`, `sema prompt-ia-react` e `sema prompt-ia-sema-primeiro` conforme a tarefa.",
|
|
197
|
+
"Use `sema exemplos-prompt-ia` para pegar modelos prontos de prompt.",
|
|
198
|
+
"Use `sema inspecionar` para descobrir base, codigo vivo e fontes legado.",
|
|
199
|
+
"Use `sema drift` para medir impls, vinculos, rotas, score e lacunas.",
|
|
200
|
+
"Use `sema docs-impacto --intencao <acao>` para ler ou criar docs obrigatorias antes de agir.",
|
|
201
|
+
"Use `sema finalizar-mudanca --intencao <acao>` para bloquear conclusao sem leitura documental comprovada.",
|
|
202
|
+
"Use `sema contexto-ia <arquivo.sema>` para gerar AST, IR, drift, `briefing.json` e `briefing.min.json`.",
|
|
203
|
+
"Use `sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua> --saida <diretorio>` quando a tarefa pedir codigo derivado.",
|
|
204
|
+
]));
|
|
205
|
+
console.log("");
|
|
206
|
+
console.log(renderizarSecaoAscii("Regras praticas", [
|
|
207
|
+
"Foi feita para IA operar melhor; leitura humana e consequencia, nao centro de produto.",
|
|
208
|
+
"Governa contrato, intencao, erro, efeito, garantia, fluxo, vinculos e execucao.",
|
|
209
|
+
"Nao escreve contrato final sozinho nem substitui decisao arquitetural.",
|
|
210
|
+
"Se voce quer testar a Sema de verdade, nao peca so HTML solto.",
|
|
211
|
+
"Peca `.sema` + arquitetura + React + TypeScript, ou use o modo `Sema primeiro`.",
|
|
212
|
+
"Se o projeto ja existe, trate `importar` como rascunho e `drift` como juiz.",
|
|
213
|
+
"IA fraca comeca no menor artefato que resolve a tarefa; nao enfie `ast.json` inteiro nela de bobeira.",
|
|
214
|
+
"Timeout local e so limite do agente: escale e tente de novo antes de chamar Sema de inativo.",
|
|
215
|
+
"Antes de editar software vivo, leia `briefing.min.json` ou `briefing.json` em vez de sair cavando arquivo na fe.",
|
|
216
|
+
"Trate `route`, `worker`, `evento`, `fila`, `cron`, `webhook`, `cache`, `storage` e `policy` como superficies de primeira classe.",
|
|
217
|
+
]));
|
|
218
|
+
return 0;
|
|
219
|
+
}
|
|
220
|
+
export async function comandoPromptIa() {
|
|
221
|
+
const descoberta = await descobrirDocsIa();
|
|
222
|
+
console.log("Prompt-base de IA da Sema");
|
|
223
|
+
console.log("");
|
|
224
|
+
console.log(renderizarCabecalhoDocsIa(descoberta));
|
|
225
|
+
console.log("");
|
|
226
|
+
console.log(PROMPT_BASE_IA);
|
|
227
|
+
return 0;
|
|
228
|
+
}
|
|
229
|
+
export async function comandoPromptIaUi() {
|
|
230
|
+
const descoberta = await descobrirDocsIa();
|
|
231
|
+
console.log("Prompt de IA da Sema para UI");
|
|
232
|
+
console.log("");
|
|
233
|
+
console.log(renderizarCabecalhoDocsIa(descoberta));
|
|
234
|
+
console.log("");
|
|
235
|
+
console.log(PROMPT_IA_UI);
|
|
236
|
+
return 0;
|
|
237
|
+
}
|
|
238
|
+
export async function comandoPromptIaReact() {
|
|
239
|
+
const descoberta = await descobrirDocsIa();
|
|
240
|
+
console.log("Prompt de IA da Sema para React");
|
|
241
|
+
console.log("");
|
|
242
|
+
console.log(renderizarCabecalhoDocsIa(descoberta));
|
|
243
|
+
console.log("");
|
|
244
|
+
console.log(PROMPT_IA_REACT);
|
|
245
|
+
return 0;
|
|
246
|
+
}
|
|
247
|
+
export async function comandoPromptIaSemaPrimeiro() {
|
|
248
|
+
const descoberta = await descobrirDocsIa();
|
|
249
|
+
console.log("Prompt de IA da Sema no modo Sema primeiro");
|
|
250
|
+
console.log("");
|
|
251
|
+
console.log(renderizarCabecalhoDocsIa(descoberta));
|
|
252
|
+
console.log("");
|
|
253
|
+
console.log(PROMPT_IA_SEMA_PRIMEIRO);
|
|
254
|
+
return 0;
|
|
255
|
+
}
|
|
256
|
+
export async function comandoExemplosPromptIa() {
|
|
257
|
+
const descoberta = await descobrirDocsIa();
|
|
258
|
+
console.log("Exemplos de prompt de IA da Sema");
|
|
259
|
+
console.log("");
|
|
260
|
+
console.log(renderizarCabecalhoDocsIa(descoberta));
|
|
261
|
+
console.log("");
|
|
262
|
+
console.log(EXEMPLOS_PROMPT_IA);
|
|
263
|
+
return 0;
|
|
264
|
+
}
|
|
265
|
+
export async function comandoResumo(entrada, args, emJson) {
|
|
266
|
+
const tamanho = normalizarTamanhoResumo(args);
|
|
267
|
+
const modo = normalizarModoResumo(obterOpcao(args, "--para"));
|
|
268
|
+
const pastaSaida = obterOpcao(args, "--saida");
|
|
269
|
+
const escreverNaRaiz = possuiFlag(args, "--raiz");
|
|
270
|
+
const alvo = entrada ? path.resolve(process.cwd(), entrada) : process.cwd();
|
|
271
|
+
if (entrada && entrada.toLowerCase().endsWith(".sema")) {
|
|
272
|
+
const contexto = await carregarContextoModuloIa(alvo);
|
|
273
|
+
const resumoSemantico = coletarResumoSemanticoModulo(contexto);
|
|
274
|
+
const guiaPorCapacidade = criarGuiaCapacidadeIa();
|
|
275
|
+
const texto = tamanho === "medio"
|
|
276
|
+
? renderizarResumoModuloMarkdown(resumoSemantico, modo, guiaPorCapacidade)
|
|
277
|
+
: renderizarResumoModuloTexto(resumoSemantico, tamanho, modo);
|
|
278
|
+
let pastaResumo;
|
|
279
|
+
let artefatosCompactos = [];
|
|
280
|
+
if (pastaSaida) {
|
|
281
|
+
pastaResumo = path.resolve(pastaSaida);
|
|
282
|
+
await mkdir(pastaResumo, { recursive: true });
|
|
283
|
+
const gerado = await gerarArquivosResumoModuloIa(contexto, pastaResumo);
|
|
284
|
+
artefatosCompactos = gerado.artefatosCompactos;
|
|
285
|
+
}
|
|
286
|
+
if (emJson) {
|
|
287
|
+
console.log(JSON.stringify({
|
|
288
|
+
comando: "resumo",
|
|
289
|
+
modo,
|
|
290
|
+
tamanho,
|
|
291
|
+
geradoEm: contexto.geradoEm,
|
|
292
|
+
arquivo: contexto.arquivo,
|
|
293
|
+
modulo: contexto.modulo,
|
|
294
|
+
pastaSaida: pastaResumo ?? null,
|
|
295
|
+
artefatosCompactos,
|
|
296
|
+
guiaPorCapacidade,
|
|
297
|
+
resumo: resumoSemantico,
|
|
298
|
+
texto,
|
|
299
|
+
}, null, 2));
|
|
300
|
+
return 0;
|
|
301
|
+
}
|
|
302
|
+
if (pastaResumo) {
|
|
303
|
+
console.log(`Resumo IA-first gerado em ${pastaResumo}`);
|
|
304
|
+
console.log("");
|
|
305
|
+
}
|
|
306
|
+
console.log(texto);
|
|
307
|
+
return 0;
|
|
308
|
+
}
|
|
309
|
+
const resumoProjeto = await gerarResumoProjetoIa(alvo, pastaSaida, escreverNaRaiz);
|
|
310
|
+
const arquivoResumo = tamanho === "micro"
|
|
311
|
+
? "SEMA_BRIEF.micro.txt"
|
|
312
|
+
: tamanho === "curto"
|
|
313
|
+
? "SEMA_BRIEF.curto.txt"
|
|
314
|
+
: "SEMA_BRIEF.md";
|
|
315
|
+
const texto = await readFile(path.join(resumoProjeto.pastaSaida, arquivoResumo), "utf8");
|
|
316
|
+
if (emJson) {
|
|
317
|
+
console.log(JSON.stringify({
|
|
318
|
+
comando: "resumo",
|
|
319
|
+
modo,
|
|
320
|
+
tamanho,
|
|
321
|
+
geradoEm: resumoProjeto.geradoEm,
|
|
322
|
+
baseProjeto: resumoProjeto.baseProjeto,
|
|
323
|
+
pastaSaida: resumoProjeto.pastaSaida,
|
|
324
|
+
artefatos: resumoProjeto.artefatos,
|
|
325
|
+
guiaPorCapacidade: resumoProjeto.guiaPorCapacidade,
|
|
326
|
+
modulos: resumoProjeto.modulos,
|
|
327
|
+
texto,
|
|
328
|
+
}, null, 2));
|
|
329
|
+
return 0;
|
|
330
|
+
}
|
|
331
|
+
console.log(`Resumo IA-first do projeto gerado em ${resumoProjeto.pastaSaida}`);
|
|
332
|
+
console.log("");
|
|
333
|
+
console.log(texto);
|
|
334
|
+
return 0;
|
|
335
|
+
}
|
|
336
|
+
//# sourceMappingURL=index.part06.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.part06.js","sourceRoot":"","sources":["../src/index.part06.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type AlvoGeracao, type FrameworkGeracao } from "@sema/padroes";
|
|
2
|
+
import type { EstruturaSaida } from "./tipos.js";
|
|
3
|
+
import { type ResumoModuloVerificacao } from './geracaoCore.js';
|
|
4
|
+
export declare function comandoPromptCurto(entrada: string | undefined, args: string[], emJson: boolean): Promise<number>;
|
|
5
|
+
export declare function comandoContextoIa(arquivo: string, pastaSaida: string | undefined, emJson: boolean): Promise<number>;
|
|
6
|
+
export declare function comandoTestar(arquivo: string, alvo: AlvoGeracao, saida: string, estrutura: EstruturaSaida, framework: FrameworkGeracao): Promise<number>;
|
|
7
|
+
export declare function imprimirResumoVerificacao(resumos: ResumoModuloVerificacao[]): void;
|
|
8
|
+
export declare function comandoVerificar(entrada: string | undefined, baseSaida: string, cwd?: string): Promise<number>;
|
|
9
|
+
export declare function comandoVerificarJson(entrada: string | undefined, baseSaida: string, cwd?: string): Promise<number>;
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
// SEMA-GOVERNED: sema.governanca_ia_contexto
|
|
2
|
+
// Descricao: CLI particionada; consulte contratos/sema/governanca_ia_contexto.sema antes de editar.
|
|
3
|
+
import { readFile } from "node:fs/promises";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { compilarCodigo, formatarDiagnosticos, lerArquivoTexto, temErros, } from "@sema/nucleo";
|
|
6
|
+
import { carregarProjeto, resolverAlvosVerificacao, } from "./projeto.js";
|
|
7
|
+
import { escreverArquivos } from './fsGovernado.js';
|
|
8
|
+
import { obterOpcao } from './cliArgs.js';
|
|
9
|
+
import { avaliarPreflightVerificacao, imprimirPreflightVerificacao } from './doctorCommand.js';
|
|
10
|
+
import { aplicarEstruturaSaida, executarTestesGerados, executarTestesParaVerificacao, gerarArquivosPorAlvo, garantirIr, nomeSubpastaModulo, resolverConfiguracaoVerificacaoPorAlvo, validarCompatibilidadeFramework, } from './geracaoCore.js';
|
|
11
|
+
import { normalizarModoResumo, normalizarTamanhoResumo } from "./index.part01.js";
|
|
12
|
+
import { carregarContextoModuloIa } from "./index.part03.js";
|
|
13
|
+
import { coletarResumoSemanticoModulo, criarPromptCurtoModulo } from "./index.part02.js";
|
|
14
|
+
import { gerarContextoIa, gerarResumoProjetoIa } from "./index.part04.js";
|
|
15
|
+
export async function comandoPromptCurto(entrada, args, emJson) {
|
|
16
|
+
const tamanho = normalizarTamanhoResumo(args);
|
|
17
|
+
const modo = normalizarModoResumo(obterOpcao(args, "--para"));
|
|
18
|
+
const alvo = entrada ? path.resolve(process.cwd(), entrada) : process.cwd();
|
|
19
|
+
if (entrada && entrada.toLowerCase().endsWith(".sema")) {
|
|
20
|
+
const contexto = await carregarContextoModuloIa(alvo);
|
|
21
|
+
const resumoSemantico = coletarResumoSemanticoModulo(contexto);
|
|
22
|
+
const capacidade = tamanho === "micro" ? "fraca" : tamanho === "curto" ? "media" : "forte";
|
|
23
|
+
const prompt = criarPromptCurtoModulo(resumoSemantico, modo, tamanho, capacidade);
|
|
24
|
+
if (emJson) {
|
|
25
|
+
console.log(JSON.stringify({
|
|
26
|
+
comando: "prompt-curto",
|
|
27
|
+
modo,
|
|
28
|
+
tamanho,
|
|
29
|
+
capacidade,
|
|
30
|
+
geradoEm: contexto.geradoEm,
|
|
31
|
+
arquivo: contexto.arquivo,
|
|
32
|
+
modulo: contexto.modulo,
|
|
33
|
+
prompt,
|
|
34
|
+
}, null, 2));
|
|
35
|
+
return 0;
|
|
36
|
+
}
|
|
37
|
+
console.log(prompt);
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
const resumoProjeto = await gerarResumoProjetoIa(alvo);
|
|
41
|
+
const arquivoResumo = tamanho === "micro"
|
|
42
|
+
? "SEMA_BRIEF.micro.txt"
|
|
43
|
+
: tamanho === "curto"
|
|
44
|
+
? "SEMA_BRIEF.curto.txt"
|
|
45
|
+
: "SEMA_BRIEF.md";
|
|
46
|
+
const contextoProjeto = await readFile(path.join(resumoProjeto.pastaSaida, arquivoResumo), "utf8");
|
|
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, modificar):
|
|
51
|
+
1. Chame sema_docs_impacto 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. Use sema_finalizar_mudanca para comprovar que leu as docs
|
|
55
|
+
|
|
56
|
+
Você está operando Sema em modo IA-first.
|
|
57
|
+
|
|
58
|
+
Isto e contexto comprimido para IA operar contrato semantico antes de tocar codigo vivo.
|
|
59
|
+
|
|
60
|
+
Capacidade alvo: ${capacidade}
|
|
61
|
+
Modo da tarefa: ${modo}
|
|
62
|
+
|
|
63
|
+
Regras:
|
|
64
|
+
- ANTES DE TUDO: chame sema_docs_impacto com sua intenção declarada
|
|
65
|
+
- comece pelo resumo compacto abaixo
|
|
66
|
+
- se a tarefa pedir mais contexto, abra \`AGENT_CONTEXT_PACK.json\` e depois \`SEMA_INDEX.json\`
|
|
67
|
+
- nao tente ler o repo inteiro se o resumo ja disser onde tocar
|
|
68
|
+
- preserve contrato, risco, lacuna e checks sugeridos
|
|
69
|
+
|
|
70
|
+
Contexto do projeto:
|
|
71
|
+
${contextoProjeto.trim()}
|
|
72
|
+
`;
|
|
73
|
+
if (emJson) {
|
|
74
|
+
console.log(JSON.stringify({
|
|
75
|
+
comando: "prompt-curto",
|
|
76
|
+
modo,
|
|
77
|
+
tamanho,
|
|
78
|
+
capacidade,
|
|
79
|
+
geradoEm: resumoProjeto.geradoEm,
|
|
80
|
+
baseProjeto: resumoProjeto.baseProjeto,
|
|
81
|
+
pastaSaida: resumoProjeto.pastaSaida,
|
|
82
|
+
prompt,
|
|
83
|
+
}, null, 2));
|
|
84
|
+
return 0;
|
|
85
|
+
}
|
|
86
|
+
console.log(prompt);
|
|
87
|
+
return 0;
|
|
88
|
+
}
|
|
89
|
+
export async function comandoContextoIa(arquivo, pastaSaida, emJson) {
|
|
90
|
+
const resultado = await gerarContextoIa(arquivo, pastaSaida);
|
|
91
|
+
if (emJson) {
|
|
92
|
+
console.log(JSON.stringify(resultado, null, 2));
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
95
|
+
const resumoGerado = await readFile(path.join(resultado.pastaSaida, "README.md"), "utf8");
|
|
96
|
+
console.log(`Pacote de contexto gerado em ${resultado.pastaSaida}`);
|
|
97
|
+
console.log("");
|
|
98
|
+
console.log(resumoGerado);
|
|
99
|
+
return 0;
|
|
100
|
+
}
|
|
101
|
+
export async function comandoTestar(arquivo, alvo, saida, estrutura, framework) {
|
|
102
|
+
const incompatibilidade = validarCompatibilidadeFramework(alvo, framework);
|
|
103
|
+
if (incompatibilidade) {
|
|
104
|
+
console.error(incompatibilidade);
|
|
105
|
+
return 1;
|
|
106
|
+
}
|
|
107
|
+
const codigo = await lerArquivoTexto(arquivo);
|
|
108
|
+
const resultado = compilarCodigo(codigo, arquivo);
|
|
109
|
+
if (temErros(resultado.diagnosticos)) {
|
|
110
|
+
console.error(formatarDiagnosticos(resultado.diagnosticos));
|
|
111
|
+
return 1;
|
|
112
|
+
}
|
|
113
|
+
const ir = garantirIr(resultado, arquivo);
|
|
114
|
+
const arquivos = aplicarEstruturaSaida(gerarArquivosPorAlvo(ir, alvo, framework), ir, estrutura);
|
|
115
|
+
await escreverArquivos(saida, arquivos, { artefatoGerado: true });
|
|
116
|
+
if (framework !== "base") {
|
|
117
|
+
console.log(`Scaffold ${framework} gerado em ${saida}. A execucao automatica de testes continua focada no framework base da Sema.`);
|
|
118
|
+
return 0;
|
|
119
|
+
}
|
|
120
|
+
return executarTestesGerados(alvo, saida, arquivos).codigoSaida;
|
|
121
|
+
}
|
|
122
|
+
export function imprimirResumoVerificacao(resumos) {
|
|
123
|
+
console.log("\nResumo da verificacao:");
|
|
124
|
+
let totalArquivos = 0;
|
|
125
|
+
let totalTestes = 0;
|
|
126
|
+
let totalAlvos = 0;
|
|
127
|
+
for (const resumo of resumos) {
|
|
128
|
+
console.log(`- Modulo ${resumo.modulo} (${resumo.arquivoFonte})`);
|
|
129
|
+
for (const alvo of resumo.alvos) {
|
|
130
|
+
totalArquivos += alvo.arquivosGerados;
|
|
131
|
+
totalTestes += alvo.quantidadeTestes;
|
|
132
|
+
totalAlvos += 1;
|
|
133
|
+
console.log(` alvo=${alvo.alvo} framework=${alvo.framework} estrutura=${alvo.estrutura} status=${alvo.sucesso ? "ok" : "falhou"} arquivos=${alvo.arquivosGerados} testes=${alvo.quantidadeTestes}${alvo.testesExecutados ? "" : " (skip)"} saida=${alvo.pastaSaida}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
console.log(`Totais: modulos=${resumos.length} alvos=${totalAlvos} arquivos=${totalArquivos} testes=${totalTestes}`);
|
|
137
|
+
}
|
|
138
|
+
export async function comandoVerificar(entrada, baseSaida, cwd = process.cwd()) {
|
|
139
|
+
const contextoProjeto = await carregarProjeto(entrada, cwd);
|
|
140
|
+
const modulos = contextoProjeto.modulosSelecionados;
|
|
141
|
+
const diagnosticos = modulos.flatMap((item) => item.resultado.diagnosticos);
|
|
142
|
+
if (temErros(diagnosticos)) {
|
|
143
|
+
console.error(formatarDiagnosticos(diagnosticos));
|
|
144
|
+
return 1;
|
|
145
|
+
}
|
|
146
|
+
const alvos = resolverAlvosVerificacao(contextoProjeto.configCarregada);
|
|
147
|
+
const configuracoesAlvo = alvos.map((alvo) => ({
|
|
148
|
+
alvo,
|
|
149
|
+
...resolverConfiguracaoVerificacaoPorAlvo(alvo, contextoProjeto.configCarregada),
|
|
150
|
+
}));
|
|
151
|
+
const incompatibilidade = configuracoesAlvo.find((item) => item.incompatibilidade);
|
|
152
|
+
if (incompatibilidade?.incompatibilidade) {
|
|
153
|
+
console.error(incompatibilidade.incompatibilidade);
|
|
154
|
+
return 1;
|
|
155
|
+
}
|
|
156
|
+
const preflight = avaliarPreflightVerificacao(configuracoesAlvo);
|
|
157
|
+
if (!preflight.ok) {
|
|
158
|
+
imprimirPreflightVerificacao(preflight);
|
|
159
|
+
return 1;
|
|
160
|
+
}
|
|
161
|
+
const resumos = [];
|
|
162
|
+
for (const modulo of modulos) {
|
|
163
|
+
const ir = garantirIr(modulo.resultado, modulo.caminho);
|
|
164
|
+
console.log(`Verificando modulo ${modulo.caminho}`);
|
|
165
|
+
const resumoModulo = {
|
|
166
|
+
modulo: ir.nome,
|
|
167
|
+
arquivoFonte: modulo.caminho,
|
|
168
|
+
alvos: [],
|
|
169
|
+
};
|
|
170
|
+
for (const configuracaoAlvo of configuracoesAlvo) {
|
|
171
|
+
const { alvo, framework, estrutura } = configuracaoAlvo;
|
|
172
|
+
const pastaAlvo = path.join(baseSaida, alvo, nomeSubpastaModulo(modulo.caminho));
|
|
173
|
+
const arquivos = aplicarEstruturaSaida(gerarArquivosPorAlvo(ir, alvo, framework), ir, estrutura);
|
|
174
|
+
await escreverArquivos(pastaAlvo, arquivos, { artefatoGerado: true });
|
|
175
|
+
const { execucao, testesExecutados } = executarTestesParaVerificacao(alvo, pastaAlvo, arquivos, framework);
|
|
176
|
+
resumoModulo.alvos.push({
|
|
177
|
+
alvo,
|
|
178
|
+
arquivosGerados: arquivos.length,
|
|
179
|
+
quantidadeTestes: execucao.quantidadeTestes,
|
|
180
|
+
pastaSaida: pastaAlvo,
|
|
181
|
+
sucesso: execucao.codigoSaida === 0,
|
|
182
|
+
framework,
|
|
183
|
+
estrutura,
|
|
184
|
+
testesExecutados,
|
|
185
|
+
});
|
|
186
|
+
if (execucao.codigoSaida !== 0) {
|
|
187
|
+
imprimirResumoVerificacao([...resumos, resumoModulo]);
|
|
188
|
+
console.error(`Falha na verificacao do modulo ${modulo.caminho} para o alvo ${alvo}.`);
|
|
189
|
+
return execucao.codigoSaida;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
resumos.push(resumoModulo);
|
|
193
|
+
}
|
|
194
|
+
imprimirResumoVerificacao(resumos);
|
|
195
|
+
console.log("Verificacao completa concluida com sucesso.");
|
|
196
|
+
return 0;
|
|
197
|
+
}
|
|
198
|
+
export async function comandoVerificarJson(entrada, baseSaida, cwd = process.cwd()) {
|
|
199
|
+
const contextoProjeto = await carregarProjeto(entrada, cwd);
|
|
200
|
+
const modulos = contextoProjeto.modulosSelecionados;
|
|
201
|
+
const diagnosticos = modulos.flatMap((item) => item.resultado.diagnosticos);
|
|
202
|
+
if (temErros(diagnosticos)) {
|
|
203
|
+
console.log(JSON.stringify({
|
|
204
|
+
comando: "verificar",
|
|
205
|
+
sucesso: false,
|
|
206
|
+
diagnosticos,
|
|
207
|
+
modulos: [],
|
|
208
|
+
totais: { modulos: 0, alvos: 0, arquivos: 0, testes: 0 },
|
|
209
|
+
}, null, 2));
|
|
210
|
+
return 1;
|
|
211
|
+
}
|
|
212
|
+
const alvos = resolverAlvosVerificacao(contextoProjeto.configCarregada);
|
|
213
|
+
const configuracoesAlvo = alvos.map((alvo) => ({
|
|
214
|
+
alvo,
|
|
215
|
+
...resolverConfiguracaoVerificacaoPorAlvo(alvo, contextoProjeto.configCarregada),
|
|
216
|
+
}));
|
|
217
|
+
const incompatibilidade = configuracoesAlvo.find((item) => item.incompatibilidade);
|
|
218
|
+
if (incompatibilidade?.incompatibilidade) {
|
|
219
|
+
console.log(JSON.stringify({
|
|
220
|
+
comando: "verificar",
|
|
221
|
+
sucesso: false,
|
|
222
|
+
erro: incompatibilidade.incompatibilidade,
|
|
223
|
+
modulos: [],
|
|
224
|
+
totais: { modulos: 0, alvos: 0, arquivos: 0, testes: 0 },
|
|
225
|
+
}, null, 2));
|
|
226
|
+
return 1;
|
|
227
|
+
}
|
|
228
|
+
const preflight = avaliarPreflightVerificacao(configuracoesAlvo);
|
|
229
|
+
if (!preflight.ok) {
|
|
230
|
+
console.log(JSON.stringify({
|
|
231
|
+
comando: "verificar",
|
|
232
|
+
sucesso: false,
|
|
233
|
+
erro: "Dependencias obrigatorias ausentes para executar a verificacao.",
|
|
234
|
+
preflight,
|
|
235
|
+
modulos: [],
|
|
236
|
+
totais: { modulos: 0, alvos: 0, arquivos: 0, testes: 0 },
|
|
237
|
+
}, null, 2));
|
|
238
|
+
return 1;
|
|
239
|
+
}
|
|
240
|
+
const resumos = [];
|
|
241
|
+
let codigoSaida = 0;
|
|
242
|
+
for (const modulo of modulos) {
|
|
243
|
+
const ir = garantirIr(modulo.resultado, modulo.caminho);
|
|
244
|
+
const resumoModulo = {
|
|
245
|
+
modulo: ir.nome,
|
|
246
|
+
arquivoFonte: modulo.caminho,
|
|
247
|
+
alvos: [],
|
|
248
|
+
saidaTestes: [],
|
|
249
|
+
};
|
|
250
|
+
for (const configuracaoAlvo of configuracoesAlvo) {
|
|
251
|
+
const { alvo, framework, estrutura } = configuracaoAlvo;
|
|
252
|
+
const pastaAlvo = path.join(baseSaida, alvo, nomeSubpastaModulo(modulo.caminho));
|
|
253
|
+
const arquivos = aplicarEstruturaSaida(gerarArquivosPorAlvo(ir, alvo, framework), ir, estrutura);
|
|
254
|
+
await escreverArquivos(pastaAlvo, arquivos, { artefatoGerado: true });
|
|
255
|
+
const { execucao, testesExecutados } = executarTestesParaVerificacao(alvo, pastaAlvo, arquivos, framework, true);
|
|
256
|
+
resumoModulo.alvos.push({
|
|
257
|
+
alvo,
|
|
258
|
+
arquivosGerados: arquivos.length,
|
|
259
|
+
quantidadeTestes: execucao.quantidadeTestes,
|
|
260
|
+
pastaSaida: pastaAlvo,
|
|
261
|
+
sucesso: execucao.codigoSaida === 0,
|
|
262
|
+
framework,
|
|
263
|
+
estrutura,
|
|
264
|
+
testesExecutados,
|
|
265
|
+
});
|
|
266
|
+
resumoModulo.saidaTestes.push({ alvo, stdout: execucao.saidaPadrao, stderr: execucao.saidaErro });
|
|
267
|
+
if (execucao.codigoSaida !== 0) {
|
|
268
|
+
codigoSaida = execucao.codigoSaida;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
resumos.push(resumoModulo);
|
|
272
|
+
}
|
|
273
|
+
const totais = {
|
|
274
|
+
modulos: resumos.length,
|
|
275
|
+
alvos: resumos.reduce((total, resumo) => total + resumo.alvos.length, 0),
|
|
276
|
+
arquivos: resumos.reduce((total, resumo) => total + resumo.alvos.reduce((subTotal, alvo) => subTotal + alvo.arquivosGerados, 0), 0),
|
|
277
|
+
testes: resumos.reduce((total, resumo) => total + resumo.alvos.reduce((subTotal, alvo) => subTotal + alvo.quantidadeTestes, 0), 0),
|
|
278
|
+
};
|
|
279
|
+
console.log(JSON.stringify({
|
|
280
|
+
comando: "verificar",
|
|
281
|
+
sucesso: codigoSaida === 0,
|
|
282
|
+
modulos: resumos,
|
|
283
|
+
totais,
|
|
284
|
+
}, null, 2));
|
|
285
|
+
return codigoSaida;
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=index.part07.js.map
|