@semacode/cli 2.0.1 → 2.2.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 (134) hide show
  1. package/LICENSE +39 -39
  2. package/README.md +141 -121
  3. package/dist/agentEntryPoints.js +499 -499
  4. package/dist/comandos.js +2 -0
  5. package/dist/doctorCommand.js +28 -0
  6. package/dist/execucoesExternas.js +19 -5
  7. package/dist/geracaoCore.js +97 -1
  8. package/dist/iaPrompts.d.ts +1 -1
  9. package/dist/iaPrompts.js +307 -307
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.js +1 -0
  12. package/dist/index.part01.d.ts +1 -1
  13. package/dist/index.part01.js +14 -4
  14. package/dist/index.part02.js +21 -21
  15. package/dist/index.part04.js +96 -96
  16. package/dist/index.part06.js +1 -1
  17. package/dist/index.part07.js +35 -24
  18. package/dist/init/templates.part01.js +393 -393
  19. package/dist/init/templates.part02.js +189 -189
  20. package/dist/initTemplatesBackend.js +73 -73
  21. package/dist/initTemplatesBase.js +81 -81
  22. package/dist/initTemplatesFlutter.js +137 -137
  23. package/dist/initTemplatesRuntime.js +350 -350
  24. package/dist/initTemplatesWeb.js +309 -309
  25. package/dist/nativeToolchains.d.ts +15 -0
  26. package/dist/nativeToolchains.js +132 -0
  27. package/dist/pipelineConteudo/adapters.d.ts +84 -0
  28. package/dist/pipelineConteudo/adapters.js +449 -0
  29. package/dist/pipelineConteudo/canonical.d.ts +18 -0
  30. package/dist/pipelineConteudo/canonical.js +107 -0
  31. package/dist/pipelineConteudo/command.d.ts +3 -0
  32. package/dist/pipelineConteudo/command.js +572 -0
  33. package/dist/pipelineConteudo/index.d.ts +9 -0
  34. package/dist/pipelineConteudo/index.js +12 -0
  35. package/dist/pipelineConteudo/ledger.d.ts +68 -0
  36. package/dist/pipelineConteudo/ledger.js +732 -0
  37. package/dist/pipelineConteudo/planner.d.ts +12 -0
  38. package/dist/pipelineConteudo/planner.js +366 -0
  39. package/dist/pipelineConteudo/projection.d.ts +16 -0
  40. package/dist/pipelineConteudo/projection.js +57 -0
  41. package/dist/pipelineConteudo/state.d.ts +23 -0
  42. package/dist/pipelineConteudo/state.js +615 -0
  43. package/dist/pipelineConteudo/trust.d.ts +17 -0
  44. package/dist/pipelineConteudo/trust.js +750 -0
  45. package/dist/pipelineConteudo/types.d.ts +331 -0
  46. package/dist/pipelineConteudo/types.js +4 -0
  47. package/dist/projetoConfig.js +7 -1
  48. package/dist/projetoResolucao.js +21 -6
  49. package/dist/sync/index.js +35 -35
  50. package/docs/README.md +28 -25
  51. package/docs/ai-onboarding.md +62 -62
  52. package/docs/ai-workflow.md +1 -1
  53. package/docs/auth.md +26 -26
  54. package/docs/cli.md +79 -72
  55. package/docs/commands.md +1 -1
  56. package/docs/database.md +15 -15
  57. package/docs/deploy.md +41 -36
  58. package/docs/documentation.md +39 -39
  59. package/docs/env.md +16 -16
  60. package/docs/frontend.md +41 -41
  61. package/docs/getting-started.md +57 -57
  62. package/docs/i18n.md +15 -15
  63. package/docs/pipeline-conteudo.md +246 -0
  64. package/docs/profiles.md +45 -43
  65. package/docs/repositories.md +43 -43
  66. package/docs/rollback.md +31 -31
  67. package/docs/security.md +32 -32
  68. package/docs/support.md +8 -8
  69. package/docs/syntax.md +1 -1
  70. package/docs/testing.md +35 -28
  71. package/docs/vocabulary.md +29 -29
  72. package/exemplos/agendamento.sema +1 -1
  73. package/exemplos/assinatura.sema +1 -1
  74. package/exemplos/auditoria.sema +1 -1
  75. package/exemplos/autenticacao.sema +1 -1
  76. package/exemplos/author_obra_comum.sema +1 -1
  77. package/exemplos/author_tema_sensivel.sema +1 -1
  78. package/exemplos/automacao.sema +1 -1
  79. package/exemplos/cadastro_usuario.sema +1 -1
  80. package/exemplos/calculadora.sema +1 -1
  81. package/exemplos/crud_simples.sema +1 -1
  82. package/exemplos/estoque.sema +1 -1
  83. package/exemplos/exportacao.sema +1 -1
  84. package/exemplos/fila.sema +1 -1
  85. package/exemplos/integracao_externa.sema +1 -1
  86. package/exemplos/multi_tenant.sema +1 -1
  87. package/exemplos/notificacao.sema +1 -1
  88. package/exemplos/operacao_estrategia.sema +132 -132
  89. package/exemplos/operacao_estrategia_discovery.sema +220 -220
  90. package/exemplos/operacao_estrategia_fluxo.sema +114 -114
  91. package/exemplos/operacao_estrategia_gates.sema +106 -106
  92. package/exemplos/operacao_estrategia_quarentena.sema +133 -133
  93. package/exemplos/operacao_estrategia_rollout.sema +124 -124
  94. package/exemplos/pagamento.sema +1 -1
  95. package/exemplos/pagamento_dominio.sema +1 -1
  96. package/exemplos/pedido.sema +1 -1
  97. package/exemplos/permissao.sema +1 -1
  98. package/exemplos/persistencia_vendor_first.sema +1 -1
  99. package/exemplos/pipeline-conteudo/README.md +44 -0
  100. package/exemplos/pipeline-conteudo/alvos.json +23 -0
  101. package/exemplos/pipeline-conteudo/definicao.json +136 -0
  102. package/exemplos/profile_conversas.sema +165 -165
  103. package/exemplos/profile_game.sema +1 -1
  104. package/exemplos/profile_legal.sema +1 -1
  105. package/exemplos/profile_ops.sema +1 -1
  106. package/exemplos/profile_research.sema +1 -1
  107. package/exemplos/profile_software.sema +1 -1
  108. package/exemplos/profile_workflow_n8n.sema +1 -1
  109. package/exemplos/relatorio.sema +1 -1
  110. package/exemplos/replica_analitica_erp.sema +1 -1
  111. package/exemplos/testes_embutidos.sema +1 -1
  112. package/exemplos/tratamento_erro.sema +1 -1
  113. package/exemplos/upload_arquivo.sema +1 -1
  114. package/exemplos/webhook.sema +1 -1
  115. package/node_modules/@sema/gerador-cpp/dist/index.d.ts +3 -0
  116. package/node_modules/@sema/gerador-cpp/dist/index.js +859 -0
  117. package/node_modules/@sema/gerador-cpp/dist/index.js.map +1 -0
  118. package/node_modules/@sema/gerador-cpp/package.json +7 -0
  119. package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
  120. package/node_modules/@sema/gerador-css/dist/index.part02.js +460 -460
  121. package/node_modules/@sema/gerador-dotnet/dist/index.d.ts +3 -0
  122. package/node_modules/@sema/gerador-dotnet/dist/index.js +828 -0
  123. package/node_modules/@sema/gerador-dotnet/dist/index.js.map +1 -0
  124. package/node_modules/@sema/gerador-dotnet/package.json +7 -0
  125. package/node_modules/@sema/gerador-html/dist/index.js +17 -17
  126. package/node_modules/@sema/gerador-lua/dist/index.js +53 -8
  127. package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
  128. package/node_modules/@sema/gerador-php/dist/index.js +121 -113
  129. package/node_modules/@sema/gerador-php/dist/index.js.map +1 -1
  130. package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
  131. package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
  132. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
  133. package/node_modules/@sema/padroes/dist/index.d.ts +1 -1
  134. package/package.json +12 -1
@@ -1,106 +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
- }
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
+ }
@@ -1,133 +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
- }
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
+ }