@semacode/cli 1.5.18 → 1.5.25

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 (93) hide show
  1. package/AGENTS.md +268 -260
  2. package/LICENSE +22 -22
  3. package/README.md +144 -104
  4. package/SEMA_BRIEF.curto.txt +7 -5
  5. package/SEMA_BRIEF.md +61 -5
  6. package/SEMA_BRIEF.micro.txt +6 -4
  7. package/SEMA_INDEX.json +991 -47
  8. package/dist/controleComercialSupabase.d.ts +326 -0
  9. package/dist/controleComercialSupabase.js +310 -0
  10. package/dist/controleComercialSupabase.js.map +1 -0
  11. package/dist/docs.js +48 -20
  12. package/dist/docs.js.map +1 -1
  13. package/dist/drift.d.ts +5 -3
  14. package/dist/drift.js +123 -14
  15. package/dist/drift.js.map +1 -1
  16. package/dist/index.js +1889 -38
  17. package/dist/index.js.map +1 -1
  18. package/dist/mcpRemoto.d.ts +32 -0
  19. package/dist/mcpRemoto.js +61 -0
  20. package/dist/mcpRemoto.js.map +1 -0
  21. package/dist/projeto.js +3 -1
  22. package/dist/projeto.js.map +1 -1
  23. package/docs/AGENT_STARTER.md +103 -97
  24. package/docs/cli.md +175 -106
  25. package/docs/como-ensinar-a-sema-para-ia.md +41 -35
  26. package/docs/deploy.md +231 -43
  27. package/docs/documentacao.md +61 -36
  28. package/docs/env.md +105 -56
  29. package/docs/extensao-vscode.md +12 -4
  30. package/docs/fluxo-pratico-ia-sema.md +182 -176
  31. package/docs/instalacao-e-primeiro-uso.md +52 -30
  32. package/docs/integracao-com-ia.md +108 -101
  33. package/docs/mcp.md +292 -51
  34. package/docs/pagamento-ponta-a-ponta.md +34 -28
  35. package/docs/persistencia-vendor-first.md +11 -5
  36. package/docs/prompt-base-ia-sema.md +13 -7
  37. package/docs/rollback.md +17 -15
  38. package/docs/sintaxe.md +180 -174
  39. package/exemplos/agendamento.sema +105 -105
  40. package/exemplos/assinatura.sema +133 -133
  41. package/exemplos/auditoria.sema +89 -89
  42. package/exemplos/autenticacao.sema +125 -125
  43. package/exemplos/author_obra_comum.sema +294 -0
  44. package/exemplos/author_tema_sensivel.sema +264 -0
  45. package/exemplos/automacao.sema +107 -107
  46. package/exemplos/cadastro_usuario.sema +54 -54
  47. package/exemplos/calculadora.sema +78 -78
  48. package/exemplos/crud_simples.sema +89 -89
  49. package/exemplos/estoque.sema +127 -127
  50. package/exemplos/exportacao.sema +94 -94
  51. package/exemplos/fila.sema +130 -130
  52. package/exemplos/integracao_externa.sema +94 -94
  53. package/exemplos/multi_tenant.sema +140 -140
  54. package/exemplos/notificacao.sema +149 -149
  55. package/exemplos/operacao_estrategia.sema +633 -633
  56. package/exemplos/pagamento.sema +434 -434
  57. package/exemplos/pagamento_dominio.sema +35 -35
  58. package/exemplos/pedido.sema +255 -255
  59. package/exemplos/permissao.sema +121 -121
  60. package/exemplos/persistencia_vendor_first.sema +86 -86
  61. package/exemplos/profile_game.sema +114 -0
  62. package/exemplos/profile_legal.sema +105 -0
  63. package/exemplos/profile_ops.sema +110 -0
  64. package/exemplos/profile_research.sema +104 -0
  65. package/exemplos/profile_software.sema +123 -0
  66. package/exemplos/profile_workflow_n8n.sema +99 -0
  67. package/exemplos/relatorio.sema +93 -93
  68. package/exemplos/replica_analitica_erp.sema +160 -160
  69. package/exemplos/testes_embutidos.sema +45 -45
  70. package/exemplos/tratamento_erro.sema +157 -157
  71. package/exemplos/upload_arquivo.sema +93 -93
  72. package/exemplos/webhook.sema +94 -94
  73. package/llms-full.txt +34 -34
  74. package/llms.txt +17 -17
  75. package/node_modules/@sema/gerador-css/dist/index.js +563 -563
  76. package/node_modules/@sema/gerador-css/package.json +1 -1
  77. package/node_modules/@sema/gerador-dart/package.json +1 -1
  78. package/node_modules/@sema/gerador-html/dist/index.js +90 -90
  79. package/node_modules/@sema/gerador-html/package.json +1 -1
  80. package/node_modules/@sema/gerador-javascript/dist/index.js +92 -92
  81. package/node_modules/@sema/gerador-javascript/package.json +1 -1
  82. package/node_modules/@sema/gerador-lua/dist/index.js +53 -53
  83. package/node_modules/@sema/gerador-lua/package.json +1 -1
  84. package/node_modules/@sema/gerador-python/dist/index.js +122 -96
  85. package/node_modules/@sema/gerador-python/dist/index.js.map +1 -1
  86. package/node_modules/@sema/gerador-python/package.json +1 -1
  87. package/node_modules/@sema/gerador-typescript/dist/index.js +153 -153
  88. package/node_modules/@sema/gerador-typescript/package.json +1 -1
  89. package/node_modules/@sema/nucleo/dist/formatador/index.js +12 -4
  90. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
  91. package/node_modules/@sema/nucleo/package.json +1 -1
  92. package/node_modules/@sema/padroes/package.json +1 -1
  93. package/package.json +11 -11
@@ -0,0 +1,264 @@
1
+ module exemplos.author.tema_sensivel {
2
+ docs {
3
+ resumo: "Starter publico do Sema Author para obra com tema sensivel, exigindo publico, fontes, limites, agentes e fluxo de revisao."
4
+ }
5
+
6
+ type FonteAuthor {
7
+ fields {
8
+ nome: Texto
9
+ tipo: Texto
10
+ confianca: Texto
11
+ limite_uso: Texto
12
+ }
13
+ invariants {
14
+ nome existe
15
+ tipo existe
16
+ confianca existe
17
+ limite_uso existe
18
+ }
19
+ }
20
+
21
+ type AgentAuthor {
22
+ fields {
23
+ nome: Texto
24
+ papel: Texto
25
+ permissao: Texto
26
+ }
27
+ invariants {
28
+ nome existe
29
+ papel existe
30
+ permissao existe
31
+ }
32
+ }
33
+
34
+ enum PublicoSensivel {
35
+ ADULTO,
36
+ TECNICO,
37
+ COMUNIDADE_AFETADA
38
+ }
39
+
40
+ enum StatusSensivel {
41
+ BLOQUEADO,
42
+ BRIEFING,
43
+ REVISAO_FONTES,
44
+ REVISAO_SENSIBILIDADE,
45
+ PUBLICAVEL
46
+ }
47
+
48
+ task declarar_tema_sensivel {
49
+ input {
50
+ obra: Texto required
51
+ publico: PublicoSensivel required
52
+ tema: Texto required
53
+ fontes: Lista required
54
+ limites: Lista required
55
+ }
56
+ output {
57
+ status: StatusSensivel
58
+ fontes_validas: Booleano
59
+ limites_explicitos: Booleano
60
+ }
61
+ rules {
62
+ obra deve_ser preenchido
63
+ publico deve_ser valido
64
+ tema deve_ser preenchido
65
+ fontes deve_ser nao_vazio
66
+ limites deve_ser nao_vazio
67
+ }
68
+ effects {
69
+ auditoria author_tema_sensivel criticidade = alta
70
+ }
71
+ authz {
72
+ escopo: author.tema_sensivel.declarar
73
+ tenant: opcional
74
+ }
75
+ dados {
76
+ classificacao_padrao: interno
77
+ redacao_log: obrigatoria
78
+ }
79
+ audit {
80
+ evento: author.tema_sensivel.declarado
81
+ ator: auth.agente
82
+ correlacao: request_id
83
+ retencao: "180d"
84
+ motivo: obrigatorio
85
+ }
86
+ forbidden {
87
+ publico_indefinido
88
+ fontes_inventadas
89
+ limite_implicito
90
+ sensibilidade_sem_revisor
91
+ }
92
+ vinculos {
93
+ arquivo: "docs/profiles-author-agents-flow.md"
94
+ }
95
+ execucao {
96
+ idempotencia: verdadeiro
97
+ timeout: "15s"
98
+ retry: "nenhum"
99
+ criticidade_operacional: alta
100
+ }
101
+ guarantees {
102
+ status em [BRIEFING, REVISAO_FONTES]
103
+ fontes_validas == verdadeiro
104
+ limites_explicitos == verdadeiro
105
+ }
106
+ tests {
107
+ caso "tema sensivel com fonte e limite" {
108
+ given {
109
+ obra: "Relato Documental"
110
+ publico: "ADULTO"
111
+ tema: "violencia_historica"
112
+ fontes: "arquivo_publico"
113
+ limites: "nao_romantizar_dano"
114
+ }
115
+
116
+ expect {
117
+ sucesso: verdadeiro
118
+ fontes_validas: verdadeiro
119
+ limites_explicitos: verdadeiro
120
+ }
121
+ }
122
+ }
123
+ }
124
+
125
+ task montar_agents_author {
126
+ input {
127
+ planejador: Texto required
128
+ editor: Texto required
129
+ revisor_cliche: Texto required
130
+ sensitivity_reviewer: Texto required
131
+ }
132
+ output {
133
+ agents: Lista
134
+ pronto_para_flow: Booleano
135
+ }
136
+ rules {
137
+ planejador deve_ser preenchido
138
+ editor deve_ser preenchido
139
+ revisor_cliche deve_ser preenchido
140
+ sensitivity_reviewer deve_ser preenchido
141
+ }
142
+ effects {
143
+ auditoria author_agents criticidade = media
144
+ }
145
+ forbidden {
146
+ agent_sem_papel
147
+ sensitivity_reviewer_ausente
148
+ agente_sem_limite
149
+ }
150
+ execucao {
151
+ idempotencia: verdadeiro
152
+ timeout: "10s"
153
+ criticidade_operacional: media
154
+ }
155
+ guarantees {
156
+ agents existe
157
+ pronto_para_flow == verdadeiro
158
+ }
159
+ tests {
160
+ caso "agents sensiveis completos" {
161
+ given {
162
+ planejador: "planejador"
163
+ editor: "editor"
164
+ revisor_cliche: "anti_cliche"
165
+ sensitivity_reviewer: "revisor_sensibilidade"
166
+ }
167
+
168
+ expect {
169
+ sucesso: verdadeiro
170
+ pronto_para_flow: verdadeiro
171
+ }
172
+ }
173
+ }
174
+ }
175
+
176
+ task validar_entrega_sensivel {
177
+ input {
178
+ texto: Texto required
179
+ fontes_lidas: Booleano required
180
+ revisao_sensibilidade: Booleano required
181
+ dano_mitigado: Booleano required
182
+ }
183
+ output {
184
+ status: StatusSensivel
185
+ bloqueios: Lista
186
+ }
187
+ rules {
188
+ texto deve_ser preenchido
189
+ fontes_lidas deve_ser verdadeiro
190
+ revisao_sensibilidade deve_ser verdadeiro
191
+ dano_mitigado deve_ser verdadeiro
192
+ }
193
+ effects {
194
+ auditoria author_entrega_sensivel criticidade = alta
195
+ }
196
+ authz {
197
+ escopo: author.tema_sensivel.validar
198
+ tenant: opcional
199
+ }
200
+ dados {
201
+ classificacao_padrao: interno
202
+ redacao_log: obrigatoria
203
+ }
204
+ audit {
205
+ evento: author.tema_sensivel.entrega_validada
206
+ ator: auth.agente
207
+ correlacao: request_id
208
+ retencao: "180d"
209
+ motivo: obrigatorio
210
+ }
211
+ forbidden {
212
+ publicar_sem_fontes_lidas
213
+ publicar_sem_revisao_sensibilidade
214
+ estetizar_sofrimento
215
+ atribuir_fala_a_grupo_sem_base
216
+ }
217
+ vinculos {
218
+ arquivo: "docs/profiles-author-agents-flow.md"
219
+ }
220
+ execucao {
221
+ idempotencia: verdadeiro
222
+ timeout: "15s"
223
+ criticidade_operacional: alta
224
+ }
225
+ guarantees {
226
+ status em [REVISAO_SENSIBILIDADE, PUBLICAVEL]
227
+ bloqueios existe
228
+ }
229
+ tests {
230
+ caso "entrega sensivel publicavel" {
231
+ given {
232
+ texto: "cena revisada"
233
+ fontes_lidas: verdadeiro
234
+ revisao_sensibilidade: verdadeiro
235
+ dano_mitigado: verdadeiro
236
+ }
237
+
238
+ expect {
239
+ sucesso: verdadeiro
240
+ status: "PUBLICAVEL"
241
+ }
242
+ }
243
+ }
244
+ }
245
+
246
+ flow author_flow_tema_sensivel {
247
+ obra: Texto
248
+ publico: PublicoSensivel
249
+ tema: Texto
250
+ fontes: Lista
251
+ limites: Lista
252
+ planejador: Texto
253
+ editor: Texto
254
+ revisor_cliche: Texto
255
+ sensitivity_reviewer: Texto
256
+ texto: Texto
257
+ etapa tema usa declarar_tema_sensivel com obra = obra, publico = publico, tema = tema, fontes = fontes, limites = limites
258
+ etapa agents usa montar_agents_author com planejador = planejador, editor = editor, revisor_cliche = revisor_cliche, sensitivity_reviewer = sensitivity_reviewer depende_de tema
259
+ etapa entrega usa validar_entrega_sensivel com texto = texto, fontes_lidas = verdadeiro, revisao_sensibilidade = verdadeiro, dano_mitigado = verdadeiro depende_de agents
260
+ effects {
261
+ auditoria author_flow_sensivel criticidade = alta
262
+ }
263
+ }
264
+ }
@@ -1,107 +1,107 @@
1
- module exemplos.automacao {
2
- state onboarding_status {
3
- origem: automacao
4
- fields {
5
- lead_id: Id
6
- etapa_atual: Texto
7
- concluido: Booleano
8
- }
9
- }
10
-
11
- task executar_onboarding {
12
- input {
13
- lead_id: Id required
14
- email: Email required
15
- }
16
- output {
17
- protocolo: Id
18
- }
19
- rules {
20
- lead_id deve_ser valido
21
- email deve_ser email_valido
22
- }
23
- effects {
24
- consulta crm
25
- persistencia conta
26
- notificacao email detalhe_boas_vindas
27
- auditoria onboarding
28
- }
29
- guarantees {
30
- protocolo existe
31
- persistencia concluida
32
- }
33
- tests {
34
- caso "onboarding completo" {
35
- given {
36
- lead_id: "lead_1"
37
- email: "cliente@empresa.com"
38
- }
39
-
40
- expect {
41
- sucesso: verdadeiro
42
- }
43
- }
44
- }
45
- }
46
-
47
- task registrar_auditoria {
48
- input {
49
- protocolo: Id required
50
- }
51
- output {
52
- auditoria_id: Id
53
- }
54
- effects {
55
- auditoria onboarding
56
- }
57
- guarantees {
58
- auditoria_id existe
59
- }
60
- tests {
61
- caso "auditoria registrada" {
62
- given {
63
- protocolo: "prot_1"
64
- }
65
-
66
- expect {
67
- sucesso: verdadeiro
68
- }
69
- }
70
- }
71
- }
72
-
73
- task registrar_falha_onboarding {
74
- input {
75
- lead_id: Id required
76
- }
77
- output {
78
- protocolo_falha: Id
79
- }
80
- effects {
81
- auditoria falha_onboarding
82
- persistencia onboarding_falha
83
- }
84
- guarantees {
85
- protocolo_falha existe
86
- }
87
- tests {
88
- caso "falha registrada" {
89
- given {
90
- lead_id: "lead_1"
91
- }
92
-
93
- expect {
94
- sucesso: verdadeiro
95
- }
96
- }
97
- }
98
- }
99
-
100
- flow onboarding_cliente {
101
- lead_id: Id
102
- email: Email
103
- etapa receber usa executar_onboarding com lead_id = lead_id, email = email quando (sucesso existe ou persistencia concluida) em_sucesso auditar em_erro registrar_falha
104
- etapa auditar usa registrar_auditoria com protocolo = receber.protocolo depende_de receber
105
- etapa registrar_falha usa registrar_falha_onboarding com lead_id = lead_id depende_de receber
106
- }
107
- }
1
+ module exemplos.automacao {
2
+ state onboarding_status {
3
+ origem: automacao
4
+ fields {
5
+ lead_id: Id
6
+ etapa_atual: Texto
7
+ concluido: Booleano
8
+ }
9
+ }
10
+
11
+ task executar_onboarding {
12
+ input {
13
+ lead_id: Id required
14
+ email: Email required
15
+ }
16
+ output {
17
+ protocolo: Id
18
+ }
19
+ rules {
20
+ lead_id deve_ser valido
21
+ email deve_ser email_valido
22
+ }
23
+ effects {
24
+ consulta crm
25
+ persistencia conta
26
+ notificacao email detalhe_boas_vindas
27
+ auditoria onboarding
28
+ }
29
+ guarantees {
30
+ protocolo existe
31
+ persistencia concluida
32
+ }
33
+ tests {
34
+ caso "onboarding completo" {
35
+ given {
36
+ lead_id: "lead_1"
37
+ email: "cliente@empresa.com"
38
+ }
39
+
40
+ expect {
41
+ sucesso: verdadeiro
42
+ }
43
+ }
44
+ }
45
+ }
46
+
47
+ task registrar_auditoria {
48
+ input {
49
+ protocolo: Id required
50
+ }
51
+ output {
52
+ auditoria_id: Id
53
+ }
54
+ effects {
55
+ auditoria onboarding
56
+ }
57
+ guarantees {
58
+ auditoria_id existe
59
+ }
60
+ tests {
61
+ caso "auditoria registrada" {
62
+ given {
63
+ protocolo: "prot_1"
64
+ }
65
+
66
+ expect {
67
+ sucesso: verdadeiro
68
+ }
69
+ }
70
+ }
71
+ }
72
+
73
+ task registrar_falha_onboarding {
74
+ input {
75
+ lead_id: Id required
76
+ }
77
+ output {
78
+ protocolo_falha: Id
79
+ }
80
+ effects {
81
+ auditoria falha_onboarding
82
+ persistencia onboarding_falha
83
+ }
84
+ guarantees {
85
+ protocolo_falha existe
86
+ }
87
+ tests {
88
+ caso "falha registrada" {
89
+ given {
90
+ lead_id: "lead_1"
91
+ }
92
+
93
+ expect {
94
+ sucesso: verdadeiro
95
+ }
96
+ }
97
+ }
98
+ }
99
+
100
+ flow onboarding_cliente {
101
+ lead_id: Id
102
+ email: Email
103
+ etapa receber usa executar_onboarding com lead_id = lead_id, email = email quando (sucesso existe ou persistencia concluida) em_sucesso auditar em_erro registrar_falha
104
+ etapa auditar usa registrar_auditoria com protocolo = receber.protocolo depende_de receber
105
+ etapa registrar_falha usa registrar_falha_onboarding com lead_id = lead_id depende_de receber
106
+ }
107
+ }
@@ -1,54 +1,54 @@
1
- module exemplos.cadastro.usuario {
2
- docs {
3
- resumo: "Cadastro de usuario com entidade,validacoes e persistencia declarada."
4
- }
5
-
6
- entity Usuario {
7
- fields {
8
- id: Id
9
- nome: Texto
10
- email: Email
11
- ativo: Booleano
12
- }
13
- }
14
-
15
- task criar_usuario {
16
- input {
17
- nome: Texto required
18
- email: Email required
19
- }
20
- output {
21
- usuario: Usuario
22
- }
23
- rules {
24
- nome deve_ser preenchido
25
- email deve_ser email_valido
26
- email deve_ser unico em Usuario.email
27
- }
28
- effects {
29
- persistencia Usuario
30
- evento usuario_criado
31
- auditoria cadastro_usuario
32
- }
33
- guarantees {
34
- usuario existe
35
- persistencia concluida
36
- }
37
- error {
38
- email_duplicado: "Ja existe usuario com este email."
39
- entrada_invalida: "Os dados informados nao atendem as regras."
40
- }
41
- tests {
42
- caso "cria usuario valido" {
43
- given {
44
- nome: "Ana"
45
- email: "ana@empresa.com"
46
- }
47
-
48
- expect {
49
- sucesso: verdadeiro
50
- }
51
- }
52
- }
53
- }
54
- }
1
+ module exemplos.cadastro.usuario {
2
+ docs {
3
+ resumo: "Cadastro de usuario com entidade,validacoes e persistencia declarada."
4
+ }
5
+
6
+ entity Usuario {
7
+ fields {
8
+ id: Id
9
+ nome: Texto
10
+ email: Email
11
+ ativo: Booleano
12
+ }
13
+ }
14
+
15
+ task criar_usuario {
16
+ input {
17
+ nome: Texto required
18
+ email: Email required
19
+ }
20
+ output {
21
+ usuario: Usuario
22
+ }
23
+ rules {
24
+ nome deve_ser preenchido
25
+ email deve_ser email_valido
26
+ email deve_ser unico em Usuario.email
27
+ }
28
+ effects {
29
+ persistencia Usuario
30
+ evento usuario_criado
31
+ auditoria cadastro_usuario
32
+ }
33
+ guarantees {
34
+ usuario existe
35
+ persistencia concluida
36
+ }
37
+ error {
38
+ email_duplicado: "Ja existe usuario com este email."
39
+ entrada_invalida: "Os dados informados nao atendem as regras."
40
+ }
41
+ tests {
42
+ caso "cria usuario valido" {
43
+ given {
44
+ nome: "Ana"
45
+ email: "ana@empresa.com"
46
+ }
47
+
48
+ expect {
49
+ sucesso: verdadeiro
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }