@semacode/cli 1.5.18 → 1.5.25
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.
- package/AGENTS.md +268 -260
- package/LICENSE +22 -22
- package/README.md +144 -104
- package/SEMA_BRIEF.curto.txt +7 -5
- package/SEMA_BRIEF.md +61 -5
- package/SEMA_BRIEF.micro.txt +6 -4
- package/SEMA_INDEX.json +991 -47
- package/dist/controleComercialSupabase.d.ts +326 -0
- package/dist/controleComercialSupabase.js +310 -0
- package/dist/controleComercialSupabase.js.map +1 -0
- package/dist/docs.js +48 -20
- package/dist/docs.js.map +1 -1
- package/dist/drift.d.ts +5 -3
- package/dist/drift.js +123 -14
- package/dist/drift.js.map +1 -1
- package/dist/index.js +1889 -38
- package/dist/index.js.map +1 -1
- package/dist/mcpRemoto.d.ts +32 -0
- package/dist/mcpRemoto.js +61 -0
- package/dist/mcpRemoto.js.map +1 -0
- package/dist/projeto.js +3 -1
- package/dist/projeto.js.map +1 -1
- package/docs/AGENT_STARTER.md +103 -97
- package/docs/cli.md +175 -106
- package/docs/como-ensinar-a-sema-para-ia.md +41 -35
- package/docs/deploy.md +231 -43
- package/docs/documentacao.md +61 -36
- package/docs/env.md +105 -56
- package/docs/extensao-vscode.md +12 -4
- package/docs/fluxo-pratico-ia-sema.md +182 -176
- package/docs/instalacao-e-primeiro-uso.md +52 -30
- package/docs/integracao-com-ia.md +108 -101
- package/docs/mcp.md +292 -51
- package/docs/pagamento-ponta-a-ponta.md +34 -28
- package/docs/persistencia-vendor-first.md +11 -5
- package/docs/prompt-base-ia-sema.md +13 -7
- package/docs/rollback.md +17 -15
- package/docs/sintaxe.md +180 -174
- package/exemplos/agendamento.sema +105 -105
- package/exemplos/assinatura.sema +133 -133
- package/exemplos/auditoria.sema +89 -89
- package/exemplos/autenticacao.sema +125 -125
- package/exemplos/author_obra_comum.sema +294 -0
- package/exemplos/author_tema_sensivel.sema +264 -0
- package/exemplos/automacao.sema +107 -107
- package/exemplos/cadastro_usuario.sema +54 -54
- package/exemplos/calculadora.sema +78 -78
- package/exemplos/crud_simples.sema +89 -89
- package/exemplos/estoque.sema +127 -127
- package/exemplos/exportacao.sema +94 -94
- package/exemplos/fila.sema +130 -130
- package/exemplos/integracao_externa.sema +94 -94
- package/exemplos/multi_tenant.sema +140 -140
- package/exemplos/notificacao.sema +149 -149
- package/exemplos/operacao_estrategia.sema +633 -633
- package/exemplos/pagamento.sema +434 -434
- package/exemplos/pagamento_dominio.sema +35 -35
- package/exemplos/pedido.sema +255 -255
- package/exemplos/permissao.sema +121 -121
- package/exemplos/persistencia_vendor_first.sema +86 -86
- package/exemplos/profile_game.sema +114 -0
- package/exemplos/profile_legal.sema +105 -0
- package/exemplos/profile_ops.sema +110 -0
- package/exemplos/profile_research.sema +104 -0
- package/exemplos/profile_software.sema +123 -0
- package/exemplos/profile_workflow_n8n.sema +99 -0
- package/exemplos/relatorio.sema +93 -93
- package/exemplos/replica_analitica_erp.sema +160 -160
- package/exemplos/testes_embutidos.sema +45 -45
- package/exemplos/tratamento_erro.sema +157 -157
- package/exemplos/upload_arquivo.sema +93 -93
- package/exemplos/webhook.sema +94 -94
- package/llms-full.txt +34 -34
- package/llms.txt +17 -17
- package/node_modules/@sema/gerador-css/dist/index.js +563 -563
- package/node_modules/@sema/gerador-css/package.json +1 -1
- package/node_modules/@sema/gerador-dart/package.json +1 -1
- package/node_modules/@sema/gerador-html/dist/index.js +90 -90
- package/node_modules/@sema/gerador-html/package.json +1 -1
- package/node_modules/@sema/gerador-javascript/dist/index.js +92 -92
- package/node_modules/@sema/gerador-javascript/package.json +1 -1
- package/node_modules/@sema/gerador-lua/dist/index.js +53 -53
- package/node_modules/@sema/gerador-lua/package.json +1 -1
- package/node_modules/@sema/gerador-python/dist/index.js +122 -96
- package/node_modules/@sema/gerador-python/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-python/package.json +1 -1
- package/node_modules/@sema/gerador-typescript/dist/index.js +153 -153
- package/node_modules/@sema/gerador-typescript/package.json +1 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.js +12 -4
- package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
- package/node_modules/@sema/nucleo/package.json +1 -1
- package/node_modules/@sema/padroes/package.json +1 -1
- package/package.json +11 -11
package/docs/deploy.md
CHANGED
|
@@ -1,70 +1,258 @@
|
|
|
1
1
|
# Deploy
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<!-- sema:i18n -->
|
|
4
|
+
> EN: English first.
|
|
5
|
+
> PT: Português depois, com acentos preservados.
|
|
6
|
+
> ES: Español al final.
|
|
4
7
|
|
|
5
|
-
##
|
|
8
|
+
## EN
|
|
6
9
|
|
|
7
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
48
|
-
sema-mcp --help
|
|
96
|
+
npm run release:verificar-publica
|
|
49
97
|
```
|
|
50
98
|
|
|
51
|
-
|
|
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
|
-
|
|
101
|
+
## PT
|
|
54
102
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
- `sema
|
|
58
|
-
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
254
|
+
Resultado esperado:
|
|
65
255
|
|
|
66
|
-
-
|
|
67
|
-
- `
|
|
68
|
-
- `
|
|
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.
|
package/docs/documentacao.md
CHANGED
|
@@ -1,63 +1,88 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Documentation Governance
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## English
|
|
4
4
|
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
29
|
+
sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
|
|
17
30
|
```
|
|
18
31
|
|
|
19
|
-
##
|
|
32
|
+
## Português
|
|
20
33
|
|
|
21
|
-
|
|
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
|
-
|
|
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
|
-
|
|
38
|
+
### Gate Operacional
|
|
29
39
|
|
|
30
|
-
|
|
40
|
+
```bash
|
|
41
|
+
sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
|
|
42
|
+
```
|
|
31
43
|
|
|
32
|
-
|
|
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/
|
|
58
|
+
sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
|
|
36
59
|
```
|
|
37
60
|
|
|
38
|
-
|
|
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
|
-
|
|
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
|
-
|
|
67
|
+
### Gate Operativo
|
|
43
68
|
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
|
|
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
|
-
|
|
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
|
-
|
|
75
|
+
### Lectura Obligatoria
|
|
60
76
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
-
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
- `
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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.25 -WithVSCode
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
No shell:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
SEMA_VERSION=1.5.25 ./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.25`.
|
|
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.
|
package/docs/extensao-vscode.md
CHANGED
|
@@ -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:
|
|
39
|
-
5.
|
|
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
|
|
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`.
|