@semacode/cli 2.3.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/LICENSE +39 -39
  2. package/README.md +112 -41
  3. package/dist/agentContextPack.js +14 -10
  4. package/dist/agentEntryPoints.d.ts +5 -0
  5. package/dist/agentEntryPoints.js +102 -91
  6. package/dist/angular-consumer-standalone.d.ts +3 -1
  7. package/dist/angular-consumer-standalone.js +12 -8
  8. package/dist/bin.d.ts +6 -0
  9. package/dist/bin.js +130 -0
  10. package/dist/cliArgs.js +4 -4
  11. package/dist/cliControlError.d.ts +12 -0
  12. package/dist/cliControlError.js +47 -0
  13. package/dist/cliGrammar.d.ts +11 -0
  14. package/dist/cliGrammar.js +551 -0
  15. package/dist/cliHelp.d.ts +13 -0
  16. package/dist/cliHelp.js +19 -0
  17. package/dist/cliHelpTexto.d.ts +3 -0
  18. package/dist/cliHelpTexto.js +168 -0
  19. package/dist/cliRuntime.d.ts +2 -0
  20. package/dist/cliRuntime.js +31 -0
  21. package/dist/comandos.js +9 -22
  22. package/dist/contexto.js +5 -5
  23. package/dist/dev/index.d.ts +1 -0
  24. package/dist/dev/index.js +51 -9
  25. package/dist/discovery/catalog.js +3 -3
  26. package/dist/distribuicao/filesystemGlobal.d.ts +63 -0
  27. package/dist/distribuicao/filesystemGlobal.js +701 -0
  28. package/dist/distribuicao/index.d.ts +7 -0
  29. package/dist/distribuicao/index.js +227 -0
  30. package/dist/distribuicao/launcherGlobal.d.ts +53 -0
  31. package/dist/distribuicao/launcherGlobal.js +643 -0
  32. package/dist/distribuicao/launcherWindows.d.ts +28 -0
  33. package/dist/distribuicao/launcherWindows.js +326 -0
  34. package/dist/distribuicao/lockContextGlobal.d.ts +10 -0
  35. package/dist/distribuicao/lockContextGlobal.js +17 -0
  36. package/dist/distribuicao/lockGlobal.d.ts +6 -0
  37. package/dist/distribuicao/lockGlobal.js +520 -0
  38. package/dist/distribuicao/skillGlobal.d.ts +48 -0
  39. package/dist/distribuicao/skillGlobal.js +652 -0
  40. package/dist/distribuicao/skillIntentPolicy.d.ts +21 -0
  41. package/dist/distribuicao/skillIntentPolicy.js +115 -0
  42. package/dist/distribuicao/tipos.d.ts +50 -0
  43. package/dist/distribuicao/tipos.js +10 -0
  44. package/dist/distribuicao/versaoSemantica.d.ts +3 -0
  45. package/dist/distribuicao/versaoSemantica.js +62 -0
  46. package/dist/drift.part01.d.ts +34 -2
  47. package/dist/drift.part01.js +3 -0
  48. package/dist/drift.part04.d.ts +12 -2
  49. package/dist/drift.part04.js +89 -15
  50. package/dist/drift.part05.d.ts +2 -1
  51. package/dist/drift.part05.js +9 -6
  52. package/dist/drift.part06.d.ts +2 -1
  53. package/dist/drift.part06.js +115 -24
  54. package/dist/drift.part07.d.ts +11 -10
  55. package/dist/drift.part07.js +261 -255
  56. package/dist/drift.part08.d.ts +2 -1
  57. package/dist/drift.part08.js +35 -25
  58. package/dist/drift.part11.js +279 -32
  59. package/dist/drift.part12.d.ts +1 -1
  60. package/dist/drift.part12.js +196 -11
  61. package/dist/drift.part13.d.ts +18 -2
  62. package/dist/drift.part13.js +654 -76
  63. package/dist/drift.part14.js +21 -7
  64. package/dist/driftCacheCas.d.ts +43 -0
  65. package/dist/driftCacheCas.js +351 -0
  66. package/dist/driftCacheFilesystem.d.ts +64 -0
  67. package/dist/driftCacheFilesystem.js +313 -0
  68. package/dist/driftCacheModes.d.ts +38 -0
  69. package/dist/driftCacheModes.js +147 -0
  70. package/dist/driftCacheStore.d.ts +80 -0
  71. package/dist/driftCacheStore.js +603 -0
  72. package/dist/driftCatalogo.d.ts +65 -0
  73. package/dist/driftCatalogo.js +516 -0
  74. package/dist/driftEscopo.d.ts +21 -0
  75. package/dist/driftEscopo.js +647 -0
  76. package/dist/driftEscopoReferencias.d.ts +8 -0
  77. package/dist/driftEscopoReferencias.js +612 -0
  78. package/dist/driftOrcamento.d.ts +6 -0
  79. package/dist/driftOrcamento.js +20 -3
  80. package/dist/geracaoCore.js +4 -6
  81. package/dist/iaPrompts.d.ts +3 -3
  82. package/dist/iaPrompts.js +13 -14
  83. package/dist/index.d.ts +4 -1
  84. package/dist/index.js +6 -25
  85. package/dist/index.part01.d.ts +21 -14
  86. package/dist/index.part01.js +20 -165
  87. package/dist/index.part02.js +57 -43
  88. package/dist/index.part03.d.ts +23 -1
  89. package/dist/index.part03.js +83 -8
  90. package/dist/index.part04.d.ts +10 -2
  91. package/dist/index.part04.js +48 -14
  92. package/dist/index.part05.d.ts +1 -1
  93. package/dist/index.part05.js +109 -30
  94. package/dist/index.part06.js +34 -16
  95. package/dist/index.part07.js +31 -27
  96. package/dist/index.part08.d.ts +1 -1
  97. package/dist/index.part08.js +23 -28
  98. package/dist/init/templates.part01.js +393 -393
  99. package/dist/init/templates.part02.js +189 -189
  100. package/dist/initCommand.js +5 -1
  101. package/dist/initTemplatesBackend.js +73 -73
  102. package/dist/initTemplatesBase.js +7 -5
  103. package/dist/initTemplatesFlutter.js +137 -137
  104. package/dist/initTemplatesRuntime.js +350 -350
  105. package/dist/initTemplatesWeb.js +309 -309
  106. package/dist/pipelineConteudo/command.d.ts +1 -0
  107. package/dist/pipelineConteudo/command.js +4 -32
  108. package/dist/pipelineConteudo/help.d.ts +2 -0
  109. package/dist/pipelineConteudo/help.js +33 -0
  110. package/dist/profileAuthorCommand.js +3 -7
  111. package/dist/profileCommand.js +3 -7
  112. package/dist/projeto.d.ts +1 -1
  113. package/dist/projetoCarregar.d.ts +2 -2
  114. package/dist/projetoCarregar.js +69 -28
  115. package/dist/projetoCatalogo.d.ts +8 -0
  116. package/dist/projetoCatalogo.js +164 -0
  117. package/dist/projetoOrigens.d.ts +2 -0
  118. package/dist/projetoOrigens.js +65 -9
  119. package/dist/projetoTipos.d.ts +15 -5
  120. package/dist/resultadoCli.d.ts +20 -0
  121. package/dist/resultadoCli.js +57 -0
  122. package/dist/saidaCli.d.ts +35 -0
  123. package/dist/saidaCli.js +118 -0
  124. package/dist/sistemasInterativos/acceptanceEvidence.d.ts +22 -0
  125. package/dist/sistemasInterativos/acceptanceEvidence.js +345 -0
  126. package/dist/sistemasInterativos/engineObservation.d.ts +12 -0
  127. package/dist/sistemasInterativos/engineObservation.js +438 -0
  128. package/dist/sistemasInterativos/jobOrchestration.d.ts +2 -0
  129. package/dist/sistemasInterativos/jobOrchestration.js +204 -0
  130. package/dist/sistemasInterativos/operationPrimitives.d.ts +21 -0
  131. package/dist/sistemasInterativos/operationPrimitives.js +194 -0
  132. package/dist/sistemasInterativos/operations.d.ts +4 -39
  133. package/dist/sistemasInterativos/operations.js +5 -1164
  134. package/dist/skillCommand.d.ts +5 -0
  135. package/dist/skillCommand.js +88 -0
  136. package/dist/sync/index.js +35 -35
  137. package/docs/README.md +11 -7
  138. package/docs/ai-integration.md +18 -11
  139. package/docs/ai-onboarding.md +81 -62
  140. package/docs/ai-workflow.md +10 -4
  141. package/docs/auth.md +26 -26
  142. package/docs/cli.md +197 -79
  143. package/docs/commands.md +30 -6
  144. package/docs/database.md +15 -15
  145. package/docs/deploy.md +54 -41
  146. package/docs/documentation.md +11 -10
  147. package/docs/drift-cache.md +108 -0
  148. package/docs/env.md +16 -16
  149. package/docs/frontend.md +41 -41
  150. package/docs/getting-started.md +82 -57
  151. package/docs/i18n.md +15 -15
  152. package/docs/repositories.md +60 -43
  153. package/docs/rollback.md +38 -31
  154. package/docs/security.md +54 -32
  155. package/docs/sistemas-interativos.md +27 -27
  156. package/docs/support.md +8 -8
  157. package/docs/testing.md +123 -17
  158. package/docs/vocabulary.md +29 -29
  159. package/exemplos/agendamento.sema +1 -1
  160. package/exemplos/assinatura.sema +1 -1
  161. package/exemplos/auditoria.sema +1 -1
  162. package/exemplos/autenticacao.sema +1 -1
  163. package/exemplos/author_obra_comum.sema +1 -1
  164. package/exemplos/author_tema_sensivel.sema +1 -1
  165. package/exemplos/automacao.sema +1 -1
  166. package/exemplos/cadastro_usuario.sema +1 -1
  167. package/exemplos/calculadora.sema +1 -1
  168. package/exemplos/crud_simples.sema +1 -1
  169. package/exemplos/estoque.sema +1 -1
  170. package/exemplos/exportacao.sema +1 -1
  171. package/exemplos/fila.sema +1 -1
  172. package/exemplos/integracao_externa.sema +1 -1
  173. package/exemplos/multi_tenant.sema +1 -1
  174. package/exemplos/notificacao.sema +1 -1
  175. package/exemplos/operacao_estrategia.sema +132 -132
  176. package/exemplos/operacao_estrategia_discovery.sema +220 -220
  177. package/exemplos/operacao_estrategia_fluxo.sema +114 -114
  178. package/exemplos/operacao_estrategia_gates.sema +106 -106
  179. package/exemplos/operacao_estrategia_quarentena.sema +133 -133
  180. package/exemplos/operacao_estrategia_rollout.sema +124 -124
  181. package/exemplos/pagamento.sema +1 -1
  182. package/exemplos/pagamento_dominio.sema +1 -1
  183. package/exemplos/pedido.sema +1 -1
  184. package/exemplos/permissao.sema +1 -1
  185. package/exemplos/persistencia_vendor_first.sema +1 -1
  186. package/exemplos/profile_conversas.sema +165 -165
  187. package/exemplos/profile_game.sema +1 -1
  188. package/exemplos/profile_legal.sema +1 -1
  189. package/exemplos/profile_ops.sema +1 -1
  190. package/exemplos/profile_research.sema +1 -1
  191. package/exemplos/profile_software.sema +1 -1
  192. package/exemplos/profile_workflow_n8n.sema +1 -1
  193. package/exemplos/relatorio.sema +1 -1
  194. package/exemplos/replica_analitica_erp.sema +1 -1
  195. package/exemplos/testes_embutidos.sema +1 -1
  196. package/exemplos/tratamento_erro.sema +1 -1
  197. package/exemplos/upload_arquivo.sema +1 -1
  198. package/exemplos/webhook.sema +1 -1
  199. package/node_modules/@sema/gerador-cpp/dist/index.js +176 -176
  200. package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
  201. package/node_modules/@sema/gerador-css/dist/index.part02.js +460 -460
  202. package/node_modules/@sema/gerador-dotnet/dist/index.js +169 -169
  203. package/node_modules/@sema/gerador-html/dist/index.js +17 -17
  204. package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
  205. package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
  206. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
  207. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +1 -0
  208. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1 -0
  209. package/package.json +7 -2
  210. package/scripts/postinstall.mjs +148 -0
  211. package/skills/sema/SKILL.md +199 -0
  212. package/skills/sema/agents/openai.yaml +4 -0
  213. package/node_modules/@sema/gerador-cpp/dist/index.js.map +0 -1
  214. package/node_modules/@sema/gerador-css/dist/index.js.map +0 -1
  215. package/node_modules/@sema/gerador-css/dist/index.part01.js.map +0 -1
  216. package/node_modules/@sema/gerador-css/dist/index.part02.js.map +0 -1
  217. package/node_modules/@sema/gerador-dart/dist/index.js.map +0 -1
  218. package/node_modules/@sema/gerador-dotnet/dist/index.js.map +0 -1
  219. package/node_modules/@sema/gerador-html/dist/index.js.map +0 -1
  220. package/node_modules/@sema/gerador-javascript/dist/index.js.map +0 -1
  221. package/node_modules/@sema/gerador-lua/dist/index.js.map +0 -1
  222. package/node_modules/@sema/gerador-php/dist/index.js.map +0 -1
  223. package/node_modules/@sema/gerador-python/dist/index.js.map +0 -1
  224. package/node_modules/@sema/gerador-python/dist/index.part01.js.map +0 -1
  225. package/node_modules/@sema/gerador-python/dist/index.part02.js.map +0 -1
  226. package/node_modules/@sema/gerador-typescript/dist/index.js.map +0 -1
  227. package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +0 -1
  228. package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +0 -1
  229. package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +0 -1
  230. package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +0 -1
  231. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +0 -1
  232. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +0 -1
  233. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +0 -1
  234. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +0 -1
  235. package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +0 -1
  236. package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +0 -1
  237. package/node_modules/@sema/nucleo/dist/index.js.map +0 -1
  238. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +0 -1
  239. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +0 -1
  240. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +0 -1
  241. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +0 -1
  242. package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +0 -1
  243. package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +0 -1
  244. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +0 -1
  245. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +0 -1
  246. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +0 -1
  247. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +0 -1
  248. package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +0 -1
  249. package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +0 -1
  250. package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +0 -1
  251. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +0 -1
  252. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +0 -1
  253. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +0 -1
  254. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +0 -1
  255. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +0 -1
  256. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +0 -1
  257. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +0 -1
  258. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +0 -1
  259. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +0 -1
  260. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +0 -1
  261. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +0 -1
  262. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +0 -1
  263. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +0 -1
  264. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +0 -1
  265. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +0 -1
  266. package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +0 -1
  267. package/node_modules/@sema/padroes/dist/index.js.map +0 -1
@@ -1,124 +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
- }
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
+ }
@@ -118,4 +118,4 @@ module exemplos.permissao {
118
118
  }
119
119
  }
120
120
  }
121
- }
121
+ }
@@ -83,4 +83,4 @@ module exemplos.persistencia.vendor_first {
83
83
  retention: 300s
84
84
  }
85
85
  }
86
- }
86
+ }
@@ -1,165 +1,165 @@
1
- module exemplos.profile_conversas {
2
- docs {
3
- resumo: "Exemplo oficial do profile Conversas: bot comercial para atendimento de cliente com tom persuasivo, estado visivel do turno, customer_reply como unica saida ao cliente, deduplicacao, limites de promessa, memoria curta e escalacao humana. Contrato primeiro: criar, editar ou remover contrato antes de qualquer acao."
4
- }
5
-
6
- type PoliticaTomConversa {
7
- fields {
8
- tom: Texto
9
- formalidade: Texto
10
- intensidade_persuasiva: Texto
11
- proibicoes: Lista
12
- }
13
- invariants {
14
- tom existe
15
- formalidade existe
16
- intensidade_persuasiva existe
17
- proibicoes existe
18
- }
19
- }
20
-
21
- type ContextoClienteConversa {
22
- fields {
23
- etapa: Texto
24
- intencao_detectada: Texto
25
- sentimento: Texto
26
- objecoes: Lista
27
- historico_resumido: Texto
28
- ultima_mensagem_cliente: Texto
29
- ultima_resposta_visivel: Texto
30
- fatos_coletados: Lista
31
- proxima_acao_esperada: Texto
32
- }
33
- invariants {
34
- etapa existe
35
- intencao_detectada existe
36
- sentimento existe
37
- historico_resumido existe
38
- ultima_mensagem_cliente existe
39
- ultima_resposta_visivel existe
40
- fatos_coletados existe
41
- proxima_acao_esperada existe
42
- }
43
- }
44
-
45
- type EstadoTurnoConversa {
46
- fields {
47
- conversation_id: Id
48
- evento_id: Id
49
- canal: Texto
50
- mensagem_cliente_visivel: Texto
51
- resposta_anterior_visivel: Texto
52
- etapa_atual: Texto
53
- pergunta_anterior: Texto
54
- confirmacao_curta: Booleano
55
- dedupe_key: Texto
56
- origem_estado: Texto
57
- }
58
- invariants {
59
- conversation_id existe
60
- evento_id existe
61
- canal existe
62
- mensagem_cliente_visivel existe
63
- resposta_anterior_visivel existe
64
- etapa_atual existe
65
- dedupe_key existe
66
- origem_estado existe
67
- }
68
- }
69
-
70
- task responder_cliente_vendas {
71
- input {
72
- mensagem_cliente: Texto required
73
- contexto: ContextoClienteConversa required
74
- politica: PoliticaTomConversa required
75
- estado_turno: EstadoTurnoConversa required
76
- conhecimento_autorizado: Lista required
77
- }
78
- output {
79
- resposta_cliente: Texto
80
- customer_reply: Texto
81
- proxima_acao: Texto
82
- escalar_humano: Booleano
83
- dedupe_key: Texto
84
- }
85
- rules {
86
- mensagem_cliente deve_ser preenchida
87
- contexto deve_ser valido
88
- politica deve_ser com_tom_comercial_persuasivo
89
- estado_turno deve_ser origem_conversa_visivel
90
- estado_turno deve_ser deduplicado_por_evento
91
- conhecimento_autorizado deve_ser nao_vazio
92
- estado_turno.confirmacao_curta deve_ser interpretada_contra_pergunta_anterior
93
- }
94
- effects {
95
- auditoria conversa_cliente criticidade = alta
96
- evento resposta_bot_preparada criticidade = media
97
- }
98
- authz {
99
- escopo: sema.conversas.responder
100
- tenant: obrigatorio
101
- }
102
- dados {
103
- classificacao_padrao: interno
104
- redacao_log: parcial
105
- }
106
- audit {
107
- evento: exemplos.conversas.resposta
108
- ator: auth.agente
109
- correlacao: conversation_id
110
- retencao: "30d"
111
- motivo: obrigatorio
112
- }
113
- forbidden {
114
- promessa_sem_base
115
- inventar_preco_ou_prazo
116
- insistencia_agressiva
117
- ignorar_objecao_cliente
118
- reiniciar_conversa_apos_confirmacao_curta
119
- repetir_saudacao_apos_contexto_existente
120
- enviar_json_interno_ao_cliente
121
- responder_mais_de_uma_vez_o_mesmo_inbound
122
- voz_generica_de_ia
123
- }
124
- impl {
125
- ts: cli.src.index.validarProfileSemantico
126
- }
127
- vinculos {
128
- arquivo: "pacotes/cli/src/index.ts"
129
- simbolo: cli.src.index.validarProfileSemantico
130
- }
131
- execucao {
132
- idempotencia: verdadeiro
133
- timeout: "10s"
134
- retry: "nenhum"
135
- criticidade_operacional: alta
136
- }
137
- guarantees {
138
- resposta_cliente existe
139
- resposta_cliente deve_ser aderente_ao_tom
140
- resposta_cliente deve_ser responder_objecao
141
- customer_reply existe
142
- customer_reply deve_ser unica_saida_visivel
143
- proxima_acao existe
144
- proxima_acao deve_ser clara
145
- escalar_humano existe
146
- dedupe_key existe
147
- }
148
- tests {
149
- caso "lead indeciso recebe resposta com proxima acao" {
150
- given {
151
- mensagem_cliente: "Ainda estou comparando opcoes."
152
- contexto: "etapa comparacao, intencao comprar, sentimento INDECISO, objecao confianca, ultima mensagem Ainda estou comparando opcoes, ultima resposta visivel vazia"
153
- politica: "tom comercial persuasivo, formalidade media, proibido prometer preco ou prazo sem base"
154
- estado_turno: "conversation_id c1 evento_id msg1 canal WHATSAPP mensagem_cliente_visivel Ainda estou comparando opcoes resposta_anterior_visivel vazia etapa_atual comparacao dedupe_key msg1 origem_estado conversa_visivel"
155
- conhecimento_autorizado: "pode oferecer diagnostico rapido"
156
- }
157
-
158
- expect {
159
- sucesso: verdadeiro
160
- escalar_humano: falso
161
- }
162
- }
163
- }
164
- }
165
- }
1
+ module exemplos.profile_conversas {
2
+ docs {
3
+ resumo: "Exemplo oficial do profile Conversas: bot comercial para atendimento de cliente com tom persuasivo, estado visivel do turno, customer_reply como unica saida ao cliente, deduplicacao, limites de promessa, memoria curta e escalacao humana. Contrato primeiro: criar, editar ou remover contrato antes de qualquer acao."
4
+ }
5
+
6
+ type PoliticaTomConversa {
7
+ fields {
8
+ tom: Texto
9
+ formalidade: Texto
10
+ intensidade_persuasiva: Texto
11
+ proibicoes: Lista
12
+ }
13
+ invariants {
14
+ tom existe
15
+ formalidade existe
16
+ intensidade_persuasiva existe
17
+ proibicoes existe
18
+ }
19
+ }
20
+
21
+ type ContextoClienteConversa {
22
+ fields {
23
+ etapa: Texto
24
+ intencao_detectada: Texto
25
+ sentimento: Texto
26
+ objecoes: Lista
27
+ historico_resumido: Texto
28
+ ultima_mensagem_cliente: Texto
29
+ ultima_resposta_visivel: Texto
30
+ fatos_coletados: Lista
31
+ proxima_acao_esperada: Texto
32
+ }
33
+ invariants {
34
+ etapa existe
35
+ intencao_detectada existe
36
+ sentimento existe
37
+ historico_resumido existe
38
+ ultima_mensagem_cliente existe
39
+ ultima_resposta_visivel existe
40
+ fatos_coletados existe
41
+ proxima_acao_esperada existe
42
+ }
43
+ }
44
+
45
+ type EstadoTurnoConversa {
46
+ fields {
47
+ conversation_id: Id
48
+ evento_id: Id
49
+ canal: Texto
50
+ mensagem_cliente_visivel: Texto
51
+ resposta_anterior_visivel: Texto
52
+ etapa_atual: Texto
53
+ pergunta_anterior: Texto
54
+ confirmacao_curta: Booleano
55
+ dedupe_key: Texto
56
+ origem_estado: Texto
57
+ }
58
+ invariants {
59
+ conversation_id existe
60
+ evento_id existe
61
+ canal existe
62
+ mensagem_cliente_visivel existe
63
+ resposta_anterior_visivel existe
64
+ etapa_atual existe
65
+ dedupe_key existe
66
+ origem_estado existe
67
+ }
68
+ }
69
+
70
+ task responder_cliente_vendas {
71
+ input {
72
+ mensagem_cliente: Texto required
73
+ contexto: ContextoClienteConversa required
74
+ politica: PoliticaTomConversa required
75
+ estado_turno: EstadoTurnoConversa required
76
+ conhecimento_autorizado: Lista required
77
+ }
78
+ output {
79
+ resposta_cliente: Texto
80
+ customer_reply: Texto
81
+ proxima_acao: Texto
82
+ escalar_humano: Booleano
83
+ dedupe_key: Texto
84
+ }
85
+ rules {
86
+ mensagem_cliente deve_ser preenchida
87
+ contexto deve_ser valido
88
+ politica deve_ser com_tom_comercial_persuasivo
89
+ estado_turno deve_ser origem_conversa_visivel
90
+ estado_turno deve_ser deduplicado_por_evento
91
+ conhecimento_autorizado deve_ser nao_vazio
92
+ estado_turno.confirmacao_curta deve_ser interpretada_contra_pergunta_anterior
93
+ }
94
+ effects {
95
+ auditoria conversa_cliente criticidade = alta
96
+ evento resposta_bot_preparada criticidade = media
97
+ }
98
+ authz {
99
+ escopo: sema.conversas.responder
100
+ tenant: obrigatorio
101
+ }
102
+ dados {
103
+ classificacao_padrao: interno
104
+ redacao_log: parcial
105
+ }
106
+ audit {
107
+ evento: exemplos.conversas.resposta
108
+ ator: auth.agente
109
+ correlacao: conversation_id
110
+ retencao: "30d"
111
+ motivo: obrigatorio
112
+ }
113
+ forbidden {
114
+ promessa_sem_base
115
+ inventar_preco_ou_prazo
116
+ insistencia_agressiva
117
+ ignorar_objecao_cliente
118
+ reiniciar_conversa_apos_confirmacao_curta
119
+ repetir_saudacao_apos_contexto_existente
120
+ enviar_json_interno_ao_cliente
121
+ responder_mais_de_uma_vez_o_mesmo_inbound
122
+ voz_generica_de_ia
123
+ }
124
+ impl {
125
+ ts: cli.src.index.validarProfileSemantico
126
+ }
127
+ vinculos {
128
+ arquivo: "pacotes/cli/src/index.ts"
129
+ simbolo: cli.src.index.validarProfileSemantico
130
+ }
131
+ execucao {
132
+ idempotencia: verdadeiro
133
+ timeout: "10s"
134
+ retry: "nenhum"
135
+ criticidade_operacional: alta
136
+ }
137
+ guarantees {
138
+ resposta_cliente existe
139
+ resposta_cliente deve_ser aderente_ao_tom
140
+ resposta_cliente deve_ser responder_objecao
141
+ customer_reply existe
142
+ customer_reply deve_ser unica_saida_visivel
143
+ proxima_acao existe
144
+ proxima_acao deve_ser clara
145
+ escalar_humano existe
146
+ dedupe_key existe
147
+ }
148
+ tests {
149
+ caso "lead indeciso recebe resposta com proxima acao" {
150
+ given {
151
+ mensagem_cliente: "Ainda estou comparando opcoes."
152
+ contexto: "etapa comparacao, intencao comprar, sentimento INDECISO, objecao confianca, ultima mensagem Ainda estou comparando opcoes, ultima resposta visivel vazia"
153
+ politica: "tom comercial persuasivo, formalidade media, proibido prometer preco ou prazo sem base"
154
+ estado_turno: "conversation_id c1 evento_id msg1 canal WHATSAPP mensagem_cliente_visivel Ainda estou comparando opcoes resposta_anterior_visivel vazia etapa_atual comparacao dedupe_key msg1 origem_estado conversa_visivel"
155
+ conhecimento_autorizado: "pode oferecer diagnostico rapido"
156
+ }
157
+
158
+ expect {
159
+ sucesso: verdadeiro
160
+ escalar_humano: falso
161
+ }
162
+ }
163
+ }
164
+ }
165
+ }
@@ -111,4 +111,4 @@ module exemplos.profile.game {
111
111
  }
112
112
  }
113
113
  }
114
- }
114
+ }
@@ -102,4 +102,4 @@ module exemplos.profile.legal {
102
102
  }
103
103
  }
104
104
  }
105
- }
105
+ }
@@ -107,4 +107,4 @@ module exemplos.profile.ops {
107
107
  }
108
108
  }
109
109
  }
110
- }
110
+ }
@@ -101,4 +101,4 @@ module exemplos.profile.research {
101
101
  }
102
102
  }
103
103
  }
104
- }
104
+ }
@@ -120,4 +120,4 @@ module exemplos.profile.software {
120
120
  }
121
121
  }
122
122
  }
123
- }
123
+ }
@@ -96,4 +96,4 @@ module exemplos.profile.workflow_n8n {
96
96
  etapa concluir usa validar_workflow_n8n com runtime = "workflow n8n", adapter = "n8n", scorecard = "compatibilidade parcial" depende_de receber
97
97
  etapa bloquear usa validar_workflow_n8n com runtime = "workflow n8n", adapter = "n8n", scorecard = "bloqueio por lacuna" depende_de receber
98
98
  }
99
- }
99
+ }
@@ -90,4 +90,4 @@ module exemplos.relatorio {
90
90
  }
91
91
  }
92
92
  }
93
- }
93
+ }
@@ -157,4 +157,4 @@ module exemplos.replica.analitica_erp {
157
157
  }
158
158
  }
159
159
  }
160
- }
160
+ }
@@ -42,4 +42,4 @@ module exemplos.testes.embutidos {
42
42
  }
43
43
  }
44
44
  }
45
- }
45
+ }