@semacode/cli 1.5.31 → 1.5.34

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 (160) hide show
  1. package/AGENTS.md +308 -0
  2. package/AGENT_CONTEXT_PACK.json +288 -0
  3. package/LICENSE +22 -0
  4. package/README.md +85 -144
  5. package/SEMA_BRIEF.curto.txt +11 -0
  6. package/SEMA_BRIEF.md +617 -0
  7. package/SEMA_BRIEF.micro.txt +9 -0
  8. package/SEMA_INDEX.json +9805 -0
  9. package/dist/billing/index.d.ts +46 -0
  10. package/dist/billing/index.js +143 -0
  11. package/dist/billing/index.js.map +1 -0
  12. package/dist/controleComercialSupabase.d.ts +7 -0
  13. package/dist/controleComercialSupabase.js +6 -0
  14. package/dist/controleComercialSupabase.js.map +1 -0
  15. package/dist/controleComercialSupabaseAdmin.d.ts +7 -0
  16. package/dist/controleComercialSupabaseAdmin.js +138 -0
  17. package/dist/controleComercialSupabaseAdmin.js.map +1 -0
  18. package/dist/controleComercialSupabaseCadastro.d.ts +4 -0
  19. package/dist/controleComercialSupabaseCadastro.js +85 -0
  20. package/dist/controleComercialSupabaseCadastro.js.map +1 -0
  21. package/dist/controleComercialSupabaseConstantes.d.ts +28 -0
  22. package/dist/controleComercialSupabaseConstantes.js +44 -0
  23. package/dist/controleComercialSupabaseConstantes.js.map +1 -0
  24. package/dist/controleComercialSupabaseConsumo.d.ts +2 -0
  25. package/dist/controleComercialSupabaseConsumo.js +77 -0
  26. package/dist/controleComercialSupabaseConsumo.js.map +1 -0
  27. package/dist/controleComercialSupabaseConta.d.ts +11 -0
  28. package/dist/controleComercialSupabaseConta.js +157 -0
  29. package/dist/controleComercialSupabaseConta.js.map +1 -0
  30. package/dist/controleComercialSupabaseProfiles.d.ts +4 -0
  31. package/dist/controleComercialSupabaseProfiles.js +55 -0
  32. package/dist/controleComercialSupabaseProfiles.js.map +1 -0
  33. package/dist/controleComercialSupabaseTipos.d.ts +3 -0
  34. package/dist/controleComercialSupabaseTipos.js +2 -0
  35. package/dist/controleComercialSupabaseTipos.js.map +1 -0
  36. package/dist/controleComercialSupabaseTiposAdmin.d.ts +152 -0
  37. package/dist/controleComercialSupabaseTiposAdmin.js +2 -0
  38. package/dist/controleComercialSupabaseTiposAdmin.js.map +1 -0
  39. package/dist/controleComercialSupabaseTiposBase.d.ts +169 -0
  40. package/dist/controleComercialSupabaseTiposBase.js +2 -0
  41. package/dist/controleComercialSupabaseTiposBase.js.map +1 -0
  42. package/dist/controleComercialSupabaseTiposConta.d.ts +220 -0
  43. package/dist/controleComercialSupabaseTiposConta.js +2 -0
  44. package/dist/controleComercialSupabaseTiposConta.js.map +1 -0
  45. package/dist/docs.js +72 -5
  46. package/dist/docs.js.map +1 -1
  47. package/dist/index.js +701 -185
  48. package/dist/index.js.map +1 -1
  49. package/dist/runnerValidacaoRemota.d.ts +9 -0
  50. package/dist/runnerValidacaoRemota.js +9 -0
  51. package/dist/runnerValidacaoRemota.js.map +1 -0
  52. package/dist/runnerValidacaoRemotaBateria.d.ts +10 -0
  53. package/dist/runnerValidacaoRemotaBateria.js +115 -0
  54. package/dist/runnerValidacaoRemotaBateria.js.map +1 -0
  55. package/dist/runnerValidacaoRemotaCli.d.ts +4 -0
  56. package/dist/runnerValidacaoRemotaCli.js +86 -0
  57. package/dist/runnerValidacaoRemotaCli.js.map +1 -0
  58. package/dist/runnerValidacaoRemotaComandos.d.ts +7 -0
  59. package/dist/runnerValidacaoRemotaComandos.js +123 -0
  60. package/dist/runnerValidacaoRemotaComandos.js.map +1 -0
  61. package/dist/runnerValidacaoRemotaEscopo.d.ts +4 -0
  62. package/dist/runnerValidacaoRemotaEscopo.js +79 -0
  63. package/dist/runnerValidacaoRemotaEscopo.js.map +1 -0
  64. package/dist/runnerValidacaoRemotaExecucao.d.ts +2 -0
  65. package/dist/runnerValidacaoRemotaExecucao.js +102 -0
  66. package/dist/runnerValidacaoRemotaExecucao.js.map +1 -0
  67. package/dist/runnerValidacaoRemotaRelatorio.d.ts +3 -0
  68. package/dist/runnerValidacaoRemotaRelatorio.js +93 -0
  69. package/dist/runnerValidacaoRemotaRelatorio.js.map +1 -0
  70. package/dist/runnerValidacaoRemotaServidor.d.ts +3 -0
  71. package/dist/runnerValidacaoRemotaServidor.js +157 -0
  72. package/dist/runnerValidacaoRemotaServidor.js.map +1 -0
  73. package/dist/runnerValidacaoRemotaSnapshot.d.ts +10 -0
  74. package/dist/runnerValidacaoRemotaSnapshot.js +217 -0
  75. package/dist/runnerValidacaoRemotaSnapshot.js.map +1 -0
  76. package/dist/runnerValidacaoRemotaTipos.d.ts +158 -0
  77. package/dist/runnerValidacaoRemotaTipos.js +35 -0
  78. package/dist/runnerValidacaoRemotaTipos.js.map +1 -0
  79. package/dist/runnerValidacaoRemotaUtil.d.ts +3 -0
  80. package/dist/runnerValidacaoRemotaUtil.js +18 -0
  81. package/dist/runnerValidacaoRemotaUtil.js.map +1 -0
  82. package/dist/runnerValidacaoRemotaWorkspace.d.ts +2 -0
  83. package/dist/runnerValidacaoRemotaWorkspace.js +110 -0
  84. package/dist/runnerValidacaoRemotaWorkspace.js.map +1 -0
  85. package/docs/AGENT_STARTER.md +109 -0
  86. package/docs/agentes-por-capacidade.md +42 -0
  87. package/docs/api.md +82 -0
  88. package/docs/cli.md +93 -0
  89. package/docs/como-ensinar-a-sema-para-ia.md +30 -0
  90. package/docs/deploy.md +45 -0
  91. package/docs/documentacao.md +88 -0
  92. package/docs/env.md +115 -0
  93. package/docs/extensao-vscode.md +42 -0
  94. package/docs/fluxo-pratico-ia-sema.md +195 -0
  95. package/docs/instalacao-e-primeiro-uso.md +48 -0
  96. package/docs/integracao-com-ia.md +38 -0
  97. package/docs/mcp.md +54 -0
  98. package/docs/pagamento-ponta-a-ponta.md +171 -0
  99. package/docs/persistencia-vendor-first.md +151 -0
  100. package/docs/prompt-base-ia-sema.md +111 -0
  101. package/docs/repositories.md +69 -0
  102. package/docs/rollback.md +24 -0
  103. package/docs/seguranca.md +126 -0
  104. package/docs/sintaxe.md +218 -0
  105. package/exemplos/profile_conversas.sema +165 -0
  106. package/llms-full.txt +35 -0
  107. package/llms.txt +18 -0
  108. package/node_modules/@sema/gerador-css/package.json +7 -14
  109. package/node_modules/@sema/gerador-dart/package.json +7 -14
  110. package/node_modules/@sema/gerador-html/package.json +7 -14
  111. package/node_modules/@sema/gerador-javascript/package.json +7 -14
  112. package/node_modules/@sema/gerador-lua/package.json +7 -14
  113. package/node_modules/@sema/gerador-python/package.json +7 -14
  114. package/node_modules/@sema/gerador-typescript/package.json +7 -14
  115. package/node_modules/@sema/nucleo/package.json +7 -10
  116. package/node_modules/@sema/padroes/package.json +7 -10
  117. package/package.json +75 -74
  118. package/exemplos/.prepack-generated +0 -1
  119. package/node_modules/@sema/gerador-css/src/index.ts +0 -605
  120. package/node_modules/@sema/gerador-css/tsconfig.json +0 -13
  121. package/node_modules/@sema/gerador-css/tsconfig.tsbuildinfo +0 -1
  122. package/node_modules/@sema/gerador-dart/src/index.ts +0 -52
  123. package/node_modules/@sema/gerador-dart/tsconfig.json +0 -13
  124. package/node_modules/@sema/gerador-dart/tsconfig.tsbuildinfo +0 -1
  125. package/node_modules/@sema/gerador-html/src/index.ts +0 -185
  126. package/node_modules/@sema/gerador-html/tsconfig.json +0 -13
  127. package/node_modules/@sema/gerador-html/tsconfig.tsbuildinfo +0 -1
  128. package/node_modules/@sema/gerador-javascript/src/index.ts +0 -461
  129. package/node_modules/@sema/gerador-javascript/tsconfig.json +0 -13
  130. package/node_modules/@sema/gerador-javascript/tsconfig.tsbuildinfo +0 -1
  131. package/node_modules/@sema/gerador-lua/src/index.ts +0 -359
  132. package/node_modules/@sema/gerador-lua/tsconfig.json +0 -13
  133. package/node_modules/@sema/gerador-lua/tsconfig.tsbuildinfo +0 -1
  134. package/node_modules/@sema/gerador-python/src/index.ts +0 -850
  135. package/node_modules/@sema/gerador-python/tsconfig.json +0 -13
  136. package/node_modules/@sema/gerador-python/tsconfig.tsbuildinfo +0 -1
  137. package/node_modules/@sema/gerador-typescript/src/index.ts +0 -876
  138. package/node_modules/@sema/gerador-typescript/tsconfig.json +0 -13
  139. package/node_modules/@sema/gerador-typescript/tsconfig.tsbuildinfo +0 -1
  140. package/node_modules/@sema/nucleo/src/ast/tipos.ts +0 -207
  141. package/node_modules/@sema/nucleo/src/diagnosticos/index.ts +0 -43
  142. package/node_modules/@sema/nucleo/src/diagnosticos/melhorador.ts +0 -130
  143. package/node_modules/@sema/nucleo/src/formatador/index.ts +0 -530
  144. package/node_modules/@sema/nucleo/src/index.ts +0 -184
  145. package/node_modules/@sema/nucleo/src/ir/conversor.ts +0 -1037
  146. package/node_modules/@sema/nucleo/src/ir/modelos.ts +0 -403
  147. package/node_modules/@sema/nucleo/src/lexer/lexer.ts +0 -166
  148. package/node_modules/@sema/nucleo/src/lexer/tokens.ts +0 -79
  149. package/node_modules/@sema/nucleo/src/parser/gramatica.ebnf +0 -41
  150. package/node_modules/@sema/nucleo/src/parser/parser.ts +0 -936
  151. package/node_modules/@sema/nucleo/src/persistencia/contratos.ts +0 -379
  152. package/node_modules/@sema/nucleo/src/semantico/analisador.ts +0 -3126
  153. package/node_modules/@sema/nucleo/src/semantico/estruturas.ts +0 -665
  154. package/node_modules/@sema/nucleo/src/semantico/seguranca.ts +0 -362
  155. package/node_modules/@sema/nucleo/src/util/arquivos.ts +0 -28
  156. package/node_modules/@sema/nucleo/tsconfig.json +0 -9
  157. package/node_modules/@sema/nucleo/tsconfig.tsbuildinfo +0 -1
  158. package/node_modules/@sema/padroes/src/index.ts +0 -382
  159. package/node_modules/@sema/padroes/tsconfig.json +0 -9
  160. package/node_modules/@sema/padroes/tsconfig.tsbuildinfo +0 -1
package/AGENTS.md ADDED
@@ -0,0 +1,308 @@
1
+ # Sema — Regras obrigatorias para IA
2
+
3
+ O Sema e o contrato semantico IA-first deste projeto.
4
+ Toda IA deve consultar o Sema antes de qualquer acao sobre codigo ou contratos. Humanos escrevem e aprovam; agentes consomem o contrato para operar software vivo.
5
+
6
+ ## Boot obrigatório para qualquer IA
7
+
8
+ Antes de abrir código cru, leia `SEMA_BOOT.md`. Se a IA tiver pouco contexto, pouca disciplina de tool use ou for um agente secundário, leia também `SEMA_SMALL_MODEL.md`.
9
+
10
+ Capacidade operacional:
11
+
12
+ - IA fraca: use `SEMA_BOOT.md`, `SEMA_SMALL_MODEL.md`, `SEMA_BRIEF.micro.txt` e falhe fechado se Sema não responder.
13
+ - IA média: use `SEMA_BOOT.md`, `AGENT_CONTEXT_PACK.json`, `SEMA_BRIEF.curto.txt` e `SEMA_INDEX.json`.
14
+ - IA forte: pode subir para `SEMA_BRIEF.md`, AST, IR e drift completo, mas continua obrigada a passar pelos gates Sema.
15
+
16
+ Idioma humano: responda no idioma falado pelo usuário. Em PT-BR, use acentos, cedilha, pontuação e símbolos normais. A DSL `.sema` pode usar palavras-chave ASCII; isso não autoriza texto humano sem acentos.
17
+
18
+ ## Regras
19
+
20
+ 1. Ao abrir o projeto, chame sema_resumo para entender o estado atual.
21
+ 2. Antes de criar qualquer modulo, rota, task ou contrato, chame sema_inspecionar no arquivo .sema mais proximo.
22
+ 3. Antes de editar codigo existente, chame sema_drift para verificar divergencias entre contrato e implementacao.
23
+ 4. Ao criar ou editar um arquivo .sema, chame sema_validar ao final.
24
+ 5. Nunca invente contratos — use o Sema para descobrir o que ja existe.
25
+ 6. Se qualquer ferramenta Sema retornar erro, corrija o problema antes de prosseguir — nao avance com codigo enquanto houver erros Sema pendentes.
26
+ 7. Contrato vem antes de qualquer acao: crie, edite ou remova o `.sema` aplicavel antes de codigo, deploy, docs operacionais, workflow, texto Author, game, legal, research ou ops.
27
+
28
+ ## MCP
29
+
30
+ O servidor MCP do Sema e uma superficie privada/comercial acessada por endpoint remoto autorizado; ele nao e instalado por pacote npm publico neste repositorio.
31
+ Use as ferramentas quando o endpoint privado estiver configurado: sema_resumo, sema_validar, sema_drift, sema_impacto, sema_renomear_semantico, sema_inspecionar, sema_ir, sema_verificar, sema_contexto_ia, sema_prompt_ia, sema_author_iniciar, sema_author_validar, sema_author_briefing, sema_author_revisar_cliches, sema_sync_ai_entrypoints, sema_exemplos, sema_instalar_exemplos, sema_docs_impacto, sema_finalizar_mudanca.
32
+
33
+ O MCP deve deixar claro em toda orientacao: se nao existe contrato, crie; se a intencao mudou, edite; se a capacidade saiu, remova ou aposente. Isso vale para todo tipo de Sema: Software, Author, Workflow, Ops, Game, Legal, Research e profiles futuros.
34
+
35
+ ## Plataformas e Interfaces
36
+
37
+ ### IDEs com MCP (Roo Code, VS Code, Cursor, Windsurf, etc.)
38
+ Quando usar MCP Sema configurado:
39
+ 1. Ao abrir o projeto, chame `sema_resumo` para entender o estado atual
40
+ 2. **ANTES DE QUALQUER AÇÃO**: chame `sema_docs_impacto` com sua intenção declarada
41
+ 3. Aguarde a resposta com as docs obrigatórias e leia-as antes de agir
42
+ 4. Use `sema_finalizar_mudanca` para comprovar que leu as docs
43
+
44
+ ### Web / Chat (ChatGPT, Lovable, etc.)
45
+ Quando usar Sema via web sem MCP:
46
+ 1. Ao abrir o projeto, chame `sema_resumo` (se disponivel via web hook)
47
+ 2. **ANTES DE QUALQUER AÇÃO**: Declare sua intenção ao usuário
48
+ 3. Use `sema_docs_impacto` para descobrir docs obrigatórias (se via API)
49
+ 4. Leia as docs antes de agir e finalize com `sema_finalizar_mudanca`
50
+
51
+ ### CLI / Terminal
52
+ Quando usar Sema via CLI:
53
+ 1. Execute `sema resumo` para entender o estado atual
54
+ 2. Execute `sema docs-impacto` antes de qualquer ação
55
+ 3. Leia as docs recomendadas antes de editar/criar/deletar
56
+ 4. Execute `sema finalizar-mudanca` ao concluir
57
+
58
+ ## Contratos e exemplos
59
+
60
+ - Sempre salve arquivos .sema na pasta `contratos/` do projeto.
61
+ - Crie um arquivo .sema por modulo ou contexto de negocio. Exemplo: `contratos/pedido.sema`, `contratos/pagamento.sema`, `contratos/usuario.sema`. Nunca coloque modulos de contextos diferentes no mesmo arquivo.
62
+ - Antes de criar qualquer arquivo .sema, leia os exemplos oficiais para entender o formato correto da linguagem.
63
+ - Em MCP remoto/cliente web, use `sema_exemplos` para listar ou ler exemplos oficiais. Nao peca para o MCP ler `C:\GitHub\Sema\exemplos` nem qualquer pasta local do usuario.
64
+ - Em CLI/local repo, a pasta `exemplos/` pode ser lida ou materializada localmente quando necessario.
65
+ - Nunca edite os arquivos da pasta `exemplos/`.
66
+
67
+ ## Quando o projeto nao tem .sema
68
+
69
+ Pergunte ao usuario se deseja semantizar o projeto e sugira: sema iniciar
70
+
71
+ ## Exemplos de arquivos .sema (referencia de formato)
72
+
73
+ ### 1. Task simples com testes
74
+ ```
75
+ module exemplos.calculadora {
76
+ task somar {
77
+ input {
78
+ a: Numero required
79
+ b: Numero required
80
+ }
81
+ output {
82
+ resultado: Numero
83
+ }
84
+ rules {
85
+ a deve_ser numero_valido
86
+ b deve_ser numero_valido
87
+ }
88
+ effects {
89
+ auditoria operacao soma
90
+ }
91
+ guarantees {
92
+ resultado existe
93
+ }
94
+ error {
95
+ entrada_invalida: "Os valores precisam ser numericos."
96
+ }
97
+ tests {
98
+ caso "soma basica" {
99
+ given { a: 2 b: 3 }
100
+ expect { sucesso: verdadeiro }
101
+ }
102
+ }
103
+ }
104
+ }
105
+ ```
106
+
107
+ ### 2. Entity + CRUD com route
108
+ ```
109
+ module exemplos.crud.simples {
110
+ entity Produto {
111
+ fields {
112
+ id: Id
113
+ nome: Texto
114
+ preco: Decimal
115
+ ativo: Booleano
116
+ }
117
+ }
118
+
119
+ task criar_produto {
120
+ input {
121
+ nome: Texto required
122
+ preco: Decimal required
123
+ }
124
+ output {
125
+ produto: Produto
126
+ }
127
+ rules {
128
+ nome deve_ser preenchido
129
+ preco deve_ser positivo
130
+ }
131
+ effects {
132
+ persistencia Produto
133
+ auditoria produto_criado
134
+ }
135
+ guarantees {
136
+ produto existe
137
+ }
138
+ tests {
139
+ caso "cria produto" {
140
+ given { nome: "Caneca" preco: 39.9 }
141
+ expect { sucesso: verdadeiro }
142
+ }
143
+ }
144
+ }
145
+
146
+ route produtos {
147
+ metodo: POST
148
+ caminho: /produtos
149
+ task: criar_produto
150
+ finalidade: cadastro_produto
151
+ input { nome: Texto preco: Decimal }
152
+ output { produto: Produto }
153
+ }
154
+ }
155
+ ```
156
+
157
+ ### 3. Cadastro com validacoes e unicidade
158
+ ```
159
+ module exemplos.cadastro.usuario {
160
+ entity Usuario {
161
+ fields {
162
+ id: Id
163
+ nome: Texto
164
+ email: Email
165
+ ativo: Booleano
166
+ }
167
+ }
168
+
169
+ task criar_usuario {
170
+ input {
171
+ nome: Texto required
172
+ email: Email required
173
+ }
174
+ output {
175
+ usuario: Usuario
176
+ }
177
+ rules {
178
+ nome deve_ser preenchido
179
+ email deve_ser email_valido
180
+ email deve_ser unico em Usuario.email
181
+ }
182
+ effects {
183
+ persistencia Usuario
184
+ evento usuario_criado
185
+ auditoria cadastro_usuario
186
+ }
187
+ guarantees {
188
+ usuario existe
189
+ persistencia concluida
190
+ }
191
+ error {
192
+ email_duplicado: "Ja existe usuario com este email."
193
+ entrada_invalida: "Os dados informados nao atendem as regras."
194
+ }
195
+ tests {
196
+ caso "cria usuario valido" {
197
+ given { nome: "Ana" email: "ana@empresa.com" }
198
+ expect { sucesso: verdadeiro }
199
+ }
200
+ }
201
+ }
202
+ }
203
+ ```
204
+
205
+ ### 4. Pagamento com state e flow
206
+ ```
207
+ module exemplos.pagamento {
208
+ task processar_pagamento {
209
+ input {
210
+ pagamento_id: Id required
211
+ valor: Decimal required
212
+ token: Texto required
213
+ }
214
+ output {
215
+ pagamento: Pagamento
216
+ status: StatusPagamento
217
+ }
218
+ rules {
219
+ valor > 0
220
+ token deve_ser valido
221
+ }
222
+ effects {
223
+ consulta gateway_pagamento criticidade = alta
224
+ persistencia Pagamento criticidade = alta
225
+ evento pagamento_autorizado criticidade = media
226
+ auditoria pagamento criticidade = alta
227
+ }
228
+ state ciclo_pagamento {
229
+ transitions {
230
+ PENDENTE -> AUTORIZADO
231
+ AUTORIZADO -> PROCESSADO
232
+ }
233
+ }
234
+ guarantees {
235
+ pagamento existe
236
+ status em [AUTORIZADO, PROCESSADO]
237
+ }
238
+ error {
239
+ autorizacao_negada: "Recusado pelo gateway."
240
+ timeout_gateway: "Gateway nao respondeu."
241
+ }
242
+ tests {
243
+ caso "pagamento autorizado" {
244
+ given { pagamento_id: "pag_1" valor: 199.9 token: "tok_ok" }
245
+ expect { sucesso: verdadeiro }
246
+ }
247
+ caso "pagamento recusado" {
248
+ given { pagamento_id: "pag_err" valor: 10 token: "tok_recusado" }
249
+ expect { sucesso: falso }
250
+ error { tipo: "autorizacao_negada" }
251
+ }
252
+ }
253
+ }
254
+
255
+ flow orquestracao_pagamento {
256
+ pagamento_id: Id
257
+ valor: Decimal
258
+ token: Texto
259
+ etapa autorizar usa processar_pagamento com pagamento_id = pagamento_id, valor = valor, token = token em_sucesso confirmar em_erro registrar_falha
260
+ etapa confirmar usa confirmar_pagamento com pagamento_id = pagamento_id depende_de autorizar
261
+ etapa registrar_falha usa registrar_timeout_pagamento com pagamento_id = pagamento_id depende_de autorizar
262
+ }
263
+ }
264
+ ```
265
+
266
+ ### 5. Tratamento de erro com flow ramificado
267
+ ```
268
+ module exemplos.tratamento.erro {
269
+ task executar_operacao_sensivel {
270
+ input {
271
+ chave: Texto required
272
+ }
273
+ output {
274
+ protocolo: Id
275
+ }
276
+ rules {
277
+ chave deve_ser preenchida
278
+ }
279
+ effects {
280
+ consulta cofre
281
+ auditoria falha_operacao_sensivel
282
+ }
283
+ guarantees {
284
+ protocolo existe
285
+ }
286
+ error {
287
+ acesso_negado: "A chave nao tem permissao."
288
+ recurso_indisponivel: "Servico temporariamente indisponivel."
289
+ }
290
+ tests {
291
+ caso "falha por acesso negado" {
292
+ given { chave: "sem_permissao" }
293
+ expect { sucesso: falso }
294
+ error { tipo: "acesso_negado" }
295
+ }
296
+ }
297
+ }
298
+
299
+ flow resposta_segura {
300
+ chave: Texto
301
+ etapa tentar usa executar_operacao_sensivel com chave = chave em_sucesso concluir em_erro registrar_falha por_erro acesso_negado = tratar_acesso_negado, recurso_indisponivel = agendar_retentativa
302
+ etapa tratar_acesso_negado usa responder_acesso_negado com chave = chave depende_de tentar
303
+ etapa agendar_retentativa usa responder_retentativa com chave = chave depende_de tentar
304
+ etapa registrar_falha usa registrar_auditoria_falha com chave = chave depende_de tentar
305
+ etapa concluir usa registrar_sucesso com protocolo = tentar.protocolo depende_de tentar
306
+ }
307
+ }
308
+ ```
@@ -0,0 +1,288 @@
1
+ {
2
+ "nome": "Agent Context Pack",
3
+ "versao": 2,
4
+ "objetivo": "Dar a agentes IA uma entrada curta, estruturada e auditável antes de abrir código cru ou inventar contexto.",
5
+ "ordemLeitura": [
6
+ "SEMA_BOOT.md",
7
+ "llms.txt",
8
+ "AGENT_CONTEXT_PACK.json",
9
+ "SEMA_SMALL_MODEL.md",
10
+ "SEMA_BRIEF.micro.txt",
11
+ "SEMA_INDEX.json",
12
+ "AGENTS.md",
13
+ "exemplos/"
14
+ ],
15
+ "regrasObrigatorias": [
16
+ "Contrato vem antes da ação.",
17
+ "Leia SEMA_BOOT.md antes de qualquer outro artefato de IA.",
18
+ "Leia AGENTS.md antes de editar código, contrato, docs operacionais, release ou deploy.",
19
+ "Use exemplos oficiais antes de criar ou corrigir sintaxe .sema.",
20
+ "Use SEMA_INDEX.json para escolher contrato, módulo e arquivos prováveis antes de abrir código cru.",
21
+ "Valide .sema alterado e rode drift antes de concluir.",
22
+ "Quando faltar contrato aplicável, crie ou edite o contrato antes do código.",
23
+ "Responda no idioma do usuário e preserve acentos, cedilha, pontuação e símbolos humanos."
24
+ ],
25
+ "proibicoes": [
26
+ "Não inventar sintaxe Sema fora da gramática e dos exemplos oficiais.",
27
+ "Não tratar README, texto livre ou código como fonte superior ao contrato.",
28
+ "Não sincronizar segredos, .env, node_modules, builds, caches, uploads ou artefatos privados fora do escopo.",
29
+ "Não publicar, deployar ou remover capacidade sem contrato, drift e verificação.",
30
+ "Não misturar repositório público e privado sem conferir docs de repositórios e AGENTS.md.",
31
+ "Não usar a estética ASCII da DSL como desculpa para escrever PT-BR sem acentos."
32
+ ],
33
+ "prioridades": [
34
+ "Menor artefato suficiente primeiro.",
35
+ "Contrato, índice e AGENTS antes de código cru.",
36
+ "Exemplos oficiais antes de nova sintaxe.",
37
+ "Diagnóstico estruturado antes de opinião livre.",
38
+ "Se risco ou escopo estiver ambíguo, parar e pedir contrato/contexto."
39
+ ],
40
+ "fontes": [
41
+ {
42
+ "caminho": "SEMA_BOOT.md",
43
+ "tipo": "entrypoint",
44
+ "prioridade": 1,
45
+ "obrigatorio": true,
46
+ "quandoUsar": "sempre no primeiro contato de qualquer agente com o projeto",
47
+ "incluirTextoBrutoQuando": "a IA precisa de um boot curto, fail-closed e independente do tamanho de contexto"
48
+ },
49
+ {
50
+ "caminho": "SEMA_SMALL_MODEL.md",
51
+ "tipo": "entrypoint",
52
+ "prioridade": 2,
53
+ "obrigatorio": true,
54
+ "quandoUsar": "IA fraca, Copilot, modelo local pequeno, Cline/Roo com pouco contexto ou tarefa curta",
55
+ "incluirTextoBrutoQuando": "a IA tende a ignorar instruções longas ou copiar a estética ASCII da DSL"
56
+ },
57
+ {
58
+ "caminho": "llms.txt",
59
+ "tipo": "entrypoint",
60
+ "prioridade": 3,
61
+ "obrigatorio": true,
62
+ "quandoUsar": "sempre no primeiro contato com o projeto",
63
+ "incluirTextoBrutoQuando": "a IA precisa de orientação compacta para operar o repositório"
64
+ },
65
+ {
66
+ "caminho": "AGENT_CONTEXT_PACK.json",
67
+ "tipo": "entrypoint",
68
+ "prioridade": 4,
69
+ "obrigatorio": true,
70
+ "quandoUsar": "sempre antes de decidir quais documentos ou exemplos abrir",
71
+ "incluirTextoBrutoQuando": "a IA precisa auditar regras, proibições, prioridades e fontes de verdade"
72
+ },
73
+ {
74
+ "caminho": "SEMA_BRIEF.micro.txt",
75
+ "tipo": "resumo",
76
+ "prioridade": 5,
77
+ "obrigatorio": true,
78
+ "quandoUsar": "IA fraca, onboarding, chat remoto ou primeiro triage",
79
+ "incluirTextoBrutoQuando": "a tarefa cabe em contexto curto"
80
+ },
81
+ {
82
+ "caminho": "SEMA_BRIEF.curto.txt",
83
+ "tipo": "resumo",
84
+ "prioridade": 6,
85
+ "obrigatorio": true,
86
+ "quandoUsar": "IA média, mudança pequena ou review rápido",
87
+ "incluirTextoBrutoQuando": "o módulo alvo ainda não está claro pelo micro"
88
+ },
89
+ {
90
+ "caminho": "SEMA_INDEX.json",
91
+ "tipo": "indice",
92
+ "prioridade": 7,
93
+ "obrigatorio": true,
94
+ "quandoUsar": "antes de abrir código cru ou escolher contrato alvo",
95
+ "incluirTextoBrutoQuando": "a IA precisa mapear módulos, lacunas, riscos ou arquivos prováveis"
96
+ },
97
+ {
98
+ "caminho": "AGENTS.md",
99
+ "tipo": "operacional",
100
+ "prioridade": 8,
101
+ "obrigatorio": true,
102
+ "quandoUsar": "antes de editar código, contrato, docs operacionais, release ou deploy",
103
+ "incluirTextoBrutoQuando": "a IA precisa confirmar regras locais obrigatórias e prioridades do projeto"
104
+ },
105
+ {
106
+ "caminho": "exemplos/",
107
+ "tipo": "exemplos",
108
+ "prioridade": 9,
109
+ "obrigatorio": true,
110
+ "quandoUsar": "antes de criar ou corrigir arquivo .sema, profile, Author, workflow, ops, game, legal ou research",
111
+ "incluirTextoBrutoQuando": "a IA vai escrever sintaxe Sema ou comparar um contrato com formato oficial"
112
+ },
113
+ {
114
+ "caminho": "docs/AGENT_STARTER.md",
115
+ "tipo": "docs",
116
+ "prioridade": 10,
117
+ "obrigatorio": false,
118
+ "quandoUsar": "onboarding de agente novo ou explicação curta do fluxo",
119
+ "incluirTextoBrutoQuando": "o agente remoto não conhece Sema ainda"
120
+ },
121
+ {
122
+ "caminho": "docs/agentes-por-capacidade.md",
123
+ "tipo": "docs",
124
+ "prioridade": 11,
125
+ "obrigatorio": false,
126
+ "quandoUsar": "configurar Copilot, Cline, Roo Code, OpenCode ou outro agente com disciplina variável",
127
+ "incluirTextoBrutoQuando": "a IA precisa entender tiers fraca/média/forte e política de idioma"
128
+ },
129
+ {
130
+ "caminho": "docs/sintaxe.md",
131
+ "tipo": "docs",
132
+ "prioridade": 12,
133
+ "obrigatorio": false,
134
+ "quandoUsar": "dúvida de gramática, blocos ou formato do DSL",
135
+ "incluirTextoBrutoQuando": "a IA vai editar contrato e os exemplos não bastam"
136
+ },
137
+ {
138
+ "caminho": "contratos/",
139
+ "tipo": "contrato",
140
+ "prioridade": 13,
141
+ "obrigatorio": true,
142
+ "quandoUsar": "antes de qualquer implementação ou alteração de comportamento",
143
+ "incluirTextoBrutoQuando": "a tarefa toca uma capacidade governada por contrato"
144
+ }
145
+ ],
146
+ "exemplosOficiais": [
147
+ "exemplos/calculadora.sema",
148
+ "exemplos/pagamento.sema",
149
+ "exemplos/profile_software.sema",
150
+ "exemplos/profile_workflow_n8n.sema",
151
+ "exemplos/profile_ops.sema",
152
+ "exemplos/profile_game.sema",
153
+ "exemplos/profile_legal.sema",
154
+ "exemplos/profile_research.sema",
155
+ "exemplos/author_obra_comum.sema"
156
+ ],
157
+ "textoBrutoSobDemanda": {
158
+ "SEMA_BOOT.md": "a IA precisa de um boot curto, fail-closed e independente do tamanho de contexto",
159
+ "SEMA_SMALL_MODEL.md": "a IA tende a ignorar instruções longas ou copiar a estética ASCII da DSL",
160
+ "llms.txt": "a IA precisa de orientação compacta para operar o repositório",
161
+ "AGENT_CONTEXT_PACK.json": "a IA precisa auditar regras, proibições, prioridades e fontes de verdade",
162
+ "SEMA_BRIEF.micro.txt": "a tarefa cabe em contexto curto",
163
+ "SEMA_BRIEF.curto.txt": "o módulo alvo ainda não está claro pelo micro",
164
+ "SEMA_INDEX.json": "a IA precisa mapear módulos, lacunas, riscos ou arquivos prováveis",
165
+ "AGENTS.md": "a IA precisa confirmar regras locais obrigatórias e prioridades do projeto",
166
+ "exemplos/": "a IA vai escrever sintaxe Sema ou comparar um contrato com formato oficial",
167
+ "docs/AGENT_STARTER.md": "o agente remoto não conhece Sema ainda",
168
+ "docs/agentes-por-capacidade.md": "a IA precisa entender tiers fraca/média/forte e política de idioma",
169
+ "docs/sintaxe.md": "a IA vai editar contrato e os exemplos não bastam",
170
+ "contratos/": "a tarefa toca uma capacidade governada por contrato"
171
+ },
172
+ "guiaPorCapacidade": {
173
+ "fraca": [
174
+ "SEMA_BOOT.md",
175
+ "SEMA_SMALL_MODEL.md",
176
+ "agent-context-pack.json",
177
+ "resumo.micro.txt",
178
+ "briefing.min.json",
179
+ "resumo.curto.txt"
180
+ ],
181
+ "pequena": [
182
+ "SEMA_BOOT.md",
183
+ "SEMA_SMALL_MODEL.md",
184
+ "agent-context-pack.json",
185
+ "resumo.micro.txt",
186
+ "briefing.min.json",
187
+ "resumo.curto.txt"
188
+ ],
189
+ "media": [
190
+ "SEMA_BOOT.md",
191
+ "agent-context-pack.json",
192
+ "resumo.curto.txt",
193
+ "briefing.min.json",
194
+ "drift.json",
195
+ "resumo.md"
196
+ ],
197
+ "forte": [
198
+ "SEMA_BOOT.md",
199
+ "agent-context-pack.json",
200
+ "README.md",
201
+ "resumo.md",
202
+ "briefing.json",
203
+ "drift.json",
204
+ "ir.json",
205
+ "ast.json"
206
+ ],
207
+ "grande": [
208
+ "SEMA_BOOT.md",
209
+ "agent-context-pack.json",
210
+ "README.md",
211
+ "resumo.md",
212
+ "briefing.json",
213
+ "drift.json",
214
+ "ir.json",
215
+ "ast.json"
216
+ ]
217
+ },
218
+ "aliasesCapacidade": {
219
+ "pequena": "fraca",
220
+ "grande": "forte"
221
+ },
222
+ "entrypointsClientes": [
223
+ {
224
+ "cliente": "copilot",
225
+ "arquivos": [
226
+ ".github/copilot-instructions.md",
227
+ "AGENTS.md",
228
+ "SEMA_BOOT.md"
229
+ ],
230
+ "capacidadePadrao": "media",
231
+ "observacao": "VS Code/Copilot deve receber uma instrução curta e repetida no arquivo próprio, sem depender só do AGENTS.md."
232
+ },
233
+ {
234
+ "cliente": "cline",
235
+ "arquivos": [
236
+ ".clinerules/00-sema.md",
237
+ ".clinerules",
238
+ "SEMA_BOOT.md"
239
+ ],
240
+ "capacidadePadrao": "fraca",
241
+ "observacao": "Cline costuma obedecer melhor quando o gate Sema vem em arquivo curto; se .clinerules for arquivo legado, o Sema atualiza esse fallback."
242
+ },
243
+ {
244
+ "cliente": "roo",
245
+ "arquivos": [
246
+ ".roo/rules/00-sema.md",
247
+ "AGENTS.md",
248
+ "SEMA_BOOT.md"
249
+ ],
250
+ "capacidadePadrao": "fraca",
251
+ "observacao": "Roo Code deve começar por uma regra dedicada em .roo/rules antes de abrir arquivos longos."
252
+ },
253
+ {
254
+ "cliente": "opencode",
255
+ "arquivos": [
256
+ ".opencode/instructions.md",
257
+ "AGENTS.md",
258
+ "SEMA_BOOT.md"
259
+ ],
260
+ "capacidadePadrao": "media",
261
+ "observacao": "OpenCode deve receber a mesma regra curta em instructions.md quando a pasta .opencode já existir."
262
+ },
263
+ {
264
+ "cliente": "generico",
265
+ "arquivos": [
266
+ "SEMA_BOOT.md",
267
+ "SEMA_SMALL_MODEL.md",
268
+ "AGENT_CONTEXT_PACK.json"
269
+ ],
270
+ "capacidadePadrao": "fraca",
271
+ "observacao": "Qualquer agente sem integração específica começa pelo boot card e só sobe contexto se passar pelos gates."
272
+ }
273
+ ],
274
+ "politicaIdioma": {
275
+ "regra": "A linguagem humana da resposta deve seguir o idioma do usuário e preservar acentos, cedilha, pontuação e símbolos esperados. A DSL .sema pode ter palavras-chave ASCII; isso não autoriza PT-BR sem acentos.",
276
+ "idiomaHumanoPadrao": "pt-BR quando a conversa ou o projeto estiverem em português; caso contrário, use o idioma falado pelo usuário.",
277
+ "preservarAcentos": true,
278
+ "separarDslDeTextoHumano": true,
279
+ "comandosESimbolos": "Não traduza comandos, nomes de arquivos, rotas, símbolos de código ou palavras-chave da DSL."
280
+ },
281
+ "failClosed": [
282
+ "Se não conseguir chamar Sema, pare e declare bloqueio em vez de editar código ou contrato.",
283
+ "Se não houver contrato aplicável, crie ou edite o .sema antes do código.",
284
+ "Se o MCP remoto não tiver projeto sincronizado, use sema_chat_contexto e sema_sync/conteúdo inline; não peça para ler C:\\GitHub\\Sema.",
285
+ "Se for criar ou corrigir .sema, use sema_exemplos antes de escrever sintaxe.",
286
+ "Se a resposta humana estiver em PT-BR, preserve acentos e símbolos mesmo que a DSL use ASCII."
287
+ ]
288
+ }
package/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Sema
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+