@semacode/cli 1.5.43 → 1.5.45
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/AGENT_CONTEXT_PACK.json +7 -7
- package/README.md +40 -59
- package/SEMA_BRIEF.curto.txt +5 -5
- package/SEMA_BRIEF.md +26 -5
- package/SEMA_BRIEF.micro.txt +4 -4
- package/SEMA_INDEX.json +471 -141
- package/dist/agentContextPack.js +7 -7
- package/dist/agentContextPack.js.map +1 -1
- package/dist/agentEntryPoints.js +8 -8
- package/dist/comandos.js +5 -0
- package/dist/comandos.js.map +1 -1
- package/dist/drift.contrato.d.ts +5 -0
- package/dist/drift.contrato.js +9 -1
- package/dist/drift.contrato.js.map +1 -1
- package/dist/drift.js +1 -1
- package/dist/drift.js.map +1 -1
- package/dist/drift.part01.d.ts +9 -1
- package/dist/drift.part01.js.map +1 -1
- package/dist/drift.part04.d.ts +2 -1
- package/dist/drift.part04.js +13 -3
- package/dist/drift.part04.js.map +1 -1
- package/dist/drift.part11.js +28 -7
- package/dist/drift.part11.js.map +1 -1
- package/dist/driftScore.d.ts +24 -0
- package/dist/driftScore.js +57 -0
- package/dist/driftScore.js.map +1 -0
- package/dist/fsGovernado.d.ts +12 -1
- package/dist/fsGovernado.js +32 -5
- package/dist/fsGovernado.js.map +1 -1
- package/dist/iaPrompts.d.ts +1 -1
- package/dist/iaPrompts.js +3 -3
- package/dist/index.part01.d.ts +1 -1
- package/dist/index.part01.js +4 -3
- package/dist/index.part01.js.map +1 -1
- package/dist/index.part05.js +7 -2
- package/dist/index.part05.js.map +1 -1
- package/dist/index.part06.js +9 -3
- package/dist/index.part06.js.map +1 -1
- package/dist/index.part07.js +17 -4
- package/dist/index.part07.js.map +1 -1
- package/dist/projetoTipos.d.ts +4 -0
- package/dist/runnerValidacaoRemotaServidor.d.ts +1 -0
- package/dist/runnerValidacaoRemotaServidor.js +30 -2
- package/dist/runnerValidacaoRemotaServidor.js.map +1 -1
- package/dist/semaChatCommand.d.ts +1 -0
- package/dist/semaChatCommand.js +43 -0
- package/dist/semaChatCommand.js.map +1 -0
- package/dist/semaChatRuntime.d.ts +23 -0
- package/dist/semaChatRuntime.js +202 -0
- package/dist/semaChatRuntime.js.map +1 -0
- package/docs/AGENT_STARTER.md +2 -2
- package/docs/agentes-por-capacidade.md +2 -2
- package/docs/cli.md +6 -0
- package/docs/deploy.md +3 -3
- package/docs/documentacao.md +71 -91
- package/docs/env.md +13 -9
- package/docs/extensao-vscode.md +47 -40
- package/docs/fluxo-pratico-ia-sema.md +56 -56
- package/docs/mcp.md +3 -0
- package/docs/sintaxe.md +1 -1
- 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/docs/deploy.md
CHANGED
|
@@ -16,7 +16,7 @@ npm run repo:verificar-privado
|
|
|
16
16
|
npm run build
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
For the VPS, deploy only the files required by the change, restart `sema-mcp.service` only when runtime code changed, and verify `/healthz` after restart.
|
|
19
|
+
For the VPS, deploy only the files required by the change, restart `sema-mcp.service` only when runtime code changed, and verify `/healthz` after restart. For public/production MCP, `/healthz.hardening.authorized` must be `true`; otherwise fix env before exposing `/mcp`.
|
|
20
20
|
|
|
21
21
|
## Português
|
|
22
22
|
|
|
@@ -29,7 +29,7 @@ npm run repo:verificar-privado
|
|
|
29
29
|
npm run build
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
Na VPS, envie apenas os arquivos exigidos pela mudança, reinicie `sema-mcp.service` somente quando código de runtime mudar e valide `/healthz` depois do restart.
|
|
32
|
+
Na VPS, envie apenas os arquivos exigidos pela mudança, reinicie `sema-mcp.service` somente quando código de runtime mudar e valide `/healthz` depois do restart. Para MCP publico/production, `/healthz.hardening.authorized` deve ser `true`; se nao for, corrija o ambiente antes de expor `/mcp`.
|
|
33
33
|
|
|
34
34
|
## Español
|
|
35
35
|
|
|
@@ -42,4 +42,4 @@ npm run repo:verificar-privado
|
|
|
42
42
|
npm run build
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
En la VPS, envía solo los archivos exigidos por el cambio, reinicia `sema-mcp.service` solo cuando cambie código de runtime y valida `/healthz` después del restart.
|
|
45
|
+
En la VPS, envía solo los archivos exigidos por el cambio, reinicia `sema-mcp.service` solo cuando cambie código de runtime y valida `/healthz` después del restart. Para MCP publico/production, `/healthz.hardening.authorized` debe ser `true`; si no, corrige el ambiente antes de exponer `/mcp`.
|
package/docs/documentacao.md
CHANGED
|
@@ -1,94 +1,74 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Português
|
|
35
|
-
|
|
36
|
-
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.
|
|
37
|
-
|
|
38
|
-
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.
|
|
39
|
-
|
|
40
|
-
### Gate Operacional
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
Se o comando apontar docs ausentes, crie ou complete essas docs antes de mudar código, contratos, deploy ou configuração.
|
|
47
|
-
|
|
48
|
-
### Leitura Obrigatória
|
|
49
|
-
|
|
50
|
-
O resultado de `docs-impacto` retorna:
|
|
51
|
-
|
|
52
|
-
- `leituraObrigatoria`: docs, readmes e contratos que precisam ser lidos.
|
|
53
|
-
- `docsAusentes`: docs que bloqueiam a ação.
|
|
54
|
-
- `docsCriadas`: docs criadas automaticamente quando autorizado.
|
|
1
|
+
# Governança De Documentação
|
|
2
|
+
|
|
3
|
+
A Sema trata documentação como parte da mudança. README, runbook, contrato,
|
|
4
|
+
instrução para IA, guia de CLI, deploy e rollback não são enfeites: são
|
|
5
|
+
superfícies governadas.
|
|
6
|
+
|
|
7
|
+
Antes de uma IA editar contrato, código, configuração, workflow, deploy, texto
|
|
8
|
+
Author, regra de jogo, nota jurídica, pesquisa, operação ou README, ela precisa
|
|
9
|
+
resolver qual documentação explica a intenção da mudança.
|
|
10
|
+
|
|
11
|
+
## Idioma
|
|
12
|
+
|
|
13
|
+
Documentação interna da Sema é em PT-BR por padrão, com acentos preservados e
|
|
14
|
+
sem mojibake. Inglês e espanhol não são obrigatórios em documento privado.
|
|
15
|
+
|
|
16
|
+
Documentação multilíngue só entra quando a superfície for externa ou quando o
|
|
17
|
+
contrato pedir explicitamente outro idioma. Comandos, identificadores, caminhos,
|
|
18
|
+
variáveis, endpoints, pacotes e símbolos `.sema` continuam literais.
|
|
19
|
+
|
|
20
|
+
## Trava Operacional
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
O resultado informa:
|
|
27
|
+
|
|
28
|
+
- `leituraObrigatoria`: documentos, READMEs e contratos que precisam ser lidos;
|
|
29
|
+
- `docsAusentes`: documentação que bloqueia a mudança;
|
|
30
|
+
- `docsCriadas`: esqueletos criados automaticamente quando autorizado;
|
|
55
31
|
- `bloqueios`: diagnósticos de severidade 4.
|
|
56
32
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
### Gate Operativo
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
Si el comando informa docs ausentes, crea o completa esas docs antes de cambiar código, contratos, deploy o configuración.
|
|
78
|
-
|
|
79
|
-
### Lectura Obligatoria
|
|
80
|
-
|
|
81
|
-
El resultado de `docs-impacto` devuelve:
|
|
82
|
-
|
|
83
|
-
- `leituraObrigatoria`: docs, readmes y contratos que deben leerse.
|
|
84
|
-
- `docsAusentes`: docs que bloquean la acción.
|
|
85
|
-
- `docsCriadas`: docs creadas automáticamente cuando se autoriza.
|
|
86
|
-
- `bloqueios`: diagnósticos de severidad 4.
|
|
87
|
-
|
|
88
|
-
Los documentos creados automáticamente son esqueletos, no prueba. El agente debe reemplazar el template genérico con procedimiento, validación y rollback reales antes de que `finalizar-mudanca` pueda aprobar.
|
|
89
|
-
|
|
90
|
-
Antes de decir que el trabajo terminó, el agente debe ejecutar:
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
|
|
33
|
+
Documento criado automaticamente é rascunho. A IA precisa trocar template
|
|
34
|
+
genérico por procedimento real, validação real e rollback real antes de
|
|
35
|
+
considerar a mudança fechada.
|
|
36
|
+
|
|
37
|
+
## Fechamento
|
|
38
|
+
|
|
39
|
+
Antes de dizer que terminou, o agente roda:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
sema finalizar-mudanca \
|
|
43
|
+
--intencao "criar rota de pagamento" \
|
|
44
|
+
--doc-lida README.md \
|
|
45
|
+
--doc-lida docs/documentacao.md \
|
|
46
|
+
--json
|
|
94
47
|
```
|
|
48
|
+
|
|
49
|
+
Se houver leitura obrigatória não comprovada, documento ausente, template cru ou
|
|
50
|
+
diagnóstico de severidade 4, a mudança não está concluída.
|
|
51
|
+
|
|
52
|
+
## Regra Para README
|
|
53
|
+
|
|
54
|
+
O README principal deste repositório é manual interno. Ele deve explicar o Sema
|
|
55
|
+
com profundidade suficiente para uma IA local operar sem inventar fluxo:
|
|
56
|
+
|
|
57
|
+
- superfície CLI local;
|
|
58
|
+
- superfície MCP remoto;
|
|
59
|
+
- pré-checagem e SEMAS;
|
|
60
|
+
- contratos `.sema`;
|
|
61
|
+
- desvio semântico e impacto;
|
|
62
|
+
- geração automática de código;
|
|
63
|
+
- importação de legado;
|
|
64
|
+
- templates de projeto novo;
|
|
65
|
+
- contexto IA;
|
|
66
|
+
- profiles;
|
|
67
|
+
- Author;
|
|
68
|
+
- documentação como trava;
|
|
69
|
+
- comandos de sanidade;
|
|
70
|
+
- fronteira privada.
|
|
71
|
+
|
|
72
|
+
Se uma função importante existe na CLI, o README deve descrevê-la ou apontar
|
|
73
|
+
para a documentação específica. README curto demais vira convite para IA
|
|
74
|
+
apressada fazer besteira com confiança.
|
package/docs/env.md
CHANGED
|
@@ -24,13 +24,13 @@ Ambiente necessário para publicar a Sema.
|
|
|
24
24
|
No PowerShell, o instalador recebe a versão por parametro:
|
|
25
25
|
|
|
26
26
|
```powershell
|
|
27
|
-
.\install-sema.ps1 -Version 1.5.
|
|
27
|
+
.\install-sema.ps1 -Version 1.5.45 -WithVSCode
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
No shell:
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
SEMA_VERSION=1.5.
|
|
33
|
+
SEMA_VERSION=1.5.45 ./install-sema.sh --with-vscode
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
## Credenciais
|
|
@@ -71,10 +71,13 @@ Variaveis usadas pelo servidor MCP privado quando roda em modo HTTP:
|
|
|
71
71
|
- `MCP_PORT`: porta HTTP. Quando ausente, o MCP roda em `stdio`.
|
|
72
72
|
- `MCP_HOST`: host de bind. Padrão: `0.0.0.0`.
|
|
73
73
|
- `SEMA_MCP_PUBLIC_BASE_URL`: URL pública HTTPS usada nos metadados OAuth do ChatGPT.
|
|
74
|
-
- `SEMA_MCP_OAUTH_SECRET`: segredo usado para assinar access/refresh tokens OAuth.
|
|
75
|
-
- `SEMA_MCP_OAUTH_PASSCODE`:
|
|
74
|
+
- `SEMA_MCP_OAUTH_SECRET`: segredo usado para assinar access/refresh tokens OAuth.
|
|
75
|
+
- `SEMA_MCP_OAUTH_PASSCODE`: fallback local/laboratorio; em MCP publico ou `production`, bloqueia o boot.
|
|
76
76
|
- `SEMA_MCP_PROJECT_ROOTS`: raizes permitidas para projetos, separadas por `;`.
|
|
77
|
-
- `SEMA_MCP_CORS_ORIGIN`: origem CORS permitida,
|
|
77
|
+
- `SEMA_MCP_CORS_ORIGIN`: origem CORS permitida, lista separada por `;`. Nao use `*` em MCP publico ou `production`.
|
|
78
|
+
- `SEMA_SUPABASE_URL`: URL do control plane Supabase usado para OAuth e billing.
|
|
79
|
+
- `SEMA_SUPABASE_ANON_KEY` ou `SEMA_SUPABASE_PUBLISHABLE_KEY`: chave publica do Supabase para RPCs de OAuth/billing.
|
|
80
|
+
- `SEMA_MCP_BILLING_DISABLED`: somente laboratorio local; em MCP publico ou `production`, bloqueia o boot.
|
|
78
81
|
- `SEMA_MCP_MAX_CONTRACT_FILE_BYTES`: limite por contrato `.sema` enviado por snapshot ou conteudo inline. Padrao: `262144`.
|
|
79
82
|
- `SEMA_MCP_MAX_CODE_FILE_BYTES`: limite por arquivo de codigo selecionado enviado por snapshot. Padrao: `262144`.
|
|
80
83
|
- `SEMA_MCP_MAX_DOC_FILE_BYTES`: limite por arquivo de documentacao enviado por snapshot. Padrao: `262144`.
|
|
@@ -84,17 +87,18 @@ Variaveis usadas pelo servidor MCP privado quando roda em modo HTTP:
|
|
|
84
87
|
Exemplo operacional privado:
|
|
85
88
|
|
|
86
89
|
```bash
|
|
87
|
-
MCP_PORT=3333 \
|
|
88
|
-
SEMA_MCP_PUBLIC_BASE_URL="https://sema.exemplo.com" \
|
|
90
|
+
MCP_PORT=3333 \
|
|
91
|
+
SEMA_MCP_PUBLIC_BASE_URL="https://sema.exemplo.com" \
|
|
89
92
|
SEMA_MCP_OAUTH_SECRET="segredo-longo-para-oauth" \
|
|
90
|
-
|
|
93
|
+
SEMA_SUPABASE_URL="https://projeto.supabase.co" \
|
|
94
|
+
SEMA_SUPABASE_PUBLISHABLE_KEY="sb_publishable_..." \
|
|
91
95
|
SEMA_MCP_PROJECT_ROOTS="/srv/sema/projetos" \
|
|
92
96
|
SEMA_MCP_MAX_CONTRACT_FILE_BYTES=262144 \
|
|
93
97
|
SEMA_MCP_MAX_CODE_FILE_BYTES=262144 \
|
|
94
98
|
SEMA_MCP_MAX_DOC_FILE_BYTES=262144
|
|
95
99
|
```
|
|
96
100
|
|
|
97
|
-
Nunca publique `/mcp` ou `/sse` na internet sem chave comercial bearer por request ou OAuth
|
|
101
|
+
Nunca publique `/mcp` ou `/sse` na internet sem billing habilitado, Supabase de billing configurado, chave comercial bearer por request ou OAuth com conta Sema, raiz restrita e HTTPS no proxy. Nunca registre chaves `sema_mcp_*`, OAuth secret ou passcode em docs publicas, logs, release notes ou screenshots.
|
|
98
102
|
|
|
99
103
|
O limite de bytes e validado antes de gravar espelhos remotos ou executar contratos inline. Clientes MCP devem respeitar o limite anunciado no schema da ferramenta e dividir snapshots grandes em arquivos focados, sem enviar repositorio inteiro.
|
|
100
104
|
|
package/docs/extensao-vscode.md
CHANGED
|
@@ -1,42 +1,49 @@
|
|
|
1
1
|
# Extensão VS Code
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
3
|
+
A extensão VS Code faz parte do fluxo privado da Sema. Ela ajuda humanos e IAs
|
|
4
|
+
em IDE local a escrever contratos `.sema`, receber feedback rápido e manter o
|
|
5
|
+
projeto preso ao fluxo correto: CLI local primeiro, contrato antes de código e
|
|
6
|
+
fechamento governado.
|
|
7
|
+
|
|
8
|
+
Esta extensão é o **Sema Guard**. Ela é guarda, diagnóstico e apoio de autoria.
|
|
9
|
+
Ela não é o Sema Chat, não deve ser tratada como produto principal de chat e não
|
|
10
|
+
deve virar gambiarra visual em cima de botões. O Sema Chat local nasce sobre o
|
|
11
|
+
runtime OpenCode, documentado em
|
|
12
|
+
[`docs/sema-chat-opencode.md`](./sema-chat-opencode.md).
|
|
13
|
+
|
|
14
|
+
Ela não substitui o painel, a chave local, a CLI, o MCP remoto nem a validação
|
|
15
|
+
final.
|
|
16
|
+
|
|
17
|
+
## Fluxo Obrigatório
|
|
18
|
+
|
|
19
|
+
1. Abrir o projeto no VS Code.
|
|
20
|
+
2. Ler `AGENTS.md`.
|
|
21
|
+
3. Rodar `sema --version`.
|
|
22
|
+
4. Se o comando não existir, parar. A IA não acessa o painel Sema: peça ao
|
|
23
|
+
humano para abrir o painel e rodar o instalador de chave/CLI.
|
|
24
|
+
5. Rodar `sema preflight resumo --json` e exigir `use_cli_local`.
|
|
25
|
+
6. Editar ou criar o contrato `.sema` aplicável antes de alterar código.
|
|
26
|
+
7. Usar a extensão para autoria, snippets, hover, formatação e diagnóstico.
|
|
27
|
+
8. Fechar pela CLI com `validar`, `drift`, `impacto`, testes e
|
|
28
|
+
`finalizar-mudanca`.
|
|
29
|
+
|
|
30
|
+
## Empacotar E Instalar Localmente
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm run extensao:empacotar
|
|
34
|
+
code --install-extension .tmp/editor-vscode/sema-language-tools-1.5.45.vsix --force
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Limites
|
|
38
|
+
|
|
39
|
+
A extensão não deve:
|
|
40
|
+
|
|
41
|
+
- fingir que é chat visual;
|
|
42
|
+
- substituir o runtime OpenCode do Sema Chat;
|
|
43
|
+
- tratar `sema chat doctor --json` como produto final;
|
|
44
|
+
- instalar chave sozinha;
|
|
45
|
+
- consultar o painel como se fosse humano;
|
|
46
|
+
- usar MCP remoto para ler workspace local;
|
|
47
|
+
- publicar pacote;
|
|
48
|
+
- dizer que uma mudança está concluída sem CLI;
|
|
49
|
+
- substituir contrato por README ou comentário de código.
|
|
@@ -12,36 +12,36 @@ Se a IA seguir isso, ela trabalha com contexto. Se não seguir, vira adivinhaç
|
|
|
12
12
|
|
|
13
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.
|
|
14
14
|
|
|
15
|
-
Antes de qualquer etapa, classifique a capacidade operacional do agente:
|
|
16
|
-
|
|
17
|
-
- IA fraca: leia `SEMA_BOOT.md`, `SEMA_SMALL_MODEL.md` e `SEMA_BRIEF.micro.txt`; se Sema não responder, pare.
|
|
18
|
-
- IA média: leia `SEMA_BOOT.md`, `AGENT_CONTEXT_PACK.json`, `SEMA_BRIEF.curto.txt` e `SEMA_INDEX.json`.
|
|
19
|
-
- IA forte: pode usar `SEMA_BRIEF.md`, AST, IR e drift completo, mas ainda começa pelo boot.
|
|
20
|
-
|
|
21
|
-
Regra de idioma humano: responda no idioma do usuário. Em PT-BR, use acentos, cedilha, pontuação e símbolos normais. A gramática `.sema` pode ser ASCII; texto humano não precisa ser.
|
|
22
|
-
|
|
23
|
-
Regra de timeout: timeout local do agente não é falha do Sema. Se `sema resumo`, `drift`, `docs-impacto` ou outro gate estourar, aumente o timeout e tente de novo antes de declarar bloqueio. Para projeto grande, escopo menor vem primeiro: `sema resumo caminho/arquivo.sema --micro --para mudanca`.
|
|
24
|
-
|
|
25
|
-
## Superfície obrigatória
|
|
26
|
-
|
|
27
|
-
1. IDE local com workspace no disco: rode `sema --version`; se falhar, pare. A IA não acessa o painel Sema: peça ao humano para instalar pelo painel. Depois rode `sema preflight resumo --json`. Se `decisao` não for `use_cli_local`, pare bloqueado.
|
|
28
|
-
2. IDE local autorizada: use somente a CLI local para `resumo`, `docs-impacto`, `inspecionar`, `drift`, `impacto`, `validar`, `verificar` e `finalizar-mudanca`.
|
|
29
|
-
3. IDE local proibida: não chame MCP remoto, `sema_sync`, `sema_contratos_sincronizar` nem `sema mcp-client` para ler o workspace local.
|
|
30
|
-
4. Web/chat/remoto sem workspace local: use `sema_chat_contexto`, depois `sema_sync` inline com contrato `.sema`, código selecionado, documentação operacional e índice; use o `projeto` retornado.
|
|
31
|
-
5. Se a IA não consegue identificar se está em IDE local ou web/chat remoto, ela deve parar e declarar bloqueio. Não invente superfície.
|
|
32
|
-
|
|
33
|
-
## Fluxo curto
|
|
34
|
-
|
|
35
|
-
1. identificar a superfície: CLI local ou MCP remoto web/chat
|
|
36
|
-
2. em IDE local, rodar `sema --version`; se falhar, parar. A IA não acessa o painel Sema: pedir ao humano para instalar pelo painel; depois rodar `sema preflight resumo --json` e parar se não retornar `use_cli_local`
|
|
37
|
-
3. ler contexto do projeto
|
|
38
|
-
4. identificar a capacidade da IA
|
|
39
|
-
5. identificar o módulo alvo
|
|
40
|
-
6. consultar o menor artefato semântico suficiente
|
|
41
|
-
7. editar
|
|
42
|
-
8. formatar
|
|
43
|
-
9. validar
|
|
44
|
-
10. verificar
|
|
15
|
+
Antes de qualquer etapa, classifique a capacidade operacional do agente:
|
|
16
|
+
|
|
17
|
+
- IA fraca: leia `SEMA_BOOT.md`, `SEMA_SMALL_MODEL.md` e `SEMA_BRIEF.micro.txt`; se Sema não responder, pare.
|
|
18
|
+
- IA média: leia `SEMA_BOOT.md`, `AGENT_CONTEXT_PACK.json`, `SEMA_BRIEF.curto.txt` e `SEMA_INDEX.json`.
|
|
19
|
+
- IA forte: pode usar `SEMA_BRIEF.md`, AST, IR e drift completo, mas ainda começa pelo boot.
|
|
20
|
+
|
|
21
|
+
Regra de idioma humano: responda no idioma do usuário. Em PT-BR, use acentos, cedilha, pontuação e símbolos normais. A gramática `.sema` pode ser ASCII; texto humano não precisa ser.
|
|
22
|
+
|
|
23
|
+
Regra de timeout: timeout local do agente não é falha do Sema. Se `sema resumo`, `drift`, `docs-impacto` ou outro gate estourar, aumente o timeout e tente de novo antes de declarar bloqueio. Para projeto grande, escopo menor vem primeiro: `sema resumo caminho/arquivo.sema --micro --para mudanca`.
|
|
24
|
+
|
|
25
|
+
## Superfície obrigatória
|
|
26
|
+
|
|
27
|
+
1. IDE local com workspace no disco: rode `sema --version`; se falhar, pare. A IA não acessa o painel Sema: peça ao humano para instalar pelo painel. Depois rode `sema preflight resumo --json`. Se `decisao` não for `use_cli_local`, pare bloqueado.
|
|
28
|
+
2. IDE local autorizada: use somente a CLI local para `resumo`, `docs-impacto`, `inspecionar`, `drift`, `impacto`, `validar`, `verificar` e `finalizar-mudanca`.
|
|
29
|
+
3. IDE local proibida: não chame MCP remoto, `sema_sync`, `sema_contratos_sincronizar` nem `sema mcp-client` para ler o workspace local.
|
|
30
|
+
4. Web/chat/remoto sem workspace local: use `sema_chat_contexto`, depois `sema_sync` inline com contrato `.sema`, código selecionado, documentação operacional e índice; use o `projeto` retornado.
|
|
31
|
+
5. Se a IA não consegue identificar se está em IDE local ou web/chat remoto, ela deve parar e declarar bloqueio. Não invente superfície.
|
|
32
|
+
|
|
33
|
+
## Fluxo curto
|
|
34
|
+
|
|
35
|
+
1. identificar a superfície: CLI local ou MCP remoto web/chat
|
|
36
|
+
2. em IDE local, rodar `sema --version`; se falhar, parar. A IA não acessa o painel Sema: pedir ao humano para instalar pelo painel; depois rodar `sema preflight resumo --json` e parar se não retornar `use_cli_local`
|
|
37
|
+
3. ler contexto do projeto
|
|
38
|
+
4. identificar a capacidade da IA
|
|
39
|
+
5. identificar o módulo alvo
|
|
40
|
+
6. consultar o menor artefato semântico suficiente
|
|
41
|
+
7. editar
|
|
42
|
+
8. formatar
|
|
43
|
+
9. validar
|
|
44
|
+
10. verificar
|
|
45
45
|
|
|
46
46
|
## Fluxo detalhado
|
|
47
47
|
|
|
@@ -61,11 +61,11 @@ Se o trabalho estiver ligado a pagamento, ler também:
|
|
|
61
61
|
|
|
62
62
|
Antes de despejar contexto na IA, escolha o que ela aguenta:
|
|
63
63
|
|
|
64
|
-
- IA fraca, gratuita ou com pouca disciplina: `sema preflight resumo --json`, `SEMA_BOOT.md`, `SEMA_SMALL_MODEL.md`, `sema resumo --micro` e `briefing.min.json`
|
|
65
|
-
- IA média: `sema preflight resumo --json`, `sema resumo --curto`, `briefing.min.json` e `drift.json`
|
|
66
|
-
- IA forte: `sema preflight resumo --json`, `contexto-ia`, `briefing.json`, `drift.json`, `ir.json` e `ast.json`
|
|
67
|
-
|
|
68
|
-
Se qualquer comando Sema acima estourar timeout definido pela própria IA, ela deve aumentar o timeout e repetir. Timeout do agente não autoriza pular Sema nem concluir que a sessão está inativa.
|
|
64
|
+
- IA fraca, gratuita ou com pouca disciplina: `sema preflight resumo --json`, `SEMA_BOOT.md`, `SEMA_SMALL_MODEL.md`, `sema resumo --micro` e `briefing.min.json`
|
|
65
|
+
- IA média: `sema preflight resumo --json`, `sema resumo --curto`, `briefing.min.json` e `drift.json`
|
|
66
|
+
- IA forte: `sema preflight resumo --json`, `contexto-ia`, `briefing.json`, `drift.json`, `ir.json` e `ast.json`
|
|
67
|
+
|
|
68
|
+
Se qualquer comando Sema acima estourar timeout definido pela própria IA, ela deve aumentar o timeout e repetir. Timeout do agente não autoriza pular Sema nem concluir que a sessão está inativa.
|
|
69
69
|
|
|
70
70
|
### Etapa 3. Ler o módulo alvo e um exemplo parecido
|
|
71
71
|
|
|
@@ -85,12 +85,12 @@ Regra pratica:
|
|
|
85
85
|
|
|
86
86
|
Antes de alterar, a IA deve executar:
|
|
87
87
|
|
|
88
|
-
```bash
|
|
89
|
-
sema --version
|
|
90
|
-
sema preflight resumo --json
|
|
91
|
-
sema resumo caminho/arquivo.sema --curto --para mudanca
|
|
92
|
-
sema ast caminho/arquivo.sema --json
|
|
93
|
-
sema ir caminho/arquivo.sema --json
|
|
88
|
+
```bash
|
|
89
|
+
sema --version
|
|
90
|
+
sema preflight resumo --json
|
|
91
|
+
sema resumo caminho/arquivo.sema --curto --para mudanca
|
|
92
|
+
sema ast caminho/arquivo.sema --json
|
|
93
|
+
sema ir caminho/arquivo.sema --json
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
Objetivo:
|
|
@@ -143,7 +143,7 @@ Se a tarefa não for só editar contrato, mas também gerar base de implementaca
|
|
|
143
143
|
sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
-
Ou trocar o alvo para `python` ou `
|
|
146
|
+
Ou trocar o alvo para `python`, `dart`, `lua`, `javascript`, `html` ou `css`, conforme o caso.
|
|
147
147
|
|
|
148
148
|
Regra pratica:
|
|
149
149
|
|
|
@@ -160,26 +160,26 @@ sema verificar arquivo-ou-pasta --json --saida ./.tmp/verificacao-ia
|
|
|
160
160
|
|
|
161
161
|
## Fluxo mínimo para automacao
|
|
162
162
|
|
|
163
|
-
Se voce quiser o menor fluxo aceitavel para uma IA fraca:
|
|
163
|
+
Se voce quiser o menor fluxo aceitavel para uma IA fraca:
|
|
164
164
|
|
|
165
|
-
```bash
|
|
166
|
-
sema --version
|
|
167
|
-
sema preflight resumo --json
|
|
168
|
-
sema resumo caminho/arquivo.sema --micro --para mudanca
|
|
169
|
-
sema formatar caminho/arquivo.sema
|
|
170
|
-
sema validar caminho/arquivo.sema --json
|
|
165
|
+
```bash
|
|
166
|
+
sema --version
|
|
167
|
+
sema preflight resumo --json
|
|
168
|
+
sema resumo caminho/arquivo.sema --micro --para mudanca
|
|
169
|
+
sema formatar caminho/arquivo.sema
|
|
170
|
+
sema validar caminho/arquivo.sema --json
|
|
171
171
|
```
|
|
172
172
|
|
|
173
173
|
Mas, sendo sincero, o fluxo bom mesmo e fechar com `verificar`.
|
|
174
174
|
|
|
175
175
|
Se a tarefa envolver código derivado, o fluxo mínimo aceitavel vira:
|
|
176
176
|
|
|
177
|
-
```bash
|
|
178
|
-
sema --version
|
|
179
|
-
sema preflight resumo --json
|
|
180
|
-
sema ir caminho/arquivo.sema --json
|
|
181
|
-
sema formatar caminho/arquivo.sema
|
|
182
|
-
sema validar caminho/arquivo.sema --json
|
|
177
|
+
```bash
|
|
178
|
+
sema --version
|
|
179
|
+
sema preflight resumo --json
|
|
180
|
+
sema ir caminho/arquivo.sema --json
|
|
181
|
+
sema formatar caminho/arquivo.sema
|
|
182
|
+
sema validar caminho/arquivo.sema --json
|
|
183
183
|
sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
|
|
184
184
|
```
|
|
185
185
|
|
|
@@ -212,4 +212,4 @@ Esse conjunto e o que faz a linguagem ser amigavel para IA de verdade, e não s
|
|
|
212
212
|
|
|
213
213
|
## Observacao sobre caminhos
|
|
214
214
|
|
|
215
|
-
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.
|
|
215
|
+
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.
|
package/docs/mcp.md
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
The Sema MCP is the private coordinator for agents. It authenticates clients, selects the project or mirror, charges SEMAS, chooses profiles/pipelines, asks the CLI to read or execute, and returns a traceable decision.
|
|
11
11
|
|
|
12
12
|
It must stay compatible with web chats. For ChatGPT, Lovable, GPTs, and similar clients, the MCP runs on the VPS and uses the governed CLI installed there against authorized mirrors such as `/srv/sema/projetos/...`.
|
|
13
|
+
When the MCP is public or runs as `production`, it fails closed unless billing is enabled, Supabase billing is configured, legacy bearer is absent, OAuth passcode fallback is absent, and CORS is not wildcard. A remote tool call must not execute if SEMAS billing is disabled.
|
|
13
14
|
|
|
14
15
|
Local IDEs should not use remote MCP, `sema_sync`, `sema_contratos_sincronizar`, or `sema mcp-client` to read a local workspace. In that mode, the agent must run `sema --version` locally. If the command is missing, the agent must stop and ask the human to open the Sema panel, download/run the key installer, and then repeat `sema --version`. After that, run `sema preflight resumo --json` and continue locally only when the decision is `use_cli_local`.
|
|
15
16
|
|
|
@@ -30,6 +31,7 @@ Scores, findings, and agent decisions are useful signals, not proof by themselve
|
|
|
30
31
|
O MCP da Sema é o coordenador privado dos agentes. Ele autentica clientes, escolhe o projeto ou espelho, cobra SEMAS, seleciona profiles/pipelines, pede para a CLI ler ou executar e devolve uma decisão rastreável.
|
|
31
32
|
|
|
32
33
|
Ele precisa continuar compatível com chats web. Para ChatGPT, Lovable, GPTs e clientes parecidos, o MCP roda na VPS e usa a CLI governada instalada lá contra espelhos autorizados como `/srv/sema/projetos/...`.
|
|
34
|
+
Quando o MCP é publico ou roda como `production`, ele falha fechado se billing nao estiver habilitado, Supabase de billing nao estiver configurado, bearer legado existir, fallback por passcode OAuth existir ou CORS estiver em wildcard. Chamada remota de ferramenta nao deve executar se a cobranca SEMAS estiver desabilitada.
|
|
33
35
|
|
|
34
36
|
IDEs locais não devem usar MCP remoto, `sema_sync`, `sema_contratos_sincronizar` nem `sema mcp-client` para ler workspace local. Nesse modo, o agente deve rodar `sema --version` localmente. Se o comando não existir, o agente deve parar e pedir ao humano para abrir o painel Sema, baixar/rodar o instalador de chave e repetir `sema --version`. Depois disso, rode `sema preflight resumo --json` e continue localmente somente quando a decisão for `use_cli_local`.
|
|
35
37
|
|
|
@@ -50,6 +52,7 @@ Scores, achados e decisoes do agente sao sinais uteis, nao prova isolada. O MCP
|
|
|
50
52
|
El MCP de Sema es el coordinador privado de los agentes. Autentica clientes, elige el proyecto o espejo, cobra SEMAS, selecciona profiles/pipelines, pide a la CLI que lea o ejecute y devuelve una decisión trazable.
|
|
51
53
|
|
|
52
54
|
Debe seguir compatible con chats web. Para ChatGPT, Lovable, GPTs y clientes similares, el MCP corre en la VPS y usa la CLI gobernada instalada allí contra espejos autorizados como `/srv/sema/projetos/...`.
|
|
55
|
+
Cuando el MCP es publico o corre como `production`, falla cerrado si billing no esta habilitado, Supabase de billing no esta configurado, bearer legado existe, fallback por passcode OAuth existe o CORS esta en wildcard. Una llamada remota de herramienta no debe ejecutar si la cobranza SEMAS esta deshabilitada.
|
|
53
56
|
|
|
54
57
|
Las IDEs locales no deben usar el MCP remoto, `sema_sync`, `sema_contratos_sincronizar` ni `sema mcp-client` para leer un workspace local. En ese modo, el agente debe ejecutar `sema --version` localmente. Si el comando no existe, el agente debe parar y pedir al humano que abra el panel Sema, descargue/ejecute el instalador de clave y repita `sema --version`. Después ejecuta `sema preflight resumo --json` y continúa localmente solo cuando la decisión sea `use_cli_local`.
|
|
55
58
|
|
package/docs/sintaxe.md
CHANGED
|
@@ -215,4 +215,4 @@ O IR de persistência calcula compatibilidade por recurso com quatro estados:
|
|
|
215
215
|
|
|
216
216
|
Isso existe para deixar explícito quando um contrato está pedindo de um banco algo que ele não entrega do mesmo jeito.
|
|
217
217
|
|
|
218
|
-
O mesmo principio vale para runtime de orquestração. Superfícies como `webhook`, `cron`, `worker`, `evento` e `fila` podem ser medidas contra famílias como `n8n`, mas o contrato continua canonicamente modelado em Sema, sem rebaixar a linguagem para a sintaxe do adapter alvo.
|
|
218
|
+
O mesmo principio vale para runtime de orquestração. Superfícies como `webhook`, `cron`, `worker`, `evento` e `fila` podem ser medidas contra famílias como `n8n`, mas o contrato continua canonicamente modelado em Sema, sem rebaixar a linguagem para a sintaxe do adapter alvo.
|