@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/env.md
CHANGED
|
@@ -1,115 +1,14 @@
|
|
|
1
|
-
#
|
|
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
|
-
Ambiente necessário para publicar a Sema.
|
|
10
|
-
|
|
11
|
-
## Ferramentas
|
|
12
|
-
|
|
13
|
-
- Node.js LTS com `npm`.
|
|
14
|
-
- Git com acesso ao repositório privado.
|
|
15
|
-
- VS Code CLI (`code`) para instalar a VSIX localmente.
|
|
16
|
-
- PowerShell no Windows.
|
|
17
|
-
|
|
18
|
-
## Variaveis suportadas pelos instaladores
|
|
1
|
+
# Environment
|
|
19
2
|
|
|
20
|
-
|
|
21
|
-
- `SEMA_VERSION`: versão usada pelo `install-sema.sh`. Padrão: `latest`.
|
|
22
|
-
- `SEMA_VSIX_PATH`: caminho privado/local para a VSIX quando usar `--with-vscode`.
|
|
23
|
-
|
|
24
|
-
No PowerShell, o instalador recebe a versão por parametro:
|
|
25
|
-
|
|
26
|
-
```powershell
|
|
27
|
-
.\install-sema.ps1 -Version 1.5.48 -WithVSCode
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
No shell:
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
SEMA_VERSION=1.5.48 ./install-sema.sh --with-vscode
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Credenciais
|
|
37
|
-
|
|
38
|
-
- NPM deve estar logado antes de publicar: `npm whoami`.
|
|
39
|
-
- Nunca registre tokens em docs, logs ou release notes.
|
|
40
|
-
|
|
41
|
-
## Registro NPM
|
|
42
|
-
|
|
43
|
-
O pacote público é:
|
|
44
|
-
|
|
45
|
-
- `@semacode/cli`
|
|
46
|
-
|
|
47
|
-
Antes de publicar, confira:
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
npm view @semacode/cli version
|
|
51
|
-
npm run release:verificar-versao
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
## Cliente MCP remoto
|
|
55
|
-
|
|
56
|
-
Variaveis usadas por Codex, VS Code/forks e clientes que aceitam bearer:
|
|
57
|
-
|
|
58
|
-
- `SEMA_MCP_AUTH_TOKEN`: chave comercial `sema_mcp_*` gerada no painel. E do cliente, nao do servidor.
|
|
59
|
-
- `SEMA_MCP_ENDPOINT`: URL HTTPS `/mcp` usada por clientes que leem endpoint por variavel.
|
|
60
|
-
|
|
61
|
-
No Windows, instale sem expor a chave em argumento:
|
|
62
|
-
|
|
63
|
-
```powershell
|
|
64
|
-
Get-Clipboard | sema mcp-instalar-chave --stdin --json
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## Servidor MCP remoto privado
|
|
68
|
-
|
|
69
|
-
Variaveis usadas pelo servidor MCP privado quando roda em modo HTTP:
|
|
70
|
-
|
|
71
|
-
- `MCP_PORT`: porta HTTP. Quando ausente, o MCP roda em `stdio`.
|
|
72
|
-
- `MCP_HOST`: host de bind. Padrão: `0.0.0.0`.
|
|
73
|
-
- `SEMA_MCP_PUBLIC_BASE_URL`: URL pública HTTPS usada nos metadados OAuth do ChatGPT.
|
|
74
|
-
- `SEMA_MCP_OAUTH_SECRET`: segredo usado para assinar access/refresh tokens OAuth.
|
|
75
|
-
- `SEMA_MCP_OAUTH_PASSCODE`: fallback local/laboratorio; em MCP publico ou `production`, bloqueia o boot.
|
|
76
|
-
- `SEMA_MCP_PROJECT_ROOTS`: raizes permitidas para projetos, separadas por `;`.
|
|
77
|
-
- `SEMA_MCP_CORS_ORIGIN`: origem CORS permitida, lista separada por `;`. Nao use `*` em MCP publico ou `production`.
|
|
78
|
-
- `SEMA_SUPABASE_URL`: URL do control plane Supabase usado para OAuth e billing.
|
|
79
|
-
- `SEMA_SUPABASE_ANON_KEY` ou `SEMA_SUPABASE_PUBLISHABLE_KEY`: chave publica do Supabase para RPCs de OAuth/billing.
|
|
80
|
-
- `SEMA_MCP_BILLING_DISABLED`: somente laboratorio local; em MCP publico ou `production`, bloqueia o boot.
|
|
81
|
-
- `SEMA_MCP_MAX_CONTRACT_FILE_BYTES`: limite por contrato `.sema` enviado por snapshot ou conteudo inline. Padrao: `262144`.
|
|
82
|
-
- `SEMA_MCP_MAX_CODE_FILE_BYTES`: limite por arquivo de codigo selecionado enviado por snapshot. Padrao: `262144`.
|
|
83
|
-
- `SEMA_MCP_MAX_DOC_FILE_BYTES`: limite por arquivo de documentacao enviado por snapshot. Padrao: `262144`.
|
|
84
|
-
- `SEMA_MCP_MAX_CODE_FILES`: limite de arquivos de codigo selecionado por snapshot. Padrao: `80`.
|
|
85
|
-
- `SEMA_MCP_MAX_DOC_FILES`: limite de arquivos de documentacao por snapshot. Padrao: `80`.
|
|
86
|
-
|
|
87
|
-
Exemplo operacional privado:
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
MCP_PORT=3333 \
|
|
91
|
-
SEMA_MCP_PUBLIC_BASE_URL="https://sema.exemplo.com" \
|
|
92
|
-
SEMA_MCP_OAUTH_SECRET="segredo-longo-para-oauth" \
|
|
93
|
-
SEMA_SUPABASE_URL="https://projeto.supabase.co" \
|
|
94
|
-
SEMA_SUPABASE_PUBLISHABLE_KEY="sb_publishable_..." \
|
|
95
|
-
SEMA_MCP_PROJECT_ROOTS="/srv/sema/projetos" \
|
|
96
|
-
SEMA_MCP_MAX_CONTRACT_FILE_BYTES=262144 \
|
|
97
|
-
SEMA_MCP_MAX_CODE_FILE_BYTES=262144 \
|
|
98
|
-
SEMA_MCP_MAX_DOC_FILE_BYTES=262144
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
Nunca publique `/mcp` ou `/sse` na internet sem billing habilitado, Supabase de billing configurado, chave comercial bearer por request ou OAuth com conta Sema, raiz restrita e HTTPS no proxy. Nunca registre chaves `sema_mcp_*`, OAuth secret ou passcode em docs publicas, logs, release notes ou screenshots.
|
|
102
|
-
|
|
103
|
-
O limite de bytes e validado antes de gravar espelhos remotos ou executar contratos inline. Clientes MCP devem respeitar o limite anunciado no schema da ferramenta e dividir snapshots grandes em arquivos focados, sem enviar repositorio inteiro.
|
|
104
|
-
|
|
105
|
-
## Distribuição
|
|
3
|
+
The public Sema CLI should work without private service credentials.
|
|
106
4
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
Depois de empacotar ou publicar o instalador, rode:
|
|
5
|
+
Allowed public examples may use placeholders:
|
|
110
6
|
|
|
111
7
|
```bash
|
|
112
|
-
|
|
8
|
+
EXAMPLE_API_KEY=replace-me
|
|
113
9
|
```
|
|
114
10
|
|
|
115
|
-
|
|
11
|
+
Do not publish private or sensitive operational material in public Sema docs.
|
|
12
|
+
|
|
13
|
+
If an application governed by Sema needs environment variables, document them in
|
|
14
|
+
that application repository.
|
package/docs/frontend.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# User Experience Quality
|
|
2
|
+
|
|
3
|
+
When Sema governs a UI, dashboard, app, site, game, or terminal tool, the
|
|
4
|
+
experience must be modern, contextual, and verified. This is a quality gate, not
|
|
5
|
+
decoration.
|
|
6
|
+
|
|
7
|
+
## Before Building
|
|
8
|
+
|
|
9
|
+
Define:
|
|
10
|
+
|
|
11
|
+
- audience and domain
|
|
12
|
+
- primary workflow
|
|
13
|
+
- density and information hierarchy
|
|
14
|
+
- interaction states
|
|
15
|
+
- responsive behavior
|
|
16
|
+
- accessibility basics
|
|
17
|
+
- evidence needed before closing
|
|
18
|
+
|
|
19
|
+
## Browser Evidence
|
|
20
|
+
|
|
21
|
+
For web UI, check desktop and mobile. On a narrow viewport such as 390px, this
|
|
22
|
+
must be true:
|
|
23
|
+
|
|
24
|
+
```js
|
|
25
|
+
document.documentElement.scrollWidth <= document.documentElement.clientWidth
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Fix overlapping text, broken wrapping, hidden controls, and incoherent layout
|
|
29
|
+
before closing the change.
|
|
30
|
+
|
|
31
|
+
## Terminal Evidence
|
|
32
|
+
|
|
33
|
+
For CLI/TUI work, smoke-check:
|
|
34
|
+
|
|
35
|
+
- `--help`
|
|
36
|
+
- success output
|
|
37
|
+
- error output
|
|
38
|
+
- JSON output when supported
|
|
39
|
+
|
|
40
|
+
The public Sema CLI itself must stay local-only and must not depend on private
|
|
41
|
+
or sensitive operational material for these checks.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Installation And First Use
|
|
2
|
+
|
|
3
|
+
Sema is installed and used as a local CLI.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npm install -g @semacode/cli
|
|
7
|
+
sema --version
|
|
8
|
+
sema preflight resumo --json
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Proceed only when `preflight` returns `decisao: "use_cli_local"`.
|
|
12
|
+
|
|
13
|
+
## First Project
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
sema iniciar --template base
|
|
17
|
+
sema validar contratos/*.sema --json
|
|
18
|
+
sema resumo
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Existing Project
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
sema resumo
|
|
25
|
+
sema docs-impacto --intencao "describe the change" --json
|
|
26
|
+
sema inspecionar contratos/example.sema --json
|
|
27
|
+
sema drift contratos/example.sema --escopo modulo --json
|
|
28
|
+
sema impacto contratos/example.sema --alvo sema.example.target --mudanca "describe the change" --json
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The public CLI does not require private service credentials.
|
|
32
|
+
|
|
33
|
+
Support: suporte@otimitare.online
|
package/docs/i18n.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Language And Identifiers
|
|
2
|
+
|
|
3
|
+
Public Sema documentation is English.
|
|
4
|
+
|
|
5
|
+
Do not translate commands, file paths, package names, endpoint paths, environment
|
|
6
|
+
variable names, code symbols, DSL keywords, or brand names.
|
|
7
|
+
|
|
8
|
+
Examples:
|
|
9
|
+
|
|
10
|
+
- Keep `sema validar`, not an English paraphrase.
|
|
11
|
+
- Keep `.sema`, `task`, `input`, `output`, `rules`, `effects`, and `guarantees`.
|
|
12
|
+
- Keep package names such as `@semacode/cli`.
|
|
13
|
+
|
|
14
|
+
Human-facing prose should be clear English. Contract DSL can keep its own
|
|
15
|
+
keywords and domain identifiers.
|
package/docs/profiles.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Profiles
|
|
2
|
+
|
|
3
|
+
Profiles are local validation layers for domains where syntax alone is not
|
|
4
|
+
enough. They use the same `.sema` DSL and do not create a second language.
|
|
5
|
+
|
|
6
|
+
## Principle
|
|
7
|
+
|
|
8
|
+
A profile checks whether a contract is strong enough for a specific kind of
|
|
9
|
+
work. It can require:
|
|
10
|
+
|
|
11
|
+
- contract-first workflow;
|
|
12
|
+
- domain core fields;
|
|
13
|
+
- required rules, effects, guarantees, and tests;
|
|
14
|
+
- explicit forbidden behavior;
|
|
15
|
+
- evidence before closing the change.
|
|
16
|
+
|
|
17
|
+
When a profile returns `bloqueado: true`, the artifact is not approved.
|
|
18
|
+
|
|
19
|
+
## Commands
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
sema profile capabilities --json
|
|
23
|
+
sema profile validar software contratos/example.sema --maturidade production --preset default --json
|
|
24
|
+
sema rule-packs --profile software --json
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Built-In Profiles
|
|
28
|
+
|
|
29
|
+
- `software`: code, APIs, modules, refactors, persistence, and generated output.
|
|
30
|
+
- `workflow`: automations, queues, webhooks, scheduled jobs, and orchestration.
|
|
31
|
+
- `ops`: deploy plans, rollback, incidents, runbooks, and operational evidence.
|
|
32
|
+
- `legal`: terms, privacy, compliance, risk, and regulated language.
|
|
33
|
+
- `research`: comparisons, uncertainty, evidence, citations, and decisions.
|
|
34
|
+
- `game`: rules, loops, player states, scoring, and playability checks.
|
|
35
|
+
- `author`: creative writing, narrative continuity, cliche review, and style
|
|
36
|
+
guardrails.
|
|
37
|
+
- `proposal`: commercial proposals, scope clarity, deliverables, constraints,
|
|
38
|
+
and client-ready wording.
|
|
39
|
+
- `sales`: customer conversation guardrails, escalation, pricing promises, and
|
|
40
|
+
channel changes.
|
|
41
|
+
|
|
42
|
+
Profiles are local CLI checks. They do not create or require external service
|
|
43
|
+
accounts.
|
package/docs/repositories.md
CHANGED
|
@@ -1,69 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
# Repository Boundary
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
> PT: Português depois.
|
|
6
|
-
> ES: Español al final.
|
|
3
|
+
The public Sema repository should contain only the local CLI, runtime packages,
|
|
4
|
+
examples, tests that run locally, and English documentation.
|
|
7
5
|
|
|
8
|
-
##
|
|
6
|
+
## Public
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
- local CLI source
|
|
9
|
+
- contract parser and validators
|
|
10
|
+
- local drift and impact tooling
|
|
11
|
+
- local code generators
|
|
12
|
+
- examples
|
|
13
|
+
- English docs
|
|
14
|
+
- local package scripts
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
## Not Public
|
|
15
17
|
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
- Web chats remain supported because the private MCP keeps a CLI installed on the VPS and runs it against authorized mirrors under `/srv/sema/projetos/...`.
|
|
18
|
+
- private or sensitive operational material
|
|
19
|
+
- real credentials, environment files, or secret inventories
|
|
20
|
+
- private project data or generated private artifacts
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
## Commercial Use
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
The public Sema source may not be copied, rebranded, bundled, or replicated for
|
|
25
|
+
commercial resale without written permission from OtimiTare.
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
npm run repo:verificar-privado
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Português
|
|
30
|
-
|
|
31
|
-
O Sema é privado por padrao e privado de ponta a ponta, com um canal npm para o cliente governado: `@semacode/cli`. Não existe repositório público de produto, superfície MCP pública como pacote aberto, GitHub Release pública nem divisão ativa entre `public/` e `private/`.
|
|
32
|
-
|
|
33
|
-
A árvore ativa vive na raiz do repositório: `contratos/`, `pacotes/`, `mcp/`, `site/`, `supabase/`, `deploy/`, `docs/`, `scripts/` e `testes/`.
|
|
34
|
-
|
|
35
|
-
O modelo operacional é:
|
|
36
|
-
|
|
37
|
-
- A CLI é distribuída pelo instalador/cliente npm `@semacode/cli` e depois atua como executor local governado para IDEs: lê contratos, valida, mede drift, monta contexto IA-first e roda `sema preflight resumo --json` contra o control plane de SEMAS antes de agir localmente.
|
|
38
|
-
- IDEs locais usam a CLI completa e uma chave local. O agente deve rodar `sema --version`; se faltar, deve pedir ao humano para instalar pelo painel Sema. Pare se `decisao` não for `use_cli_local`. Não use MCP remoto, `sema_sync`, `sema_contratos_sincronizar` nem `sema mcp-client` para ler workspace local.
|
|
39
|
-
- O MCP privado é o coordenador web/chat: autentica clientes remotos, escolhe o projeto ou espelho de servidor correto, cobra SEMAS, decide o fluxo de contrato/profile obrigatório e devolve o veredito operacional.
|
|
40
|
-
- Chats web continuam suportados porque o MCP privado mantém uma CLI instalada na VPS e executa contra espelhos autorizados em `/srv/sema/projetos/...`.
|
|
41
|
-
|
|
42
|
-
Distribuição fora da fronteira privada só é permitida para o instalador CLI governado. Se algum script tentar publicar o servidor MCP, assets de release de produto, segredos, control plane, GitHub Release ou qualquer pacote público fora de `@semacode/cli`, ele deve falhar antes de criar qualquer artefato.
|
|
43
|
-
|
|
44
|
-
Use a checagem de fronteira privada:
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
npm run repo:verificar-privado
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Español
|
|
51
|
-
|
|
52
|
-
Sema es privado de punta a punta, con un canal npm para el cliente gobernado: `@semacode/cli`. No existe repositorio público de producto, superficie MCP pública como paquete abierto, GitHub Release pública ni división activa entre `public/` y `private/`.
|
|
53
|
-
|
|
54
|
-
El árbol activo vive en la raíz del repositorio: `contratos/`, `pacotes/`, `mcp/`, `site/`, `supabase/`, `deploy/`, `docs/`, `scripts/` y `testes/`.
|
|
55
|
-
|
|
56
|
-
El modelo operativo es:
|
|
57
|
-
|
|
58
|
-
- La CLI se distribuye por el instalador/cliente npm `@semacode/cli` y luego actúa como ejecutor local gobernado para IDEs: lee contratos, valida, mide drift, prepara contexto IA-first y ejecuta `sema preflight resumo --json` contra el control plane de SEMAS antes de actuar localmente.
|
|
59
|
-
- Las IDEs locales usan la CLI completa y una clave local. El agente debe ejecutar `sema --version`; si falta, debe pedir al humano que instale desde el panel Sema. Para si `decisao` no es `use_cli_local`. No uses el MCP remoto, `sema_sync`, `sema_contratos_sincronizar` ni `sema mcp-client` para leer un workspace local.
|
|
60
|
-
- El MCP privado es el coordinador web/chat: autentica clientes remotos, elige el proyecto o espejo de servidor correcto, cobra SEMAS, decide el flujo obligatorio de contrato/profile y devuelve el veredicto operativo.
|
|
61
|
-
- Los chats web siguen soportados porque el MCP privado mantiene una CLI instalada en la VPS y la ejecuta contra espejos autorizados en `/srv/sema/projetos/...`.
|
|
62
|
-
|
|
63
|
-
La distribución fuera de la frontera privada solo se permite para el instalador CLI gobernado. Si un script intenta publicar el servidor MCP, assets de release de producto, secretos, control plane, GitHub Release o cualquier paquete público fuera de `@semacode/cli`, debe fallar antes de crear cualquier artefacto.
|
|
64
|
-
|
|
65
|
-
Usa la verificación de frontera privada:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
npm run repo:verificar-privado
|
|
69
|
-
```
|
|
27
|
+
Support: suporte@otimitare.online
|
package/docs/rollback.md
CHANGED
|
@@ -1,24 +1,13 @@
|
|
|
1
|
-
# Rollback
|
|
1
|
+
# Rollback Boundary
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
> PT: Português depois, com acentos preservados.
|
|
6
|
-
> ES: Español al final.
|
|
3
|
+
Public Sema rollback guidance is limited to local files and npm package
|
|
4
|
+
artifacts.
|
|
7
5
|
|
|
8
|
-
|
|
6
|
+
For public package work:
|
|
9
7
|
|
|
10
|
-
|
|
8
|
+
1. Keep the previous tarball until the new one passes smoke tests.
|
|
9
|
+
2. Rebuild with `npm run cli:empacotar-publica`.
|
|
10
|
+
3. Re-run `node scripts/testar-pacote-cli-publico.mjs`.
|
|
11
11
|
|
|
12
|
-
Do not
|
|
13
|
-
|
|
14
|
-
## Português
|
|
15
|
-
|
|
16
|
-
Rollback é privado e precisa preservar rastreabilidade. Se o runtime MCP quebrar, restaure o pacote ou os arquivos `dist` anteriores, reinicie `sema-mcp.service` e valide `/healthz`.
|
|
17
|
-
|
|
18
|
-
Não reescreva espelhos de clientes às cegas. Espelhos de projeto em `/srv/sema/projetos/...` só devem ser revertidos quando a mudança com falha tiver tocado aquele espelho.
|
|
19
|
-
|
|
20
|
-
## Español
|
|
21
|
-
|
|
22
|
-
El rollback es privado y debe preservar trazabilidad. Si el runtime MCP falla, restaura el paquete o los archivos `dist` anteriores, reinicia `sema-mcp.service` y valida `/healthz`.
|
|
23
|
-
|
|
24
|
-
No reescribas espejos de clientes a ciegas. Los espejos de proyecto en `/srv/sema/projetos/...` solo deben revertirse cuando el cambio fallido haya tocado ese espejo.
|
|
12
|
+
Do not publish private or sensitive operational rollback material in this
|
|
13
|
+
repository.
|
package/docs/security.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Security
|
|
2
|
+
|
|
3
|
+
The public Sema repository must not contain private or sensitive operational
|
|
4
|
+
material.
|
|
5
|
+
|
|
6
|
+
Do not publish:
|
|
7
|
+
|
|
8
|
+
- real credentials or secret material;
|
|
9
|
+
- private data or internal operational artifacts.
|
|
10
|
+
|
|
11
|
+
Placeholder examples are allowed:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
EXAMPLE_KEY=replace-me
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
If a real credential is exposed in code, docs, logs, screenshots, packages, or
|
|
18
|
+
Git history:
|
|
19
|
+
|
|
20
|
+
1. Rotate it immediately.
|
|
21
|
+
2. Remove it from the affected artifact.
|
|
22
|
+
3. Rebuild and rescan before publishing.
|
|
23
|
+
|
|
24
|
+
Official support: suporte@otimitare.online
|
package/docs/support.md
ADDED
package/docs/syntax.md
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
<!-- sema:agent-entrypoint:start -->
|
|
2
|
+
# Sema Syntax for AI Agents
|
|
3
|
+
|
|
4
|
+
Use this file as a compact reference before creating or fixing `.sema` contracts.
|
|
5
|
+
|
|
6
|
+
## Golden Rule
|
|
7
|
+
|
|
8
|
+
Contract comes before code. Before writing `.sema`, read the local examples in `exemplos/`.
|
|
9
|
+
|
|
10
|
+
## Minimal Example
|
|
11
|
+
|
|
12
|
+
```sema
|
|
13
|
+
module app.example {
|
|
14
|
+
entity Item {
|
|
15
|
+
fields {
|
|
16
|
+
id: Id
|
|
17
|
+
name: Texto
|
|
18
|
+
active: Booleano
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
task create_item {
|
|
23
|
+
input {
|
|
24
|
+
name: Texto required
|
|
25
|
+
}
|
|
26
|
+
output {
|
|
27
|
+
item: Item
|
|
28
|
+
}
|
|
29
|
+
rules {
|
|
30
|
+
name deve_ser preenchido
|
|
31
|
+
}
|
|
32
|
+
effects {
|
|
33
|
+
persistencia Item
|
|
34
|
+
auditoria item_created
|
|
35
|
+
}
|
|
36
|
+
guarantees {
|
|
37
|
+
item existe
|
|
38
|
+
}
|
|
39
|
+
tests {
|
|
40
|
+
caso "creates valid item" {
|
|
41
|
+
given { name: "Item" }
|
|
42
|
+
expect { sucesso: verdadeiro }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Common Blocks
|
|
50
|
+
|
|
51
|
+
- `docs`: module summary and notes.
|
|
52
|
+
- `entity`: domain model.
|
|
53
|
+
- `task`: governed operation.
|
|
54
|
+
- `input` and `output`: input and output contracts.
|
|
55
|
+
- `rules`: validations and business rules.
|
|
56
|
+
- `effects`: persistence, reads, events, audit, and external calls.
|
|
57
|
+
- `guarantees`: what the task must provide after success.
|
|
58
|
+
- `error`: named errors and messages.
|
|
59
|
+
- `tests`: minimal behavior examples.
|
|
60
|
+
- `route`: public surface linked to a task.
|
|
61
|
+
- `impl` and `vinculos`: links between the contract and real code.
|
|
62
|
+
|
|
63
|
+
## Canonical `use` and `impl` Origins
|
|
64
|
+
|
|
65
|
+
Use these origins before inventing a new one:
|
|
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
|
+
Examples:
|
|
79
|
+
|
|
80
|
+
```sema
|
|
81
|
+
use javascript app.web.expenses
|
|
82
|
+
|
|
83
|
+
impl {
|
|
84
|
+
js: src.app.saveExpense
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
`sema compilar --alvo javascript` defines a generation target. `impl { js: ... }` defines the live-code origin linked to the contract. They are different layers and both are valid.
|
|
89
|
+
|
|
90
|
+
## Small Canonical Lists
|
|
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
|
+
## Contract Size
|
|
96
|
+
|
|
97
|
+
- up to 300 lines: healthy
|
|
98
|
+
- 301-500 lines: diagnostic warning, plan a split
|
|
99
|
+
- above 500: blocks creation, edits, drift, finalization, generation, and snapshots
|
|
100
|
+
- split by real domain/capability, such as `expenses_entry.sema`, `expenses_totals.sema`, `expenses_persistence.sema`
|
|
101
|
+
- never use `parte_1`, `parte_2`, `part_3`, or equivalent names
|
|
102
|
+
- do not remove `guarantees`, `tests`, `authz`, `dados`, or `vinculos` just to fit under the limit
|
|
103
|
+
- multiple `.sema` contracts may govern the same code file through `vinculos`; this is expected
|
|
104
|
+
|
|
105
|
+
## JavaScript Is Supported
|
|
106
|
+
|
|
107
|
+
The CLI supports JavaScript generation:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
The project can also generate TypeScript, Python, Dart, Lua, HTML, and CSS when those targets are enabled in `sema.config.json`.
|
|
114
|
+
|
|
115
|
+
## Support Files
|
|
116
|
+
|
|
117
|
+
- `AGENTS.md`: required agent rules.
|
|
118
|
+
- `SEMA_BOOT.md`: first read for every AI agent.
|
|
119
|
+
- `SEMA_SMALL_MODEL.md`: short version for weaker agents.
|
|
120
|
+
- `AGENT_CONTEXT_PACK.json`: structured agent context pack.
|
|
121
|
+
- `SEMA_INDEX.json`: project index.
|
|
122
|
+
- `docs/commands.md`: command catalog, gates, and `--saida` rule.
|
|
123
|
+
- `exemplos/`: official DSL examples.
|
|
124
|
+
|
|
125
|
+
If an AI agent does not know which shape to use, it must open `exemplos/calculadora.sema`, `exemplos/crud_simples.sema`, `exemplos/pagamento.sema`, or `exemplos/tratamento_erro.sema` before inventing syntax.
|
|
126
|
+
|
|
127
|
+
Platform policy: 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 -->
|
package/docs/testing.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Testing
|
|
2
|
+
|
|
3
|
+
Public Sema tests should run locally.
|
|
4
|
+
|
|
5
|
+
Recommended checks:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm run build
|
|
9
|
+
node pacotes/cli/dist/index.js --help
|
|
10
|
+
node pacotes/cli/dist/index.js preflight resumo --json
|
|
11
|
+
node pacotes/cli/dist/index.js validar exemplos/calculadora.sema --json
|
|
12
|
+
npm run cli:empacotar-publica
|
|
13
|
+
node scripts/testar-pacote-cli-publico.mjs
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Do not require private or sensitive operational material for public test
|
|
17
|
+
evidence.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Sema Vocabulary
|
|
2
|
+
|
|
3
|
+
Use consistent English prose in public docs while preserving technical
|
|
4
|
+
identifiers.
|
|
5
|
+
|
|
6
|
+
## Canonical Concepts
|
|
7
|
+
|
|
8
|
+
- semantic contract
|
|
9
|
+
- drift
|
|
10
|
+
- impact map
|
|
11
|
+
- governed code
|
|
12
|
+
- traceability
|
|
13
|
+
- preflight
|
|
14
|
+
- finalization
|
|
15
|
+
- evidence
|
|
16
|
+
- local CLI
|
|
17
|
+
|
|
18
|
+
## Do Not Translate
|
|
19
|
+
|
|
20
|
+
- commands: `sema validar`, `sema drift`, `sema impacto`
|
|
21
|
+
- files: `AGENTS.md`, `SEMA_BOOT.md`, `SEMA_INDEX.json`
|
|
22
|
+
- DSL keywords: `task`, `input`, `output`, `rules`, `effects`, `guarantees`
|
|
23
|
+
- package names: `@semacode/cli`
|
|
24
|
+
- code symbols and environment variable names
|
|
25
|
+
|
|
26
|
+
## Public Support
|
|
27
|
+
|
|
28
|
+
Use suporte@otimitare.online for support references.
|
|
@@ -181,6 +181,16 @@ function gerarPreparacaoSaida(task) {
|
|
|
181
181
|
ajustes.push(` saida["diacriticos_preservados"] = true`);
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
|
+
if (camposEntrada.has("drift")) {
|
|
185
|
+
precondicoes.push(` local drift_texto = tostring(entrada["drift"] or ""):lower()`);
|
|
186
|
+
precondicoes.push(` if drift_texto:find("sucesso:false", 1, true) or drift_texto:find("vinculos_quebrados", 1, true) or drift_texto:find("rotas_divergentes", 1, true) then return nil end`);
|
|
187
|
+
}
|
|
188
|
+
if (campoArtefatoI18n) {
|
|
189
|
+
precondicoes.push(` local artefato_responsivo = tostring(entrada[${JSON.stringify(campoArtefatoI18n)}] or "")`);
|
|
190
|
+
precondicoes.push(` local scroll_width = tonumber(artefato_responsivo:match("scrollWidth%s*(%d+)"))`);
|
|
191
|
+
precondicoes.push(` local client_width = tonumber(artefato_responsivo:match("clientWidth%s*(%d+)"))`);
|
|
192
|
+
precondicoes.push(` if scroll_width ~= nil and client_width ~= nil and scroll_width > client_width then return nil end`);
|
|
193
|
+
}
|
|
184
194
|
for (const garantia of task.garantiasEstruturadas) {
|
|
185
195
|
if (garantia.tipo === "pertencimento" && garantia.valores && camposSaida.has(garantia.alvo)) {
|
|
186
196
|
ajustes.push(` saida[${JSON.stringify(garantia.alvo)}] = ${formatarValorLua(garantia.valores[0] ?? "", camposSaida, "saida")}`);
|