@semacode/cli 1.5.48 → 1.5.53
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
package/docs/sintaxe.md
DELETED
|
@@ -1,390 +0,0 @@
|
|
|
1
|
-
<!-- sema:agent-entrypoint:start -->
|
|
2
|
-
# Sintaxe Sema Para IA
|
|
3
|
-
|
|
4
|
-
Use este arquivo como referencia curta antes de criar ou corrigir contratos `.sema`.
|
|
5
|
-
|
|
6
|
-
## Regra de ouro
|
|
7
|
-
|
|
8
|
-
Contrato vem antes de codigo. Antes de escrever `.sema`, consulte os exemplos locais em `exemplos/`.
|
|
9
|
-
|
|
10
|
-
## Exemplo minimo
|
|
11
|
-
|
|
12
|
-
```sema
|
|
13
|
-
module app.exemplo {
|
|
14
|
-
entity Item {
|
|
15
|
-
fields {
|
|
16
|
-
id: Id
|
|
17
|
-
nome: Texto
|
|
18
|
-
ativo: Booleano
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
task criar_item {
|
|
23
|
-
input {
|
|
24
|
-
nome: Texto required
|
|
25
|
-
}
|
|
26
|
-
output {
|
|
27
|
-
item: Item
|
|
28
|
-
}
|
|
29
|
-
rules {
|
|
30
|
-
nome deve_ser preenchido
|
|
31
|
-
}
|
|
32
|
-
effects {
|
|
33
|
-
persistencia Item
|
|
34
|
-
auditoria item_criado
|
|
35
|
-
}
|
|
36
|
-
guarantees {
|
|
37
|
-
item existe
|
|
38
|
-
}
|
|
39
|
-
tests {
|
|
40
|
-
caso "cria item valido" {
|
|
41
|
-
given { nome: "Item" }
|
|
42
|
-
expect { sucesso: verdadeiro }
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## Blocos mais usados
|
|
50
|
-
|
|
51
|
-
- `docs`: resumo e notas do modulo.
|
|
52
|
-
- `entity`: modelo de dominio.
|
|
53
|
-
- `task`: operacao governada.
|
|
54
|
-
- `input` e `output`: contrato de entrada e saida.
|
|
55
|
-
- `rules`: validacoes e regras de negocio.
|
|
56
|
-
- `effects`: persistencia, consulta, evento, auditoria e chamadas externas.
|
|
57
|
-
- `guarantees`: o que a task precisa entregar se tiver sucesso.
|
|
58
|
-
- `error`: erros nomeados e mensagens.
|
|
59
|
-
- `tests`: casos minimos de comportamento.
|
|
60
|
-
- `route`: superficie publica vinculada a uma task.
|
|
61
|
-
- `impl` e `vinculos`: ligacao entre contrato e codigo real.
|
|
62
|
-
|
|
63
|
-
## Origens canonicas de `use` e `impl`
|
|
64
|
-
|
|
65
|
-
Use estas origens em contratos antes de inventar palavra nova:
|
|
66
|
-
|
|
67
|
-
- `ts` ou `typescript`
|
|
68
|
-
- `js` ou `javascript`
|
|
69
|
-
- `py` ou `python`
|
|
70
|
-
- `dart`
|
|
71
|
-
- `lua`
|
|
72
|
-
- `cs` ou `dotnet`
|
|
73
|
-
- `java`
|
|
74
|
-
- `go`
|
|
75
|
-
- `rust`
|
|
76
|
-
- `cpp`
|
|
77
|
-
|
|
78
|
-
Exemplos:
|
|
79
|
-
|
|
80
|
-
```sema
|
|
81
|
-
use javascript app.web.despesas
|
|
82
|
-
|
|
83
|
-
impl {
|
|
84
|
-
js: src.app.salvarDespesa
|
|
85
|
-
}
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
`sema compilar --alvo javascript` define o alvo de geracao. `impl { js: ... }` define a origem do codigo vivo ligado ao contrato. Sao camadas diferentes e ambas sao validas.
|
|
89
|
-
|
|
90
|
-
## Listas canonicas pequenas
|
|
91
|
-
|
|
92
|
-
- `effects`: `persistencia`, `consulta`, `evento`, `auditoria`, `db.write`, `queue.publish`, `fs.write`, `network.egress`, `secret.read`, `shell.exec`.
|
|
93
|
-
- `audit.motivo`: `obrigatorio`, `opcional`, `dispensado`.
|
|
94
|
-
|
|
95
|
-
## Tamanho de contrato .sema
|
|
96
|
-
|
|
97
|
-
- ate 300 linhas: saudavel
|
|
98
|
-
- 301-500 linhas: diagnostico, planeje split
|
|
99
|
-
- acima de 500: bloqueia criacao, edicao, drift, finalizacao, geracao e snapshot
|
|
100
|
-
- divida por dominio/capacidade real, como `despesas_cadastro.sema`, `despesas_totais.sema`, `despesas_persistencia.sema`
|
|
101
|
-
- nunca use `parte_1`, `parte_2`, `part_3` ou nomes equivalentes
|
|
102
|
-
- nao remova `guarantees`, `tests`, `authz`, `dados` ou `vinculos` so para caber no limite
|
|
103
|
-
- varios contratos `.sema` podem governar o mesmo arquivo de codigo via `vinculos`; isso e esperado
|
|
104
|
-
|
|
105
|
-
## JavaScript existe
|
|
106
|
-
|
|
107
|
-
A CLI suporta geracao JavaScript. Use:
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
sema compilar contratos/pedidos.sema --alvo javascript --saida ./generated/javascript
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
O projeto tambem pode gerar TypeScript, Python, Dart, Lua, HTML e CSS quando esses alvos estiverem em `sema.config.json`.
|
|
114
|
-
|
|
115
|
-
## Arquivos de apoio
|
|
116
|
-
|
|
117
|
-
- `AGENTS.md`: regras obrigatorias do agente.
|
|
118
|
-
- `SEMA_BOOT.md`: primeira leitura para qualquer IA.
|
|
119
|
-
- `SEMA_SMALL_MODEL.md`: versao curta para IA fraca.
|
|
120
|
-
- `AGENT_CONTEXT_PACK.json`: pacote estruturado para agentes.
|
|
121
|
-
- `SEMA_INDEX.json`: indice do projeto.
|
|
122
|
-
- `docs/comandos.md`: catalogo de comandos, gates e regra de `--saida`.
|
|
123
|
-
- `exemplos/`: exemplos oficiais da DSL.
|
|
124
|
-
|
|
125
|
-
Se a IA nao souber qual forma usar, ela deve abrir `exemplos/calculadora.sema`, `exemplos/crud_simples.sema`, `exemplos/pagamento.sema` ou `exemplos/tratamento_erro.sema` antes de inventar sintaxe.
|
|
126
|
-
|
|
127
|
-
Politica de plataforma: O Sema governa contrato, escopo, drift, evidência e qualidade do projeto. Ele não pede, não autoriza e não contorna políticas da plataforma, termos de uso, permissões, segurança ou leis.
|
|
128
|
-
<!-- sema:agent-entrypoint:end -->
|
|
129
|
-
|
|
130
|
-
# Sintaxe Canonica
|
|
131
|
-
|
|
132
|
-
<!-- sema:i18n -->
|
|
133
|
-
> EN: English first. The canonical operational body below may still be in Portuguese until full translation lands.
|
|
134
|
-
> PT: Português depois, com acentos preservados.
|
|
135
|
-
> ES: Español al final; não traduza comandos, rotas nem sómbolos `.sema` sem contrato.
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
A Sema usa blocos declarativos previsiveis para reduzir ambiguidade no parser, na IR, no drift e no contexto de IA. A escrita humana pode ser legivel, mas o alvo principal da sintaxe e gerar contrato consumivel por agente.
|
|
139
|
-
|
|
140
|
-
## Regras basicas
|
|
141
|
-
|
|
142
|
-
- um arquivo `.sema` contem um `module` principal
|
|
143
|
-
- cada bloco abre com palavra-chave e fecha com `}`
|
|
144
|
-
- campos usam `nome: valor`
|
|
145
|
-
- blocos declarativos podem aparecer aninhados quando o contrato exigir
|
|
146
|
-
- `tests` usa blocos `caso`
|
|
147
|
-
|
|
148
|
-
## Blocos de primeira classe
|
|
149
|
-
|
|
150
|
-
- `module`
|
|
151
|
-
- `use`
|
|
152
|
-
- `database`
|
|
153
|
-
- `type`
|
|
154
|
-
- `entity`
|
|
155
|
-
- `enum`
|
|
156
|
-
- `state`
|
|
157
|
-
- `task`
|
|
158
|
-
- `flow`
|
|
159
|
-
- `route`
|
|
160
|
-
- `worker`
|
|
161
|
-
- `evento`
|
|
162
|
-
- `fila`
|
|
163
|
-
- `cron`
|
|
164
|
-
- `webhook`
|
|
165
|
-
- `cache`
|
|
166
|
-
- `storage`
|
|
167
|
-
- `policy`
|
|
168
|
-
- `tests`
|
|
169
|
-
- `docs`
|
|
170
|
-
- `comments`
|
|
171
|
-
|
|
172
|
-
## Subblocos comuns
|
|
173
|
-
|
|
174
|
-
- `input`
|
|
175
|
-
- `output`
|
|
176
|
-
- `rules`
|
|
177
|
-
- `effects`
|
|
178
|
-
- `auth`
|
|
179
|
-
- `authz`
|
|
180
|
-
- `dados`
|
|
181
|
-
- `audit`
|
|
182
|
-
- `segredos`
|
|
183
|
-
- `forbidden`
|
|
184
|
-
- `impl`
|
|
185
|
-
- `vinculos`
|
|
186
|
-
- `execucao`
|
|
187
|
-
- `guarantees`
|
|
188
|
-
- `error`
|
|
189
|
-
- `fields`
|
|
190
|
-
- `invariants`
|
|
191
|
-
- `transitions`
|
|
192
|
-
- `given`
|
|
193
|
-
- `when`
|
|
194
|
-
- `expect`
|
|
195
|
-
|
|
196
|
-
## Origens canonicas de `use` e `impl`
|
|
197
|
-
|
|
198
|
-
Use estas origens em contratos antes de inventar palavra nova:
|
|
199
|
-
|
|
200
|
-
- `ts` ou `typescript`
|
|
201
|
-
- `js` ou `javascript`
|
|
202
|
-
- `py` ou `python`
|
|
203
|
-
- `dart`
|
|
204
|
-
- `lua`
|
|
205
|
-
- `cs` ou `dotnet`
|
|
206
|
-
- `java`
|
|
207
|
-
- `go`
|
|
208
|
-
- `rust`
|
|
209
|
-
- `cpp`
|
|
210
|
-
|
|
211
|
-
Exemplos:
|
|
212
|
-
|
|
213
|
-
```sema
|
|
214
|
-
use javascript app.web.despesas
|
|
215
|
-
|
|
216
|
-
task salvar_despesa {
|
|
217
|
-
input {
|
|
218
|
-
descricao: Texto required
|
|
219
|
-
}
|
|
220
|
-
output {
|
|
221
|
-
id: Id
|
|
222
|
-
}
|
|
223
|
-
impl {
|
|
224
|
-
js: src.app.salvarDespesa
|
|
225
|
-
}
|
|
226
|
-
guarantees {
|
|
227
|
-
id existe
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
`sema compilar --alvo javascript` define alvo de geracao. `impl { js: ... }` define origem do codigo vivo. Nao troque uma coisa pela outra.
|
|
233
|
-
|
|
234
|
-
## Listas canonicas pequenas
|
|
235
|
-
|
|
236
|
-
- `effects`: `persistencia`, `consulta`, `evento`, `auditoria`, `db.write`, `queue.publish`, `fs.write`, `network.egress`, `secret.read`, `shell.exec`.
|
|
237
|
-
- `audit.motivo`: `obrigatorio`, `opcional`, `dispensado`.
|
|
238
|
-
|
|
239
|
-
## Tipos primitivos
|
|
240
|
-
|
|
241
|
-
Tipos primitivos reconhecidos diretamente:
|
|
242
|
-
|
|
243
|
-
- `Texto`
|
|
244
|
-
- `Numero`
|
|
245
|
-
- `Inteiro`
|
|
246
|
-
- `Decimal`
|
|
247
|
-
- `Booleano`
|
|
248
|
-
- `Data`
|
|
249
|
-
- `Timestamp`
|
|
250
|
-
- `Objeto`
|
|
251
|
-
- `Id`
|
|
252
|
-
- `Email`
|
|
253
|
-
- `Json`
|
|
254
|
-
|
|
255
|
-
`Timestamp` e `Objeto` funcionam como aliases primitivos suportados e preservam o texto original na IR.
|
|
256
|
-
|
|
257
|
-
## Tipos compostos
|
|
258
|
-
|
|
259
|
-
```sema
|
|
260
|
-
input {
|
|
261
|
-
ids: Lista<Id> required
|
|
262
|
-
metadata: Mapa<Texto, Texto>
|
|
263
|
-
responsavel: Opcional<Usuario>
|
|
264
|
-
chave_publica: Texto|Id
|
|
265
|
-
}
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
Formas suportadas:
|
|
269
|
-
|
|
270
|
-
- `Lista<T>`
|
|
271
|
-
- `Mapa<K, V>`
|
|
272
|
-
- `Opcional<T>`
|
|
273
|
-
- `T1|T2`
|
|
274
|
-
- `T?`
|
|
275
|
-
|
|
276
|
-
## Predicados normalizados
|
|
277
|
-
|
|
278
|
-
Predicados escritos em contrato preservam o texto original em `predicado`. Quando a CLI reconhece uma forma comum, a expressao estruturada pode expor também `predicadoCanonico`.
|
|
279
|
-
|
|
280
|
-
Exemplo:
|
|
281
|
-
|
|
282
|
-
```sema
|
|
283
|
-
rules {
|
|
284
|
-
email deve_ser email_valido
|
|
285
|
-
nome deve_ser preenchido
|
|
286
|
-
}
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
Na IR, `email_valido` continua existindo como escrito e pode receber uma normalizacao como `valid_email`; `preenchido` pode receber `filled`. Esse campo e opcional e serve a agente/automacao, não muda a sintaxe pública.
|
|
290
|
-
|
|
291
|
-
## Persistência vendor-first
|
|
292
|
-
|
|
293
|
-
O bloco `database` modela banco e recursos persistidos sem apagar as diferenças entre engines.
|
|
294
|
-
|
|
295
|
-
Estrutura base:
|
|
296
|
-
|
|
297
|
-
```sema
|
|
298
|
-
database principal_postgres {
|
|
299
|
-
engine: postgres
|
|
300
|
-
consistency: forte
|
|
301
|
-
durability: alta
|
|
302
|
-
transaction_model: mvcc
|
|
303
|
-
query_model: sql
|
|
304
|
-
}
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
Recursos canonicamente suportados:
|
|
308
|
-
|
|
309
|
-
- `table`
|
|
310
|
-
- `index`
|
|
311
|
-
- `relationship`
|
|
312
|
-
- `query`
|
|
313
|
-
- `retention`
|
|
314
|
-
- `lock`
|
|
315
|
-
- `replication`
|
|
316
|
-
- `collection`
|
|
317
|
-
- `document`
|
|
318
|
-
- `keyspace`
|
|
319
|
-
- `stream`
|
|
320
|
-
- `capabilities`
|
|
321
|
-
|
|
322
|
-
Exemplo relacional:
|
|
323
|
-
|
|
324
|
-
```sema
|
|
325
|
-
database principal_postgres {
|
|
326
|
-
engine: postgres
|
|
327
|
-
schema: public
|
|
328
|
-
capabilities {
|
|
329
|
-
joins
|
|
330
|
-
views
|
|
331
|
-
foreign_keys
|
|
332
|
-
}
|
|
333
|
-
table pedidos {
|
|
334
|
-
entity: Pedido
|
|
335
|
-
}
|
|
336
|
-
relationship pedido_cliente {
|
|
337
|
-
from: Pedido
|
|
338
|
-
to: Cliente
|
|
339
|
-
}
|
|
340
|
-
query buscar_pedidos {
|
|
341
|
-
mode: sql
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
Exemplo documental:
|
|
347
|
-
|
|
348
|
-
```sema
|
|
349
|
-
database principal_mongodb {
|
|
350
|
-
engine: mongodb
|
|
351
|
-
query_model: documento
|
|
352
|
-
collection pedidos {
|
|
353
|
-
collection: pedidos
|
|
354
|
-
}
|
|
355
|
-
document pedido_snapshot {
|
|
356
|
-
entity: PedidoSnapshot
|
|
357
|
-
}
|
|
358
|
-
query pipeline_pedido {
|
|
359
|
-
mode: pipeline
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
Exemplo key-value:
|
|
365
|
-
|
|
366
|
-
```sema
|
|
367
|
-
database principal_redis {
|
|
368
|
-
engine: redis
|
|
369
|
-
query_model: chave_valor
|
|
370
|
-
keyspace cache_pedidos {
|
|
371
|
-
ttl: "300s"
|
|
372
|
-
}
|
|
373
|
-
stream eventos_pedido {
|
|
374
|
-
surface: fila
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
## Compatibilidade declarada
|
|
380
|
-
|
|
381
|
-
O IR de persistência calcula compatibilidade por recurso com quatro estados:
|
|
382
|
-
|
|
383
|
-
- `nativo`
|
|
384
|
-
- `adaptado`
|
|
385
|
-
- `parcial`
|
|
386
|
-
- `invalido`
|
|
387
|
-
|
|
388
|
-
Isso existe para deixar explícito quando um contrato está pedindo de um banco algo que ele não entrega do mesmo jeito.
|
|
389
|
-
|
|
390
|
-
O mesmo principio vale para runtime de orquestração. Superfícies como `webhook`, `cron`, `worker`, `evento` e `fila` podem ser medidas contra famílias como `n8n`, mas o contrato continua canonicamente modelado em Sema, sem rebaixar a linguagem para a sintaxe do adapter alvo.
|
package/llms-full.txt
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
Sema is an AI-first semantic language and tooling stack for explicit software intent, drift analysis, and safer intervention in live backend systems.
|
|
2
|
-
|
|
3
|
-
This repository is not optimized for human-first reading. It is optimized for AI agents that need compressed, canonical semantic context.
|
|
4
|
-
|
|
5
|
-
Canonical entrypoints in the repository root:
|
|
6
|
-
1. `llms.txt`
|
|
7
|
-
2. `AGENT_CONTEXT_PACK.json`
|
|
8
|
-
3. `SEMA_BRIEF.md`
|
|
9
|
-
4. `SEMA_INDEX.json`
|
|
10
|
-
5. `AGENTS.md`
|
|
11
|
-
6. `README.md`
|
|
12
|
-
7. `docs/AGENT_STARTER.md`
|
|
13
|
-
|
|
14
|
-
Capacity routing:
|
|
15
|
-
- small/free AI: `llms.txt` -> `AGENT_CONTEXT_PACK.json` -> `SEMA_BRIEF.micro.txt` -> `SEMA_INDEX.json` -> `AGENTS.md`
|
|
16
|
-
- medium AI: `llms.txt` -> `AGENT_CONTEXT_PACK.json` -> `SEMA_BRIEF.curto.txt` -> `SEMA_INDEX.json` -> `AGENTS.md` -> `README.md`
|
|
17
|
-
- large/tool-using AI: `llms-full.txt` -> `AGENT_CONTEXT_PACK.json` -> `SEMA_BRIEF.md` -> `SEMA_INDEX.json` -> `AGENTS.md` -> `README.md`
|
|
18
|
-
|
|
19
|
-
Platform policy:
|
|
20
|
-
- Sema governs project contracts, scope, drift, evidence, language, semantic budget, and quality.
|
|
21
|
-
- Sema does not bypass platform policy, terms, permissions, security, or law.
|
|
22
|
-
- If a client/model blocks or warns, treat it as an external block or possible false positive; explain neutrally and do not try to bypass filters.
|
|
23
|
-
|
|
24
|
-
Source-of-truth order:
|
|
25
|
-
1. root Sema artifacts
|
|
26
|
-
2. CLI JSON outputs
|
|
27
|
-
3. official docs
|
|
28
|
-
4. official examples
|
|
29
|
-
5. raw implementation code
|
|
30
|
-
|
|
31
|
-
Useful commands:
|
|
32
|
-
- `sema resumo <arquivo-ou-pasta> --micro --para mudanca`
|
|
33
|
-
- `sema prompt-curto <arquivo-ou-pasta> --curto --para review`
|
|
34
|
-
- `sema drift <arquivo-ou-pasta> --json`
|
|
35
|
-
- `sema contexto-ia <arquivo.sema> --saida ./.tmp/contexto --json`
|
|
36
|
-
- `sema validar <arquivo-ou-pasta> --json`
|
|
37
|
-
- `sema verificar <arquivo-ou-pasta> --json`
|
|
38
|
-
|
|
39
|
-
Do not ask the model to infer semantics that are already available in Sema artifacts.
|
|
40
|
-
Do not start from raw source code if `AGENT_CONTEXT_PACK`, `SEMA_BRIEF`, `SEMA_INDEX`, `drift`, or `briefing` are available.
|
package/llms.txt
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
Sema is an AI-first semantic language and tooling stack for backend intent.
|
|
2
|
-
|
|
3
|
-
This repository is not human-first. Use the canonical AI entrypoints before raw code.
|
|
4
|
-
|
|
5
|
-
Read in this order:
|
|
6
|
-
1. AGENT_CONTEXT_PACK.json
|
|
7
|
-
2. SEMA_BRIEF.micro.txt or SEMA_BRIEF.md
|
|
8
|
-
3. SEMA_INDEX.json
|
|
9
|
-
4. AGENTS.md
|
|
10
|
-
5. README.md
|
|
11
|
-
|
|
12
|
-
Capacity routing:
|
|
13
|
-
- small models: llms.txt -> AGENT_CONTEXT_PACK.json -> SEMA_BRIEF.micro.txt -> SEMA_INDEX.json -> AGENTS.md
|
|
14
|
-
- medium models: llms.txt -> AGENT_CONTEXT_PACK.json -> SEMA_BRIEF.curto.txt -> SEMA_INDEX.json -> AGENTS.md -> README.md
|
|
15
|
-
- large models: llms-full.txt -> AGENT_CONTEXT_PACK.json -> SEMA_BRIEF.md -> SEMA_INDEX.json -> AGENTS.md -> README.md
|
|
16
|
-
|
|
17
|
-
Platform policy:
|
|
18
|
-
- Sema governs project contracts, scope, drift, evidence, language, semantic budget, and quality.
|
|
19
|
-
- Sema does not bypass platform policy, terms, permissions, security, or law.
|
|
20
|
-
- If a client/model blocks or warns, treat it as an external block or possible false positive; explain neutrally and do not try to bypass filters.
|
|
21
|
-
|
|
22
|
-
Prefer Sema artifacts over raw source code when both exist.
|
|
23
|
-
Prefer `drift`, `briefing`, `ir`, and `diagnosticos` over guesswork.
|