@semacode/cli 1.5.31 → 1.5.32

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 (157) hide show
  1. package/AGENTS.md +294 -0
  2. package/AGENT_CONTEXT_PACK.json +164 -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 +616 -0
  7. package/SEMA_BRIEF.micro.txt +9 -0
  8. package/SEMA_INDEX.json +9393 -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/index.js +222 -46
  46. package/dist/index.js.map +1 -1
  47. package/dist/runnerValidacaoRemota.d.ts +9 -0
  48. package/dist/runnerValidacaoRemota.js +9 -0
  49. package/dist/runnerValidacaoRemota.js.map +1 -0
  50. package/dist/runnerValidacaoRemotaBateria.d.ts +10 -0
  51. package/dist/runnerValidacaoRemotaBateria.js +115 -0
  52. package/dist/runnerValidacaoRemotaBateria.js.map +1 -0
  53. package/dist/runnerValidacaoRemotaCli.d.ts +4 -0
  54. package/dist/runnerValidacaoRemotaCli.js +86 -0
  55. package/dist/runnerValidacaoRemotaCli.js.map +1 -0
  56. package/dist/runnerValidacaoRemotaComandos.d.ts +7 -0
  57. package/dist/runnerValidacaoRemotaComandos.js +123 -0
  58. package/dist/runnerValidacaoRemotaComandos.js.map +1 -0
  59. package/dist/runnerValidacaoRemotaEscopo.d.ts +4 -0
  60. package/dist/runnerValidacaoRemotaEscopo.js +79 -0
  61. package/dist/runnerValidacaoRemotaEscopo.js.map +1 -0
  62. package/dist/runnerValidacaoRemotaExecucao.d.ts +2 -0
  63. package/dist/runnerValidacaoRemotaExecucao.js +102 -0
  64. package/dist/runnerValidacaoRemotaExecucao.js.map +1 -0
  65. package/dist/runnerValidacaoRemotaRelatorio.d.ts +3 -0
  66. package/dist/runnerValidacaoRemotaRelatorio.js +93 -0
  67. package/dist/runnerValidacaoRemotaRelatorio.js.map +1 -0
  68. package/dist/runnerValidacaoRemotaServidor.d.ts +3 -0
  69. package/dist/runnerValidacaoRemotaServidor.js +157 -0
  70. package/dist/runnerValidacaoRemotaServidor.js.map +1 -0
  71. package/dist/runnerValidacaoRemotaSnapshot.d.ts +10 -0
  72. package/dist/runnerValidacaoRemotaSnapshot.js +217 -0
  73. package/dist/runnerValidacaoRemotaSnapshot.js.map +1 -0
  74. package/dist/runnerValidacaoRemotaTipos.d.ts +158 -0
  75. package/dist/runnerValidacaoRemotaTipos.js +35 -0
  76. package/dist/runnerValidacaoRemotaTipos.js.map +1 -0
  77. package/dist/runnerValidacaoRemotaUtil.d.ts +3 -0
  78. package/dist/runnerValidacaoRemotaUtil.js +18 -0
  79. package/dist/runnerValidacaoRemotaUtil.js.map +1 -0
  80. package/dist/runnerValidacaoRemotaWorkspace.d.ts +2 -0
  81. package/dist/runnerValidacaoRemotaWorkspace.js +110 -0
  82. package/dist/runnerValidacaoRemotaWorkspace.js.map +1 -0
  83. package/docs/AGENT_STARTER.md +109 -0
  84. package/docs/api.md +82 -0
  85. package/docs/cli.md +93 -0
  86. package/docs/como-ensinar-a-sema-para-ia.md +30 -0
  87. package/docs/deploy.md +45 -0
  88. package/docs/documentacao.md +88 -0
  89. package/docs/env.md +115 -0
  90. package/docs/extensao-vscode.md +42 -0
  91. package/docs/fluxo-pratico-ia-sema.md +187 -0
  92. package/docs/instalacao-e-primeiro-uso.md +48 -0
  93. package/docs/integracao-com-ia.md +24 -0
  94. package/docs/mcp.md +48 -0
  95. package/docs/pagamento-ponta-a-ponta.md +171 -0
  96. package/docs/persistencia-vendor-first.md +151 -0
  97. package/docs/prompt-base-ia-sema.md +111 -0
  98. package/docs/repositories.md +69 -0
  99. package/docs/rollback.md +24 -0
  100. package/docs/seguranca.md +126 -0
  101. package/docs/sintaxe.md +218 -0
  102. package/exemplos/profile_conversas.sema +165 -0
  103. package/llms-full.txt +35 -0
  104. package/llms.txt +18 -0
  105. package/node_modules/@sema/gerador-css/package.json +7 -14
  106. package/node_modules/@sema/gerador-dart/package.json +7 -14
  107. package/node_modules/@sema/gerador-html/package.json +7 -14
  108. package/node_modules/@sema/gerador-javascript/package.json +7 -14
  109. package/node_modules/@sema/gerador-lua/package.json +7 -14
  110. package/node_modules/@sema/gerador-python/package.json +7 -14
  111. package/node_modules/@sema/gerador-typescript/package.json +7 -14
  112. package/node_modules/@sema/nucleo/package.json +7 -10
  113. package/node_modules/@sema/padroes/package.json +7 -10
  114. package/package.json +75 -74
  115. package/exemplos/.prepack-generated +0 -1
  116. package/node_modules/@sema/gerador-css/src/index.ts +0 -605
  117. package/node_modules/@sema/gerador-css/tsconfig.json +0 -13
  118. package/node_modules/@sema/gerador-css/tsconfig.tsbuildinfo +0 -1
  119. package/node_modules/@sema/gerador-dart/src/index.ts +0 -52
  120. package/node_modules/@sema/gerador-dart/tsconfig.json +0 -13
  121. package/node_modules/@sema/gerador-dart/tsconfig.tsbuildinfo +0 -1
  122. package/node_modules/@sema/gerador-html/src/index.ts +0 -185
  123. package/node_modules/@sema/gerador-html/tsconfig.json +0 -13
  124. package/node_modules/@sema/gerador-html/tsconfig.tsbuildinfo +0 -1
  125. package/node_modules/@sema/gerador-javascript/src/index.ts +0 -461
  126. package/node_modules/@sema/gerador-javascript/tsconfig.json +0 -13
  127. package/node_modules/@sema/gerador-javascript/tsconfig.tsbuildinfo +0 -1
  128. package/node_modules/@sema/gerador-lua/src/index.ts +0 -359
  129. package/node_modules/@sema/gerador-lua/tsconfig.json +0 -13
  130. package/node_modules/@sema/gerador-lua/tsconfig.tsbuildinfo +0 -1
  131. package/node_modules/@sema/gerador-python/src/index.ts +0 -850
  132. package/node_modules/@sema/gerador-python/tsconfig.json +0 -13
  133. package/node_modules/@sema/gerador-python/tsconfig.tsbuildinfo +0 -1
  134. package/node_modules/@sema/gerador-typescript/src/index.ts +0 -876
  135. package/node_modules/@sema/gerador-typescript/tsconfig.json +0 -13
  136. package/node_modules/@sema/gerador-typescript/tsconfig.tsbuildinfo +0 -1
  137. package/node_modules/@sema/nucleo/src/ast/tipos.ts +0 -207
  138. package/node_modules/@sema/nucleo/src/diagnosticos/index.ts +0 -43
  139. package/node_modules/@sema/nucleo/src/diagnosticos/melhorador.ts +0 -130
  140. package/node_modules/@sema/nucleo/src/formatador/index.ts +0 -530
  141. package/node_modules/@sema/nucleo/src/index.ts +0 -184
  142. package/node_modules/@sema/nucleo/src/ir/conversor.ts +0 -1037
  143. package/node_modules/@sema/nucleo/src/ir/modelos.ts +0 -403
  144. package/node_modules/@sema/nucleo/src/lexer/lexer.ts +0 -166
  145. package/node_modules/@sema/nucleo/src/lexer/tokens.ts +0 -79
  146. package/node_modules/@sema/nucleo/src/parser/gramatica.ebnf +0 -41
  147. package/node_modules/@sema/nucleo/src/parser/parser.ts +0 -936
  148. package/node_modules/@sema/nucleo/src/persistencia/contratos.ts +0 -379
  149. package/node_modules/@sema/nucleo/src/semantico/analisador.ts +0 -3126
  150. package/node_modules/@sema/nucleo/src/semantico/estruturas.ts +0 -665
  151. package/node_modules/@sema/nucleo/src/semantico/seguranca.ts +0 -362
  152. package/node_modules/@sema/nucleo/src/util/arquivos.ts +0 -28
  153. package/node_modules/@sema/nucleo/tsconfig.json +0 -9
  154. package/node_modules/@sema/nucleo/tsconfig.tsbuildinfo +0 -1
  155. package/node_modules/@sema/padroes/src/index.ts +0 -382
  156. package/node_modules/@sema/padroes/tsconfig.json +0 -9
  157. package/node_modules/@sema/padroes/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,171 @@
1
+ # Pagamento Ponta a Ponta na Sema
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
+ Este documento descreve o vertical oficial de pagamento da Sema no fluxo público atual.
10
+
11
+ O objetivo não é mostrar um exemplo fofo. O objetivo e demonstrar que a linguagem já consegue modelar um fluxo de negócio real com:
12
+
13
+ - contrato público
14
+ - segurança e autorizacao
15
+ - classificacao de dados
16
+ - segredos e proibicoes explicitas
17
+ - regras
18
+ - efeitos operacionais
19
+ - execução, idempotencia, retry e compensacao
20
+ - transicoes de estado
21
+ - orquestração
22
+ - erros publicos
23
+ - testes executaveis com saída, status ou erro observavel
24
+
25
+ ## Arquivos de referência
26
+
27
+ - `exemplos/pagamento_dominio.sema`
28
+ - `exemplos/pagamento.sema`
29
+
30
+ ## Como o vertical foi dividido
31
+
32
+ ### `exemplos.pagamento.dominio`
33
+
34
+ Centraliza os contratos compartilhados:
35
+
36
+ - `entity Pagamento`
37
+ - `enum StatusPagamento`
38
+ - `state ciclo_pagamento`
39
+
40
+ ### `exemplos.pagamento`
41
+
42
+ Centraliza a operação do vertical:
43
+
44
+ - `task processar_pagamento`
45
+ - `task confirmar_pagamento`
46
+ - `task notificar_falha_pagamento`
47
+ - `task registrar_timeout_pagamento`
48
+ - `flow orquestracao_pagamento`
49
+ - `route processar_pagamento_publico`
50
+
51
+ ## Narrativa do caso
52
+
53
+ ### Entrada pública
54
+
55
+ A operação entra por:
56
+
57
+ - `route processar_pagamento_publico`
58
+
59
+ Esse contrato pública:
60
+
61
+ - `pagamento_id`
62
+ - `valor`
63
+ - `token`
64
+
65
+ É expoe:
66
+
67
+ - `pagamento`
68
+ - `status`
69
+ - erros publicos coerentes com a `task`
70
+
71
+ ### Task interna
72
+
73
+ A `task processar_pagamento` faz o trabalho central:
74
+
75
+ - exige `authz`
76
+ - classifica `dados`
77
+ - declara `segredos`, `audit` e `forbidden`
78
+ - valida entrada
79
+ - consulta o gateway
80
+ - persiste o pagamento
81
+ - emite evento
82
+ - notifica comprovante
83
+ - registra auditoria
84
+ - declara `execucao` com idempotencia, timeout, retry, compensacao e criticidade
85
+ - garante consistencia da saída
86
+
87
+ ### Estado e transicoes
88
+
89
+ O `state ciclo_pagamento` ancora o contrato de transicao:
90
+
91
+ - `PENDENTE -> AUTORIZADO`
92
+ - `AUTORIZADO -> PROCESSADO`
93
+ - `PENDENTE -> RECUSADO`
94
+
95
+ A `task` explícita quais transicoes ela realmente usa.
96
+
97
+ ### Flow de orquestração
98
+
99
+ O `flow orquestracao_pagamento` demonstra:
100
+
101
+ - passagem de contexto
102
+ - confirmação em caso de sucesso
103
+ - notificação em caso de recusa
104
+ - registro de timeout em caso de indisponibilidade
105
+ - ramificacao por erro tipado
106
+
107
+ ### Efeitos operacionais
108
+
109
+ O vertical usa as 5 categorias oficiais da Sema:
110
+
111
+ - `persistencia`
112
+ - `consulta`
113
+ - `evento`
114
+ - `notificacao`
115
+ - `auditoria`
116
+
117
+ Também usa `criticidade` para deixar claro o peso operacional do efeito.
118
+
119
+ ### Falhas reais
120
+
121
+ O vertical cobre explicitamente:
122
+
123
+ - autorizacao negada
124
+ - saldo insuficiente
125
+ - timeout de gateway
126
+
127
+ ## Fluxo de trabalho recomendado
128
+
129
+ ### 1. Escrever ou ajustar os arquivos `.sema`
130
+
131
+ Use o domínio compartilhado em um módulo e a operação em outro módulo.
132
+
133
+ ### 2. Aplicar o formato canônico
134
+
135
+ ```bash
136
+ sema formatar exemplos
137
+ ```
138
+
139
+ ### 3. Validar semanticamente
140
+
141
+ ```bash
142
+ sema validar exemplos/pagamento.sema
143
+ ```
144
+
145
+ ### 4. Gerar código
146
+
147
+ ```bash
148
+ sema compilar exemplos/pagamento.sema --alvo typescript --saida ./.tmp/pagamento-ts
149
+ sema compilar exemplos/pagamento.sema --alvo python --saida ./.tmp/pagamento-py
150
+ ```
151
+
152
+ ### 5. Verificar o vertical completo
153
+
154
+ ```bash
155
+ sema verificar exemplos/pagamento.sema --json --saida ./.tmp/verificacao-pagamento
156
+ ```
157
+
158
+ ## O que esse vertical prova
159
+
160
+ Se esse vertical passa, a Sema já consegue demonstrar que:
161
+
162
+ - modela contrato público
163
+ - modela superficie sensível sem deixar segurança invisível
164
+ - modela efeitos operacionais
165
+ - modela falhas reais
166
+ - modulariza domínio com `use`
167
+ - declara idempotencia e execução crítica sem criar sintaxe nova
168
+ - gera artefatos coerentes para TypeScript e Python
169
+ - executa testes gerados sem gambiarra conceitual
170
+
171
+ Esse e o criterio pratico que sustenta o uso público do vertical de pagamento como referência para IA e geracao.
@@ -0,0 +1,151 @@
1
+ # Persistência Vendor-First
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
+ Sema 1.5.29 trata banco como superficie semântica de primeira classe. Isso significa assumir diferenças reais entre engines e coloca-las no contrato, no semântico, na IR, no drift, no impact map, na renomeacao assistida, no `verificar` e na extensao. Nesta linha, o `drift` também materializa persistência local real em `Preferences`, `localStorage` e `sessionStorage` quando a task está ancorada no arquivo que usa essas APIs, preservando o framing IA-first da release atual.
10
+
11
+ ## Engines publicas
12
+
13
+ - `postgres`
14
+ - `mysql`
15
+ - `sqlite`
16
+ - `mongodb`
17
+ - `redis`
18
+
19
+ ## Exemplo PostgreSQL
20
+
21
+ ```sema
22
+ database principal_postgres {
23
+ engine: postgres
24
+ schema: public
25
+ consistency: forte
26
+ durability: alta
27
+ transaction_model: mvcc
28
+ query_model: sql
29
+ capabilities {
30
+ joins
31
+ views
32
+ foreign_keys
33
+ }
34
+ table pedidos {
35
+ entity: Pedido
36
+ }
37
+ relationship pedido_cliente {
38
+ from: Pedido
39
+ to: Cliente
40
+ }
41
+ query buscar_pedidos {
42
+ mode: sql
43
+ }
44
+ }
45
+ ```
46
+
47
+ ## Exemplo MySQL
48
+
49
+ ```sema
50
+ database principal_mysql {
51
+ engine: mysql
52
+ consistency: forte
53
+ durability: alta
54
+ transaction_model: bloqueio
55
+ query_model: sql
56
+ table faturamento {
57
+ table: faturamento
58
+ }
59
+ index faturamento_status {
60
+ table: faturamento
61
+ }
62
+ query buscar_faturas {
63
+ mode: sql
64
+ }
65
+ }
66
+ ```
67
+
68
+ ## Exemplo SQLite
69
+
70
+ ```sema
71
+ database principal_sqlite {
72
+ engine: sqlite
73
+ consistency: snapshot
74
+ durability: media
75
+ transaction_model: single_thread
76
+ query_model: sql
77
+ table cache_local {
78
+ table: cache_local
79
+ }
80
+ retention limpeza_local {
81
+ retention: "7d"
82
+ }
83
+ }
84
+ ```
85
+
86
+ ## Exemplo MongoDB
87
+
88
+ ```sema
89
+ database principal_mongodb {
90
+ engine: mongodb
91
+ consistency: eventual
92
+ durability: alta
93
+ transaction_model: documento
94
+ query_model: documento
95
+ collection pedidos {
96
+ collection: pedidos
97
+ }
98
+ document pedido_snapshot {
99
+ entity: PedidoSnapshot
100
+ }
101
+ query pipeline_pedido {
102
+ mode: pipeline
103
+ }
104
+ }
105
+ ```
106
+
107
+ ## Exemplo Redis
108
+
109
+ ```sema
110
+ database principal_redis {
111
+ engine: redis
112
+ consistency: eventual
113
+ durability: media
114
+ transaction_model: single_thread
115
+ query_model: chave_valor
116
+ keyspace cache_pedidos {
117
+ ttl: "300s"
118
+ }
119
+ stream eventos_pedido {
120
+ surface: fila
121
+ }
122
+ retention expurgo_cache {
123
+ retention: "300s"
124
+ }
125
+ }
126
+ ```
127
+
128
+ ## Compatibilidade calculada
129
+
130
+ Cada recurso recebe compatibilidade por engine:
131
+
132
+ - `nativo`
133
+ - `adaptado`
134
+ - `parcial`
135
+ - `invalido`
136
+
137
+ Isso deixa explícito quando o contrato está pedindo portabilidade falsa, por exemplo:
138
+
139
+ - `table` em `redis`
140
+ - `foreign_keys` em engine sem suporte equivalente
141
+ - transação multi-documento tratada como universal
142
+
143
+ ## Onde isso aparece
144
+
145
+ - parser e AST
146
+ - IR canonica
147
+ - analisador semântico
148
+ - formatador
149
+ - `sema drift`
150
+ - `sema importar`
151
+ - extensao VS Code
@@ -0,0 +1,111 @@
1
+ # Prompt-Base Oficial para IA Trabalhar com Sema
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
+ Este arquivo serve como prompt-base oficial para qualquer IA que precise ler, escrever, revisar ou transformar arquivos `.sema`.
10
+
11
+ O objetivo não é fazer a IA "improvisar bonito". O objetivo e fazer a IA operar a linguagem com previsibilidade. A Sema não foi desenhada para ergonomia humana como prioridade; ela foi desenhada para IA. Humanos escrevem, revisam e aprovam; o consumidor primário e o agente.
12
+
13
+ ## Prompt-base
14
+
15
+ Use o texto abaixo como base:
16
+
17
+ ```text
18
+ Voce esta trabalhando com Sema, um contrato semantico IA-first para agentes operarem software vivo.
19
+
20
+ Tecnicamente, a Sema funciona como linguagem de intencao orientada a contrato. Operacionalmente, ela existe para governar semantica acima da stack e traduzir intencao operacional para IA, nao para substituir arquitetura, design ou aprovacao humana.
21
+
22
+ Trate a Sema como contrato semantico executavel e protocolo de governanca IA-first. Nao invente sintaxe, palavras-chave ou blocos fora da gramatica e dos exemplos oficiais.
23
+
24
+ Fontes de verdade, em ordem:
25
+ 1. se o projeto expuser `SEMA_CONTEXT.md`, comece por ele
26
+ 2. `SEMA_BRIEF.md`
27
+ 3. `SEMA_INDEX.json`
28
+ 4. README do projeto
29
+ 5. gramatica e documentacao de sintaxe da Sema
30
+ 6. especificacao semantica da linguagem
31
+ 7. exemplos oficiais, com prioridade para o vertical de pagamento
32
+ 8. `sema resumo` e `briefing.min.json` quando a IA for pequena
33
+ 9. AST, IR e diagnosticos exportados pela CLI em JSON quando a capacidade aguentar
34
+
35
+ Regras de operacao:
36
+ - preserve o significado semantico
37
+ - use o formatador oficial da Sema como fonte unica de estilo
38
+ - use diagnosticos estruturados como contrato de correcao
39
+ - use a IR como fonte de verdade semantica quando houver duvida
40
+ - use `predicadoCanonico` como normalizacao opcional; preserve o `predicado` original
41
+ - nao conclua uma alteracao sem validar e verificar o modulo
42
+ - trate `importar` como bootstrap revisavel, nao como contrato final automatico
43
+ - trate `drift` como medicao de verdade contra codigo vivo
44
+ - trate `impl` como ponte entre task e simbolo real
45
+ - nao invente regra de negocio que o contrato e o codigo nao sustentem
46
+
47
+ Antes de editar `.sema`, entenda:
48
+ - o module alvo
49
+ - os contratos de task, route, error, effects, guarantees, state e flow
50
+ - os exemplos oficiais relacionados
51
+
52
+ Depois de editar `.sema`, execute este fluxo:
53
+ 1. formatar
54
+ 2. validar
55
+ 3. diagnosticar, se houver falha
56
+ 4. verificar
57
+
58
+ Se houver conflito entre texto livre e IR/diagnosticos, priorize a IR e os diagnosticos da CLI.
59
+
60
+ Se algo nao estiver claro, siga a forma ja usada nos exemplos oficiais. Nao improvise sem base.
61
+ ```
62
+
63
+ ## Variacao curta
64
+
65
+ Se voce quiser um prompt menor para uso frequente:
66
+
67
+ ```text
68
+ Trabalhe com Sema como contrato semantico IA-first orientado a agente. Nao invente sintaxe. Use os exemplos oficiais e a gramatica como referencia de escrita. Use `ir --json` como fonte de verdade semantica, `diagnosticos --json` como fonte de correcao e `sema formatar` como fonte unica de estilo. Antes de encerrar, rode validacao e verificacao.
69
+ ```
70
+
71
+ Se voce quiser um prompt ainda mais curto e pronto para colar, use:
72
+
73
+ ```bash
74
+ sema prompt-curto caminho/arquivo.sema --curto --para mudanca
75
+ ```
76
+
77
+ ## Variacao para revisão
78
+
79
+ Use está versão quando a IA for revisar `.sema` em vez de criar:
80
+
81
+ ```text
82
+ Revise este modulo Sema como contrato semantico executavel. Procure incoerencias entre input, output, rules, effects, guarantees, state, flow, route e error. Considere a IR e os diagnosticos da CLI como fonte de verdade. Nao critique estilo fora do que o formatador oficial resolveria automaticamente.
83
+ ```
84
+
85
+ ## Variacao para geracao
86
+
87
+ Use está versão quando a IA for escrever módulo novo:
88
+
89
+ ```text
90
+ Gere um modulo Sema seguindo a gramatica oficial, os exemplos do projeto e o estilo do formatador canonico. Estruture o modulo como contrato semantico executavel, com blocos explicitos para entrada, saida, regras, efeitos, garantias, erros, estado, fluxo e testes quando fizer sentido. Nao use sintaxe fora do repertorio ja suportado pela linguagem.
91
+ ```
92
+
93
+ ## Variacao para correcao guiada por diagnóstico
94
+
95
+ Use está versão quando a IA já tiver erro concreto para corrigir:
96
+
97
+ ```text
98
+ Corrija este modulo Sema a partir dos diagnosticos estruturados da CLI. Preserve a intencao do contrato e altere apenas o necessario para eliminar as falhas. Depois da correcao, aplique o formatador oficial e revalide.
99
+ ```
100
+
101
+ ## O que sempre anexar junto do prompt
102
+
103
+ Idealmente, acompanhe o prompt com:
104
+
105
+ - o arquivo `.sema` alvo
106
+ - o resultado de `sema ast --json`
107
+ - o resultado de `sema ir --json`
108
+ - o resultado de `sema diagnosticos --json`, se houver erro
109
+ - um exemplo oficial parecido
110
+
111
+ Sem isso, a IA pode até acertar. Com isso, ela trabalha direito.
@@ -0,0 +1,69 @@
1
+ # Repository Boundary
2
+
3
+ <!-- sema:i18n -->
4
+ > EN: English first.
5
+ > PT: Português depois.
6
+ > ES: Español al final.
7
+
8
+ ## English
9
+
10
+ Sema is private by default, with one public installation path: `@semacode/cli` on npm. There is no public product repository, no public MCP package surface, and no active `public/` versus `private/` repository split.
11
+
12
+ The active tree lives at the repository root: `contratos/`, `pacotes/`, `mcp/`, `site/`, `supabase/`, `deploy/`, `docs/`, `scripts/`, and `testes/`.
13
+
14
+ The operating model is:
15
+
16
+ - The MCP is the private coordinator: it authenticates clients, selects the right project or mirror, charges SEMAS, decides the required contract/profile flow, and returns the operational verdict.
17
+ - The CLI is distributed as the public npm installer/client `@semacode/cli`, then acts as the governed executor: it reads contracts, validates, checks drift, builds AI-first context, and performs local or server-side actions requested by the MCP.
18
+ - Web chats remain supported because the private MCP keeps a CLI installed on the VPS and runs it against authorized mirrors under `/srv/sema/projetos/...`.
19
+ - Local IDEs remain supported by sending typed snapshots, selected code, docs, and indexes to the MCP; when local full-code drift is required, the installed CLI can run inside the IDE environment.
20
+
21
+ Public distribution is allowed only for the governed CLI installer. If a script tries to publish the MCP server, product release assets, secrets, control-plane code, or any public package outside `@semacode/cli`, it must fail before any artifact is created.
22
+
23
+ Use the private boundary check:
24
+
25
+ ```bash
26
+ npm run repo:verificar-privado
27
+ ```
28
+
29
+ ## Português
30
+
31
+ O Sema agora e privado por padrao, com um caminho publico de instalacao: `@semacode/cli` no npm. Nao existe repositorio publico de produto, superficie MCP publica como pacote aberto nem divisao ativa entre `public/` e `private/`.
32
+
33
+ A arvore ativa vive na raiz do repositorio: `contratos/`, `pacotes/`, `mcp/`, `site/`, `supabase/`, `deploy/`, `docs/`, `scripts/` e `testes/`.
34
+
35
+ O modelo operacional é:
36
+
37
+ - O MCP é o coordenador privado: autentica clientes, escolhe o projeto ou espelho correto, cobra SEMAS, decide o fluxo de contrato/profile obrigatório e devolve o veredito operacional.
38
+ - A CLI e distribuida como instalador/cliente publico `@semacode/cli` no npm e depois atua como executor governado: le contratos, valida, mede drift, monta contexto IA-first e executa acoes locais ou no servidor quando o MCP pedir.
39
+ - Chats web continuam suportados porque o MCP privado mantém uma CLI instalada na VPS e executa contra espelhos autorizados em `/srv/sema/projetos/...`.
40
+ - IDEs locais continuam suportadas enviando snapshots tipados, codigo selecionado, docs e indice para o MCP; quando drift completo local for necessario, a CLI instalada pode rodar dentro do ambiente da IDE.
41
+
42
+ Distribuicao publica so e permitida para o instalador CLI governado. Se algum script tentar publicar o servidor MCP, assets de release de produto, segredos, control plane ou qualquer pacote publico fora de `@semacode/cli`, ele deve falhar antes de criar qualquer artefato.
43
+
44
+ Use a checagem de fronteira privada:
45
+
46
+ ```bash
47
+ npm run repo:verificar-privado
48
+ ```
49
+
50
+ ## Español
51
+
52
+ Sema ahora es privado por defecto, con una ruta publica de instalacion: `@semacode/cli` en npm. No existe repositorio publico de producto, superficie MCP publica como paquete abierto ni division activa entre `public/` y `private/`.
53
+
54
+ El arbol activo vive en la raiz del repositorio: `contratos/`, `pacotes/`, `mcp/`, `site/`, `supabase/`, `deploy/`, `docs/`, `scripts/` y `testes/`.
55
+
56
+ El modelo operativo es:
57
+
58
+ - El MCP es el coordinador privado: autentica clientes, elige el proyecto o espejo correcto, cobra SEMAS, decide el flujo obligatorio de contrato/profile y devuelve el veredicto operativo.
59
+ - La CLI se distribuye como instalador/cliente publico `@semacode/cli` en npm y luego actua como ejecutor gobernado: lee contratos, valida, mide drift, prepara contexto IA-first y ejecuta acciones locales o del servidor cuando el MCP lo solicita.
60
+ - Los chats web siguen soportados porque el MCP privado mantiene una CLI instalada en la VPS y la ejecuta contra espejos autorizados en `/srv/sema/projetos/...`.
61
+ - Las IDEs locales siguen soportadas enviando snapshots tipados, codigo seleccionado, docs e indice al MCP; cuando haga falta drift completo local, la CLI instalada puede correr dentro del entorno de la IDE.
62
+
63
+ La distribucion publica solo se permite para el instalador CLI gobernado. Si un script intenta publicar el servidor MCP, assets de release de producto, secretos, control plane o cualquier paquete publico fuera de `@semacode/cli`, debe fallar antes de crear cualquier artefacto.
64
+
65
+ Usa la verificación de frontera privada:
66
+
67
+ ```bash
68
+ npm run repo:verificar-privado
69
+ ```
@@ -0,0 +1,24 @@
1
+ # Rollback Privado
2
+
3
+ <!-- sema:i18n -->
4
+ > EN: English first.
5
+ > PT: Português depois, com acentos preservados.
6
+ > ES: Español al final.
7
+
8
+ ## English
9
+
10
+ Rollback is private and must preserve traceability. If the MCP runtime breaks, restore the previous package or dist files, restart `sema-mcp.service`, and verify `/healthz`.
11
+
12
+ Do not rewrite customer mirrors blindly. Project mirrors under `/srv/sema/projetos/...` must only be reverted when the failed change touched that mirror.
13
+
14
+ ## Português
15
+
16
+ Rollback é privado e precisa preservar rastreabilidade. Se o runtime MCP quebrar, restaure o pacote ou os arquivos `dist` anteriores, reinicie `sema-mcp.service` e valide `/healthz`.
17
+
18
+ Não reescreva espelhos de clientes às cegas. Espelhos de projeto em `/srv/sema/projetos/...` só devem ser revertidos quando a mudança com falha tiver tocado aquele espelho.
19
+
20
+ ## Español
21
+
22
+ El rollback es privado y debe preservar trazabilidad. Si el runtime MCP falla, restaura el paquete o los archivos `dist` anteriores, reinicia `sema-mcp.service` y valida `/healthz`.
23
+
24
+ No reescribas espejos de clientes a ciegas. Los espejos de proyecto en `/srv/sema/projetos/...` solo deben revertirse cuando el cambio fallido haya tocado ese espejo.
@@ -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.