@semacode/cli 1.5.18 → 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 (93) hide show
  1. package/AGENTS.md +268 -260
  2. package/LICENSE +22 -22
  3. package/README.md +144 -104
  4. package/SEMA_BRIEF.curto.txt +7 -5
  5. package/SEMA_BRIEF.md +60 -4
  6. package/SEMA_BRIEF.micro.txt +6 -4
  7. package/SEMA_INDEX.json +917 -41
  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 +123 -14
  15. package/dist/drift.js.map +1 -1
  16. package/dist/index.js +1889 -38
  17. package/dist/index.js.map +1 -1
  18. package/dist/mcpRemoto.d.ts +32 -0
  19. package/dist/mcpRemoto.js +61 -0
  20. package/dist/mcpRemoto.js.map +1 -0
  21. package/dist/projeto.js +3 -1
  22. package/dist/projeto.js.map +1 -1
  23. package/docs/AGENT_STARTER.md +103 -97
  24. package/docs/cli.md +175 -106
  25. package/docs/como-ensinar-a-sema-para-ia.md +41 -35
  26. package/docs/deploy.md +231 -43
  27. package/docs/documentacao.md +61 -36
  28. package/docs/env.md +105 -56
  29. package/docs/extensao-vscode.md +12 -4
  30. package/docs/fluxo-pratico-ia-sema.md +182 -176
  31. package/docs/instalacao-e-primeiro-uso.md +52 -30
  32. package/docs/integracao-com-ia.md +108 -101
  33. package/docs/mcp.md +292 -51
  34. package/docs/pagamento-ponta-a-ponta.md +34 -28
  35. package/docs/persistencia-vendor-first.md +11 -5
  36. package/docs/prompt-base-ia-sema.md +13 -7
  37. package/docs/rollback.md +17 -15
  38. package/docs/sintaxe.md +180 -174
  39. package/exemplos/agendamento.sema +105 -105
  40. package/exemplos/assinatura.sema +133 -133
  41. package/exemplos/auditoria.sema +89 -89
  42. package/exemplos/autenticacao.sema +125 -125
  43. package/exemplos/author_obra_comum.sema +294 -0
  44. package/exemplos/author_tema_sensivel.sema +264 -0
  45. package/exemplos/automacao.sema +107 -107
  46. package/exemplos/cadastro_usuario.sema +54 -54
  47. package/exemplos/calculadora.sema +78 -78
  48. package/exemplos/crud_simples.sema +89 -89
  49. package/exemplos/estoque.sema +127 -127
  50. package/exemplos/exportacao.sema +94 -94
  51. package/exemplos/fila.sema +130 -130
  52. package/exemplos/integracao_externa.sema +94 -94
  53. package/exemplos/multi_tenant.sema +140 -140
  54. package/exemplos/notificacao.sema +149 -149
  55. package/exemplos/operacao_estrategia.sema +633 -633
  56. package/exemplos/pagamento.sema +434 -434
  57. package/exemplos/pagamento_dominio.sema +35 -35
  58. package/exemplos/pedido.sema +255 -255
  59. package/exemplos/permissao.sema +121 -121
  60. package/exemplos/persistencia_vendor_first.sema +86 -86
  61. package/exemplos/profile_game.sema +114 -0
  62. package/exemplos/profile_legal.sema +105 -0
  63. package/exemplos/profile_ops.sema +110 -0
  64. package/exemplos/profile_research.sema +104 -0
  65. package/exemplos/profile_software.sema +123 -0
  66. package/exemplos/profile_workflow_n8n.sema +99 -0
  67. package/exemplos/relatorio.sema +93 -93
  68. package/exemplos/replica_analitica_erp.sema +160 -160
  69. package/exemplos/testes_embutidos.sema +45 -45
  70. package/exemplos/tratamento_erro.sema +157 -157
  71. package/exemplos/upload_arquivo.sema +93 -93
  72. package/exemplos/webhook.sema +94 -94
  73. package/llms-full.txt +34 -34
  74. package/llms.txt +17 -17
  75. package/node_modules/@sema/gerador-css/dist/index.js +563 -563
  76. package/node_modules/@sema/gerador-css/package.json +1 -1
  77. package/node_modules/@sema/gerador-dart/package.json +1 -1
  78. package/node_modules/@sema/gerador-html/dist/index.js +90 -90
  79. package/node_modules/@sema/gerador-html/package.json +1 -1
  80. package/node_modules/@sema/gerador-javascript/dist/index.js +92 -92
  81. package/node_modules/@sema/gerador-javascript/package.json +1 -1
  82. package/node_modules/@sema/gerador-lua/dist/index.js +53 -53
  83. package/node_modules/@sema/gerador-lua/package.json +1 -1
  84. package/node_modules/@sema/gerador-python/dist/index.js +122 -96
  85. package/node_modules/@sema/gerador-python/dist/index.js.map +1 -1
  86. package/node_modules/@sema/gerador-python/package.json +1 -1
  87. package/node_modules/@sema/gerador-typescript/dist/index.js +153 -153
  88. package/node_modules/@sema/gerador-typescript/package.json +1 -1
  89. package/node_modules/@sema/nucleo/dist/formatador/index.js +12 -4
  90. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
  91. package/node_modules/@sema/nucleo/package.json +1 -1
  92. package/node_modules/@sema/padroes/package.json +1 -1
  93. package/package.json +11 -11
@@ -1,103 +1,110 @@
1
- # Integracao com IA
2
-
3
- Sema foi feita para IA operar software vivo com menos adivinhacao. O consumidor principal nao e o humano lendo arquivo bonito; e o agente decidindo o que pode tocar, que efeito vai causar e como validar antes de mexer no codigo vivo.
4
-
5
- Humanos entram como autores, revisores e aprovadores do contrato. A ponte da Sema e da intencao operacional para um formato que IA consegue consumir sem transformar contexto em chute.
6
-
7
- ## Ordem recomendada
8
-
9
- 1. `sema inspecionar . --json`
10
- 2. `sema resumo <arquivo-ou-pasta> --micro --para onboarding`
11
- 3. `sema drift <arquivo-ou-pasta> --json`
12
- 4. `sema contexto-ia <arquivo.sema> --saida <diretorio> --json`
13
-
14
- Nao comece cavando codigo bruto quando a ferramenta ja consegue te dar contrato, score, lacuna e superficie viva.
15
-
16
- ## Por capacidade do modelo
17
-
18
- IA pequena:
19
-
20
- - `sema resumo --micro`
21
- - `briefing.min.json`
22
- - `prompt-curto.txt`
23
-
24
- IA media:
25
-
26
- - `sema resumo --curto`
27
- - `drift.json`
28
- - `briefing.min.json`
29
-
30
- IA grande:
31
-
32
- - `sema contexto-ia`
33
- - `briefing.json`
34
- - `ir.json`
35
- - `ast.json`
36
-
37
- ## MCP
38
-
39
- Se o agente usa MCP:
40
-
41
- ```bash
42
- npm install -g @semacode/cli @semacode/mcp
43
- ```
44
-
45
- Depois configure:
46
-
47
- ```json
48
- {
49
- "mcpServers": {
50
- "sema": {
51
- "command": "npx",
52
- "args": ["-y", "@semacode/mcp"]
53
- }
54
- }
55
- }
56
- ```
57
-
58
- Ferramentas mais uteis no fluxo de mudanca:
59
-
60
- - `sema_drift` para medir coerencia viva
61
- - `sema_impacto` para dizer o que tocar
62
- - `sema_renomear_semantico` para guiar troca de nomes sem misturar payload antigo e novo
63
- - `sema_docs_impacto` para obrigar leitura das docs relacionadas antes de agir
64
- - `sema_finalizar_mudanca` para bloquear conclusao sem leitura documental comprovada
65
-
66
- ## Portao documental
67
-
68
- Antes de editar ou executar operacao sensivel, declare a intencao:
69
-
70
- ```bash
71
- sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
72
- ```
73
-
74
- Leia todos os itens em `leituraObrigatoria`. Se `docsAusentes` vier preenchido, crie ou complete os documentos antes da acao.
75
-
76
- Antes de concluir:
77
-
78
- ```bash
79
- sema finalizar-mudanca --intencao "fazer deploy" --doc-lida docs/deploy.md --json
80
- ```
81
-
82
- Se houver diagnostico de severidade 4+, a IA nao deve finalizar a mudanca.
83
-
84
- ## Regras praticas
85
-
86
- - trate `.sema` e IR como fonte de verdade semantica
1
+ # Integração com IA
2
+
3
+ <!-- sema:i18n -->
4
+ > EN: English first. The canonical operational body below may still be in Portuguese until full translation lands.
5
+ > PT: Português depois, com acentos preservados.
6
+ > ES: Español al final; não traduza comandos, rotas nem sómbolos `.sema` sem contrato.
7
+
8
+
9
+ 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.
12
+
13
+ ## Ordem recomendada
14
+
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`
21
+
22
+ Não comece cavando código bruto quando a ferramenta já consegue te dar contrato, score, lacuna e superficie viva. Contrato primeiro vale para Software, Author, Workflow, Ops, Game, Legal, Research e qualquer profile futuro.
23
+
24
+ ## Por capacidade do modelo
25
+
26
+ IA pequena:
27
+
28
+ - `sema resumo --micro`
29
+ - `briefing.min.json`
30
+ - `prompt-curto.txt`
31
+
32
+ IA média:
33
+
34
+ - `sema resumo --curto`
35
+ - `drift.json`
36
+ - `briefing.min.json`
37
+
38
+ IA grande:
39
+
40
+ - `sema contexto-ia`
41
+ - `briefing.json`
42
+ - `ir.json`
43
+ - `ast.json`
44
+
45
+ ## MCP
46
+
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.
48
+
49
+ Exemplo para clientes que aceitam MCP HTTP:
50
+
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
56
+ ```
57
+
58
+ Ferramentas mais úteis no fluxo de mudanca:
59
+
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
65
+ - `sema_impacto` para dizer o que tocar
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
68
+ - `sema_docs_impacto` para obrigar leitura das docs relacionadas antes de agir
69
+ - `sema_finalizar_mudanca` para bloquear conclusóo sem leitura documental comprovada
70
+
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.
72
+
73
+ ## Portao documental
74
+
75
+ Depois de resolver e validar o contrato, declare a intenção documental:
76
+
77
+ ```bash
78
+ sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
79
+ ```
80
+
81
+ Leia todos os itens em `leituraObrigatoria`. Se `docsAusentes` vier preenchido, crie ou complete os documentos antes da ação.
82
+
83
+ Antes de concluir:
84
+
85
+ ```bash
86
+ sema finalizar-mudanca --intencao "fazer deploy" --doc-lida docs/deploy.md --json
87
+ ```
88
+
89
+ Se houver diagnóstico de severidade 4+, a IA não deve finalizar a mudanca.
90
+
91
+ ## Regras praticas
92
+
93
+ - trate `.sema` e IR como fonte de verdade semântica
87
94
  - trate humanos como donos/aprovadores e agentes como consumidores primarios do contrato
88
- - trate `drift` como juiz da adocao incremental
95
+ - trate `drift` como juiz da adoção incremental
89
96
  - use `briefing.min.json` antes de abrir dezenas de arquivos
90
- - nao invente sintaxe fora da gramatica oficial
91
- - em task sensivel, teste que valida apenas `sucesso` e fraco; inclua output, erro esperado ou garantia observavel
92
- - em persistencia, nao assuma que bancos diferentes tem o mesmo contrato operacional
93
-
94
- ## Arquivos uteis no repo
95
-
96
- - `AGENTS.md`
97
- - `llms.txt`
98
- - `llms-full.txt`
99
- - `SEMA_BRIEF.md`
100
- - `SEMA_INDEX.json`
101
- - `docs/persistencia-vendor-first.md`
102
- - `docs/mcp.md`
103
- - `docs/documentacao.md`
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
100
+
101
+ ## Arquivos úteis no repo
102
+
103
+ - `AGENTS.md`
104
+ - `llms.txt`
105
+ - `llms-full.txt`
106
+ - `SEMA_BRIEF.md`
107
+ - `SEMA_INDEX.json`
108
+ - `docs/persistencia-vendor-first.md`
109
+ - `docs/mcp.md`
110
+ - `docs/documentacao.md`
package/docs/mcp.md CHANGED
@@ -1,51 +1,292 @@
1
- # MCP
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.
4
-
5
- ## Fluxo obrigatorio para agentes
6
-
7
- Antes de uma acao operacional, a IA deve declarar a intencao e chamar:
8
-
9
- ```bash
10
- sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
11
- ```
12
-
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.
14
-
15
- Antes de concluir, a IA deve comprovar leitura:
16
-
17
- ```bash
18
- sema finalizar-mudanca --intencao "fazer deploy" --doc-lida docs/deploy.md --json
19
- ```
20
-
21
- Via MCP, use `sema_finalizar_mudanca`.
22
-
23
- ## Ferramentas de documentacao
24
-
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.
27
-
28
- ## Quando criar docs
29
-
30
- Se a intencao exige um runbook e ele nao existe, rode `sema_docs_impacto` com `criar_ausentes: true`. Exemplos:
31
-
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`.
38
-
39
- O documento criado e um ponto de partida. A IA ainda deve preencher detalhes reais do projeto antes de executar a acao.
40
-
41
- ## Regra de conclusao
42
-
43
- Uma mudanca nao deve ser considerada concluida enquanto `sema_finalizar_mudanca` retornar diagnostico de severidade 4 ou maior. Isso inclui:
44
-
45
- - documento obrigatorio ausente
46
- - leitura obrigatoria nao comprovada
47
- - runbook criado mas ainda nao revisado para a operacao real
48
-
49
- ## Relacao com contratos
50
-
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.
1
+ # Private MCP
2
+
3
+ ## English
4
+
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
+
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
+
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
39
+ ```
40
+
41
+ Para clientes legados que ainda pedem SSE:
42
+
43
+ ```text
44
+ https://sema.exemplo.com/sse
45
+ ```
46
+
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
99
+ ```
100
+
101
+ Para ambientes sem suporte a bearer do cliente, use OAuth quando disponivel. OAuth nao deve reutilizar uma chave fixa de servidor.
102
+
103
+ ## IDE Local Vs App Remoto
104
+
105
+ O MCP só deve ler arquivos do ambiente onde ele roda.
106
+
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.
113
+
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.
115
+
116
+ Exemplo de drift remoto focado:
117
+
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.
243
+
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.
248
+
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.
250
+
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
+ ```
287
+
288
+ Via MCP privado, use `sema_finalizar_mudanca`.
289
+
290
+ ## Relação Com Contratos
291
+
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.