@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.
Files changed (490) hide show
  1. package/AGENT_CONTEXT_PACK.json +80 -8
  2. package/LICENSE +1 -2
  3. package/SEMA_BRIEF.curto.txt +9 -6
  4. package/SEMA_BRIEF.md +240 -204
  5. package/SEMA_BRIEF.micro.txt +10 -6
  6. package/SEMA_INDEX.json +2087 -1907
  7. package/dist/agentContext.d.ts +19 -0
  8. package/dist/agentContext.js +26 -0
  9. package/dist/agentContext.js.map +1 -0
  10. package/dist/agentContextPack.d.ts +4 -0
  11. package/dist/agentContextPack.js +408 -0
  12. package/dist/agentContextPack.js.map +1 -0
  13. package/dist/agentContextTipos.d.ts +96 -0
  14. package/dist/agentContextTipos.js +55 -0
  15. package/dist/agentContextTipos.js.map +1 -0
  16. package/dist/agentEntryPoints.d.ts +13 -0
  17. package/dist/agentEntryPoints.js +435 -0
  18. package/dist/agentEntryPoints.js.map +1 -0
  19. package/dist/authorAnalise.d.ts +15 -0
  20. package/dist/authorAnalise.js +210 -0
  21. package/dist/authorAnalise.js.map +1 -0
  22. package/dist/authorPoliticas.d.ts +37 -0
  23. package/dist/authorPoliticas.js +340 -0
  24. package/dist/authorPoliticas.js.map +1 -0
  25. package/dist/billing/index.d.ts +1 -1
  26. package/dist/billing/index.js +6 -2
  27. package/dist/billing/index.js.map +1 -1
  28. package/dist/bridge.js +2 -0
  29. package/dist/bridge.js.map +1 -1
  30. package/dist/carregarModulos.d.ts +2 -0
  31. package/dist/carregarModulos.js +9 -0
  32. package/dist/carregarModulos.js.map +1 -0
  33. package/dist/cliArgs.d.ts +6 -0
  34. package/dist/cliArgs.js +70 -0
  35. package/dist/cliArgs.js.map +1 -0
  36. package/dist/contexto.js +2 -0
  37. package/dist/contexto.js.map +1 -1
  38. package/dist/controleComercialSupabase.js.map +1 -1
  39. package/dist/controleComercialSupabaseAdmin.js.map +1 -1
  40. package/dist/controleComercialSupabaseCadastro.js.map +1 -1
  41. package/dist/controleComercialSupabaseConsumo.js.map +1 -1
  42. package/dist/controleComercialSupabaseConta.js.map +1 -1
  43. package/dist/controleComercialSupabaseProfiles.js.map +1 -1
  44. package/dist/dev/index.js +2 -0
  45. package/dist/dev/index.js.map +1 -1
  46. package/dist/dev/watcher.d.ts +1 -0
  47. package/dist/dev/watcher.js +4 -0
  48. package/dist/dev/watcher.js.map +1 -0
  49. package/dist/docs/resolver.d.ts +1 -0
  50. package/dist/docs/resolver.js +4 -0
  51. package/dist/docs/resolver.js.map +1 -0
  52. package/dist/docs.d.ts +2 -56
  53. package/dist/docs.js +5 -502
  54. package/dist/docs.js.map +1 -1
  55. package/dist/docs.part01.d.ts +78 -0
  56. package/dist/docs.part01.js +347 -0
  57. package/dist/docs.part01.js.map +1 -0
  58. package/dist/docs.part02.d.ts +20 -0
  59. package/dist/docs.part02.js +181 -0
  60. package/dist/docs.part02.js.map +1 -0
  61. package/dist/doctorCommand.d.ts +27 -0
  62. package/dist/doctorCommand.js +160 -0
  63. package/dist/doctorCommand.js.map +1 -0
  64. package/dist/drift.contrato.d.ts +23 -0
  65. package/dist/drift.contrato.js +33 -0
  66. package/dist/drift.contrato.js.map +1 -0
  67. package/dist/drift.d.ts +13 -227
  68. package/dist/drift.js +16 -3924
  69. package/dist/drift.js.map +1 -1
  70. package/dist/drift.part01.d.ts +252 -0
  71. package/dist/drift.part01.js +183 -0
  72. package/dist/drift.part01.js.map +1 -0
  73. package/dist/drift.part02.d.ts +30 -0
  74. package/dist/drift.part02.js +342 -0
  75. package/dist/drift.part02.js.map +1 -0
  76. package/dist/drift.part03.d.ts +26 -0
  77. package/dist/drift.part03.js +343 -0
  78. package/dist/drift.part03.js.map +1 -0
  79. package/dist/drift.part04.d.ts +46 -0
  80. package/dist/drift.part04.js +354 -0
  81. package/dist/drift.part04.js.map +1 -0
  82. package/dist/drift.part05.d.ts +47 -0
  83. package/dist/drift.part05.js +353 -0
  84. package/dist/drift.part05.js.map +1 -0
  85. package/dist/drift.part06.d.ts +17 -0
  86. package/dist/drift.part06.js +381 -0
  87. package/dist/drift.part06.js.map +1 -0
  88. package/dist/drift.part07.d.ts +48 -0
  89. package/dist/drift.part07.js +377 -0
  90. package/dist/drift.part07.js.map +1 -0
  91. package/dist/drift.part08.d.ts +26 -0
  92. package/dist/drift.part08.js +333 -0
  93. package/dist/drift.part08.js.map +1 -0
  94. package/dist/drift.part09.d.ts +22 -0
  95. package/dist/drift.part09.js +322 -0
  96. package/dist/drift.part09.js.map +1 -0
  97. package/dist/drift.part10.d.ts +11 -0
  98. package/dist/drift.part10.js +116 -0
  99. package/dist/drift.part10.js.map +1 -0
  100. package/dist/drift.part11.d.ts +3 -0
  101. package/dist/drift.part11.js +320 -0
  102. package/dist/drift.part11.js.map +1 -0
  103. package/dist/drift.part12.d.ts +17 -0
  104. package/dist/drift.part12.js +289 -0
  105. package/dist/drift.part12.js.map +1 -0
  106. package/dist/drift.part13.d.ts +17 -0
  107. package/dist/drift.part13.js +86 -0
  108. package/dist/drift.part13.js.map +1 -0
  109. package/dist/drift.part14.d.ts +44 -0
  110. package/dist/drift.part14.js +402 -0
  111. package/dist/drift.part14.js.map +1 -0
  112. package/dist/driftOrcamento.d.ts +69 -0
  113. package/dist/driftOrcamento.js +280 -0
  114. package/dist/driftOrcamento.js.map +1 -0
  115. package/dist/execucoesExternas.d.ts +10 -0
  116. package/dist/execucoesExternas.js +51 -0
  117. package/dist/execucoesExternas.js.map +1 -0
  118. package/dist/exemplosOficiais.d.ts +10 -0
  119. package/dist/exemplosOficiais.js +63 -0
  120. package/dist/exemplosOficiais.js.map +1 -0
  121. package/dist/fsGovernado.d.ts +10 -0
  122. package/dist/fsGovernado.js +50 -0
  123. package/dist/fsGovernado.js.map +1 -0
  124. package/dist/geracaoCore.d.ts +64 -0
  125. package/dist/geracaoCore.js +381 -0
  126. package/dist/geracaoCore.js.map +1 -0
  127. package/dist/iaPrompts.d.ts +6 -0
  128. package/dist/iaPrompts.js +318 -0
  129. package/dist/iaPrompts.js.map +1 -0
  130. package/dist/importador.d.ts +9 -31
  131. package/dist/importador.js +11 -2938
  132. package/dist/importador.js.map +1 -1
  133. package/dist/importador.part01.d.ts +150 -0
  134. package/dist/importador.part01.js +256 -0
  135. package/dist/importador.part01.js.map +1 -0
  136. package/dist/importador.part02.d.ts +25 -0
  137. package/dist/importador.part02.js +359 -0
  138. package/dist/importador.part02.js.map +1 -0
  139. package/dist/importador.part03.d.ts +53 -0
  140. package/dist/importador.part03.js +366 -0
  141. package/dist/importador.part03.js.map +1 -0
  142. package/dist/importador.part04.d.ts +26 -0
  143. package/dist/importador.part04.js +374 -0
  144. package/dist/importador.part04.js.map +1 -0
  145. package/dist/importador.part05.d.ts +28 -0
  146. package/dist/importador.part05.js +340 -0
  147. package/dist/importador.part05.js.map +1 -0
  148. package/dist/importador.part06.d.ts +8 -0
  149. package/dist/importador.part06.js +327 -0
  150. package/dist/importador.part06.js.map +1 -0
  151. package/dist/importador.part07.d.ts +23 -0
  152. package/dist/importador.part07.js +300 -0
  153. package/dist/importador.part07.js.map +1 -0
  154. package/dist/importador.part08.d.ts +12 -0
  155. package/dist/importador.part08.js +378 -0
  156. package/dist/importador.part08.js.map +1 -0
  157. package/dist/importador.part09.d.ts +16 -0
  158. package/dist/importador.part09.js +319 -0
  159. package/dist/importador.part09.js.map +1 -0
  160. package/dist/index.d.ts +12 -1
  161. package/dist/index.js +16 -7945
  162. package/dist/index.js.map +1 -1
  163. package/dist/index.part01.d.ts +148 -0
  164. package/dist/index.part01.js +252 -0
  165. package/dist/index.part01.js.map +1 -0
  166. package/dist/index.part02.d.ts +17 -0
  167. package/dist/index.part02.js +344 -0
  168. package/dist/index.part02.js.map +1 -0
  169. package/dist/index.part03.d.ts +59 -0
  170. package/dist/index.part03.js +352 -0
  171. package/dist/index.part03.js.map +1 -0
  172. package/dist/index.part04.d.ts +20 -0
  173. package/dist/index.part04.js +360 -0
  174. package/dist/index.part04.js.map +1 -0
  175. package/dist/index.part05.d.ts +10 -0
  176. package/dist/index.part05.js +370 -0
  177. package/dist/index.part05.js.map +1 -0
  178. package/dist/index.part06.d.ts +14 -0
  179. package/dist/index.part06.js +336 -0
  180. package/dist/index.part06.js.map +1 -0
  181. package/dist/index.part07.d.ts +9 -0
  182. package/dist/index.part07.js +287 -0
  183. package/dist/index.part07.js.map +1 -0
  184. package/dist/index.part08.d.ts +1 -0
  185. package/dist/index.part08.js +206 -0
  186. package/dist/index.part08.js.map +1 -0
  187. package/dist/init/index.js +2 -0
  188. package/dist/init/index.js.map +1 -1
  189. package/dist/init/templates.d.ts +2 -11
  190. package/dist/init/templates.js +4 -659
  191. package/dist/init/templates.js.map +1 -1
  192. package/dist/init/templates.part01.d.ts +11 -0
  193. package/dist/init/templates.part01.js +399 -0
  194. package/dist/init/templates.part01.js.map +1 -0
  195. package/dist/init/templates.part02.d.ts +8 -0
  196. package/dist/init/templates.part02.js +265 -0
  197. package/dist/init/templates.part02.js.map +1 -0
  198. package/dist/initCommand.d.ts +3 -0
  199. package/dist/initCommand.js +41 -0
  200. package/dist/initCommand.js.map +1 -0
  201. package/dist/initTemplatesBackend.d.ts +2 -0
  202. package/dist/initTemplatesBackend.js +127 -0
  203. package/dist/initTemplatesBackend.js.map +1 -0
  204. package/dist/initTemplatesBase.d.ts +9 -0
  205. package/dist/initTemplatesBase.js +79 -0
  206. package/dist/initTemplatesBase.js.map +1 -0
  207. package/dist/initTemplatesFlutter.d.ts +2 -0
  208. package/dist/initTemplatesFlutter.js +185 -0
  209. package/dist/initTemplatesFlutter.js.map +1 -0
  210. package/dist/initTemplatesRuntime.d.ts +2 -0
  211. package/dist/initTemplatesRuntime.js +494 -0
  212. package/dist/initTemplatesRuntime.js.map +1 -0
  213. package/dist/initTemplatesWeb.d.ts +2 -0
  214. package/dist/initTemplatesWeb.js +429 -0
  215. package/dist/initTemplatesWeb.js.map +1 -0
  216. package/dist/mcpInstalarChaveCommand.d.ts +1 -0
  217. package/dist/mcpInstalarChaveCommand.js +141 -0
  218. package/dist/mcpInstalarChaveCommand.js.map +1 -0
  219. package/dist/mcpRemoto.js.map +1 -1
  220. package/dist/mcp_chave.d.ts +1 -0
  221. package/dist/mcp_chave.js +4 -0
  222. package/dist/mcp_chave.js.map +1 -0
  223. package/dist/profileArtefatoBase.d.ts +30 -0
  224. package/dist/profileArtefatoBase.js +129 -0
  225. package/dist/profileArtefatoBase.js.map +1 -0
  226. package/dist/profileArtefatoValidadores.d.ts +9 -0
  227. package/dist/profileArtefatoValidadores.js +287 -0
  228. package/dist/profileArtefatoValidadores.js.map +1 -0
  229. package/dist/profileAuthorCommand.d.ts +6 -0
  230. package/dist/profileAuthorCommand.js +442 -0
  231. package/dist/profileAuthorCommand.js.map +1 -0
  232. package/dist/profileAuthorTipos.d.ts +225 -0
  233. package/dist/profileAuthorTipos.js +6 -0
  234. package/dist/profileAuthorTipos.js.map +1 -0
  235. package/dist/profileCatalogo.d.ts +8 -0
  236. package/dist/profileCatalogo.js +235 -0
  237. package/dist/profileCatalogo.js.map +1 -0
  238. package/dist/profileCommand.d.ts +33 -0
  239. package/dist/profileCommand.js +256 -0
  240. package/dist/profileCommand.js.map +1 -0
  241. package/dist/profileOrquestracao.d.ts +33 -0
  242. package/dist/profileOrquestracao.js +53 -0
  243. package/dist/profileOrquestracao.js.map +1 -0
  244. package/dist/profileRegras.d.ts +19 -0
  245. package/dist/profileRegras.js +219 -0
  246. package/dist/profileRegras.js.map +1 -0
  247. package/dist/profileRulePacks.d.ts +3 -0
  248. package/dist/profileRulePacks.js +334 -0
  249. package/dist/profileRulePacks.js.map +1 -0
  250. package/dist/profiles/validate.d.ts +1 -0
  251. package/dist/profiles/validate.js +4 -0
  252. package/dist/profiles/validate.js.map +1 -0
  253. package/dist/projeto.d.ts +4 -53
  254. package/dist/projeto.js +5 -649
  255. package/dist/projeto.js.map +1 -1
  256. package/dist/projetoBusca.d.ts +7 -0
  257. package/dist/projetoBusca.js +142 -0
  258. package/dist/projetoBusca.js.map +1 -0
  259. package/dist/projetoCarregar.d.ts +2 -0
  260. package/dist/projetoCarregar.js +50 -0
  261. package/dist/projetoCarregar.js.map +1 -0
  262. package/dist/projetoConfig.d.ts +10 -0
  263. package/dist/projetoConfig.js +89 -0
  264. package/dist/projetoConfig.js.map +1 -0
  265. package/dist/projetoLegado.d.ts +3 -0
  266. package/dist/projetoLegado.js +175 -0
  267. package/dist/projetoLegado.js.map +1 -0
  268. package/dist/projetoOrigens.d.ts +6 -0
  269. package/dist/projetoOrigens.js +185 -0
  270. package/dist/projetoOrigens.js.map +1 -0
  271. package/dist/projetoResolucao.d.ts +8 -0
  272. package/dist/projetoResolucao.js +43 -0
  273. package/dist/projetoResolucao.js.map +1 -0
  274. package/dist/projetoTipos.d.ts +43 -0
  275. package/dist/projetoTipos.js +4 -0
  276. package/dist/projetoTipos.js.map +1 -0
  277. package/dist/runnerValidacaoRemota.js.map +1 -1
  278. package/dist/runnerValidacaoRemotaBateria.js +2 -0
  279. package/dist/runnerValidacaoRemotaBateria.js.map +1 -1
  280. package/dist/runnerValidacaoRemotaExecucao.js +2 -0
  281. package/dist/runnerValidacaoRemotaExecucao.js.map +1 -1
  282. package/dist/runnerValidacaoRemotaRelatorio.js +2 -0
  283. package/dist/runnerValidacaoRemotaRelatorio.js.map +1 -1
  284. package/dist/runnerValidacaoRemotaSnapshot.js +2 -0
  285. package/dist/runnerValidacaoRemotaSnapshot.js.map +1 -1
  286. package/dist/runnerValidacaoRemotaWorkspace.js +2 -0
  287. package/dist/runnerValidacaoRemotaWorkspace.js.map +1 -1
  288. package/dist/sync/index.js +2 -0
  289. package/dist/sync/index.js.map +1 -1
  290. package/dist/textoListas.d.ts +4 -0
  291. package/dist/textoListas.js +22 -0
  292. package/dist/textoListas.js.map +1 -0
  293. package/dist/typescript-http-body.d.ts +12 -0
  294. package/dist/typescript-http-body.js +145 -0
  295. package/dist/typescript-http-body.js.map +1 -0
  296. package/dist/typescript-http-expressoes.d.ts +17 -0
  297. package/dist/typescript-http-expressoes.js +194 -0
  298. package/dist/typescript-http-expressoes.js.map +1 -0
  299. package/dist/typescript-http-modelos.d.ts +45 -0
  300. package/dist/typescript-http-modelos.js +82 -0
  301. package/dist/typescript-http-modelos.js.map +1 -0
  302. package/dist/typescript-http-rotas.d.ts +9 -0
  303. package/dist/typescript-http-rotas.js +129 -0
  304. package/dist/typescript-http-rotas.js.map +1 -0
  305. package/dist/typescript-http-semantica.d.ts +11 -0
  306. package/dist/typescript-http-semantica.js +329 -0
  307. package/dist/typescript-http-semantica.js.map +1 -0
  308. package/dist/typescript-http.d.ts +3 -35
  309. package/dist/typescript-http.js +4 -853
  310. package/dist/typescript-http.js.map +1 -1
  311. package/docs/AGENT_STARTER.md +1 -1
  312. package/docs/agentes-por-capacidade.md +55 -3
  313. package/docs/documentacao.md +1 -1
  314. package/docs/fluxo-pratico-ia-sema.md +1 -1
  315. package/docs/mcp.md +12 -0
  316. package/docs/pagamento-ponta-a-ponta.md +1 -1
  317. package/docs/persistencia-vendor-first.md +1 -1
  318. package/docs/prompt-base-ia-sema.md +1 -1
  319. package/docs/repositories.md +2 -2
  320. package/docs/seguranca.md +1 -1
  321. package/docs/sintaxe.md +1 -1
  322. package/exemplos/agendamento.sema +1 -1
  323. package/exemplos/assinatura.sema +1 -1
  324. package/exemplos/auditoria.sema +1 -1
  325. package/exemplos/autenticacao.sema +1 -1
  326. package/exemplos/author_obra_comum.sema +1 -1
  327. package/exemplos/author_tema_sensivel.sema +1 -1
  328. package/exemplos/automacao.sema +1 -1
  329. package/exemplos/cadastro_usuario.sema +1 -1
  330. package/exemplos/calculadora.sema +1 -1
  331. package/exemplos/crud_simples.sema +1 -1
  332. package/exemplos/estoque.sema +1 -1
  333. package/exemplos/exportacao.sema +1 -1
  334. package/exemplos/fila.sema +1 -1
  335. package/exemplos/integracao_externa.sema +1 -1
  336. package/exemplos/multi_tenant.sema +1 -1
  337. package/exemplos/notificacao.sema +1 -1
  338. package/exemplos/operacao_estrategia.sema +132 -633
  339. package/exemplos/operacao_estrategia_discovery.sema +220 -0
  340. package/exemplos/operacao_estrategia_fluxo.sema +114 -0
  341. package/exemplos/operacao_estrategia_gates.sema +106 -0
  342. package/exemplos/operacao_estrategia_quarentena.sema +133 -0
  343. package/exemplos/operacao_estrategia_rollout.sema +124 -0
  344. package/exemplos/pagamento.sema +1 -1
  345. package/exemplos/pagamento_dominio.sema +1 -1
  346. package/exemplos/pedido.sema +1 -1
  347. package/exemplos/permissao.sema +1 -1
  348. package/exemplos/persistencia_vendor_first.sema +1 -1
  349. package/exemplos/profile_game.sema +1 -1
  350. package/exemplos/profile_legal.sema +1 -1
  351. package/exemplos/profile_ops.sema +1 -1
  352. package/exemplos/profile_research.sema +1 -1
  353. package/exemplos/profile_software.sema +1 -1
  354. package/exemplos/profile_workflow_n8n.sema +1 -1
  355. package/exemplos/relatorio.sema +1 -1
  356. package/exemplos/replica_analitica_erp.sema +1 -1
  357. package/exemplos/testes_embutidos.sema +1 -1
  358. package/exemplos/tratamento_erro.sema +1 -1
  359. package/exemplos/upload_arquivo.sema +1 -1
  360. package/exemplos/webhook.sema +1 -1
  361. package/llms-full.txt +13 -8
  362. package/llms.txt +12 -7
  363. package/node_modules/@sema/gerador-css/dist/index.d.ts +2 -3
  364. package/node_modules/@sema/gerador-css/dist/index.js +4 -599
  365. package/node_modules/@sema/gerador-css/dist/index.js.map +1 -1
  366. package/node_modules/@sema/gerador-css/dist/index.part01.d.ts +6 -0
  367. package/node_modules/@sema/gerador-css/dist/index.part01.js +49 -0
  368. package/node_modules/@sema/gerador-css/dist/index.part01.js.map +1 -0
  369. package/node_modules/@sema/gerador-css/dist/index.part02.d.ts +3 -0
  370. package/node_modules/@sema/gerador-css/dist/index.part02.js +471 -0
  371. package/node_modules/@sema/gerador-css/dist/index.part02.js.map +1 -0
  372. package/node_modules/@sema/gerador-css/package.json +1 -1
  373. package/node_modules/@sema/gerador-dart/package.json +1 -1
  374. package/node_modules/@sema/gerador-html/package.json +1 -1
  375. package/node_modules/@sema/gerador-javascript/package.json +1 -1
  376. package/node_modules/@sema/gerador-lua/package.json +1 -1
  377. package/node_modules/@sema/gerador-python/dist/index.d.ts +2 -6
  378. package/node_modules/@sema/gerador-python/dist/index.js +4 -771
  379. package/node_modules/@sema/gerador-python/dist/index.js.map +1 -1
  380. package/node_modules/@sema/gerador-python/dist/index.part01.d.ts +28 -0
  381. package/node_modules/@sema/gerador-python/dist/index.part01.js +383 -0
  382. package/node_modules/@sema/gerador-python/dist/index.part01.js.map +1 -0
  383. package/node_modules/@sema/gerador-python/dist/index.part02.d.ts +20 -0
  384. package/node_modules/@sema/gerador-python/dist/index.part02.js +396 -0
  385. package/node_modules/@sema/gerador-python/dist/index.part02.js.map +1 -0
  386. package/node_modules/@sema/gerador-python/package.json +1 -1
  387. package/node_modules/@sema/gerador-typescript/dist/index.d.ts +3 -6
  388. package/node_modules/@sema/gerador-typescript/dist/index.js +5 -810
  389. package/node_modules/@sema/gerador-typescript/dist/index.js.map +1 -1
  390. package/node_modules/@sema/gerador-typescript/dist/index.part01.d.ts +25 -0
  391. package/node_modules/@sema/gerador-typescript/dist/index.part01.js +358 -0
  392. package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +1 -0
  393. package/node_modules/@sema/gerador-typescript/dist/index.part02.d.ts +14 -0
  394. package/node_modules/@sema/gerador-typescript/dist/index.part02.js +405 -0
  395. package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +1 -0
  396. package/node_modules/@sema/gerador-typescript/dist/index.part03.d.ts +5 -0
  397. package/node_modules/@sema/gerador-typescript/dist/index.part03.js +60 -0
  398. package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +1 -0
  399. package/node_modules/@sema/gerador-typescript/package.json +1 -1
  400. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +2 -0
  401. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +1 -1
  402. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.d.ts +6 -0
  403. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js +40 -0
  404. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +1 -0
  405. package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +2 -9
  406. package/node_modules/@sema/nucleo/dist/formatador/index.js +4 -467
  407. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
  408. package/node_modules/@sema/nucleo/dist/formatador/index.part01.d.ts +39 -0
  409. package/node_modules/@sema/nucleo/dist/formatador/index.part01.js +385 -0
  410. package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +1 -0
  411. package/node_modules/@sema/nucleo/dist/formatador/index.part02.d.ts +4 -0
  412. package/node_modules/@sema/nucleo/dist/formatador/index.part02.js +92 -0
  413. package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +1 -0
  414. package/node_modules/@sema/nucleo/dist/index.d.ts +2 -0
  415. package/node_modules/@sema/nucleo/dist/index.js +6 -0
  416. package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
  417. package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +3 -5
  418. package/node_modules/@sema/nucleo/dist/ir/conversor.js +5 -880
  419. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
  420. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.d.ts +30 -0
  421. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js +398 -0
  422. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +1 -0
  423. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.d.ts +41 -0
  424. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js +184 -0
  425. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +1 -0
  426. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.d.ts +5 -0
  427. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js +310 -0
  428. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +1 -0
  429. package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +3 -9
  430. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.d.ts +11 -0
  431. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js +150 -0
  432. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +1 -0
  433. package/node_modules/@sema/nucleo/dist/parser/parser.js +5 -768
  434. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
  435. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.d.ts +3 -0
  436. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js +222 -0
  437. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +1 -0
  438. package/node_modules/@sema/nucleo/dist/parser/parser.part01.d.ts +9 -0
  439. package/node_modules/@sema/nucleo/dist/parser/parser.part01.js +61 -0
  440. package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +1 -0
  441. package/node_modules/@sema/nucleo/dist/parser/parser.part02.d.ts +40 -0
  442. package/node_modules/@sema/nucleo/dist/parser/parser.part02.js +373 -0
  443. package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +1 -0
  444. package/node_modules/@sema/nucleo/dist/parser/parser.part03.d.ts +4 -0
  445. package/node_modules/@sema/nucleo/dist/parser/parser.part03.js +9 -0
  446. package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +1 -0
  447. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +2 -0
  448. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +1 -1
  449. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +3 -59
  450. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +2 -1682
  451. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -1
  452. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.d.ts +89 -0
  453. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js +292 -0
  454. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +1 -0
  455. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.d.ts +29 -0
  456. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js +168 -0
  457. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +1 -0
  458. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.d.ts +11 -0
  459. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js +185 -0
  460. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +1 -0
  461. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.d.ts +30 -0
  462. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js +200 -0
  463. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +1 -0
  464. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.d.ts +6 -0
  465. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js +193 -0
  466. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +1 -0
  467. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.d.ts +11 -0
  468. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js +208 -0
  469. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +1 -0
  470. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.d.ts +11 -0
  471. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js +247 -0
  472. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +1 -0
  473. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.d.ts +3 -0
  474. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js +249 -0
  475. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +1 -0
  476. package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +2 -106
  477. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +4 -474
  478. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +1 -1
  479. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.d.ts +109 -0
  480. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js +259 -0
  481. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +1 -0
  482. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.d.ts +9 -0
  483. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js +223 -0
  484. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +1 -0
  485. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.d.ts +21 -0
  486. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js +40 -0
  487. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +1 -0
  488. package/node_modules/@sema/nucleo/package.json +1 -1
  489. package/node_modules/@sema/padroes/package.json +1 -1
  490. package/package.json +10 -10
@@ -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
+ }
@@ -431,4 +431,4 @@ module exemplos.pagamento {
431
431
  timeout_gateway: "Erro publico quando o gateway nao responde."
432
432
  }
433
433
  }
434
- }
434
+ }
@@ -32,4 +32,4 @@ module exemplos.pagamento.dominio {
32
32
  PENDENTE -> RECUSADO
33
33
  }
34
34
  }
35
- }
35
+ }
@@ -252,4 +252,4 @@ module exemplos.pedido {
252
252
  auditoria fluxo_aprovacao_pedido criticidade = alta
253
253
  }
254
254
  }
255
- }
255
+ }