@semacode/cli 1.5.29 → 1.5.30
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/dist/comandos.js +36 -0
- package/dist/comandos.js.map +1 -1
- package/dist/guard.d.ts +35 -0
- package/dist/guard.js +164 -0
- package/dist/guard.js.map +1 -0
- package/exemplos/.prepack-generated +1 -0
- package/node_modules/@sema/gerador-css/package.json +14 -7
- package/node_modules/@sema/gerador-css/src/index.ts +605 -0
- package/node_modules/@sema/gerador-css/tsconfig.json +13 -0
- package/node_modules/@sema/gerador-css/tsconfig.tsbuildinfo +1 -0
- package/node_modules/@sema/gerador-dart/package.json +14 -7
- package/node_modules/@sema/gerador-dart/src/index.ts +52 -0
- package/node_modules/@sema/gerador-dart/tsconfig.json +13 -0
- package/node_modules/@sema/gerador-dart/tsconfig.tsbuildinfo +1 -0
- package/node_modules/@sema/gerador-html/package.json +14 -7
- package/node_modules/@sema/gerador-html/src/index.ts +185 -0
- package/node_modules/@sema/gerador-html/tsconfig.json +13 -0
- package/node_modules/@sema/gerador-html/tsconfig.tsbuildinfo +1 -0
- package/node_modules/@sema/gerador-javascript/package.json +14 -7
- package/node_modules/@sema/gerador-javascript/src/index.ts +461 -0
- package/node_modules/@sema/gerador-javascript/tsconfig.json +13 -0
- package/node_modules/@sema/gerador-javascript/tsconfig.tsbuildinfo +1 -0
- package/node_modules/@sema/gerador-lua/package.json +14 -7
- package/node_modules/@sema/gerador-lua/src/index.ts +359 -0
- package/node_modules/@sema/gerador-lua/tsconfig.json +13 -0
- package/node_modules/@sema/gerador-lua/tsconfig.tsbuildinfo +1 -0
- package/node_modules/@sema/gerador-python/package.json +14 -7
- package/node_modules/@sema/gerador-python/src/index.ts +850 -0
- package/node_modules/@sema/gerador-python/tsconfig.json +13 -0
- package/node_modules/@sema/gerador-python/tsconfig.tsbuildinfo +1 -0
- package/node_modules/@sema/gerador-typescript/package.json +14 -7
- package/node_modules/@sema/gerador-typescript/src/index.ts +876 -0
- package/node_modules/@sema/gerador-typescript/tsconfig.json +13 -0
- package/node_modules/@sema/gerador-typescript/tsconfig.tsbuildinfo +1 -0
- package/node_modules/@sema/nucleo/package.json +10 -7
- package/node_modules/@sema/nucleo/src/ast/tipos.ts +207 -0
- package/node_modules/@sema/nucleo/src/diagnosticos/index.ts +43 -0
- package/node_modules/@sema/nucleo/src/formatador/index.ts +530 -0
- package/node_modules/@sema/nucleo/src/index.ts +183 -0
- package/node_modules/@sema/nucleo/src/ir/conversor.ts +1037 -0
- package/node_modules/@sema/nucleo/src/ir/modelos.ts +403 -0
- package/node_modules/@sema/nucleo/src/lexer/lexer.ts +166 -0
- package/node_modules/@sema/nucleo/src/lexer/tokens.ts +79 -0
- package/node_modules/@sema/nucleo/src/parser/gramatica.ebnf +41 -0
- package/node_modules/@sema/nucleo/src/parser/parser.ts +936 -0
- package/node_modules/@sema/nucleo/src/persistencia/contratos.ts +379 -0
- package/node_modules/@sema/nucleo/src/semantico/analisador.ts +3126 -0
- package/node_modules/@sema/nucleo/src/semantico/estruturas.ts +665 -0
- package/node_modules/@sema/nucleo/src/semantico/seguranca.ts +362 -0
- package/node_modules/@sema/nucleo/src/util/arquivos.ts +28 -0
- package/node_modules/@sema/nucleo/tsconfig.json +9 -0
- package/node_modules/@sema/nucleo/tsconfig.tsbuildinfo +1 -0
- package/node_modules/@sema/padroes/package.json +10 -7
- package/node_modules/@sema/padroes/src/index.ts +382 -0
- package/node_modules/@sema/padroes/tsconfig.json +9 -0
- package/node_modules/@sema/padroes/tsconfig.tsbuildinfo +1 -0
- package/package.json +74 -75
- package/AGENTS.md +0 -294
- package/AGENT_CONTEXT_PACK.json +0 -164
- package/LICENSE +0 -22
- package/SEMA_BRIEF.curto.txt +0 -11
- package/SEMA_BRIEF.md +0 -511
- package/SEMA_BRIEF.micro.txt +0 -9
- package/SEMA_INDEX.json +0 -7588
- package/docs/AGENT_STARTER.md +0 -109
- package/docs/api.md +0 -82
- package/docs/cli.md +0 -175
- package/docs/como-ensinar-a-sema-para-ia.md +0 -155
- package/docs/deploy.md +0 -93
- package/docs/documentacao.md +0 -88
- package/docs/env.md +0 -105
- package/docs/extensao-vscode.md +0 -53
- package/docs/fluxo-pratico-ia-sema.md +0 -187
- package/docs/instalacao-e-primeiro-uso.md +0 -134
- package/docs/integracao-com-ia.md +0 -110
- package/docs/mcp.md +0 -292
- 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/repositories.md +0 -54
- package/docs/rollback.md +0 -49
- package/docs/seguranca.md +0 -126
- package/docs/sintaxe.md +0 -218
- package/llms-full.txt +0 -35
- package/llms.txt +0 -18
package/docs/AGENT_STARTER.md
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
# AGENT_STARTER
|
|
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
|
-
Use este texto como starter curto para qualquer IA antes de editar `.sema`.
|
|
10
|
-
|
|
11
|
-
Ordem canonica de entrada no repo:
|
|
12
|
-
|
|
13
|
-
1. `llms.txt`
|
|
14
|
-
2. `SEMA_BRIEF.md`
|
|
15
|
-
3. `SEMA_INDEX.json`
|
|
16
|
-
4. `AGENTS.md`
|
|
17
|
-
5. `README.md`
|
|
18
|
-
|
|
19
|
-
Roteamento por capacidade:
|
|
20
|
-
|
|
21
|
-
- IA pequena ou gratuita: `llms.txt` -> `SEMA_BRIEF.micro.txt` -> `SEMA_INDEX.json`
|
|
22
|
-
- IA média: `llms.txt` -> `SEMA_BRIEF.curto.txt` -> `SEMA_INDEX.json` -> `README.md`
|
|
23
|
-
- IA grande ou com tool use: `llms-full.txt` -> `SEMA_BRIEF.md` -> `SEMA_INDEX.json` -> `AGENTS.md` -> `README.md`
|
|
24
|
-
|
|
25
|
-
Tres modos de uso da Sema:
|
|
26
|
-
|
|
27
|
-
- projeto novo: modele, valide, compile e verifique antes de subir código derivado
|
|
28
|
-
- projeto já semantizado: inspecione, leia resumo, rode drift e gere contexto antes de editar
|
|
29
|
-
- legado sem Sema: importe, revise o rascunho, formate, valide e use drift como arbitro da adoção incremental
|
|
30
|
-
|
|
31
|
-
Para manter os artefatos gerados da raiz sincronizados:
|
|
32
|
-
|
|
33
|
-
- `sema sync-ai-entrypoints --json`
|
|
34
|
-
|
|
35
|
-
```text
|
|
36
|
-
Voce esta trabalhando com Sema, um contrato semantico IA-first para agentes operarem software vivo em backend e front consumer.
|
|
37
|
-
|
|
38
|
-
Importante:
|
|
39
|
-
- a Sema e protocolo de governanca semantica desenhado para IA, nao para ergonomia humana
|
|
40
|
-
- humanos sao autores/aprovadores; agentes sao os consumidores primarios do contrato
|
|
41
|
-
- a Sema funciona como camada de navegacao operacional para agente, nao como runtime magico
|
|
42
|
-
- leitura humana e bonus toleravel, nao centro do produto
|
|
43
|
-
- a Sema modela contratos, estados, fluxos, erros, efeitos, garantias, vinculos e execucao
|
|
44
|
-
- a Sema gera codigo e scaffolding real para TypeScript, Python e Dart
|
|
45
|
-
- a Sema usa `importar` para bootstrap revisavel, nao para contrato final automatico
|
|
46
|
-
- a Sema usa `drift` para medir diferenca entre contrato e codigo vivo
|
|
47
|
-
- a Sema usa `impl` para ligar task a simbolo real do runtime
|
|
48
|
-
- a Sema usa `resumo` e `prompt-curto` para IA pequena ou gratuita
|
|
49
|
-
- a Sema pode servir de base para interfaces graficas elegantes e coerentes
|
|
50
|
-
- a primeira onda consumer oficial agora cobre `Next.js consumer`, `React/Vite consumer`, `Angular consumer` e `flutter-consumer`
|
|
51
|
-
- esses slices oficiais cobrem `consumer bridge + superficies rastreaveis`, nao geracao completa de UI
|
|
52
|
-
- a proxima camada semantica de front (`screen`, `action`, `query`, `form`, `navigation`) esta documentada como roadmap, nao como sintaxe oficial ja suportada
|
|
53
|
-
- trate a Sema como cerebro semantico da aplicacao, nao como gerador magico de front-end pronto
|
|
54
|
-
- nao cobre da Sema persistencia real, runtime ou smoke test automatico; isso continua sendo engenharia viva
|
|
55
|
-
- se a tarefa envolver UI, priorize `appRoutes`, `consumerSurfaces` e `consumerBridges` antes de abrir arquivo aleatorio
|
|
56
|
-
- evite pedir HTML unico solto quando a intencao for testar a Sema de verdade
|
|
57
|
-
|
|
58
|
-
Regras:
|
|
59
|
-
- nao invente sintaxe fora da gramatica e dos exemplos oficiais
|
|
60
|
-
- se a IA for pequena, comece em `sema resumo` e `briefing.min.json`
|
|
61
|
-
- trate `ir --json` como fonte de verdade semantica
|
|
62
|
-
- trate `diagnosticos --json` como fonte de correcao
|
|
63
|
-
- use `sema formatar` como fonte unica de estilo
|
|
64
|
-
- preserve a intencao do contrato
|
|
65
|
-
- nao cobre da Sema adivinhacao de negocio que nao esta no contrato nem no codigo
|
|
66
|
-
|
|
67
|
-
Comandos essenciais:
|
|
68
|
-
- resumo por capacidade: `sema resumo <arquivo-ou-pasta> [--micro|--curto|--medio] [--para <resumo|onboarding|review|mudanca|bug|arquitetura>]`
|
|
69
|
-
- prompt curto: `sema prompt-curto <arquivo-ou-pasta> [--micro|--curto|--medio] [--para <resumo|onboarding|review|mudanca|bug|arquitetura>]`
|
|
70
|
-
- contexto completo do modulo: `sema contexto-ia <arquivo.sema>`
|
|
71
|
-
- estrutura sintatica: `sema ast <arquivo.sema> --json`
|
|
72
|
-
- estrutura semantica: `sema ir <arquivo.sema> --json`
|
|
73
|
-
- validacao: `sema validar <arquivo.sema> --json`
|
|
74
|
-
- diagnosticos: `sema diagnosticos <arquivo.sema> --json`
|
|
75
|
-
- formatacao: `sema formatar <arquivo.sema>`
|
|
76
|
-
- importacao assistida de legado: `sema importar <nestjs|fastapi|flask|nextjs|nextjs-consumer|react-vite-consumer|angular-consumer|flutter-consumer|firebase|typescript|python|dart|dotnet|java|go|rust|cpp> <diretorio> --saida <diretorio>`
|
|
77
|
-
- geracao de codigo: `sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart> --saida <diretorio>`
|
|
78
|
-
- verificacao final: `sema verificar <arquivo-ou-pasta> [--json]`
|
|
79
|
-
|
|
80
|
-
Regra pratica de ouro:
|
|
81
|
-
- se a tarefa pedir codigo derivado, `sema compilar` e obrigatorio
|
|
82
|
-
- se a tarefa partir de projeto que nao nasceu com Sema, `sema importar` deve entrar antes da lapidacao semantica
|
|
83
|
-
- se a tarefa pedir apenas leitura ou correcao sem gerar codigo, `sema compilar` pode ficar fora
|
|
84
|
-
|
|
85
|
-
Antes de editar:
|
|
86
|
-
1. leia README, docs de IA e um exemplo oficial parecido
|
|
87
|
-
2. se a IA for pequena, rode `sema resumo <arquivo> --micro`
|
|
88
|
-
3. se a tarefa pedir contexto mais rico, consulte `drift`, `briefing.min.json` e depois AST/IR
|
|
89
|
-
|
|
90
|
-
Depois de editar:
|
|
91
|
-
1. rode `sema formatar`
|
|
92
|
-
2. rode `sema validar --json`
|
|
93
|
-
3. se houver falha, use `diagnosticos --json`
|
|
94
|
-
4. se a tarefa pedir codigo derivado, rode `sema compilar`
|
|
95
|
-
5. feche com `sema verificar <arquivo-ou-pasta> --json`
|
|
96
|
-
|
|
97
|
-
Priorize sempre:
|
|
98
|
-
- exemplos oficiais
|
|
99
|
-
- JSON da CLI
|
|
100
|
-
- consistencia semantica
|
|
101
|
-
|
|
102
|
-
Nao improvise quando faltar contexto.
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
Documentos de apoio:
|
|
106
|
-
|
|
107
|
-
- [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
|
|
108
|
-
- [prompt-base-ia-sema.md](./prompt-base-ia-sema.md)
|
|
109
|
-
- [fluxo-pratico-ia-sema.md](./fluxo-pratico-ia-sema.md)
|
package/docs/api.md
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# API and Operational Surfaces
|
|
2
|
-
|
|
3
|
-
## English
|
|
4
|
-
|
|
5
|
-
Sema's public repository exposes the open language, CLI, contracts, examples, and editor support. It does not expose the private hosted MCP control plane, account APIs, OAuth internals, dashboards, audit storage, or commercial runtime governance APIs.
|
|
6
|
-
|
|
7
|
-
### Public Surfaces
|
|
8
|
-
|
|
9
|
-
- CLI commands documented in `README.md`, `docs/README.md`, and `docs/profiles.md`.
|
|
10
|
-
- `.sema` contracts under `contratos/` and public examples under `exemplos/`.
|
|
11
|
-
- Release artifacts generated by the public release scripts.
|
|
12
|
-
- Editor support and local validation flows.
|
|
13
|
-
|
|
14
|
-
### Private Or Commercial Surfaces
|
|
15
|
-
|
|
16
|
-
- Hosted MCP endpoint and OAuth authorization flows.
|
|
17
|
-
- Account, project, usage, billing, dashboard, and audit APIs.
|
|
18
|
-
- Runtime governance, approval gates, private rule packs, and advanced artifact validation.
|
|
19
|
-
- Deployment secrets, environment files, local runbooks, and infrastructure-specific scripts.
|
|
20
|
-
|
|
21
|
-
### API Rule For Agents
|
|
22
|
-
|
|
23
|
-
When a change touches an endpoint, webhook, CLI command, or MCP tool, the agent must:
|
|
24
|
-
|
|
25
|
-
- declare or update the applicable `.sema` contract before code;
|
|
26
|
-
- validate authentication, authorization, tenant/workspace boundaries, idempotency, auditability, and rollback expectations;
|
|
27
|
-
- keep private endpoints and commercial control-plane details out of the public repository;
|
|
28
|
-
- run Sema validation and public repository boundary checks before release.
|
|
29
|
-
|
|
30
|
-
## Português
|
|
31
|
-
|
|
32
|
-
O repositório público do Sema expõe a linguagem aberta, CLI, contratos, exemplos e suporte de editor. Ele não expõe o control plane MCP hospedado, APIs de conta, detalhes internos de OAuth, dashboards, armazenamento de auditoria ou APIs comerciais de runtime governance.
|
|
33
|
-
|
|
34
|
-
### Superfícies Públicas
|
|
35
|
-
|
|
36
|
-
- Comandos da CLI documentados em `README.md`, `docs/README.md` e `docs/profiles.md`.
|
|
37
|
-
- Contratos `.sema` em `contratos/` e exemplos públicos em `exemplos/`.
|
|
38
|
-
- Artefatos de release gerados pelos scripts públicos de release.
|
|
39
|
-
- Suporte de editor e fluxos locais de validação.
|
|
40
|
-
|
|
41
|
-
### Superfícies Privadas Ou Comerciais
|
|
42
|
-
|
|
43
|
-
- Endpoint MCP hospedado e fluxos de autorização OAuth.
|
|
44
|
-
- APIs de conta, projeto, uso, cobrança, dashboard e auditoria.
|
|
45
|
-
- Runtime governance, approval gates, rule packs privados e validação avançada de artefatos.
|
|
46
|
-
- Segredos de deploy, arquivos de ambiente, runbooks locais e scripts específicos de infraestrutura.
|
|
47
|
-
|
|
48
|
-
### Regra De API Para Agentes
|
|
49
|
-
|
|
50
|
-
Quando uma mudança toca endpoint, webhook, comando de CLI ou ferramenta MCP, a IA deve:
|
|
51
|
-
|
|
52
|
-
- declarar ou atualizar o contrato `.sema` aplicável antes do código;
|
|
53
|
-
- validar autenticação, autorização, fronteira de tenant/workspace, idempotência, auditoria e expectativa de rollback;
|
|
54
|
-
- manter endpoints privados e detalhes comerciais do control plane fora do repositório público;
|
|
55
|
-
- rodar validação Sema e checagem de fronteira pública antes do release.
|
|
56
|
-
|
|
57
|
-
## Español
|
|
58
|
-
|
|
59
|
-
El repositorio público de Sema expone el lenguaje abierto, CLI, contratos, ejemplos y soporte de editor. No expone el control plane MCP hospedado, APIs de cuenta, detalles internos de OAuth, dashboards, almacenamiento de auditoría ni APIs comerciales de runtime governance.
|
|
60
|
-
|
|
61
|
-
### Superficies Públicas
|
|
62
|
-
|
|
63
|
-
- Comandos de la CLI documentados en `README.md`, `docs/README.md` y `docs/profiles.md`.
|
|
64
|
-
- Contratos `.sema` en `contratos/` y ejemplos públicos en `exemplos/`.
|
|
65
|
-
- Artefactos de release generados por los scripts públicos de release.
|
|
66
|
-
- Soporte de editor y flujos locales de validación.
|
|
67
|
-
|
|
68
|
-
### Superficies Privadas O Comerciales
|
|
69
|
-
|
|
70
|
-
- Endpoint MCP hospedado y flujos de autorización OAuth.
|
|
71
|
-
- APIs de cuenta, proyecto, uso, facturación, dashboard y auditoría.
|
|
72
|
-
- Runtime governance, approval gates, rule packs privados y validación avanzada de artefactos.
|
|
73
|
-
- Secretos de deploy, archivos de entorno, runbooks locales y scripts específicos de infraestructura.
|
|
74
|
-
|
|
75
|
-
### Regla De API Para Agentes
|
|
76
|
-
|
|
77
|
-
Cuando un cambio toca un endpoint, webhook, comando de CLI o herramienta MCP, la IA debe:
|
|
78
|
-
|
|
79
|
-
- declarar o actualizar el contrato `.sema` aplicable antes del código;
|
|
80
|
-
- validar autenticación, autorización, frontera de tenant/workspace, idempotencia, auditoría y expectativa de rollback;
|
|
81
|
-
- mantener endpoints privados y detalles comerciales del control plane fuera del repositorio público;
|
|
82
|
-
- ejecutar validación Sema y chequeo de frontera pública antes del release.
|
package/docs/cli.md
DELETED
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
# Sema CLI
|
|
2
|
-
|
|
3
|
-
## English
|
|
4
|
-
|
|
5
|
-
The Sema CLI is the public npm package for local semantic governance. It validates `.sema` contracts, checks drift, maps impact, prepares AI-first context, resolves documentation gates, and runs profile validators before an agent continues.
|
|
6
|
-
|
|
7
|
-
Current public version: `1.5.29`.
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
npm install -g @semacode/cli
|
|
11
|
-
sema --version
|
|
12
|
-
sema validar contratos/pedidos.sema --json
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Português
|
|
16
|
-
|
|
17
|
-
A CLI da Sema é o pacote público no npm para governança semântica local. Ela valida contratos `.sema`, verifica drift, mapeia impacto, prepara contexto IA-first, resolve gates de documentação e roda validadores de profiles antes de um agente continuar.
|
|
18
|
-
|
|
19
|
-
Versão pública atual: `1.5.29`.
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
npm install -g @semacode/cli
|
|
23
|
-
sema --version
|
|
24
|
-
sema validar contratos/pedidos.sema --json
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Español
|
|
28
|
-
|
|
29
|
-
La CLI de Sema es el paquete público en npm para gobernanza semántica local. Valida contratos `.sema`, verifica drift, mapea impacto, prepara contexto IA-first, resuelve gates de documentación y ejecuta validadores de profiles antes de que un agente continúe.
|
|
30
|
-
|
|
31
|
-
Versión pública actual: `1.5.29`.
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
npm install -g @semacode/cli
|
|
35
|
-
sema --version
|
|
36
|
-
sema validar contratos/pedidos.sema --json
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Referência Operacional
|
|
40
|
-
|
|
41
|
-
### Papel da CLI
|
|
42
|
-
|
|
43
|
-
A CLI é a interface oficial da Sema para:
|
|
44
|
-
|
|
45
|
-
- validar contratos `.sema`
|
|
46
|
-
- exportar AST e IR
|
|
47
|
-
- medir `drift` entre contrato e código vivo
|
|
48
|
-
- importar legado para rascunho revisável
|
|
49
|
-
- gerar código derivado
|
|
50
|
-
- preparar contexto IA-first
|
|
51
|
-
- resolver docs obrigatórias por intenção antes de editar ou operar
|
|
52
|
-
- verificar múltiplos alvos de geração
|
|
53
|
-
|
|
54
|
-
### Três Modos De Operação
|
|
55
|
-
|
|
56
|
-
Projeto novo:
|
|
57
|
-
|
|
58
|
-
- `sema iniciar`
|
|
59
|
-
- `sema validar`
|
|
60
|
-
- `sema compilar`
|
|
61
|
-
- `sema verificar`
|
|
62
|
-
|
|
63
|
-
Projeto já semantizado:
|
|
64
|
-
|
|
65
|
-
- `sema inspecionar`
|
|
66
|
-
- `sema resumo`
|
|
67
|
-
- `sema drift`
|
|
68
|
-
- `sema contexto-ia`
|
|
69
|
-
|
|
70
|
-
Adoção incremental:
|
|
71
|
-
|
|
72
|
-
- `sema importar`
|
|
73
|
-
- `sema formatar`
|
|
74
|
-
- `sema validar`
|
|
75
|
-
- `sema drift`
|
|
76
|
-
|
|
77
|
-
## Persistência vendor-first
|
|
78
|
-
|
|
79
|
-
A linha 1.5.29 mantém persistência vendor-first como seção canônica no contrato, no semântico, na IR e no formatador, além de `drift` com escopo real, `impacto`, renomeação semântica assistida, `verificar` mais coerente nos alvos gerados, match de métodos JS/TS definidos via `Object.assign(...prototype...)`, leitura de `Preferences`/`localStorage`/`sessionStorage`, fallback para `angular-consumer` standalone sem `.routes`, limpeza de runtime da CLI pública no Windows, Sema Author oficial e MCP remoto desmembrado da distribuição pública.
|
|
80
|
-
|
|
81
|
-
Cobertura pública:
|
|
82
|
-
|
|
83
|
-
- `postgres`: `table`, `relationship`, `query`, `schema`, capacidades relacionais
|
|
84
|
-
- `mysql`: `table`, `index`, consultas SQL e diferenças operacionais do engine
|
|
85
|
-
- `sqlite`: `table`, `retention`, uso local e edge
|
|
86
|
-
- `mongodb`: `collection`, `document`, `query` em `pipeline`
|
|
87
|
-
- `redis`: `keyspace`, `stream`, `retention`, TTL e superfícies de estado
|
|
88
|
-
|
|
89
|
-
## Drift e código vivo
|
|
90
|
-
|
|
91
|
-
`sema drift` agora cruza contrato com recursos reais encontrados em:
|
|
92
|
-
|
|
93
|
-
- código de backend
|
|
94
|
-
- DDL `.sql`
|
|
95
|
-
- schema `.prisma`
|
|
96
|
-
- uso de MongoDB
|
|
97
|
-
- uso de Redis, incluindo keyspaces e streams
|
|
98
|
-
|
|
99
|
-
O objetivo não é adivinhar tudo; é produzir um score explicável com lacunas claras.
|
|
100
|
-
|
|
101
|
-
## Ajuda IA-first
|
|
102
|
-
|
|
103
|
-
- `sema ajuda-ia`
|
|
104
|
-
- `sema starter-ia`
|
|
105
|
-
- `sema resumo <arquivo-ou-pasta> --micro|--curto|--medio`
|
|
106
|
-
- `sema prompt-curto <arquivo-ou-pasta> --micro|--curto|--medio`
|
|
107
|
-
- `sema contexto-ia <arquivo.sema> --saida <diretorio>`
|
|
108
|
-
- `sema sync-ai-entrypoints --json`
|
|
109
|
-
- `sema docs-impacto --intencao <acao> --criar-ausentes --json`
|
|
110
|
-
- `sema finalizar-mudanca --intencao <acao> --doc-lida <caminho> --json`
|
|
111
|
-
|
|
112
|
-
## Profiles Semânticos
|
|
113
|
-
|
|
114
|
-
Profiles oficiais usam contrato Sema normal e um gate de requisitos obrigatórios. O requisito comum é contrato primeiro: criar, editar ou remover contrato antes de qualquer ação. Se o contrato não declara o mínimo do domínio, o comando falha.
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
sema profile validar software contratos/sema/software.sema --json
|
|
118
|
-
sema profile validar workflow contratos/sema/workflow_ops.sema --json
|
|
119
|
-
sema profile validar ops contratos/sema/workflow_ops.sema --json
|
|
120
|
-
sema profile validar game contratos/sema/game.sema --json
|
|
121
|
-
sema profile validar legal contratos/sema/legal.sema --json
|
|
122
|
-
sema profile validar research contratos/sema/research.sema --json
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## Sema Author
|
|
126
|
-
|
|
127
|
-
Author é um profile oficial para governança autoral IA-first. Ele usa a mesma DSL, sem palavra-chave nova, e organiza contratos em core, agents e flow. Se obra, tom, limite, público ou política muda, edite o contrato antes de gerar ou revisar texto.
|
|
128
|
-
|
|
129
|
-
```bash
|
|
130
|
-
sema author iniciar --saida contratos/author.sema
|
|
131
|
-
sema author iniciar --tema-sensivel --saida contratos/author.sema
|
|
132
|
-
sema author validar contratos/author.sema --json
|
|
133
|
-
sema author briefing contratos/author.sema --json
|
|
134
|
-
sema author revisar-cliches contratos/author.sema --texto "O escolhido predestinado aceitou a missão." --json
|
|
135
|
-
sema author validar-narrativa contratos/author.sema --texto "Mara perdeu a chave para salvar Raul. Por isso, o capitulo seguinte muda a promessa dela." --texto-anterior "Mara prometeu proteger a chave." --json
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
O comando `author iniciar` usa os exemplos oficiais `author_obra_comum.sema` ou `author_tema_sensivel.sema` como starter. Ele não sobrescreve contrato existente.
|
|
139
|
-
|
|
140
|
-
## Importadores Públicos
|
|
141
|
-
|
|
142
|
-
- `nestjs`
|
|
143
|
-
- `fastapi`
|
|
144
|
-
- `flask`
|
|
145
|
-
- `nextjs`
|
|
146
|
-
- `nextjs-consumer`
|
|
147
|
-
- `react-vite-consumer`
|
|
148
|
-
- `angular-consumer`
|
|
149
|
-
- `flutter-consumer`
|
|
150
|
-
- `firebase`
|
|
151
|
-
- `dotnet`
|
|
152
|
-
- `java`
|
|
153
|
-
- `go`
|
|
154
|
-
- `rust`
|
|
155
|
-
- `cpp`
|
|
156
|
-
- `typescript`
|
|
157
|
-
- `python`
|
|
158
|
-
- `dart`
|
|
159
|
-
|
|
160
|
-
## Comandos mais usados
|
|
161
|
-
|
|
162
|
-
```bash
|
|
163
|
-
sema validar <arquivo-ou-pasta> --json
|
|
164
|
-
sema diagnosticos <arquivo.sema> --json
|
|
165
|
-
sema ir <arquivo.sema> --json
|
|
166
|
-
sema drift <arquivo-ou-pasta> --json
|
|
167
|
-
sema author briefing <arquivo.sema> --json
|
|
168
|
-
sema author revisar-cliches <arquivo.sema> --texto <texto> --json
|
|
169
|
-
sema author validar-narrativa <arquivo.sema> --texto <texto> [--texto-anterior <texto>] --json
|
|
170
|
-
sema importar <fonte> <diretorio> --saida <diretorio> --json
|
|
171
|
-
sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
|
|
172
|
-
sema finalizar-mudanca --intencao "fazer deploy" --doc-lida docs/deploy.md --json
|
|
173
|
-
sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua> --saida <diretorio>
|
|
174
|
-
sema verificar <arquivo-ou-pasta> --saida <diretorio>
|
|
175
|
-
```
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
# Como Ensinar a Sema para IA
|
|
2
|
-
|
|
3
|
-
<!-- sema:i18n -->
|
|
4
|
-
> EN: English first. The canonical operational body below may still be in Portuguese until full translation lands.
|
|
5
|
-
> PT: Português depois, com acentos preservados.
|
|
6
|
-
> ES: Español al final; não traduza comandos, rotas nem sómbolos `.sema` sem contrato.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Este documento explica como fazer uma IA entender a Sema sem depender de memória prévia do modelo. A estratégia correta não é presumir que a IA "já conhece a linguagem", e sim entregar contexto suficiente para ela operar com segurança.
|
|
10
|
-
|
|
11
|
-
Leia isso do ponto de vista da CLI pública. A IA não deve assumir que está dentro do monorepo da Sema, nem que precisa chamar `node pacotes/cli/dist/index.js`.
|
|
12
|
-
|
|
13
|
-
## Principio central
|
|
14
|
-
|
|
15
|
-
Uma IA entende uma linguagem nova quando recebe quatro camadas de contexto:
|
|
16
|
-
|
|
17
|
-
1. sintaxe
|
|
18
|
-
2. semântica
|
|
19
|
-
3. estrutura intermediaria estavel
|
|
20
|
-
4. exemplos reais
|
|
21
|
-
|
|
22
|
-
Sem essas quatro camadas, o modelo comeca a adivinhar. É adivinhação em linguagem de contrato e pedir para nascer bug feio.
|
|
23
|
-
|
|
24
|
-
Antes de qualquer outra coisa, a IA também precisa receber a **moldura correta**:
|
|
25
|
-
|
|
26
|
-
- a Sema é um contrato semântico IA-first para agentes operarem software vivo
|
|
27
|
-
- a Sema foi feita para IA, não para ergonomia humana
|
|
28
|
-
- a Sema não foi feita para "automatizar tudo"
|
|
29
|
-
- a Sema existe para explicitar, alinhar e verificar contrato contra sistema vivo
|
|
30
|
-
- humanos sao autores, revisores e aprovadores; agentes sao consumidores primarios
|
|
31
|
-
|
|
32
|
-
Se a IA errar essa moldura, ela vai cobrar da ferramenta a coisa errada e operar por adivinhação.
|
|
33
|
-
|
|
34
|
-
## Camada 1. Sintaxe
|
|
35
|
-
|
|
36
|
-
A IA precisa saber como a linguagem e escrita.
|
|
37
|
-
|
|
38
|
-
Fontes principais:
|
|
39
|
-
|
|
40
|
-
- [README.md](../README.md)
|
|
41
|
-
- [sintaxe.md](./sintaxe.md)
|
|
42
|
-
- [integração-com-ia.md](./integracao-com-ia.md)
|
|
43
|
-
|
|
44
|
-
Objetivo dessa camada:
|
|
45
|
-
|
|
46
|
-
- reconhecer blocos validos
|
|
47
|
-
- entender delimitadores
|
|
48
|
-
- não inventar palavras-chave
|
|
49
|
-
- respeitar a organizacao canonicamente formatada
|
|
50
|
-
|
|
51
|
-
## Camada 2. Semântica
|
|
52
|
-
|
|
53
|
-
Depois de saber ler, a IA precisa saber o que cada bloco significa.
|
|
54
|
-
|
|
55
|
-
Fontes principais:
|
|
56
|
-
|
|
57
|
-
- [README.md](../README.md)
|
|
58
|
-
- [integração-com-ia.md](./integracao-com-ia.md)
|
|
59
|
-
- [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
|
|
60
|
-
|
|
61
|
-
Objetivo dessa camada:
|
|
62
|
-
|
|
63
|
-
- distinguir contrato interno de `task`
|
|
64
|
-
- distinguir contrato público de `route`
|
|
65
|
-
- entender `effects`, `guarantees`, `error`, `state` e `flow`
|
|
66
|
-
- operar na linguagem como especificacao executavel, não como texto decorativo
|
|
67
|
-
- entender que `importar` e bootstrap
|
|
68
|
-
- entender que `drift` e regua de coerência contra o runtime
|
|
69
|
-
- entender que `impl` e ponte rastreavel para simbolo vivo
|
|
70
|
-
|
|
71
|
-
## Camada 3. Estrutura intermediaria estavel
|
|
72
|
-
|
|
73
|
-
Essa e a camada que faz a parada parar de ser um cassino.
|
|
74
|
-
|
|
75
|
-
Em vez de confiar que a IA vai interpretar `.sema` cru de primeira, use a CLI como tradutora oficial da linguagem.
|
|
76
|
-
|
|
77
|
-
Comandos principais:
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
sema resumo arquivo.sema --micro --para onboarding
|
|
81
|
-
sema validar arquivo.sema --json
|
|
82
|
-
sema diagnosticos arquivo.sema --json
|
|
83
|
-
sema ast arquivo.sema --json
|
|
84
|
-
sema ir arquivo.sema --json
|
|
85
|
-
sema verificar arquivo-ou-pasta --json --saida ./.tmp/verificacao-ia
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
Como cada comando ajuda:
|
|
89
|
-
|
|
90
|
-
- `resumo`: entrega cartao semântico pequeno para IA com janela curta
|
|
91
|
-
- `validar --json`: diz se a base está semanticamente valida
|
|
92
|
-
- `diagnosticos --json`: devolve erros e avisos como contrato estruturado
|
|
93
|
-
- `ast --json`: mostra a forma sintatica escrita
|
|
94
|
-
- `ir --json`: mostra a forma semântica resolvida
|
|
95
|
-
- `verificar --json`: mostra o estado operacional do projeto
|
|
96
|
-
|
|
97
|
-
Se a IA puder consumir `ir --json`, melhor ainda. É ali que a linguagem fica menos ambigua e mais utilizavel para automacao. Para modelo pequeno, comece em `resumo` e `briefing.min.json`.
|
|
98
|
-
|
|
99
|
-
## Camada 4. Exemplos reais
|
|
100
|
-
|
|
101
|
-
Modelo aprende muito por padrão. Por isso, bons exemplos valem quase tanto quanto especificacao.
|
|
102
|
-
|
|
103
|
-
Arquivos recomendados:
|
|
104
|
-
|
|
105
|
-
- [pagamento.sema](../exemplos/pagamento.sema)
|
|
106
|
-
- [pagamento_dominio.sema](../exemplos/pagamento_dominio.sema)
|
|
107
|
-
- [automacao.sema](../exemplos/automacao.sema)
|
|
108
|
-
- [tratamento_erro.sema](../exemplos/tratamento_erro.sema)
|
|
109
|
-
- [crud_simples.sema](../exemplos/crud_simples.sema)
|
|
110
|
-
|
|
111
|
-
O vertical oficial de pagamento deve ser tratado como a referência principal.
|
|
112
|
-
|
|
113
|
-
## O que a IA não deve fazer
|
|
114
|
-
|
|
115
|
-
- inventar palavras-chave fora da gramática
|
|
116
|
-
- introduzir blocos inexistentes
|
|
117
|
-
- assumir semântica que não aparece na especificacao
|
|
118
|
-
- tratar draft importado como contrato final só porque veio da CLI
|
|
119
|
-
- tratar a Sema como gerador mágico de sistema completo
|
|
120
|
-
- editar `.sema` sem rodar `sema formatar`
|
|
121
|
-
- encerrar alteracao sem consultar `diagnosticos` quando houver falha
|
|
122
|
-
|
|
123
|
-
## O que a IA deve fazer
|
|
124
|
-
|
|
125
|
-
- usar a gramática e os exemplos como fonte de estilo
|
|
126
|
-
- usar a IR como fonte de verdade semântica sempre que possóvel
|
|
127
|
-
- usar diagnósticos estruturados como guia de correcao
|
|
128
|
-
- rodar o formatador antes de considerar o trabalho pronto
|
|
129
|
-
- validar e verificar a mudanca no mesmo fluxo
|
|
130
|
-
|
|
131
|
-
## Estratégia recomendada
|
|
132
|
-
|
|
133
|
-
Se voce for instruir uma IA para trabalhar com Sema, entregue o contexto nesta ordem:
|
|
134
|
-
|
|
135
|
-
1. [README.md](../README.md)
|
|
136
|
-
2. [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
|
|
137
|
-
3. [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
|
|
138
|
-
4. [prompt-base-ia-sema.md](./prompt-base-ia-sema.md)
|
|
139
|
-
5. `sema resumo --micro` ou `sema resumo --curto`, conforme a capacidade da IA
|
|
140
|
-
6. `ast --json`, `ir --json` e `diagnosticos --json` do módulo alvo, se a capacidade aguentar
|
|
141
|
-
|
|
142
|
-
Essa ordem faz a IA ir de contexto geral para contexto operacional, em vez de cair direto num arquivo cru e sair chutando.
|
|
143
|
-
|
|
144
|
-
## Regra de ouro
|
|
145
|
-
|
|
146
|
-
A Sema foi desenhada para ser entendida por IA, mas isso não significa que a IA vai adivinhar sozinha.
|
|
147
|
-
|
|
148
|
-
Ela entende bem quando recebe:
|
|
149
|
-
|
|
150
|
-
- especificacao
|
|
151
|
-
- exemplos
|
|
152
|
-
- JSON estrutural
|
|
153
|
-
- feedback automático
|
|
154
|
-
|
|
155
|
-
Sem isso, até o modelo mais caro vira estagiário emocionado.
|
package/docs/deploy.md
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
# Public Release Runbook
|
|
2
|
-
|
|
3
|
-
<!-- sema:i18n -->
|
|
4
|
-
> EN: English first.
|
|
5
|
-
> PT: Português depois.
|
|
6
|
-
> ES: Español al final.
|
|
7
|
-
|
|
8
|
-
## English
|
|
9
|
-
|
|
10
|
-
This public runbook covers only the open Sema distribution: source repository, npm CLI package, VS Code extension artifact, release notes, checksums, and public install scripts.
|
|
11
|
-
|
|
12
|
-
Private hosting, account panels, OAuth endpoints, Supabase projects, billing flows, service accounts, customer data, server paths, and commercial deployment scripts belong in the private repository.
|
|
13
|
-
|
|
14
|
-
### What Goes Public
|
|
15
|
-
|
|
16
|
-
- Versioned source for the open language, parser, CLI, base profiles, examples, public docs, and basic extension.
|
|
17
|
-
- Public release assets generated under `.tmp/release-assets`.
|
|
18
|
-
- Generic install scripts that do not embed tokens, private URLs, customer identifiers, or server paths.
|
|
19
|
-
- Release notes in this order: English, Portuguese, Spanish.
|
|
20
|
-
|
|
21
|
-
### What Stays Private
|
|
22
|
-
|
|
23
|
-
- Hosted-site code, account panel code, billing, Supabase migrations, OAuth client secrets, MCP key issuing, production Caddy/Nginx files, and server-specific runbooks.
|
|
24
|
-
- Any token, service role, customer identifier, database URL, private endpoint, or local agent configuration.
|
|
25
|
-
- Commercial rule packs and internal dashboards until explicitly approved for public release.
|
|
26
|
-
|
|
27
|
-
### Public Release Checklist
|
|
28
|
-
|
|
29
|
-
1. Run `npm run repo:verificar-publico`.
|
|
30
|
-
2. Run `npm run project:check`.
|
|
31
|
-
3. Run `npm run release:preparar-publica`.
|
|
32
|
-
4. Publish the npm package only after `npm dist-tag ls @semacode/cli` can be checked.
|
|
33
|
-
5. Push `main` and the matching `v<version>` tag.
|
|
34
|
-
6. Create the GitHub Release from `.tmp/release-assets` and mark it as latest.
|
|
35
|
-
7. Confirm the GitHub About description is English and product-facing.
|
|
36
|
-
|
|
37
|
-
## Português
|
|
38
|
-
|
|
39
|
-
Este runbook público cobre apenas a distribuição aberta da Sema: repositório-fonte, pacote npm da CLI, artefato da extensão VS Code, notas de release, checksums e instaladores públicos.
|
|
40
|
-
|
|
41
|
-
Hospedagem privada, painéis de conta, endpoints OAuth, projetos Supabase, billing, service accounts, dados de clientes, caminhos de servidor e scripts comerciais de deploy ficam no repositório privado.
|
|
42
|
-
|
|
43
|
-
### O Que Vai Para o Público
|
|
44
|
-
|
|
45
|
-
- Código versionado da linguagem aberta, parser, CLI, profiles base, exemplos, docs públicas e extensão básica.
|
|
46
|
-
- Assets públicos de release gerados em `.tmp/release-assets`.
|
|
47
|
-
- Instaladores genéricos sem tokens, URLs privadas, identificadores de cliente ou caminhos de servidor.
|
|
48
|
-
- Notas de release nesta ordem: inglês, português, espanhol.
|
|
49
|
-
|
|
50
|
-
### O Que Fica Privado
|
|
51
|
-
|
|
52
|
-
- Código do site hospedado, painel de contas, billing, migrations Supabase, OAuth client secrets, emissão de chaves MCP, Caddy/Nginx de produção e runbooks específicos de servidor.
|
|
53
|
-
- Qualquer token, service role, identificador de cliente, URL de banco, endpoint privado ou configuração local de agentes.
|
|
54
|
-
- Rule packs comerciais e dashboards internos até aprovação explícita para release pública.
|
|
55
|
-
|
|
56
|
-
### Checklist De Release Pública
|
|
57
|
-
|
|
58
|
-
1. Rode `npm run repo:verificar-publico`.
|
|
59
|
-
2. Rode `npm run project:check`.
|
|
60
|
-
3. Rode `npm run release:preparar-publica`.
|
|
61
|
-
4. Publique o pacote npm somente depois de conseguir conferir `npm dist-tag ls @semacode/cli`.
|
|
62
|
-
5. Envie `main` e a tag `v<versão>` correspondente.
|
|
63
|
-
6. Crie o GitHub Release a partir de `.tmp/release-assets` e marque como latest.
|
|
64
|
-
7. Confirme que o About do GitHub está em inglês e com posicionamento de produto.
|
|
65
|
-
|
|
66
|
-
## Español
|
|
67
|
-
|
|
68
|
-
Este runbook público cubre solo la distribución abierta de Sema: repositorio fuente, paquete npm de la CLI, artefacto de la extensión VS Code, notas de release, checksums e instaladores públicos.
|
|
69
|
-
|
|
70
|
-
El hosting privado, los paneles de cuenta, endpoints OAuth, proyectos Supabase, billing, service accounts, datos de clientes, rutas de servidor y scripts comerciales de despliegue pertenecen al repositorio privado.
|
|
71
|
-
|
|
72
|
-
### Qué Va Al Público
|
|
73
|
-
|
|
74
|
-
- Código versionado del lenguaje abierto, parser, CLI, profiles base, ejemplos, docs públicas y extensión básica.
|
|
75
|
-
- Assets públicos de release generados en `.tmp/release-assets`.
|
|
76
|
-
- Instaladores genéricos sin tokens, URLs privadas, identificadores de cliente ni rutas de servidor.
|
|
77
|
-
- Notas de release en este orden: inglés, portugués, español.
|
|
78
|
-
|
|
79
|
-
### Qué Queda Privado
|
|
80
|
-
|
|
81
|
-
- Código del sitio hospedado, panel de cuentas, billing, migrations Supabase, OAuth client secrets, emisión de claves MCP, Caddy/Nginx de producción y runbooks específicos de servidor.
|
|
82
|
-
- Cualquier token, service role, identificador de cliente, URL de base de datos, endpoint privado o configuración local de agentes.
|
|
83
|
-
- Rule packs comerciales y dashboards internos hasta aprobación explícita para release pública.
|
|
84
|
-
|
|
85
|
-
### Checklist De Release Pública
|
|
86
|
-
|
|
87
|
-
1. Ejecuta `npm run repo:verificar-publico`.
|
|
88
|
-
2. Ejecuta `npm run project:check`.
|
|
89
|
-
3. Ejecuta `npm run release:preparar-publica`.
|
|
90
|
-
4. Publica el paquete npm solo después de poder verificar `npm dist-tag ls @semacode/cli`.
|
|
91
|
-
5. Envía `main` y la tag `v<versión>` correspondiente.
|
|
92
|
-
6. Crea el GitHub Release desde `.tmp/release-assets` y márcalo como latest.
|
|
93
|
-
7. Confirma que el About de GitHub está en inglés y con posicionamiento de producto.
|