@semacode/cli 1.5.17 → 1.5.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +268 -260
- package/LICENSE +22 -22
- package/README.md +93 -61
- package/SEMA_BRIEF.curto.txt +8 -6
- package/SEMA_BRIEF.md +71 -22
- package/SEMA_BRIEF.micro.txt +7 -5
- package/SEMA_INDEX.json +931 -193
- 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 +119 -116
- package/dist/drift.js.map +1 -1
- package/dist/importador.d.ts +1 -1
- package/dist/importador.js +1 -200
- package/dist/importador.js.map +1 -1
- package/dist/index.js +1924 -493
- 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 -21
- package/dist/projeto.js.map +1 -1
- package/dist/tipos.d.ts +1 -1
- package/docs/AGENT_STARTER.md +109 -102
- package/docs/cli.md +89 -33
- package/docs/como-ensinar-a-sema-para-ia.md +42 -36
- package/docs/deploy.md +231 -43
- package/docs/documentacao.md +61 -36
- package/docs/env.md +63 -14
- package/docs/extensao-vscode.md +12 -4
- package/docs/fluxo-pratico-ia-sema.md +45 -35
- package/docs/instalacao-e-primeiro-uso.md +52 -30
- package/docs/integracao-com-ia.md +44 -35
- package/docs/mcp.md +270 -31
- package/docs/pagamento-ponta-a-ponta.md +40 -24
- package/docs/persistencia-vendor-first.md +11 -5
- package/docs/prompt-base-ia-sema.md +18 -11
- package/docs/rollback.md +17 -15
- package/docs/sintaxe.md +37 -229
- package/exemplos/agendamento.sema +105 -106
- package/exemplos/assinatura.sema +133 -136
- package/exemplos/auditoria.sema +89 -88
- 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 -126
- package/exemplos/exportacao.sema +94 -94
- package/exemplos/fila.sema +130 -131
- package/exemplos/integracao_externa.sema +94 -94
- package/exemplos/multi_tenant.sema +140 -140
- package/exemplos/notificacao.sema +149 -98
- package/exemplos/operacao_estrategia.sema +633 -402
- package/exemplos/pagamento.sema +434 -222
- package/exemplos/pagamento_dominio.sema +35 -35
- package/exemplos/pedido.sema +255 -119
- 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 -0
- 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 -96
- 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/ast/tipos.d.ts +2 -4
- package/node_modules/@sema/nucleo/dist/formatador/index.js +26 -46
- package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.js +9 -204
- package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +3 -35
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js +0 -21
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.js +0 -40
- package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +6 -5
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +76 -307
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +2 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +32 -2
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.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 +15 -15
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,6 +1,12 @@
|
|
|
1
1
|
# Env
|
|
2
2
|
|
|
3
|
-
|
|
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.
|
|
4
10
|
|
|
5
11
|
## Ferramentas
|
|
6
12
|
|
|
@@ -10,23 +16,22 @@ Ambiente necessario para publicar a Sema.
|
|
|
10
16
|
- VS Code CLI (`code`) para instalar a VSIX localmente.
|
|
11
17
|
- PowerShell no Windows.
|
|
12
18
|
|
|
13
|
-
## Variaveis suportadas pelos instaladores
|
|
19
|
+
## Variaveis suportadas pelos instaladores publicos
|
|
14
20
|
|
|
15
|
-
- `SEMA_REPO`:
|
|
16
|
-
- `SEMA_NPM_PACKAGE`: pacote da CLI.
|
|
17
|
-
- `
|
|
18
|
-
- `SEMA_VERSION`: versao usada pelo `install-sema.sh`. Padrao: `latest`.
|
|
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`.
|
|
19
24
|
|
|
20
|
-
No PowerShell, o instalador recebe a
|
|
25
|
+
No PowerShell, o instalador recebe a versão por parametro:
|
|
21
26
|
|
|
22
27
|
```powershell
|
|
23
|
-
.\install-sema.ps1 -Version 1.5.
|
|
28
|
+
.\install-sema.ps1 -Version 1.5.19 -WithVSCode
|
|
24
29
|
```
|
|
25
30
|
|
|
26
31
|
No shell:
|
|
27
32
|
|
|
28
33
|
```bash
|
|
29
|
-
SEMA_VERSION=1.5.
|
|
34
|
+
SEMA_VERSION=1.5.19 ./install-sema.sh --with-vscode
|
|
30
35
|
```
|
|
31
36
|
|
|
32
37
|
## Credenciais
|
|
@@ -37,20 +42,64 @@ SEMA_VERSION=1.5.10 ./install-sema.sh --with-vscode --with-mcp
|
|
|
37
42
|
|
|
38
43
|
## Registro NPM
|
|
39
44
|
|
|
40
|
-
|
|
45
|
+
O pacote público é:
|
|
41
46
|
|
|
42
47
|
- `@semacode/cli`
|
|
43
|
-
- `@semacode/mcp`
|
|
44
48
|
|
|
45
49
|
Antes de publicar, confira:
|
|
46
50
|
|
|
47
51
|
```bash
|
|
48
52
|
npm view @semacode/cli version
|
|
49
|
-
npm
|
|
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"
|
|
50
89
|
```
|
|
51
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
|
+
|
|
52
93
|
## GitHub Release
|
|
53
94
|
|
|
54
|
-
O tag
|
|
95
|
+
O tag público deve seguir `v<versao>`, por exemplo `v1.5.19`.
|
|
96
|
+
|
|
97
|
+
Os assets ficam em `.tmp/release-assets` e sao derivados dos scripts versionados no repositório.
|
|
98
|
+
|
|
99
|
+
Depois de publicar, rode:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
npm run release:verificar-publica
|
|
103
|
+
```
|
|
55
104
|
|
|
56
|
-
|
|
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`.
|
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
# Fluxo Pratico para IA Antes de Editar `.sema`
|
|
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
|
Este documento descreve o fluxo operacional recomendado para qualquer IA antes, durante e depois de alterar arquivos `.sema`.
|
|
4
10
|
|
|
5
|
-
Se a IA seguir isso, ela trabalha com contexto. Se
|
|
11
|
+
Se a IA seguir isso, ela trabalha com contexto. Se não seguir, vira adivinhação gourmet.
|
|
12
|
+
|
|
13
|
+
O ponto central: Sema não é texto para agradar humano. É contrato semântico IA-first. Humanos autorizam e revisam; a IA consome o contrato para decidir o próximo movimento.
|
|
6
14
|
|
|
7
15
|
## Fluxo curto
|
|
8
16
|
|
|
9
17
|
1. ler contexto do projeto
|
|
10
18
|
2. identificar a capacidade da IA
|
|
11
|
-
3. identificar o
|
|
12
|
-
4. consultar o menor artefato
|
|
19
|
+
3. identificar o módulo alvo
|
|
20
|
+
4. consultar o menor artefato semântico suficiente
|
|
13
21
|
5. editar
|
|
14
22
|
6. formatar
|
|
15
23
|
7. validar
|
|
@@ -17,15 +25,15 @@ Se a IA seguir isso, ela trabalha com contexto. Se nao seguir, vira adivinhacao
|
|
|
17
25
|
|
|
18
26
|
## Fluxo detalhado
|
|
19
27
|
|
|
20
|
-
### Etapa 1. Ler contexto
|
|
28
|
+
### Etapa 1. Ler contexto mínimo
|
|
21
29
|
|
|
22
30
|
Antes de tocar em qualquer arquivo, a IA deve ler:
|
|
23
31
|
|
|
24
32
|
- [README.md](../README.md)
|
|
25
|
-
- [
|
|
33
|
+
- [integração-com-ia.md](./integracao-com-ia.md)
|
|
26
34
|
- [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
|
|
27
35
|
|
|
28
|
-
Se o trabalho estiver ligado a pagamento, ler
|
|
36
|
+
Se o trabalho estiver ligado a pagamento, ler também:
|
|
29
37
|
|
|
30
38
|
- [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
|
|
31
39
|
|
|
@@ -34,22 +42,22 @@ Se o trabalho estiver ligado a pagamento, ler tambem:
|
|
|
34
42
|
Antes de despejar contexto na IA, escolha o que ela aguenta:
|
|
35
43
|
|
|
36
44
|
- IA pequena ou gratuita: `sema resumo --micro` e `briefing.min.json`
|
|
37
|
-
- IA
|
|
45
|
+
- IA média: `sema resumo --curto`, `briefing.min.json` e `drift.json`
|
|
38
46
|
- IA grande: `contexto-ia`, `briefing.json`, `drift.json`, `ir.json` e `ast.json`
|
|
39
47
|
|
|
40
|
-
### Etapa 3. Ler o
|
|
48
|
+
### Etapa 3. Ler o módulo alvo e um exemplo parecido
|
|
41
49
|
|
|
42
50
|
A IA deve identificar:
|
|
43
51
|
|
|
44
52
|
- qual arquivo sera editado
|
|
45
|
-
- qual
|
|
53
|
+
- qual módulo esse arquivo representa
|
|
46
54
|
- qual exemplo oficial mais se parece com o que precisa ser feito
|
|
47
55
|
|
|
48
56
|
Regra pratica:
|
|
49
57
|
|
|
50
58
|
- automacao: [automacao.sema](../exemplos/automacao.sema)
|
|
51
59
|
- erros e fluxos de falha: [tratamento_erro.sema](../exemplos/tratamento_erro.sema)
|
|
52
|
-
- borda
|
|
60
|
+
- borda pública e pagamento: [pagamento.sema](../exemplos/pagamento.sema)
|
|
53
61
|
|
|
54
62
|
### Etapa 4. Consultar AST e IR quando fizer sentido
|
|
55
63
|
|
|
@@ -64,28 +72,30 @@ sema ir caminho/arquivo.sema --json
|
|
|
64
72
|
Objetivo:
|
|
65
73
|
|
|
66
74
|
- ver a forma sintatica quando a capacidade aguentar
|
|
67
|
-
- ver a forma
|
|
75
|
+
- ver a forma semântica resolvida quando a capacidade aguentar
|
|
68
76
|
- evitar interpretar errado o contrato
|
|
69
77
|
|
|
70
78
|
### Etapa 5. Editar o `.sema`
|
|
71
79
|
|
|
72
80
|
Ao editar, a IA deve:
|
|
73
81
|
|
|
74
|
-
- preservar a
|
|
75
|
-
- seguir a
|
|
76
|
-
- evitar criar bloco ou operador
|
|
77
|
-
- preferir a forma
|
|
82
|
+
- preservar a intenção do módulo
|
|
83
|
+
- seguir a gramática existente
|
|
84
|
+
- evitar criar bloco ou operador não suportado
|
|
85
|
+
- preferir a forma já usada nos exemplos oficiais
|
|
86
|
+
- usar blocos existentes como `auth`, `authz`, `dados`, `audit`, `forbidden`, `execucao`, `use`, `state` e `enum` antes de propor sintaxe nova
|
|
87
|
+
- evitar teste fraco em task sensível; `expect { sucesso: verdadeiro }` sozinho não prova semântica operacional
|
|
78
88
|
|
|
79
89
|
### Etapa 6. Formatar
|
|
80
90
|
|
|
81
|
-
Depois da
|
|
91
|
+
Depois da edição:
|
|
82
92
|
|
|
83
93
|
```bash
|
|
84
94
|
sema formatar caminho/arquivo.sema
|
|
85
95
|
sema formatar caminho/arquivo.sema --check
|
|
86
96
|
```
|
|
87
97
|
|
|
88
|
-
Se `--check` falhar, o trabalho ainda
|
|
98
|
+
Se `--check` falhar, o trabalho ainda não está pronto.
|
|
89
99
|
|
|
90
100
|
### Etapa 7. Validar e diagnosticar
|
|
91
101
|
|
|
@@ -98,23 +108,23 @@ sema diagnosticos caminho/arquivo.sema --json
|
|
|
98
108
|
|
|
99
109
|
Se houver falha:
|
|
100
110
|
|
|
101
|
-
- usar os
|
|
102
|
-
-
|
|
111
|
+
- usar os diagnósticos estruturados como contrato de correcao
|
|
112
|
+
- não insistir em leitura manual teimosa quando a CLI já disse onde está a merda
|
|
103
113
|
|
|
104
|
-
### Etapa 7.5. Compilar quando a tarefa pedir
|
|
114
|
+
### Etapa 7.5. Compilar quando a tarefa pedir código derivado
|
|
105
115
|
|
|
106
|
-
Se a tarefa
|
|
116
|
+
Se a tarefa não for só editar contrato, mas também gerar base de implementacao, a IA deve rodar explicitamente:
|
|
107
117
|
|
|
108
118
|
```bash
|
|
109
119
|
sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
|
|
110
120
|
```
|
|
111
121
|
|
|
112
|
-
Ou trocar o alvo para `python
|
|
122
|
+
Ou trocar o alvo para `python` ou `dart`, conforme o caso.
|
|
113
123
|
|
|
114
124
|
Regra pratica:
|
|
115
125
|
|
|
116
|
-
- se a entrega inclui
|
|
117
|
-
- se a IA ignorar `compilar`, ela pode acabar reescrevendo na mao coisa que a Sema
|
|
126
|
+
- se a entrega inclui código derivado, `sema compilar` não é opcional
|
|
127
|
+
- se a IA ignorar `compilar`, ela pode acabar reescrevendo na mao coisa que a Sema já gera sozinha, que é burrice operacional
|
|
118
128
|
|
|
119
129
|
### Etapa 8. Verificar
|
|
120
130
|
|
|
@@ -124,7 +134,7 @@ No fechamento:
|
|
|
124
134
|
sema verificar arquivo-ou-pasta --json --saida ./.tmp/verificacao-ia
|
|
125
135
|
```
|
|
126
136
|
|
|
127
|
-
## Fluxo
|
|
137
|
+
## Fluxo mínimo para automacao
|
|
128
138
|
|
|
129
139
|
Se voce quiser o menor fluxo aceitavel para uma IA pequena:
|
|
130
140
|
|
|
@@ -136,7 +146,7 @@ sema validar caminho/arquivo.sema --json
|
|
|
136
146
|
|
|
137
147
|
Mas, sendo sincero, o fluxo bom mesmo e fechar com `verificar`.
|
|
138
148
|
|
|
139
|
-
Se a tarefa envolver
|
|
149
|
+
Se a tarefa envolver código derivado, o fluxo mínimo aceitavel vira:
|
|
140
150
|
|
|
141
151
|
```bash
|
|
142
152
|
sema ir caminho/arquivo.sema --json
|
|
@@ -145,33 +155,33 @@ sema validar caminho/arquivo.sema --json
|
|
|
145
155
|
sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
|
|
146
156
|
```
|
|
147
157
|
|
|
148
|
-
## Checklist de
|
|
158
|
+
## Checklist de saída
|
|
149
159
|
|
|
150
160
|
Antes de considerar a alteracao pronta, a IA deve responder mentalmente:
|
|
151
161
|
|
|
152
|
-
- eu entendi o
|
|
162
|
+
- eu entendi o módulo e o contrato?
|
|
153
163
|
- eu mantive a sintaxe dentro do que a linguagem suporta?
|
|
154
164
|
- eu formatei o arquivo?
|
|
155
165
|
- eu validei?
|
|
156
|
-
- eu olhei
|
|
157
|
-
- eu fechei com
|
|
166
|
+
- eu olhei diagnósticos se algo falhou?
|
|
167
|
+
- eu fechei com verificação?
|
|
158
168
|
|
|
159
|
-
Se alguma resposta for "
|
|
169
|
+
Se alguma resposta for "não", ainda não terminou.
|
|
160
170
|
|
|
161
171
|
## Regra de ouro
|
|
162
172
|
|
|
163
|
-
Em Sema, a IA
|
|
173
|
+
Em Sema, a IA não deveria operar no escuro.
|
|
164
174
|
|
|
165
175
|
Ela deve trabalhar sempre com:
|
|
166
176
|
|
|
167
177
|
- exemplo oficial
|
|
168
178
|
- AST
|
|
169
179
|
- IR
|
|
170
|
-
-
|
|
180
|
+
- diagnósticos
|
|
171
181
|
- formatador
|
|
172
182
|
|
|
173
|
-
Esse conjunto e o que faz a linguagem ser amigavel para IA de verdade, e
|
|
183
|
+
Esse conjunto e o que faz a linguagem ser amigavel para IA de verdade, e não só no discurso bonito.
|
|
174
184
|
|
|
175
185
|
## Observacao sobre caminhos
|
|
176
186
|
|
|
177
|
-
|
|
187
|
+
Está documentação usa placeholders de arquivo e pasta, não caminhos do monorepo da Sema. A IA deve adaptar isso ao projeto atual e continuar tratando `sema` como interface pública principal.
|
|
@@ -1,16 +1,52 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Installation And First Use
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## English
|
|
4
|
+
|
|
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
|
+
|
|
7
|
+
Current public version: `1.5.19`.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g @semacode/cli
|
|
11
|
+
sema --help
|
|
12
|
+
sema doctor
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Português
|
|
16
|
+
|
|
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
|
+
|
|
19
|
+
Versão pública atual: `1.5.19`.
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install -g @semacode/cli
|
|
23
|
+
sema --help
|
|
24
|
+
sema doctor
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Español
|
|
28
|
+
|
|
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
|
+
|
|
31
|
+
Versión pública actual: `1.5.19`.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npm install -g @semacode/cli
|
|
35
|
+
sema --help
|
|
36
|
+
sema doctor
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Referência Operacional
|
|
4
40
|
|
|
5
41
|
## Requisitos
|
|
6
42
|
|
|
7
43
|
- Node.js LTS
|
|
8
44
|
- npm funcional
|
|
9
|
-
- Python 3
|
|
45
|
+
- Python 3 só se você quiser rodar testes Python gerados
|
|
10
46
|
|
|
11
47
|
## CLI
|
|
12
48
|
|
|
13
|
-
|
|
49
|
+
Instalação principal:
|
|
14
50
|
|
|
15
51
|
```bash
|
|
16
52
|
npm install -g @semacode/cli
|
|
@@ -19,13 +55,13 @@ sema doctor
|
|
|
19
55
|
sema docs-impacto --intencao "alterar projeto" --json
|
|
20
56
|
```
|
|
21
57
|
|
|
22
|
-
|
|
58
|
+
Instalação de uma versão específica pelo npm:
|
|
23
59
|
|
|
24
60
|
```bash
|
|
25
|
-
npm install -g
|
|
61
|
+
npm install -g @semacode/cli@1.5.19
|
|
26
62
|
```
|
|
27
63
|
|
|
28
|
-
|
|
64
|
+
Instalação local ao projeto:
|
|
29
65
|
|
|
30
66
|
```bash
|
|
31
67
|
npm install @semacode/cli
|
|
@@ -34,20 +70,7 @@ npx sema --help
|
|
|
34
70
|
|
|
35
71
|
## MCP
|
|
36
72
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
npm install -g @semacode/mcp
|
|
41
|
-
sema-mcp
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Ou sem instalar:
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
npx -y @semacode/mcp
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
As ferramentas MCP incluem `sema_docs_impacto` e `sema_finalizar_mudanca` para obrigar agentes a ler e atualizar docs relacionadas antes de concluir alteracoes.
|
|
73
|
+
O MCP da Sema não é mais instalado por npm público. Ele é uma superfície privada/comercial acessada por endpoint remoto, normalmente `https://<host>/mcp`, com OAuth ou bearer configurado fora deste repositório. Veja [mcp.md](./mcp.md).
|
|
51
74
|
|
|
52
75
|
## Instaladores oficiais
|
|
53
76
|
|
|
@@ -55,26 +78,25 @@ Linux ou macOS:
|
|
|
55
78
|
|
|
56
79
|
```bash
|
|
57
80
|
curl -fsSL https://raw.githubusercontent.com/gerlanss/Sema/main/install-sema.sh | bash
|
|
58
|
-
curl -fsSL https://raw.githubusercontent.com/gerlanss/Sema/main/install-sema.sh | bash -s -- --with-vscode --with-mcp
|
|
59
81
|
```
|
|
60
82
|
|
|
61
83
|
Windows PowerShell:
|
|
62
84
|
|
|
63
85
|
```powershell
|
|
64
86
|
Invoke-WebRequest -Uri https://raw.githubusercontent.com/gerlanss/Sema/main/install-sema.ps1 -OutFile install-sema.ps1
|
|
65
|
-
.\install-sema.ps1
|
|
87
|
+
.\install-sema.ps1
|
|
66
88
|
```
|
|
67
89
|
|
|
68
|
-
Se quiser uma tag
|
|
90
|
+
Se quiser uma tag específica, troque `main` pela versão desejada.
|
|
69
91
|
|
|
70
|
-
##
|
|
92
|
+
## Extensão VS Code
|
|
71
93
|
|
|
72
94
|
```bash
|
|
73
|
-
|
|
74
|
-
code --install-extension
|
|
95
|
+
npm run extensao:empacotar
|
|
96
|
+
code --install-extension .tmp/editor-vscode/sema-language-tools-1.5.19.vsix --force
|
|
75
97
|
```
|
|
76
98
|
|
|
77
|
-
|
|
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.
|
|
78
100
|
|
|
79
101
|
## Primeiro teste
|
|
80
102
|
|
|
@@ -85,7 +107,7 @@ sema iniciar
|
|
|
85
107
|
sema validar contratos/pedidos.sema --json
|
|
86
108
|
```
|
|
87
109
|
|
|
88
|
-
## Primeiro fluxo
|
|
110
|
+
## Primeiro fluxo útil
|
|
89
111
|
|
|
90
112
|
```bash
|
|
91
113
|
sema validar contratos/pedidos.sema --json
|
|
@@ -104,7 +126,7 @@ sema impacto contratos/pedidos.sema --alvo pedido_id --mudanca "trocar pedido_id
|
|
|
104
126
|
sema contexto-ia contratos/pedidos.sema --saida ./.tmp/contexto --json
|
|
105
127
|
```
|
|
106
128
|
|
|
107
|
-
## Primeiro fluxo de
|
|
129
|
+
## Primeiro fluxo de persistência vendor-first
|
|
108
130
|
|
|
109
131
|
```bash
|
|
110
132
|
sema validar contratos/sema/persistencia_vendor_first.sema --json
|