@semacode/cli 1.5.26 → 1.5.28
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/README.md +3 -3
- package/SEMA_BRIEF.curto.txt +6 -6
- package/SEMA_BRIEF.md +24 -31
- package/SEMA_BRIEF.micro.txt +5 -5
- package/SEMA_INDEX.json +156 -349
- package/docs/cli.md +4 -4
- package/docs/deploy.md +62 -227
- package/docs/env.md +3 -3
- package/docs/instalacao-e-primeiro-uso.md +5 -5
- package/docs/persistencia-vendor-first.md +1 -1
- package/docs/repositories.md +54 -0
- package/docs/rollback.md +1 -1
- package/docs/seguranca.md +126 -0
- 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/package.json +1 -1
- package/node_modules/@sema/gerador-javascript/package.json +1 -1
- package/node_modules/@sema/gerador-lua/package.json +1 -1
- package/node_modules/@sema/gerador-python/package.json +1 -1
- package/node_modules/@sema/gerador-typescript/package.json +1 -1
- package/node_modules/@sema/nucleo/package.json +1 -1
- package/node_modules/@sema/padroes/package.json +1 -1
- package/package.json +10 -10
- package/dist/controleComercialSupabase.d.ts +0 -326
- package/dist/controleComercialSupabase.js +0 -310
- package/dist/controleComercialSupabase.js.map +0 -1
package/docs/cli.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
The Sema CLI is the public npm package for local semantic governance. It validates `.sema` contracts, checks drift, maps impact, prepares AI-first context, resolves documentation gates, and runs profile validators before an agent continues.
|
|
6
6
|
|
|
7
|
-
Current public version: `1.5.
|
|
7
|
+
Current public version: `1.5.28`.
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
npm install -g @semacode/cli
|
|
@@ -16,7 +16,7 @@ sema validar contratos/pedidos.sema --json
|
|
|
16
16
|
|
|
17
17
|
A CLI da Sema é o pacote público no npm para governança semântica local. Ela valida contratos `.sema`, verifica drift, mapeia impacto, prepara contexto IA-first, resolve gates de documentação e roda validadores de profiles antes de um agente continuar.
|
|
18
18
|
|
|
19
|
-
Versão pública atual: `1.5.
|
|
19
|
+
Versão pública atual: `1.5.28`.
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
npm install -g @semacode/cli
|
|
@@ -28,7 +28,7 @@ sema validar contratos/pedidos.sema --json
|
|
|
28
28
|
|
|
29
29
|
La CLI de Sema es el paquete público en npm para gobernanza semántica local. Valida contratos `.sema`, verifica drift, mapea impacto, prepara contexto IA-first, resuelve gates de documentación y ejecuta validadores de profiles antes de que un agente continúe.
|
|
30
30
|
|
|
31
|
-
Versión pública actual: `1.5.
|
|
31
|
+
Versión pública actual: `1.5.28`.
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
34
|
npm install -g @semacode/cli
|
|
@@ -76,7 +76,7 @@ Adoção incremental:
|
|
|
76
76
|
|
|
77
77
|
## Persistência vendor-first
|
|
78
78
|
|
|
79
|
-
A linha 1.5.
|
|
79
|
+
A linha 1.5.28 mantém persistência vendor-first como seção canônica no contrato, no semântico, na IR e no formatador, além de `drift` com escopo real, `impacto`, renomeação semântica assistida, `verificar` mais coerente nos alvos gerados, match de métodos JS/TS definidos via `Object.assign(...prototype...)`, leitura de `Preferences`/`localStorage`/`sessionStorage`, fallback para `angular-consumer` standalone sem `.routes`, limpeza de runtime da CLI pública no Windows, Sema Author oficial e MCP remoto desmembrado da distribuição pública.
|
|
80
80
|
|
|
81
81
|
Cobertura pública:
|
|
82
82
|
|
package/docs/deploy.md
CHANGED
|
@@ -1,258 +1,93 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Public Release Runbook
|
|
2
2
|
|
|
3
3
|
<!-- sema:i18n -->
|
|
4
4
|
> EN: English first.
|
|
5
|
-
> PT: Português depois
|
|
5
|
+
> PT: Português depois.
|
|
6
6
|
> ES: Español al final.
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## English
|
|
9
9
|
|
|
10
|
-
This runbook covers
|
|
10
|
+
This public runbook covers only the open Sema distribution: source repository, npm CLI package, VS Code extension artifact, release notes, checksums, and public install scripts.
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
- Public package releases for CLI/VSIX/NPM/GitHub.
|
|
12
|
+
Private hosting, account panels, OAuth endpoints, Supabase projects, billing flows, service accounts, customer data, server paths, and commercial deployment scripts belong in the private repository.
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
### What Goes Public
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
- Versioned source for the open language, parser, CLI, base profiles, examples, public docs, and basic extension.
|
|
17
|
+
- Public release assets generated under `.tmp/release-assets`.
|
|
18
|
+
- Generic install scripts that do not embed tokens, private URLs, customer identifiers, or server paths.
|
|
19
|
+
- Release notes in this order: English, Portuguese, Spanish.
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
### What Stays Private
|
|
20
22
|
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
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`
|
|
23
|
+
- Hosted-site code, account panel code, billing, Supabase migrations, OAuth client secrets, MCP key issuing, production Caddy/Nginx files, and server-specific runbooks.
|
|
24
|
+
- Any token, service role, customer identifier, database URL, private endpoint, or local agent configuration.
|
|
25
|
+
- Commercial rule packs and internal dashboards until explicitly approved for public release.
|
|
29
26
|
|
|
30
|
-
|
|
27
|
+
### Public Release Checklist
|
|
31
28
|
|
|
32
|
-
|
|
29
|
+
1. Run `npm run repo:verificar-publico`.
|
|
30
|
+
2. Run `npm run project:check`.
|
|
31
|
+
3. Run `npm run release:preparar-publica`.
|
|
32
|
+
4. Publish the npm package only after `npm dist-tag ls @semacode/cli` can be checked.
|
|
33
|
+
5. Push `main` and the matching `v<version>` tag.
|
|
34
|
+
6. Create the GitHub Release from `.tmp/release-assets` and mark it as latest.
|
|
35
|
+
7. Confirm the GitHub About description is English and product-facing.
|
|
33
36
|
|
|
34
|
-
|
|
37
|
+
## Português
|
|
35
38
|
|
|
36
|
-
|
|
39
|
+
Este runbook público cobre apenas a distribuição aberta da Sema: repositório-fonte, pacote npm da CLI, artefato da extensão VS Code, notas de release, checksums e instaladores públicos.
|
|
37
40
|
|
|
38
|
-
|
|
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
|
-
```
|
|
41
|
+
Hospedagem privada, painéis de conta, endpoints OAuth, projetos Supabase, billing, service accounts, dados de clientes, caminhos de servidor e scripts comerciais de deploy ficam no repositório privado.
|
|
44
42
|
|
|
45
|
-
|
|
43
|
+
### O Que Vai Para o Público
|
|
46
44
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
- Código versionado da linguagem aberta, parser, CLI, profiles base, exemplos, docs públicas e extensão básica.
|
|
46
|
+
- Assets públicos de release gerados em `.tmp/release-assets`.
|
|
47
|
+
- Instaladores genéricos sem tokens, URLs privadas, identificadores de cliente ou caminhos de servidor.
|
|
48
|
+
- Notas de release nesta ordem: inglês, português, espanhol.
|
|
51
49
|
|
|
52
|
-
|
|
50
|
+
### O Que Fica Privado
|
|
53
51
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
scp -r site\sema\* sema-vps:/srv/sema/site/
|
|
58
|
-
```
|
|
52
|
+
- Código do site hospedado, painel de contas, billing, migrations Supabase, OAuth client secrets, emissão de chaves MCP, Caddy/Nginx de produção e runbooks específicos de servidor.
|
|
53
|
+
- Qualquer token, service role, identificador de cliente, URL de banco, endpoint privado ou configuração local de agentes.
|
|
54
|
+
- Rule packs comerciais e dashboards internos até aprovação explícita para release pública.
|
|
59
55
|
|
|
60
|
-
|
|
56
|
+
### Checklist De Release Pública
|
|
61
57
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
58
|
+
1. Rode `npm run repo:verificar-publico`.
|
|
59
|
+
2. Rode `npm run project:check`.
|
|
60
|
+
3. Rode `npm run release:preparar-publica`.
|
|
61
|
+
4. Publique o pacote npm somente depois de conseguir conferir `npm dist-tag ls @semacode/cli`.
|
|
62
|
+
5. Envie `main` e a tag `v<versão>` correspondente.
|
|
63
|
+
6. Crie o GitHub Release a partir de `.tmp/release-assets` e marque como latest.
|
|
64
|
+
7. Confirme que o About do GitHub está em inglês e com posicionamento de produto.
|
|
67
65
|
|
|
68
|
-
|
|
66
|
+
## Español
|
|
69
67
|
|
|
70
|
-
|
|
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.
|
|
68
|
+
Este runbook público cubre solo la distribución abierta de Sema: repositorio fuente, paquete npm de la CLI, artefacto de la extensión VS Code, notas de release, checksums e instaladores públicos.
|
|
73
69
|
|
|
74
|
-
|
|
70
|
+
El hosting privado, los paneles de cuenta, endpoints OAuth, proyectos Supabase, billing, service accounts, datos de clientes, rutas de servidor y scripts comerciales de despliegue pertenecen al repositorio privado.
|
|
75
71
|
|
|
76
|
-
|
|
72
|
+
### Qué Va Al Público
|
|
77
73
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
node --import tsx --test --test-name-pattern "docs operacionais|ajuda de ia" testes/integracao/cli-json-e-editor.test.ts
|
|
83
|
-
sema validar contratos/sema/governanca_ia.sema --json
|
|
84
|
-
sema drift contratos/sema/governanca_ia.sema --escopo modulo --json
|
|
85
|
-
npm run release:verificar-versao
|
|
86
|
-
```
|
|
74
|
+
- Código versionado del lenguaje abierto, parser, CLI, profiles base, ejemplos, docs públicas y extensión básica.
|
|
75
|
+
- Assets públicos de release generados en `.tmp/release-assets`.
|
|
76
|
+
- Instaladores genéricos sin tokens, URLs privadas, identificadores de cliente ni rutas de servidor.
|
|
77
|
+
- Notas de release en este orden: inglés, portugués, español.
|
|
87
78
|
|
|
88
|
-
|
|
79
|
+
### Qué Queda Privado
|
|
89
80
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
npm view @semacode/cli version
|
|
94
|
-
npm install -g @semacode/cli@<versao>
|
|
95
|
-
sema --version
|
|
96
|
-
npm run release:verificar-publica
|
|
97
|
-
```
|
|
81
|
+
- Código del sitio hospedado, panel de cuentas, billing, migrations Supabase, OAuth client secrets, emisión de claves MCP, Caddy/Nginx de producción y runbooks específicos de servidor.
|
|
82
|
+
- Cualquier token, service role, identificador de cliente, URL de base de datos, endpoint privado o configuración local de agentes.
|
|
83
|
+
- Rule packs comerciales y dashboards internos hasta aprobación explícita para release pública.
|
|
98
84
|
|
|
99
|
-
|
|
85
|
+
### Checklist De Release Pública
|
|
100
86
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
-
|
|
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
|
-
```
|
|
253
|
-
|
|
254
|
-
Resultado esperado:
|
|
255
|
-
|
|
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.
|
|
87
|
+
1. Ejecuta `npm run repo:verificar-publico`.
|
|
88
|
+
2. Ejecuta `npm run project:check`.
|
|
89
|
+
3. Ejecuta `npm run release:preparar-publica`.
|
|
90
|
+
4. Publica el paquete npm solo después de poder verificar `npm dist-tag ls @semacode/cli`.
|
|
91
|
+
5. Envía `main` y la tag `v<versión>` correspondiente.
|
|
92
|
+
6. Crea el GitHub Release desde `.tmp/release-assets` y márcalo como latest.
|
|
93
|
+
7. Confirma que el About de GitHub está en inglés y con posicionamiento de producto.
|
package/docs/env.md
CHANGED
|
@@ -25,13 +25,13 @@ Ambiente necessário para publicar a Sema.
|
|
|
25
25
|
No PowerShell, o instalador recebe a versão por parametro:
|
|
26
26
|
|
|
27
27
|
```powershell
|
|
28
|
-
.\install-sema.ps1 -Version 1.5.
|
|
28
|
+
.\install-sema.ps1 -Version 1.5.28 -WithVSCode
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
No shell:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
SEMA_VERSION=1.5.
|
|
34
|
+
SEMA_VERSION=1.5.28 ./install-sema.sh --with-vscode
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
## Credenciais
|
|
@@ -92,7 +92,7 @@ Nunca publique `/mcp` ou `/sse` na internet sem chave comercial bearer por reque
|
|
|
92
92
|
|
|
93
93
|
## GitHub Release
|
|
94
94
|
|
|
95
|
-
O tag público deve seguir `v<versao>`, por exemplo `v1.5.
|
|
95
|
+
O tag público deve seguir `v<versao>`, por exemplo `v1.5.28`.
|
|
96
96
|
|
|
97
97
|
Os assets ficam em `.tmp/release-assets` e sao derivados dos scripts versionados no repositório.
|
|
98
98
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
This guide covers the current public installation path for the Sema CLI and VS Code extension. The remote MCP server is a private/commercial authorized service and is not distributed as a public npm package.
|
|
6
6
|
|
|
7
|
-
Current public version: `1.5.
|
|
7
|
+
Current public version: `1.5.28`.
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
npm install -g @semacode/cli
|
|
@@ -16,7 +16,7 @@ sema doctor
|
|
|
16
16
|
|
|
17
17
|
Este guia cobre o caminho público atual da Sema para CLI e extensão VS Code. O servidor MCP remoto é um serviço privado/comercial autorizado e não é distribuído como pacote npm público.
|
|
18
18
|
|
|
19
|
-
Versão pública atual: `1.5.
|
|
19
|
+
Versão pública atual: `1.5.28`.
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
npm install -g @semacode/cli
|
|
@@ -28,7 +28,7 @@ sema doctor
|
|
|
28
28
|
|
|
29
29
|
Esta guía cubre el camino público actual de instalación para la CLI de Sema y la extensión de VS Code. El servidor MCP remoto es un servicio privado/comercial autorizado y no se distribuye como paquete público de npm.
|
|
30
30
|
|
|
31
|
-
Versión pública actual: `1.5.
|
|
31
|
+
Versión pública actual: `1.5.28`.
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
34
|
npm install -g @semacode/cli
|
|
@@ -58,7 +58,7 @@ sema docs-impacto --intencao "alterar projeto" --json
|
|
|
58
58
|
Instalação de uma versão específica pelo npm:
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
|
-
npm install -g @semacode/cli@1.5.
|
|
61
|
+
npm install -g @semacode/cli@1.5.28
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
Instalação local ao projeto:
|
|
@@ -93,7 +93,7 @@ Se quiser uma tag específica, troque `main` pela versão desejada.
|
|
|
93
93
|
|
|
94
94
|
```bash
|
|
95
95
|
npm run extensao:empacotar
|
|
96
|
-
code --install-extension .tmp/editor-vscode/sema-language-tools-1.5.
|
|
96
|
+
code --install-extension .tmp/editor-vscode/sema-language-tools-1.5.28.vsix --force
|
|
97
97
|
```
|
|
98
98
|
|
|
99
99
|
Os assets versionados da VSIX devem ser anexados manualmente a GitHub Releases quando houver release pública com binários. Se `--with-vscode` for usado antes disso, o instalador mantém a CLI instalada e apenas pula a extensão.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
> ES: Español al final; não traduza comandos, rotas nem sómbolos `.sema` sem contrato.
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
Sema 1.5.
|
|
9
|
+
Sema 1.5.28 trata banco como superficie semântica de primeira classe. Isso significa assumir diferenças reais entre engines e coloca-las no contrato, no semântico, na IR, no drift, no impact map, na renomeacao assistida, no `verificar` e na extensao. Nesta linha, o `drift` também materializa persistência local real em `Preferences`, `localStorage` e `sessionStorage` quando a task está ancorada no arquivo que usa essas APIs, preservando o framing IA-first da release atual.
|
|
10
10
|
|
|
11
11
|
## Engines publicas
|
|
12
12
|
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Repository Boundary
|
|
2
|
+
|
|
3
|
+
<!-- sema:i18n -->
|
|
4
|
+
> EN: English first.
|
|
5
|
+
> PT: Português depois.
|
|
6
|
+
> ES: Español al final.
|
|
7
|
+
|
|
8
|
+
## English
|
|
9
|
+
|
|
10
|
+
Sema uses an open-core repository boundary.
|
|
11
|
+
|
|
12
|
+
The public repository contains the semantic language, parser, public CLI, base profiles, examples, generic documentation, public tests, and the basic editor extension. It must be useful for adoption, learning, local validation, and community contribution without exposing commercial operations.
|
|
13
|
+
|
|
14
|
+
The private repository contains the hosted product: commercial website, account panel, OAuth and key issuance flows, Supabase control plane, billing, production deployment, operational runbooks, private integrations, customer data, private rule packs, generated snapshots, and commercial showcases.
|
|
15
|
+
|
|
16
|
+
Before any public push, release, or npm publication, run:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm run repo:verificar-publico
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
If the check blocks a file, move it to the private repository or replace it with a public-safe example.
|
|
23
|
+
|
|
24
|
+
## Português
|
|
25
|
+
|
|
26
|
+
A Sema usa uma fronteira open-core entre repositórios.
|
|
27
|
+
|
|
28
|
+
O repositório público contém a linguagem semântica, parser, CLI pública, profiles base, exemplos, documentação genérica, testes públicos e a extensão básica do editor. Ele precisa ser útil para adoção, aprendizado, validação local e contribuição da comunidade sem expor a operação comercial.
|
|
29
|
+
|
|
30
|
+
O repositório privado contém o produto hospedado: site comercial, painel de conta, fluxos de OAuth e emissão de chaves, control plane Supabase, billing, deploy de produção, runbooks operacionais, integrações privadas, dados de clientes, rule packs privados, snapshots gerados e showcases comerciais.
|
|
31
|
+
|
|
32
|
+
Antes de qualquer push público, release ou publicação npm, rode:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npm run repo:verificar-publico
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Se o check bloquear um arquivo, mova para o repositório privado ou substitua por um exemplo seguro para o público.
|
|
39
|
+
|
|
40
|
+
## Español
|
|
41
|
+
|
|
42
|
+
Sema usa una frontera open-core entre repositorios.
|
|
43
|
+
|
|
44
|
+
El repositorio público contiene el lenguaje semántico, parser, CLI pública, perfiles base, ejemplos, documentación genérica, pruebas públicas y la extensión básica del editor. Debe servir para adopción, aprendizaje, validación local y contribución de la comunidad sin exponer la operación comercial.
|
|
45
|
+
|
|
46
|
+
El repositorio privado contiene el producto hospedado: sitio comercial, panel de cuenta, flujos de OAuth y emisión de claves, control plane Supabase, billing, despliegue de producción, runbooks operativos, integraciones privadas, datos de clientes, rule packs privados, snapshots generados y showcases comerciales.
|
|
47
|
+
|
|
48
|
+
Antes de cualquier push público, release o publicación npm, ejecuta:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npm run repo:verificar-publico
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Si el check bloquea un archivo, muévelo al repositorio privado o sustitúyelo por un ejemplo seguro para el público.
|
package/docs/rollback.md
CHANGED
|
@@ -25,7 +25,7 @@ npm dist-tag add @semacode/cli@<versao-boa> latest
|
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
3. Se o problema for só VSIX ou asset de release, substitua o asset no GitHub Release ou publique uma release patch.
|
|
28
|
-
4. Prefira publicar patch corretivo (`1.5.
|
|
28
|
+
4. Prefira publicar patch corretivo (`1.5.28`, por exemplo) quando o pacote já saiu para usuários.
|
|
29
29
|
|
|
30
30
|
## Validação de rollback
|
|
31
31
|
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Security
|
|
2
|
+
|
|
3
|
+
<!-- sema:i18n -->
|
|
4
|
+
> EN: English first.
|
|
5
|
+
> PT: Português depois, com acentos preservados.
|
|
6
|
+
> ES: Español al final.
|
|
7
|
+
|
|
8
|
+
## EN
|
|
9
|
+
|
|
10
|
+
The remote Sema MCP is a sensitive surface. It lets authorized agents read contracts, check drift, generate IA-first context, and operate inside allowed roots. Security depends on these controls working together:
|
|
11
|
+
|
|
12
|
+
1. HTTPS on the public proxy.
|
|
13
|
+
2. Commercial `sema_mcp_*` bearer key per request or OAuth authentication.
|
|
14
|
+
3. `SEMA_MCP_PROJECT_ROOTS` pointing to a dedicated server root, for example `/srv/sema/projetos`.
|
|
15
|
+
4. Contract-first operation before code, deploy, docs, workflow, Author text, game, legal, research, or ops actions.
|
|
16
|
+
|
|
17
|
+
Do not publish the server without those controls.
|
|
18
|
+
|
|
19
|
+
### Data That Must Not Leak
|
|
20
|
+
|
|
21
|
+
- GitHub, npm, Supabase, SSH, or Git Credential Manager tokens.
|
|
22
|
+
- Client-side `SEMA_MCP_AUTH_TOKEN` values containing `sema_mcp_*` keys.
|
|
23
|
+
- `SEMA_MCP_OAUTH_SECRET`.
|
|
24
|
+
- `SEMA_MCP_OAUTH_PASSCODE`.
|
|
25
|
+
- Private key content.
|
|
26
|
+
- `.env`, build caches, uploads, installed dependencies, or temporary snapshots with secrets.
|
|
27
|
+
|
|
28
|
+
Operational runbooks may document non-secret references, such as the public domain, service name, and generic deployment role. They must never include private key bodies, private-key filenames, local key paths, non-public IPs, real server paths, or secret inventory details.
|
|
29
|
+
|
|
30
|
+
### Remote Operation
|
|
31
|
+
|
|
32
|
+
- Use the smallest privilege that still performs the job.
|
|
33
|
+
- Do not log `Authorization` headers.
|
|
34
|
+
- Do not publish `/mcp` with empty `SEMA_MCP_PROJECT_ROOTS`.
|
|
35
|
+
- Keep Caddy or the reverse proxy with valid TLS.
|
|
36
|
+
- Test `/mcp` without token and expect an authorization challenge.
|
|
37
|
+
- Test account-scoped MCP tokens before declaring the product flow ready.
|
|
38
|
+
|
|
39
|
+
### Incident
|
|
40
|
+
|
|
41
|
+
If a secret appears in chat, screenshot, log, release, or Git history:
|
|
42
|
+
|
|
43
|
+
1. Treat it as compromised.
|
|
44
|
+
2. Rotate it at the provider.
|
|
45
|
+
3. Remove it from the current file.
|
|
46
|
+
4. If it reached Git, rewrite history or revoke it permanently.
|
|
47
|
+
|
|
48
|
+
## PT
|
|
49
|
+
|
|
50
|
+
O Sema MCP remoto é uma superfície sensível. Ele permite que agentes autorizados leiam contratos, verifiquem drift, gerem contexto IA-first e operem dentro das raízes permitidas. A segurança depende destas travas trabalhando juntas:
|
|
51
|
+
|
|
52
|
+
1. HTTPS no proxy público.
|
|
53
|
+
2. Autenticacao por chave comercial `sema_mcp_*` por request ou OAuth.
|
|
54
|
+
3. `SEMA_MCP_PROJECT_ROOTS` apontando para uma raiz dedicada no servidor, por exemplo `/srv/sema/projetos`.
|
|
55
|
+
4. Operação contract-first antes de código, deploy, docs, workflow, texto Author, jogo, jurídico, pesquisa ou ops.
|
|
56
|
+
|
|
57
|
+
Não publique o servidor sem essas travas.
|
|
58
|
+
|
|
59
|
+
### Dados Que Não Podem Vazar
|
|
60
|
+
|
|
61
|
+
- Tokens de GitHub, npm, Supabase, SSH ou Git Credential Manager.
|
|
62
|
+
- Valores locais de `SEMA_MCP_AUTH_TOKEN` contendo chaves `sema_mcp_*`.
|
|
63
|
+
- `SEMA_MCP_OAUTH_SECRET`.
|
|
64
|
+
- `SEMA_MCP_OAUTH_PASSCODE`.
|
|
65
|
+
- Conteúdo de chave privada.
|
|
66
|
+
- `.env`, caches de build, uploads, dependências instaladas ou snapshots temporários com segredo.
|
|
67
|
+
|
|
68
|
+
Runbooks operacionais podem documentar referências não secretas, como domínio público, nome do serviço e papel genérico de deploy. Eles nunca devem incluir corpo de chave privada, nomes de arquivos de chave privada, caminhos locais de chave, IPs não públicos, caminhos reais de servidor ou detalhes do inventário de segredos.
|
|
69
|
+
|
|
70
|
+
### Operação Remota
|
|
71
|
+
|
|
72
|
+
- Use o menor privilégio que ainda executa o trabalho.
|
|
73
|
+
- Não registre headers `Authorization` em logs.
|
|
74
|
+
- Não publique `/mcp` com `SEMA_MCP_PROJECT_ROOTS` vazio.
|
|
75
|
+
- Mantenha Caddy ou reverse proxy com TLS válido.
|
|
76
|
+
- Teste `/mcp` sem token esperando desafio de autorização.
|
|
77
|
+
- Teste tokens MCP por conta antes de declarar o fluxo de produto pronto.
|
|
78
|
+
|
|
79
|
+
### Incidente
|
|
80
|
+
|
|
81
|
+
Se um segredo aparecer em chat, print, log, release ou histórico Git:
|
|
82
|
+
|
|
83
|
+
1. Considere comprometido.
|
|
84
|
+
2. Rotacione no provedor de origem.
|
|
85
|
+
3. Remova do arquivo atual.
|
|
86
|
+
4. Se chegou ao Git, reescreva histórico ou revogue definitivamente o segredo.
|
|
87
|
+
|
|
88
|
+
## ES
|
|
89
|
+
|
|
90
|
+
El Sema MCP remoto es una superficie sensible. Permite que agentes autorizados lean contratos, verifiquen drift, generen contexto IA-first y operen dentro de las raíces permitidas. La seguridad depende de estos controles trabajando juntos:
|
|
91
|
+
|
|
92
|
+
1. HTTPS en el proxy público.
|
|
93
|
+
2. Autenticacion por clave comercial `sema_mcp_*` por request u OAuth.
|
|
94
|
+
3. `SEMA_MCP_PROJECT_ROOTS` apuntando a una raíz dedicada en el servidor, por ejemplo `/srv/sema/projetos`.
|
|
95
|
+
4. Operación contract-first antes de código, despliegue, docs, workflow, texto Author, juego, legal, investigación u ops.
|
|
96
|
+
|
|
97
|
+
No publiques el servidor sin esos controles.
|
|
98
|
+
|
|
99
|
+
### Datos Que No Deben Filtrarse
|
|
100
|
+
|
|
101
|
+
- Tokens de GitHub, npm, Supabase, SSH o Git Credential Manager.
|
|
102
|
+
- Valores locales de `SEMA_MCP_AUTH_TOKEN` con claves `sema_mcp_*`.
|
|
103
|
+
- `SEMA_MCP_OAUTH_SECRET`.
|
|
104
|
+
- `SEMA_MCP_OAUTH_PASSCODE`.
|
|
105
|
+
- Contenido de llave privada.
|
|
106
|
+
- `.env`, cachés de build, uploads, dependencias instaladas o snapshots temporales con secretos.
|
|
107
|
+
|
|
108
|
+
Los runbooks operativos pueden documentar referencias no secretas, como dominio público, nombre del servicio y rol genérico de despliegue. Nunca deben incluir el cuerpo de la llave privada, nombres de archivos de llave privada, rutas locales de llaves, IPs no públicas, rutas reales del servidor o detalles del inventario de secretos.
|
|
109
|
+
|
|
110
|
+
### Operación Remota
|
|
111
|
+
|
|
112
|
+
- Usa el menor privilegio que todavía permita ejecutar el trabajo.
|
|
113
|
+
- No registres headers `Authorization` en logs.
|
|
114
|
+
- No publiques `/mcp` con `SEMA_MCP_PROJECT_ROOTS` vacío.
|
|
115
|
+
- Mantén Caddy o el reverse proxy con TLS válido.
|
|
116
|
+
- Prueba `/mcp` sin token y espera un desafío de autorización.
|
|
117
|
+
- Prueba tokens MCP por cuenta antes de declarar listo el flujo de producto.
|
|
118
|
+
|
|
119
|
+
### Incidente
|
|
120
|
+
|
|
121
|
+
Si un secreto aparece en chat, captura, log, release o historial Git:
|
|
122
|
+
|
|
123
|
+
1. Trátalo como comprometido.
|
|
124
|
+
2. Rótalo en el proveedor de origen.
|
|
125
|
+
3. Elimínalo del archivo actual.
|
|
126
|
+
4. Si llegó a Git, reescribe el historial o revócalo definitivamente.
|