@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.
Files changed (70) hide show
  1. package/AGENT_CONTEXT_PACK.json +7 -7
  2. package/README.md +40 -59
  3. package/SEMA_BRIEF.curto.txt +5 -5
  4. package/SEMA_BRIEF.md +26 -5
  5. package/SEMA_BRIEF.micro.txt +4 -4
  6. package/SEMA_INDEX.json +471 -141
  7. package/dist/agentContextPack.js +7 -7
  8. package/dist/agentContextPack.js.map +1 -1
  9. package/dist/agentEntryPoints.js +8 -8
  10. package/dist/comandos.js +5 -0
  11. package/dist/comandos.js.map +1 -1
  12. package/dist/drift.contrato.d.ts +5 -0
  13. package/dist/drift.contrato.js +9 -1
  14. package/dist/drift.contrato.js.map +1 -1
  15. package/dist/drift.js +1 -1
  16. package/dist/drift.js.map +1 -1
  17. package/dist/drift.part01.d.ts +9 -1
  18. package/dist/drift.part01.js.map +1 -1
  19. package/dist/drift.part04.d.ts +2 -1
  20. package/dist/drift.part04.js +13 -3
  21. package/dist/drift.part04.js.map +1 -1
  22. package/dist/drift.part11.js +28 -7
  23. package/dist/drift.part11.js.map +1 -1
  24. package/dist/driftScore.d.ts +24 -0
  25. package/dist/driftScore.js +57 -0
  26. package/dist/driftScore.js.map +1 -0
  27. package/dist/fsGovernado.d.ts +12 -1
  28. package/dist/fsGovernado.js +32 -5
  29. package/dist/fsGovernado.js.map +1 -1
  30. package/dist/iaPrompts.d.ts +1 -1
  31. package/dist/iaPrompts.js +3 -3
  32. package/dist/index.part01.d.ts +1 -1
  33. package/dist/index.part01.js +4 -3
  34. package/dist/index.part01.js.map +1 -1
  35. package/dist/index.part05.js +7 -2
  36. package/dist/index.part05.js.map +1 -1
  37. package/dist/index.part06.js +9 -3
  38. package/dist/index.part06.js.map +1 -1
  39. package/dist/index.part07.js +17 -4
  40. package/dist/index.part07.js.map +1 -1
  41. package/dist/projetoTipos.d.ts +4 -0
  42. package/dist/runnerValidacaoRemotaServidor.d.ts +1 -0
  43. package/dist/runnerValidacaoRemotaServidor.js +30 -2
  44. package/dist/runnerValidacaoRemotaServidor.js.map +1 -1
  45. package/dist/semaChatCommand.d.ts +1 -0
  46. package/dist/semaChatCommand.js +43 -0
  47. package/dist/semaChatCommand.js.map +1 -0
  48. package/dist/semaChatRuntime.d.ts +23 -0
  49. package/dist/semaChatRuntime.js +202 -0
  50. package/dist/semaChatRuntime.js.map +1 -0
  51. package/docs/AGENT_STARTER.md +2 -2
  52. package/docs/agentes-por-capacidade.md +2 -2
  53. package/docs/cli.md +6 -0
  54. package/docs/deploy.md +3 -3
  55. package/docs/documentacao.md +71 -91
  56. package/docs/env.md +13 -9
  57. package/docs/extensao-vscode.md +47 -40
  58. package/docs/fluxo-pratico-ia-sema.md +56 -56
  59. package/docs/mcp.md +3 -0
  60. package/docs/sintaxe.md +1 -1
  61. package/node_modules/@sema/gerador-css/package.json +1 -1
  62. package/node_modules/@sema/gerador-dart/package.json +1 -1
  63. package/node_modules/@sema/gerador-html/package.json +1 -1
  64. package/node_modules/@sema/gerador-javascript/package.json +1 -1
  65. package/node_modules/@sema/gerador-lua/package.json +1 -1
  66. package/node_modules/@sema/gerador-python/package.json +1 -1
  67. package/node_modules/@sema/gerador-typescript/package.json +1 -1
  68. package/node_modules/@sema/nucleo/package.json +1 -1
  69. package/node_modules/@sema/padroes/package.json +1 -1
  70. 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`.
@@ -1,94 +1,74 @@
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
- Automatically created docs are scaffolds, not proof. The agent must replace the generic template with real procedure, validation, and rollback before `finalizar-mudanca` can pass.
27
-
28
- Before declaring the work done, the agent must run:
29
-
30
- ```bash
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
- Docs criadas automaticamente são esqueletos, não prova. A IA precisa trocar o template genérico por procedimento, validação e rollback reais antes de `finalizar-mudanca` passar.
58
-
59
- Antes de dizer que o trabalho terminou, o agente precisa rodar:
60
-
61
- ```bash
62
- sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
63
- ```
64
-
65
- ## Español
66
-
67
- 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.
68
-
69
- 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.
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.35 -WithVSCode
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.35 ./install-sema.sh --with-vscode
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`: passcode privado digitado no login OAuth do ChatGPT.
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, `*` ou lista separada por `;`.
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
- SEMA_MCP_OAUTH_PASSCODE="passcode-privado-chatgpt" \
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 configurado, raiz restrita e HTTPS no proxy. Nunca registre chaves `sema_mcp_*`, OAuth secret ou passcode em docs publicas, logs, release notes ou screenshots.
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
 
@@ -1,42 +1,49 @@
1
1
  # Extensão VS Code
2
2
 
3
- <!-- sema:i18n -->
4
- > EN: English first.
5
- > PT: Português depois, com acentos preservados.
6
- > ES: Español al final.
7
-
8
- ## English
9
-
10
- The VS Code extension is part of the private Sema workflow. It should help local IDE agents read `AGENTS.md`, prove the local CLI with `sema --version`, ask the human to install the key/CLI through the Sema panel when the command is missing, and synchronize AI entry points without exposing secrets.
11
-
12
- Smoke test:
13
-
14
- 1. Open a project with `.sema` contracts.
15
- 2. Confirm the language server starts.
16
- 3. Run `sema --version`.
17
- 4. If the command is missing, have the human open the Sema panel and run the key/CLI installer.
18
- 5. Synchronize AI entry points.
19
-
20
- ## Português
21
-
22
- A extensão VS Code faz parte do fluxo privado da Sema. Ela deve ajudar agentes em IDE local a ler `AGENTS.md`, provar a CLI local com `sema --version`, parar quando o comando não existir, avisar que a IA não acessa o painel Sema e pedir ao humano para instalar chave/CLI pelo painel sem expor segredos.
23
-
24
- Smoke test:
25
-
26
- 1. Abra um projeto com contratos `.sema`.
27
- 2. Confirme que o language server inicia.
28
- 3. Rode `sema --version`.
29
- 4. Se o comando não existir, pare. A IA não acessa o painel Sema: peça ao humano para abrir o painel e rodar o instalador de chave/CLI.
30
- 5. Sincronize entrypoints IA.
31
-
32
- ## Español
33
-
34
- La extensión VS Code forma parte del flujo privado de Sema. Debe ayudar a agentes en IDE local a leer `AGENTS.md`, probar la CLI local con `sema --version`, pedir al humano que instale la clave/CLI desde el panel Sema cuando el comando no exista y sincronizar entrypoints IA sin exponer secretos.
35
-
36
- Smoke test:
37
-
38
- 1. Abre un proyecto con contratos `.sema`.
39
- 2. Confirma que el language server inicia.
40
- 3. Ejecuta `sema --version`.
41
- 4. Si el comando no existe, pide al humano que abra el panel Sema y ejecute el instalador de clave/CLI.
42
- 5. Sincroniza entrypoints IA.
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 `dart`, conforme o caso.
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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-css",
3
- "version": "1.5.42",
3
+ "version": "1.5.45",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-dart",
3
- "version": "1.5.42",
3
+ "version": "1.5.45",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-html",
3
- "version": "1.5.42",
3
+ "version": "1.5.45",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-javascript",
3
- "version": "1.5.42",
3
+ "version": "1.5.45",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-lua",
3
- "version": "1.5.42",
3
+ "version": "1.5.45",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-python",
3
- "version": "1.5.42",
3
+ "version": "1.5.45",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-typescript",
3
- "version": "1.5.42",
3
+ "version": "1.5.45",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/nucleo",
3
- "version": "1.5.42",
3
+ "version": "1.5.45",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/padroes",
3
- "version": "1.5.42",
3
+ "version": "1.5.45",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"