@semacode/cli 1.3.7 → 1.4.0
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/README.md +61 -41
- package/dist/drift.d.ts +5 -3
- package/dist/drift.js +532 -27
- package/dist/drift.js.map +1 -1
- package/dist/importador.d.ts +2 -0
- package/dist/importador.js +166 -7
- package/dist/importador.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/projeto.d.ts +6 -1
- package/dist/projeto.js.map +1 -1
- package/docs/cli.md +101 -0
- package/docs/instalacao-e-primeiro-uso.md +108 -196
- package/docs/integracao-com-ia.md +43 -200
- package/docs/persistencia-vendor-first.md +145 -0
- package/docs/sintaxe.md +67 -251
- package/exemplos/persistencia_vendor_first.sema +86 -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/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/ast/tipos.d.ts +2 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.js +32 -17
- package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/index.d.ts +1 -0
- package/node_modules/@sema/nucleo/dist/index.js +1 -0
- package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.js +94 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +60 -0
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js +15 -0
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.js +98 -3
- package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.d.ts +39 -0
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +294 -0
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +1 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +118 -2
- package/node_modules/@sema/nucleo/dist/semantico/analisador.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 +11 -11
package/README.md
CHANGED
|
@@ -1,73 +1,93 @@
|
|
|
1
1
|
# Sema CLI
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`@semacode/cli` e a interface publica principal da Sema.
|
|
4
4
|
|
|
5
|
-
Ela
|
|
5
|
+
Ela valida contratos `.sema`, mede `drift` entre contrato e codigo vivo, importa legado, gera codigo derivado, produz contexto IA-first e agora governa persistencia vendor-first para `postgres`, `mysql`, `sqlite`, `mongodb` e `redis`.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Instalar
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
- inspecionar projeto
|
|
11
|
-
- medir `drift` entre contrato e codigo vivo
|
|
12
|
-
- importar legado
|
|
13
|
-
- gerar resumo compacto por capacidade de IA
|
|
14
|
-
- preparar contexto para IA
|
|
15
|
-
|
|
16
|
-
Quando a CLI roda em projeto, a trilha IA-first recomendada fica assim:
|
|
17
|
-
|
|
18
|
-
- raiz do repo: `llms.txt`, `SEMA_BRIEF.*`, `SEMA_INDEX.json`, `AGENTS.md`, `README.md`
|
|
19
|
-
- modulo alvo: `resumo.micro.txt`, `briefing.min.json`, `prompt-curto.txt`, `drift.json`, `briefing.json`
|
|
20
|
-
|
|
21
|
-
Isto nao existe para agradar humano. Existe para a IA achar o contexto certo sem entupir a janela com lixo.
|
|
22
|
-
|
|
23
|
-
Para regenerar os entrypoints IA-first da raiz:
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
sema sync-ai-entrypoints --json
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Instalacao pelo npm registry
|
|
9
|
+
Global:
|
|
30
10
|
|
|
31
11
|
```bash
|
|
32
12
|
npm install -g @semacode/cli
|
|
33
13
|
sema --help
|
|
14
|
+
sema doctor
|
|
34
15
|
```
|
|
35
16
|
|
|
36
|
-
|
|
17
|
+
Local ao projeto:
|
|
37
18
|
|
|
38
19
|
```bash
|
|
39
|
-
npm install
|
|
20
|
+
npm install @semacode/cli
|
|
21
|
+
npx sema --help
|
|
40
22
|
```
|
|
41
23
|
|
|
42
|
-
|
|
24
|
+
Tarball da release:
|
|
43
25
|
|
|
44
26
|
```bash
|
|
45
27
|
npm install -g https://github.com/gerlanss/Sema/releases/latest/download/sema-cli-latest.tgz
|
|
46
28
|
```
|
|
47
29
|
|
|
48
|
-
##
|
|
30
|
+
## Fluxos principais
|
|
31
|
+
|
|
32
|
+
Projeto novo:
|
|
49
33
|
|
|
50
34
|
```bash
|
|
51
|
-
|
|
52
|
-
|
|
35
|
+
sema iniciar
|
|
36
|
+
sema validar contratos/pedidos.sema --json
|
|
37
|
+
sema compilar contratos --alvo typescript --saida ./generated/typescript
|
|
38
|
+
sema verificar contratos --json
|
|
53
39
|
```
|
|
54
40
|
|
|
55
|
-
|
|
41
|
+
Projeto que ja usa Sema:
|
|
56
42
|
|
|
57
43
|
```bash
|
|
58
|
-
|
|
59
|
-
|
|
44
|
+
sema inspecionar . --json
|
|
45
|
+
sema resumo contratos/pedidos.sema --micro --para mudanca
|
|
46
|
+
sema drift contratos/pedidos.sema --json
|
|
47
|
+
sema contexto-ia contratos/pedidos.sema --saida ./.tmp/contexto --json
|
|
60
48
|
```
|
|
61
49
|
|
|
62
|
-
|
|
50
|
+
Adocao incremental em legado:
|
|
63
51
|
|
|
64
52
|
```bash
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
sema
|
|
68
|
-
sema
|
|
69
|
-
sema starter-ia
|
|
70
|
-
sema resumo contratos/pedidos.sema --micro --para onboarding
|
|
53
|
+
sema importar nextjs ./app --saida ./contratos-importados --json
|
|
54
|
+
sema formatar ./contratos-importados
|
|
55
|
+
sema validar ./contratos-importados --json
|
|
56
|
+
sema drift ./contratos-importados --json
|
|
71
57
|
```
|
|
72
58
|
|
|
73
|
-
|
|
59
|
+
## Persistencia vendor-first
|
|
60
|
+
|
|
61
|
+
A CLI 1.4.0 entende blocos `database` e recursos de persistencia no IR, no formatador, no semantico, na importacao e no drift. O objetivo nao e esconder diferencas entre bancos, e sim capturar essas diferencas no contrato.
|
|
62
|
+
|
|
63
|
+
Cobertura publica:
|
|
64
|
+
|
|
65
|
+
- `postgres`: tabela, relacao, query SQL, schema e capacidades relacionais
|
|
66
|
+
- `mysql`: tabela, indice e diferencas operacionais do engine
|
|
67
|
+
- `sqlite`: armazenamento local, retencao curta e modos de transacao simples
|
|
68
|
+
- `mongodb`: `collection`, `document`, pipeline e indices documentais
|
|
69
|
+
- `redis`: `keyspace`, `stream`, TTL e superficies de estado/cache
|
|
70
|
+
|
|
71
|
+
## Pacote publico
|
|
72
|
+
|
|
73
|
+
O tarball publico da CLI inclui:
|
|
74
|
+
|
|
75
|
+
- `dist/`
|
|
76
|
+
- docs IA-first e docs de operacao
|
|
77
|
+
- pasta `exemplos/`
|
|
78
|
+
- `AGENTS.md`, `llms.txt`, `SEMA_BRIEF.*` e `SEMA_INDEX.json`
|
|
79
|
+
|
|
80
|
+
## Comandos uteis
|
|
81
|
+
|
|
82
|
+
- `sema validar <arquivo-ou-pasta> --json`
|
|
83
|
+
- `sema drift <arquivo-ou-pasta> --json`
|
|
84
|
+
- `sema resumo <arquivo-ou-pasta> --micro --para onboarding`
|
|
85
|
+
- `sema prompt-curto <arquivo-ou-pasta> --curto --para mudanca`
|
|
86
|
+
- `sema contexto-ia <arquivo.sema> --saida <diretorio> --json`
|
|
87
|
+
- `sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua> --saida <diretorio>`
|
|
88
|
+
- `sema verificar <arquivo-ou-pasta> --saida <diretorio>`
|
|
89
|
+
|
|
90
|
+
## Links
|
|
91
|
+
|
|
92
|
+
- repositorio: <https://github.com/gerlanss/Sema>
|
|
93
|
+
- docs: <https://github.com/gerlanss/Sema/tree/main/docs>
|
package/dist/drift.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { NivelConfiancaSemantica, NivelRiscoSemantico } from "@sema/nucleo";
|
|
1
|
+
import type { EngineBanco, NivelConfiancaSemantica, NivelRiscoSemantico, TipoRecursoPersistencia } from "@sema/nucleo";
|
|
2
2
|
import type { ContextoProjetoCarregado } from "./projeto.js";
|
|
3
3
|
type ConsumerFramework = "nextjs-consumer" | "react-vite-consumer" | "angular-consumer" | "flutter-consumer";
|
|
4
4
|
interface RegistroConsumerSurfaceDrift {
|
|
@@ -36,14 +36,16 @@ interface RegistroRotaDivergente {
|
|
|
36
36
|
caminho?: string;
|
|
37
37
|
motivo: string;
|
|
38
38
|
}
|
|
39
|
+
type OrigemRecursoDrift = "firebase" | EngineBanco;
|
|
40
|
+
type TipoRecursoDrift = "colecao" | TipoRecursoPersistencia;
|
|
39
41
|
interface RegistroRecursoDrift {
|
|
40
42
|
modulo: string;
|
|
41
43
|
task: string;
|
|
42
44
|
categoria: "persistencia";
|
|
43
45
|
alvo: string;
|
|
44
46
|
arquivo: string;
|
|
45
|
-
origem:
|
|
46
|
-
tipo:
|
|
47
|
+
origem: OrigemRecursoDrift;
|
|
48
|
+
tipo: TipoRecursoDrift;
|
|
47
49
|
status: "resolvido" | "divergente";
|
|
48
50
|
}
|
|
49
51
|
interface SimboloCandidatoDrift {
|