@semacode/cli 1.5.27 → 1.5.29
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 +279 -265
- package/AGENT_CONTEXT_PACK.json +164 -0
- package/README.md +144 -144
- package/SEMA_BRIEF.curto.txt +7 -7
- package/SEMA_BRIEF.md +464 -65
- package/SEMA_BRIEF.micro.txt +6 -6
- package/SEMA_INDEX.json +6723 -667
- package/dist/bridge.d.ts +52 -0
- package/dist/bridge.js +318 -0
- package/dist/bridge.js.map +1 -0
- package/dist/comandos.d.ts +11 -0
- package/dist/comandos.js +110 -0
- package/dist/comandos.js.map +1 -0
- package/dist/contexto.d.ts +34 -0
- package/dist/contexto.js +197 -0
- package/dist/contexto.js.map +1 -0
- package/dist/drift.d.ts +1 -1
- package/dist/drift.js +32 -5
- package/dist/drift.js.map +1 -1
- package/dist/index.js +391 -64
- package/dist/index.js.map +1 -1
- package/dist/lua-symbols.d.ts +0 -6
- package/dist/lua-symbols.js +11 -78
- package/dist/lua-symbols.js.map +1 -1
- package/dist/projeto.js +6 -0
- package/dist/projeto.js.map +1 -1
- package/dist/tipos.d.ts +1 -1
- package/docs/AGENT_STARTER.md +109 -109
- package/docs/api.md +82 -0
- package/docs/cli.md +175 -175
- package/docs/como-ensinar-a-sema-para-ia.md +155 -155
- package/docs/deploy.md +93 -0
- package/docs/documentacao.md +88 -88
- package/docs/env.md +105 -105
- package/docs/extensao-vscode.md +53 -53
- package/docs/fluxo-pratico-ia-sema.md +187 -187
- package/docs/instalacao-e-primeiro-uso.md +134 -134
- package/docs/integracao-com-ia.md +110 -110
- package/docs/mcp.md +292 -292
- package/docs/pagamento-ponta-a-ponta.md +171 -171
- package/docs/persistencia-vendor-first.md +151 -151
- package/docs/prompt-base-ia-sema.md +111 -111
- package/docs/repositories.md +54 -54
- package/docs/rollback.md +49 -49
- package/docs/seguranca.md +126 -126
- package/docs/sintaxe.md +218 -218
- package/exemplos/author_obra_comum.sema +294 -294
- package/exemplos/author_tema_sensivel.sema +264 -264
- package/exemplos/profile_game.sema +114 -114
- package/exemplos/profile_legal.sema +105 -105
- package/exemplos/profile_ops.sema +110 -110
- package/exemplos/profile_research.sema +104 -104
- package/exemplos/profile_software.sema +123 -123
- package/exemplos/profile_workflow_n8n.sema +99 -99
- package/llms-full.txt +10 -9
- package/llms.txt +8 -7
- 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/dist/ast/tipos.d.ts +1 -1
- package/node_modules/@sema/nucleo/dist/index.d.ts +17 -0
- package/node_modules/@sema/nucleo/dist/index.js +28 -0
- package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.js +4 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +3 -3
- package/node_modules/@sema/nucleo/dist/parser/parser.js +2 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +2 -2
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +3 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.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 -10
- package/dist/php-symbols.d.ts +0 -24
- package/dist/php-symbols.js +0 -375
- package/dist/php-symbols.js.map +0 -1
package/docs/deploy.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Public Release Runbook
|
|
2
|
+
|
|
3
|
+
<!-- sema:i18n -->
|
|
4
|
+
> EN: English first.
|
|
5
|
+
> PT: Português depois.
|
|
6
|
+
> ES: Español al final.
|
|
7
|
+
|
|
8
|
+
## English
|
|
9
|
+
|
|
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
|
+
|
|
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.
|
|
13
|
+
|
|
14
|
+
### What Goes Public
|
|
15
|
+
|
|
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.
|
|
20
|
+
|
|
21
|
+
### What Stays Private
|
|
22
|
+
|
|
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.
|
|
26
|
+
|
|
27
|
+
### Public Release Checklist
|
|
28
|
+
|
|
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.
|
|
36
|
+
|
|
37
|
+
## Português
|
|
38
|
+
|
|
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.
|
|
40
|
+
|
|
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.
|
|
42
|
+
|
|
43
|
+
### O Que Vai Para o Público
|
|
44
|
+
|
|
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.
|
|
49
|
+
|
|
50
|
+
### O Que Fica Privado
|
|
51
|
+
|
|
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.
|
|
55
|
+
|
|
56
|
+
### Checklist De Release Pública
|
|
57
|
+
|
|
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.
|
|
65
|
+
|
|
66
|
+
## Español
|
|
67
|
+
|
|
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.
|
|
69
|
+
|
|
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.
|
|
71
|
+
|
|
72
|
+
### Qué Va Al Público
|
|
73
|
+
|
|
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.
|
|
78
|
+
|
|
79
|
+
### Qué Queda Privado
|
|
80
|
+
|
|
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.
|
|
84
|
+
|
|
85
|
+
### Checklist De Release Pública
|
|
86
|
+
|
|
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/documentacao.md
CHANGED
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
# Documentation Governance
|
|
2
|
-
|
|
3
|
-
## English
|
|
4
|
-
|
|
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
|
-
|
|
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
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
|
|
13
|
-
```
|
|
14
|
-
|
|
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:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Português
|
|
33
|
-
|
|
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.
|
|
35
|
-
|
|
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.
|
|
37
|
-
|
|
38
|
-
### Gate Operacional
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
|
|
42
|
-
```
|
|
43
|
-
|
|
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:
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
|
|
59
|
-
```
|
|
60
|
-
|
|
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.
|
|
64
|
-
|
|
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.
|
|
66
|
-
|
|
67
|
-
### Gate Operativo
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
Si el comando informa docs ausentes, crea o completa esas docs antes de cambiar código, contratos, deploy o configuración.
|
|
74
|
-
|
|
75
|
-
### Lectura Obligatoria
|
|
76
|
-
|
|
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
|
-
```
|
|
1
|
+
# Documentation Governance
|
|
2
|
+
|
|
3
|
+
## English
|
|
4
|
+
|
|
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
|
+
|
|
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
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
|
|
13
|
+
```
|
|
14
|
+
|
|
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:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Português
|
|
33
|
+
|
|
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.
|
|
35
|
+
|
|
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.
|
|
37
|
+
|
|
38
|
+
### Gate Operacional
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
|
|
42
|
+
```
|
|
43
|
+
|
|
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:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
|
|
59
|
+
```
|
|
60
|
+
|
|
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.
|
|
64
|
+
|
|
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.
|
|
66
|
+
|
|
67
|
+
### Gate Operativo
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Si el comando informa docs ausentes, crea o completa esas docs antes de cambiar código, contratos, deploy o configuración.
|
|
74
|
+
|
|
75
|
+
### Lectura Obligatoria
|
|
76
|
+
|
|
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,105 +1,105 @@
|
|
|
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.
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
No shell:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
SEMA_VERSION=1.5.
|
|
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.
|
|
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
|
+
# 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.29 -WithVSCode
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
No shell:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
SEMA_VERSION=1.5.29 ./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.29`.
|
|
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,53 +1,53 @@
|
|
|
1
|
-
# Extensao VS Code
|
|
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
|
-
Runbook da extensao `Sema Language Tools`.
|
|
10
|
-
|
|
11
|
-
## Arquivos principais
|
|
12
|
-
|
|
13
|
-
- `pacotes/editor-vscode/package.json`
|
|
14
|
-
- `pacotes/editor-vscode/extension.js`
|
|
15
|
-
- `pacotes/editor-vscode/server.js`
|
|
16
|
-
- `pacotes/editor-vscode/README.md`
|
|
17
|
-
- `pacotes/editor-vscode/CHANGELOG.md`
|
|
18
|
-
|
|
19
|
-
## Empacotar
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
npm run extensao:empacotar
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
O pacote versionado deve aparecer em `.tmp/editor-vscode/sema-language-tools-<versao>.vsix`.
|
|
26
|
-
|
|
27
|
-
## Instalar localmente
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
npm run extensao:instalar-local
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Ou:
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
code --install-extension .tmp/editor-vscode/sema-language-tools-<versao>.vsix --force
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Smoke test
|
|
40
|
-
|
|
41
|
-
1. Abra um projeto com `.sema`.
|
|
42
|
-
2. Confirme que o Language Server inicia sem crash.
|
|
43
|
-
3. Rode `Sema: Diagnosticar CLI`.
|
|
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.
|
|
47
|
-
|
|
48
|
-
## Cuidados
|
|
49
|
-
|
|
50
|
-
- O `extension.js` deve apontar o LSP para `server.js`.
|
|
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`.
|
|
1
|
+
# Extensao VS Code
|
|
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
|
+
Runbook da extensao `Sema Language Tools`.
|
|
10
|
+
|
|
11
|
+
## Arquivos principais
|
|
12
|
+
|
|
13
|
+
- `pacotes/editor-vscode/package.json`
|
|
14
|
+
- `pacotes/editor-vscode/extension.js`
|
|
15
|
+
- `pacotes/editor-vscode/server.js`
|
|
16
|
+
- `pacotes/editor-vscode/README.md`
|
|
17
|
+
- `pacotes/editor-vscode/CHANGELOG.md`
|
|
18
|
+
|
|
19
|
+
## Empacotar
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm run extensao:empacotar
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
O pacote versionado deve aparecer em `.tmp/editor-vscode/sema-language-tools-<versao>.vsix`.
|
|
26
|
+
|
|
27
|
+
## Instalar localmente
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm run extensao:instalar-local
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Ou:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
code --install-extension .tmp/editor-vscode/sema-language-tools-<versao>.vsix --force
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Smoke test
|
|
40
|
+
|
|
41
|
+
1. Abra um projeto com `.sema`.
|
|
42
|
+
2. Confirme que o Language Server inicia sem crash.
|
|
43
|
+
3. Rode `Sema: Diagnosticar CLI`.
|
|
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.
|
|
47
|
+
|
|
48
|
+
## Cuidados
|
|
49
|
+
|
|
50
|
+
- O `extension.js` deve apontar o LSP para `server.js`.
|
|
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`.
|