@semacode/cli 1.5.18 → 1.5.19

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 (93) hide show
  1. package/AGENTS.md +268 -260
  2. package/LICENSE +22 -22
  3. package/README.md +144 -104
  4. package/SEMA_BRIEF.curto.txt +7 -5
  5. package/SEMA_BRIEF.md +60 -4
  6. package/SEMA_BRIEF.micro.txt +6 -4
  7. package/SEMA_INDEX.json +917 -41
  8. package/dist/controleComercialSupabase.d.ts +326 -0
  9. package/dist/controleComercialSupabase.js +310 -0
  10. package/dist/controleComercialSupabase.js.map +1 -0
  11. package/dist/docs.js +48 -20
  12. package/dist/docs.js.map +1 -1
  13. package/dist/drift.d.ts +5 -3
  14. package/dist/drift.js +123 -14
  15. package/dist/drift.js.map +1 -1
  16. package/dist/index.js +1889 -38
  17. package/dist/index.js.map +1 -1
  18. package/dist/mcpRemoto.d.ts +32 -0
  19. package/dist/mcpRemoto.js +61 -0
  20. package/dist/mcpRemoto.js.map +1 -0
  21. package/dist/projeto.js +3 -1
  22. package/dist/projeto.js.map +1 -1
  23. package/docs/AGENT_STARTER.md +103 -97
  24. package/docs/cli.md +175 -106
  25. package/docs/como-ensinar-a-sema-para-ia.md +41 -35
  26. package/docs/deploy.md +231 -43
  27. package/docs/documentacao.md +61 -36
  28. package/docs/env.md +105 -56
  29. package/docs/extensao-vscode.md +12 -4
  30. package/docs/fluxo-pratico-ia-sema.md +182 -176
  31. package/docs/instalacao-e-primeiro-uso.md +52 -30
  32. package/docs/integracao-com-ia.md +108 -101
  33. package/docs/mcp.md +292 -51
  34. package/docs/pagamento-ponta-a-ponta.md +34 -28
  35. package/docs/persistencia-vendor-first.md +11 -5
  36. package/docs/prompt-base-ia-sema.md +13 -7
  37. package/docs/rollback.md +17 -15
  38. package/docs/sintaxe.md +180 -174
  39. package/exemplos/agendamento.sema +105 -105
  40. package/exemplos/assinatura.sema +133 -133
  41. package/exemplos/auditoria.sema +89 -89
  42. package/exemplos/autenticacao.sema +125 -125
  43. package/exemplos/author_obra_comum.sema +294 -0
  44. package/exemplos/author_tema_sensivel.sema +264 -0
  45. package/exemplos/automacao.sema +107 -107
  46. package/exemplos/cadastro_usuario.sema +54 -54
  47. package/exemplos/calculadora.sema +78 -78
  48. package/exemplos/crud_simples.sema +89 -89
  49. package/exemplos/estoque.sema +127 -127
  50. package/exemplos/exportacao.sema +94 -94
  51. package/exemplos/fila.sema +130 -130
  52. package/exemplos/integracao_externa.sema +94 -94
  53. package/exemplos/multi_tenant.sema +140 -140
  54. package/exemplos/notificacao.sema +149 -149
  55. package/exemplos/operacao_estrategia.sema +633 -633
  56. package/exemplos/pagamento.sema +434 -434
  57. package/exemplos/pagamento_dominio.sema +35 -35
  58. package/exemplos/pedido.sema +255 -255
  59. package/exemplos/permissao.sema +121 -121
  60. package/exemplos/persistencia_vendor_first.sema +86 -86
  61. package/exemplos/profile_game.sema +114 -0
  62. package/exemplos/profile_legal.sema +105 -0
  63. package/exemplos/profile_ops.sema +110 -0
  64. package/exemplos/profile_research.sema +104 -0
  65. package/exemplos/profile_software.sema +123 -0
  66. package/exemplos/profile_workflow_n8n.sema +99 -0
  67. package/exemplos/relatorio.sema +93 -93
  68. package/exemplos/replica_analitica_erp.sema +160 -160
  69. package/exemplos/testes_embutidos.sema +45 -45
  70. package/exemplos/tratamento_erro.sema +157 -157
  71. package/exemplos/upload_arquivo.sema +93 -93
  72. package/exemplos/webhook.sema +94 -94
  73. package/llms-full.txt +34 -34
  74. package/llms.txt +17 -17
  75. package/node_modules/@sema/gerador-css/dist/index.js +563 -563
  76. package/node_modules/@sema/gerador-css/package.json +1 -1
  77. package/node_modules/@sema/gerador-dart/package.json +1 -1
  78. package/node_modules/@sema/gerador-html/dist/index.js +90 -90
  79. package/node_modules/@sema/gerador-html/package.json +1 -1
  80. package/node_modules/@sema/gerador-javascript/dist/index.js +92 -92
  81. package/node_modules/@sema/gerador-javascript/package.json +1 -1
  82. package/node_modules/@sema/gerador-lua/dist/index.js +53 -53
  83. package/node_modules/@sema/gerador-lua/package.json +1 -1
  84. package/node_modules/@sema/gerador-python/dist/index.js +122 -96
  85. package/node_modules/@sema/gerador-python/dist/index.js.map +1 -1
  86. package/node_modules/@sema/gerador-python/package.json +1 -1
  87. package/node_modules/@sema/gerador-typescript/dist/index.js +153 -153
  88. package/node_modules/@sema/gerador-typescript/package.json +1 -1
  89. package/node_modules/@sema/nucleo/dist/formatador/index.js +12 -4
  90. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
  91. package/node_modules/@sema/nucleo/package.json +1 -1
  92. package/node_modules/@sema/padroes/package.json +1 -1
  93. package/package.json +11 -11
package/docs/deploy.md CHANGED
@@ -1,70 +1,258 @@
1
1
  # Deploy
2
2
 
3
- Este runbook governa a publicacao publica da Sema: CLI, MCP, VSIX, instaladores e release assets.
3
+ <!-- sema:i18n -->
4
+ > EN: English first.
5
+ > PT: Português depois, com acentos preservados.
6
+ > ES: Español al final.
4
7
 
5
- ## Pre-condicoes
8
+ ## EN
6
9
 
7
- - `sema resumo` executado no projeto antes da mudanca.
8
- - `sema inspecionar contratos/sema/governanca_ia.sema --json` executado para confirmar o contrato relacionado.
9
- - `sema drift contratos/sema/governanca_ia.sema --escopo modulo --json` sem diagnosticos bloqueantes.
10
- - `sema docs-impacto --intencao "<release>" --criar-ausentes --json` executado e todos os docs obrigatorios lidos.
11
- - `npm whoami` autenticado com uma conta que pode publicar `@semacode/cli` e `@semacode/mcp`.
12
- - `gh auth status` autenticado com permissao de push e release em `gerlanss/Sema`.
13
- - Workspace revisado para nao incluir lixo local, caches ou artefatos temporarios fora de `.tmp/`.
10
+ This runbook covers two different deploy surfaces for Sema:
14
11
 
15
- ## Sequencia segura
12
+ - Sema public website and private MCP server at `https://sema.otimitare.online`.
13
+ - Public package releases for CLI/VSIX/NPM/GitHub.
16
14
 
17
- 1. Escolha uma versao que ainda nao exista no NPM.
18
- 2. Atualize `package.json`, workspaces, lockfiles, changelog e docs antes de empacotar.
19
- 3. Rode `npm run build`.
20
- 4. Rode os testes focados e checagens de release.
21
- 5. Rode `npm run release:preparar-publica` para gerar `.tmp/release-assets`.
22
- 6. Publique NPM com `npm run release:publicar-npm`.
23
- 7. Instale a CLI e o MCP publicados para smoke test.
24
- 8. Empacote e instale a VSIX localmente para smoke test da extensao.
25
- 9. Rode `sema finalizar-mudanca` com as docs lidas antes de concluir.
26
- 10. Commit, push, tag e GitHub Release com os assets gerados.
15
+ The production website/MCP target is the **Sema VPS**, not the OtimiTare application VPS.
27
16
 
28
- ## Validacao minima
17
+ ### Sema Production VPS
18
+
19
+ Operational facts:
20
+
21
+ - Domain: `sema.otimitare.online`
22
+ - Current public DNS target: resolve the domain before deploy, do not trust an old IP.
23
+ - SSH user: use the operational server user configured outside this repository.
24
+ - SSH identity: resolve it from local SSH config or a secret manager outside this repository.
25
+ - Static site root: `/srv/sema/site`
26
+ - Caddy config in this repo: `deploy/caddy/sema-site.Caddyfile`
27
+ - MCP service: `sema-mcp.service`
28
+ - MCP upstream: `127.0.0.1:3010`
29
+
30
+ Do not use the stale `otimitare` SSH alias for Sema deploy. It points to an old host/key pair and is not the source of truth.
31
+
32
+ Never commit private key content, private-key filenames, local key paths, IPs that are not already public DNS, or secret inventory details.
33
+
34
+ ### Website Deploy
35
+
36
+ Before publishing:
37
+
38
+ ```powershell
39
+ node pacotes\cli\dist\index.js validar contratos\sema\site_publico.sema --json
40
+ node pacotes\cli\dist\index.js drift contratos\sema\site_publico.sema --escopo modulo --json
41
+ npm run build
42
+ npm run format:check
43
+ ```
44
+
45
+ Confirm the target:
46
+
47
+ ```powershell
48
+ Resolve-DnsName sema.otimitare.online
49
+ ssh sema-vps "hostname; systemctl is-active sema-mcp.service; ls -ld /srv/sema/site"
50
+ ```
51
+
52
+ Create a remote backup and publish static files:
53
+
54
+ ```powershell
55
+ $stamp = Get-Date -Format "yyyyMMdd-HHmmss"
56
+ ssh sema-vps "mkdir -p /srv/sema/backups/site-$stamp && cp -a /srv/sema/site/. /srv/sema/backups/site-$stamp/"
57
+ scp -r site\sema\* sema-vps:/srv/sema/site/
58
+ ```
59
+
60
+ Validate after deploy:
61
+
62
+ ```powershell
63
+ curl.exe -k -fsS https://sema.otimitare.online/healthz
64
+ curl.exe -k -fsS https://sema.otimitare.online/painel.html
65
+ curl.exe -k -fsS -D - https://sema.otimitare.online/mcp -o NUL
66
+ ```
67
+
68
+ Expected result:
69
+
70
+ - `/healthz` returns healthy.
71
+ - `/painel.html` serves the current static panel.
72
+ - `/mcp` without token does not expose data; it should return an auth challenge or unauthorized response.
73
+
74
+ ### Public Package Release
75
+
76
+ Before publishing a CLI or VSIX release:
29
77
 
30
78
  ```bash
31
79
  npm run build
32
80
  npm run format:check
33
81
  npm run status:check
34
- node --import tsx --test --test-name-pattern "docs operacionais|ajuda de ia|mcp cli responde" testes/integracao/cli-json-e-editor.test.ts
82
+ node --import tsx --test --test-name-pattern "docs operacionais|ajuda de ia" testes/integracao/cli-json-e-editor.test.ts
35
83
  sema validar contratos/sema/governanca_ia.sema --json
36
84
  sema drift contratos/sema/governanca_ia.sema --escopo modulo --json
85
+ npm run release:verificar-versao
37
86
  ```
38
87
 
39
- Depois de publicar:
88
+ Then:
40
89
 
41
90
  ```bash
91
+ npm run release:preparar-publica
92
+ npm run release:publicar-npm
42
93
  npm view @semacode/cli version
43
- npm view @semacode/mcp version
44
94
  npm install -g @semacode/cli@<versao>
45
- npm install -g @semacode/mcp@<versao>
46
95
  sema --version
47
- sema docs-impacto --intencao "smoke release" --json
48
- sema-mcp --help
96
+ npm run release:verificar-publica
49
97
  ```
50
98
 
51
- ## Release assets
99
+ Stop if NPM already has the version, `gh auth status` fails, `npm whoami` fails, Sema validation fails, or release verification finds a mismatch.
52
100
 
53
- `npm run release:preparar-publica` deve gerar:
101
+ ## PT
54
102
 
55
- - `sema-cli-<versao>.tgz`
56
- - `sema-cli-latest.tgz`
57
- - `sema-language-tools-<versao>.vsix`
58
- - `sema-language-tools-latest.vsix`
59
- - `install-sema.sh`
60
- - `install-sema.ps1`
61
- - `SHA256SUMS.txt`
62
- - `release-notes.md`
103
+ Este runbook cobre duas superfícies diferentes de deploy da Sema:
104
+
105
+ - site público e servidor MCP privado em `https://sema.otimitare.online`;
106
+ - releases públicos de CLI/VSIX/NPM/GitHub.
107
+
108
+ O alvo de produção do site/MCP é a **VPS da Sema**, não a VPS da aplicação OtimiTare.
109
+
110
+ ### VPS de Produção da Sema
111
+
112
+ Fatos operacionais:
113
+
114
+ - Domínio: `sema.otimitare.online`
115
+ - DNS público atual: resolva o domínio antes do deploy; não confie em IP antigo.
116
+ - Usuário SSH: use o usuário operacional do servidor configurado fora deste repositório.
117
+ - Identidade SSH: resolva pelo SSH config local ou secret manager fora deste repositório.
118
+ - Raiz do site estático: `/srv/sema/site`
119
+ - Configuração Caddy neste repositório: `deploy/caddy/sema-site.Caddyfile`
120
+ - Serviço MCP: `sema-mcp.service`
121
+ - Upstream MCP: `127.0.0.1:3010`
122
+
123
+ Não use o alias SSH antigo `otimitare` para deploy da Sema. Ele aponta para host/chave antigos e não é fonte da verdade.
124
+
125
+ Nunca commite conteúdo de chave privada, nomes de arquivos de chave privada, caminhos locais de chave, IPs que não sejam DNS público ou detalhes do inventário de segredos.
126
+
127
+ ### Deploy do Site
128
+
129
+ Antes de publicar:
130
+
131
+ ```powershell
132
+ node pacotes\cli\dist\index.js validar contratos\sema\site_publico.sema --json
133
+ node pacotes\cli\dist\index.js drift contratos\sema\site_publico.sema --escopo modulo --json
134
+ npm run build
135
+ npm run format:check
136
+ ```
137
+
138
+ Confirme o alvo:
139
+
140
+ ```powershell
141
+ Resolve-DnsName sema.otimitare.online
142
+ ssh sema-vps "hostname; systemctl is-active sema-mcp.service; ls -ld /srv/sema/site"
143
+ ```
144
+
145
+ Crie backup remoto e publique os arquivos estáticos:
146
+
147
+ ```powershell
148
+ $stamp = Get-Date -Format "yyyyMMdd-HHmmss"
149
+ ssh sema-vps "mkdir -p /srv/sema/backups/site-$stamp && cp -a /srv/sema/site/. /srv/sema/backups/site-$stamp/"
150
+ scp -r site\sema\* sema-vps:/srv/sema/site/
151
+ ```
152
+
153
+ Valide depois do deploy:
154
+
155
+ ```powershell
156
+ curl.exe -k -fsS https://sema.otimitare.online/healthz
157
+ curl.exe -k -fsS https://sema.otimitare.online/painel.html
158
+ curl.exe -k -fsS -D - https://sema.otimitare.online/mcp -o NUL
159
+ ```
160
+
161
+ Resultado esperado:
162
+
163
+ - `/healthz` responde saudável.
164
+ - `/painel.html` serve o painel estático atual.
165
+ - `/mcp` sem token não expõe dados; deve devolver desafio de autenticação ou não autorizado.
166
+
167
+ ### Release Público
168
+
169
+ Antes de publicar CLI ou VSIX:
170
+
171
+ ```bash
172
+ npm run build
173
+ npm run format:check
174
+ npm run status:check
175
+ node --import tsx --test --test-name-pattern "docs operacionais|ajuda de ia" testes/integracao/cli-json-e-editor.test.ts
176
+ sema validar contratos/sema/governanca_ia.sema --json
177
+ sema drift contratos/sema/governanca_ia.sema --escopo modulo --json
178
+ npm run release:verificar-versao
179
+ ```
180
+
181
+ Depois:
182
+
183
+ ```bash
184
+ npm run release:preparar-publica
185
+ npm run release:publicar-npm
186
+ npm view @semacode/cli version
187
+ npm install -g @semacode/cli@<versao>
188
+ sema --version
189
+ npm run release:verificar-publica
190
+ ```
191
+
192
+ Pare se a versão já existir no NPM, `gh auth status` falhar, `npm whoami` falhar, a validação Sema falhar ou a verificação de release encontrar desalinhamento.
193
+
194
+ ## ES
195
+
196
+ Este runbook cubre dos superficies distintas de despliegue de Sema:
197
+
198
+ - sitio público y servidor MCP privado en `https://sema.otimitare.online`;
199
+ - releases públicos de CLI/VSIX/NPM/GitHub.
200
+
201
+ El destino de producción del sitio/MCP es la **VPS de Sema**, no la VPS de la aplicación OtimiTare.
202
+
203
+ ### VPS de Producción de Sema
204
+
205
+ Datos operativos:
206
+
207
+ - Dominio: `sema.otimitare.online`
208
+ - DNS público actual: resuelve el dominio antes del despliegue; no confíes en una IP antigua.
209
+ - Usuario SSH: usa el usuario operativo del servidor configurado fuera de este repositorio.
210
+ - Identidad SSH: resuélvela desde el SSH config local o secret manager fuera de este repositorio.
211
+ - Raíz del sitio estático: `/srv/sema/site`
212
+ - Configuración Caddy en este repositorio: `deploy/caddy/sema-site.Caddyfile`
213
+ - Servicio MCP: `sema-mcp.service`
214
+ - Upstream MCP: `127.0.0.1:3010`
215
+
216
+ No uses el alias SSH antiguo `otimitare` para desplegar Sema. Apunta a un host/par de llaves antiguo y no es la fuente de verdad.
217
+
218
+ Nunca hagas commit del contenido de la llave privada, nombres de archivos de llave privada, rutas locales de llaves, IPs que no sean DNS público o detalles del inventario de secretos.
219
+
220
+ ### Despliegue del Sitio
221
+
222
+ Antes de publicar:
223
+
224
+ ```powershell
225
+ node pacotes\cli\dist\index.js validar contratos\sema\site_publico.sema --json
226
+ node pacotes\cli\dist\index.js drift contratos\sema\site_publico.sema --escopo modulo --json
227
+ npm run build
228
+ npm run format:check
229
+ ```
230
+
231
+ Confirma el destino:
232
+
233
+ ```powershell
234
+ Resolve-DnsName sema.otimitare.online
235
+ ssh sema-vps "hostname; systemctl is-active sema-mcp.service; ls -ld /srv/sema/site"
236
+ ```
237
+
238
+ Crea backup remoto y publica los archivos estáticos:
239
+
240
+ ```powershell
241
+ $stamp = Get-Date -Format "yyyyMMdd-HHmmss"
242
+ ssh sema-vps "mkdir -p /srv/sema/backups/site-$stamp && cp -a /srv/sema/site/. /srv/sema/backups/site-$stamp/"
243
+ scp -r site\sema\* sema-vps:/srv/sema/site/
244
+ ```
245
+
246
+ Valida después del despliegue:
247
+
248
+ ```powershell
249
+ curl.exe -k -fsS https://sema.otimitare.online/healthz
250
+ curl.exe -k -fsS https://sema.otimitare.online/painel.html
251
+ curl.exe -k -fsS -D - https://sema.otimitare.online/mcp -o NUL
252
+ ```
63
253
 
64
- ## Sinais de parada
254
+ Resultado esperado:
65
255
 
66
- - NPM ja tem a versao escolhida.
67
- - `npm whoami` falha.
68
- - `gh auth status` falha.
69
- - `sema validar`, `sema drift`, build ou testes falham.
70
- - `release:preparar-publica` encontra versoes desalinhadas entre root, CLI, MCP e extensao.
256
+ - `/healthz` responde saludable.
257
+ - `/painel.html` sirve el panel estático actual.
258
+ - `/mcp` sin token no expone datos; debe devolver desafío de autenticación o no autorizado.
@@ -1,63 +1,88 @@
1
- # Governanca de Documentacao
1
+ # Documentation Governance
2
2
 
3
- A Sema trata documentacao como parte da mudanca, nao como pos-escrito simpatico para alguem lembrar depois.
3
+ ## English
4
4
 
5
- ## Regra principal
5
+ Sema treats documentation as part of the change, not as a polite afterthought. Before an AI edits a contract, code, configuration, workflow, deploy, Author text, game rule, legal note, research note, or operational runbook, it must resolve the documentation that explains the intended change.
6
6
 
7
- Toda IA deve resolver documentacao obrigatoria antes de editar contrato, codigo, configuracao ou executar operacoes como deploy.
7
+ Public documentation follows the exact order defined in [i18n.md](./i18n.md): English, Português, Español. Portuguese and Spanish must keep proper accents. Code blocks, identifiers, paths, command names, and `.sema` symbols are preserved unless a semantic rename contract says otherwise.
8
+
9
+ ### Operational Gate
8
10
 
9
11
  ```bash
10
12
  sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
11
13
  ```
12
14
 
13
- Se o comando apontar docs ausentes, crie ou preencha essas docs antes da acao. Para criar runbooks base:
15
+ If the command reports missing docs, create or complete those docs before changing code, contracts, deploy, or configuration.
16
+
17
+ ### Required Reading
18
+
19
+ The `docs-impacto` result returns:
20
+
21
+ - `leituraObrigatoria`: docs, readmes, and contracts that must be read.
22
+ - `docsAusentes`: docs that block the action.
23
+ - `docsCriadas`: docs created automatically when authorized.
24
+ - `bloqueios`: severity 4 diagnostics.
25
+
26
+ Before declaring the work done, the agent must run:
14
27
 
15
28
  ```bash
16
- sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
29
+ sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
17
30
  ```
18
31
 
19
- ## Leitura obrigatoria
32
+ ## Português
20
33
 
21
- O resultado de `docs-impacto` traz:
34
+ A Sema trata documentação como parte da mudança, não como pós-escrito simpático para alguém lembrar depois. Antes de uma IA editar contrato, código, configuração, workflow, deploy, texto Author, regra de jogo, nota jurídica, pesquisa ou runbook operacional, ela precisa resolver a documentação que explica a intenção da mudança.
22
35
 
23
- - `leituraObrigatoria`: docs, readmes e contratos que devem ser lidos.
24
- - `docsAusentes`: docs que bloqueiam a acao.
25
- - `docsCriadas`: docs criadas automaticamente quando autorizado.
26
- - `bloqueios`: diagnosticos de severidade 4.
36
+ A documentação pública segue a ordem exata definida em [i18n.md](./i18n.md): English, Português, Español. Português e espanhol precisam preservar acentos. Blocos de código, identificadores, caminhos, nomes de comando e símbolos `.sema` são preservados, exceto quando houver contrato de renomeação semântica.
27
37
 
28
- O conteudo dos documentos existentes vem na resposta para que o agente realmente leia o material antes de agir.
38
+ ### Gate Operacional
29
39
 
30
- ## Finalizacao
40
+ ```bash
41
+ sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
42
+ ```
31
43
 
32
- Antes de responder que terminou, a IA deve chamar:
44
+ Se o comando apontar docs ausentes, crie ou complete essas docs antes de mudar código, contratos, deploy ou configuração.
45
+
46
+ ### Leitura Obrigatória
47
+
48
+ O resultado de `docs-impacto` retorna:
49
+
50
+ - `leituraObrigatoria`: docs, readmes e contratos que precisam ser lidos.
51
+ - `docsAusentes`: docs que bloqueiam a ação.
52
+ - `docsCriadas`: docs criadas automaticamente quando autorizado.
53
+ - `bloqueios`: diagnósticos de severidade 4.
54
+
55
+ Antes de dizer que o trabalho terminou, o agente precisa rodar:
33
56
 
34
57
  ```bash
35
- sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/api.md --json
58
+ sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
36
59
  ```
37
60
 
38
- Se faltar leitura ou documentacao, a conclusao deve ser bloqueada.
61
+ ## Español
62
+
63
+ Sema trata la documentación como parte del cambio, no como una nota amable para recordar después. Antes de que una IA edite contrato, código, configuración, workflow, deploy, texto Author, regla de juego, nota legal, investigación o runbook operativo, debe resolver la documentación que explica la intención del cambio.
39
64
 
40
- ## Docs que podem nascer automaticamente
65
+ La documentación pública sigue el orden exacto definido en [i18n.md](./i18n.md): English, Português, Español. Portugués y español deben conservar sus acentos. Bloques de código, identificadores, rutas, nombres de comando y símbolos `.sema` se preservan, excepto cuando exista un contrato de renombrado semántico.
41
66
 
42
- O Sema cria runbooks base para categorias operacionais:
67
+ ### Gate Operativo
43
68
 
44
- - `docs/deploy.md`
45
- - `docs/env.md`
46
- - `docs/rollback.md`
47
- - `docs/api.md`
48
- - `docs/auth.md`
49
- - `docs/seguranca.md`
50
- - `docs/database.md`
51
- - `docs/frontend.md`
52
- - `docs/testes.md`
53
- - `docs/mcp.md`
54
- - `docs/documentacao.md`
55
- - `docs/extensao-vscode.md`
69
+ ```bash
70
+ sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
71
+ ```
56
72
 
57
- Esses arquivos sao esqueletos seguros. Eles devem ser completados com detalhes reais do projeto quando a operacao exigir.
73
+ Si el comando informa docs ausentes, crea o completa esas docs antes de cambiar código, contratos, deploy o configuración.
58
74
 
59
- ## O que nao fazer
75
+ ### Lectura Obligatoria
60
76
 
61
- - Nao concluir uma mudanca sem rodar o portao documental.
62
- - Nao usar doc criada automaticamente como evidencia final se ela ainda esta generica.
63
- - Nao editar codigo sem contrato e sem leitura das docs relacionadas.
77
+ El resultado de `docs-impacto` devuelve:
78
+
79
+ - `leituraObrigatoria`: docs, readmes y contratos que deben leerse.
80
+ - `docsAusentes`: docs que bloquean la acción.
81
+ - `docsCriadas`: docs creadas automáticamente cuando se autoriza.
82
+ - `bloqueios`: diagnósticos de severidad 4.
83
+
84
+ Antes de decir que el trabajo terminó, el agente debe ejecutar:
85
+
86
+ ```bash
87
+ sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
88
+ ```
package/docs/env.md CHANGED
@@ -1,56 +1,105 @@
1
- # Env
2
-
3
- Ambiente necessario para publicar a Sema.
4
-
5
- ## Ferramentas
6
-
7
- - Node.js LTS com `npm`.
8
- - Git com acesso push ao remoto `origin`.
9
- - GitHub CLI (`gh`) autenticado.
10
- - VS Code CLI (`code`) para instalar a VSIX localmente.
11
- - PowerShell no Windows.
12
-
13
- ## Variaveis suportadas pelos instaladores
14
-
15
- - `SEMA_REPO`: repositorio GitHub usado para baixar assets. Padrao: `gerlanss/Sema`.
16
- - `SEMA_NPM_PACKAGE`: pacote da CLI. Padrao: `@semacode/cli`.
17
- - `SEMA_MCP_NPM_PACKAGE`: pacote do MCP. Padrao: `@semacode/mcp`.
18
- - `SEMA_VERSION`: versao usada pelo `install-sema.sh`. Padrao: `latest`.
19
-
20
- No PowerShell, o instalador recebe a versao por parametro:
21
-
22
- ```powershell
23
- .\install-sema.ps1 -Version 1.5.18 -WithVSCode -WithMcp
24
- ```
25
-
26
- No shell:
27
-
28
- ```bash
29
- SEMA_VERSION=1.5.18 ./install-sema.sh --with-vscode --with-mcp
30
- ```
31
-
32
- ## Credenciais
33
-
34
- - NPM deve estar logado antes de publicar: `npm whoami`.
35
- - GitHub CLI deve estar logado antes de criar release: `gh auth status`.
36
- - Nunca registre tokens em docs, logs ou release notes.
37
-
38
- ## Registro NPM
39
-
40
- Os pacotes publicos sao:
41
-
42
- - `@semacode/cli`
43
- - `@semacode/mcp`
44
-
45
- Antes de publicar, confira:
46
-
47
- ```bash
48
- npm view @semacode/cli version
49
- npm view @semacode/mcp version
50
- ```
51
-
52
- ## GitHub Release
53
-
54
- O tag publico deve seguir `v<versao>`, por exemplo `v1.5.18`.
55
-
56
- Os assets ficam em `.tmp/release-assets` e sao derivados dos scripts versionados no repositorio.
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 push ao remoto `origin`.
15
+ - GitHub CLI (`gh`) autenticado.
16
+ - VS Code CLI (`code`) para instalar a VSIX localmente.
17
+ - PowerShell no Windows.
18
+
19
+ ## Variaveis suportadas pelos instaladores publicos
20
+
21
+ - `SEMA_REPO`: repositório GitHub usado para baixar assets. Padrão: `gerlanss/Sema`.
22
+ - `SEMA_NPM_PACKAGE`: pacote da CLI. Padrão: `@semacode/cli`.
23
+ - `SEMA_VERSION`: versão usada pelo `install-sema.sh`. Padrão: `latest`.
24
+
25
+ No PowerShell, o instalador recebe a versão por parametro:
26
+
27
+ ```powershell
28
+ .\install-sema.ps1 -Version 1.5.19 -WithVSCode
29
+ ```
30
+
31
+ No shell:
32
+
33
+ ```bash
34
+ SEMA_VERSION=1.5.19 ./install-sema.sh --with-vscode
35
+ ```
36
+
37
+ ## Credenciais
38
+
39
+ - NPM deve estar logado antes de publicar: `npm whoami`.
40
+ - GitHub CLI deve estar logado antes de criar release: `gh auth status`.
41
+ - Nunca registre tokens em docs, logs ou release notes.
42
+
43
+ ## Registro NPM
44
+
45
+ O pacote público é:
46
+
47
+ - `@semacode/cli`
48
+
49
+ Antes de publicar, confira:
50
+
51
+ ```bash
52
+ npm view @semacode/cli version
53
+ npm run release:verificar-versao
54
+ ```
55
+
56
+ ## Cliente MCP remoto
57
+
58
+ Variaveis usadas por Codex, VS Code/forks e clientes que aceitam bearer:
59
+
60
+ - `SEMA_MCP_AUTH_TOKEN`: chave comercial `sema_mcp_*` gerada no painel. E do cliente, nao do servidor.
61
+ - `SEMA_MCP_ENDPOINT`: URL HTTPS `/mcp` usada por clientes que leem endpoint por variavel.
62
+
63
+ No Windows, instale sem expor a chave em argumento:
64
+
65
+ ```powershell
66
+ Get-Clipboard | sema mcp-instalar-chave --stdin --json
67
+ ```
68
+
69
+ ## Servidor MCP remoto privado
70
+
71
+ Variaveis usadas pelo servidor MCP privado quando roda em modo HTTP:
72
+
73
+ - `MCP_PORT`: porta HTTP. Quando ausente, o MCP roda em `stdio`.
74
+ - `MCP_HOST`: host de bind. Padrão: `0.0.0.0`.
75
+ - `SEMA_MCP_PUBLIC_BASE_URL`: URL pública HTTPS usada nos metadados OAuth do ChatGPT.
76
+ - `SEMA_MCP_OAUTH_SECRET`: segredo usado para assinar access/refresh tokens OAuth.
77
+ - `SEMA_MCP_OAUTH_PASSCODE`: passcode privado digitado no login OAuth do ChatGPT.
78
+ - `SEMA_MCP_PROJECT_ROOTS`: raizes permitidas para projetos, separadas por `;`.
79
+ - `SEMA_MCP_CORS_ORIGIN`: origem CORS permitida, `*` ou lista separada por `;`.
80
+
81
+ Exemplo operacional privado:
82
+
83
+ ```bash
84
+ MCP_PORT=3333 \
85
+ SEMA_MCP_PUBLIC_BASE_URL="https://sema.exemplo.com" \
86
+ SEMA_MCP_OAUTH_SECRET="segredo-longo-para-oauth" \
87
+ SEMA_MCP_OAUTH_PASSCODE="passcode-privado-chatgpt" \
88
+ SEMA_MCP_PROJECT_ROOTS="/srv/sema/projetos"
89
+ ```
90
+
91
+ Nunca publique `/mcp` ou `/sse` na internet sem chave comercial bearer por request ou OAuth configurado, raiz restrita e HTTPS no proxy. Nunca registre chaves `sema_mcp_*`, OAuth secret ou passcode em docs publicas, logs, release notes ou screenshots.
92
+
93
+ ## GitHub Release
94
+
95
+ O tag público deve seguir `v<versao>`, por exemplo `v1.5.19`.
96
+
97
+ Os assets ficam em `.tmp/release-assets` e sao derivados dos scripts versionados no repositório.
98
+
99
+ Depois de publicar, rode:
100
+
101
+ ```bash
102
+ npm run release:verificar-publica
103
+ ```
104
+
105
+ Esse check cruza README/docs, manifestos, npm, GitHub Latest, assets publicados, CLI local e VSIX instalada quando o VS Code CLI está disponivel.
@@ -1,5 +1,11 @@
1
1
  # Extensao VS Code
2
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
+
3
9
  Runbook da extensao `Sema Language Tools`.
4
10
 
5
11
  ## Arquivos principais
@@ -35,11 +41,13 @@ code --install-extension .tmp/editor-vscode/sema-language-tools-<versao>.vsix --
35
41
  1. Abra um projeto com `.sema`.
36
42
  2. Confirme que o Language Server inicia sem crash.
37
43
  3. Rode `Sema: Diagnosticar CLI`.
38
- 4. Rode `Sema: Sincronizar EntryPoints IA do Projeto`.
39
- 5. Abra um `.sema` e confirme diagnosticos, highlight e formatação.
44
+ 4. Rode `Sema: Instalar Chave MCP`, cole uma chave `sema_mcp_*` do painel e confirme que a CLI grava a variavel do usuario sem argumento com segredo.
45
+ 5. Rode `Sema: Sincronizar EntryPoints IA do Projeto`.
46
+ 6. Abra um `.sema` e confirme diagnosticos, highlight e formatacao.
40
47
 
41
48
  ## Cuidados
42
49
 
43
50
  - O `extension.js` deve apontar o LSP para `server.js`.
44
- - A extensao embute instrucoes de IA; atualize a lista de ferramentas MCP quando novos comandos forem adicionados.
45
- - A versao da extensao deve bater com a versao publica preparada por `release:preparar-publica`.
51
+ - A extensao embute instrucoes de IA; atualize a lista de ferramentas MCP privadas quando novos comandos remotos forem adicionados.
52
+ - A chave MCP do painel deve ser instalada via comando da extensao ou `sema mcp-instalar-chave --stdin`; nao trate `SEMA_MCP_AUTH_TOKEN` como token fixo do servidor.
53
+ - A versão da extensao deve bater com a versão pública preparada por `release:preparar-publica`.