@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.
Files changed (46) hide show
  1. package/README.md +61 -41
  2. package/dist/drift.d.ts +5 -3
  3. package/dist/drift.js +532 -27
  4. package/dist/drift.js.map +1 -1
  5. package/dist/importador.d.ts +2 -0
  6. package/dist/importador.js +166 -7
  7. package/dist/importador.js.map +1 -1
  8. package/dist/index.js +2 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/projeto.d.ts +6 -1
  11. package/dist/projeto.js.map +1 -1
  12. package/docs/cli.md +101 -0
  13. package/docs/instalacao-e-primeiro-uso.md +108 -196
  14. package/docs/integracao-com-ia.md +43 -200
  15. package/docs/persistencia-vendor-first.md +145 -0
  16. package/docs/sintaxe.md +67 -251
  17. package/exemplos/persistencia_vendor_first.sema +86 -0
  18. package/node_modules/@sema/gerador-css/package.json +1 -1
  19. package/node_modules/@sema/gerador-dart/package.json +1 -1
  20. package/node_modules/@sema/gerador-html/package.json +1 -1
  21. package/node_modules/@sema/gerador-javascript/package.json +1 -1
  22. package/node_modules/@sema/gerador-lua/package.json +1 -1
  23. package/node_modules/@sema/gerador-python/package.json +1 -1
  24. package/node_modules/@sema/gerador-typescript/package.json +1 -1
  25. package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +2 -1
  26. package/node_modules/@sema/nucleo/dist/formatador/index.js +32 -17
  27. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
  28. package/node_modules/@sema/nucleo/dist/index.d.ts +1 -0
  29. package/node_modules/@sema/nucleo/dist/index.js +1 -0
  30. package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
  31. package/node_modules/@sema/nucleo/dist/ir/conversor.js +94 -0
  32. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
  33. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +60 -0
  34. package/node_modules/@sema/nucleo/dist/lexer/tokens.js +15 -0
  35. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +1 -1
  36. package/node_modules/@sema/nucleo/dist/parser/parser.js +98 -3
  37. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
  38. package/node_modules/@sema/nucleo/dist/persistencia/contratos.d.ts +39 -0
  39. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +294 -0
  40. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +1 -0
  41. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +1 -1
  42. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +118 -2
  43. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -1
  44. package/node_modules/@sema/nucleo/package.json +1 -1
  45. package/node_modules/@sema/padroes/package.json +1 -1
  46. package/package.json +11 -11
package/README.md CHANGED
@@ -1,73 +1,93 @@
1
1
  # Sema CLI
2
2
 
3
- Sema e um Protocolo de Governanca de Intencao para IA e backend vivo.
3
+ `@semacode/cli` e a interface publica principal da Sema.
4
4
 
5
- Ela nao foi desenhada para ergonomia humana como prioridade. O alvo principal e IA operando contrato, drift e contexto de sistema vivo com menos chute.
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
- Este pacote entrega a CLI oficial para:
7
+ ## Instalar
8
8
 
9
- - validar contratos `.sema`
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
- ## Instalacao via tarball da release
17
+ Local ao projeto:
37
18
 
38
19
  ```bash
39
- npm install -g ./sema-cli-1.3.7.tgz
20
+ npm install @semacode/cli
21
+ npx sema --help
40
22
  ```
41
23
 
42
- Ou direto da GitHub Release:
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
- ## Instalacao local ao projeto
30
+ ## Fluxos principais
31
+
32
+ Projeto novo:
49
33
 
50
34
  ```bash
51
- npm install @semacode/cli
52
- npx sema --help
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
- Ou, se voce estiver testando um tarball local:
41
+ Projeto que ja usa Sema:
56
42
 
57
43
  ```bash
58
- npm install ./sema-cli-1.3.7.tgz
59
- npx sema --help
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
- ## Primeiro teste
50
+ Adocao incremental em legado:
63
51
 
64
52
  ```bash
65
- mkdir sema-demo
66
- cd sema-demo
67
- sema iniciar
68
- sema validar contratos/pedidos.sema --json
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
- Repositorio: https://github.com/gerlanss/Sema
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: "firebase";
46
- tipo: "colecao";
47
+ origem: OrigemRecursoDrift;
48
+ tipo: TipoRecursoDrift;
47
49
  status: "resolvido" | "divergente";
48
50
  }
49
51
  interface SimboloCandidatoDrift {