@semacode/cli 1.5.28 → 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.
Files changed (125) hide show
  1. package/README.md +144 -144
  2. package/dist/bridge.d.ts +52 -0
  3. package/dist/bridge.js +318 -0
  4. package/dist/bridge.js.map +1 -0
  5. package/dist/comandos.d.ts +11 -0
  6. package/dist/comandos.js +146 -0
  7. package/dist/comandos.js.map +1 -0
  8. package/dist/contexto.d.ts +34 -0
  9. package/dist/contexto.js +197 -0
  10. package/dist/contexto.js.map +1 -0
  11. package/dist/drift.d.ts +1 -1
  12. package/dist/drift.js +32 -5
  13. package/dist/drift.js.map +1 -1
  14. package/dist/guard.d.ts +35 -0
  15. package/dist/guard.js +164 -0
  16. package/dist/guard.js.map +1 -0
  17. package/dist/index.js +391 -64
  18. package/dist/index.js.map +1 -1
  19. package/dist/lua-symbols.d.ts +0 -6
  20. package/dist/lua-symbols.js +11 -78
  21. package/dist/lua-symbols.js.map +1 -1
  22. package/dist/projeto.js +6 -0
  23. package/dist/projeto.js.map +1 -1
  24. package/dist/tipos.d.ts +1 -1
  25. package/exemplos/.prepack-generated +1 -0
  26. package/exemplos/author_obra_comum.sema +294 -294
  27. package/exemplos/author_tema_sensivel.sema +264 -264
  28. package/exemplos/profile_game.sema +114 -114
  29. package/exemplos/profile_legal.sema +105 -105
  30. package/exemplos/profile_ops.sema +110 -110
  31. package/exemplos/profile_research.sema +104 -104
  32. package/exemplos/profile_software.sema +123 -123
  33. package/exemplos/profile_workflow_n8n.sema +99 -99
  34. package/node_modules/@sema/gerador-css/package.json +14 -7
  35. package/node_modules/@sema/gerador-css/src/index.ts +605 -0
  36. package/node_modules/@sema/gerador-css/tsconfig.json +13 -0
  37. package/node_modules/@sema/gerador-css/tsconfig.tsbuildinfo +1 -0
  38. package/node_modules/@sema/gerador-dart/package.json +14 -7
  39. package/node_modules/@sema/gerador-dart/src/index.ts +52 -0
  40. package/node_modules/@sema/gerador-dart/tsconfig.json +13 -0
  41. package/node_modules/@sema/gerador-dart/tsconfig.tsbuildinfo +1 -0
  42. package/node_modules/@sema/gerador-html/package.json +14 -7
  43. package/node_modules/@sema/gerador-html/src/index.ts +185 -0
  44. package/node_modules/@sema/gerador-html/tsconfig.json +13 -0
  45. package/node_modules/@sema/gerador-html/tsconfig.tsbuildinfo +1 -0
  46. package/node_modules/@sema/gerador-javascript/package.json +14 -7
  47. package/node_modules/@sema/gerador-javascript/src/index.ts +461 -0
  48. package/node_modules/@sema/gerador-javascript/tsconfig.json +13 -0
  49. package/node_modules/@sema/gerador-javascript/tsconfig.tsbuildinfo +1 -0
  50. package/node_modules/@sema/gerador-lua/package.json +14 -7
  51. package/node_modules/@sema/gerador-lua/src/index.ts +359 -0
  52. package/node_modules/@sema/gerador-lua/tsconfig.json +13 -0
  53. package/node_modules/@sema/gerador-lua/tsconfig.tsbuildinfo +1 -0
  54. package/node_modules/@sema/gerador-python/package.json +14 -7
  55. package/node_modules/@sema/gerador-python/src/index.ts +850 -0
  56. package/node_modules/@sema/gerador-python/tsconfig.json +13 -0
  57. package/node_modules/@sema/gerador-python/tsconfig.tsbuildinfo +1 -0
  58. package/node_modules/@sema/gerador-typescript/package.json +14 -7
  59. package/node_modules/@sema/gerador-typescript/src/index.ts +876 -0
  60. package/node_modules/@sema/gerador-typescript/tsconfig.json +13 -0
  61. package/node_modules/@sema/gerador-typescript/tsconfig.tsbuildinfo +1 -0
  62. package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +1 -1
  63. package/node_modules/@sema/nucleo/dist/index.d.ts +17 -0
  64. package/node_modules/@sema/nucleo/dist/index.js +28 -0
  65. package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
  66. package/node_modules/@sema/nucleo/dist/ir/conversor.js +4 -0
  67. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
  68. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +3 -3
  69. package/node_modules/@sema/nucleo/dist/parser/parser.js +2 -0
  70. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
  71. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +2 -2
  72. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +3 -1
  73. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -1
  74. package/node_modules/@sema/nucleo/package.json +10 -7
  75. package/node_modules/@sema/nucleo/src/ast/tipos.ts +207 -0
  76. package/node_modules/@sema/nucleo/src/diagnosticos/index.ts +43 -0
  77. package/node_modules/@sema/nucleo/src/formatador/index.ts +530 -0
  78. package/node_modules/@sema/nucleo/src/index.ts +183 -0
  79. package/node_modules/@sema/nucleo/src/ir/conversor.ts +1037 -0
  80. package/node_modules/@sema/nucleo/src/ir/modelos.ts +403 -0
  81. package/node_modules/@sema/nucleo/src/lexer/lexer.ts +166 -0
  82. package/node_modules/@sema/nucleo/src/lexer/tokens.ts +79 -0
  83. package/node_modules/@sema/nucleo/src/parser/gramatica.ebnf +41 -0
  84. package/node_modules/@sema/nucleo/src/parser/parser.ts +936 -0
  85. package/node_modules/@sema/nucleo/src/persistencia/contratos.ts +379 -0
  86. package/node_modules/@sema/nucleo/src/semantico/analisador.ts +3126 -0
  87. package/node_modules/@sema/nucleo/src/semantico/estruturas.ts +665 -0
  88. package/node_modules/@sema/nucleo/src/semantico/seguranca.ts +362 -0
  89. package/node_modules/@sema/nucleo/src/util/arquivos.ts +28 -0
  90. package/node_modules/@sema/nucleo/tsconfig.json +9 -0
  91. package/node_modules/@sema/nucleo/tsconfig.tsbuildinfo +1 -0
  92. package/node_modules/@sema/padroes/package.json +10 -7
  93. package/node_modules/@sema/padroes/src/index.ts +382 -0
  94. package/node_modules/@sema/padroes/tsconfig.json +9 -0
  95. package/node_modules/@sema/padroes/tsconfig.tsbuildinfo +1 -0
  96. package/package.json +74 -74
  97. package/AGENTS.md +0 -280
  98. package/LICENSE +0 -22
  99. package/SEMA_BRIEF.curto.txt +0 -11
  100. package/SEMA_BRIEF.md +0 -112
  101. package/SEMA_BRIEF.micro.txt +0 -9
  102. package/SEMA_INDEX.json +0 -1534
  103. package/dist/php-symbols.d.ts +0 -24
  104. package/dist/php-symbols.js +0 -375
  105. package/dist/php-symbols.js.map +0 -1
  106. package/docs/AGENT_STARTER.md +0 -109
  107. package/docs/cli.md +0 -175
  108. package/docs/como-ensinar-a-sema-para-ia.md +0 -155
  109. package/docs/deploy.md +0 -93
  110. package/docs/documentacao.md +0 -88
  111. package/docs/env.md +0 -105
  112. package/docs/extensao-vscode.md +0 -53
  113. package/docs/fluxo-pratico-ia-sema.md +0 -187
  114. package/docs/instalacao-e-primeiro-uso.md +0 -134
  115. package/docs/integracao-com-ia.md +0 -110
  116. package/docs/mcp.md +0 -292
  117. package/docs/pagamento-ponta-a-ponta.md +0 -171
  118. package/docs/persistencia-vendor-first.md +0 -151
  119. package/docs/prompt-base-ia-sema.md +0 -111
  120. package/docs/repositories.md +0 -54
  121. package/docs/rollback.md +0 -49
  122. package/docs/seguranca.md +0 -126
  123. package/docs/sintaxe.md +0 -218
  124. package/llms-full.txt +0 -34
  125. package/llms.txt +0 -17
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.28`.
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.28`.
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.28`.
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.28 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.
@@ -1,88 +0,0 @@
1
- # Documentation Governance
2
-
3
- ## English
4
-
5
- Sema treats documentation as part of the change, not as a polite afterthought. Before an AI edits a contract, code, configuration, workflow, deploy, Author text, game rule, legal note, research note, or operational runbook, it must resolve the documentation that explains the intended change.
6
-
7
- Public documentation follows the exact order defined in [i18n.md](./i18n.md): English, Português, Español. Portuguese and Spanish must keep proper accents. Code blocks, identifiers, paths, command names, and `.sema` symbols are preserved unless a semantic rename contract says otherwise.
8
-
9
- ### Operational Gate
10
-
11
- ```bash
12
- sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
13
- ```
14
-
15
- If the command reports missing docs, create or complete those docs before changing code, contracts, deploy, or configuration.
16
-
17
- ### Required Reading
18
-
19
- The `docs-impacto` result returns:
20
-
21
- - `leituraObrigatoria`: docs, readmes, and contracts that must be read.
22
- - `docsAusentes`: docs that block the action.
23
- - `docsCriadas`: docs created automatically when authorized.
24
- - `bloqueios`: severity 4 diagnostics.
25
-
26
- Before declaring the work done, the agent must run:
27
-
28
- ```bash
29
- sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
30
- ```
31
-
32
- ## Português
33
-
34
- A Sema trata documentação como parte da mudança, não como pós-escrito simpático para alguém lembrar depois. Antes de uma IA editar contrato, código, configuração, workflow, deploy, texto Author, regra de jogo, nota jurídica, pesquisa ou runbook operacional, ela precisa resolver a documentação que explica a intenção da mudança.
35
-
36
- A documentação pública segue a ordem exata definida em [i18n.md](./i18n.md): English, Português, Español. Português e espanhol precisam preservar acentos. Blocos de código, identificadores, caminhos, nomes de comando e símbolos `.sema` são preservados, exceto quando houver contrato de renomeação semântica.
37
-
38
- ### Gate Operacional
39
-
40
- ```bash
41
- sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
42
- ```
43
-
44
- Se o comando apontar docs ausentes, crie ou complete essas docs antes de mudar código, contratos, deploy ou configuração.
45
-
46
- ### Leitura Obrigatória
47
-
48
- O resultado de `docs-impacto` retorna:
49
-
50
- - `leituraObrigatoria`: docs, readmes e contratos que precisam ser lidos.
51
- - `docsAusentes`: docs que bloqueiam a ação.
52
- - `docsCriadas`: docs criadas automaticamente quando autorizado.
53
- - `bloqueios`: diagnósticos de severidade 4.
54
-
55
- Antes de dizer que o trabalho terminou, o agente precisa rodar:
56
-
57
- ```bash
58
- sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
59
- ```
60
-
61
- ## Español
62
-
63
- Sema trata la documentación como parte del cambio, no como una nota amable para recordar después. Antes de que una IA edite contrato, código, configuración, workflow, deploy, texto Author, regla de juego, nota legal, investigación o runbook operativo, debe resolver la documentación que explica la intención del cambio.
64
-
65
- La documentación pública sigue el orden exacto definido en [i18n.md](./i18n.md): English, Português, Español. Portugués y español deben conservar sus acentos. Bloques de código, identificadores, rutas, nombres de comando y símbolos `.sema` se preservan, excepto cuando exista un contrato de renombrado semántico.
66
-
67
- ### Gate Operativo
68
-
69
- ```bash
70
- sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
71
- ```
72
-
73
- Si el comando informa docs ausentes, crea o completa esas docs antes de cambiar código, contratos, deploy o configuración.
74
-
75
- ### Lectura Obligatoria
76
-
77
- El resultado de `docs-impacto` devuelve:
78
-
79
- - `leituraObrigatoria`: docs, readmes y contratos que deben leerse.
80
- - `docsAusentes`: docs que bloquean la acción.
81
- - `docsCriadas`: docs creadas automáticamente cuando se autoriza.
82
- - `bloqueios`: diagnósticos de severidad 4.
83
-
84
- Antes de decir que el trabajo terminó, el agente debe ejecutar:
85
-
86
- ```bash
87
- sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/documentacao.md --json
88
- ```
package/docs/env.md DELETED
@@ -1,105 +0,0 @@
1
- # Env
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 push ao remoto `origin`.
15
- - GitHub CLI (`gh`) autenticado.
16
- - VS Code CLI (`code`) para instalar a VSIX localmente.
17
- - PowerShell no Windows.
18
-
19
- ## Variaveis suportadas pelos instaladores publicos
20
-
21
- - `SEMA_REPO`: repositório GitHub usado para baixar assets. Padrão: `gerlanss/Sema`.
22
- - `SEMA_NPM_PACKAGE`: pacote da CLI. Padrão: `@semacode/cli`.
23
- - `SEMA_VERSION`: versão usada pelo `install-sema.sh`. Padrão: `latest`.
24
-
25
- No PowerShell, o instalador recebe a versão por parametro:
26
-
27
- ```powershell
28
- .\install-sema.ps1 -Version 1.5.28 -WithVSCode
29
- ```
30
-
31
- No shell:
32
-
33
- ```bash
34
- SEMA_VERSION=1.5.28 ./install-sema.sh --with-vscode
35
- ```
36
-
37
- ## Credenciais
38
-
39
- - NPM deve estar logado antes de publicar: `npm whoami`.
40
- - GitHub CLI deve estar logado antes de criar release: `gh auth status`.
41
- - Nunca registre tokens em docs, logs ou release notes.
42
-
43
- ## Registro NPM
44
-
45
- O pacote público é:
46
-
47
- - `@semacode/cli`
48
-
49
- Antes de publicar, confira:
50
-
51
- ```bash
52
- npm view @semacode/cli version
53
- npm run release:verificar-versao
54
- ```
55
-
56
- ## Cliente MCP remoto
57
-
58
- Variaveis usadas por Codex, VS Code/forks e clientes que aceitam bearer:
59
-
60
- - `SEMA_MCP_AUTH_TOKEN`: chave comercial `sema_mcp_*` gerada no painel. E do cliente, nao do servidor.
61
- - `SEMA_MCP_ENDPOINT`: URL HTTPS `/mcp` usada por clientes que leem endpoint por variavel.
62
-
63
- No Windows, instale sem expor a chave em argumento:
64
-
65
- ```powershell
66
- Get-Clipboard | sema mcp-instalar-chave --stdin --json
67
- ```
68
-
69
- ## Servidor MCP remoto privado
70
-
71
- Variaveis usadas pelo servidor MCP privado quando roda em modo HTTP:
72
-
73
- - `MCP_PORT`: porta HTTP. Quando ausente, o MCP roda em `stdio`.
74
- - `MCP_HOST`: host de bind. Padrão: `0.0.0.0`.
75
- - `SEMA_MCP_PUBLIC_BASE_URL`: URL pública HTTPS usada nos metadados OAuth do ChatGPT.
76
- - `SEMA_MCP_OAUTH_SECRET`: segredo usado para assinar access/refresh tokens OAuth.
77
- - `SEMA_MCP_OAUTH_PASSCODE`: passcode privado digitado no login OAuth do ChatGPT.
78
- - `SEMA_MCP_PROJECT_ROOTS`: raizes permitidas para projetos, separadas por `;`.
79
- - `SEMA_MCP_CORS_ORIGIN`: origem CORS permitida, `*` ou lista separada por `;`.
80
-
81
- Exemplo operacional privado:
82
-
83
- ```bash
84
- MCP_PORT=3333 \
85
- SEMA_MCP_PUBLIC_BASE_URL="https://sema.exemplo.com" \
86
- SEMA_MCP_OAUTH_SECRET="segredo-longo-para-oauth" \
87
- SEMA_MCP_OAUTH_PASSCODE="passcode-privado-chatgpt" \
88
- SEMA_MCP_PROJECT_ROOTS="/srv/sema/projetos"
89
- ```
90
-
91
- Nunca publique `/mcp` ou `/sse` na internet sem chave comercial bearer por request ou OAuth configurado, raiz restrita e HTTPS no proxy. Nunca registre chaves `sema_mcp_*`, OAuth secret ou passcode em docs publicas, logs, release notes ou screenshots.
92
-
93
- ## GitHub Release
94
-
95
- O tag público deve seguir `v<versao>`, por exemplo `v1.5.28`.
96
-
97
- Os assets ficam em `.tmp/release-assets` e sao derivados dos scripts versionados no repositório.
98
-
99
- Depois de publicar, rode:
100
-
101
- ```bash
102
- npm run release:verificar-publica
103
- ```
104
-
105
- Esse check cruza README/docs, manifestos, npm, GitHub Latest, assets publicados, CLI local e VSIX instalada quando o VS Code CLI está disponivel.
@@ -1,53 +0,0 @@
1
- # Extensao VS Code
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
- Runbook da extensao `Sema Language Tools`.
10
-
11
- ## Arquivos principais
12
-
13
- - `pacotes/editor-vscode/package.json`
14
- - `pacotes/editor-vscode/extension.js`
15
- - `pacotes/editor-vscode/server.js`
16
- - `pacotes/editor-vscode/README.md`
17
- - `pacotes/editor-vscode/CHANGELOG.md`
18
-
19
- ## Empacotar
20
-
21
- ```bash
22
- npm run extensao:empacotar
23
- ```
24
-
25
- O pacote versionado deve aparecer em `.tmp/editor-vscode/sema-language-tools-<versao>.vsix`.
26
-
27
- ## Instalar localmente
28
-
29
- ```bash
30
- npm run extensao:instalar-local
31
- ```
32
-
33
- Ou:
34
-
35
- ```bash
36
- code --install-extension .tmp/editor-vscode/sema-language-tools-<versao>.vsix --force
37
- ```
38
-
39
- ## Smoke test
40
-
41
- 1. Abra um projeto com `.sema`.
42
- 2. Confirme que o Language Server inicia sem crash.
43
- 3. Rode `Sema: Diagnosticar CLI`.
44
- 4. Rode `Sema: Instalar Chave MCP`, cole uma chave `sema_mcp_*` do painel e confirme que a CLI grava a variavel do usuario sem argumento com segredo.
45
- 5. Rode `Sema: Sincronizar EntryPoints IA do Projeto`.
46
- 6. Abra um `.sema` e confirme diagnosticos, highlight e formatacao.
47
-
48
- ## Cuidados
49
-
50
- - O `extension.js` deve apontar o LSP para `server.js`.
51
- - A extensao embute instrucoes de IA; atualize a lista de ferramentas MCP privadas quando novos comandos remotos forem adicionados.
52
- - A chave MCP do painel deve ser instalada via comando da extensao ou `sema mcp-instalar-chave --stdin`; nao trate `SEMA_MCP_AUTH_TOKEN` como token fixo do servidor.
53
- - A versão da extensao deve bater com a versão pública preparada por `release:preparar-publica`.