@semacode/cli 1.5.30 → 1.5.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +294 -0
- package/AGENT_CONTEXT_PACK.json +164 -0
- package/LICENSE +22 -0
- package/README.md +85 -144
- package/SEMA_BRIEF.curto.txt +11 -0
- package/SEMA_BRIEF.md +616 -0
- package/SEMA_BRIEF.micro.txt +9 -0
- package/SEMA_INDEX.json +9393 -0
- package/dist/billing/index.d.ts +46 -0
- package/dist/billing/index.js +143 -0
- package/dist/billing/index.js.map +1 -0
- package/dist/comandos.js +33 -0
- package/dist/comandos.js.map +1 -1
- package/dist/controleComercialSupabase.d.ts +7 -0
- package/dist/controleComercialSupabase.js +6 -0
- package/dist/controleComercialSupabase.js.map +1 -0
- package/dist/controleComercialSupabaseAdmin.d.ts +7 -0
- package/dist/controleComercialSupabaseAdmin.js +138 -0
- package/dist/controleComercialSupabaseAdmin.js.map +1 -0
- package/dist/controleComercialSupabaseCadastro.d.ts +4 -0
- package/dist/controleComercialSupabaseCadastro.js +85 -0
- package/dist/controleComercialSupabaseCadastro.js.map +1 -0
- package/dist/controleComercialSupabaseConstantes.d.ts +28 -0
- package/dist/controleComercialSupabaseConstantes.js +44 -0
- package/dist/controleComercialSupabaseConstantes.js.map +1 -0
- package/dist/controleComercialSupabaseConsumo.d.ts +2 -0
- package/dist/controleComercialSupabaseConsumo.js +77 -0
- package/dist/controleComercialSupabaseConsumo.js.map +1 -0
- package/dist/controleComercialSupabaseConta.d.ts +11 -0
- package/dist/controleComercialSupabaseConta.js +157 -0
- package/dist/controleComercialSupabaseConta.js.map +1 -0
- package/dist/controleComercialSupabaseProfiles.d.ts +4 -0
- package/dist/controleComercialSupabaseProfiles.js +55 -0
- package/dist/controleComercialSupabaseProfiles.js.map +1 -0
- package/dist/controleComercialSupabaseTipos.d.ts +3 -0
- package/dist/controleComercialSupabaseTipos.js +2 -0
- package/dist/controleComercialSupabaseTipos.js.map +1 -0
- package/dist/controleComercialSupabaseTiposAdmin.d.ts +152 -0
- package/dist/controleComercialSupabaseTiposAdmin.js +2 -0
- package/dist/controleComercialSupabaseTiposAdmin.js.map +1 -0
- package/dist/controleComercialSupabaseTiposBase.d.ts +169 -0
- package/dist/controleComercialSupabaseTiposBase.js +2 -0
- package/dist/controleComercialSupabaseTiposBase.js.map +1 -0
- package/dist/controleComercialSupabaseTiposConta.d.ts +220 -0
- package/dist/controleComercialSupabaseTiposConta.js +2 -0
- package/dist/controleComercialSupabaseTiposConta.js.map +1 -0
- package/dist/dev/index.d.ts +18 -0
- package/dist/dev/index.js +143 -0
- package/dist/dev/index.js.map +1 -0
- package/dist/index.js +222 -46
- package/dist/index.js.map +1 -1
- package/dist/init/index.d.ts +23 -0
- package/dist/init/index.js +112 -0
- package/dist/init/index.js.map +1 -0
- package/dist/init/templates.d.ts +11 -0
- package/dist/init/templates.js +660 -0
- package/dist/init/templates.js.map +1 -0
- package/dist/runnerValidacaoRemota.d.ts +9 -0
- package/dist/runnerValidacaoRemota.js +9 -0
- package/dist/runnerValidacaoRemota.js.map +1 -0
- package/dist/runnerValidacaoRemotaBateria.d.ts +10 -0
- package/dist/runnerValidacaoRemotaBateria.js +115 -0
- package/dist/runnerValidacaoRemotaBateria.js.map +1 -0
- package/dist/runnerValidacaoRemotaCli.d.ts +4 -0
- package/dist/runnerValidacaoRemotaCli.js +86 -0
- package/dist/runnerValidacaoRemotaCli.js.map +1 -0
- package/dist/runnerValidacaoRemotaComandos.d.ts +7 -0
- package/dist/runnerValidacaoRemotaComandos.js +123 -0
- package/dist/runnerValidacaoRemotaComandos.js.map +1 -0
- package/dist/runnerValidacaoRemotaEscopo.d.ts +4 -0
- package/dist/runnerValidacaoRemotaEscopo.js +79 -0
- package/dist/runnerValidacaoRemotaEscopo.js.map +1 -0
- package/dist/runnerValidacaoRemotaExecucao.d.ts +2 -0
- package/dist/runnerValidacaoRemotaExecucao.js +102 -0
- package/dist/runnerValidacaoRemotaExecucao.js.map +1 -0
- package/dist/runnerValidacaoRemotaRelatorio.d.ts +3 -0
- package/dist/runnerValidacaoRemotaRelatorio.js +93 -0
- package/dist/runnerValidacaoRemotaRelatorio.js.map +1 -0
- package/dist/runnerValidacaoRemotaServidor.d.ts +3 -0
- package/dist/runnerValidacaoRemotaServidor.js +157 -0
- package/dist/runnerValidacaoRemotaServidor.js.map +1 -0
- package/dist/runnerValidacaoRemotaSnapshot.d.ts +10 -0
- package/dist/runnerValidacaoRemotaSnapshot.js +217 -0
- package/dist/runnerValidacaoRemotaSnapshot.js.map +1 -0
- package/dist/runnerValidacaoRemotaTipos.d.ts +158 -0
- package/dist/runnerValidacaoRemotaTipos.js +35 -0
- package/dist/runnerValidacaoRemotaTipos.js.map +1 -0
- package/dist/runnerValidacaoRemotaUtil.d.ts +3 -0
- package/dist/runnerValidacaoRemotaUtil.js +18 -0
- package/dist/runnerValidacaoRemotaUtil.js.map +1 -0
- package/dist/runnerValidacaoRemotaWorkspace.d.ts +2 -0
- package/dist/runnerValidacaoRemotaWorkspace.js +110 -0
- package/dist/runnerValidacaoRemotaWorkspace.js.map +1 -0
- package/dist/sync/index.d.ts +24 -0
- package/dist/sync/index.js +174 -0
- package/dist/sync/index.js.map +1 -0
- package/docs/AGENT_STARTER.md +109 -0
- package/docs/api.md +82 -0
- package/docs/cli.md +93 -0
- package/docs/como-ensinar-a-sema-para-ia.md +30 -0
- package/docs/deploy.md +45 -0
- package/docs/documentacao.md +88 -0
- package/docs/env.md +115 -0
- package/docs/extensao-vscode.md +42 -0
- package/docs/fluxo-pratico-ia-sema.md +187 -0
- package/docs/instalacao-e-primeiro-uso.md +48 -0
- package/docs/integracao-com-ia.md +24 -0
- package/docs/mcp.md +48 -0
- package/docs/pagamento-ponta-a-ponta.md +171 -0
- package/docs/persistencia-vendor-first.md +151 -0
- package/docs/prompt-base-ia-sema.md +111 -0
- package/docs/repositories.md +69 -0
- package/docs/rollback.md +24 -0
- package/docs/seguranca.md +126 -0
- package/docs/sintaxe.md +218 -0
- package/exemplos/profile_conversas.sema +165 -0
- package/llms-full.txt +35 -0
- package/llms.txt +18 -0
- package/node_modules/@sema/gerador-css/package.json +7 -14
- package/node_modules/@sema/gerador-dart/package.json +7 -14
- package/node_modules/@sema/gerador-html/package.json +7 -14
- package/node_modules/@sema/gerador-javascript/package.json +7 -14
- package/node_modules/@sema/gerador-lua/package.json +7 -14
- package/node_modules/@sema/gerador-python/package.json +7 -14
- package/node_modules/@sema/gerador-typescript/package.json +7 -14
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.d.ts +22 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +97 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/index.d.ts +1 -0
- package/node_modules/@sema/nucleo/dist/index.js +1 -0
- package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
- package/node_modules/@sema/nucleo/package.json +7 -10
- package/node_modules/@sema/padroes/package.json +7 -10
- package/package.json +75 -74
- package/exemplos/.prepack-generated +0 -1
- package/node_modules/@sema/gerador-css/src/index.ts +0 -605
- package/node_modules/@sema/gerador-css/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-css/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-dart/src/index.ts +0 -52
- package/node_modules/@sema/gerador-dart/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-dart/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-html/src/index.ts +0 -185
- package/node_modules/@sema/gerador-html/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-html/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-javascript/src/index.ts +0 -461
- package/node_modules/@sema/gerador-javascript/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-javascript/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-lua/src/index.ts +0 -359
- package/node_modules/@sema/gerador-lua/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-lua/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-python/src/index.ts +0 -850
- package/node_modules/@sema/gerador-python/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-python/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-typescript/src/index.ts +0 -876
- package/node_modules/@sema/gerador-typescript/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-typescript/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/nucleo/src/ast/tipos.ts +0 -207
- package/node_modules/@sema/nucleo/src/diagnosticos/index.ts +0 -43
- package/node_modules/@sema/nucleo/src/formatador/index.ts +0 -530
- package/node_modules/@sema/nucleo/src/index.ts +0 -183
- package/node_modules/@sema/nucleo/src/ir/conversor.ts +0 -1037
- package/node_modules/@sema/nucleo/src/ir/modelos.ts +0 -403
- package/node_modules/@sema/nucleo/src/lexer/lexer.ts +0 -166
- package/node_modules/@sema/nucleo/src/lexer/tokens.ts +0 -79
- package/node_modules/@sema/nucleo/src/parser/gramatica.ebnf +0 -41
- package/node_modules/@sema/nucleo/src/parser/parser.ts +0 -936
- package/node_modules/@sema/nucleo/src/persistencia/contratos.ts +0 -379
- package/node_modules/@sema/nucleo/src/semantico/analisador.ts +0 -3126
- package/node_modules/@sema/nucleo/src/semantico/estruturas.ts +0 -665
- package/node_modules/@sema/nucleo/src/semantico/seguranca.ts +0 -362
- package/node_modules/@sema/nucleo/src/util/arquivos.ts +0 -28
- package/node_modules/@sema/nucleo/tsconfig.json +0 -9
- package/node_modules/@sema/nucleo/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/padroes/src/index.ts +0 -382
- package/node_modules/@sema/padroes/tsconfig.json +0 -9
- package/node_modules/@sema/padroes/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Instalação e Primeiro Uso
|
|
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
|
+
Sema is private. The MCP endpoint is the primary product surface and coordinates authentication, SEMAS consumption, profiles, pipelines, and project mirrors.
|
|
11
|
+
|
|
12
|
+
Local IDEs should receive `AGENTS.md` first. Web chats should use `sema_chat_contexto` and `sema_sync` instead of downloading files into the chat environment.
|
|
13
|
+
|
|
14
|
+
Install the governed CLI/client from npm when a local IDE or VPS mirror needs the `sema` command:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install -g @semacode/cli
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
The MCP server remains the private product surface. Do not install the MCP from a public npm package; configure the authorized remote `/mcp` endpoint instead.
|
|
21
|
+
|
|
22
|
+
## Português
|
|
23
|
+
|
|
24
|
+
A Sema é privada. O endpoint MCP é a superfície principal do produto e coordena autenticação, consumo de SEMAS, profiles, pipelines e espelhos de projeto.
|
|
25
|
+
|
|
26
|
+
IDEs locais devem receber `AGENTS.md` primeiro. Chats web devem usar `sema_chat_contexto` e `sema_sync`, não baixar arquivos no ambiente do chat.
|
|
27
|
+
|
|
28
|
+
Instale a CLI/cliente governada pelo npm quando uma IDE local ou espelho na VPS precisar do comando `sema`:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm install -g @semacode/cli
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
O servidor MCP continua sendo a superfície privada do produto. Não instale o MCP por pacote npm público; configure o endpoint remoto `/mcp` autorizado.
|
|
35
|
+
|
|
36
|
+
## Español
|
|
37
|
+
|
|
38
|
+
Sema es privada. El endpoint MCP es la superficie principal del producto y coordina autenticación, consumo de SEMAS, profiles, pipelines y espejos de proyecto.
|
|
39
|
+
|
|
40
|
+
Las IDEs locales deben recibir `AGENTS.md` primero. Los chats web deben usar `sema_chat_contexto` y `sema_sync`, no descargar archivos en el entorno del chat.
|
|
41
|
+
|
|
42
|
+
Instala la CLI/cliente gobernada desde npm cuando una IDE local o espejo en la VPS necesite el comando `sema`:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm install -g @semacode/cli
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
El servidor MCP sigue siendo la superficie privada del producto. No instales el MCP desde un paquete npm público; configura el endpoint remoto `/mcp` autorizado.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Integração com IA
|
|
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
|
+
Sema exists for AI agents operating live systems. The agent should ask Sema for summary, docs impact, drift, impact, profile validation, and finalization instead of guessing from raw code.
|
|
11
|
+
|
|
12
|
+
In local IDEs, confirm `AGENTS.md` exists before `sema_resumo`. In web chats, use `sema_chat_contexto` first, then `sema_sync` or inline content. The MCP coordinates the flow and charges SEMAS; the CLI executes local or VPS-side checks.
|
|
13
|
+
|
|
14
|
+
## Português
|
|
15
|
+
|
|
16
|
+
A Sema existe para agentes de IA operarem sistemas vivos. O agente deve pedir resumo, impacto documental, drift, impacto, validação de profile e finalização para a Sema em vez de adivinhar pelo código cru.
|
|
17
|
+
|
|
18
|
+
Em IDE local, confirme que `AGENTS.md` existe antes de `sema_resumo`. Em chats web, use primeiro `sema_chat_contexto`, depois `sema_sync` ou conteúdo inline. O MCP coordena o fluxo e cobra SEMAS; a CLI executa checks locais ou na VPS.
|
|
19
|
+
|
|
20
|
+
## Español
|
|
21
|
+
|
|
22
|
+
Sema existe para agentes de IA que operan sistemas vivos. El agente debe pedir resumen, impacto documental, drift, impacto, validación de profile y finalización a Sema en vez de adivinar desde código crudo.
|
|
23
|
+
|
|
24
|
+
En IDE local, confirma que `AGENTS.md` existe antes de `sema_resumo`. En chats web, usa primero `sema_chat_contexto`, después `sema_sync` o contenido inline. El MCP coordina el flujo y cobra SEMAS; la CLI ejecuta checks locales o en la VPS.
|
package/docs/mcp.md
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Private MCP
|
|
2
|
+
|
|
3
|
+
<!-- sema:i18n -->
|
|
4
|
+
> EN: English first.
|
|
5
|
+
> PT: Português depois.
|
|
6
|
+
> ES: Español al final.
|
|
7
|
+
|
|
8
|
+
## English
|
|
9
|
+
|
|
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
|
+
|
|
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
|
+
|
|
14
|
+
It must also stay compatible with local IDEs. In that mode, the client sends typed snapshots: contracts, selected code, documentation, and an index. When complete local-code drift is required, the installed CLI may run in the IDE workspace.
|
|
15
|
+
|
|
16
|
+
The MCP must never pretend that a local Windows path exists on the Linux server. If the server cannot see the workspace, the next action is to request or create a mirror/snapshot.
|
|
17
|
+
|
|
18
|
+
The app or connector must recognize the remote MCP from connection/authentication even when no project workspace has been synchronized. Missing workspace is not a missing active session; it only means project work must use `sema_sync`, an attachment, or inline content. The remote MCP must not ask for or try to read the user's local folder.
|
|
19
|
+
|
|
20
|
+
Typed snapshot payloads have per-file byte limits for contracts, selected code, and documentation. The MCP exposes those limits in tool schemas and validates them again before writing a mirror or running inline contract operations. Clients must split oversized context into focused files instead of sending an entire repository or hiding the limit from the agent.
|
|
21
|
+
|
|
22
|
+
## Português
|
|
23
|
+
|
|
24
|
+
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.
|
|
25
|
+
|
|
26
|
+
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/...`.
|
|
27
|
+
|
|
28
|
+
Ele também precisa continuar compatível com IDEs locais. Nesse modo, o cliente envia snapshots tipados: contratos, código selecionado, documentação e índice. Quando drift completo contra código local for necessário, a CLI instalada pode rodar no workspace da IDE.
|
|
29
|
+
|
|
30
|
+
O MCP nunca deve fingir que um caminho Windows local existe no servidor Linux. Se o servidor não enxerga o workspace, a próxima ação é pedir ou criar um espelho/snapshot.
|
|
31
|
+
|
|
32
|
+
O app ou conector deve reconhecer o MCP remoto pela conexao/autenticacao, mesmo sem workspace de projeto sincronizado. Falta de workspace nao e falta de sessao ativa: e apenas o sinal de que a proxima acao de projeto deve usar `sema_sync`, anexo ou conteudo inline. O MCP remoto nao deve pedir nem tentar ler a pasta local do usuario.
|
|
33
|
+
|
|
34
|
+
Snapshots tipados tem limite de bytes por arquivo para contratos, codigo selecionado e documentacao. O MCP anuncia esses limites no schema das ferramentas e valida de novo antes de gravar espelho ou executar contrato inline. Clientes devem quebrar contexto grande em arquivos focados, nao enviar repositorio inteiro nem esconder o limite do agente.
|
|
35
|
+
|
|
36
|
+
## Español
|
|
37
|
+
|
|
38
|
+
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.
|
|
39
|
+
|
|
40
|
+
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/...`.
|
|
41
|
+
|
|
42
|
+
También debe seguir compatible con IDEs locales. En ese modo, el cliente envía snapshots tipados: contratos, código seleccionado, documentación e índice. Cuando haga falta drift completo contra código local, la CLI instalada puede correr en el workspace de la IDE.
|
|
43
|
+
|
|
44
|
+
El MCP nunca debe fingir que una ruta local de Windows existe en el servidor Linux. Si el servidor no ve el workspace, la siguiente acción es pedir o crear un espejo/snapshot.
|
|
45
|
+
|
|
46
|
+
La app o el conector debe reconocer el MCP remoto por conexion/autenticacion, incluso sin workspace de proyecto sincronizado. Falta de workspace no es falta de sesion activa: solo indica que el trabajo de proyecto debe usar `sema_sync`, un adjunto o contenido inline. El MCP remoto no debe pedir ni intentar leer la carpeta local del usuario.
|
|
47
|
+
|
|
48
|
+
Los snapshots tipados tienen limites de bytes por archivo para contratos, codigo seleccionado y documentacion. El MCP anuncia esos limites en los schemas de herramientas y vuelve a validarlos antes de escribir un espejo o ejecutar contratos inline. Los clientes deben dividir contexto grande en archivos enfocados, no enviar todo el repositorio ni ocultar el limite al agente.
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Pagamento Ponta a Ponta na Sema
|
|
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
|
+
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
|
|
17
|
+
- regras
|
|
18
|
+
- efeitos operacionais
|
|
19
|
+
- execução, idempotencia, retry e compensacao
|
|
20
|
+
- transicoes de estado
|
|
21
|
+
- orquestração
|
|
22
|
+
- erros publicos
|
|
23
|
+
- testes executaveis com saída, status ou erro observavel
|
|
24
|
+
|
|
25
|
+
## Arquivos de referência
|
|
26
|
+
|
|
27
|
+
- `exemplos/pagamento_dominio.sema`
|
|
28
|
+
- `exemplos/pagamento.sema`
|
|
29
|
+
|
|
30
|
+
## Como o vertical foi dividido
|
|
31
|
+
|
|
32
|
+
### `exemplos.pagamento.dominio`
|
|
33
|
+
|
|
34
|
+
Centraliza os contratos compartilhados:
|
|
35
|
+
|
|
36
|
+
- `entity Pagamento`
|
|
37
|
+
- `enum StatusPagamento`
|
|
38
|
+
- `state ciclo_pagamento`
|
|
39
|
+
|
|
40
|
+
### `exemplos.pagamento`
|
|
41
|
+
|
|
42
|
+
Centraliza a operação do vertical:
|
|
43
|
+
|
|
44
|
+
- `task processar_pagamento`
|
|
45
|
+
- `task confirmar_pagamento`
|
|
46
|
+
- `task notificar_falha_pagamento`
|
|
47
|
+
- `task registrar_timeout_pagamento`
|
|
48
|
+
- `flow orquestracao_pagamento`
|
|
49
|
+
- `route processar_pagamento_publico`
|
|
50
|
+
|
|
51
|
+
## Narrativa do caso
|
|
52
|
+
|
|
53
|
+
### Entrada pública
|
|
54
|
+
|
|
55
|
+
A operação entra por:
|
|
56
|
+
|
|
57
|
+
- `route processar_pagamento_publico`
|
|
58
|
+
|
|
59
|
+
Esse contrato pública:
|
|
60
|
+
|
|
61
|
+
- `pagamento_id`
|
|
62
|
+
- `valor`
|
|
63
|
+
- `token`
|
|
64
|
+
|
|
65
|
+
É expoe:
|
|
66
|
+
|
|
67
|
+
- `pagamento`
|
|
68
|
+
- `status`
|
|
69
|
+
- erros publicos coerentes com a `task`
|
|
70
|
+
|
|
71
|
+
### Task interna
|
|
72
|
+
|
|
73
|
+
A `task processar_pagamento` faz o trabalho central:
|
|
74
|
+
|
|
75
|
+
- exige `authz`
|
|
76
|
+
- classifica `dados`
|
|
77
|
+
- declara `segredos`, `audit` e `forbidden`
|
|
78
|
+
- valida entrada
|
|
79
|
+
- consulta o gateway
|
|
80
|
+
- persiste o pagamento
|
|
81
|
+
- emite evento
|
|
82
|
+
- notifica comprovante
|
|
83
|
+
- registra auditoria
|
|
84
|
+
- declara `execucao` com idempotencia, timeout, retry, compensacao e criticidade
|
|
85
|
+
- garante consistencia da saída
|
|
86
|
+
|
|
87
|
+
### Estado e transicoes
|
|
88
|
+
|
|
89
|
+
O `state ciclo_pagamento` ancora o contrato de transicao:
|
|
90
|
+
|
|
91
|
+
- `PENDENTE -> AUTORIZADO`
|
|
92
|
+
- `AUTORIZADO -> PROCESSADO`
|
|
93
|
+
- `PENDENTE -> RECUSADO`
|
|
94
|
+
|
|
95
|
+
A `task` explícita quais transicoes ela realmente usa.
|
|
96
|
+
|
|
97
|
+
### Flow de orquestração
|
|
98
|
+
|
|
99
|
+
O `flow orquestracao_pagamento` demonstra:
|
|
100
|
+
|
|
101
|
+
- passagem de contexto
|
|
102
|
+
- confirmação em caso de sucesso
|
|
103
|
+
- notificação em caso de recusa
|
|
104
|
+
- registro de timeout em caso de indisponibilidade
|
|
105
|
+
- ramificacao por erro tipado
|
|
106
|
+
|
|
107
|
+
### Efeitos operacionais
|
|
108
|
+
|
|
109
|
+
O vertical usa as 5 categorias oficiais da Sema:
|
|
110
|
+
|
|
111
|
+
- `persistencia`
|
|
112
|
+
- `consulta`
|
|
113
|
+
- `evento`
|
|
114
|
+
- `notificacao`
|
|
115
|
+
- `auditoria`
|
|
116
|
+
|
|
117
|
+
Também usa `criticidade` para deixar claro o peso operacional do efeito.
|
|
118
|
+
|
|
119
|
+
### Falhas reais
|
|
120
|
+
|
|
121
|
+
O vertical cobre explicitamente:
|
|
122
|
+
|
|
123
|
+
- autorizacao negada
|
|
124
|
+
- saldo insuficiente
|
|
125
|
+
- timeout de gateway
|
|
126
|
+
|
|
127
|
+
## Fluxo de trabalho recomendado
|
|
128
|
+
|
|
129
|
+
### 1. Escrever ou ajustar os arquivos `.sema`
|
|
130
|
+
|
|
131
|
+
Use o domínio compartilhado em um módulo e a operação em outro módulo.
|
|
132
|
+
|
|
133
|
+
### 2. Aplicar o formato canônico
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
sema formatar exemplos
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### 3. Validar semanticamente
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
sema validar exemplos/pagamento.sema
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 4. Gerar código
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
sema compilar exemplos/pagamento.sema --alvo typescript --saida ./.tmp/pagamento-ts
|
|
149
|
+
sema compilar exemplos/pagamento.sema --alvo python --saida ./.tmp/pagamento-py
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### 5. Verificar o vertical completo
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
sema verificar exemplos/pagamento.sema --json --saida ./.tmp/verificacao-pagamento
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## O que esse vertical prova
|
|
159
|
+
|
|
160
|
+
Se esse vertical passa, a Sema já consegue demonstrar que:
|
|
161
|
+
|
|
162
|
+
- modela contrato público
|
|
163
|
+
- modela superficie sensível sem deixar segurança invisível
|
|
164
|
+
- modela efeitos operacionais
|
|
165
|
+
- modela falhas reais
|
|
166
|
+
- modulariza domínio com `use`
|
|
167
|
+
- declara idempotencia e execução crítica sem criar sintaxe nova
|
|
168
|
+
- gera artefatos coerentes para TypeScript e Python
|
|
169
|
+
- executa testes gerados sem gambiarra conceitual
|
|
170
|
+
|
|
171
|
+
Esse e o criterio pratico que sustenta o uso público do vertical de pagamento como referência para IA e geracao.
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# Persistência Vendor-First
|
|
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 1.5.29 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.
|
|
10
|
+
|
|
11
|
+
## Engines publicas
|
|
12
|
+
|
|
13
|
+
- `postgres`
|
|
14
|
+
- `mysql`
|
|
15
|
+
- `sqlite`
|
|
16
|
+
- `mongodb`
|
|
17
|
+
- `redis`
|
|
18
|
+
|
|
19
|
+
## Exemplo PostgreSQL
|
|
20
|
+
|
|
21
|
+
```sema
|
|
22
|
+
database principal_postgres {
|
|
23
|
+
engine: postgres
|
|
24
|
+
schema: public
|
|
25
|
+
consistency: forte
|
|
26
|
+
durability: alta
|
|
27
|
+
transaction_model: mvcc
|
|
28
|
+
query_model: sql
|
|
29
|
+
capabilities {
|
|
30
|
+
joins
|
|
31
|
+
views
|
|
32
|
+
foreign_keys
|
|
33
|
+
}
|
|
34
|
+
table pedidos {
|
|
35
|
+
entity: Pedido
|
|
36
|
+
}
|
|
37
|
+
relationship pedido_cliente {
|
|
38
|
+
from: Pedido
|
|
39
|
+
to: Cliente
|
|
40
|
+
}
|
|
41
|
+
query buscar_pedidos {
|
|
42
|
+
mode: sql
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Exemplo MySQL
|
|
48
|
+
|
|
49
|
+
```sema
|
|
50
|
+
database principal_mysql {
|
|
51
|
+
engine: mysql
|
|
52
|
+
consistency: forte
|
|
53
|
+
durability: alta
|
|
54
|
+
transaction_model: bloqueio
|
|
55
|
+
query_model: sql
|
|
56
|
+
table faturamento {
|
|
57
|
+
table: faturamento
|
|
58
|
+
}
|
|
59
|
+
index faturamento_status {
|
|
60
|
+
table: faturamento
|
|
61
|
+
}
|
|
62
|
+
query buscar_faturas {
|
|
63
|
+
mode: sql
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Exemplo SQLite
|
|
69
|
+
|
|
70
|
+
```sema
|
|
71
|
+
database principal_sqlite {
|
|
72
|
+
engine: sqlite
|
|
73
|
+
consistency: snapshot
|
|
74
|
+
durability: media
|
|
75
|
+
transaction_model: single_thread
|
|
76
|
+
query_model: sql
|
|
77
|
+
table cache_local {
|
|
78
|
+
table: cache_local
|
|
79
|
+
}
|
|
80
|
+
retention limpeza_local {
|
|
81
|
+
retention: "7d"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Exemplo MongoDB
|
|
87
|
+
|
|
88
|
+
```sema
|
|
89
|
+
database principal_mongodb {
|
|
90
|
+
engine: mongodb
|
|
91
|
+
consistency: eventual
|
|
92
|
+
durability: alta
|
|
93
|
+
transaction_model: documento
|
|
94
|
+
query_model: documento
|
|
95
|
+
collection pedidos {
|
|
96
|
+
collection: pedidos
|
|
97
|
+
}
|
|
98
|
+
document pedido_snapshot {
|
|
99
|
+
entity: PedidoSnapshot
|
|
100
|
+
}
|
|
101
|
+
query pipeline_pedido {
|
|
102
|
+
mode: pipeline
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Exemplo Redis
|
|
108
|
+
|
|
109
|
+
```sema
|
|
110
|
+
database principal_redis {
|
|
111
|
+
engine: redis
|
|
112
|
+
consistency: eventual
|
|
113
|
+
durability: media
|
|
114
|
+
transaction_model: single_thread
|
|
115
|
+
query_model: chave_valor
|
|
116
|
+
keyspace cache_pedidos {
|
|
117
|
+
ttl: "300s"
|
|
118
|
+
}
|
|
119
|
+
stream eventos_pedido {
|
|
120
|
+
surface: fila
|
|
121
|
+
}
|
|
122
|
+
retention expurgo_cache {
|
|
123
|
+
retention: "300s"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Compatibilidade calculada
|
|
129
|
+
|
|
130
|
+
Cada recurso recebe compatibilidade por engine:
|
|
131
|
+
|
|
132
|
+
- `nativo`
|
|
133
|
+
- `adaptado`
|
|
134
|
+
- `parcial`
|
|
135
|
+
- `invalido`
|
|
136
|
+
|
|
137
|
+
Isso deixa explícito quando o contrato está pedindo portabilidade falsa, por exemplo:
|
|
138
|
+
|
|
139
|
+
- `table` em `redis`
|
|
140
|
+
- `foreign_keys` em engine sem suporte equivalente
|
|
141
|
+
- transação multi-documento tratada como universal
|
|
142
|
+
|
|
143
|
+
## Onde isso aparece
|
|
144
|
+
|
|
145
|
+
- parser e AST
|
|
146
|
+
- IR canonica
|
|
147
|
+
- analisador semântico
|
|
148
|
+
- formatador
|
|
149
|
+
- `sema drift`
|
|
150
|
+
- `sema importar`
|
|
151
|
+
- extensao VS Code
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Prompt-Base Oficial para IA Trabalhar com Sema
|
|
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
|
+
Este arquivo serve como prompt-base oficial para qualquer IA que precise ler, escrever, revisar ou transformar arquivos `.sema`.
|
|
10
|
+
|
|
11
|
+
O objetivo não é fazer a IA "improvisar bonito". O objetivo e fazer a IA operar a linguagem com previsibilidade. A Sema não foi desenhada para ergonomia humana como prioridade; ela foi desenhada para IA. Humanos escrevem, revisam e aprovam; o consumidor primário e o agente.
|
|
12
|
+
|
|
13
|
+
## Prompt-base
|
|
14
|
+
|
|
15
|
+
Use o texto abaixo como base:
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
Voce esta trabalhando com Sema, um contrato semantico IA-first para agentes operarem software vivo.
|
|
19
|
+
|
|
20
|
+
Tecnicamente, a Sema funciona como linguagem de intencao orientada a contrato. Operacionalmente, ela existe para governar semantica acima da stack e traduzir intencao operacional para IA, nao para substituir arquitetura, design ou aprovacao humana.
|
|
21
|
+
|
|
22
|
+
Trate a Sema como contrato semantico executavel e protocolo de governanca IA-first. Nao invente sintaxe, palavras-chave ou blocos fora da gramatica e dos exemplos oficiais.
|
|
23
|
+
|
|
24
|
+
Fontes de verdade, em ordem:
|
|
25
|
+
1. se o projeto expuser `SEMA_CONTEXT.md`, comece por ele
|
|
26
|
+
2. `SEMA_BRIEF.md`
|
|
27
|
+
3. `SEMA_INDEX.json`
|
|
28
|
+
4. README do projeto
|
|
29
|
+
5. gramatica e documentacao de sintaxe da Sema
|
|
30
|
+
6. especificacao semantica da linguagem
|
|
31
|
+
7. exemplos oficiais, com prioridade para o vertical de pagamento
|
|
32
|
+
8. `sema resumo` e `briefing.min.json` quando a IA for pequena
|
|
33
|
+
9. AST, IR e diagnosticos exportados pela CLI em JSON quando a capacidade aguentar
|
|
34
|
+
|
|
35
|
+
Regras de operacao:
|
|
36
|
+
- preserve o significado semantico
|
|
37
|
+
- use o formatador oficial da Sema como fonte unica de estilo
|
|
38
|
+
- use diagnosticos estruturados como contrato de correcao
|
|
39
|
+
- use a IR como fonte de verdade semantica quando houver duvida
|
|
40
|
+
- use `predicadoCanonico` como normalizacao opcional; preserve o `predicado` original
|
|
41
|
+
- nao conclua uma alteracao sem validar e verificar o modulo
|
|
42
|
+
- trate `importar` como bootstrap revisavel, nao como contrato final automatico
|
|
43
|
+
- trate `drift` como medicao de verdade contra codigo vivo
|
|
44
|
+
- trate `impl` como ponte entre task e simbolo real
|
|
45
|
+
- nao invente regra de negocio que o contrato e o codigo nao sustentem
|
|
46
|
+
|
|
47
|
+
Antes de editar `.sema`, entenda:
|
|
48
|
+
- o module alvo
|
|
49
|
+
- os contratos de task, route, error, effects, guarantees, state e flow
|
|
50
|
+
- os exemplos oficiais relacionados
|
|
51
|
+
|
|
52
|
+
Depois de editar `.sema`, execute este fluxo:
|
|
53
|
+
1. formatar
|
|
54
|
+
2. validar
|
|
55
|
+
3. diagnosticar, se houver falha
|
|
56
|
+
4. verificar
|
|
57
|
+
|
|
58
|
+
Se houver conflito entre texto livre e IR/diagnosticos, priorize a IR e os diagnosticos da CLI.
|
|
59
|
+
|
|
60
|
+
Se algo nao estiver claro, siga a forma ja usada nos exemplos oficiais. Nao improvise sem base.
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Variacao curta
|
|
64
|
+
|
|
65
|
+
Se voce quiser um prompt menor para uso frequente:
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
Trabalhe com Sema como contrato semantico IA-first orientado a agente. Nao invente sintaxe. Use os exemplos oficiais e a gramatica como referencia de escrita. Use `ir --json` como fonte de verdade semantica, `diagnosticos --json` como fonte de correcao e `sema formatar` como fonte unica de estilo. Antes de encerrar, rode validacao e verificacao.
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Se voce quiser um prompt ainda mais curto e pronto para colar, use:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
sema prompt-curto caminho/arquivo.sema --curto --para mudanca
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Variacao para revisão
|
|
78
|
+
|
|
79
|
+
Use está versão quando a IA for revisar `.sema` em vez de criar:
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
Revise este modulo Sema como contrato semantico executavel. Procure incoerencias entre input, output, rules, effects, guarantees, state, flow, route e error. Considere a IR e os diagnosticos da CLI como fonte de verdade. Nao critique estilo fora do que o formatador oficial resolveria automaticamente.
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Variacao para geracao
|
|
86
|
+
|
|
87
|
+
Use está versão quando a IA for escrever módulo novo:
|
|
88
|
+
|
|
89
|
+
```text
|
|
90
|
+
Gere um modulo Sema seguindo a gramatica oficial, os exemplos do projeto e o estilo do formatador canonico. Estruture o modulo como contrato semantico executavel, com blocos explicitos para entrada, saida, regras, efeitos, garantias, erros, estado, fluxo e testes quando fizer sentido. Nao use sintaxe fora do repertorio ja suportado pela linguagem.
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Variacao para correcao guiada por diagnóstico
|
|
94
|
+
|
|
95
|
+
Use está versão quando a IA já tiver erro concreto para corrigir:
|
|
96
|
+
|
|
97
|
+
```text
|
|
98
|
+
Corrija este modulo Sema a partir dos diagnosticos estruturados da CLI. Preserve a intencao do contrato e altere apenas o necessario para eliminar as falhas. Depois da correcao, aplique o formatador oficial e revalide.
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## O que sempre anexar junto do prompt
|
|
102
|
+
|
|
103
|
+
Idealmente, acompanhe o prompt com:
|
|
104
|
+
|
|
105
|
+
- o arquivo `.sema` alvo
|
|
106
|
+
- o resultado de `sema ast --json`
|
|
107
|
+
- o resultado de `sema ir --json`
|
|
108
|
+
- o resultado de `sema diagnosticos --json`, se houver erro
|
|
109
|
+
- um exemplo oficial parecido
|
|
110
|
+
|
|
111
|
+
Sem isso, a IA pode até acertar. Com isso, ela trabalha direito.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Repository Boundary
|
|
2
|
+
|
|
3
|
+
<!-- sema:i18n -->
|
|
4
|
+
> EN: English first.
|
|
5
|
+
> PT: Português depois.
|
|
6
|
+
> ES: Español al final.
|
|
7
|
+
|
|
8
|
+
## English
|
|
9
|
+
|
|
10
|
+
Sema is private by default, with one public installation path: `@semacode/cli` on npm. There is no public product repository, no public MCP package surface, and no active `public/` versus `private/` repository split.
|
|
11
|
+
|
|
12
|
+
The active tree lives at the repository root: `contratos/`, `pacotes/`, `mcp/`, `site/`, `supabase/`, `deploy/`, `docs/`, `scripts/`, and `testes/`.
|
|
13
|
+
|
|
14
|
+
The operating model is:
|
|
15
|
+
|
|
16
|
+
- The MCP is the private coordinator: it authenticates clients, selects the right project or mirror, charges SEMAS, decides the required contract/profile flow, and returns the operational verdict.
|
|
17
|
+
- The CLI is distributed as the public npm installer/client `@semacode/cli`, then acts as the governed executor: it reads contracts, validates, checks drift, builds AI-first context, and performs local or server-side actions requested by the MCP.
|
|
18
|
+
- Web chats remain supported because the private MCP keeps a CLI installed on the VPS and runs it against authorized mirrors under `/srv/sema/projetos/...`.
|
|
19
|
+
- Local IDEs remain supported by sending typed snapshots, selected code, docs, and indexes to the MCP; when local full-code drift is required, the installed CLI can run inside the IDE environment.
|
|
20
|
+
|
|
21
|
+
Public distribution is allowed only for the governed CLI installer. If a script tries to publish the MCP server, product release assets, secrets, control-plane code, or any public package outside `@semacode/cli`, it must fail before any artifact is created.
|
|
22
|
+
|
|
23
|
+
Use the private boundary check:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm run repo:verificar-privado
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Português
|
|
30
|
+
|
|
31
|
+
O Sema agora e privado por padrao, com um caminho publico de instalacao: `@semacode/cli` no npm. Nao existe repositorio publico de produto, superficie MCP publica como pacote aberto nem divisao ativa entre `public/` e `private/`.
|
|
32
|
+
|
|
33
|
+
A arvore ativa vive na raiz do repositorio: `contratos/`, `pacotes/`, `mcp/`, `site/`, `supabase/`, `deploy/`, `docs/`, `scripts/` e `testes/`.
|
|
34
|
+
|
|
35
|
+
O modelo operacional é:
|
|
36
|
+
|
|
37
|
+
- O MCP é o coordenador privado: autentica clientes, escolhe o projeto ou espelho correto, cobra SEMAS, decide o fluxo de contrato/profile obrigatório e devolve o veredito operacional.
|
|
38
|
+
- A CLI e distribuida como instalador/cliente publico `@semacode/cli` no npm e depois atua como executor governado: le contratos, valida, mede drift, monta contexto IA-first e executa acoes locais ou no servidor quando o MCP pedir.
|
|
39
|
+
- Chats web continuam suportados porque o MCP privado mantém uma CLI instalada na VPS e executa contra espelhos autorizados em `/srv/sema/projetos/...`.
|
|
40
|
+
- IDEs locais continuam suportadas enviando snapshots tipados, codigo selecionado, docs e indice para o MCP; quando drift completo local for necessario, a CLI instalada pode rodar dentro do ambiente da IDE.
|
|
41
|
+
|
|
42
|
+
Distribuicao publica so e permitida para o instalador CLI governado. Se algum script tentar publicar o servidor MCP, assets de release de produto, segredos, control plane ou qualquer pacote publico fora de `@semacode/cli`, ele deve falhar antes de criar qualquer artefato.
|
|
43
|
+
|
|
44
|
+
Use a checagem de fronteira privada:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npm run repo:verificar-privado
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Español
|
|
51
|
+
|
|
52
|
+
Sema ahora es privado por defecto, con una ruta publica de instalacion: `@semacode/cli` en npm. No existe repositorio publico de producto, superficie MCP publica como paquete abierto ni division activa entre `public/` y `private/`.
|
|
53
|
+
|
|
54
|
+
El arbol activo vive en la raiz del repositorio: `contratos/`, `pacotes/`, `mcp/`, `site/`, `supabase/`, `deploy/`, `docs/`, `scripts/` y `testes/`.
|
|
55
|
+
|
|
56
|
+
El modelo operativo es:
|
|
57
|
+
|
|
58
|
+
- El MCP es el coordinador privado: autentica clientes, elige el proyecto o espejo correcto, cobra SEMAS, decide el flujo obligatorio de contrato/profile y devuelve el veredicto operativo.
|
|
59
|
+
- La CLI se distribuye como instalador/cliente publico `@semacode/cli` en npm y luego actua como ejecutor gobernado: lee contratos, valida, mide drift, prepara contexto IA-first y ejecuta acciones locales o del servidor cuando el MCP lo solicita.
|
|
60
|
+
- Los chats web siguen soportados porque el MCP privado mantiene una CLI instalada en la VPS y la ejecuta contra espejos autorizados en `/srv/sema/projetos/...`.
|
|
61
|
+
- Las IDEs locales siguen soportadas enviando snapshots tipados, codigo seleccionado, docs e indice al MCP; cuando haga falta drift completo local, la CLI instalada puede correr dentro del entorno de la IDE.
|
|
62
|
+
|
|
63
|
+
La distribucion publica solo se permite para el instalador CLI gobernado. Si un script intenta publicar el servidor MCP, assets de release de producto, secretos, control plane o cualquier paquete publico fuera de `@semacode/cli`, debe fallar antes de crear cualquier artefacto.
|
|
64
|
+
|
|
65
|
+
Usa la verificación de frontera privada:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npm run repo:verificar-privado
|
|
69
|
+
```
|
package/docs/rollback.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Rollback Privado
|
|
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
|
+
Rollback is private and must preserve traceability. If the MCP runtime breaks, restore the previous package or dist files, restart `sema-mcp.service`, and verify `/healthz`.
|
|
11
|
+
|
|
12
|
+
Do not rewrite customer mirrors blindly. Project mirrors under `/srv/sema/projetos/...` must only be reverted when the failed change touched that mirror.
|
|
13
|
+
|
|
14
|
+
## Português
|
|
15
|
+
|
|
16
|
+
Rollback é privado e precisa preservar rastreabilidade. Se o runtime MCP quebrar, restaure o pacote ou os arquivos `dist` anteriores, reinicie `sema-mcp.service` e valide `/healthz`.
|
|
17
|
+
|
|
18
|
+
Não reescreva espelhos de clientes às cegas. Espelhos de projeto em `/srv/sema/projetos/...` só devem ser revertidos quando a mudança com falha tiver tocado aquele espelho.
|
|
19
|
+
|
|
20
|
+
## Español
|
|
21
|
+
|
|
22
|
+
El rollback es privado y debe preservar trazabilidad. Si el runtime MCP falla, restaura el paquete o los archivos `dist` anteriores, reinicia `sema-mcp.service` y valida `/healthz`.
|
|
23
|
+
|
|
24
|
+
No reescribas espejos de clientes a ciegas. Los espejos de proyecto en `/srv/sema/projetos/...` solo deben revertirse cuando el cambio fallido haya tocado ese espejo.
|