@semacode/cli 1.5.48 → 1.5.52
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/LICENSE +39 -21
- package/README.md +47 -48
- package/dist/agentContext.d.ts +2 -2
- package/dist/agentContext.js +1 -1
- package/dist/agentContextPack.d.ts +1 -1
- package/dist/agentContextPack.js +20 -28
- package/dist/agentContextTipos.d.ts +2 -2
- package/dist/agentContextTipos.js +7 -13
- package/dist/agentEntryPoints.js +244 -281
- package/dist/billing/index.d.ts +1 -58
- package/dist/billing/index.js +17 -278
- package/dist/cliArgs.js +0 -3
- package/dist/comandos.js +15 -131
- package/dist/contexto.d.ts +0 -9
- package/dist/contexto.js +59 -109
- package/dist/docs.part01.js +30 -51
- package/dist/drift.part14.js +18 -3
- package/dist/driftOrcamento.js +1 -2
- package/dist/index.d.ts +0 -6
- package/dist/index.js +0 -6
- package/dist/index.part01.d.ts +1 -1
- package/dist/index.part01.js +1 -3
- package/dist/index.part04.js +4 -4
- package/dist/index.part08.js +1 -22
- package/dist/initTemplatesBase.js +5 -5
- package/dist/sync/index.js +1 -1
- package/docs/README.md +19 -0
- package/docs/ai-integration.md +90 -0
- package/docs/ai-onboarding.md +33 -0
- package/docs/ai-workflow.md +62 -0
- package/docs/auth.md +16 -0
- package/docs/cli.md +36 -95
- package/docs/commands.md +90 -0
- package/docs/database.md +15 -0
- package/docs/deploy.md +6 -38
- package/docs/documentation.md +39 -0
- package/docs/env.md +8 -109
- package/docs/frontend.md +41 -0
- package/docs/getting-started.md +33 -0
- package/docs/i18n.md +15 -0
- package/docs/profiles.md +43 -0
- package/docs/repositories.md +19 -61
- package/docs/rollback.md +9 -20
- package/docs/security.md +24 -0
- package/docs/support.md +8 -0
- package/docs/syntax.md +128 -0
- package/docs/testing.md +17 -0
- package/docs/vocabulary.md +28 -0
- package/node_modules/@sema/gerador-css/package.json +1 -1
- package/node_modules/@sema/gerador-dart/package.json +1 -1
- package/node_modules/@sema/gerador-html/package.json +1 -1
- package/node_modules/@sema/gerador-javascript/package.json +1 -1
- package/node_modules/@sema/gerador-lua/dist/index.js +10 -0
- package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-lua/package.json +1 -1
- package/node_modules/@sema/gerador-python/package.json +1 -1
- package/node_modules/@sema/gerador-typescript/package.json +1 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +1 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +1 -1
- package/node_modules/@sema/nucleo/package.json +1 -1
- package/node_modules/@sema/padroes/package.json +1 -1
- package/package.json +15 -22
- package/AGENTS.md +0 -81
- package/AGENT_CONTEXT_PACK.json +0 -500
- package/SEMA_BRIEF.curto.txt +0 -18
- package/SEMA_BRIEF.md +0 -726
- package/SEMA_BRIEF.micro.txt +0 -16
- package/SEMA_INDEX.json +0 -11078
- package/dist/agentContext.js.map +0 -1
- package/dist/agentContextPack.js.map +0 -1
- package/dist/agentContextTipos.js.map +0 -1
- package/dist/agentEntryPoints.js.map +0 -1
- package/dist/angular-consumer-standalone.js.map +0 -1
- package/dist/authorAnalise.js.map +0 -1
- package/dist/authorPoliticas.js.map +0 -1
- package/dist/billing/index.js.map +0 -1
- package/dist/bridge.d.ts +0 -52
- package/dist/bridge.js +0 -333
- package/dist/bridge.js.map +0 -1
- package/dist/carregarModulos.js.map +0 -1
- package/dist/cliArgs.js.map +0 -1
- package/dist/comandos.js.map +0 -1
- package/dist/contexto.js.map +0 -1
- package/dist/controleComercialSupabase.d.ts +0 -7
- package/dist/controleComercialSupabase.js +0 -6
- package/dist/controleComercialSupabase.js.map +0 -1
- package/dist/controleComercialSupabaseAdmin.d.ts +0 -7
- package/dist/controleComercialSupabaseAdmin.js +0 -138
- package/dist/controleComercialSupabaseAdmin.js.map +0 -1
- package/dist/controleComercialSupabaseCadastro.d.ts +0 -4
- package/dist/controleComercialSupabaseCadastro.js +0 -85
- package/dist/controleComercialSupabaseCadastro.js.map +0 -1
- package/dist/controleComercialSupabaseConstantes.d.ts +0 -28
- package/dist/controleComercialSupabaseConstantes.js +0 -44
- package/dist/controleComercialSupabaseConstantes.js.map +0 -1
- package/dist/controleComercialSupabaseConsumo.d.ts +0 -2
- package/dist/controleComercialSupabaseConsumo.js +0 -77
- package/dist/controleComercialSupabaseConsumo.js.map +0 -1
- package/dist/controleComercialSupabaseConta.d.ts +0 -11
- package/dist/controleComercialSupabaseConta.js +0 -157
- package/dist/controleComercialSupabaseConta.js.map +0 -1
- package/dist/controleComercialSupabaseProfiles.d.ts +0 -4
- package/dist/controleComercialSupabaseProfiles.js +0 -55
- package/dist/controleComercialSupabaseProfiles.js.map +0 -1
- package/dist/controleComercialSupabaseTipos.d.ts +0 -3
- package/dist/controleComercialSupabaseTipos.js +0 -2
- package/dist/controleComercialSupabaseTipos.js.map +0 -1
- package/dist/controleComercialSupabaseTiposAdmin.d.ts +0 -152
- package/dist/controleComercialSupabaseTiposAdmin.js +0 -2
- package/dist/controleComercialSupabaseTiposAdmin.js.map +0 -1
- package/dist/controleComercialSupabaseTiposBase.d.ts +0 -169
- package/dist/controleComercialSupabaseTiposBase.js +0 -2
- package/dist/controleComercialSupabaseTiposBase.js.map +0 -1
- package/dist/controleComercialSupabaseTiposConta.d.ts +0 -220
- package/dist/controleComercialSupabaseTiposConta.js +0 -2
- package/dist/controleComercialSupabaseTiposConta.js.map +0 -1
- package/dist/cpp-symbols.js.map +0 -1
- package/dist/dev/index.js.map +0 -1
- package/dist/dev/watcher.js.map +0 -1
- package/dist/docs/resolver.js.map +0 -1
- package/dist/docs.js.map +0 -1
- package/dist/docs.part01.js.map +0 -1
- package/dist/docs.part02.js.map +0 -1
- package/dist/doctorCommand.js.map +0 -1
- package/dist/dotnet-http.js.map +0 -1
- package/dist/drift.contrato.js.map +0 -1
- package/dist/drift.js.map +0 -1
- package/dist/drift.part01.js.map +0 -1
- package/dist/drift.part02.js.map +0 -1
- package/dist/drift.part03.js.map +0 -1
- package/dist/drift.part04.js.map +0 -1
- package/dist/drift.part05.js.map +0 -1
- package/dist/drift.part06.js.map +0 -1
- package/dist/drift.part07.js.map +0 -1
- package/dist/drift.part08.js.map +0 -1
- package/dist/drift.part09.js.map +0 -1
- package/dist/drift.part10.js.map +0 -1
- package/dist/drift.part11.js.map +0 -1
- package/dist/drift.part12.js.map +0 -1
- package/dist/drift.part13.js.map +0 -1
- package/dist/drift.part14.js.map +0 -1
- package/dist/driftOrcamento.js.map +0 -1
- package/dist/driftScore.js.map +0 -1
- package/dist/execucoesExternas.js.map +0 -1
- package/dist/exemplosOficiais.js.map +0 -1
- package/dist/fsGovernado.js.map +0 -1
- package/dist/geracaoCore.js.map +0 -1
- package/dist/go-http.js.map +0 -1
- package/dist/guard.js.map +0 -1
- package/dist/iaPrompts.js.map +0 -1
- package/dist/importador.js.map +0 -1
- package/dist/importador.part01.js.map +0 -1
- package/dist/importador.part02.js.map +0 -1
- package/dist/importador.part03.js.map +0 -1
- package/dist/importador.part04.js.map +0 -1
- package/dist/importador.part05.js.map +0 -1
- package/dist/importador.part06.js.map +0 -1
- package/dist/importador.part07.js.map +0 -1
- package/dist/importador.part08.js.map +0 -1
- package/dist/importador.part09.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.part01.js.map +0 -1
- package/dist/index.part02.js.map +0 -1
- package/dist/index.part03.js.map +0 -1
- package/dist/index.part04.js.map +0 -1
- package/dist/index.part05.js.map +0 -1
- package/dist/index.part06.js.map +0 -1
- package/dist/index.part07.js.map +0 -1
- package/dist/index.part08.js.map +0 -1
- package/dist/init/index.js.map +0 -1
- package/dist/init/templates.js.map +0 -1
- package/dist/init/templates.part01.js.map +0 -1
- package/dist/init/templates.part02.js.map +0 -1
- package/dist/initCommand.js.map +0 -1
- package/dist/initTemplatesBackend.js.map +0 -1
- package/dist/initTemplatesBase.js.map +0 -1
- package/dist/initTemplatesFlutter.js.map +0 -1
- package/dist/initTemplatesRuntime.js.map +0 -1
- package/dist/initTemplatesWeb.js.map +0 -1
- package/dist/java-http.js.map +0 -1
- package/dist/lua-symbols.js.map +0 -1
- package/dist/mcpInstalarChaveCommand.d.ts +0 -1
- package/dist/mcpInstalarChaveCommand.js +0 -168
- package/dist/mcpInstalarChaveCommand.js.map +0 -1
- package/dist/mcpRemoto.d.ts +0 -32
- package/dist/mcpRemoto.js +0 -61
- package/dist/mcpRemoto.js.map +0 -1
- package/dist/mcp_chave.d.ts +0 -1
- package/dist/mcp_chave.js +0 -4
- package/dist/mcp_chave.js.map +0 -1
- package/dist/profileArtefatoBase.js.map +0 -1
- package/dist/profileArtefatoValidadores.js.map +0 -1
- package/dist/profileAuthorCommand.js.map +0 -1
- package/dist/profileAuthorTipos.js.map +0 -1
- package/dist/profileCatalogo.js.map +0 -1
- package/dist/profileCommand.js.map +0 -1
- package/dist/profileI18nCatalogo.js.map +0 -1
- package/dist/profileI18nVisivel.js.map +0 -1
- package/dist/profileOrquestracao.js.map +0 -1
- package/dist/profileRegras.js.map +0 -1
- package/dist/profileRulePacks.js.map +0 -1
- package/dist/profiles/validate.js.map +0 -1
- package/dist/projeto.js.map +0 -1
- package/dist/projetoBusca.js.map +0 -1
- package/dist/projetoCarregar.js.map +0 -1
- package/dist/projetoConfig.js.map +0 -1
- package/dist/projetoLegado.js.map +0 -1
- package/dist/projetoOrigens.js.map +0 -1
- package/dist/projetoResolucao.js.map +0 -1
- package/dist/projetoTipos.js.map +0 -1
- package/dist/python-http.js.map +0 -1
- package/dist/runnerValidacaoRemota.d.ts +0 -9
- package/dist/runnerValidacaoRemota.js +0 -9
- package/dist/runnerValidacaoRemota.js.map +0 -1
- package/dist/runnerValidacaoRemotaBateria.d.ts +0 -10
- package/dist/runnerValidacaoRemotaBateria.js +0 -117
- package/dist/runnerValidacaoRemotaBateria.js.map +0 -1
- package/dist/runnerValidacaoRemotaCli.d.ts +0 -4
- package/dist/runnerValidacaoRemotaCli.js +0 -86
- package/dist/runnerValidacaoRemotaCli.js.map +0 -1
- package/dist/runnerValidacaoRemotaComandos.d.ts +0 -7
- package/dist/runnerValidacaoRemotaComandos.js +0 -123
- package/dist/runnerValidacaoRemotaComandos.js.map +0 -1
- package/dist/runnerValidacaoRemotaEscopo.d.ts +0 -4
- package/dist/runnerValidacaoRemotaEscopo.js +0 -79
- package/dist/runnerValidacaoRemotaEscopo.js.map +0 -1
- package/dist/runnerValidacaoRemotaExecucao.d.ts +0 -2
- package/dist/runnerValidacaoRemotaExecucao.js +0 -104
- package/dist/runnerValidacaoRemotaExecucao.js.map +0 -1
- package/dist/runnerValidacaoRemotaRelatorio.d.ts +0 -3
- package/dist/runnerValidacaoRemotaRelatorio.js +0 -95
- package/dist/runnerValidacaoRemotaRelatorio.js.map +0 -1
- package/dist/runnerValidacaoRemotaServidor.d.ts +0 -4
- package/dist/runnerValidacaoRemotaServidor.js +0 -185
- package/dist/runnerValidacaoRemotaServidor.js.map +0 -1
- package/dist/runnerValidacaoRemotaSnapshot.d.ts +0 -10
- package/dist/runnerValidacaoRemotaSnapshot.js +0 -219
- package/dist/runnerValidacaoRemotaSnapshot.js.map +0 -1
- package/dist/runnerValidacaoRemotaTipos.d.ts +0 -158
- package/dist/runnerValidacaoRemotaTipos.js +0 -35
- package/dist/runnerValidacaoRemotaTipos.js.map +0 -1
- package/dist/runnerValidacaoRemotaUtil.d.ts +0 -3
- package/dist/runnerValidacaoRemotaUtil.js +0 -18
- package/dist/runnerValidacaoRemotaUtil.js.map +0 -1
- package/dist/runnerValidacaoRemotaWorkspace.d.ts +0 -2
- package/dist/runnerValidacaoRemotaWorkspace.js +0 -115
- package/dist/runnerValidacaoRemotaWorkspace.js.map +0 -1
- package/dist/rust-http.js.map +0 -1
- package/dist/semaChatCommand.d.ts +0 -1
- package/dist/semaChatCommand.js +0 -43
- package/dist/semaChatCommand.js.map +0 -1
- package/dist/semaChatRuntime.d.ts +0 -23
- package/dist/semaChatRuntime.js +0 -202
- package/dist/semaChatRuntime.js.map +0 -1
- package/dist/sync/index.js.map +0 -1
- package/dist/textoListas.js.map +0 -1
- package/dist/tipos.js.map +0 -1
- package/dist/typescript-http-body.js.map +0 -1
- package/dist/typescript-http-expressoes.js.map +0 -1
- package/dist/typescript-http-modelos.js.map +0 -1
- package/dist/typescript-http-rotas.js.map +0 -1
- package/dist/typescript-http-semantica.js.map +0 -1
- package/dist/typescript-http.js.map +0 -1
- package/docs/AGENT_STARTER.md +0 -147
- package/docs/agentes-por-capacidade.md +0 -130
- package/docs/api.md +0 -82
- package/docs/comandos.md +0 -807
- package/docs/como-ensinar-a-sema-para-ia.md +0 -30
- package/docs/documentacao.md +0 -74
- package/docs/extensao-vscode.md +0 -49
- package/docs/fluxo-pratico-ia-sema.md +0 -278
- package/docs/instalacao-e-primeiro-uso.md +0 -60
- package/docs/integracao-com-ia.md +0 -44
- package/docs/mcp.md +0 -69
- package/docs/pagamento-ponta-a-ponta.md +0 -171
- package/docs/persistencia-vendor-first.md +0 -151
- package/docs/prompt-base-ia-sema.md +0 -111
- package/docs/seguranca.md +0 -126
- package/docs/sintaxe.md +0 -390
- package/llms-full.txt +0 -40
- package/llms.txt +0 -23
|
@@ -1,171 +0,0 @@
|
|
|
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.
|
|
@@ -1,151 +0,0 @@
|
|
|
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
|
|
@@ -1,111 +0,0 @@
|
|
|
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.
|
package/docs/seguranca.md
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
# Security
|
|
2
|
-
|
|
3
|
-
<!-- sema:i18n -->
|
|
4
|
-
> EN: English first.
|
|
5
|
-
> PT: Português depois, com acentos preservados.
|
|
6
|
-
> ES: Español al final.
|
|
7
|
-
|
|
8
|
-
## EN
|
|
9
|
-
|
|
10
|
-
The remote Sema MCP is a sensitive surface. It lets authorized agents read contracts, check drift, generate IA-first context, and operate inside allowed roots. Security depends on these controls working together:
|
|
11
|
-
|
|
12
|
-
1. HTTPS on the public proxy.
|
|
13
|
-
2. Commercial `sema_mcp_*` bearer key per request or OAuth authentication.
|
|
14
|
-
3. `SEMA_MCP_PROJECT_ROOTS` pointing to a dedicated server root, for example `/srv/sema/projetos`.
|
|
15
|
-
4. Contract-first operation before code, deploy, docs, workflow, Author text, game, legal, research, or ops actions.
|
|
16
|
-
|
|
17
|
-
Do not publish the server without those controls.
|
|
18
|
-
|
|
19
|
-
### Data That Must Not Leak
|
|
20
|
-
|
|
21
|
-
- GitHub, npm, Supabase, SSH, or Git Credential Manager tokens.
|
|
22
|
-
- Client-side `SEMA_MCP_AUTH_TOKEN` values containing `sema_mcp_*` keys.
|
|
23
|
-
- `SEMA_MCP_OAUTH_SECRET`.
|
|
24
|
-
- `SEMA_MCP_OAUTH_PASSCODE`.
|
|
25
|
-
- Private key content.
|
|
26
|
-
- `.env`, build caches, uploads, installed dependencies, or temporary snapshots with secrets.
|
|
27
|
-
|
|
28
|
-
Operational runbooks may document non-secret references, such as the public domain, service name, and generic deployment role. They must never include private key bodies, private-key filenames, local key paths, non-public IPs, real server paths, or secret inventory details.
|
|
29
|
-
|
|
30
|
-
### Remote Operation
|
|
31
|
-
|
|
32
|
-
- Use the smallest privilege that still performs the job.
|
|
33
|
-
- Do not log `Authorization` headers.
|
|
34
|
-
- Do not publish `/mcp` with empty `SEMA_MCP_PROJECT_ROOTS`.
|
|
35
|
-
- Keep Caddy or the reverse proxy with valid TLS.
|
|
36
|
-
- Test `/mcp` without token and expect an authorization challenge.
|
|
37
|
-
- Test account-scoped MCP tokens before declaring the product flow ready.
|
|
38
|
-
|
|
39
|
-
### Incident
|
|
40
|
-
|
|
41
|
-
If a secret appears in chat, screenshot, log, release, or Git history:
|
|
42
|
-
|
|
43
|
-
1. Treat it as compromised.
|
|
44
|
-
2. Rotate it at the provider.
|
|
45
|
-
3. Remove it from the current file.
|
|
46
|
-
4. If it reached Git, rewrite history or revoke it permanently.
|
|
47
|
-
|
|
48
|
-
## PT
|
|
49
|
-
|
|
50
|
-
O Sema MCP remoto é uma superfície sensível. Ele permite que agentes autorizados leiam contratos, verifiquem drift, gerem contexto IA-first e operem dentro das raízes permitidas. A segurança depende destas travas trabalhando juntas:
|
|
51
|
-
|
|
52
|
-
1. HTTPS no proxy público.
|
|
53
|
-
2. Autenticacao por chave comercial `sema_mcp_*` por request ou OAuth.
|
|
54
|
-
3. `SEMA_MCP_PROJECT_ROOTS` apontando para uma raiz dedicada no servidor, por exemplo `/srv/sema/projetos`.
|
|
55
|
-
4. Operação contract-first antes de código, deploy, docs, workflow, texto Author, jogo, jurídico, pesquisa ou ops.
|
|
56
|
-
|
|
57
|
-
Não publique o servidor sem essas travas.
|
|
58
|
-
|
|
59
|
-
### Dados Que Não Podem Vazar
|
|
60
|
-
|
|
61
|
-
- Tokens de GitHub, npm, Supabase, SSH ou Git Credential Manager.
|
|
62
|
-
- Valores locais de `SEMA_MCP_AUTH_TOKEN` contendo chaves `sema_mcp_*`.
|
|
63
|
-
- `SEMA_MCP_OAUTH_SECRET`.
|
|
64
|
-
- `SEMA_MCP_OAUTH_PASSCODE`.
|
|
65
|
-
- Conteúdo de chave privada.
|
|
66
|
-
- `.env`, caches de build, uploads, dependências instaladas ou snapshots temporários com segredo.
|
|
67
|
-
|
|
68
|
-
Runbooks operacionais podem documentar referências não secretas, como domínio público, nome do serviço e papel genérico de deploy. Eles nunca devem incluir corpo de chave privada, nomes de arquivos de chave privada, caminhos locais de chave, IPs não públicos, caminhos reais de servidor ou detalhes do inventário de segredos.
|
|
69
|
-
|
|
70
|
-
### Operação Remota
|
|
71
|
-
|
|
72
|
-
- Use o menor privilégio que ainda executa o trabalho.
|
|
73
|
-
- Não registre headers `Authorization` em logs.
|
|
74
|
-
- Não publique `/mcp` com `SEMA_MCP_PROJECT_ROOTS` vazio.
|
|
75
|
-
- Mantenha Caddy ou reverse proxy com TLS válido.
|
|
76
|
-
- Teste `/mcp` sem token esperando desafio de autorização.
|
|
77
|
-
- Teste tokens MCP por conta antes de declarar o fluxo de produto pronto.
|
|
78
|
-
|
|
79
|
-
### Incidente
|
|
80
|
-
|
|
81
|
-
Se um segredo aparecer em chat, print, log, release ou histórico Git:
|
|
82
|
-
|
|
83
|
-
1. Considere comprometido.
|
|
84
|
-
2. Rotacione no provedor de origem.
|
|
85
|
-
3. Remova do arquivo atual.
|
|
86
|
-
4. Se chegou ao Git, reescreva histórico ou revogue definitivamente o segredo.
|
|
87
|
-
|
|
88
|
-
## ES
|
|
89
|
-
|
|
90
|
-
El Sema MCP remoto es una superficie sensible. Permite que agentes autorizados lean contratos, verifiquen drift, generen contexto IA-first y operen dentro de las raíces permitidas. La seguridad depende de estos controles trabajando juntos:
|
|
91
|
-
|
|
92
|
-
1. HTTPS en el proxy público.
|
|
93
|
-
2. Autenticacion por clave comercial `sema_mcp_*` por request u OAuth.
|
|
94
|
-
3. `SEMA_MCP_PROJECT_ROOTS` apuntando a una raíz dedicada en el servidor, por ejemplo `/srv/sema/projetos`.
|
|
95
|
-
4. Operación contract-first antes de código, despliegue, docs, workflow, texto Author, juego, legal, investigación u ops.
|
|
96
|
-
|
|
97
|
-
No publiques el servidor sin esos controles.
|
|
98
|
-
|
|
99
|
-
### Datos Que No Deben Filtrarse
|
|
100
|
-
|
|
101
|
-
- Tokens de GitHub, npm, Supabase, SSH o Git Credential Manager.
|
|
102
|
-
- Valores locales de `SEMA_MCP_AUTH_TOKEN` con claves `sema_mcp_*`.
|
|
103
|
-
- `SEMA_MCP_OAUTH_SECRET`.
|
|
104
|
-
- `SEMA_MCP_OAUTH_PASSCODE`.
|
|
105
|
-
- Contenido de llave privada.
|
|
106
|
-
- `.env`, cachés de build, uploads, dependencias instaladas o snapshots temporales con secretos.
|
|
107
|
-
|
|
108
|
-
Los runbooks operativos pueden documentar referencias no secretas, como dominio público, nombre del servicio y rol genérico de despliegue. Nunca deben incluir el cuerpo de la llave privada, nombres de archivos de llave privada, rutas locales de llaves, IPs no públicas, rutas reales del servidor o detalles del inventario de secretos.
|
|
109
|
-
|
|
110
|
-
### Operación Remota
|
|
111
|
-
|
|
112
|
-
- Usa el menor privilegio que todavía permita ejecutar el trabajo.
|
|
113
|
-
- No registres headers `Authorization` en logs.
|
|
114
|
-
- No publiques `/mcp` con `SEMA_MCP_PROJECT_ROOTS` vacío.
|
|
115
|
-
- Mantén Caddy o el reverse proxy con TLS válido.
|
|
116
|
-
- Prueba `/mcp` sin token y espera un desafío de autorización.
|
|
117
|
-
- Prueba tokens MCP por cuenta antes de declarar listo el flujo de producto.
|
|
118
|
-
|
|
119
|
-
### Incidente
|
|
120
|
-
|
|
121
|
-
Si un secreto aparece en chat, captura, log, release o historial Git:
|
|
122
|
-
|
|
123
|
-
1. Trátalo como comprometido.
|
|
124
|
-
2. Rótalo en el proveedor de origen.
|
|
125
|
-
3. Elimínalo del archivo actual.
|
|
126
|
-
4. Si llegó a Git, reescribe el historial o revócalo definitivamente.
|