@semacode/cli 1.5.48 → 1.5.52

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 (281) hide show
  1. package/LICENSE +39 -21
  2. package/README.md +47 -48
  3. package/dist/agentContext.d.ts +2 -2
  4. package/dist/agentContext.js +1 -1
  5. package/dist/agentContextPack.d.ts +1 -1
  6. package/dist/agentContextPack.js +20 -28
  7. package/dist/agentContextTipos.d.ts +2 -2
  8. package/dist/agentContextTipos.js +7 -13
  9. package/dist/agentEntryPoints.js +244 -281
  10. package/dist/billing/index.d.ts +1 -58
  11. package/dist/billing/index.js +17 -278
  12. package/dist/cliArgs.js +0 -3
  13. package/dist/comandos.js +15 -131
  14. package/dist/contexto.d.ts +0 -9
  15. package/dist/contexto.js +59 -109
  16. package/dist/docs.part01.js +30 -51
  17. package/dist/drift.part14.js +18 -3
  18. package/dist/driftOrcamento.js +1 -2
  19. package/dist/index.d.ts +0 -6
  20. package/dist/index.js +0 -6
  21. package/dist/index.part01.d.ts +1 -1
  22. package/dist/index.part01.js +1 -3
  23. package/dist/index.part04.js +4 -4
  24. package/dist/index.part08.js +1 -22
  25. package/dist/initTemplatesBase.js +5 -5
  26. package/dist/sync/index.js +1 -1
  27. package/docs/README.md +19 -0
  28. package/docs/ai-integration.md +90 -0
  29. package/docs/ai-onboarding.md +33 -0
  30. package/docs/ai-workflow.md +62 -0
  31. package/docs/auth.md +16 -0
  32. package/docs/cli.md +36 -95
  33. package/docs/commands.md +90 -0
  34. package/docs/database.md +15 -0
  35. package/docs/deploy.md +6 -38
  36. package/docs/documentation.md +39 -0
  37. package/docs/env.md +8 -109
  38. package/docs/frontend.md +41 -0
  39. package/docs/getting-started.md +33 -0
  40. package/docs/i18n.md +15 -0
  41. package/docs/profiles.md +43 -0
  42. package/docs/repositories.md +19 -61
  43. package/docs/rollback.md +9 -20
  44. package/docs/security.md +24 -0
  45. package/docs/support.md +8 -0
  46. package/docs/syntax.md +128 -0
  47. package/docs/testing.md +17 -0
  48. package/docs/vocabulary.md +28 -0
  49. package/node_modules/@sema/gerador-css/package.json +1 -1
  50. package/node_modules/@sema/gerador-dart/package.json +1 -1
  51. package/node_modules/@sema/gerador-html/package.json +1 -1
  52. package/node_modules/@sema/gerador-javascript/package.json +1 -1
  53. package/node_modules/@sema/gerador-lua/dist/index.js +10 -0
  54. package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
  55. package/node_modules/@sema/gerador-lua/package.json +1 -1
  56. package/node_modules/@sema/gerador-python/package.json +1 -1
  57. package/node_modules/@sema/gerador-typescript/package.json +1 -1
  58. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +1 -1
  59. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +1 -1
  60. package/node_modules/@sema/nucleo/package.json +1 -1
  61. package/node_modules/@sema/padroes/package.json +1 -1
  62. package/package.json +15 -22
  63. package/AGENTS.md +0 -81
  64. package/AGENT_CONTEXT_PACK.json +0 -500
  65. package/SEMA_BRIEF.curto.txt +0 -18
  66. package/SEMA_BRIEF.md +0 -726
  67. package/SEMA_BRIEF.micro.txt +0 -16
  68. package/SEMA_INDEX.json +0 -11078
  69. package/dist/agentContext.js.map +0 -1
  70. package/dist/agentContextPack.js.map +0 -1
  71. package/dist/agentContextTipos.js.map +0 -1
  72. package/dist/agentEntryPoints.js.map +0 -1
  73. package/dist/angular-consumer-standalone.js.map +0 -1
  74. package/dist/authorAnalise.js.map +0 -1
  75. package/dist/authorPoliticas.js.map +0 -1
  76. package/dist/billing/index.js.map +0 -1
  77. package/dist/bridge.d.ts +0 -52
  78. package/dist/bridge.js +0 -333
  79. package/dist/bridge.js.map +0 -1
  80. package/dist/carregarModulos.js.map +0 -1
  81. package/dist/cliArgs.js.map +0 -1
  82. package/dist/comandos.js.map +0 -1
  83. package/dist/contexto.js.map +0 -1
  84. package/dist/controleComercialSupabase.d.ts +0 -7
  85. package/dist/controleComercialSupabase.js +0 -6
  86. package/dist/controleComercialSupabase.js.map +0 -1
  87. package/dist/controleComercialSupabaseAdmin.d.ts +0 -7
  88. package/dist/controleComercialSupabaseAdmin.js +0 -138
  89. package/dist/controleComercialSupabaseAdmin.js.map +0 -1
  90. package/dist/controleComercialSupabaseCadastro.d.ts +0 -4
  91. package/dist/controleComercialSupabaseCadastro.js +0 -85
  92. package/dist/controleComercialSupabaseCadastro.js.map +0 -1
  93. package/dist/controleComercialSupabaseConstantes.d.ts +0 -28
  94. package/dist/controleComercialSupabaseConstantes.js +0 -44
  95. package/dist/controleComercialSupabaseConstantes.js.map +0 -1
  96. package/dist/controleComercialSupabaseConsumo.d.ts +0 -2
  97. package/dist/controleComercialSupabaseConsumo.js +0 -77
  98. package/dist/controleComercialSupabaseConsumo.js.map +0 -1
  99. package/dist/controleComercialSupabaseConta.d.ts +0 -11
  100. package/dist/controleComercialSupabaseConta.js +0 -157
  101. package/dist/controleComercialSupabaseConta.js.map +0 -1
  102. package/dist/controleComercialSupabaseProfiles.d.ts +0 -4
  103. package/dist/controleComercialSupabaseProfiles.js +0 -55
  104. package/dist/controleComercialSupabaseProfiles.js.map +0 -1
  105. package/dist/controleComercialSupabaseTipos.d.ts +0 -3
  106. package/dist/controleComercialSupabaseTipos.js +0 -2
  107. package/dist/controleComercialSupabaseTipos.js.map +0 -1
  108. package/dist/controleComercialSupabaseTiposAdmin.d.ts +0 -152
  109. package/dist/controleComercialSupabaseTiposAdmin.js +0 -2
  110. package/dist/controleComercialSupabaseTiposAdmin.js.map +0 -1
  111. package/dist/controleComercialSupabaseTiposBase.d.ts +0 -169
  112. package/dist/controleComercialSupabaseTiposBase.js +0 -2
  113. package/dist/controleComercialSupabaseTiposBase.js.map +0 -1
  114. package/dist/controleComercialSupabaseTiposConta.d.ts +0 -220
  115. package/dist/controleComercialSupabaseTiposConta.js +0 -2
  116. package/dist/controleComercialSupabaseTiposConta.js.map +0 -1
  117. package/dist/cpp-symbols.js.map +0 -1
  118. package/dist/dev/index.js.map +0 -1
  119. package/dist/dev/watcher.js.map +0 -1
  120. package/dist/docs/resolver.js.map +0 -1
  121. package/dist/docs.js.map +0 -1
  122. package/dist/docs.part01.js.map +0 -1
  123. package/dist/docs.part02.js.map +0 -1
  124. package/dist/doctorCommand.js.map +0 -1
  125. package/dist/dotnet-http.js.map +0 -1
  126. package/dist/drift.contrato.js.map +0 -1
  127. package/dist/drift.js.map +0 -1
  128. package/dist/drift.part01.js.map +0 -1
  129. package/dist/drift.part02.js.map +0 -1
  130. package/dist/drift.part03.js.map +0 -1
  131. package/dist/drift.part04.js.map +0 -1
  132. package/dist/drift.part05.js.map +0 -1
  133. package/dist/drift.part06.js.map +0 -1
  134. package/dist/drift.part07.js.map +0 -1
  135. package/dist/drift.part08.js.map +0 -1
  136. package/dist/drift.part09.js.map +0 -1
  137. package/dist/drift.part10.js.map +0 -1
  138. package/dist/drift.part11.js.map +0 -1
  139. package/dist/drift.part12.js.map +0 -1
  140. package/dist/drift.part13.js.map +0 -1
  141. package/dist/drift.part14.js.map +0 -1
  142. package/dist/driftOrcamento.js.map +0 -1
  143. package/dist/driftScore.js.map +0 -1
  144. package/dist/execucoesExternas.js.map +0 -1
  145. package/dist/exemplosOficiais.js.map +0 -1
  146. package/dist/fsGovernado.js.map +0 -1
  147. package/dist/geracaoCore.js.map +0 -1
  148. package/dist/go-http.js.map +0 -1
  149. package/dist/guard.js.map +0 -1
  150. package/dist/iaPrompts.js.map +0 -1
  151. package/dist/importador.js.map +0 -1
  152. package/dist/importador.part01.js.map +0 -1
  153. package/dist/importador.part02.js.map +0 -1
  154. package/dist/importador.part03.js.map +0 -1
  155. package/dist/importador.part04.js.map +0 -1
  156. package/dist/importador.part05.js.map +0 -1
  157. package/dist/importador.part06.js.map +0 -1
  158. package/dist/importador.part07.js.map +0 -1
  159. package/dist/importador.part08.js.map +0 -1
  160. package/dist/importador.part09.js.map +0 -1
  161. package/dist/index.js.map +0 -1
  162. package/dist/index.part01.js.map +0 -1
  163. package/dist/index.part02.js.map +0 -1
  164. package/dist/index.part03.js.map +0 -1
  165. package/dist/index.part04.js.map +0 -1
  166. package/dist/index.part05.js.map +0 -1
  167. package/dist/index.part06.js.map +0 -1
  168. package/dist/index.part07.js.map +0 -1
  169. package/dist/index.part08.js.map +0 -1
  170. package/dist/init/index.js.map +0 -1
  171. package/dist/init/templates.js.map +0 -1
  172. package/dist/init/templates.part01.js.map +0 -1
  173. package/dist/init/templates.part02.js.map +0 -1
  174. package/dist/initCommand.js.map +0 -1
  175. package/dist/initTemplatesBackend.js.map +0 -1
  176. package/dist/initTemplatesBase.js.map +0 -1
  177. package/dist/initTemplatesFlutter.js.map +0 -1
  178. package/dist/initTemplatesRuntime.js.map +0 -1
  179. package/dist/initTemplatesWeb.js.map +0 -1
  180. package/dist/java-http.js.map +0 -1
  181. package/dist/lua-symbols.js.map +0 -1
  182. package/dist/mcpInstalarChaveCommand.d.ts +0 -1
  183. package/dist/mcpInstalarChaveCommand.js +0 -168
  184. package/dist/mcpInstalarChaveCommand.js.map +0 -1
  185. package/dist/mcpRemoto.d.ts +0 -32
  186. package/dist/mcpRemoto.js +0 -61
  187. package/dist/mcpRemoto.js.map +0 -1
  188. package/dist/mcp_chave.d.ts +0 -1
  189. package/dist/mcp_chave.js +0 -4
  190. package/dist/mcp_chave.js.map +0 -1
  191. package/dist/profileArtefatoBase.js.map +0 -1
  192. package/dist/profileArtefatoValidadores.js.map +0 -1
  193. package/dist/profileAuthorCommand.js.map +0 -1
  194. package/dist/profileAuthorTipos.js.map +0 -1
  195. package/dist/profileCatalogo.js.map +0 -1
  196. package/dist/profileCommand.js.map +0 -1
  197. package/dist/profileI18nCatalogo.js.map +0 -1
  198. package/dist/profileI18nVisivel.js.map +0 -1
  199. package/dist/profileOrquestracao.js.map +0 -1
  200. package/dist/profileRegras.js.map +0 -1
  201. package/dist/profileRulePacks.js.map +0 -1
  202. package/dist/profiles/validate.js.map +0 -1
  203. package/dist/projeto.js.map +0 -1
  204. package/dist/projetoBusca.js.map +0 -1
  205. package/dist/projetoCarregar.js.map +0 -1
  206. package/dist/projetoConfig.js.map +0 -1
  207. package/dist/projetoLegado.js.map +0 -1
  208. package/dist/projetoOrigens.js.map +0 -1
  209. package/dist/projetoResolucao.js.map +0 -1
  210. package/dist/projetoTipos.js.map +0 -1
  211. package/dist/python-http.js.map +0 -1
  212. package/dist/runnerValidacaoRemota.d.ts +0 -9
  213. package/dist/runnerValidacaoRemota.js +0 -9
  214. package/dist/runnerValidacaoRemota.js.map +0 -1
  215. package/dist/runnerValidacaoRemotaBateria.d.ts +0 -10
  216. package/dist/runnerValidacaoRemotaBateria.js +0 -117
  217. package/dist/runnerValidacaoRemotaBateria.js.map +0 -1
  218. package/dist/runnerValidacaoRemotaCli.d.ts +0 -4
  219. package/dist/runnerValidacaoRemotaCli.js +0 -86
  220. package/dist/runnerValidacaoRemotaCli.js.map +0 -1
  221. package/dist/runnerValidacaoRemotaComandos.d.ts +0 -7
  222. package/dist/runnerValidacaoRemotaComandos.js +0 -123
  223. package/dist/runnerValidacaoRemotaComandos.js.map +0 -1
  224. package/dist/runnerValidacaoRemotaEscopo.d.ts +0 -4
  225. package/dist/runnerValidacaoRemotaEscopo.js +0 -79
  226. package/dist/runnerValidacaoRemotaEscopo.js.map +0 -1
  227. package/dist/runnerValidacaoRemotaExecucao.d.ts +0 -2
  228. package/dist/runnerValidacaoRemotaExecucao.js +0 -104
  229. package/dist/runnerValidacaoRemotaExecucao.js.map +0 -1
  230. package/dist/runnerValidacaoRemotaRelatorio.d.ts +0 -3
  231. package/dist/runnerValidacaoRemotaRelatorio.js +0 -95
  232. package/dist/runnerValidacaoRemotaRelatorio.js.map +0 -1
  233. package/dist/runnerValidacaoRemotaServidor.d.ts +0 -4
  234. package/dist/runnerValidacaoRemotaServidor.js +0 -185
  235. package/dist/runnerValidacaoRemotaServidor.js.map +0 -1
  236. package/dist/runnerValidacaoRemotaSnapshot.d.ts +0 -10
  237. package/dist/runnerValidacaoRemotaSnapshot.js +0 -219
  238. package/dist/runnerValidacaoRemotaSnapshot.js.map +0 -1
  239. package/dist/runnerValidacaoRemotaTipos.d.ts +0 -158
  240. package/dist/runnerValidacaoRemotaTipos.js +0 -35
  241. package/dist/runnerValidacaoRemotaTipos.js.map +0 -1
  242. package/dist/runnerValidacaoRemotaUtil.d.ts +0 -3
  243. package/dist/runnerValidacaoRemotaUtil.js +0 -18
  244. package/dist/runnerValidacaoRemotaUtil.js.map +0 -1
  245. package/dist/runnerValidacaoRemotaWorkspace.d.ts +0 -2
  246. package/dist/runnerValidacaoRemotaWorkspace.js +0 -115
  247. package/dist/runnerValidacaoRemotaWorkspace.js.map +0 -1
  248. package/dist/rust-http.js.map +0 -1
  249. package/dist/semaChatCommand.d.ts +0 -1
  250. package/dist/semaChatCommand.js +0 -43
  251. package/dist/semaChatCommand.js.map +0 -1
  252. package/dist/semaChatRuntime.d.ts +0 -23
  253. package/dist/semaChatRuntime.js +0 -202
  254. package/dist/semaChatRuntime.js.map +0 -1
  255. package/dist/sync/index.js.map +0 -1
  256. package/dist/textoListas.js.map +0 -1
  257. package/dist/tipos.js.map +0 -1
  258. package/dist/typescript-http-body.js.map +0 -1
  259. package/dist/typescript-http-expressoes.js.map +0 -1
  260. package/dist/typescript-http-modelos.js.map +0 -1
  261. package/dist/typescript-http-rotas.js.map +0 -1
  262. package/dist/typescript-http-semantica.js.map +0 -1
  263. package/dist/typescript-http.js.map +0 -1
  264. package/docs/AGENT_STARTER.md +0 -147
  265. package/docs/agentes-por-capacidade.md +0 -130
  266. package/docs/api.md +0 -82
  267. package/docs/comandos.md +0 -807
  268. package/docs/como-ensinar-a-sema-para-ia.md +0 -30
  269. package/docs/documentacao.md +0 -74
  270. package/docs/extensao-vscode.md +0 -49
  271. package/docs/fluxo-pratico-ia-sema.md +0 -278
  272. package/docs/instalacao-e-primeiro-uso.md +0 -60
  273. package/docs/integracao-com-ia.md +0 -44
  274. package/docs/mcp.md +0 -69
  275. package/docs/pagamento-ponta-a-ponta.md +0 -171
  276. package/docs/persistencia-vendor-first.md +0 -151
  277. package/docs/prompt-base-ia-sema.md +0 -111
  278. package/docs/seguranca.md +0 -126
  279. package/docs/sintaxe.md +0 -390
  280. package/llms-full.txt +0 -40
  281. package/llms.txt +0 -23
package/docs/env.md CHANGED
@@ -1,115 +1,14 @@
1
- # Env
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
- Ambiente necessário para publicar a Sema.
10
-
11
- ## Ferramentas
12
-
13
- - Node.js LTS com `npm`.
14
- - Git com acesso ao repositório privado.
15
- - VS Code CLI (`code`) para instalar a VSIX localmente.
16
- - PowerShell no Windows.
17
-
18
- ## Variaveis suportadas pelos instaladores
1
+ # Environment
19
2
 
20
- - `SEMA_NPM_PACKAGE`: pacote da CLI. Padrão: `@semacode/cli`.
21
- - `SEMA_VERSION`: versão usada pelo `install-sema.sh`. Padrão: `latest`.
22
- - `SEMA_VSIX_PATH`: caminho privado/local para a VSIX quando usar `--with-vscode`.
23
-
24
- No PowerShell, o instalador recebe a versão por parametro:
25
-
26
- ```powershell
27
- .\install-sema.ps1 -Version 1.5.48 -WithVSCode
28
- ```
29
-
30
- No shell:
31
-
32
- ```bash
33
- SEMA_VERSION=1.5.48 ./install-sema.sh --with-vscode
34
- ```
35
-
36
- ## Credenciais
37
-
38
- - NPM deve estar logado antes de publicar: `npm whoami`.
39
- - Nunca registre tokens em docs, logs ou release notes.
40
-
41
- ## Registro NPM
42
-
43
- O pacote público é:
44
-
45
- - `@semacode/cli`
46
-
47
- Antes de publicar, confira:
48
-
49
- ```bash
50
- npm view @semacode/cli version
51
- npm run release:verificar-versao
52
- ```
53
-
54
- ## Cliente MCP remoto
55
-
56
- Variaveis usadas por Codex, VS Code/forks e clientes que aceitam bearer:
57
-
58
- - `SEMA_MCP_AUTH_TOKEN`: chave comercial `sema_mcp_*` gerada no painel. E do cliente, nao do servidor.
59
- - `SEMA_MCP_ENDPOINT`: URL HTTPS `/mcp` usada por clientes que leem endpoint por variavel.
60
-
61
- No Windows, instale sem expor a chave em argumento:
62
-
63
- ```powershell
64
- Get-Clipboard | sema mcp-instalar-chave --stdin --json
65
- ```
66
-
67
- ## Servidor MCP remoto privado
68
-
69
- Variaveis usadas pelo servidor MCP privado quando roda em modo HTTP:
70
-
71
- - `MCP_PORT`: porta HTTP. Quando ausente, o MCP roda em `stdio`.
72
- - `MCP_HOST`: host de bind. Padrão: `0.0.0.0`.
73
- - `SEMA_MCP_PUBLIC_BASE_URL`: URL pública HTTPS usada nos metadados OAuth do ChatGPT.
74
- - `SEMA_MCP_OAUTH_SECRET`: segredo usado para assinar access/refresh tokens OAuth.
75
- - `SEMA_MCP_OAUTH_PASSCODE`: fallback local/laboratorio; em MCP publico ou `production`, bloqueia o boot.
76
- - `SEMA_MCP_PROJECT_ROOTS`: raizes permitidas para projetos, separadas por `;`.
77
- - `SEMA_MCP_CORS_ORIGIN`: origem CORS permitida, lista separada por `;`. Nao use `*` em MCP publico ou `production`.
78
- - `SEMA_SUPABASE_URL`: URL do control plane Supabase usado para OAuth e billing.
79
- - `SEMA_SUPABASE_ANON_KEY` ou `SEMA_SUPABASE_PUBLISHABLE_KEY`: chave publica do Supabase para RPCs de OAuth/billing.
80
- - `SEMA_MCP_BILLING_DISABLED`: somente laboratorio local; em MCP publico ou `production`, bloqueia o boot.
81
- - `SEMA_MCP_MAX_CONTRACT_FILE_BYTES`: limite por contrato `.sema` enviado por snapshot ou conteudo inline. Padrao: `262144`.
82
- - `SEMA_MCP_MAX_CODE_FILE_BYTES`: limite por arquivo de codigo selecionado enviado por snapshot. Padrao: `262144`.
83
- - `SEMA_MCP_MAX_DOC_FILE_BYTES`: limite por arquivo de documentacao enviado por snapshot. Padrao: `262144`.
84
- - `SEMA_MCP_MAX_CODE_FILES`: limite de arquivos de codigo selecionado por snapshot. Padrao: `80`.
85
- - `SEMA_MCP_MAX_DOC_FILES`: limite de arquivos de documentacao por snapshot. Padrao: `80`.
86
-
87
- Exemplo operacional privado:
88
-
89
- ```bash
90
- MCP_PORT=3333 \
91
- SEMA_MCP_PUBLIC_BASE_URL="https://sema.exemplo.com" \
92
- SEMA_MCP_OAUTH_SECRET="segredo-longo-para-oauth" \
93
- SEMA_SUPABASE_URL="https://projeto.supabase.co" \
94
- SEMA_SUPABASE_PUBLISHABLE_KEY="sb_publishable_..." \
95
- SEMA_MCP_PROJECT_ROOTS="/srv/sema/projetos" \
96
- SEMA_MCP_MAX_CONTRACT_FILE_BYTES=262144 \
97
- SEMA_MCP_MAX_CODE_FILE_BYTES=262144 \
98
- SEMA_MCP_MAX_DOC_FILE_BYTES=262144
99
- ```
100
-
101
- Nunca publique `/mcp` ou `/sse` na internet sem billing habilitado, Supabase de billing configurado, chave comercial bearer por request ou OAuth com conta Sema, raiz restrita e HTTPS no proxy. Nunca registre chaves `sema_mcp_*`, OAuth secret ou passcode em docs publicas, logs, release notes ou screenshots.
102
-
103
- O limite de bytes e validado antes de gravar espelhos remotos ou executar contratos inline. Clientes MCP devem respeitar o limite anunciado no schema da ferramenta e dividir snapshots grandes em arquivos focados, sem enviar repositorio inteiro.
104
-
105
- ## Distribuição
3
+ The public Sema CLI should work without private service credentials.
106
4
 
107
- A Sema não tem repositório público de produto nem GitHub Release pública. O npm fica restrito ao instalador/cliente `@semacode/cli`.
108
-
109
- Depois de empacotar ou publicar o instalador, rode:
5
+ Allowed public examples may use placeholders:
110
6
 
111
7
  ```bash
112
- node scripts/verificar-distribuicao-publica.mjs --json
8
+ EXAMPLE_API_KEY=replace-me
113
9
  ```
114
10
 
115
- Esse check cruza manifestos, npm e CLI local, além de garantir que GitHub Release pública e assets abertos de produto continuam bloqueados.
11
+ Do not publish private or sensitive operational material in public Sema docs.
12
+
13
+ If an application governed by Sema needs environment variables, document them in
14
+ that application repository.
@@ -0,0 +1,41 @@
1
+ # User Experience Quality
2
+
3
+ When Sema governs a UI, dashboard, app, site, game, or terminal tool, the
4
+ experience must be modern, contextual, and verified. This is a quality gate, not
5
+ decoration.
6
+
7
+ ## Before Building
8
+
9
+ Define:
10
+
11
+ - audience and domain
12
+ - primary workflow
13
+ - density and information hierarchy
14
+ - interaction states
15
+ - responsive behavior
16
+ - accessibility basics
17
+ - evidence needed before closing
18
+
19
+ ## Browser Evidence
20
+
21
+ For web UI, check desktop and mobile. On a narrow viewport such as 390px, this
22
+ must be true:
23
+
24
+ ```js
25
+ document.documentElement.scrollWidth <= document.documentElement.clientWidth
26
+ ```
27
+
28
+ Fix overlapping text, broken wrapping, hidden controls, and incoherent layout
29
+ before closing the change.
30
+
31
+ ## Terminal Evidence
32
+
33
+ For CLI/TUI work, smoke-check:
34
+
35
+ - `--help`
36
+ - success output
37
+ - error output
38
+ - JSON output when supported
39
+
40
+ The public Sema CLI itself must stay local-only and must not depend on private
41
+ or sensitive operational material for these checks.
@@ -0,0 +1,33 @@
1
+ # Installation And First Use
2
+
3
+ Sema is installed and used as a local CLI.
4
+
5
+ ```bash
6
+ npm install -g @semacode/cli
7
+ sema --version
8
+ sema preflight resumo --json
9
+ ```
10
+
11
+ Proceed only when `preflight` returns `decisao: "use_cli_local"`.
12
+
13
+ ## First Project
14
+
15
+ ```bash
16
+ sema iniciar --template base
17
+ sema validar contratos/*.sema --json
18
+ sema resumo
19
+ ```
20
+
21
+ ## Existing Project
22
+
23
+ ```bash
24
+ sema resumo
25
+ sema docs-impacto --intencao "describe the change" --json
26
+ sema inspecionar contratos/example.sema --json
27
+ sema drift contratos/example.sema --escopo modulo --json
28
+ sema impacto contratos/example.sema --alvo sema.example.target --mudanca "describe the change" --json
29
+ ```
30
+
31
+ The public CLI does not require private service credentials.
32
+
33
+ Support: suporte@otimitare.online
package/docs/i18n.md ADDED
@@ -0,0 +1,15 @@
1
+ # Language And Identifiers
2
+
3
+ Public Sema documentation is English.
4
+
5
+ Do not translate commands, file paths, package names, endpoint paths, environment
6
+ variable names, code symbols, DSL keywords, or brand names.
7
+
8
+ Examples:
9
+
10
+ - Keep `sema validar`, not an English paraphrase.
11
+ - Keep `.sema`, `task`, `input`, `output`, `rules`, `effects`, and `guarantees`.
12
+ - Keep package names such as `@semacode/cli`.
13
+
14
+ Human-facing prose should be clear English. Contract DSL can keep its own
15
+ keywords and domain identifiers.
@@ -0,0 +1,43 @@
1
+ # Profiles
2
+
3
+ Profiles are local validation layers for domains where syntax alone is not
4
+ enough. They use the same `.sema` DSL and do not create a second language.
5
+
6
+ ## Principle
7
+
8
+ A profile checks whether a contract is strong enough for a specific kind of
9
+ work. It can require:
10
+
11
+ - contract-first workflow;
12
+ - domain core fields;
13
+ - required rules, effects, guarantees, and tests;
14
+ - explicit forbidden behavior;
15
+ - evidence before closing the change.
16
+
17
+ When a profile returns `bloqueado: true`, the artifact is not approved.
18
+
19
+ ## Commands
20
+
21
+ ```bash
22
+ sema profile capabilities --json
23
+ sema profile validar software contratos/example.sema --maturidade production --preset default --json
24
+ sema rule-packs --profile software --json
25
+ ```
26
+
27
+ ## Built-In Profiles
28
+
29
+ - `software`: code, APIs, modules, refactors, persistence, and generated output.
30
+ - `workflow`: automations, queues, webhooks, scheduled jobs, and orchestration.
31
+ - `ops`: deploy plans, rollback, incidents, runbooks, and operational evidence.
32
+ - `legal`: terms, privacy, compliance, risk, and regulated language.
33
+ - `research`: comparisons, uncertainty, evidence, citations, and decisions.
34
+ - `game`: rules, loops, player states, scoring, and playability checks.
35
+ - `author`: creative writing, narrative continuity, cliche review, and style
36
+ guardrails.
37
+ - `proposal`: commercial proposals, scope clarity, deliverables, constraints,
38
+ and client-ready wording.
39
+ - `sales`: customer conversation guardrails, escalation, pricing promises, and
40
+ channel changes.
41
+
42
+ Profiles are local CLI checks. They do not create or require external service
43
+ accounts.
@@ -1,69 +1,27 @@
1
- # Repository Boundary
1
+ # Repository Boundary
2
2
 
3
- <!-- sema:i18n -->
4
- > EN: English first.
5
- > PT: Português depois.
6
- > ES: Español al final.
3
+ The public Sema repository should contain only the local CLI, runtime packages,
4
+ examples, tests that run locally, and English documentation.
7
5
 
8
- ## English
6
+ ## Public
9
7
 
10
- Sema is private by default and private end to end, with one npm installation channel for the governed client: `@semacode/cli`. There is no public product repository, no public MCP package surface, no public GitHub Release, 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/`.
8
+ - local CLI source
9
+ - contract parser and validators
10
+ - local drift and impact tooling
11
+ - local code generators
12
+ - examples
13
+ - English docs
14
+ - local package scripts
13
15
 
14
- The operating model is:
16
+ ## Not Public
15
17
 
16
- - The CLI is distributed through the npm installer/client `@semacode/cli`, then acts as the governed local executor for IDEs: it reads contracts, validates, checks drift, builds AI-first context, and runs `sema preflight resumo --json` against the SEMAS control plane before local action.
17
- - Local IDEs use the complete CLI and a local key. The agent must run `sema --version`; if missing, it asks the human to install from the Sema panel. Stop unless `decisao=use_cli_local`. Do not use remote MCP, `sema_sync`, `sema_contratos_sincronizar`, or `sema mcp-client` to read a local workspace.
18
- - The private MCP is the web/chat coordinator: it authenticates remote clients, selects the right server project or mirror, charges SEMAS, decides the required contract/profile flow, and returns the operational verdict.
19
- - 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/...`.
18
+ - private or sensitive operational material
19
+ - real credentials, environment files, or secret inventories
20
+ - private project data or generated private artifacts
20
21
 
21
- Distribution outside the private boundary is allowed only for the governed CLI installer. If a script tries to publish the MCP server, product release assets, secrets, control-plane code, GitHub Release, or any public package outside `@semacode/cli`, it must fail before any artifact is created.
22
+ ## Commercial Use
22
23
 
23
- Use the private boundary check:
24
+ The public Sema source may not be copied, rebranded, bundled, or replicated for
25
+ commercial resale without written permission from OtimiTare.
24
26
 
25
- ```bash
26
- npm run repo:verificar-privado
27
- ```
28
-
29
- ## Português
30
-
31
- O Sema é privado por padrao e privado de ponta a ponta, com um canal npm para o cliente governado: `@semacode/cli`. Não existe repositório público de produto, superfície MCP pública como pacote aberto, GitHub Release pública nem divisão ativa entre `public/` e `private/`.
32
-
33
- A árvore ativa vive na raiz do repositório: `contratos/`, `pacotes/`, `mcp/`, `site/`, `supabase/`, `deploy/`, `docs/`, `scripts/` e `testes/`.
34
-
35
- O modelo operacional é:
36
-
37
- - A CLI é distribuída pelo instalador/cliente npm `@semacode/cli` e depois atua como executor local governado para IDEs: lê contratos, valida, mede drift, monta contexto IA-first e roda `sema preflight resumo --json` contra o control plane de SEMAS antes de agir localmente.
38
- - IDEs locais usam a CLI completa e uma chave local. O agente deve rodar `sema --version`; se faltar, deve pedir ao humano para instalar pelo painel Sema. Pare se `decisao` não for `use_cli_local`. Não use MCP remoto, `sema_sync`, `sema_contratos_sincronizar` nem `sema mcp-client` para ler workspace local.
39
- - O MCP privado é o coordenador web/chat: autentica clientes remotos, escolhe o projeto ou espelho de servidor correto, cobra SEMAS, decide o fluxo de contrato/profile obrigatório e devolve o veredito operacional.
40
- - Chats web continuam suportados porque o MCP privado mantém uma CLI instalada na VPS e executa contra espelhos autorizados em `/srv/sema/projetos/...`.
41
-
42
- Distribuição fora da fronteira privada só é permitida para o instalador CLI governado. Se algum script tentar publicar o servidor MCP, assets de release de produto, segredos, control plane, GitHub Release ou qualquer pacote público 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 es privado de punta a punta, con un canal npm para el cliente gobernado: `@semacode/cli`. No existe repositorio público de producto, superficie MCP pública como paquete abierto, GitHub Release pública ni división activa entre `public/` y `private/`.
53
-
54
- El árbol activo vive en la raíz del repositorio: `contratos/`, `pacotes/`, `mcp/`, `site/`, `supabase/`, `deploy/`, `docs/`, `scripts/` y `testes/`.
55
-
56
- El modelo operativo es:
57
-
58
- - La CLI se distribuye por el instalador/cliente npm `@semacode/cli` y luego actúa como ejecutor local gobernado para IDEs: lee contratos, valida, mide drift, prepara contexto IA-first y ejecuta `sema preflight resumo --json` contra el control plane de SEMAS antes de actuar localmente.
59
- - Las IDEs locales usan la CLI completa y una clave local. El agente debe ejecutar `sema --version`; si falta, debe pedir al humano que instale desde el panel Sema. Para si `decisao` no es `use_cli_local`. No uses el MCP remoto, `sema_sync`, `sema_contratos_sincronizar` ni `sema mcp-client` para leer un workspace local.
60
- - El MCP privado es el coordinador web/chat: autentica clientes remotos, elige el proyecto o espejo de servidor correcto, cobra SEMAS, decide el flujo obligatorio de contrato/profile y devuelve el veredicto operativo.
61
- - 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/...`.
62
-
63
- La distribución fuera de la frontera privada solo se permite para el instalador CLI gobernado. Si un script intenta publicar el servidor MCP, assets de release de producto, secretos, control plane, GitHub Release o cualquier paquete público 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
- ```
27
+ Support: suporte@otimitare.online
package/docs/rollback.md CHANGED
@@ -1,24 +1,13 @@
1
- # Rollback Privado
1
+ # Rollback Boundary
2
2
 
3
- <!-- sema:i18n -->
4
- > EN: English first.
5
- > PT: Português depois, com acentos preservados.
6
- > ES: Español al final.
3
+ Public Sema rollback guidance is limited to local files and npm package
4
+ artifacts.
7
5
 
8
- ## English
6
+ For public package work:
9
7
 
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`.
8
+ 1. Keep the previous tarball until the new one passes smoke tests.
9
+ 2. Rebuild with `npm run cli:empacotar-publica`.
10
+ 3. Re-run `node scripts/testar-pacote-cli-publico.mjs`.
11
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.
12
+ Do not publish private or sensitive operational rollback material in this
13
+ repository.
@@ -0,0 +1,24 @@
1
+ # Security
2
+
3
+ The public Sema repository must not contain private or sensitive operational
4
+ material.
5
+
6
+ Do not publish:
7
+
8
+ - real credentials or secret material;
9
+ - private data or internal operational artifacts.
10
+
11
+ Placeholder examples are allowed:
12
+
13
+ ```bash
14
+ EXAMPLE_KEY=replace-me
15
+ ```
16
+
17
+ If a real credential is exposed in code, docs, logs, screenshots, packages, or
18
+ Git history:
19
+
20
+ 1. Rotate it immediately.
21
+ 2. Remove it from the affected artifact.
22
+ 3. Rebuild and rescan before publishing.
23
+
24
+ Official support: suporte@otimitare.online
@@ -0,0 +1,8 @@
1
+ # Support
2
+
3
+ Official Sema support email: suporte@otimitare.online
4
+
5
+ OtimiTare website: https://otimitare.online
6
+
7
+ Do not publish private or sensitive support routing material in the public Sema
8
+ repository.
package/docs/syntax.md ADDED
@@ -0,0 +1,128 @@
1
+ <!-- sema:agent-entrypoint:start -->
2
+ # Sema Syntax for AI Agents
3
+
4
+ Use this file as a compact reference before creating or fixing `.sema` contracts.
5
+
6
+ ## Golden Rule
7
+
8
+ Contract comes before code. Before writing `.sema`, read the local examples in `exemplos/`.
9
+
10
+ ## Minimal Example
11
+
12
+ ```sema
13
+ module app.example {
14
+ entity Item {
15
+ fields {
16
+ id: Id
17
+ name: Texto
18
+ active: Booleano
19
+ }
20
+ }
21
+
22
+ task create_item {
23
+ input {
24
+ name: Texto required
25
+ }
26
+ output {
27
+ item: Item
28
+ }
29
+ rules {
30
+ name deve_ser preenchido
31
+ }
32
+ effects {
33
+ persistencia Item
34
+ auditoria item_created
35
+ }
36
+ guarantees {
37
+ item existe
38
+ }
39
+ tests {
40
+ caso "creates valid item" {
41
+ given { name: "Item" }
42
+ expect { sucesso: verdadeiro }
43
+ }
44
+ }
45
+ }
46
+ }
47
+ ```
48
+
49
+ ## Common Blocks
50
+
51
+ - `docs`: module summary and notes.
52
+ - `entity`: domain model.
53
+ - `task`: governed operation.
54
+ - `input` and `output`: input and output contracts.
55
+ - `rules`: validations and business rules.
56
+ - `effects`: persistence, reads, events, audit, and external calls.
57
+ - `guarantees`: what the task must provide after success.
58
+ - `error`: named errors and messages.
59
+ - `tests`: minimal behavior examples.
60
+ - `route`: public surface linked to a task.
61
+ - `impl` and `vinculos`: links between the contract and real code.
62
+
63
+ ## Canonical `use` and `impl` Origins
64
+
65
+ Use these origins before inventing a new one:
66
+
67
+ - `ts` ou `typescript`
68
+ - `js` ou `javascript`
69
+ - `py` ou `python`
70
+ - `dart`
71
+ - `lua`
72
+ - `cs` ou `dotnet`
73
+ - `java`
74
+ - `go`
75
+ - `rust`
76
+ - `cpp`
77
+
78
+ Examples:
79
+
80
+ ```sema
81
+ use javascript app.web.expenses
82
+
83
+ impl {
84
+ js: src.app.saveExpense
85
+ }
86
+ ```
87
+
88
+ `sema compilar --alvo javascript` defines a generation target. `impl { js: ... }` defines the live-code origin linked to the contract. They are different layers and both are valid.
89
+
90
+ ## Small Canonical Lists
91
+
92
+ - `effects`: `persistencia`, `consulta`, `evento`, `auditoria`, `db.write`, `queue.publish`, `fs.write`, `network.egress`, `secret.read`, `shell.exec`.
93
+ - `audit.motivo`: `obrigatorio`, `opcional`, `dispensado`.
94
+
95
+ ## Contract Size
96
+
97
+ - up to 300 lines: healthy
98
+ - 301-500 lines: diagnostic warning, plan a split
99
+ - above 500: blocks creation, edits, drift, finalization, generation, and snapshots
100
+ - split by real domain/capability, such as `expenses_entry.sema`, `expenses_totals.sema`, `expenses_persistence.sema`
101
+ - never use `parte_1`, `parte_2`, `part_3`, or equivalent names
102
+ - do not remove `guarantees`, `tests`, `authz`, `dados`, or `vinculos` just to fit under the limit
103
+ - multiple `.sema` contracts may govern the same code file through `vinculos`; this is expected
104
+
105
+ ## JavaScript Is Supported
106
+
107
+ The CLI supports JavaScript generation:
108
+
109
+ ```bash
110
+ sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
111
+ ```
112
+
113
+ The project can also generate TypeScript, Python, Dart, Lua, HTML, and CSS when those targets are enabled in `sema.config.json`.
114
+
115
+ ## Support Files
116
+
117
+ - `AGENTS.md`: required agent rules.
118
+ - `SEMA_BOOT.md`: first read for every AI agent.
119
+ - `SEMA_SMALL_MODEL.md`: short version for weaker agents.
120
+ - `AGENT_CONTEXT_PACK.json`: structured agent context pack.
121
+ - `SEMA_INDEX.json`: project index.
122
+ - `docs/commands.md`: command catalog, gates, and `--saida` rule.
123
+ - `exemplos/`: official DSL examples.
124
+
125
+ If an AI agent does not know which shape to use, it must open `exemplos/calculadora.sema`, `exemplos/crud_simples.sema`, `exemplos/pagamento.sema`, or `exemplos/tratamento_erro.sema` before inventing syntax.
126
+
127
+ Platform policy: O Sema governa contrato, escopo, drift, evidência e qualidade do projeto. Ele não pede, não autoriza e não contorna políticas da plataforma, termos de uso, permissões, segurança ou leis.
128
+ <!-- sema:agent-entrypoint:end -->
@@ -0,0 +1,17 @@
1
+ # Testing
2
+
3
+ Public Sema tests should run locally.
4
+
5
+ Recommended checks:
6
+
7
+ ```bash
8
+ npm run build
9
+ node pacotes/cli/dist/index.js --help
10
+ node pacotes/cli/dist/index.js preflight resumo --json
11
+ node pacotes/cli/dist/index.js validar exemplos/calculadora.sema --json
12
+ npm run cli:empacotar-publica
13
+ node scripts/testar-pacote-cli-publico.mjs
14
+ ```
15
+
16
+ Do not require private or sensitive operational material for public test
17
+ evidence.
@@ -0,0 +1,28 @@
1
+ # Sema Vocabulary
2
+
3
+ Use consistent English prose in public docs while preserving technical
4
+ identifiers.
5
+
6
+ ## Canonical Concepts
7
+
8
+ - semantic contract
9
+ - drift
10
+ - impact map
11
+ - governed code
12
+ - traceability
13
+ - preflight
14
+ - finalization
15
+ - evidence
16
+ - local CLI
17
+
18
+ ## Do Not Translate
19
+
20
+ - commands: `sema validar`, `sema drift`, `sema impacto`
21
+ - files: `AGENTS.md`, `SEMA_BOOT.md`, `SEMA_INDEX.json`
22
+ - DSL keywords: `task`, `input`, `output`, `rules`, `effects`, `guarantees`
23
+ - package names: `@semacode/cli`
24
+ - code symbols and environment variable names
25
+
26
+ ## Public Support
27
+
28
+ Use suporte@otimitare.online for support references.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-css",
3
- "version": "1.5.48",
3
+ "version": "1.5.52",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-dart",
3
- "version": "1.5.48",
3
+ "version": "1.5.52",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-html",
3
- "version": "1.5.48",
3
+ "version": "1.5.52",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-javascript",
3
- "version": "1.5.48",
3
+ "version": "1.5.52",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -181,6 +181,16 @@ function gerarPreparacaoSaida(task) {
181
181
  ajustes.push(` saida["diacriticos_preservados"] = true`);
182
182
  }
183
183
  }
184
+ if (camposEntrada.has("drift")) {
185
+ precondicoes.push(` local drift_texto = tostring(entrada["drift"] or ""):lower()`);
186
+ precondicoes.push(` if drift_texto:find("sucesso:false", 1, true) or drift_texto:find("vinculos_quebrados", 1, true) or drift_texto:find("rotas_divergentes", 1, true) then return nil end`);
187
+ }
188
+ if (campoArtefatoI18n) {
189
+ precondicoes.push(` local artefato_responsivo = tostring(entrada[${JSON.stringify(campoArtefatoI18n)}] or "")`);
190
+ precondicoes.push(` local scroll_width = tonumber(artefato_responsivo:match("scrollWidth%s*(%d+)"))`);
191
+ precondicoes.push(` local client_width = tonumber(artefato_responsivo:match("clientWidth%s*(%d+)"))`);
192
+ precondicoes.push(` if scroll_width ~= nil and client_width ~= nil and scroll_width > client_width then return nil end`);
193
+ }
184
194
  for (const garantia of task.garantiasEstruturadas) {
185
195
  if (garantia.tipo === "pertencimento" && garantia.valores && camposSaida.has(garantia.alvo)) {
186
196
  ajustes.push(` saida[${JSON.stringify(garantia.alvo)}] = ${formatarValorLua(garantia.valores[0] ?? "", camposSaida, "saida")}`);