@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
@@ -0,0 +1,126 @@
1
+ # Security
2
+
3
+ <!-- sema:i18n -->
4
+ > EN: English first.
5
+ > PT: Português depois, com acentos preservados.
6
+ > ES: Español al final.
7
+
8
+ ## EN
9
+
10
+ The remote Sema MCP is a sensitive surface. It lets authorized agents read contracts, check drift, generate IA-first context, and operate inside allowed roots. Security depends on these controls working together:
11
+
12
+ 1. HTTPS on the public proxy.
13
+ 2. Commercial `sema_mcp_*` bearer key per request or OAuth authentication.
14
+ 3. `SEMA_MCP_PROJECT_ROOTS` pointing to a dedicated server root, for example `/srv/sema/projetos`.
15
+ 4. Contract-first operation before code, deploy, docs, workflow, Author text, game, legal, research, or ops actions.
16
+
17
+ Do not publish the server without those controls.
18
+
19
+ ### Data That Must Not Leak
20
+
21
+ - GitHub, npm, Supabase, SSH, or Git Credential Manager tokens.
22
+ - Client-side `SEMA_MCP_AUTH_TOKEN` values containing `sema_mcp_*` keys.
23
+ - `SEMA_MCP_OAUTH_SECRET`.
24
+ - `SEMA_MCP_OAUTH_PASSCODE`.
25
+ - Private key content.
26
+ - `.env`, build caches, uploads, installed dependencies, or temporary snapshots with secrets.
27
+
28
+ Operational runbooks may document non-secret references, such as the public domain, service name, and generic deployment role. They must never include private key bodies, private-key filenames, local key paths, non-public IPs, real server paths, or secret inventory details.
29
+
30
+ ### Remote Operation
31
+
32
+ - Use the smallest privilege that still performs the job.
33
+ - Do not log `Authorization` headers.
34
+ - Do not publish `/mcp` with empty `SEMA_MCP_PROJECT_ROOTS`.
35
+ - Keep Caddy or the reverse proxy with valid TLS.
36
+ - Test `/mcp` without token and expect an authorization challenge.
37
+ - Test account-scoped MCP tokens before declaring the product flow ready.
38
+
39
+ ### Incident
40
+
41
+ If a secret appears in chat, screenshot, log, release, or Git history:
42
+
43
+ 1. Treat it as compromised.
44
+ 2. Rotate it at the provider.
45
+ 3. Remove it from the current file.
46
+ 4. If it reached Git, rewrite history or revoke it permanently.
47
+
48
+ ## PT
49
+
50
+ O Sema MCP remoto é uma superfície sensível. Ele permite que agentes autorizados leiam contratos, verifiquem drift, gerem contexto IA-first e operem dentro das raízes permitidas. A segurança depende destas travas trabalhando juntas:
51
+
52
+ 1. HTTPS no proxy público.
53
+ 2. Autenticacao por chave comercial `sema_mcp_*` por request ou OAuth.
54
+ 3. `SEMA_MCP_PROJECT_ROOTS` apontando para uma raiz dedicada no servidor, por exemplo `/srv/sema/projetos`.
55
+ 4. Operação contract-first antes de código, deploy, docs, workflow, texto Author, jogo, jurídico, pesquisa ou ops.
56
+
57
+ Não publique o servidor sem essas travas.
58
+
59
+ ### Dados Que Não Podem Vazar
60
+
61
+ - Tokens de GitHub, npm, Supabase, SSH ou Git Credential Manager.
62
+ - Valores locais de `SEMA_MCP_AUTH_TOKEN` contendo chaves `sema_mcp_*`.
63
+ - `SEMA_MCP_OAUTH_SECRET`.
64
+ - `SEMA_MCP_OAUTH_PASSCODE`.
65
+ - Conteúdo de chave privada.
66
+ - `.env`, caches de build, uploads, dependências instaladas ou snapshots temporários com segredo.
67
+
68
+ Runbooks operacionais podem documentar referências não secretas, como domínio público, nome do serviço e papel genérico de deploy. Eles nunca devem incluir corpo de chave privada, nomes de arquivos de chave privada, caminhos locais de chave, IPs não públicos, caminhos reais de servidor ou detalhes do inventário de segredos.
69
+
70
+ ### Operação Remota
71
+
72
+ - Use o menor privilégio que ainda executa o trabalho.
73
+ - Não registre headers `Authorization` em logs.
74
+ - Não publique `/mcp` com `SEMA_MCP_PROJECT_ROOTS` vazio.
75
+ - Mantenha Caddy ou reverse proxy com TLS válido.
76
+ - Teste `/mcp` sem token esperando desafio de autorização.
77
+ - Teste tokens MCP por conta antes de declarar o fluxo de produto pronto.
78
+
79
+ ### Incidente
80
+
81
+ Se um segredo aparecer em chat, print, log, release ou histórico Git:
82
+
83
+ 1. Considere comprometido.
84
+ 2. Rotacione no provedor de origem.
85
+ 3. Remova do arquivo atual.
86
+ 4. Se chegou ao Git, reescreva histórico ou revogue definitivamente o segredo.
87
+
88
+ ## ES
89
+
90
+ El Sema MCP remoto es una superficie sensible. Permite que agentes autorizados lean contratos, verifiquen drift, generen contexto IA-first y operen dentro de las raíces permitidas. La seguridad depende de estos controles trabajando juntos:
91
+
92
+ 1. HTTPS en el proxy público.
93
+ 2. Autenticacion por clave comercial `sema_mcp_*` por request u OAuth.
94
+ 3. `SEMA_MCP_PROJECT_ROOTS` apuntando a una raíz dedicada en el servidor, por ejemplo `/srv/sema/projetos`.
95
+ 4. Operación contract-first antes de código, despliegue, docs, workflow, texto Author, juego, legal, investigación u ops.
96
+
97
+ No publiques el servidor sin esos controles.
98
+
99
+ ### Datos Que No Deben Filtrarse
100
+
101
+ - Tokens de GitHub, npm, Supabase, SSH o Git Credential Manager.
102
+ - Valores locales de `SEMA_MCP_AUTH_TOKEN` con claves `sema_mcp_*`.
103
+ - `SEMA_MCP_OAUTH_SECRET`.
104
+ - `SEMA_MCP_OAUTH_PASSCODE`.
105
+ - Contenido de llave privada.
106
+ - `.env`, cachés de build, uploads, dependencias instaladas o snapshots temporales con secretos.
107
+
108
+ Los runbooks operativos pueden documentar referencias no secretas, como dominio público, nombre del servicio y rol genérico de despliegue. Nunca deben incluir el cuerpo de la llave privada, nombres de archivos de llave privada, rutas locales de llaves, IPs no públicas, rutas reales del servidor o detalles del inventario de secretos.
109
+
110
+ ### Operación Remota
111
+
112
+ - Usa el menor privilegio que todavía permita ejecutar el trabajo.
113
+ - No registres headers `Authorization` en logs.
114
+ - No publiques `/mcp` con `SEMA_MCP_PROJECT_ROOTS` vacío.
115
+ - Mantén Caddy o el reverse proxy con TLS válido.
116
+ - Prueba `/mcp` sin token y espera un desafío de autorización.
117
+ - Prueba tokens MCP por cuenta antes de declarar listo el flujo de producto.
118
+
119
+ ### Incidente
120
+
121
+ Si un secreto aparece en chat, captura, log, release o historial Git:
122
+
123
+ 1. Trátalo como comprometido.
124
+ 2. Rótalo en el proveedor de origen.
125
+ 3. Elimínalo del archivo actual.
126
+ 4. Si llegó a Git, reescribe el historial o revócalo definitivamente.
@@ -0,0 +1,218 @@
1
+ # Sintaxe Canonica
2
+
3
+ <!-- sema:i18n -->
4
+ > EN: English first. The canonical operational body below may still be in Portuguese until full translation lands.
5
+ > PT: Português depois, com acentos preservados.
6
+ > ES: Español al final; não traduza comandos, rotas nem sómbolos `.sema` sem contrato.
7
+
8
+
9
+ A Sema usa blocos declarativos previsiveis para reduzir ambiguidade no parser, na IR, no drift e no contexto de IA. A escrita humana pode ser legivel, mas o alvo principal da sintaxe e gerar contrato consumivel por agente.
10
+
11
+ ## Regras basicas
12
+
13
+ - um arquivo `.sema` contem um `module` principal
14
+ - cada bloco abre com palavra-chave e fecha com `}`
15
+ - campos usam `nome: valor`
16
+ - blocos declarativos podem aparecer aninhados quando o contrato exigir
17
+ - `tests` usa blocos `caso`
18
+
19
+ ## Blocos de primeira classe
20
+
21
+ - `module`
22
+ - `use`
23
+ - `database`
24
+ - `type`
25
+ - `entity`
26
+ - `enum`
27
+ - `state`
28
+ - `task`
29
+ - `flow`
30
+ - `route`
31
+ - `worker`
32
+ - `evento`
33
+ - `fila`
34
+ - `cron`
35
+ - `webhook`
36
+ - `cache`
37
+ - `storage`
38
+ - `policy`
39
+ - `tests`
40
+ - `docs`
41
+ - `comments`
42
+
43
+ ## Subblocos comuns
44
+
45
+ - `input`
46
+ - `output`
47
+ - `rules`
48
+ - `effects`
49
+ - `auth`
50
+ - `authz`
51
+ - `dados`
52
+ - `audit`
53
+ - `segredos`
54
+ - `forbidden`
55
+ - `impl`
56
+ - `vinculos`
57
+ - `execucao`
58
+ - `guarantees`
59
+ - `error`
60
+ - `fields`
61
+ - `invariants`
62
+ - `transitions`
63
+ - `given`
64
+ - `when`
65
+ - `expect`
66
+
67
+ ## Tipos primitivos
68
+
69
+ Tipos primitivos reconhecidos diretamente:
70
+
71
+ - `Texto`
72
+ - `Numero`
73
+ - `Inteiro`
74
+ - `Decimal`
75
+ - `Booleano`
76
+ - `Data`
77
+ - `Timestamp`
78
+ - `Objeto`
79
+ - `Id`
80
+ - `Email`
81
+ - `Json`
82
+
83
+ `Timestamp` e `Objeto` funcionam como aliases primitivos suportados e preservam o texto original na IR.
84
+
85
+ ## Tipos compostos
86
+
87
+ ```sema
88
+ input {
89
+ ids: Lista<Id> required
90
+ metadata: Mapa<Texto, Texto>
91
+ responsavel: Opcional<Usuario>
92
+ chave_publica: Texto|Id
93
+ }
94
+ ```
95
+
96
+ Formas suportadas:
97
+
98
+ - `Lista<T>`
99
+ - `Mapa<K, V>`
100
+ - `Opcional<T>`
101
+ - `T1|T2`
102
+ - `T?`
103
+
104
+ ## Predicados normalizados
105
+
106
+ Predicados escritos em contrato preservam o texto original em `predicado`. Quando a CLI reconhece uma forma comum, a expressao estruturada pode expor também `predicadoCanonico`.
107
+
108
+ Exemplo:
109
+
110
+ ```sema
111
+ rules {
112
+ email deve_ser email_valido
113
+ nome deve_ser preenchido
114
+ }
115
+ ```
116
+
117
+ Na IR, `email_valido` continua existindo como escrito e pode receber uma normalizacao como `valid_email`; `preenchido` pode receber `filled`. Esse campo e opcional e serve a agente/automacao, não muda a sintaxe pública.
118
+
119
+ ## Persistência vendor-first
120
+
121
+ O bloco `database` modela banco e recursos persistidos sem apagar as diferenças entre engines.
122
+
123
+ Estrutura base:
124
+
125
+ ```sema
126
+ database principal_postgres {
127
+ engine: postgres
128
+ consistency: forte
129
+ durability: alta
130
+ transaction_model: mvcc
131
+ query_model: sql
132
+ }
133
+ ```
134
+
135
+ Recursos canonicamente suportados:
136
+
137
+ - `table`
138
+ - `index`
139
+ - `relationship`
140
+ - `query`
141
+ - `retention`
142
+ - `lock`
143
+ - `replication`
144
+ - `collection`
145
+ - `document`
146
+ - `keyspace`
147
+ - `stream`
148
+ - `capabilities`
149
+
150
+ Exemplo relacional:
151
+
152
+ ```sema
153
+ database principal_postgres {
154
+ engine: postgres
155
+ schema: public
156
+ capabilities {
157
+ joins
158
+ views
159
+ foreign_keys
160
+ }
161
+ table pedidos {
162
+ entity: Pedido
163
+ }
164
+ relationship pedido_cliente {
165
+ from: Pedido
166
+ to: Cliente
167
+ }
168
+ query buscar_pedidos {
169
+ mode: sql
170
+ }
171
+ }
172
+ ```
173
+
174
+ Exemplo documental:
175
+
176
+ ```sema
177
+ database principal_mongodb {
178
+ engine: mongodb
179
+ query_model: documento
180
+ collection pedidos {
181
+ collection: pedidos
182
+ }
183
+ document pedido_snapshot {
184
+ entity: PedidoSnapshot
185
+ }
186
+ query pipeline_pedido {
187
+ mode: pipeline
188
+ }
189
+ }
190
+ ```
191
+
192
+ Exemplo key-value:
193
+
194
+ ```sema
195
+ database principal_redis {
196
+ engine: redis
197
+ query_model: chave_valor
198
+ keyspace cache_pedidos {
199
+ ttl: "300s"
200
+ }
201
+ stream eventos_pedido {
202
+ surface: fila
203
+ }
204
+ }
205
+ ```
206
+
207
+ ## Compatibilidade declarada
208
+
209
+ O IR de persistência calcula compatibilidade por recurso com quatro estados:
210
+
211
+ - `nativo`
212
+ - `adaptado`
213
+ - `parcial`
214
+ - `invalido`
215
+
216
+ Isso existe para deixar explícito quando um contrato está pedindo de um banco algo que ele não entrega do mesmo jeito.
217
+
218
+ O mesmo principio vale para runtime de orquestração. Superfícies como `webhook`, `cron`, `worker`, `evento` e `fila` podem ser medidas contra famílias como `n8n`, mas o contrato continua canonicamente modelado em Sema, sem rebaixar a linguagem para a sintaxe do adapter alvo.
@@ -0,0 +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
+ }
package/llms-full.txt ADDED
@@ -0,0 +1,35 @@
1
+ Sema is an AI-first semantic language and tooling stack for explicit software intent, drift analysis, and safer intervention in live backend systems.
2
+
3
+ This repository is not optimized for human-first reading. It is optimized for AI agents that need compressed, canonical semantic context.
4
+
5
+ Canonical entrypoints in the repository root:
6
+ 1. `llms.txt`
7
+ 2. `AGENT_CONTEXT_PACK.json`
8
+ 3. `SEMA_BRIEF.md`
9
+ 4. `SEMA_INDEX.json`
10
+ 5. `AGENTS.md`
11
+ 6. `README.md`
12
+ 7. `docs/AGENT_STARTER.md`
13
+
14
+ Capacity routing:
15
+ - small/free AI: `llms.txt` -> `AGENT_CONTEXT_PACK.json` -> `SEMA_BRIEF.micro.txt` -> `SEMA_INDEX.json` -> `AGENTS.md`
16
+ - medium AI: `llms.txt` -> `AGENT_CONTEXT_PACK.json` -> `SEMA_BRIEF.curto.txt` -> `SEMA_INDEX.json` -> `AGENTS.md` -> `README.md`
17
+ - large/tool-using AI: `llms-full.txt` -> `AGENT_CONTEXT_PACK.json` -> `SEMA_BRIEF.md` -> `SEMA_INDEX.json` -> `AGENTS.md` -> `README.md`
18
+
19
+ Source-of-truth order:
20
+ 1. root Sema artifacts
21
+ 2. CLI JSON outputs
22
+ 3. official docs
23
+ 4. official examples
24
+ 5. raw implementation code
25
+
26
+ Useful commands:
27
+ - `sema resumo <arquivo-ou-pasta> --micro --para mudanca`
28
+ - `sema prompt-curto <arquivo-ou-pasta> --curto --para review`
29
+ - `sema drift <arquivo-ou-pasta> --json`
30
+ - `sema contexto-ia <arquivo.sema> --saida ./.tmp/contexto --json`
31
+ - `sema validar <arquivo-ou-pasta> --json`
32
+ - `sema verificar <arquivo-ou-pasta> --json`
33
+
34
+ Do not ask the model to infer semantics that are already available in Sema artifacts.
35
+ Do not start from raw source code if `AGENT_CONTEXT_PACK`, `SEMA_BRIEF`, `SEMA_INDEX`, `drift`, or `briefing` are available.
package/llms.txt ADDED
@@ -0,0 +1,18 @@
1
+ Sema is an AI-first semantic language and tooling stack for backend intent.
2
+
3
+ This repository is not human-first. Use the canonical AI entrypoints before raw code.
4
+
5
+ Read in this order:
6
+ 1. AGENT_CONTEXT_PACK.json
7
+ 2. SEMA_BRIEF.micro.txt or SEMA_BRIEF.md
8
+ 3. SEMA_INDEX.json
9
+ 4. AGENTS.md
10
+ 5. README.md
11
+
12
+ Capacity routing:
13
+ - small models: llms.txt -> AGENT_CONTEXT_PACK.json -> SEMA_BRIEF.micro.txt -> SEMA_INDEX.json -> AGENTS.md
14
+ - medium models: llms.txt -> AGENT_CONTEXT_PACK.json -> SEMA_BRIEF.curto.txt -> SEMA_INDEX.json -> AGENTS.md -> README.md
15
+ - large models: llms-full.txt -> AGENT_CONTEXT_PACK.json -> SEMA_BRIEF.md -> SEMA_INDEX.json -> AGENTS.md -> README.md
16
+
17
+ Prefer Sema artifacts over raw source code when both exist.
18
+ Prefer `drift`, `briefing`, `ir`, and `diagnosticos` over guesswork.
@@ -1,14 +1,7 @@
1
- {
2
- "name": "@sema/gerador-css",
3
- "version": "1.5.29",
4
- "type": "module",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "scripts": {
8
- "build": "tsc -p tsconfig.json"
9
- },
10
- "dependencies": {
11
- "@sema/nucleo": "file:../nucleo",
12
- "@sema/padroes": "file:../padroes"
13
- }
14
- }
1
+ {
2
+ "name": "@sema/gerador-css",
3
+ "version": "1.5.29",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts"
7
+ }
@@ -1,14 +1,7 @@
1
- {
2
- "name": "@sema/gerador-dart",
3
- "version": "1.5.29",
4
- "type": "module",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "scripts": {
8
- "build": "tsc -p tsconfig.json"
9
- },
10
- "dependencies": {
11
- "@sema/nucleo": "file:../nucleo",
12
- "@sema/padroes": "file:../padroes"
13
- }
14
- }
1
+ {
2
+ "name": "@sema/gerador-dart",
3
+ "version": "1.5.29",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts"
7
+ }
@@ -1,14 +1,7 @@
1
- {
2
- "name": "@sema/gerador-html",
3
- "version": "1.5.29",
4
- "type": "module",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "scripts": {
8
- "build": "tsc -p tsconfig.json"
9
- },
10
- "dependencies": {
11
- "@sema/nucleo": "file:../nucleo",
12
- "@sema/padroes": "file:../padroes"
13
- }
14
- }
1
+ {
2
+ "name": "@sema/gerador-html",
3
+ "version": "1.5.29",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts"
7
+ }
@@ -1,14 +1,7 @@
1
- {
2
- "name": "@sema/gerador-javascript",
3
- "version": "1.5.29",
4
- "type": "module",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "scripts": {
8
- "build": "tsc -p tsconfig.json"
9
- },
10
- "dependencies": {
11
- "@sema/nucleo": "file:../nucleo",
12
- "@sema/padroes": "file:../padroes"
13
- }
14
- }
1
+ {
2
+ "name": "@sema/gerador-javascript",
3
+ "version": "1.5.29",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts"
7
+ }
@@ -1,14 +1,7 @@
1
- {
2
- "name": "@sema/gerador-lua",
3
- "version": "1.5.29",
4
- "type": "module",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "scripts": {
8
- "build": "tsc -p tsconfig.json"
9
- },
10
- "dependencies": {
11
- "@sema/nucleo": "file:../nucleo",
12
- "@sema/padroes": "file:../padroes"
13
- }
14
- }
1
+ {
2
+ "name": "@sema/gerador-lua",
3
+ "version": "1.5.29",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts"
7
+ }
@@ -1,14 +1,7 @@
1
- {
2
- "name": "@sema/gerador-python",
3
- "version": "1.5.29",
4
- "type": "module",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "scripts": {
8
- "build": "tsc -p tsconfig.json"
9
- },
10
- "dependencies": {
11
- "@sema/nucleo": "file:../nucleo",
12
- "@sema/padroes": "file:../padroes"
13
- }
14
- }
1
+ {
2
+ "name": "@sema/gerador-python",
3
+ "version": "1.5.29",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts"
7
+ }