@semacode/cli 1.5.36 → 1.5.38
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 +80 -8
- package/LICENSE +1 -2
- package/SEMA_BRIEF.curto.txt +9 -6
- package/SEMA_BRIEF.md +240 -204
- package/SEMA_BRIEF.micro.txt +10 -6
- package/SEMA_INDEX.json +2087 -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 +4 -0
- package/dist/agentContextPack.js +408 -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 +435 -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 +360 -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 +55 -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-css/package.json +1 -1
- package/node_modules/@sema/gerador-dart/package.json +1 -1
- package/node_modules/@sema/gerador-html/package.json +1 -1
- package/node_modules/@sema/gerador-javascript/package.json +1 -1
- package/node_modules/@sema/gerador-lua/package.json +1 -1
- 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-python/package.json +1 -1
- 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/gerador-typescript/package.json +1 -1
- 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 +39 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.part01.js +385 -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/node_modules/@sema/nucleo/package.json +1 -1
- package/node_modules/@sema/padroes/package.json +1 -1
- package/package.json +10 -10
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
// SEMA-GOVERNED: sema.governanca_ia_contexto
|
|
2
|
+
// Descricao: codigo governado pelo Sema; consulte contratos/sema/governanca_ia_contexto.sema antes de editar.
|
|
3
|
+
// SEMA-GOVERNED
|
|
4
|
+
// M?dulo: sema.produto.orcamento_semantico
|
|
5
|
+
// Contrato: contratos/sema/orcamento_semantico.sema
|
|
6
|
+
// Descricao: comando profile da CLI e renderiza??o de valida??o sem?ntica por profile.
|
|
7
|
+
import { readFile } from "node:fs/promises";
|
|
8
|
+
import path from "node:path";
|
|
9
|
+
import { temErros } from "@sema/nucleo";
|
|
10
|
+
import { carregarModulos } from "./carregarModulos.js";
|
|
11
|
+
import { obterOpcao } from "./cliArgs.js";
|
|
12
|
+
import { CAPABILITY_MATRIX_GOVERNANCA, normalizarMaturidadeProfile, normalizarProfileSemantico, PRESETS_PROFILE, REQUISITOS_PROFILE, REQUISITOS_PROFILE_COMUNS, } from "./profileCatalogo.js";
|
|
13
|
+
import { REQUISITOS_PRESET_PROFILE, RULE_PACKS_SEMA } from "./profileRulePacks.js";
|
|
14
|
+
import { avaliarArtefatoProfile } from "./profileArtefatoValidadores.js";
|
|
15
|
+
import { avaliarRequisitosProfile, calcularConfiancaValidacaoProfile, calcularScoreAchadosProfile, calcularScoreProfile, calcularScoreRiscoProfile, criarRuntimeGateProfile, decidirAcaoAgenteProfile, moduloCombinaComProfile, normalizarPresetProfile, selecionarRulePacksProfile, } from "./profileRegras.js";
|
|
16
|
+
export async function carregarArtefatoProfile(args) {
|
|
17
|
+
const texto = obterOpcao(args, "--artefato") ?? obterOpcao(args, "--artifact");
|
|
18
|
+
const arquivo = obterOpcao(args, "--artefato-arquivo") ?? obterOpcao(args, "--artifact-file");
|
|
19
|
+
if (arquivo) {
|
|
20
|
+
const absoluto = path.resolve(process.cwd(), arquivo);
|
|
21
|
+
return { texto: await readFile(absoluto, "utf8"), arquivo: absoluto };
|
|
22
|
+
}
|
|
23
|
+
return { texto: texto ?? null, arquivo: null };
|
|
24
|
+
}
|
|
25
|
+
export async function validarProfileSemantico(entrada, profile, opcoes) {
|
|
26
|
+
if (!entrada) {
|
|
27
|
+
throw new Error("Uso: sema profile validar <software|workflow|ops|game|legal|research|conversas> <arquivo-ou-pasta> [--maturidade draft|prototype|production|critical] [--preset <preset>] [--artefato <texto>|--artefato-arquivo <arquivo>] [--json]");
|
|
28
|
+
}
|
|
29
|
+
const modulos = await carregarModulos(entrada);
|
|
30
|
+
const escolhido = modulos.find((item) => moduloCombinaComProfile(item.resultado.modulo?.nome, item.caminho, profile)) ?? modulos[0];
|
|
31
|
+
if (!escolhido) {
|
|
32
|
+
throw new Error(`Nenhum modulo Sema encontrado para ${entrada}.`);
|
|
33
|
+
}
|
|
34
|
+
const conteudo = await readFile(escolhido.caminho, "utf8");
|
|
35
|
+
const maturidade = opcoes.maturidade;
|
|
36
|
+
const preset = opcoes.preset ?? null;
|
|
37
|
+
const contratoValido = !temErros(escolhido.resultado.diagnosticos);
|
|
38
|
+
const requisitosPreset = preset ? REQUISITOS_PRESET_PROFILE[preset] ?? [] : [];
|
|
39
|
+
const achadosContrato = avaliarRequisitosProfile(conteudo, [...REQUISITOS_PROFILE_COMUNS, ...REQUISITOS_PROFILE[profile]], profile, maturidade);
|
|
40
|
+
const achadosPreset = avaliarRequisitosProfile(conteudo, requisitosPreset, profile, maturidade, "preset");
|
|
41
|
+
const achadosArtefato = avaliarArtefatoProfile(profile, conteudo, opcoes.artefatoTexto, maturidade, preset);
|
|
42
|
+
const achados = [...achadosContrato, ...achadosPreset, ...achadosArtefato];
|
|
43
|
+
const requisitosPendentes = achados.filter((achado) => !achado.atendido).map((achado) => achado.id);
|
|
44
|
+
const obrigatoriosPendentes = achados.filter((achado) => achado.obrigatorio && !achado.atendido).map((achado) => achado.id);
|
|
45
|
+
const scoreContrato = calcularScoreProfile(contratoValido, [...achadosContrato, ...achadosPreset]);
|
|
46
|
+
const scoreArtefato = opcoes.artefatoTexto ? calcularScoreAchadosProfile(100, achadosArtefato) : null;
|
|
47
|
+
const scoreProntoParaAcao = Math.min(scoreContrato, scoreArtefato ?? scoreContrato);
|
|
48
|
+
const decisaoAgente = decidirAcaoAgenteProfile(contratoValido, achados);
|
|
49
|
+
const aprovado = contratoValido && obrigatoriosPendentes.length === 0 && scoreProntoParaAcao >= 80;
|
|
50
|
+
const podeContinuar = decisaoAgente === "continuar" || decisaoAgente === "continuar_com_ressalva";
|
|
51
|
+
const scoreRisco = calcularScoreRiscoProfile(achados);
|
|
52
|
+
const confiancaValidacao = calcularConfiancaValidacaoProfile(Boolean(opcoes.artefatoTexto), achadosArtefato, scoreRisco);
|
|
53
|
+
const prontoParaAcao = aprovado && podeContinuar;
|
|
54
|
+
const confidenceEngine = {
|
|
55
|
+
scoreContratoFormal: scoreContrato,
|
|
56
|
+
scoreAderenciaSemantica: scoreArtefato,
|
|
57
|
+
scoreRisco,
|
|
58
|
+
prontoParaAcao,
|
|
59
|
+
confiancaValidacao,
|
|
60
|
+
comparacaoArtefatoReal: Boolean(opcoes.artefatoTexto),
|
|
61
|
+
heuristicaParcial: confiancaValidacao === "parcial" || confiancaValidacao === "baixa",
|
|
62
|
+
};
|
|
63
|
+
const runtimeGate = criarRuntimeGateProfile(decisaoAgente, maturidade, achados, scoreRisco);
|
|
64
|
+
const capabilityMatrix = CAPABILITY_MATRIX_GOVERNANCA[profile];
|
|
65
|
+
const rulePacksSugeridos = selecionarRulePacksProfile(profile);
|
|
66
|
+
return {
|
|
67
|
+
comando: "profile validar",
|
|
68
|
+
sucesso: aprovado,
|
|
69
|
+
profile,
|
|
70
|
+
arquivo: escolhido.caminho,
|
|
71
|
+
modulo: escolhido.resultado.modulo?.nome ?? null,
|
|
72
|
+
maturidade,
|
|
73
|
+
preset,
|
|
74
|
+
presetsDisponiveis: PRESETS_PROFILE[profile],
|
|
75
|
+
contratoValido,
|
|
76
|
+
artefatoRecebido: Boolean(opcoes.artefatoTexto),
|
|
77
|
+
artefatoArquivo: opcoes.artefatoArquivo ?? null,
|
|
78
|
+
aprovado,
|
|
79
|
+
bloqueado: !aprovado,
|
|
80
|
+
podeContinuar,
|
|
81
|
+
decisaoAgente,
|
|
82
|
+
scoreContrato,
|
|
83
|
+
scoreArtefato,
|
|
84
|
+
scoreProntoParaAcao,
|
|
85
|
+
scoreContratoFormal: scoreContrato,
|
|
86
|
+
scoreAderenciaSemantica: scoreArtefato,
|
|
87
|
+
scoreRisco,
|
|
88
|
+
prontoParaAcao,
|
|
89
|
+
confiancaValidacao,
|
|
90
|
+
confidenceEngine,
|
|
91
|
+
capabilityMatrix,
|
|
92
|
+
runtimeGate,
|
|
93
|
+
rulePacksSugeridos,
|
|
94
|
+
achados,
|
|
95
|
+
achadosArtefato,
|
|
96
|
+
requisitosAtendidos: achados.filter((achado) => achado.atendido).map((achado) => achado.id),
|
|
97
|
+
requisitosPendentes,
|
|
98
|
+
checks: [
|
|
99
|
+
`sema profile validar ${profile} <arquivo> --preset ${preset ?? "<opcional>"} --artefato-arquivo <artefato> --json`,
|
|
100
|
+
"sema validar <arquivo> --json",
|
|
101
|
+
"sema drift <arquivo> --escopo modulo --json",
|
|
102
|
+
"sema contexto-ia <arquivo>",
|
|
103
|
+
],
|
|
104
|
+
diagnosticos: escolhido.resultado.diagnosticos,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
export function renderizarProfileValidarTexto(resultado) {
|
|
108
|
+
const linhas = [
|
|
109
|
+
"PROFILE_VALIDAR",
|
|
110
|
+
`PROFILE: ${resultado.profile}`,
|
|
111
|
+
`ARQUIVO: ${resultado.arquivo}`,
|
|
112
|
+
`MODULO: ${resultado.modulo ?? "desconhecido"}`,
|
|
113
|
+
`MATURIDADE: ${resultado.maturidade}`,
|
|
114
|
+
`PRESET: ${resultado.preset ?? "nenhum"}`,
|
|
115
|
+
`ARTEFATO_RECEBIDO: ${resultado.artefatoRecebido ? "sim" : "nao"}`,
|
|
116
|
+
`APROVADO: ${resultado.aprovado ? "sim" : "nao"}`,
|
|
117
|
+
`BLOQUEADO: ${resultado.bloqueado ? "sim" : "nao"}`,
|
|
118
|
+
`DECISAO_AGENTE: ${resultado.decisaoAgente}`,
|
|
119
|
+
`SCORE_CONTRATO: ${resultado.scoreContrato}`,
|
|
120
|
+
`SCORE_ARTEFATO: ${resultado.scoreArtefato ?? "nao_avaliado"}`,
|
|
121
|
+
`SCORE_PRONTO_PARA_ACAO: ${resultado.scoreProntoParaAcao}`,
|
|
122
|
+
`SCORE_RISCO: ${resultado.scoreRisco}`,
|
|
123
|
+
`CONFIANCA_VALIDACAO: ${resultado.confiancaValidacao}`,
|
|
124
|
+
`RUNTIME_GATE: ${resultado.runtimeGate.decisao}`,
|
|
125
|
+
];
|
|
126
|
+
for (const achado of resultado.achados) {
|
|
127
|
+
linhas.push(`- ${achado.id}: ${achado.atendido ? "ok" : "pendente"} ${achado.severidade}${achado.obrigatorio ? " obrigatorio" : " recomendado"} ${achado.fonte} - ${achado.descricao}`);
|
|
128
|
+
if (achado.linha && achado.coluna)
|
|
129
|
+
linhas.push(` posicao: linha ${achado.linha}, coluna ${achado.coluna}`);
|
|
130
|
+
if (achado.trecho)
|
|
131
|
+
linhas.push(` trecho: ${achado.trecho}`);
|
|
132
|
+
if (achado.motivo)
|
|
133
|
+
linhas.push(` motivo: ${achado.motivo}`);
|
|
134
|
+
if (achado.risco)
|
|
135
|
+
linhas.push(` risco: ${achado.risco}`);
|
|
136
|
+
if (achado.sugestao)
|
|
137
|
+
linhas.push(` sugestao: ${achado.sugestao}`);
|
|
138
|
+
}
|
|
139
|
+
return linhas.join("\n");
|
|
140
|
+
}
|
|
141
|
+
export function criarPayloadCapabilityMatrix() {
|
|
142
|
+
const profiles = Object.values(CAPABILITY_MATRIX_GOVERNANCA);
|
|
143
|
+
return {
|
|
144
|
+
comando: "profile capabilities",
|
|
145
|
+
sucesso: true,
|
|
146
|
+
profiles,
|
|
147
|
+
resumo: {
|
|
148
|
+
profiles: profiles.length,
|
|
149
|
+
validaArtefatoReal: profiles.filter((profile) => profile.validaArtefatoReal).map((profile) => profile.profile),
|
|
150
|
+
interpretaNegacao: profiles.filter((profile) => profile.interpretaNegacao).map((profile) => profile.profile),
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
export function renderizarCapabilityMatrixTexto(payload) {
|
|
155
|
+
return [
|
|
156
|
+
"CAPABILITY_MATRIX",
|
|
157
|
+
...payload.profiles.map((profile) => [
|
|
158
|
+
`- ${profile.profile}: confianca=${profile.confianca}`,
|
|
159
|
+
` literal=${profile.detectaLiteral ? "sim" : "nao"} semantico=${profile.detectaSemantico} ordem=${profile.detectaOrdemExecucao} artefato=${profile.validaArtefatoReal} negacao=${profile.interpretaNegacao ? "sim" : "nao"}`,
|
|
160
|
+
` packs=${profile.rulePacksSugeridos.join(", ")}`,
|
|
161
|
+
` limites=${profile.limites.join(" | ")}`,
|
|
162
|
+
].join("\n")).join("\n"),
|
|
163
|
+
].join("\n");
|
|
164
|
+
}
|
|
165
|
+
export function criarPayloadRulePacks(profileFiltro = null) {
|
|
166
|
+
const packs = profileFiltro
|
|
167
|
+
? RULE_PACKS_SEMA.filter((pack) => pack.profiles.includes(profileFiltro))
|
|
168
|
+
: RULE_PACKS_SEMA;
|
|
169
|
+
return {
|
|
170
|
+
comando: "rule-packs",
|
|
171
|
+
sucesso: true,
|
|
172
|
+
profile: profileFiltro,
|
|
173
|
+
packs,
|
|
174
|
+
resumo: {
|
|
175
|
+
total: packs.length,
|
|
176
|
+
abertos: packs.filter((pack) => pack.monetizacao === "aberto").map((pack) => pack.id),
|
|
177
|
+
pagos: packs.filter((pack) => pack.monetizacao !== "aberto").map((pack) => pack.id),
|
|
178
|
+
enterprise: packs.filter((pack) => pack.categoria === "enterprise").map((pack) => pack.id),
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
export function renderizarRulePacksTexto(payload) {
|
|
183
|
+
return [
|
|
184
|
+
"RULE_PACKS",
|
|
185
|
+
...payload.packs.map((pack) => [
|
|
186
|
+
`- ${pack.id}: ${pack.nome}`,
|
|
187
|
+
` profiles=${pack.profiles.join(", ")} maturidade_minima=${pack.maturidadeMinima} monetizacao=${pack.monetizacao} status=${pack.status}`,
|
|
188
|
+
` controles=${pack.controles.join(", ")}`,
|
|
189
|
+
].join("\n")),
|
|
190
|
+
].join("\n");
|
|
191
|
+
}
|
|
192
|
+
export function normalizarProfileGovernanca(valor) {
|
|
193
|
+
if (!valor)
|
|
194
|
+
return null;
|
|
195
|
+
const chave = valor.toLowerCase().replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "");
|
|
196
|
+
if (chave === "author" || chave === "autor" || chave === "escrita")
|
|
197
|
+
return "author";
|
|
198
|
+
return normalizarProfileSemantico(valor);
|
|
199
|
+
}
|
|
200
|
+
export async function comandoProfile(posicionais, args, emJson) {
|
|
201
|
+
const subcomando = posicionais[0];
|
|
202
|
+
if (!subcomando || subcomando === "help" || subcomando === "ajuda") {
|
|
203
|
+
console.log([
|
|
204
|
+
"Uso: sema profile <validar|capabilities|rule-packs>",
|
|
205
|
+
"",
|
|
206
|
+
"Comandos:",
|
|
207
|
+
" sema profile validar <software|workflow|ops|game|legal|research|conversas> <arquivo-ou-pasta> [--maturidade draft|prototype|production|critical] [--preset <preset>] [--artefato <texto>|--artefato-arquivo <arquivo>] [--json]",
|
|
208
|
+
" sema profile capabilities [--json]",
|
|
209
|
+
" sema profile rule-packs [--profile <author|software|workflow|ops|game|legal|research|conversas>] [--json]",
|
|
210
|
+
"",
|
|
211
|
+
"O profile e um gate semantico: se requisito obrigatorio faltar, a saida bloqueia.",
|
|
212
|
+
].join("\n"));
|
|
213
|
+
return subcomando ? 0 : 1;
|
|
214
|
+
}
|
|
215
|
+
if (subcomando === "capabilities" || subcomando === "capability-matrix" || subcomando === "matrix") {
|
|
216
|
+
const payload = criarPayloadCapabilityMatrix();
|
|
217
|
+
console.log(emJson ? JSON.stringify(payload, null, 2) : renderizarCapabilityMatrixTexto(payload));
|
|
218
|
+
return 0;
|
|
219
|
+
}
|
|
220
|
+
if (subcomando === "rule-packs" || subcomando === "packs") {
|
|
221
|
+
const profileFiltro = normalizarProfileGovernanca(obterOpcao(args, "--profile"));
|
|
222
|
+
const payload = criarPayloadRulePacks(profileFiltro);
|
|
223
|
+
console.log(emJson ? JSON.stringify(payload, null, 2) : renderizarRulePacksTexto(payload));
|
|
224
|
+
return 0;
|
|
225
|
+
}
|
|
226
|
+
if (subcomando !== "validar") {
|
|
227
|
+
console.error(`Subcomando profile desconhecido: ${subcomando}`);
|
|
228
|
+
return 1;
|
|
229
|
+
}
|
|
230
|
+
const profile = normalizarProfileSemantico(posicionais[1] ?? obterOpcao(args, "--profile"));
|
|
231
|
+
const entrada = posicionais[2] ?? obterOpcao(args, "--arquivo");
|
|
232
|
+
if (!profile) {
|
|
233
|
+
console.error("Profile invalido. Use software, workflow, ops, game, legal, research ou conversas.");
|
|
234
|
+
return 1;
|
|
235
|
+
}
|
|
236
|
+
const preset = normalizarPresetProfile(profile, obterOpcao(args, "--preset"));
|
|
237
|
+
if (obterOpcao(args, "--preset") && !preset) {
|
|
238
|
+
console.error(`Preset invalido para ${profile}. Use: ${PRESETS_PROFILE[profile].join(", ")}.`);
|
|
239
|
+
return 1;
|
|
240
|
+
}
|
|
241
|
+
const artefato = await carregarArtefatoProfile(args);
|
|
242
|
+
const resultado = await validarProfileSemantico(entrada, profile, {
|
|
243
|
+
maturidade: normalizarMaturidadeProfile(obterOpcao(args, "--maturidade")),
|
|
244
|
+
preset,
|
|
245
|
+
artefatoTexto: artefato.texto,
|
|
246
|
+
artefatoArquivo: artefato.arquivo,
|
|
247
|
+
});
|
|
248
|
+
if (emJson) {
|
|
249
|
+
console.log(JSON.stringify(resultado, null, 2));
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
console.log(renderizarProfileValidarTexto(resultado));
|
|
253
|
+
}
|
|
254
|
+
return resultado.sucesso ? 0 : 1;
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=profileCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profileCommand.js","sourceRoot":"","sources":["../src/profileCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare function expandirIntencaoSemanticaProfile(contrato: string, profile?: string, termoDetectado?: string): {
|
|
2
|
+
expansoes: string[];
|
|
3
|
+
requisitos_inferidos: string[];
|
|
4
|
+
exige_declaracao: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare function sugerirStarterPresetProfile(profile: string, preset: string | undefined, requisitosPendentes: string[]): {
|
|
7
|
+
starter: {
|
|
8
|
+
profile: string;
|
|
9
|
+
preset: string;
|
|
10
|
+
contrato: string;
|
|
11
|
+
requisitos_cobertos: string[];
|
|
12
|
+
};
|
|
13
|
+
contrato_minimo: string;
|
|
14
|
+
deve_aplicar_como_patch: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare function validarPipelineProfiles(pipeline: string, contrato: string, artefato: string | undefined, maturidade: string): {
|
|
17
|
+
decisao_global: string;
|
|
18
|
+
matriz: {
|
|
19
|
+
profile: string;
|
|
20
|
+
decisao: string;
|
|
21
|
+
}[];
|
|
22
|
+
motivo_principal: string;
|
|
23
|
+
proxima_acao: string;
|
|
24
|
+
};
|
|
25
|
+
export declare function exigirQaCriativoQuandoPublicavel(contrato: string, profile: string, artefatoPublicavel: boolean): {
|
|
26
|
+
qa_requerido: boolean;
|
|
27
|
+
gate_final: string;
|
|
28
|
+
};
|
|
29
|
+
export declare function catalogoDropdownOnboarding(publico: string, contexto: string): {
|
|
30
|
+
pipelines: string[];
|
|
31
|
+
starters: string[];
|
|
32
|
+
profiles_principais: string[];
|
|
33
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// SEMA-GOVERNED: sema.produto.orquestracao_profiles
|
|
2
|
+
// Descricao: orquestracao IA-first de profiles, starters e gates criativos; consulte contratos/sema/orquestracao_profiles.sema antes de editar.
|
|
3
|
+
export function expandirIntencaoSemanticaProfile(contrato, profile, termoDetectado) {
|
|
4
|
+
const texto = `${contrato} ${profile ?? ""} ${termoDetectado ?? ""}`.toLowerCase();
|
|
5
|
+
const expansoes = [];
|
|
6
|
+
if (/campanha|publica|instagram|social/.test(texto)) {
|
|
7
|
+
expansoes.push("copywriting", "qa_criativo", "publicacao_multicanal");
|
|
8
|
+
}
|
|
9
|
+
if (/imagem|foto|thumb|visual/.test(texto)) {
|
|
10
|
+
expansoes.push("imagens", "edicao_fotos", "identidade_marca");
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
expansoes: [...new Set(expansoes)],
|
|
14
|
+
requisitos_inferidos: expansoes.map((item) => `${item}_declarado`),
|
|
15
|
+
exige_declaracao: expansoes.length > 0,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function sugerirStarterPresetProfile(profile, preset, requisitosPendentes) {
|
|
19
|
+
const contrato = `module starter.${profile} {\n docs { resumo: \"Starter ${profile}${preset ? ` ${preset}` : ""}\" }\n}`;
|
|
20
|
+
return {
|
|
21
|
+
starter: { profile, preset: preset ?? "padrao", contrato, requisitos_cobertos: requisitosPendentes },
|
|
22
|
+
contrato_minimo: contrato,
|
|
23
|
+
deve_aplicar_como_patch: requisitosPendentes.length > 0,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export function validarPipelineProfiles(pipeline, contrato, artefato, maturidade) {
|
|
27
|
+
const matriz = [
|
|
28
|
+
{ profile: "software", decisao: contrato ? "continuar" : "parar" },
|
|
29
|
+
{ profile: "qa_criativo", decisao: artefato ? "continuar_com_ressalva" : "nao_aplicavel" },
|
|
30
|
+
];
|
|
31
|
+
const bloqueado = !pipeline || !contrato || !maturidade;
|
|
32
|
+
return {
|
|
33
|
+
decisao_global: bloqueado ? "parar" : "continuar",
|
|
34
|
+
matriz,
|
|
35
|
+
motivo_principal: bloqueado ? "pipeline, contrato e maturidade sao obrigatorios" : "pipeline possui contexto minimo",
|
|
36
|
+
proxima_acao: bloqueado ? "declarar_contexto" : "validar_profiles_especificos",
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export function exigirQaCriativoQuandoPublicavel(contrato, profile, artefatoPublicavel) {
|
|
40
|
+
const qaRequerido = artefatoPublicavel && /copywriting|imagens|videos|publicacao|qa_criativo/.test(`${contrato} ${profile}`);
|
|
41
|
+
return {
|
|
42
|
+
qa_requerido: qaRequerido,
|
|
43
|
+
gate_final: qaRequerido ? "rodar_qa_criativo" : "qa_nao_obrigatorio",
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export function catalogoDropdownOnboarding(publico, contexto) {
|
|
47
|
+
return {
|
|
48
|
+
pipelines: ["campanha_produto", "proposta_comercial", "conteudo_youtube"],
|
|
49
|
+
starters: [`${publico || "agente"}_${contexto || "geral"}`],
|
|
50
|
+
profiles_principais: ["software", "copywriting", "qa_criativo", "publicacao_multicanal"],
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=profileOrquestracao.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profileOrquestracao.js","sourceRoot":"","sources":["../src/profileOrquestracao.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AchadoProfile, ConfiancaValidacaoProfile, DecisaoAgenteProfile, FonteAchadoProfile, MaturidadeProfile, PerfilSemantico, PresetProfile, ProfileGovernanca, RequisitoProfile, RulePackSema, RuntimeGateProfile, SeveridadeProfile } from "./profileAuthorTipos.js";
|
|
2
|
+
export declare function normalizarPresetProfile(profile: PerfilSemantico, valor: string | undefined): PresetProfile | null;
|
|
3
|
+
export declare function moduloCombinaComProfile(modulo: string | null | undefined, caminho: string, profile: PerfilSemantico): boolean;
|
|
4
|
+
export declare function severidadeRequisitoProfile(requisito: RequisitoProfile, profile: PerfilSemantico, maturidade: MaturidadeProfile): SeveridadeProfile;
|
|
5
|
+
export declare function riscoAchadoProfile(severidade: SeveridadeProfile, fonte: FonteAchadoProfile): string;
|
|
6
|
+
export declare function avaliarRequisitosProfile(conteudo: string, requisitos: RequisitoProfile[], profile: PerfilSemantico, maturidade: MaturidadeProfile, fonte?: FonteAchadoProfile): AchadoProfile[];
|
|
7
|
+
export declare function decidirAcaoAgenteProfile(contratoValido: boolean, achados: AchadoProfile[]): DecisaoAgenteProfile;
|
|
8
|
+
export declare function calcularScoreProfile(contratoValido: boolean, achados: AchadoProfile[]): number;
|
|
9
|
+
export declare function penalidadeAchadoProfile(achado: AchadoProfile): number;
|
|
10
|
+
export declare function calcularScoreAchadosProfile(base: number, achados: AchadoProfile[]): number;
|
|
11
|
+
export declare function calcularScoreRiscoProfile(achados: AchadoProfile[]): number;
|
|
12
|
+
export declare function severidadeMaximaProfile(achados: AchadoProfile[]): SeveridadeProfile | null;
|
|
13
|
+
export declare function calcularConfiancaValidacaoProfile(artefatoRecebido: boolean, achadosArtefato: AchadoProfile[], scoreRisco: number): ConfiancaValidacaoProfile;
|
|
14
|
+
export declare function criarRuntimeGateProfile(decisao: DecisaoAgenteProfile, maturidade: MaturidadeProfile, achados: AchadoProfile[], scoreRisco: number): RuntimeGateProfile;
|
|
15
|
+
export declare function selecionarRulePacksProfile(profile: ProfileGovernanca): RulePackSema[];
|
|
16
|
+
export declare function contratoProibeTermoProfile(contrato: string, termo: string): boolean;
|
|
17
|
+
export declare function criarAchadoArtefatoProfile(id: string, descricao: string, atendido: boolean, severidade: SeveridadeProfile, trecho?: string, sugestao?: string, motivo?: string, detalhes?: Partial<Pick<AchadoProfile, "linha" | "coluna" | "inicio" | "fim" | "regra" | "risco">>): AchadoProfile;
|
|
18
|
+
export declare function trechoRegexProfile(texto: string, regex: RegExp): string | undefined;
|
|
19
|
+
export declare function contemArtefatoProfile(texto: string, regex: RegExp): boolean;
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
// SEMA-GOVERNED
|
|
2
|
+
// M?dulo: sema.produto.orcamento_semantico
|
|
3
|
+
// Contrato: contratos/sema/orcamento_semantico.sema
|
|
4
|
+
// Descri??o: normaliza??o, scoring, decis?o de agente e achados de contrato dos profiles.
|
|
5
|
+
import { PRESETS_PROFILE } from "./profileCatalogo.js";
|
|
6
|
+
import { RULE_PACKS_SEMA } from "./profileRulePacks.js";
|
|
7
|
+
export function normalizarPresetProfile(profile, valor) {
|
|
8
|
+
if (!valor)
|
|
9
|
+
return null;
|
|
10
|
+
const chave = valor.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "");
|
|
11
|
+
const alias = {
|
|
12
|
+
privacidade: "privacidade",
|
|
13
|
+
privacy: "privacidade",
|
|
14
|
+
termos: "termos_uso",
|
|
15
|
+
termos_de_uso: "termos_uso",
|
|
16
|
+
due: "due_diligence",
|
|
17
|
+
diligence: "due_diligence",
|
|
18
|
+
pesquisa_rapida: "rapida",
|
|
19
|
+
pesquisa_tecnica: "tecnica",
|
|
20
|
+
pesquisa_decisoria: "decisoria",
|
|
21
|
+
pesquisa_critica: "critica",
|
|
22
|
+
critico: "critical",
|
|
23
|
+
critica_ops: "critical",
|
|
24
|
+
modulo_codigo: "modulo",
|
|
25
|
+
seguranca: "security",
|
|
26
|
+
seguranca_codigo: "security",
|
|
27
|
+
atendimento_cliente: "atendimento",
|
|
28
|
+
conversa_atendimento: "atendimento",
|
|
29
|
+
comercial: "vendas",
|
|
30
|
+
venda: "vendas",
|
|
31
|
+
conversa_vendas: "vendas",
|
|
32
|
+
suporte_cliente: "suporte",
|
|
33
|
+
qualificar: "qualificacao",
|
|
34
|
+
qualificacao_lead: "qualificacao",
|
|
35
|
+
retencao_cliente: "retencao",
|
|
36
|
+
cobrar: "cobranca",
|
|
37
|
+
};
|
|
38
|
+
const preset = alias[chave] ?? chave;
|
|
39
|
+
return PRESETS_PROFILE[profile].includes(preset) ? preset : null;
|
|
40
|
+
}
|
|
41
|
+
export function moduloCombinaComProfile(modulo, caminho, profile) {
|
|
42
|
+
const alvo = `${modulo ?? ""} ${caminho}`.toLowerCase();
|
|
43
|
+
if (profile === "workflow") {
|
|
44
|
+
return /workflow|n8n|orquestracao/.test(alvo);
|
|
45
|
+
}
|
|
46
|
+
if (profile === "conversas") {
|
|
47
|
+
return /conversas|conversa|atendimento|chatbot|bot/.test(alvo);
|
|
48
|
+
}
|
|
49
|
+
return alvo.includes(profile);
|
|
50
|
+
}
|
|
51
|
+
export function severidadeRequisitoProfile(requisito, profile, maturidade) {
|
|
52
|
+
if (requisito.severidade)
|
|
53
|
+
return requisito.severidade;
|
|
54
|
+
if (!requisito.obrigatorio)
|
|
55
|
+
return "warning";
|
|
56
|
+
if (maturidade === "critical")
|
|
57
|
+
return "critical";
|
|
58
|
+
if ((profile === "legal" && /revisao|jurisdicao|fontes|auditoria/i.test(requisito.id)) ||
|
|
59
|
+
(profile === "ops" && /runbook|rollback|segredos|incidente/i.test(requisito.id))) {
|
|
60
|
+
return "critical";
|
|
61
|
+
}
|
|
62
|
+
return maturidade === "draft" ? "warning" : "blocking";
|
|
63
|
+
}
|
|
64
|
+
export function riscoAchadoProfile(severidade, fonte) {
|
|
65
|
+
if (severidade === "critical")
|
|
66
|
+
return fonte === "artefato" ? "violacao_critica_no_artefato" : "risco_critico_de_governanca";
|
|
67
|
+
if (severidade === "blocking")
|
|
68
|
+
return fonte === "artefato" ? "artefato_nao_aderente" : "contrato_nao_pronto";
|
|
69
|
+
if (severidade === "warning")
|
|
70
|
+
return "ressalva_operacional";
|
|
71
|
+
return "informativo";
|
|
72
|
+
}
|
|
73
|
+
export function avaliarRequisitosProfile(conteudo, requisitos, profile, maturidade, fonte = "contrato") {
|
|
74
|
+
return requisitos.map((requisito) => {
|
|
75
|
+
const severidade = severidadeRequisitoProfile(requisito, profile, maturidade);
|
|
76
|
+
const atendido = requisito.termos.every((termo) => termo.test(conteudo));
|
|
77
|
+
return {
|
|
78
|
+
id: requisito.id,
|
|
79
|
+
descricao: requisito.descricao,
|
|
80
|
+
obrigatorio: requisito.obrigatorio,
|
|
81
|
+
atendido,
|
|
82
|
+
severidade,
|
|
83
|
+
termos: requisito.termos.map((termo) => termo.source),
|
|
84
|
+
fonte,
|
|
85
|
+
regra: requisito.id,
|
|
86
|
+
motivo: atendido ? undefined : `requisito ${fonte} nao foi demonstrado no contrato.`,
|
|
87
|
+
risco: atendido ? undefined : riscoAchadoProfile(severidade, fonte),
|
|
88
|
+
sugestao: atendido ? undefined : "declare o requisito com entradas, efeitos, garantias e checks rastreaveis.",
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
export function decidirAcaoAgenteProfile(contratoValido, achados) {
|
|
93
|
+
if (!contratoValido)
|
|
94
|
+
return "parar";
|
|
95
|
+
const pendentes = achados.filter((achado) => !achado.atendido);
|
|
96
|
+
if (pendentes.some((achado) => achado.severidade === "critical"))
|
|
97
|
+
return "chamar_humano";
|
|
98
|
+
if (pendentes.some((achado) => achado.severidade === "blocking"))
|
|
99
|
+
return "parar";
|
|
100
|
+
if (pendentes.some((achado) => achado.severidade === "warning"))
|
|
101
|
+
return "continuar_com_ressalva";
|
|
102
|
+
return "continuar";
|
|
103
|
+
}
|
|
104
|
+
export function calcularScoreProfile(contratoValido, achados) {
|
|
105
|
+
const pendentesObrigatorios = achados.filter((achado) => achado.obrigatorio && !achado.atendido).length;
|
|
106
|
+
const pendentesRecomendados = achados.filter((achado) => !achado.obrigatorio && !achado.atendido).length;
|
|
107
|
+
return Math.max(0, 100 - (contratoValido ? 0 : 40) - pendentesObrigatorios * 20 - pendentesRecomendados * 8);
|
|
108
|
+
}
|
|
109
|
+
export function penalidadeAchadoProfile(achado) {
|
|
110
|
+
if (achado.atendido)
|
|
111
|
+
return 0;
|
|
112
|
+
if (achado.severidade === "critical")
|
|
113
|
+
return 40;
|
|
114
|
+
if (achado.severidade === "blocking")
|
|
115
|
+
return 25;
|
|
116
|
+
if (achado.severidade === "warning")
|
|
117
|
+
return 10;
|
|
118
|
+
return 0;
|
|
119
|
+
}
|
|
120
|
+
export function calcularScoreAchadosProfile(base, achados) {
|
|
121
|
+
return Math.max(0, base - achados.reduce((total, achado) => total + penalidadeAchadoProfile(achado), 0));
|
|
122
|
+
}
|
|
123
|
+
export function calcularScoreRiscoProfile(achados) {
|
|
124
|
+
const pendentes = achados.filter((achado) => !achado.atendido);
|
|
125
|
+
return Math.min(100, pendentes.reduce((total, achado) => {
|
|
126
|
+
if (achado.severidade === "critical")
|
|
127
|
+
return total + 35;
|
|
128
|
+
if (achado.severidade === "blocking")
|
|
129
|
+
return total + 22;
|
|
130
|
+
if (achado.severidade === "warning")
|
|
131
|
+
return total + 8;
|
|
132
|
+
return total + 2;
|
|
133
|
+
}, 0));
|
|
134
|
+
}
|
|
135
|
+
export function severidadeMaximaProfile(achados) {
|
|
136
|
+
const pendentes = achados.filter((achado) => !achado.atendido);
|
|
137
|
+
if (pendentes.some((achado) => achado.severidade === "critical"))
|
|
138
|
+
return "critical";
|
|
139
|
+
if (pendentes.some((achado) => achado.severidade === "blocking"))
|
|
140
|
+
return "blocking";
|
|
141
|
+
if (pendentes.some((achado) => achado.severidade === "warning"))
|
|
142
|
+
return "warning";
|
|
143
|
+
if (pendentes.some((achado) => achado.severidade === "info"))
|
|
144
|
+
return "info";
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
export function calcularConfiancaValidacaoProfile(artefatoRecebido, achadosArtefato, scoreRisco) {
|
|
148
|
+
if (!artefatoRecebido)
|
|
149
|
+
return "parcial";
|
|
150
|
+
if (scoreRisco >= 70)
|
|
151
|
+
return "media";
|
|
152
|
+
if (achadosArtefato.some((achado) => !achado.atendido && achado.trecho && achado.linha))
|
|
153
|
+
return "alta";
|
|
154
|
+
if (achadosArtefato.length > 0)
|
|
155
|
+
return "media";
|
|
156
|
+
return "media";
|
|
157
|
+
}
|
|
158
|
+
export function criarRuntimeGateProfile(decisao, maturidade, achados, scoreRisco) {
|
|
159
|
+
const severidadeMaxima = severidadeMaximaProfile(achados);
|
|
160
|
+
const exigeHumano = decisao === "chamar_humano" || severidadeMaxima === "critical";
|
|
161
|
+
const podeExecutar = decisao === "continuar" || decisao === "continuar_com_ressalva";
|
|
162
|
+
return {
|
|
163
|
+
decisao,
|
|
164
|
+
maturidade,
|
|
165
|
+
podeExecutar,
|
|
166
|
+
exigeHumano,
|
|
167
|
+
scoreRisco,
|
|
168
|
+
severidadeMaxima,
|
|
169
|
+
motivo: podeExecutar
|
|
170
|
+
? "gate permite continuidade com as ressalvas declaradas."
|
|
171
|
+
: exigeHumano
|
|
172
|
+
? "gate bloqueia e exige humano por risco critico ou maturidade critica."
|
|
173
|
+
: "gate bloqueia ate resolver requisitos obrigatorios.",
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
export function selecionarRulePacksProfile(profile) {
|
|
177
|
+
return RULE_PACKS_SEMA.filter((pack) => pack.profiles.includes(profile));
|
|
178
|
+
}
|
|
179
|
+
export function contratoProibeTermoProfile(contrato, termo) {
|
|
180
|
+
const escaped = termo.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
181
|
+
const padroes = [
|
|
182
|
+
new RegExp(`(forbidden|proibid|vedad|nao usar|não usar|sem)\\s+[^\\n]{0,80}${escaped}`, "i"),
|
|
183
|
+
new RegExp(`${escaped}[^\\n]{0,80}(forbidden|proibid|vedad|nao permitido|não permitido|nao usar|não usar)`, "i"),
|
|
184
|
+
];
|
|
185
|
+
return padroes.some((padrao) => padrao.test(contrato));
|
|
186
|
+
}
|
|
187
|
+
export function criarAchadoArtefatoProfile(id, descricao, atendido, severidade, trecho, sugestao, motivo, detalhes) {
|
|
188
|
+
return {
|
|
189
|
+
id,
|
|
190
|
+
descricao,
|
|
191
|
+
obrigatorio: severidade === "blocking" || severidade === "critical",
|
|
192
|
+
atendido,
|
|
193
|
+
severidade,
|
|
194
|
+
termos: [],
|
|
195
|
+
fonte: "artefato",
|
|
196
|
+
regra: detalhes?.regra ?? id,
|
|
197
|
+
trecho,
|
|
198
|
+
linha: detalhes?.linha,
|
|
199
|
+
coluna: detalhes?.coluna,
|
|
200
|
+
inicio: detalhes?.inicio,
|
|
201
|
+
fim: detalhes?.fim,
|
|
202
|
+
motivo,
|
|
203
|
+
risco: detalhes?.risco ?? (atendido ? undefined : riscoAchadoProfile(severidade, "artefato")),
|
|
204
|
+
sugestao,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
export function trechoRegexProfile(texto, regex) {
|
|
208
|
+
const match = regex.exec(texto);
|
|
209
|
+
if (!match || match.index < 0)
|
|
210
|
+
return undefined;
|
|
211
|
+
const inicio = Math.max(0, match.index - 60);
|
|
212
|
+
const fim = Math.min(texto.length, match.index + match[0].length + 60);
|
|
213
|
+
return texto.slice(inicio, fim).replace(/\s+/g, " ").trim();
|
|
214
|
+
}
|
|
215
|
+
export function contemArtefatoProfile(texto, regex) {
|
|
216
|
+
regex.lastIndex = 0;
|
|
217
|
+
return regex.test(texto);
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=profileRegras.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profileRegras.js","sourceRoot":"","sources":["../src/profileRegras.ts"],"names":[],"mappings":"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"}
|