@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.
Files changed (111) hide show
  1. package/AGENTS.md +268 -260
  2. package/LICENSE +22 -22
  3. package/README.md +93 -61
  4. package/SEMA_BRIEF.curto.txt +8 -6
  5. package/SEMA_BRIEF.md +71 -22
  6. package/SEMA_BRIEF.micro.txt +7 -5
  7. package/SEMA_INDEX.json +931 -193
  8. package/dist/controleComercialSupabase.d.ts +326 -0
  9. package/dist/controleComercialSupabase.js +310 -0
  10. package/dist/controleComercialSupabase.js.map +1 -0
  11. package/dist/docs.js +48 -20
  12. package/dist/docs.js.map +1 -1
  13. package/dist/drift.d.ts +5 -3
  14. package/dist/drift.js +119 -116
  15. package/dist/drift.js.map +1 -1
  16. package/dist/importador.d.ts +1 -1
  17. package/dist/importador.js +1 -200
  18. package/dist/importador.js.map +1 -1
  19. package/dist/index.js +1924 -493
  20. package/dist/index.js.map +1 -1
  21. package/dist/mcpRemoto.d.ts +32 -0
  22. package/dist/mcpRemoto.js +61 -0
  23. package/dist/mcpRemoto.js.map +1 -0
  24. package/dist/projeto.js +3 -21
  25. package/dist/projeto.js.map +1 -1
  26. package/dist/tipos.d.ts +1 -1
  27. package/docs/AGENT_STARTER.md +109 -102
  28. package/docs/cli.md +89 -33
  29. package/docs/como-ensinar-a-sema-para-ia.md +42 -36
  30. package/docs/deploy.md +231 -43
  31. package/docs/documentacao.md +61 -36
  32. package/docs/env.md +63 -14
  33. package/docs/extensao-vscode.md +12 -4
  34. package/docs/fluxo-pratico-ia-sema.md +45 -35
  35. package/docs/instalacao-e-primeiro-uso.md +52 -30
  36. package/docs/integracao-com-ia.md +44 -35
  37. package/docs/mcp.md +270 -31
  38. package/docs/pagamento-ponta-a-ponta.md +40 -24
  39. package/docs/persistencia-vendor-first.md +11 -5
  40. package/docs/prompt-base-ia-sema.md +18 -11
  41. package/docs/rollback.md +17 -15
  42. package/docs/sintaxe.md +37 -229
  43. package/exemplos/agendamento.sema +105 -106
  44. package/exemplos/assinatura.sema +133 -136
  45. package/exemplos/auditoria.sema +89 -88
  46. package/exemplos/autenticacao.sema +125 -125
  47. package/exemplos/author_obra_comum.sema +294 -0
  48. package/exemplos/author_tema_sensivel.sema +264 -0
  49. package/exemplos/automacao.sema +107 -107
  50. package/exemplos/cadastro_usuario.sema +54 -54
  51. package/exemplos/calculadora.sema +78 -78
  52. package/exemplos/crud_simples.sema +89 -89
  53. package/exemplos/estoque.sema +127 -126
  54. package/exemplos/exportacao.sema +94 -94
  55. package/exemplos/fila.sema +130 -131
  56. package/exemplos/integracao_externa.sema +94 -94
  57. package/exemplos/multi_tenant.sema +140 -140
  58. package/exemplos/notificacao.sema +149 -98
  59. package/exemplos/operacao_estrategia.sema +633 -402
  60. package/exemplos/pagamento.sema +434 -222
  61. package/exemplos/pagamento_dominio.sema +35 -35
  62. package/exemplos/pedido.sema +255 -119
  63. package/exemplos/permissao.sema +121 -121
  64. package/exemplos/persistencia_vendor_first.sema +86 -86
  65. package/exemplos/profile_game.sema +114 -0
  66. package/exemplos/profile_legal.sema +105 -0
  67. package/exemplos/profile_ops.sema +110 -0
  68. package/exemplos/profile_research.sema +104 -0
  69. package/exemplos/profile_software.sema +123 -0
  70. package/exemplos/profile_workflow_n8n.sema +99 -0
  71. package/exemplos/relatorio.sema +93 -93
  72. package/exemplos/replica_analitica_erp.sema +160 -0
  73. package/exemplos/testes_embutidos.sema +45 -45
  74. package/exemplos/tratamento_erro.sema +157 -157
  75. package/exemplos/upload_arquivo.sema +93 -93
  76. package/exemplos/webhook.sema +94 -96
  77. package/llms-full.txt +34 -34
  78. package/llms.txt +17 -17
  79. package/node_modules/@sema/gerador-css/dist/index.js +563 -563
  80. package/node_modules/@sema/gerador-css/package.json +1 -1
  81. package/node_modules/@sema/gerador-dart/package.json +1 -1
  82. package/node_modules/@sema/gerador-html/dist/index.js +90 -90
  83. package/node_modules/@sema/gerador-html/package.json +1 -1
  84. package/node_modules/@sema/gerador-javascript/dist/index.js +92 -92
  85. package/node_modules/@sema/gerador-javascript/package.json +1 -1
  86. package/node_modules/@sema/gerador-lua/dist/index.js +53 -53
  87. package/node_modules/@sema/gerador-lua/package.json +1 -1
  88. package/node_modules/@sema/gerador-python/dist/index.js +122 -96
  89. package/node_modules/@sema/gerador-python/dist/index.js.map +1 -1
  90. package/node_modules/@sema/gerador-python/package.json +1 -1
  91. package/node_modules/@sema/gerador-typescript/dist/index.js +153 -153
  92. package/node_modules/@sema/gerador-typescript/package.json +1 -1
  93. package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +2 -4
  94. package/node_modules/@sema/nucleo/dist/formatador/index.js +26 -46
  95. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
  96. package/node_modules/@sema/nucleo/dist/ir/conversor.js +9 -204
  97. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
  98. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +3 -35
  99. package/node_modules/@sema/nucleo/dist/lexer/tokens.js +0 -21
  100. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +1 -1
  101. package/node_modules/@sema/nucleo/dist/parser/parser.js +0 -40
  102. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
  103. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +6 -5
  104. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +76 -307
  105. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -1
  106. package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +2 -0
  107. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +32 -2
  108. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +1 -1
  109. package/node_modules/@sema/nucleo/package.json +1 -1
  110. package/node_modules/@sema/padroes/package.json +1 -1
  111. package/package.json +15 -15
@@ -1,15 +1,25 @@
1
- # Integracao com IA
1
+ # Integração com IA
2
2
 
3
- Sema foi feita para IA operar software vivo com menos adivinhacao.
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
+ Sema foi feita para IA operar software vivo com menos adivinhação. O consumidor principal não é o humano lendo arquivo bonito; e o agente decidindo o que pode tocar, que efeito vai causar e como validar antes de mexer no código vivo.
10
+
11
+ Humanos entram como autores, revisores e aprovadores do contrato. A ponte da Sema e da intenção operacional para um formato que IA consegue consumir sem transformar contexto em chute.
4
12
 
5
13
  ## Ordem recomendada
6
14
 
7
- 1. `sema inspecionar . --json`
8
- 2. `sema resumo <arquivo-ou-pasta> --micro --para onboarding`
9
- 3. `sema drift <arquivo-ou-pasta> --json`
10
- 4. `sema contexto-ia <arquivo.sema> --saida <diretorio> --json`
15
+ 1. `sema resumo <arquivo-ou-pasta> --micro --para onboarding`
16
+ 2. Liste ou leia os contratos existentes e inspecione o `.sema` mais próximo.
17
+ 3. Crie, edite ou remova o contrato aplicavel antes de qualquer ação.
18
+ 4. `sema validar <arquivo.sema> --json`
19
+ 5. `sema drift <arquivo-ou-pasta> --json`
20
+ 6. `sema contexto-ia <arquivo.sema> --saida <diretorio> --json`
11
21
 
12
- Nao comece cavando codigo bruto quando a ferramenta ja consegue te dar contrato, score, lacuna e superficie viva.
22
+ Não comece cavando código bruto quando a ferramenta consegue te dar contrato, score, lacuna e superficie viva. Contrato primeiro vale para Software, Author, Workflow, Ops, Game, Legal, Research e qualquer profile futuro.
13
23
 
14
24
  ## Por capacidade do modelo
15
25
 
@@ -19,7 +29,7 @@ IA pequena:
19
29
  - `briefing.min.json`
20
30
  - `prompt-curto.txt`
21
31
 
22
- IA media:
32
+ IA média:
23
33
 
24
34
  - `sema resumo --curto`
25
35
  - `drift.json`
@@ -34,44 +44,41 @@ IA grande:
34
44
 
35
45
  ## MCP
36
46
 
37
- Se o agente usa MCP:
47
+ Se o agente usa MCP, configure o endpoint remoto privado fornecido pelo operador do serviço. O MCP não é mais distribuido como pacote npm público neste GitHub. A variavel `SEMA_MCP_AUTH_TOKEN` no cliente deve conter uma chave comercial `sema_mcp_*` do painel, nao um token fixo do servidor.
38
48
 
39
- ```bash
40
- npm install -g @semacode/cli @semacode/mcp
41
- ```
49
+ Exemplo para clientes que aceitam MCP HTTP:
42
50
 
43
- Depois configure:
44
-
45
- ```json
46
- {
47
- "mcpServers": {
48
- "sema": {
49
- "command": "npx",
50
- "args": ["-y", "@semacode/mcp"]
51
- }
52
- }
53
- }
51
+ ```toml
52
+ [mcp_servers.sema]
53
+ url = "https://sema.exemplo.com/mcp"
54
+ bearer_token_env_var = "SEMA_MCP_AUTH_TOKEN"
55
+ tool_timeout_sec = 90
54
56
  ```
55
57
 
56
- Ferramentas mais uteis no fluxo de mudanca:
58
+ Ferramentas mais úteis no fluxo de mudanca:
57
59
 
58
- - `sema_drift` para medir coerencia viva
60
+ - `sema_resumo` para descobrir o estado do projeto
61
+ - `sema_listar_contratos` e `sema_ler_contrato` quando a versão privada expuser a leitura direta dos contratos
62
+ - `sema_inspecionar` para entender o contrato mais próximo
63
+ - `sema_validar` para bloquear contrato inválido antes da ação
64
+ - `sema_drift` para medir coerência viva
59
65
  - `sema_impacto` para dizer o que tocar
60
66
  - `sema_renomear_semantico` para guiar troca de nomes sem misturar payload antigo e novo
67
+ - `sema_profile_validar` ou os gates Author para validar o profile especifico
61
68
  - `sema_docs_impacto` para obrigar leitura das docs relacionadas antes de agir
62
- - `sema_finalizar_mudanca` para bloquear conclusao sem leitura documental comprovada
69
+ - `sema_finalizar_mudanca` para bloquear conclusóo sem leitura documental comprovada
63
70
 
64
- As ferramentas MCP usam a CLI como backend operacional. Portanto, suporte de linguagem como Lua em `use`, `impl`, IR, `drift` e importacao fica disponivel no MCP quando `@semacode/cli` e `@semacode/mcp` estao na mesma linha publica.
71
+ O MCP deve repetir a regra sem ambiguidade: se não ha contrato, crie; se a intenção mudou, edite; se a capacidade saiu do sistema, remova ou aposente. Ação sem ciclo de contrato não é fluxo Sema.
65
72
 
66
73
  ## Portao documental
67
74
 
68
- Antes de editar ou executar operacao sensivel, declare a intencao:
75
+ Depois de resolver e validar o contrato, declare a intenção documental:
69
76
 
70
77
  ```bash
71
78
  sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
72
79
  ```
73
80
 
74
- Leia todos os itens em `leituraObrigatoria`. Se `docsAusentes` vier preenchido, crie ou complete os documentos antes da acao.
81
+ Leia todos os itens em `leituraObrigatoria`. Se `docsAusentes` vier preenchido, crie ou complete os documentos antes da ação.
75
82
 
76
83
  Antes de concluir:
77
84
 
@@ -79,17 +86,19 @@ Antes de concluir:
79
86
  sema finalizar-mudanca --intencao "fazer deploy" --doc-lida docs/deploy.md --json
80
87
  ```
81
88
 
82
- Se houver diagnostico de severidade 4+, a IA nao deve finalizar a mudanca.
89
+ Se houver diagnóstico de severidade 4+, a IA não deve finalizar a mudanca.
83
90
 
84
91
  ## Regras praticas
85
92
 
86
- - trate `.sema` e IR como fonte de verdade semantica
87
- - trate `drift` como juiz da adocao incremental
93
+ - trate `.sema` e IR como fonte de verdade semântica
94
+ - trate humanos como donos/aprovadores e agentes como consumidores primarios do contrato
95
+ - trate `drift` como juiz da adoção incremental
88
96
  - use `briefing.min.json` antes de abrir dezenas de arquivos
89
- - nao invente sintaxe fora da gramatica oficial
90
- - em persistencia, nao assuma que bancos diferentes tem o mesmo contrato operacional
97
+ - não invente sintaxe fora da gramática oficial
98
+ - em task sensível, teste que valida apenas `sucesso` e fraco; inclua output, erro esperado ou garantia observavel
99
+ - em persistência, não assuma que bancos diferentes tem o mesmo contrato operacional
91
100
 
92
- ## Arquivos uteis no repo
101
+ ## Arquivos úteis no repo
93
102
 
94
103
  - `AGENTS.md`
95
104
  - `llms.txt`
package/docs/mcp.md CHANGED
@@ -1,53 +1,292 @@
1
- # MCP
1
+ # Private MCP
2
2
 
3
- O MCP da Sema e a porta de entrada para agentes que precisam obedecer contrato, ler contexto certo e fechar mudanca com verificacao rastreavel.
3
+ ## English
4
4
 
5
- ## Fluxo obrigatorio para agentes
5
+ The Sema MCP is a private/commercial remote surface for agents that must obey contracts, read the right context, and close changes with traceable verification. It is not shipped in the public npm package and must not be documented as an open server package.
6
6
 
7
- Antes de uma acao operacional, a IA deve declarar a intencao e chamar:
7
+ Use OAuth for browser-based clients such as ChatGPT and Lovable when available. Use bearer keys only for clients that need that fallback. Fixed server tokens must not be the primary path for web apps.
8
8
 
9
- ```bash
10
- sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
9
+ ## Português
10
+
11
+ O MCP da Sema é uma superfície remota privada/comercial para agentes que precisam obedecer contrato, ler contexto certo e fechar mudança com verificação rastreável. Ele não acompanha a release pública, não é publicado como pacote npm aberto e não deve ser documentado como pacote aberto de servidor.
12
+
13
+ Use OAuth para clientes baseados em navegador, como ChatGPT e Lovable, quando disponível. Use chaves bearer apenas para clientes que precisam desse fallback. Tokens fixos de servidor não devem ser o caminho principal em apps web.
14
+
15
+ ## Español
16
+
17
+ El MCP de Sema es una superficie remota privada/comercial para agentes que deben obedecer contratos, leer el contexto correcto y cerrar cambios con verificación trazable. No se distribuye en el paquete público de npm y no debe documentarse como paquete abierto de servidor.
18
+
19
+ Usa OAuth para clientes basados en navegador, como ChatGPT y Lovable, cuando esté disponible. Usa claves bearer solo para clientes que necesitan ese fallback. Los tokens fijos de servidor no deben ser el camino principal en apps web.
20
+
21
+ ## Referência Operacional
22
+
23
+ O repositório público documenta apenas o contrato de uso do serviço. A implementacao fica no pacote privado mantido fora deste monorepo.
24
+
25
+ ## Modelo de distribuição
26
+
27
+ - Público: CLI, núcleo, geradores, contratos, exemplos, docs e extensao VS Code.
28
+ - Privado: servidor MCP, OAuth, bearer, roots permitidas, deploy remoto, healthcheck e ferramentas remotas.
29
+ - Consumo externo: ChatGPT, Codex, n8n, backends e outros agentes acessam um endpoint HTTPS `/mcp` operado por quem controla o serviço.
30
+
31
+ Não use mais `npm install -g @semacode/mcp` nem `npx -y @semacode/mcp` em documentação pública. Esses caminhos eram validos enquanto o MCP era distribuido como pacote aberto; agora a integração correta e via URL remota autorizada.
32
+
33
+ ## Endpoint remoto
34
+
35
+ Para ChatGPT Apps ou conectores baseados em MCP, a URL deve apontar para:
36
+
37
+ ```text
38
+ https://sema.exemplo.com/mcp
11
39
  ```
12
40
 
13
- Via MCP, use `sema_docs_impacto` com a mesma intencao. A resposta contem `leituraObrigatoria` com caminhos, motivos e conteudo dos documentos existentes. Se algum documento obrigatorio estiver ausente, o resultado vem com bloqueio de severidade 4.
41
+ Para clientes legados que ainda pedem SSE:
14
42
 
15
- Antes de concluir, a IA deve comprovar leitura:
43
+ ```text
44
+ https://sema.exemplo.com/sse
45
+ ```
16
46
 
17
- ```bash
18
- sema finalizar-mudanca --intencao "fazer deploy" --doc-lida docs/deploy.md --json
47
+ Endpoints esperados do serviço remoto:
48
+
49
+ - `GET /healthz`: healthcheck sem segredo para proxy e deploy.
50
+ - `GET /logo.png`: logo pública do servidor MCP.
51
+ - `POST /mcp`: MCP Streamable HTTP.
52
+ - `GET /mcp` e `DELETE /mcp`: continuidade/fechamento de sessão quando o cliente usa `mcp-session-id`.
53
+ - `GET /sse` e `POST /message`: SSE legado.
54
+ - `GET /.well-known/oauth-protected-resource`: metadata OAuth para recursos protegidos.
55
+ - `GET /.well-known/oauth-authorization-server`: metadata do authorization server.
56
+ - `POST /oauth/register`: dynamic client registration.
57
+ - `GET|POST /oauth/authorize`: autorizacao com passcode.
58
+ - `POST /oauth/token`: emissao e refresh de tokens.
59
+
60
+ ## ChatGPT
61
+
62
+ No ChatGPT normal, em **Settings -> Apps & Connectors -> Advanced settings -> Create**:
63
+
64
+ - Icone: PNG quadrado, mínimo `128x128`, maximo `10 KB`.
65
+ - Nome: `Sema`.
66
+ - Descricao: `Contrato semantico IA-first para agentes validarem, inspecionarem e operarem software vivo com drift, impacto e garantias.`
67
+ - URL do servidor MCP: `https://sema.exemplo.com/mcp`.
68
+ - Autenticação: `OAuth`.
69
+
70
+ O ChatGPT abre a página de autorizacao do Sema, o operador digita o passcode privado e o servidor emite tokens proprios para o app. Nunca coloque bearer, OAuth secret ou passcode em README, AGENTS, release notes, prints ou logs.
71
+
72
+ ## Regra Zero Do MCP
73
+
74
+ O MCP deve deixar claro, em toda orientacao operacional, que contrato vem antes da ação. Antes de código, deploy, geracao, revisão, texto Author, workflow, ops, game, legal, research ou qualquer outro profile, a IA precisa criar, editar ou remover o contrato `.sema` aplicavel.
75
+
76
+ Se não existe contrato, a próxima ação e criar contrato. Se a intenção muda comportamento, a próxima ação e editar contrato. Se a funcionalidade deixa de existir, a próxima ação e remover ou aposentar o contrato. Só depois disso entram drift, impacto, código vivo, artefatos, deploy ou texto gerado.
77
+
78
+ Essa regra vale para Software, Author, Workflow, Ops, Game, Legal, Research e qualquer profile futuro. Um MCP que permite agir sem ciclo de contrato virou autocomplete com cracha, não Sema.
79
+
80
+ ## Codex É Outros Agentes
81
+
82
+ Para ambientes que aceitam MCP HTTP, configure o endpoint remoto e armazene a chave comercial `sema_mcp_*` no mecanismo de segredo do cliente. Essa chave identifica o workspace/projeto e alimenta o billing; ela nao e um token fixo global do servidor.
83
+
84
+ No Windows, a CLI pode gravar a chave como variavel do usuario sem colocar o segredo em argumento de processo:
85
+
86
+ ```powershell
87
+ Get-Clipboard | sema mcp-instalar-chave --stdin --json
88
+ ```
89
+
90
+ No VS Code oficial, use o comando `Sema: Instalar Chave MCP` e cole a chave gerada no painel. A extensao chama a CLI por stdin, grava `SEMA_MCP_AUTH_TOKEN` no usuario e orienta reabrir o cliente.
91
+
92
+ Exemplo de `~/.codex/config.toml`:
93
+
94
+ ```toml
95
+ [mcp_servers.sema]
96
+ url = "https://sema.exemplo.com/mcp"
97
+ bearer_token_env_var = "SEMA_MCP_AUTH_TOKEN"
98
+ tool_timeout_sec = 90
19
99
  ```
20
100
 
21
- Via MCP, use `sema_finalizar_mudanca`.
101
+ Para ambientes sem suporte a bearer do cliente, use OAuth quando disponivel. OAuth nao deve reutilizar uma chave fixa de servidor.
22
102
 
23
- ## Ferramentas de documentacao
103
+ ## IDE Local Vs App Remoto
24
104
 
25
- - `sema_docs_impacto`: resolve docs obrigatorias por intencao, arquivos alvo e categoria inferida.
26
- - `sema_finalizar_mudanca`: bloqueia conclusao sem docs lidas ou docs ausentes.
105
+ O MCP deve ler arquivos do ambiente onde ele roda.
27
106
 
28
- ## Quando criar docs
107
+ - Em IDE/plugin com workspace local, o fluxo preferencial e enviar um snapshot tipado para `sema_contratos_sincronizar`: `contratos`, `arquivos_codigo`, `documentacao` e `indice`. Quando a tarefa precisar verificar implementacao, envie código selecionado, nunca o projeto inteiro.
108
+ - Em ChatGPT/app remoto, o MCP roda no servidor e só enxerga roots do servidor, como `/srv/sema/projetos/...`. Caminho local de IDE não deve cair silenciosamente para outro projeto.
109
+ - Toda chamada operacional deve enviar `projeto` com um caminho existente no servidor ou com o caminho retornado pelo espelho de contratos. Em HTTP remoto, `projeto` vazio ou `.` deve falhar com `workspace_atual_nao_informado`; cair em `/srv/sema/projetos/Sema` seria validar o repositório errado.
110
+ - Quando o workspace não vier no contexto, a IA deve pedir ou usar a sincronizacao de contratos remotos e código selecionado. MCP local/stdio e opcional e deve ser reservado para drift contra código vivo completo.
111
+ - Quando o arquivo veio de upload, anexo ou sandbox do chat, use `conteudo` inline.
112
+ - Para `sema_drift`, `escopo = arquivo` ou `escopo = modulo` exige alvo explícito. Envie `arquivo` ou `contrato_alvo` com o `.sema` alvo dentro do `projeto`; se enviar apenas o diretorio do projeto, o MCP remoto deve retornar `contrato_alvo_nao_informado`. Use `escopo = projeto` somente quando a auditoria global for intencional.
29
113
 
30
- Se a intencao exige um runbook e ele nao existe, rode `sema_docs_impacto` com `criar_ausentes: true`. Exemplos:
114
+ Se uma IA pedir `C:\GitHub\Gestech` para um MCP remoto Linux, o servidor deve responder erro claro de caminho local inacessivel e orientar sincronizar contratos e código selecionado com `sema_contratos_sincronizar`. MCP local/stdio só entra quando a tarefa exige ler código local completo.
31
115
 
32
- - deploy: cria `docs/deploy.md`, `docs/env.md` e `docs/rollback.md`.
33
- - rota/API: cria `docs/api.md`.
34
- - auth: cria `docs/auth.md` e `docs/seguranca.md`.
35
- - banco: cria `docs/database.md`.
36
- - MCP: cria `docs/mcp.md`.
37
- - extensao: cria `docs/extensao-vscode.md`.
116
+ Exemplo de drift remoto focado:
38
117
 
39
- O documento criado e um ponto de partida. A IA ainda deve preencher detalhes reais do projeto antes de executar a acao.
118
+ ```json
119
+ {
120
+ "projeto": "/srv/sema/projetos/_contratos_remotos/github-gestech-0e2eb48843",
121
+ "arquivo": "contratos/promocoes.sema",
122
+ "escopo": "modulo",
123
+ "json": true
124
+ }
125
+ ```
126
+
127
+ ## Ferramentas Expostas
128
+
129
+ A lista concreta depende da versão privada implantada, mas o contrato atual espera:
130
+
131
+ - `sema_mcp_doctor`
132
+ - `sema_resumo`
133
+ - `sema_contratos_sincronizar`
134
+ - `sema_contrato_salvar`
135
+ - `sema_contrato_remover`
136
+ - `sema_listar_contratos`
137
+ - `sema_ler_contrato`
138
+ - `sema_validar`
139
+ - `sema_drift`
140
+ - `sema_impacto`
141
+ - `sema_renomear_semantico`
142
+ - `sema_inspecionar`
143
+ - `sema_ir`
144
+ - `sema_verificar`
145
+ - `sema_contexto_ia`
146
+ - `sema_prompt_ia`
147
+ - `sema_author_iniciar`
148
+ - `sema_author_validar`
149
+ - `sema_author_briefing`
150
+ - `sema_author_revisar_cliches`
151
+ - `sema_profile_validar`
152
+ - `sema_sync_ai_entrypoints`
153
+ - `sema_instalar_exemplos`
154
+ - `sema_docs_impacto`
155
+ - `sema_finalizar_mudanca`
156
+
157
+ O doctor operacional do MCP privado fica no backlog do serviço comercial. Quando existir, ele deve retornar versão do MCP, versão da CLI, transporte, `cwd` do processo, `cwd` efetivo, raiz detectada, roots permitidas, endpoints e marcadores do projeto sem expor tokens, secrets ou passcodes.
158
+
159
+ ## Arquivos Enviados No ChatGPT
160
+
161
+ O MCP remoto roda no servidor e não le caminhos do sandbox do ChatGPT como `/mnt/data/pedido.sema`. Para esses casos, ferramentas de contrato devem aceitar `conteudo` inline:
162
+
163
+ ```json
164
+ {
165
+ "conteudo": "module exemplo { ... }",
166
+ "nome_arquivo": "pedido.sema"
167
+ }
168
+ ```
169
+
170
+ Use `conteudo` em `sema_validar`, `sema_ir`, `sema_inspecionar`, `sema_contexto_ia`, `sema_author_validar`, `sema_author_briefing` e `sema_author_revisar_cliches` quando o contrato vier de upload, anexo ou texto colado.
171
+
172
+ Use `arquivo` apenas quando o caminho existir dentro das roots permitidas no servidor. Se uma IA enviar `/mnt/data/...`, o servidor deve orientar repetir a chamada usando `conteudo`.
173
+
174
+ ## Espelho De Contratos Da IDE
175
+
176
+ Para IDEs e plugins, o MCP remoto não precisa ler o projeto inteiro para
177
+ governar a mudanca. O cliente deve enviar um snapshot tipado:
178
+
179
+ ```json
180
+ {
181
+ "projeto_id": "C:\\GitHub\\Gestech",
182
+ "nome_projeto": "Gestech",
183
+ "contratos": [
184
+ {
185
+ "caminho": "contratos/produtos_catalogo.sema",
186
+ "conteudo": "module ... { ... }"
187
+ }
188
+ ],
189
+ "arquivos_codigo": [
190
+ {
191
+ "caminho": "routes/produtos.py",
192
+ "conteudo": "def listar_produtos(...): ..."
193
+ },
194
+ {
195
+ "caminho": "tests/test_produtos.py",
196
+ "conteudo": "def test_listar_produtos(...): ..."
197
+ }
198
+ ],
199
+ "documentacao": [
200
+ {
201
+ "caminho": "AGENTS.md",
202
+ "tipo": "operacional",
203
+ "conteudo": "# Regras do projeto..."
204
+ },
205
+ {
206
+ "caminho": "docs/VPS_DEPLOY.md",
207
+ "tipo": "deploy",
208
+ "conteudo": "# Deploy..."
209
+ }
210
+ ],
211
+ "indice": [
212
+ {
213
+ "caminho": "routes/produtos.py",
214
+ "tipo": "codigo",
215
+ "hash": "sha256:...",
216
+ "mtime": "2026-05-16T12:00:00Z",
217
+ "resumo": "Rotas de produtos"
218
+ }
219
+ ]
220
+ }
221
+ ```
222
+
223
+ O servidor grava em uma pasta Linux dedicada contendo contratos, metadados
224
+ mínimos e apenas os arquivos de código enviados. A resposta traz `projeto`;
225
+ esse caminho deve ser usado nas proximas chamadas. Se o Sema criar, editar ou
226
+ remover um contrato, a IDE deve trazer a alteracao de volta para o workspace
227
+ local antes de qualquer código.
228
+
229
+ O código enviado deve ser selecionado por criterio: arquivos citados em `impl`,
230
+ `vinculos`, routes, effects, services/repos proximos e testes relacionados. O
231
+ MCP deve bloquear `.env`, tokens, chaves, `node_modules`, `.git`, build/cache,
232
+ uploads, dependências instaladas e snapshots de repo inteiro. Quando nenhum
233
+ código for enviado, o Sema deve declarar `contratos_apenas` e trocar lacunas de
234
+ implementacao por `implementacao_nao_enviada` ou
235
+ `codigo_nao_verificado_neste_modo`. Quando código parcial for enviado, deve
236
+ declarar `codigo_selecionado` e limitar a conclusóo ao snapshot.
237
+
238
+ Documentação enviada deve ser operacional ou de negócio: `AGENTS.md`,
239
+ `README.md`, docs do módulo mexido, notas de deploy quando a tarefa envolve
240
+ VPS, runbooks em incidentes e exemplos Sema quando a IA estiver criando
241
+ contrato. O índice deve conter mapa de arquivos relevantes, hashes, timestamps
242
+ é resumo curto sem conteúdo sensível.
40
243
 
41
- ## Regra de conclusao
244
+ Toda conclusóo precisa declarar sua fonte: `contrato`, `codigo`,
245
+ `documentacao` ou `indice`. Exemplos de leitura: bloqueado pelo contrato;
246
+ divergente do código; regra documentada mas sem contrato; documentação
247
+ contradiz implementacao; escopo inferido pelo índice.
42
248
 
43
- Uma mudanca nao deve ser considerada concluida enquanto `sema_finalizar_mudanca` retornar diagnostico de severidade 4 ou maior. Isso inclui:
249
+ `sema_author_revisar_cliches` opera como validador bloqueante: violacao de politica Author deve retornar `aprovado: false`, `bloqueado: true` e `sucesso: false`. Um contrato narrativo que não bloqueia drift, voz genérica ou tema sensível sem autorizacao não deve ser tratado como contrato.
44
250
 
45
- - documento obrigatorio ausente
46
- - leitura obrigatoria nao comprovada
47
- - runbook criado mas ainda nao revisado para a operacao real
251
+ ## Segurança Operacional
252
+
253
+ O servidor privado deve rodar com:
254
+
255
+ - HTTPS no reverse proxy.
256
+ - Chave comercial bearer por request ou OAuth obrigatorio.
257
+ - Passcode OAuth configurado para ChatGPT.
258
+ - Roots restritas a uma pasta dedicada, por exemplo `/srv/sema/projetos`.
259
+ - Logs sem tokens, passcodes, secrets ou conteúdo sensível desnecessário.
260
+ - Rotacao imediata da chave comercial ou segredo OAuth se qualquer valor aparecer em terminal compartilhado, print, chat ou log.
261
+
262
+ Nunca publique `/mcp` ou `/sse` sem autenticação e raiz restrita.
263
+
264
+ ## Fluxo Obrigatorio Para Agentes
265
+
266
+ Antes de uma ação operacional, a IA deve declarar a intenção e resolver o contrato:
267
+
268
+ 1. `sema_resumo` para descobrir o estado do projeto.
269
+ 2. `sema_listar_contratos` e `sema_ler_contrato` quando disponiveis, ou `sema_inspecionar` no `.sema` mais próximo.
270
+ 3. Criar, editar ou remover o contrato aplicavel antes de tocar código, docs operacionais, deploy, texto Author, workflow, jogo, juridico, pesquisa ou ops.
271
+ 4. `sema_validar` no contrato alterado.
272
+ 5. `sema_drift`, `sema_impacto` ou gate de profile/Author conforme o tipo.
273
+
274
+ Depois do ciclo de contrato, a IA deve chamar:
275
+
276
+ ```bash
277
+ sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
278
+ ```
279
+
280
+ Via MCP privado, use `sema_docs_impacto` com a mesma intenção. A resposta contem `leituraObrigatoria` com caminhos, motivos e conteúdo dos documentos existentes.
281
+
282
+ Antes de concluir:
283
+
284
+ ```bash
285
+ sema finalizar-mudanca --intencao "fazer deploy" --doc-lida docs/deploy.md --json
286
+ ```
48
287
 
49
- ## Relacao com contratos
288
+ Via MCP privado, use `sema_finalizar_mudanca`.
50
289
 
51
- Essas ferramentas nao substituem `sema_resumo`, `sema_inspecionar`, `sema_drift` ou `sema_validar`. Elas adicionam o portao documental: a IA descobre o que ler e o que documentar antes de agir.
290
+ ## Relação Com Contratos
52
291
 
53
- O MCP acompanha a semantica entregue pela CLI. Quando a CLI aceita uma origem viva, como Lua em `use`, `impl`, IR, `drift` e `sema importar`, a ferramenta MCP correspondente passa a operar esse contrato desde que CLI e MCP estejam na mesma versao.
292
+ Essas ferramentas não substituem `sema_resumo`, `sema_inspecionar`, `sema_drift` ou `sema_validar`. Elas adicionam a camada remota privada para agentes fora da máquina local. O contrato continua sendo o portao: criar, editar ou remover contrato antes de qualquer ação e obrigatorio em todo tipo de Sema.
@@ -1,18 +1,28 @@
1
1
  # Pagamento Ponta a Ponta na Sema
2
2
 
3
- Este documento descreve o vertical oficial de pagamento da Sema no fluxo publico atual.
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.
4
7
 
5
- O objetivo nao e mostrar um exemplo fofo. O objetivo e demonstrar que a linguagem ja consegue modelar um fluxo de negocio real com:
6
8
 
7
- - contrato publico
9
+ Este documento descreve o vertical oficial de pagamento da Sema no fluxo público atual.
10
+
11
+ O objetivo não é mostrar um exemplo fofo. O objetivo e demonstrar que a linguagem já consegue modelar um fluxo de negócio real com:
12
+
13
+ - contrato público
14
+ - segurança e autorizacao
15
+ - classificacao de dados
16
+ - segredos e proibicoes explicitas
8
17
  - regras
9
18
  - efeitos operacionais
19
+ - execução, idempotencia, retry e compensacao
10
20
  - transicoes de estado
11
- - orquestracao
21
+ - orquestração
12
22
  - erros publicos
13
- - testes executaveis
23
+ - testes executaveis com saída, status ou erro observavel
14
24
 
15
- ## Arquivos de referencia
25
+ ## Arquivos de referência
16
26
 
17
27
  - `exemplos/pagamento_dominio.sema`
18
28
  - `exemplos/pagamento.sema`
@@ -29,7 +39,7 @@ Centraliza os contratos compartilhados:
29
39
 
30
40
  ### `exemplos.pagamento`
31
41
 
32
- Centraliza a operacao do vertical:
42
+ Centraliza a operação do vertical:
33
43
 
34
44
  - `task processar_pagamento`
35
45
  - `task confirmar_pagamento`
@@ -40,19 +50,19 @@ Centraliza a operacao do vertical:
40
50
 
41
51
  ## Narrativa do caso
42
52
 
43
- ### Entrada publica
53
+ ### Entrada pública
44
54
 
45
- A operacao entra por:
55
+ A operação entra por:
46
56
 
47
57
  - `route processar_pagamento_publico`
48
58
 
49
- Esse contrato publica:
59
+ Esse contrato pública:
50
60
 
51
61
  - `pagamento_id`
52
62
  - `valor`
53
63
  - `token`
54
64
 
55
- E expoe:
65
+ É expoe:
56
66
 
57
67
  - `pagamento`
58
68
  - `status`
@@ -62,13 +72,17 @@ E expoe:
62
72
 
63
73
  A `task processar_pagamento` faz o trabalho central:
64
74
 
75
+ - exige `authz`
76
+ - classifica `dados`
77
+ - declara `segredos`, `audit` e `forbidden`
65
78
  - valida entrada
66
79
  - consulta o gateway
67
80
  - persiste o pagamento
68
81
  - emite evento
69
82
  - notifica comprovante
70
83
  - registra auditoria
71
- - garante consistencia da saida
84
+ - declara `execucao` com idempotencia, timeout, retry, compensacao e criticidade
85
+ - garante consistencia da saída
72
86
 
73
87
  ### Estado e transicoes
74
88
 
@@ -78,15 +92,15 @@ O `state ciclo_pagamento` ancora o contrato de transicao:
78
92
  - `AUTORIZADO -> PROCESSADO`
79
93
  - `PENDENTE -> RECUSADO`
80
94
 
81
- A `task` explicita quais transicoes ela realmente usa.
95
+ A `task` explícita quais transicoes ela realmente usa.
82
96
 
83
- ### Flow de orquestracao
97
+ ### Flow de orquestração
84
98
 
85
99
  O `flow orquestracao_pagamento` demonstra:
86
100
 
87
101
  - passagem de contexto
88
- - confirmacao em caso de sucesso
89
- - notificacao em caso de recusa
102
+ - confirmação em caso de sucesso
103
+ - notificação em caso de recusa
90
104
  - registro de timeout em caso de indisponibilidade
91
105
  - ramificacao por erro tipado
92
106
 
@@ -100,7 +114,7 @@ O vertical usa as 5 categorias oficiais da Sema:
100
114
  - `notificacao`
101
115
  - `auditoria`
102
116
 
103
- Tambem usa `criticidade` para deixar claro o peso operacional do efeito.
117
+ Também usa `criticidade` para deixar claro o peso operacional do efeito.
104
118
 
105
119
  ### Falhas reais
106
120
 
@@ -114,9 +128,9 @@ O vertical cobre explicitamente:
114
128
 
115
129
  ### 1. Escrever ou ajustar os arquivos `.sema`
116
130
 
117
- Use o dominio compartilhado em um modulo e a operacao em outro modulo.
131
+ Use o domínio compartilhado em um módulo e a operação em outro módulo.
118
132
 
119
- ### 2. Aplicar o formato canonico
133
+ ### 2. Aplicar o formato canônico
120
134
 
121
135
  ```bash
122
136
  sema formatar exemplos
@@ -128,7 +142,7 @@ sema formatar exemplos
128
142
  sema validar exemplos/pagamento.sema
129
143
  ```
130
144
 
131
- ### 4. Gerar codigo
145
+ ### 4. Gerar código
132
146
 
133
147
  ```bash
134
148
  sema compilar exemplos/pagamento.sema --alvo typescript --saida ./.tmp/pagamento-ts
@@ -143,13 +157,15 @@ sema verificar exemplos/pagamento.sema --json --saida ./.tmp/verificacao-pagamen
143
157
 
144
158
  ## O que esse vertical prova
145
159
 
146
- Se esse vertical passa, a Sema ja consegue demonstrar que:
160
+ Se esse vertical passa, a Sema consegue demonstrar que:
147
161
 
148
- - modela contrato publico
162
+ - modela contrato público
163
+ - modela superficie sensível sem deixar segurança invisível
149
164
  - modela efeitos operacionais
150
165
  - modela falhas reais
151
- - modulariza dominio com `use`
166
+ - modulariza domínio com `use`
167
+ - declara idempotencia e execução crítica sem criar sintaxe nova
152
168
  - gera artefatos coerentes para TypeScript e Python
153
169
  - executa testes gerados sem gambiarra conceitual
154
170
 
155
- Esse e o criterio pratico que sustenta o uso publico do vertical de pagamento como referencia para IA e geracao.
171
+ Esse e o criterio pratico que sustenta o uso público do vertical de pagamento como referência para IA e geracao.
@@ -1,6 +1,12 @@
1
- # Persistencia Vendor-First
1
+ # Persistência Vendor-First
2
2
 
3
- Sema 1.5.7 trata banco como superficie semantica de primeira classe. Isso significa assumir diferencas reais entre engines e coloca-las no contrato, no semantico, no IR, no drift, no impact map, na renomeacao assistida, no `verificar` e na extensao. Nesta linha, o `drift` tambem materializa persistencia local real em `Preferences`, `localStorage` e `sessionStorage` quando a task esta ancorada no arquivo que usa essas APIs.
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
+ Sema 1.5.19 trata banco como superficie semântica de primeira classe. Isso significa assumir diferenças reais entre engines e coloca-las no contrato, no semântico, na IR, no drift, no impact map, na renomeacao assistida, no `verificar` e na extensao. Nesta linha, o `drift` também materializa persistência local real em `Preferences`, `localStorage` e `sessionStorage` quando a task está ancorada no arquivo que usa essas APIs, preservando o framing IA-first da release atual.
4
10
 
5
11
  ## Engines publicas
6
12
 
@@ -128,17 +134,17 @@ Cada recurso recebe compatibilidade por engine:
128
134
  - `parcial`
129
135
  - `invalido`
130
136
 
131
- Isso deixa explicito quando o contrato esta pedindo portabilidade falsa, por exemplo:
137
+ Isso deixa explícito quando o contrato está pedindo portabilidade falsa, por exemplo:
132
138
 
133
139
  - `table` em `redis`
134
140
  - `foreign_keys` em engine sem suporte equivalente
135
- - transacao multi-documento tratada como universal
141
+ - transação multi-documento tratada como universal
136
142
 
137
143
  ## Onde isso aparece
138
144
 
139
145
  - parser e AST
140
146
  - IR canonica
141
- - analisador semantico
147
+ - analisador semântico
142
148
  - formatador
143
149
  - `sema drift`
144
150
  - `sema importar`