@semacode/cli 1.5.35 → 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/AGENTS.md +1 -1
- package/AGENT_CONTEXT_PACK.json +130 -12
- package/LICENSE +1 -2
- package/README.md +3 -3
- package/SEMA_BRIEF.curto.txt +9 -6
- package/SEMA_BRIEF.md +250 -205
- package/SEMA_BRIEF.micro.txt +10 -6
- package/SEMA_INDEX.json +2196 -1926
- 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 -7840
- 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 +59 -3
- package/docs/api.md +21 -21
- package/docs/cli.md +3 -3
- package/docs/documentacao.md +1 -1
- package/docs/env.md +20 -24
- package/docs/fluxo-pratico-ia-sema.md +1 -1
- package/docs/instalacao-e-primeiro-uso.md +3 -3
- 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 +21 -21
- 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 +12 -16
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
module exemplos.operacao_estrategia.discovery {
|
|
2
|
+
docs {
|
|
3
|
+
resumo: "Tasks oficiais de discovery semanal e avaliacao de slice apos discovery."
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
type JanelaDiscovery {
|
|
7
|
+
fields {
|
|
8
|
+
semana_referencia: Data
|
|
9
|
+
strategy_id: Id
|
|
10
|
+
versao_modelo_candidata: Texto
|
|
11
|
+
status_discovery: StatusDiscovery
|
|
12
|
+
}
|
|
13
|
+
invariants {
|
|
14
|
+
semana_referencia existe
|
|
15
|
+
strategy_id existe
|
|
16
|
+
versao_modelo_candidata existe
|
|
17
|
+
status_discovery em [ABERTA, EM_AVALIACAO, APROVADA, REJEITADA]
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
enum StatusSlice {
|
|
22
|
+
ATIVO,
|
|
23
|
+
QUARENTENA,
|
|
24
|
+
DESLIGADO
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
enum StatusGate {
|
|
28
|
+
ABERTO,
|
|
29
|
+
FECHADO
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
enum StatusDiscovery {
|
|
33
|
+
ABERTA,
|
|
34
|
+
EM_AVALIACAO,
|
|
35
|
+
APROVADA,
|
|
36
|
+
REJEITADA
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
task registrar_discovery_semanal {
|
|
40
|
+
docs {
|
|
41
|
+
resumo: "Abre a janela semanal de discovery para uma strategy e marca a versao candidata que esta entrando em avaliacao."
|
|
42
|
+
}
|
|
43
|
+
input {
|
|
44
|
+
strategy_id: Id required
|
|
45
|
+
semana_referencia: Data required
|
|
46
|
+
versao_modelo_candidata: Texto required
|
|
47
|
+
}
|
|
48
|
+
output {
|
|
49
|
+
janela: JanelaDiscovery
|
|
50
|
+
discovery_registrada: Booleano
|
|
51
|
+
}
|
|
52
|
+
authz {
|
|
53
|
+
escopo: strategy.discovery.operar
|
|
54
|
+
tenant: obrigatorio
|
|
55
|
+
}
|
|
56
|
+
dados {
|
|
57
|
+
classificacao_padrao: interno
|
|
58
|
+
redacao_log: obrigatoria
|
|
59
|
+
input {
|
|
60
|
+
strategy_id: interno
|
|
61
|
+
semana_referencia: interno
|
|
62
|
+
versao_modelo_candidata: interno
|
|
63
|
+
}
|
|
64
|
+
output {
|
|
65
|
+
janela: interno
|
|
66
|
+
discovery_registrada: interno
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
audit {
|
|
70
|
+
evento: strategy.discovery.aberta
|
|
71
|
+
ator: sistema.strategy
|
|
72
|
+
correlacao: request_id
|
|
73
|
+
retencao: "180d"
|
|
74
|
+
motivo: obrigatorio
|
|
75
|
+
}
|
|
76
|
+
forbidden {
|
|
77
|
+
shell.exec
|
|
78
|
+
log.segredo
|
|
79
|
+
retorno.credencial
|
|
80
|
+
}
|
|
81
|
+
rules {
|
|
82
|
+
strategy_id existe
|
|
83
|
+
semana_referencia existe
|
|
84
|
+
versao_modelo_candidata existe
|
|
85
|
+
}
|
|
86
|
+
effects {
|
|
87
|
+
persistencia discovery_semanal criticidade = alta
|
|
88
|
+
auditoria strategy criticidade = alta
|
|
89
|
+
evento discovery_aberta criticidade = media
|
|
90
|
+
}
|
|
91
|
+
vinculos {
|
|
92
|
+
tabela: discovery_semanal
|
|
93
|
+
recurso: strategy_registry
|
|
94
|
+
evento: discovery_aberta
|
|
95
|
+
}
|
|
96
|
+
execucao {
|
|
97
|
+
idempotencia: verdadeiro
|
|
98
|
+
timeout: "10s"
|
|
99
|
+
retry: "nenhum"
|
|
100
|
+
compensacao: "fechar_janela_discovery_inconsistente"
|
|
101
|
+
criticidade_operacional: alta
|
|
102
|
+
}
|
|
103
|
+
guarantees {
|
|
104
|
+
janela existe
|
|
105
|
+
discovery_registrada == verdadeiro
|
|
106
|
+
}
|
|
107
|
+
tests {
|
|
108
|
+
caso "abre discovery da semana" {
|
|
109
|
+
given {
|
|
110
|
+
strategy_id: "strategy_alpha"
|
|
111
|
+
semana_referencia: "2026-03-30"
|
|
112
|
+
versao_modelo_candidata: "modelo_2026_13"
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
expect {
|
|
116
|
+
sucesso: verdadeiro
|
|
117
|
+
discovery_registrada: verdadeiro
|
|
118
|
+
janela: "janela_strategy_alpha_2026_13"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
task avaliar_slice_apos_discovery {
|
|
125
|
+
docs {
|
|
126
|
+
resumo: "Decide se um slice segue aberto,entra em quarentena ou precisa ficar bloqueado ate nova avaliacao."
|
|
127
|
+
}
|
|
128
|
+
input {
|
|
129
|
+
strategy_id: Id required
|
|
130
|
+
slice_id: Id required
|
|
131
|
+
precision_observada: Decimal required
|
|
132
|
+
precision_minima: Decimal required
|
|
133
|
+
risco_operacional: Texto required
|
|
134
|
+
}
|
|
135
|
+
output {
|
|
136
|
+
gate_slice: StatusGate
|
|
137
|
+
slice_status: StatusSlice
|
|
138
|
+
motivo_operacional: Texto
|
|
139
|
+
}
|
|
140
|
+
authz {
|
|
141
|
+
escopo: strategy.slice.avaliar
|
|
142
|
+
tenant: obrigatorio
|
|
143
|
+
}
|
|
144
|
+
dados {
|
|
145
|
+
classificacao_padrao: interno
|
|
146
|
+
redacao_log: obrigatoria
|
|
147
|
+
input {
|
|
148
|
+
strategy_id: interno
|
|
149
|
+
slice_id: interno
|
|
150
|
+
precision_observada: interno
|
|
151
|
+
precision_minima: interno
|
|
152
|
+
risco_operacional: interno
|
|
153
|
+
}
|
|
154
|
+
output {
|
|
155
|
+
gate_slice: interno
|
|
156
|
+
slice_status: interno
|
|
157
|
+
motivo_operacional: interno
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
audit {
|
|
161
|
+
evento: strategy.slice.avaliado
|
|
162
|
+
ator: sistema.strategy
|
|
163
|
+
correlacao: request_id
|
|
164
|
+
retencao: "180d"
|
|
165
|
+
motivo: obrigatorio
|
|
166
|
+
}
|
|
167
|
+
forbidden {
|
|
168
|
+
shell.exec
|
|
169
|
+
log.segredo
|
|
170
|
+
retorno.credencial
|
|
171
|
+
}
|
|
172
|
+
rules {
|
|
173
|
+
strategy_id existe
|
|
174
|
+
slice_id existe
|
|
175
|
+
precision_observada existe
|
|
176
|
+
precision_minima existe
|
|
177
|
+
risco_operacional existe
|
|
178
|
+
}
|
|
179
|
+
effects {
|
|
180
|
+
persistencia slice criticidade = alta
|
|
181
|
+
auditoria discovery_slice criticidade = alta
|
|
182
|
+
notificacao operacao criticidade = media
|
|
183
|
+
}
|
|
184
|
+
vinculos {
|
|
185
|
+
tabela: slice
|
|
186
|
+
recurso: strategy_registry
|
|
187
|
+
evento: discovery_slice_avaliado
|
|
188
|
+
}
|
|
189
|
+
execucao {
|
|
190
|
+
idempotencia: verdadeiro
|
|
191
|
+
timeout: "10s"
|
|
192
|
+
retry: "nenhum"
|
|
193
|
+
compensacao: "manter_gate_slice_fechado_ate_reavaliacao"
|
|
194
|
+
criticidade_operacional: alta
|
|
195
|
+
}
|
|
196
|
+
guarantees {
|
|
197
|
+
gate_slice existe
|
|
198
|
+
slice_status existe
|
|
199
|
+
motivo_operacional existe
|
|
200
|
+
}
|
|
201
|
+
tests {
|
|
202
|
+
caso "slice ruim fecha gate na avaliacao" {
|
|
203
|
+
given {
|
|
204
|
+
strategy_id: "strategy_alpha"
|
|
205
|
+
slice_id: "slice_under35_serie_a"
|
|
206
|
+
precision_observada: 0.49
|
|
207
|
+
precision_minima: 0.58
|
|
208
|
+
risco_operacional: "drawdown_excessivo"
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
expect {
|
|
212
|
+
sucesso: verdadeiro
|
|
213
|
+
gate_slice: "FECHADO"
|
|
214
|
+
slice_status: "QUARENTENA"
|
|
215
|
+
motivo_operacional: "drawdown_excessivo"
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
module exemplos.operacao_estrategia.fluxo {
|
|
2
|
+
docs {
|
|
3
|
+
resumo: "Flow oficial de governanca operacional com stubs curtos para manter a orquestracao validavel sem virar contrato monolitico."
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
enum StatusStrategy {
|
|
7
|
+
RASCUNHO,
|
|
8
|
+
ATIVA,
|
|
9
|
+
QUARENTENA,
|
|
10
|
+
DESATIVADA
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
enum StatusGate {
|
|
14
|
+
ABERTO,
|
|
15
|
+
FECHADO
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
task registrar_discovery_semanal {
|
|
19
|
+
input {
|
|
20
|
+
strategy_id: Id required
|
|
21
|
+
semana_referencia: Data required
|
|
22
|
+
versao_modelo_candidata: Texto required
|
|
23
|
+
}
|
|
24
|
+
output {
|
|
25
|
+
discovery_registrada: Booleano
|
|
26
|
+
}
|
|
27
|
+
guarantees {
|
|
28
|
+
discovery_registrada existe
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
task avaliar_slice_apos_discovery {
|
|
33
|
+
input {
|
|
34
|
+
strategy_id: Id required
|
|
35
|
+
slice_id: Id required
|
|
36
|
+
precision_observada: Decimal required
|
|
37
|
+
precision_minima: Decimal required
|
|
38
|
+
risco_operacional: Texto required
|
|
39
|
+
}
|
|
40
|
+
output {
|
|
41
|
+
motivo_operacional: Texto
|
|
42
|
+
}
|
|
43
|
+
guarantees {
|
|
44
|
+
motivo_operacional existe
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
task colocar_slice_em_quarentena {
|
|
49
|
+
input {
|
|
50
|
+
strategy_id: Id required
|
|
51
|
+
slice_id: Id required
|
|
52
|
+
motivo: Texto required
|
|
53
|
+
origem: Texto required
|
|
54
|
+
data_referencia: Data required
|
|
55
|
+
}
|
|
56
|
+
output {
|
|
57
|
+
gate_slice: StatusGate
|
|
58
|
+
}
|
|
59
|
+
guarantees {
|
|
60
|
+
gate_slice existe
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
task fechar_gate_global_strategy {
|
|
65
|
+
input {
|
|
66
|
+
strategy_id: Id required
|
|
67
|
+
motivo_operacional: Texto required
|
|
68
|
+
versao_modelo_ativa: Texto required
|
|
69
|
+
}
|
|
70
|
+
output {
|
|
71
|
+
gate_global: StatusGate
|
|
72
|
+
}
|
|
73
|
+
guarantees {
|
|
74
|
+
gate_global existe
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
task ativar_strategy_com_nova_versao {
|
|
79
|
+
input {
|
|
80
|
+
strategy_id: Id required
|
|
81
|
+
versao_modelo_ativa: Texto required
|
|
82
|
+
versao_modelo_candidata: Texto required
|
|
83
|
+
strategy_status_atual: StatusStrategy required
|
|
84
|
+
gate_global_atual: StatusGate required
|
|
85
|
+
aprovacao_manual: Booleano required
|
|
86
|
+
}
|
|
87
|
+
output {
|
|
88
|
+
strategy_status: StatusStrategy
|
|
89
|
+
}
|
|
90
|
+
guarantees {
|
|
91
|
+
strategy_status existe
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
flow governanca_operacional {
|
|
96
|
+
strategy_id: Id
|
|
97
|
+
slice_id: Id
|
|
98
|
+
semana_referencia: Data
|
|
99
|
+
versao_modelo_ativa: Texto
|
|
100
|
+
versao_modelo_candidata: Texto
|
|
101
|
+
precision_observada: Decimal
|
|
102
|
+
precision_minima: Decimal
|
|
103
|
+
risco_operacional: Texto
|
|
104
|
+
motivo_operacional: Texto
|
|
105
|
+
strategy_status_atual: StatusStrategy
|
|
106
|
+
gate_global_atual: StatusGate
|
|
107
|
+
aprovacao_manual: Booleano
|
|
108
|
+
etapa discovery usa registrar_discovery_semanal com strategy_id = strategy_id, semana_referencia = semana_referencia, versao_modelo_candidata = versao_modelo_candidata
|
|
109
|
+
etapa avaliar_slice usa avaliar_slice_apos_discovery com strategy_id = strategy_id, slice_id = slice_id, precision_observada = precision_observada, precision_minima = precision_minima, risco_operacional = risco_operacional depende_de discovery
|
|
110
|
+
etapa quarentena_slice usa colocar_slice_em_quarentena com strategy_id = strategy_id, slice_id = slice_id, motivo = motivo_operacional, origem = risco_operacional, data_referencia = semana_referencia quando motivo_operacional existe depende_de avaliar_slice
|
|
111
|
+
etapa fechar_gate_global usa fechar_gate_global_strategy com strategy_id = strategy_id, motivo_operacional = motivo_operacional, versao_modelo_ativa = versao_modelo_ativa quando motivo_operacional existe depende_de quarentena_slice
|
|
112
|
+
etapa reativacao usa ativar_strategy_com_nova_versao com strategy_id = strategy_id, versao_modelo_ativa = versao_modelo_ativa, versao_modelo_candidata = versao_modelo_candidata, strategy_status_atual = strategy_status_atual, gate_global_atual = gate_global_atual, aprovacao_manual = aprovacao_manual quando aprovacao_manual == verdadeiro depende_de fechar_gate_global
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
module exemplos.operacao_estrategia.gates {
|
|
2
|
+
docs {
|
|
3
|
+
resumo: "Task oficial para fechamento do gate global de uma strategy com trilha auditavel."
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
enum StatusStrategy {
|
|
7
|
+
RASCUNHO,
|
|
8
|
+
ATIVA,
|
|
9
|
+
QUARENTENA,
|
|
10
|
+
DESATIVADA
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
enum StatusGate {
|
|
14
|
+
ABERTO,
|
|
15
|
+
FECHADO
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
task fechar_gate_global_strategy {
|
|
19
|
+
docs {
|
|
20
|
+
resumo: "Fecha o gate global quando a strategy inteira precisa parar de liberar sem apagar historico nem perder a trilha da versao ativa."
|
|
21
|
+
}
|
|
22
|
+
input {
|
|
23
|
+
strategy_id: Id required
|
|
24
|
+
motivo_operacional: Texto required
|
|
25
|
+
versao_modelo_ativa: Texto required
|
|
26
|
+
}
|
|
27
|
+
output {
|
|
28
|
+
strategy_status: StatusStrategy
|
|
29
|
+
gate_global: StatusGate
|
|
30
|
+
versao_modelo_ativa: Texto
|
|
31
|
+
}
|
|
32
|
+
authz {
|
|
33
|
+
escopo: strategy.gate.fechar
|
|
34
|
+
tenant: obrigatorio
|
|
35
|
+
}
|
|
36
|
+
dados {
|
|
37
|
+
classificacao_padrao: interno
|
|
38
|
+
redacao_log: obrigatoria
|
|
39
|
+
input {
|
|
40
|
+
strategy_id: interno
|
|
41
|
+
motivo_operacional: interno
|
|
42
|
+
versao_modelo_ativa: interno
|
|
43
|
+
}
|
|
44
|
+
output {
|
|
45
|
+
strategy_status: interno
|
|
46
|
+
gate_global: interno
|
|
47
|
+
versao_modelo_ativa: interno
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
audit {
|
|
51
|
+
evento: strategy.gate_global.fechado
|
|
52
|
+
ator: sistema.strategy
|
|
53
|
+
correlacao: request_id
|
|
54
|
+
retencao: "180d"
|
|
55
|
+
motivo: obrigatorio
|
|
56
|
+
}
|
|
57
|
+
forbidden {
|
|
58
|
+
shell.exec
|
|
59
|
+
log.segredo
|
|
60
|
+
retorno.credencial
|
|
61
|
+
}
|
|
62
|
+
rules {
|
|
63
|
+
strategy_id existe
|
|
64
|
+
motivo_operacional existe
|
|
65
|
+
versao_modelo_ativa existe
|
|
66
|
+
}
|
|
67
|
+
effects {
|
|
68
|
+
persistencia strategy criticidade = alta
|
|
69
|
+
notificacao operacao criticidade = alta
|
|
70
|
+
auditoria gate_global criticidade = alta
|
|
71
|
+
}
|
|
72
|
+
vinculos {
|
|
73
|
+
tabela: strategy
|
|
74
|
+
recurso: strategy_registry
|
|
75
|
+
evento: gate_global_fechado
|
|
76
|
+
}
|
|
77
|
+
execucao {
|
|
78
|
+
idempotencia: verdadeiro
|
|
79
|
+
timeout: "10s"
|
|
80
|
+
retry: "nenhum"
|
|
81
|
+
compensacao: "manter_strategy_em_quarentena"
|
|
82
|
+
criticidade_operacional: alta
|
|
83
|
+
}
|
|
84
|
+
guarantees {
|
|
85
|
+
strategy_status == QUARENTENA
|
|
86
|
+
gate_global == FECHADO
|
|
87
|
+
versao_modelo_ativa existe
|
|
88
|
+
}
|
|
89
|
+
tests {
|
|
90
|
+
caso "fecha gate global sem perder versao ativa" {
|
|
91
|
+
given {
|
|
92
|
+
strategy_id: "strategy_alpha"
|
|
93
|
+
motivo_operacional: "sequencia_ruim_em_varias_ligas"
|
|
94
|
+
versao_modelo_ativa: "modelo_2026_12"
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
expect {
|
|
98
|
+
sucesso: verdadeiro
|
|
99
|
+
strategy_status: "QUARENTENA"
|
|
100
|
+
gate_global: "FECHADO"
|
|
101
|
+
versao_modelo_ativa: "modelo_2026_12"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
module exemplos.operacao_estrategia.quarentena {
|
|
2
|
+
docs {
|
|
3
|
+
resumo: "Task oficial para colocar slice em quarentena seletiva sem desligar a strategy inteira."
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
type ContextoQuarentena {
|
|
7
|
+
fields {
|
|
8
|
+
motivo: Texto
|
|
9
|
+
origem: Texto
|
|
10
|
+
desde: Data
|
|
11
|
+
}
|
|
12
|
+
invariants {
|
|
13
|
+
motivo existe
|
|
14
|
+
origem existe
|
|
15
|
+
desde existe
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
enum StatusSlice {
|
|
20
|
+
ATIVO,
|
|
21
|
+
QUARENTENA,
|
|
22
|
+
DESLIGADO
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
enum StatusGate {
|
|
26
|
+
ABERTO,
|
|
27
|
+
FECHADO
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
task colocar_slice_em_quarentena {
|
|
31
|
+
docs {
|
|
32
|
+
resumo: "Transforma um problema de slice em acao operacional explicita,sem desligar a strategy inteira por reflexo idiota."
|
|
33
|
+
}
|
|
34
|
+
input {
|
|
35
|
+
strategy_id: Id required
|
|
36
|
+
slice_id: Id required
|
|
37
|
+
motivo: Texto required
|
|
38
|
+
origem: Texto required
|
|
39
|
+
data_referencia: Data required
|
|
40
|
+
}
|
|
41
|
+
output {
|
|
42
|
+
slice_status: StatusSlice
|
|
43
|
+
gate_slice: StatusGate
|
|
44
|
+
contexto: ContextoQuarentena
|
|
45
|
+
}
|
|
46
|
+
authz {
|
|
47
|
+
escopo: strategy.slice.quarentena
|
|
48
|
+
tenant: obrigatorio
|
|
49
|
+
}
|
|
50
|
+
dados {
|
|
51
|
+
classificacao_padrao: interno
|
|
52
|
+
redacao_log: obrigatoria
|
|
53
|
+
input {
|
|
54
|
+
strategy_id: interno
|
|
55
|
+
slice_id: interno
|
|
56
|
+
motivo: interno
|
|
57
|
+
origem: interno
|
|
58
|
+
data_referencia: interno
|
|
59
|
+
}
|
|
60
|
+
output {
|
|
61
|
+
slice_status: interno
|
|
62
|
+
gate_slice: interno
|
|
63
|
+
contexto: interno
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
audit {
|
|
67
|
+
evento: strategy.slice.quarentena
|
|
68
|
+
ator: sistema.strategy
|
|
69
|
+
correlacao: request_id
|
|
70
|
+
retencao: "180d"
|
|
71
|
+
motivo: obrigatorio
|
|
72
|
+
}
|
|
73
|
+
forbidden {
|
|
74
|
+
shell.exec
|
|
75
|
+
log.segredo
|
|
76
|
+
retorno.credencial
|
|
77
|
+
}
|
|
78
|
+
rules {
|
|
79
|
+
strategy_id existe
|
|
80
|
+
slice_id existe
|
|
81
|
+
motivo existe
|
|
82
|
+
origem existe
|
|
83
|
+
data_referencia existe
|
|
84
|
+
}
|
|
85
|
+
effects {
|
|
86
|
+
persistencia slice criticidade = alta
|
|
87
|
+
persistencia quarentena criticidade = alta
|
|
88
|
+
notificacao operacao criticidade = alta
|
|
89
|
+
auditoria quarentena criticidade = alta
|
|
90
|
+
}
|
|
91
|
+
vinculos {
|
|
92
|
+
tabela: slice
|
|
93
|
+
tabela: quarentena
|
|
94
|
+
recurso: strategy_registry
|
|
95
|
+
evento: slice_quarentena
|
|
96
|
+
}
|
|
97
|
+
execucao {
|
|
98
|
+
idempotencia: verdadeiro
|
|
99
|
+
timeout: "10s"
|
|
100
|
+
retry: "nenhum"
|
|
101
|
+
compensacao: "reabrir_slice_por_revisao_manual"
|
|
102
|
+
criticidade_operacional: alta
|
|
103
|
+
}
|
|
104
|
+
state governanca_estrategia {
|
|
105
|
+
transitions {
|
|
106
|
+
ATIVA -> QUARENTENA
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
guarantees {
|
|
110
|
+
slice_status == QUARENTENA
|
|
111
|
+
gate_slice == FECHADO
|
|
112
|
+
contexto existe
|
|
113
|
+
}
|
|
114
|
+
tests {
|
|
115
|
+
caso "quarentena seletiva fecha so o slice afetado" {
|
|
116
|
+
given {
|
|
117
|
+
strategy_id: "strategy_alpha"
|
|
118
|
+
slice_id: "slice_under35_serie_a"
|
|
119
|
+
motivo: "llm_detectou_noticia_ruim"
|
|
120
|
+
origem: "monitoramento_live"
|
|
121
|
+
data_referencia: "2026-03-30"
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
expect {
|
|
125
|
+
sucesso: verdadeiro
|
|
126
|
+
slice_status: "QUARENTENA"
|
|
127
|
+
gate_slice: "FECHADO"
|
|
128
|
+
contexto: "ctx_quarentena"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
module exemplos.operacao_estrategia.rollout {
|
|
2
|
+
docs {
|
|
3
|
+
resumo: "Task oficial para ativar strategy com nova versao de modelo apos aprovacao manual."
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
enum StatusStrategy {
|
|
7
|
+
RASCUNHO,
|
|
8
|
+
ATIVA,
|
|
9
|
+
QUARENTENA,
|
|
10
|
+
DESATIVADA
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
enum StatusGate {
|
|
14
|
+
ABERTO,
|
|
15
|
+
FECHADO
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
task ativar_strategy_com_nova_versao {
|
|
19
|
+
docs {
|
|
20
|
+
resumo: "Promove a versao candidata aprovada e reabre a strategy so quando houver aprovacao manual e gate global devidamente controlado."
|
|
21
|
+
}
|
|
22
|
+
input {
|
|
23
|
+
strategy_id: Id required
|
|
24
|
+
versao_modelo_ativa: Texto required
|
|
25
|
+
versao_modelo_candidata: Texto required
|
|
26
|
+
strategy_status_atual: StatusStrategy required
|
|
27
|
+
gate_global_atual: StatusGate required
|
|
28
|
+
aprovacao_manual: Booleano required
|
|
29
|
+
}
|
|
30
|
+
output {
|
|
31
|
+
strategy_status: StatusStrategy
|
|
32
|
+
gate_global: StatusGate
|
|
33
|
+
versao_modelo_ativa: Texto
|
|
34
|
+
}
|
|
35
|
+
authz {
|
|
36
|
+
escopo: strategy.rollout.ativar
|
|
37
|
+
tenant: obrigatorio
|
|
38
|
+
}
|
|
39
|
+
dados {
|
|
40
|
+
classificacao_padrao: interno
|
|
41
|
+
redacao_log: obrigatoria
|
|
42
|
+
input {
|
|
43
|
+
strategy_id: interno
|
|
44
|
+
versao_modelo_ativa: interno
|
|
45
|
+
versao_modelo_candidata: interno
|
|
46
|
+
strategy_status_atual: interno
|
|
47
|
+
gate_global_atual: interno
|
|
48
|
+
aprovacao_manual: interno
|
|
49
|
+
}
|
|
50
|
+
output {
|
|
51
|
+
strategy_status: interno
|
|
52
|
+
gate_global: interno
|
|
53
|
+
versao_modelo_ativa: interno
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
audit {
|
|
57
|
+
evento: strategy.rollout.ativado
|
|
58
|
+
ator: sistema.strategy
|
|
59
|
+
correlacao: request_id
|
|
60
|
+
retencao: "180d"
|
|
61
|
+
motivo: obrigatorio
|
|
62
|
+
}
|
|
63
|
+
forbidden {
|
|
64
|
+
shell.exec
|
|
65
|
+
log.segredo
|
|
66
|
+
retorno.credencial
|
|
67
|
+
}
|
|
68
|
+
rules {
|
|
69
|
+
strategy_id existe
|
|
70
|
+
versao_modelo_ativa existe
|
|
71
|
+
versao_modelo_candidata existe
|
|
72
|
+
strategy_status_atual em [RASCUNHO, QUARENTENA]
|
|
73
|
+
gate_global_atual == FECHADO
|
|
74
|
+
aprovacao_manual == verdadeiro
|
|
75
|
+
}
|
|
76
|
+
effects {
|
|
77
|
+
persistencia strategy criticidade = alta
|
|
78
|
+
evento strategy_ativada criticidade = alta
|
|
79
|
+
auditoria rollout criticidade = alta
|
|
80
|
+
}
|
|
81
|
+
vinculos {
|
|
82
|
+
tabela: strategy
|
|
83
|
+
recurso: model_registry
|
|
84
|
+
evento: strategy_ativada
|
|
85
|
+
}
|
|
86
|
+
execucao {
|
|
87
|
+
idempotencia: verdadeiro
|
|
88
|
+
timeout: "15s"
|
|
89
|
+
retry: "nenhum"
|
|
90
|
+
compensacao: "reverter_para_versao_modelo_ativa_anterior"
|
|
91
|
+
criticidade_operacional: alta
|
|
92
|
+
}
|
|
93
|
+
state governanca_estrategia {
|
|
94
|
+
transitions {
|
|
95
|
+
QUARENTENA -> ATIVA
|
|
96
|
+
RASCUNHO -> ATIVA
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
guarantees {
|
|
100
|
+
strategy_status == ATIVA
|
|
101
|
+
gate_global == ABERTO
|
|
102
|
+
versao_modelo_ativa existe
|
|
103
|
+
}
|
|
104
|
+
tests {
|
|
105
|
+
caso "reativa strategy apos aprovacao do novo modelo" {
|
|
106
|
+
given {
|
|
107
|
+
strategy_id: "strategy_alpha"
|
|
108
|
+
versao_modelo_ativa: "modelo_2026_12"
|
|
109
|
+
versao_modelo_candidata: "modelo_2026_13"
|
|
110
|
+
strategy_status_atual: "QUARENTENA"
|
|
111
|
+
gate_global_atual: "FECHADO"
|
|
112
|
+
aprovacao_manual: verdadeiro
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
expect {
|
|
116
|
+
sucesso: verdadeiro
|
|
117
|
+
strategy_status: "ATIVA"
|
|
118
|
+
gate_global: "ABERTO"
|
|
119
|
+
versao_modelo_ativa: "modelo_2026_13"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
package/exemplos/pagamento.sema
CHANGED
package/exemplos/pedido.sema
CHANGED