@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,38 @@
1
+ # Integração com IA
2
+
3
+ <!-- sema:i18n -->
4
+ > EN: English first.
5
+ > PT: Português depois, com acentos preservados.
6
+ > ES: Español al final.
7
+
8
+ ## Regra de idioma humano
9
+
10
+ Sema pode usar palavras-chave de DSL em ASCII. A IA não deve copiar essa estética para texto humano.
11
+
12
+ - Se o usuário fala português, responda em português com acentos, cedilha, pontuação e símbolos normais.
13
+ - Preserve o idioma do usuário em propostas, documentação, mensagens de erro, textos Author, briefing, resposta final e comentários.
14
+ - Não traduza comandos, rotas, nomes de arquivos, símbolos de código nem palavras-chave `.sema`.
15
+
16
+ ## Agentes fortes, médios e fracos
17
+
18
+ - IA fraca: comece por `SEMA_BOOT.md`, `SEMA_SMALL_MODEL.md` e `SEMA_BRIEF.micro.txt`; se Sema não responder, pare.
19
+ - IA média: use `SEMA_BOOT.md`, `AGENT_CONTEXT_PACK.json`, `SEMA_BRIEF.curto.txt` e `SEMA_INDEX.json`.
20
+ - IA forte: pode usar `SEMA_BRIEF.md`, AST, IR e drift completo, mas continua obedecendo contrato primeiro.
21
+
22
+ ## English
23
+
24
+ Sema exists for AI agents operating live systems. The agent should ask Sema for summary, docs impact, drift, impact, profile validation, and finalization instead of guessing from raw code.
25
+
26
+ In local IDEs, confirm `AGENTS.md` exists before `sema_resumo`. In web chats, use `sema_chat_contexto` first, then `sema_sync` or inline content. The MCP coordinates the flow and charges SEMAS; the CLI executes local or VPS-side checks.
27
+
28
+ ## Português
29
+
30
+ A Sema existe para agentes de IA operarem sistemas vivos. O agente deve pedir resumo, impacto documental, drift, impacto, validação de profile e finalização para a Sema em vez de adivinhar pelo código cru.
31
+
32
+ Em IDE local, confirme que `AGENTS.md` existe antes de `sema_resumo`. Em chats web, use primeiro `sema_chat_contexto`, depois `sema_sync` ou conteúdo inline. O MCP coordena o fluxo e cobra SEMAS; a CLI executa checks locais ou na VPS.
33
+
34
+ ## Español
35
+
36
+ Sema existe para agentes de IA que operan sistemas vivos. El agente debe pedir resumen, impacto documental, drift, impacto, validación de profile y finalización a Sema en vez de adivinar desde código crudo.
37
+
38
+ En IDE local, confirma que `AGENTS.md` existe antes de `sema_resumo`. En chats web, usa primero `sema_chat_contexto`, después `sema_sync` o contenido inline. El MCP coordina el flujo y cobra SEMAS; la CLI ejecuta checks locales o en la VPS.
package/docs/mcp.md ADDED
@@ -0,0 +1,54 @@
1
+ # Private MCP
2
+
3
+ <!-- sema:i18n -->
4
+ > EN: English first.
5
+ > PT: Português depois.
6
+ > ES: Español al final.
7
+
8
+ ## English
9
+
10
+ The Sema MCP is the private coordinator for agents. It authenticates clients, selects the project or mirror, charges SEMAS, chooses profiles/pipelines, asks the CLI to read or execute, and returns a traceable decision.
11
+
12
+ It must stay compatible with web chats. For ChatGPT, Lovable, GPTs, and similar clients, the MCP runs on the VPS and uses the governed CLI installed there against authorized mirrors such as `/srv/sema/projetos/...`.
13
+
14
+ It must also stay compatible with local IDEs. In that mode, the client sends typed snapshots: contracts, selected code, documentation, and an index. When complete local-code drift is required, the installed CLI may run in the IDE workspace.
15
+
16
+ The MCP must never pretend that a local Windows path exists on the Linux server. If the server cannot see the workspace, the next action is to request or create a mirror/snapshot.
17
+
18
+ The app or connector must recognize the remote MCP from connection/authentication even when no project workspace has been synchronized. Missing workspace is not a missing active session; it only means project work must use `sema_sync`, an attachment, or inline content. The remote MCP must not ask for or try to read the user's local folder.
19
+
20
+ Official Sema examples and grammar references must be exposed through `sema_exemplos`. Remote agents must not read `C:\GitHub\Sema\exemplos` or any other local user checkout just to learn the DSL.
21
+
22
+ Typed snapshot payloads have per-file byte limits for contracts, selected code, and documentation. The MCP exposes those limits in tool schemas and validates them again before writing a mirror or running inline contract operations. Clients must split oversized context into focused files instead of sending an entire repository or hiding the limit from the agent.
23
+
24
+ ## Português
25
+
26
+ O MCP da Sema é o coordenador privado dos agentes. Ele autentica clientes, escolhe o projeto ou espelho, cobra SEMAS, seleciona profiles/pipelines, pede para a CLI ler ou executar e devolve uma decisão rastreável.
27
+
28
+ Ele precisa continuar compatível com chats web. Para ChatGPT, Lovable, GPTs e clientes parecidos, o MCP roda na VPS e usa a CLI governada instalada lá contra espelhos autorizados como `/srv/sema/projetos/...`.
29
+
30
+ Ele também precisa continuar compatível com IDEs locais. Nesse modo, o cliente envia snapshots tipados: contratos, código selecionado, documentação e índice. Quando drift completo contra código local for necessário, a CLI instalada pode rodar no workspace da IDE.
31
+
32
+ O MCP nunca deve fingir que um caminho Windows local existe no servidor Linux. Se o servidor não enxerga o workspace, a próxima ação é pedir ou criar um espelho/snapshot.
33
+
34
+ O app ou conector deve reconhecer o MCP remoto pela conexao/autenticacao, mesmo sem workspace de projeto sincronizado. Falta de workspace nao e falta de sessao ativa: e apenas o sinal de que a proxima acao de projeto deve usar `sema_sync`, anexo ou conteudo inline. O MCP remoto nao deve pedir nem tentar ler a pasta local do usuario.
35
+
36
+ Exemplos oficiais da Sema e referencias de gramatica devem ser expostos por `sema_exemplos`. Agentes remotos nao devem ler `C:\GitHub\Sema\exemplos` nem qualquer checkout local do usuario so para aprender a DSL.
37
+
38
+ Snapshots tipados tem limite de bytes por arquivo para contratos, codigo selecionado e documentacao. O MCP anuncia esses limites no schema das ferramentas e valida de novo antes de gravar espelho ou executar contrato inline. Clientes devem quebrar contexto grande em arquivos focados, nao enviar repositorio inteiro nem esconder o limite do agente.
39
+
40
+ ## Español
41
+
42
+ El MCP de Sema es el coordinador privado de los agentes. Autentica clientes, elige el proyecto o espejo, cobra SEMAS, selecciona profiles/pipelines, pide a la CLI que lea o ejecute y devuelve una decisión trazable.
43
+
44
+ Debe seguir compatible con chats web. Para ChatGPT, Lovable, GPTs y clientes similares, el MCP corre en la VPS y usa la CLI gobernada instalada allí contra espejos autorizados como `/srv/sema/projetos/...`.
45
+
46
+ También debe seguir compatible con IDEs locales. En ese modo, el cliente envía snapshots tipados: contratos, código seleccionado, documentación e índice. Cuando haga falta drift completo contra código local, la CLI instalada puede correr en el workspace de la IDE.
47
+
48
+ El MCP nunca debe fingir que una ruta local de Windows existe en el servidor Linux. Si el servidor no ve el workspace, la siguiente acción es pedir o crear un espejo/snapshot.
49
+
50
+ La app o el conector debe reconocer el MCP remoto por conexion/autenticacion, incluso sin workspace de proyecto sincronizado. Falta de workspace no es falta de sesion activa: solo indica que el trabajo de proyecto debe usar `sema_sync`, un adjunto o contenido inline. El MCP remoto no debe pedir ni intentar leer la carpeta local del usuario.
51
+
52
+ Los ejemplos oficiales de Sema y las referencias de gramatica deben exponerse mediante `sema_exemplos`. Los agentes remotos no deben leer `C:\GitHub\Sema\exemplos` ni ningun checkout local del usuario solo para aprender la DSL.
53
+
54
+ Los snapshots tipados tienen limites de bytes por archivo para contratos, codigo seleccionado y documentacion. El MCP anuncia esos limites en los schemas de herramientas y vuelve a validarlos antes de escribir un espejo o ejecutar contratos inline. Los clientes deben dividir contexto grande en archivos enfocados, no enviar todo el repositorio ni ocultar el limite al agente.
@@ -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.