@semacode/cli 1.5.16 → 1.5.17

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 (175) hide show
  1. package/AGENTS.md +272 -0
  2. package/LICENSE +22 -0
  3. package/SEMA_BRIEF.curto.txt +9 -0
  4. package/SEMA_BRIEF.md +70 -0
  5. package/SEMA_BRIEF.micro.txt +7 -0
  6. package/SEMA_INDEX.json +921 -0
  7. package/dist/angular-consumer-standalone.d.ts +6 -0
  8. package/dist/angular-consumer-standalone.js.map +1 -0
  9. package/dist/cpp-symbols.d.ts +10 -0
  10. package/dist/cpp-symbols.js.map +1 -0
  11. package/dist/docs.d.ts +56 -0
  12. package/dist/docs.js.map +1 -0
  13. package/dist/dotnet-http.d.ts +23 -0
  14. package/dist/dotnet-http.js.map +1 -0
  15. package/dist/drift.d.ts +225 -0
  16. package/dist/drift.js.map +1 -0
  17. package/dist/go-http.d.ts +23 -0
  18. package/dist/go-http.js.map +1 -0
  19. package/dist/importador.d.ts +31 -0
  20. package/dist/importador.js.map +1 -0
  21. package/dist/index.d.ts +2 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/java-http.d.ts +23 -0
  24. package/dist/java-http.js.map +1 -0
  25. package/dist/lua-symbols.d.ts +10 -0
  26. package/dist/lua-symbols.js.map +1 -0
  27. package/dist/php-symbols.d.ts +24 -0
  28. package/dist/php-symbols.js.map +1 -0
  29. package/dist/projeto.d.ts +53 -0
  30. package/dist/projeto.js.map +1 -0
  31. package/dist/python-http.d.ts +23 -0
  32. package/dist/python-http.js.map +1 -0
  33. package/dist/rust-http.d.ts +23 -0
  34. package/dist/rust-http.js.map +1 -0
  35. package/dist/tipos.d.ts +3 -0
  36. package/dist/tipos.js.map +1 -0
  37. package/dist/typescript-http.d.ts +35 -0
  38. package/dist/typescript-http.js.map +1 -0
  39. package/docs/AGENT_STARTER.md +102 -0
  40. package/docs/cli.md +119 -0
  41. package/docs/como-ensinar-a-sema-para-ia.md +149 -0
  42. package/docs/deploy.md +70 -0
  43. package/docs/documentacao.md +63 -0
  44. package/docs/env.md +56 -0
  45. package/docs/extensao-vscode.md +45 -0
  46. package/docs/fluxo-pratico-ia-sema.md +177 -0
  47. package/docs/instalacao-e-primeiro-uso.md +112 -0
  48. package/docs/integracao-com-ia.md +101 -0
  49. package/docs/mcp.md +53 -0
  50. package/docs/pagamento-ponta-a-ponta.md +155 -0
  51. package/docs/persistencia-vendor-first.md +145 -0
  52. package/docs/prompt-base-ia-sema.md +104 -0
  53. package/docs/rollback.md +47 -0
  54. package/docs/sintaxe.md +410 -0
  55. package/exemplos/agendamento.sema +106 -0
  56. package/exemplos/assinatura.sema +136 -0
  57. package/exemplos/auditoria.sema +88 -0
  58. package/exemplos/autenticacao.sema +125 -0
  59. package/exemplos/automacao.sema +107 -0
  60. package/exemplos/cadastro_usuario.sema +54 -0
  61. package/exemplos/calculadora.sema +78 -0
  62. package/exemplos/crud_simples.sema +89 -0
  63. package/exemplos/estoque.sema +126 -0
  64. package/exemplos/exportacao.sema +94 -0
  65. package/exemplos/fila.sema +131 -0
  66. package/exemplos/integracao_externa.sema +94 -0
  67. package/exemplos/multi_tenant.sema +140 -0
  68. package/exemplos/notificacao.sema +98 -0
  69. package/exemplos/operacao_estrategia.sema +402 -0
  70. package/exemplos/pagamento.sema +222 -0
  71. package/exemplos/pagamento_dominio.sema +35 -0
  72. package/exemplos/pedido.sema +119 -0
  73. package/exemplos/permissao.sema +121 -0
  74. package/exemplos/persistencia_vendor_first.sema +86 -0
  75. package/exemplos/relatorio.sema +93 -0
  76. package/exemplos/testes_embutidos.sema +45 -0
  77. package/exemplos/tratamento_erro.sema +157 -0
  78. package/exemplos/upload_arquivo.sema +93 -0
  79. package/exemplos/webhook.sema +96 -0
  80. package/llms-full.txt +34 -0
  81. package/llms.txt +17 -0
  82. package/node_modules/@sema/gerador-css/dist/index.d.ts +3 -0
  83. package/node_modules/@sema/gerador-css/dist/index.js +592 -0
  84. package/node_modules/@sema/gerador-css/dist/index.js.map +1 -0
  85. package/node_modules/@sema/gerador-css/package.json +7 -0
  86. package/node_modules/@sema/gerador-dart/dist/index.d.ts +3 -0
  87. package/node_modules/@sema/gerador-dart/dist/index.js +44 -0
  88. package/node_modules/@sema/gerador-dart/dist/index.js.map +1 -0
  89. package/node_modules/@sema/gerador-dart/package.json +7 -0
  90. package/node_modules/@sema/gerador-html/dist/index.d.ts +3 -0
  91. package/node_modules/@sema/gerador-html/dist/index.js +163 -0
  92. package/node_modules/@sema/gerador-html/dist/index.js.map +1 -0
  93. package/node_modules/@sema/gerador-html/package.json +7 -0
  94. package/node_modules/@sema/gerador-javascript/dist/index.d.ts +3 -0
  95. package/node_modules/@sema/gerador-javascript/dist/index.js +421 -0
  96. package/node_modules/@sema/gerador-javascript/dist/index.js.map +1 -0
  97. package/node_modules/@sema/gerador-javascript/package.json +7 -0
  98. package/node_modules/@sema/gerador-lua/dist/index.d.ts +3 -0
  99. package/node_modules/@sema/gerador-lua/dist/index.js +328 -0
  100. package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -0
  101. package/node_modules/@sema/gerador-lua/package.json +7 -0
  102. package/node_modules/@sema/gerador-python/dist/index.d.ts +6 -0
  103. package/node_modules/@sema/gerador-python/dist/index.js +729 -0
  104. package/node_modules/@sema/gerador-python/dist/index.js.map +1 -0
  105. package/node_modules/@sema/gerador-python/package.json +7 -0
  106. package/node_modules/@sema/gerador-typescript/dist/index.d.ts +6 -0
  107. package/node_modules/@sema/gerador-typescript/dist/index.js +793 -0
  108. package/node_modules/@sema/gerador-typescript/dist/index.js.map +1 -0
  109. package/node_modules/@sema/gerador-typescript/package.json +7 -0
  110. package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +125 -0
  111. package/node_modules/@sema/nucleo/dist/ast/tipos.js +2 -0
  112. package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +1 -0
  113. package/node_modules/@sema/nucleo/dist/diagnosticos/index.d.ts +21 -0
  114. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js +12 -0
  115. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +1 -0
  116. package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +9 -0
  117. package/node_modules/@sema/nucleo/dist/formatador/index.js +488 -0
  118. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -0
  119. package/node_modules/@sema/nucleo/dist/index.d.ts +35 -0
  120. package/node_modules/@sema/nucleo/dist/index.js +96 -0
  121. package/node_modules/@sema/nucleo/dist/index.js.map +1 -0
  122. package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +5 -0
  123. package/node_modules/@sema/nucleo/dist/ir/conversor.js +1072 -0
  124. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -0
  125. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +377 -0
  126. package/node_modules/@sema/nucleo/dist/ir/modelos.js +2 -0
  127. package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +1 -0
  128. package/node_modules/@sema/nucleo/dist/lexer/lexer.d.ts +7 -0
  129. package/node_modules/@sema/nucleo/dist/lexer/lexer.js +122 -0
  130. package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +1 -0
  131. package/node_modules/@sema/nucleo/dist/lexer/tokens.d.ts +8 -0
  132. package/node_modules/@sema/nucleo/dist/lexer/tokens.js +82 -0
  133. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +1 -0
  134. package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +9 -0
  135. package/node_modules/@sema/nucleo/dist/parser/parser.js +807 -0
  136. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -0
  137. package/node_modules/@sema/nucleo/dist/persistencia/contratos.d.ts +39 -0
  138. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +294 -0
  139. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +1 -0
  140. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +58 -0
  141. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1912 -0
  142. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -0
  143. package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +104 -0
  144. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +445 -0
  145. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +1 -0
  146. package/node_modules/@sema/nucleo/dist/semantico/seguranca.d.ts +91 -0
  147. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js +258 -0
  148. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +1 -0
  149. package/node_modules/@sema/nucleo/dist/util/arquivos.d.ts +2 -0
  150. package/node_modules/@sema/nucleo/dist/util/arquivos.js +25 -0
  151. package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +1 -0
  152. package/node_modules/@sema/nucleo/package.json +7 -0
  153. package/node_modules/@sema/padroes/dist/index.d.ts +25 -0
  154. package/node_modules/@sema/padroes/dist/index.js +316 -0
  155. package/node_modules/@sema/padroes/dist/index.js.map +1 -0
  156. package/node_modules/@sema/padroes/package.json +7 -0
  157. package/package.json +35 -26
  158. package/semacode-cli-1.3.1.tgz +0 -0
  159. package/src/angular-consumer-standalone.ts +0 -312
  160. package/src/cpp-symbols.ts +0 -82
  161. package/src/docs.ts +0 -535
  162. package/src/dotnet-http.ts +0 -355
  163. package/src/drift.ts +0 -4933
  164. package/src/go-http.ts +0 -118
  165. package/src/importador.ts +0 -3891
  166. package/src/index.ts +0 -5641
  167. package/src/java-http.ts +0 -247
  168. package/src/lua-symbols.ts +0 -114
  169. package/src/php-symbols.ts +0 -462
  170. package/src/projeto.ts +0 -862
  171. package/src/python-http.ts +0 -258
  172. package/src/rust-http.ts +0 -125
  173. package/src/tipos.ts +0 -24
  174. package/src/typescript-http.ts +0 -1076
  175. package/tsconfig.json +0 -20
@@ -0,0 +1,23 @@
1
+ export interface ParametroRotaRust {
2
+ nome: string;
3
+ tipoSema: "Texto" | "Inteiro" | "Decimal" | "Id";
4
+ }
5
+ export interface SimboloRustExtraido {
6
+ simbolo: string;
7
+ retorno?: string;
8
+ parametros: Array<{
9
+ nome: string;
10
+ tipoTexto?: string;
11
+ obrigatorio: boolean;
12
+ }>;
13
+ }
14
+ export interface RotaRustExtraida {
15
+ origem: "rust";
16
+ metodo: string;
17
+ caminho: string;
18
+ simbolo: string;
19
+ parametros: ParametroRotaRust[];
20
+ retorno?: string;
21
+ }
22
+ export declare function extrairSimbolosRust(codigo: string): SimboloRustExtraido[];
23
+ export declare function extrairRotasRust(codigo: string): RotaRustExtraida[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust-http.js","sourceRoot":"","sources":["../src/rust-http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type EstruturaSaida = "flat" | "modulos" | "backend";
2
+ export type FonteLegado = "nestjs" | "fastapi" | "flask" | "nextjs" | "nextjs-consumer" | "react-vite-consumer" | "angular-consumer" | "flutter-consumer" | "firebase" | "typescript" | "python" | "dart" | "lua" | "php" | "dotnet" | "java" | "go" | "rust" | "cpp";
3
+ export type ModoAdocao = "incremental";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tipos.js","sourceRoot":"","sources":["../src/tipos.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import ts from "typescript";
2
+ export interface ParametroRotaTypeScript {
3
+ nome: string;
4
+ tipoSema: "Texto" | "Inteiro" | "Decimal" | "Id";
5
+ }
6
+ export interface RotaTypeScriptExtraida {
7
+ origem: "nextjs" | "firebase";
8
+ metodo: string;
9
+ caminho: string;
10
+ simbolo: string;
11
+ parametros: ParametroRotaTypeScript[];
12
+ }
13
+ export interface CampoInferidoTypeScriptHttp {
14
+ nome: string;
15
+ tipoTexto?: string;
16
+ obrigatorio: boolean;
17
+ }
18
+ export interface ExportacaoTypeScriptHttp {
19
+ corpo?: ts.Block;
20
+ retorno?: string;
21
+ parametros: readonly ts.ParameterDeclaration[];
22
+ declaracao: ts.FunctionLikeDeclarationBase;
23
+ }
24
+ export interface SemanticaHandlerTypeScriptHttp {
25
+ query: CampoInferidoTypeScriptHttp[];
26
+ body: CampoInferidoTypeScriptHttp[];
27
+ bodyTipoTexto?: string;
28
+ response: CampoInferidoTypeScriptHttp[];
29
+ responseTipoTexto?: string;
30
+ statuses: number[];
31
+ errorStatuses: number[];
32
+ }
33
+ export declare function localizarExportacaoTypeScriptHttp(sourceFile: ts.SourceFile, nomeExportado: string): ExportacaoTypeScriptHttp | undefined;
34
+ export declare function inferirSemanticaHandlerTypeScriptHttp(sourceFile: ts.SourceFile, nomeExportado: string): SemanticaHandlerTypeScriptHttp | undefined;
35
+ export declare function extrairRotasTypeScriptHttp(sourceFile: ts.SourceFile, relacaoArquivo: string): RotaTypeScriptExtraida[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-http.js","sourceRoot":"","sources":["../src/typescript-http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ # AGENT_STARTER
2
+
3
+ Use este texto como starter curto para qualquer IA antes de editar `.sema`.
4
+
5
+ Ordem canonica de entrada no repo:
6
+
7
+ 1. `llms.txt`
8
+ 2. `SEMA_BRIEF.md`
9
+ 3. `SEMA_INDEX.json`
10
+ 4. `AGENTS.md`
11
+ 5. `README.md`
12
+
13
+ Roteamento por capacidade:
14
+
15
+ - IA pequena ou gratuita: `llms.txt` -> `SEMA_BRIEF.micro.txt` -> `SEMA_INDEX.json`
16
+ - IA media: `llms.txt` -> `SEMA_BRIEF.curto.txt` -> `SEMA_INDEX.json` -> `README.md`
17
+ - IA grande ou com tool use: `llms-full.txt` -> `SEMA_BRIEF.md` -> `SEMA_INDEX.json` -> `AGENTS.md` -> `README.md`
18
+
19
+ Tres modos de uso da Sema:
20
+
21
+ - projeto novo: modele, valide, compile e verifique antes de subir codigo derivado
22
+ - projeto ja semantizado: inspecione, leia resumo, rode drift e gere contexto antes de editar
23
+ - legado sem Sema: importe, revise o rascunho, formate, valide e use drift como arbitro da adocao incremental
24
+
25
+ Para manter os artefatos gerados da raiz sincronizados:
26
+
27
+ - `sema sync-ai-entrypoints --json`
28
+
29
+ ```text
30
+ Voce esta trabalhando com Sema, um Protocolo de Governanca de Intencao para IA sobre software vivo em backend e front consumer.
31
+
32
+ Importante:
33
+ - a Sema e protocolo de governanca semantica desenhado para IA, nao para ergonomia humana
34
+ - a Sema funciona como camada de navegacao operacional para agente, nao como runtime magico
35
+ - leitura humana e bonus toleravel, nao centro do produto
36
+ - a Sema modela contratos, estados, fluxos, erros, efeitos, garantias, vinculos e execucao
37
+ - a Sema gera codigo e scaffolding real para TypeScript, Python, Dart e Lua
38
+ - a Sema usa `importar` para bootstrap revisavel, nao para contrato final automatico
39
+ - a Sema usa `drift` para medir diferenca entre contrato e codigo vivo
40
+ - a Sema usa `impl` para ligar task a simbolo real do runtime
41
+ - a Sema usa `resumo` e `prompt-curto` para IA pequena ou gratuita
42
+ - a Sema pode servir de base para interfaces graficas elegantes e coerentes
43
+ - a primeira onda consumer oficial agora cobre `Next.js consumer`, `React/Vite consumer`, `Angular consumer` e `flutter-consumer`
44
+ - esses slices oficiais cobrem `consumer bridge + superficies rastreaveis`, nao geracao completa de UI
45
+ - a proxima camada semantica de front (`screen`, `action`, `query`, `form`, `navigation`) esta documentada como roadmap, nao como sintaxe oficial ja suportada
46
+ - trate a Sema como cerebro semantico da aplicacao, nao como gerador magico de front-end pronto
47
+ - nao cobre da Sema persistencia real, runtime ou smoke test automatico; isso continua sendo engenharia viva
48
+ - se a tarefa envolver UI, priorize `appRoutes`, `consumerSurfaces` e `consumerBridges` antes de abrir arquivo aleatorio
49
+ - evite pedir HTML unico solto quando a intencao for testar a Sema de verdade
50
+
51
+ Regras:
52
+ - nao invente sintaxe fora da gramatica e dos exemplos oficiais
53
+ - se a IA for pequena, comece em `sema resumo` e `briefing.min.json`
54
+ - trate `ir --json` como fonte de verdade semantica
55
+ - trate `diagnosticos --json` como fonte de correcao
56
+ - use `sema formatar` como fonte unica de estilo
57
+ - preserve a intencao do contrato
58
+ - nao cobre da Sema adivinhacao de negocio que nao esta no contrato nem no codigo
59
+
60
+ Comandos essenciais:
61
+ - resumo por capacidade: `sema resumo <arquivo-ou-pasta> [--micro|--curto|--medio] [--para <resumo|onboarding|review|mudanca|bug|arquitetura>]`
62
+ - prompt curto: `sema prompt-curto <arquivo-ou-pasta> [--micro|--curto|--medio] [--para <resumo|onboarding|review|mudanca|bug|arquitetura>]`
63
+ - contexto completo do modulo: `sema contexto-ia <arquivo.sema>`
64
+ - estrutura sintatica: `sema ast <arquivo.sema> --json`
65
+ - estrutura semantica: `sema ir <arquivo.sema> --json`
66
+ - validacao: `sema validar <arquivo.sema> --json`
67
+ - diagnosticos: `sema diagnosticos <arquivo.sema> --json`
68
+ - formatacao: `sema formatar <arquivo.sema>`
69
+ - importacao assistida de legado: `sema importar <nestjs|fastapi|flask|nextjs|nextjs-consumer|react-vite-consumer|angular-consumer|flutter-consumer|firebase|typescript|python|dart|lua|dotnet|java|go|rust|cpp> <diretorio> --saida <diretorio>`
70
+ - geracao de codigo: `sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua> --saida <diretorio>`
71
+ - verificacao final: `sema verificar <arquivo-ou-pasta> [--json]`
72
+
73
+ Regra pratica de ouro:
74
+ - se a tarefa pedir codigo derivado, `sema compilar` e obrigatorio
75
+ - se a tarefa partir de projeto que nao nasceu com Sema, `sema importar` deve entrar antes da lapidacao semantica
76
+ - se a tarefa pedir apenas leitura ou correcao sem gerar codigo, `sema compilar` pode ficar fora
77
+
78
+ Antes de editar:
79
+ 1. leia README, docs de IA e um exemplo oficial parecido
80
+ 2. se a IA for pequena, rode `sema resumo <arquivo> --micro`
81
+ 3. se a tarefa pedir contexto mais rico, consulte `drift`, `briefing.min.json` e depois AST/IR
82
+
83
+ Depois de editar:
84
+ 1. rode `sema formatar`
85
+ 2. rode `sema validar --json`
86
+ 3. se houver falha, use `diagnosticos --json`
87
+ 4. se a tarefa pedir codigo derivado, rode `sema compilar`
88
+ 5. feche com `sema verificar <arquivo-ou-pasta> --json`
89
+
90
+ Priorize sempre:
91
+ - exemplos oficiais
92
+ - JSON da CLI
93
+ - consistencia semantica
94
+
95
+ Nao improvise quando faltar contexto.
96
+ ```
97
+
98
+ Documentos de apoio:
99
+
100
+ - [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
101
+ - [prompt-base-ia-sema.md](./prompt-base-ia-sema.md)
102
+ - [fluxo-pratico-ia-sema.md](./fluxo-pratico-ia-sema.md)
package/docs/cli.md ADDED
@@ -0,0 +1,119 @@
1
+ # CLI da Sema
2
+
3
+ ## Papel da CLI
4
+
5
+ A CLI e a interface oficial da Sema para:
6
+
7
+ - validar contratos `.sema`
8
+ - exportar AST e IR
9
+ - medir `drift` entre contrato e codigo vivo
10
+ - importar legado para rascunho revisavel
11
+ - gerar codigo derivado
12
+ - preparar contexto IA-first
13
+ - expor profiles operacionais como `sema author`
14
+ - resolver docs obrigatorias por intencao antes de editar ou operar
15
+ - verificar multiplos alvos de geracao
16
+
17
+ ## Tres modos de operacao
18
+
19
+ Projeto novo:
20
+
21
+ - `sema iniciar`
22
+ - `sema validar`
23
+ - `sema compilar`
24
+ - `sema verificar`
25
+
26
+ Projeto ja semantizado:
27
+
28
+ - `sema inspecionar`
29
+ - `sema resumo`
30
+ - `sema drift`
31
+ - `sema contexto-ia`
32
+
33
+ Adocao incremental:
34
+
35
+ - `sema importar`
36
+ - `sema formatar`
37
+ - `sema validar`
38
+ - `sema drift`
39
+
40
+ ## Persistencia vendor-first
41
+
42
+ A linha atual adiciona uma secao canonica de persistencia no contrato, no semantico, no IR e no formatador, alem de `drift` com escopo real, `impacto`, renomeacao semantica assistida, `verificar` mais coerente nos alvos gerados, match de metodos JS/TS definidos via `Object.assign(...prototype...)`, leitura de `Preferences`/`localStorage`/`sessionStorage`, fallback para `angular-consumer` standalone sem `.routes`, compatibilidade PHP como codigo vivo e limpeza de runtime da CLI publica para reduzir atrito de instalacao no Windows.
43
+
44
+ Cobertura publica:
45
+
46
+ - `postgres`: `table`, `relationship`, `query`, `schema`, capacidades relacionais
47
+ - `mysql`: `table`, `index`, consultas SQL e diferencas operacionais do engine
48
+ - `sqlite`: `table`, `retention`, uso local e edge
49
+ - `mongodb`: `collection`, `document`, `query` em `pipeline`
50
+ - `redis`: `keyspace`, `stream`, `retention`, TTL e superficies de estado
51
+
52
+ ## Drift e codigo vivo
53
+
54
+ `sema drift` agora cruza contrato com recursos reais encontrados em:
55
+
56
+ - codigo de backend
57
+ - codigo Lua usado como runtime ou bridge
58
+ - codigo PHP usado como backend, controller, runtime ou bridge
59
+ - DDL `.sql`
60
+ - schema `.prisma`
61
+ - uso de MongoDB
62
+ - uso de Redis, incluindo keyspaces e streams
63
+
64
+ O objetivo nao e adivinhar tudo; e produzir um score explicavel com lacunas claras.
65
+
66
+ ## Ajuda IA-first
67
+
68
+ - `sema ajuda-ia`
69
+ - `sema starter-ia`
70
+ - `sema author`
71
+ - `sema author exemplo --sensivel --json`
72
+ - `sema resumo <arquivo-ou-pasta> --micro|--curto|--medio`
73
+ - `sema prompt-curto <arquivo-ou-pasta> --micro|--curto|--medio`
74
+ - `sema contexto-ia <arquivo.sema> --saida <diretorio>`
75
+ - `sema sync-ai-entrypoints --json`
76
+ - `sema docs-impacto --intencao <acao> --criar-ausentes --json`
77
+ - `sema finalizar-mudanca --intencao <acao> --doc-lida <caminho> --json`
78
+
79
+ ## Importadores publicos
80
+
81
+ - `nestjs`
82
+ - `fastapi`
83
+ - `flask`
84
+ - `nextjs`
85
+ - `nextjs-consumer`
86
+ - `react-vite-consumer`
87
+ - `angular-consumer`
88
+ - `flutter-consumer`
89
+ - `firebase`
90
+ - `php`
91
+ - `dotnet`
92
+ - `java`
93
+ - `go`
94
+ - `rust`
95
+ - `cpp`
96
+ - `typescript`
97
+ - `python`
98
+ - `dart`
99
+ - `lua`
100
+
101
+ ## Comandos mais usados
102
+
103
+ ```bash
104
+ sema validar <arquivo-ou-pasta> --json
105
+ sema diagnosticos <arquivo.sema> --json
106
+ sema ir <arquivo.sema> --json
107
+ sema author --help
108
+ sema author exemplo --sensivel --json
109
+ sema drift <arquivo-ou-pasta> --json
110
+ sema importar <fonte> <diretorio> --saida <diretorio> --json
111
+ sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
112
+ sema finalizar-mudanca --intencao "fazer deploy" --doc-lida docs/deploy.md --json
113
+ sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua> --saida <diretorio>
114
+ sema verificar <arquivo-ou-pasta> --saida <diretorio>
115
+ ```
116
+
117
+ `sema author --help` lista as regras automaticas gerais do Author. No `--json`, o campo `regrasAutomaticas` entrega essas regras para agentes e fluxos externos aplicarem sem depender de prompt solto.
118
+
119
+ Quando um contrato Author gera `contexto-ia`, `resumo`, `prompt-curto` ou `SEMA_BRIEF`, os artefatos compactos tambem incluem `AUTHOR_RULES_AUTO` e `briefing.min.json.regrasAuthorAutomaticas`, para que uma IA com contexto pequeno aplique o piso editorial sem precisar abrir `ir.json`.
@@ -0,0 +1,149 @@
1
+ # Como Ensinar a Sema para IA
2
+
3
+ Este documento explica como fazer uma IA entender a Sema sem depender de memoria previa do modelo. A estrategia correta nao e presumir que a IA "ja conhece a linguagem", e sim entregar contexto suficiente para ela operar com seguranca.
4
+
5
+ Leia isso do ponto de vista da CLI publica. A IA nao deve assumir que esta dentro do monorepo da Sema, nem que precisa chamar `node pacotes/cli/dist/index.js`.
6
+
7
+ ## Principio central
8
+
9
+ Uma IA entende uma linguagem nova quando recebe quatro camadas de contexto:
10
+
11
+ 1. sintaxe
12
+ 2. semantica
13
+ 3. estrutura intermediaria estavel
14
+ 4. exemplos reais
15
+
16
+ Sem essas quatro camadas, o modelo comeca a adivinhar. E adivinhacao em linguagem de contrato e pedir para nascer bug feio.
17
+
18
+ Antes de qualquer outra coisa, a IA tambem precisa receber a **moldura correta**:
19
+
20
+ - a Sema e um protocolo de governanca de intencao
21
+ - a Sema foi feita para IA, nao para ergonomia humana
22
+ - a Sema nao foi feita para "automatizar tudo"
23
+ - a Sema existe para explicitar, alinhar e verificar contrato contra sistema vivo
24
+ - curadoria humana continua parte da proposta
25
+
26
+ Se a IA errar essa moldura, ela vai cobrar da ferramenta a coisa errada e operar feito um animal apressado.
27
+
28
+ ## Camada 1. Sintaxe
29
+
30
+ A IA precisa saber como a linguagem e escrita.
31
+
32
+ Fontes principais:
33
+
34
+ - [README.md](../README.md)
35
+ - [sintaxe.md](./sintaxe.md)
36
+ - [integracao-com-ia.md](./integracao-com-ia.md)
37
+
38
+ Objetivo dessa camada:
39
+
40
+ - reconhecer blocos validos
41
+ - entender delimitadores
42
+ - nao inventar palavras-chave
43
+ - respeitar a organizacao canonicamente formatada
44
+
45
+ ## Camada 2. Semantica
46
+
47
+ Depois de saber ler, a IA precisa saber o que cada bloco significa.
48
+
49
+ Fontes principais:
50
+
51
+ - [README.md](../README.md)
52
+ - [integracao-com-ia.md](./integracao-com-ia.md)
53
+ - [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
54
+
55
+ Objetivo dessa camada:
56
+
57
+ - distinguir contrato interno de `task`
58
+ - distinguir contrato publico de `route`
59
+ - entender `effects`, `guarantees`, `error`, `state` e `flow`
60
+ - operar na linguagem como especificacao executavel, nao como texto decorativo
61
+ - entender que `importar` e bootstrap
62
+ - entender que `drift` e regua de coerencia contra o runtime
63
+ - entender que `impl` e ponte rastreavel para simbolo vivo
64
+
65
+ ## Camada 3. Estrutura intermediaria estavel
66
+
67
+ Essa e a camada que faz a parada parar de ser um cassino.
68
+
69
+ Em vez de confiar que a IA vai interpretar `.sema` cru de primeira, use a CLI como tradutora oficial da linguagem.
70
+
71
+ Comandos principais:
72
+
73
+ ```bash
74
+ sema resumo arquivo.sema --micro --para onboarding
75
+ sema validar arquivo.sema --json
76
+ sema diagnosticos arquivo.sema --json
77
+ sema ast arquivo.sema --json
78
+ sema ir arquivo.sema --json
79
+ sema verificar arquivo-ou-pasta --json --saida ./.tmp/verificacao-ia
80
+ ```
81
+
82
+ Como cada comando ajuda:
83
+
84
+ - `resumo`: entrega cartao semantico pequeno para IA com janela curta
85
+ - `validar --json`: diz se a base esta semanticamente valida
86
+ - `diagnosticos --json`: devolve erros e avisos como contrato estruturado
87
+ - `ast --json`: mostra a forma sintatica escrita
88
+ - `ir --json`: mostra a forma semantica resolvida
89
+ - `verificar --json`: mostra o estado operacional do projeto
90
+
91
+ Se a IA puder consumir `ir --json`, melhor ainda. E ali que a linguagem fica menos ambigua e mais utilizavel para automacao. Mas nao seja um animal: para modelo pequeno, comece em `resumo` e `briefing.min.json`.
92
+
93
+ ## Camada 4. Exemplos reais
94
+
95
+ Modelo aprende muito por padrao. Por isso, bons exemplos valem quase tanto quanto especificacao.
96
+
97
+ Arquivos recomendados:
98
+
99
+ - [pagamento.sema](../exemplos/pagamento.sema)
100
+ - [pagamento_dominio.sema](../exemplos/pagamento_dominio.sema)
101
+ - [automacao.sema](../exemplos/automacao.sema)
102
+ - [tratamento_erro.sema](../exemplos/tratamento_erro.sema)
103
+ - [crud_simples.sema](../exemplos/crud_simples.sema)
104
+
105
+ O vertical oficial de pagamento deve ser tratado como a referencia principal.
106
+
107
+ ## O que a IA nao deve fazer
108
+
109
+ - inventar palavras-chave fora da gramatica
110
+ - introduzir blocos inexistentes
111
+ - assumir semantica que nao aparece na especificacao
112
+ - tratar draft importado como contrato final so porque veio da CLI
113
+ - tratar a Sema como gerador magico de sistema completo
114
+ - editar `.sema` sem rodar `sema formatar`
115
+ - encerrar alteracao sem consultar `diagnosticos` quando houver falha
116
+
117
+ ## O que a IA deve fazer
118
+
119
+ - usar a gramatica e os exemplos como fonte de estilo
120
+ - usar a IR como fonte de verdade semantica sempre que possivel
121
+ - usar diagnosticos estruturados como guia de correcao
122
+ - rodar o formatador antes de considerar o trabalho pronto
123
+ - validar e verificar a mudanca no mesmo fluxo
124
+
125
+ ## Estrategia recomendada
126
+
127
+ Se voce for instruir uma IA para trabalhar com Sema, entregue o contexto nesta ordem:
128
+
129
+ 1. [README.md](../README.md)
130
+ 2. [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
131
+ 3. [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
132
+ 4. [prompt-base-ia-sema.md](./prompt-base-ia-sema.md)
133
+ 5. `sema resumo --micro` ou `sema resumo --curto`, conforme a capacidade da IA
134
+ 6. `ast --json`, `ir --json` e `diagnosticos --json` do modulo alvo, se a capacidade aguentar
135
+
136
+ Essa ordem faz a IA ir de contexto geral para contexto operacional, em vez de cair direto num arquivo cru e sair chutando.
137
+
138
+ ## Regra de ouro
139
+
140
+ A Sema foi desenhada para ser entendida por IA, mas isso nao significa que a IA vai adivinhar sozinha.
141
+
142
+ Ela entende bem quando recebe:
143
+
144
+ - especificacao
145
+ - exemplos
146
+ - JSON estrutural
147
+ - feedback automatico
148
+
149
+ Sem isso, ate o modelo mais caro vira estagiario emocionado.
package/docs/deploy.md ADDED
@@ -0,0 +1,70 @@
1
+ # Deploy
2
+
3
+ Este runbook governa a publicacao publica da Sema: CLI, MCP, VSIX, instaladores e release assets.
4
+
5
+ ## Pre-condicoes
6
+
7
+ - `sema resumo` executado no projeto antes da mudanca.
8
+ - `sema inspecionar contratos/sema/governanca_ia.sema --json` executado para confirmar o contrato relacionado.
9
+ - `sema drift contratos/sema/governanca_ia.sema --escopo modulo --json` sem diagnosticos bloqueantes.
10
+ - `sema docs-impacto --intencao "<release>" --criar-ausentes --json` executado e todos os docs obrigatorios lidos.
11
+ - `npm whoami` autenticado com uma conta que pode publicar `@semacode/cli` e `@semacode/mcp`.
12
+ - `gh auth status` autenticado com permissao de push e release em `gerlanss/Sema`.
13
+ - Workspace revisado para nao incluir lixo local, caches ou artefatos temporarios fora de `.tmp/`.
14
+
15
+ ## Sequencia segura
16
+
17
+ 1. Escolha uma versao que ainda nao exista no NPM.
18
+ 2. Atualize `package.json`, workspaces, lockfiles, changelog e docs antes de empacotar.
19
+ 3. Rode `npm run build`.
20
+ 4. Rode os testes focados e checagens de release.
21
+ 5. Rode `npm run release:preparar-publica` para gerar `.tmp/release-assets`.
22
+ 6. Publique NPM com `npm run release:publicar-npm`.
23
+ 7. Instale a CLI e o MCP publicados para smoke test.
24
+ 8. Empacote e instale a VSIX localmente para smoke test da extensao.
25
+ 9. Rode `sema finalizar-mudanca` com as docs lidas antes de concluir.
26
+ 10. Commit, push, tag e GitHub Release com os assets gerados.
27
+
28
+ ## Validacao minima
29
+
30
+ ```bash
31
+ npm run build
32
+ npm run format:check
33
+ npm run status:check
34
+ node --import tsx --test --test-name-pattern "docs operacionais|ajuda de ia|mcp cli responde" testes/integracao/cli-json-e-editor.test.ts
35
+ sema validar contratos/sema/governanca_ia.sema --json
36
+ sema drift contratos/sema/governanca_ia.sema --escopo modulo --json
37
+ ```
38
+
39
+ Depois de publicar:
40
+
41
+ ```bash
42
+ npm view @semacode/cli version
43
+ npm view @semacode/mcp version
44
+ npm install -g @semacode/cli@<versao>
45
+ npm install -g @semacode/mcp@<versao>
46
+ sema --version
47
+ sema docs-impacto --intencao "smoke release" --json
48
+ sema-mcp --help
49
+ ```
50
+
51
+ ## Release assets
52
+
53
+ `npm run release:preparar-publica` deve gerar:
54
+
55
+ - `sema-cli-<versao>.tgz`
56
+ - `sema-cli-latest.tgz`
57
+ - `sema-language-tools-<versao>.vsix`
58
+ - `sema-language-tools-latest.vsix`
59
+ - `install-sema.sh`
60
+ - `install-sema.ps1`
61
+ - `SHA256SUMS.txt`
62
+ - `release-notes.md`
63
+
64
+ ## Sinais de parada
65
+
66
+ - NPM ja tem a versao escolhida.
67
+ - `npm whoami` falha.
68
+ - `gh auth status` falha.
69
+ - `sema validar`, `sema drift`, build ou testes falham.
70
+ - `release:preparar-publica` encontra versoes desalinhadas entre root, CLI, MCP e extensao.
@@ -0,0 +1,63 @@
1
+ # Governanca de Documentacao
2
+
3
+ A Sema trata documentacao como parte da mudanca, nao como pos-escrito simpatico para alguem lembrar depois.
4
+
5
+ ## Regra principal
6
+
7
+ Toda IA deve resolver documentacao obrigatoria antes de editar contrato, codigo, configuracao ou executar operacoes como deploy.
8
+
9
+ ```bash
10
+ sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
11
+ ```
12
+
13
+ Se o comando apontar docs ausentes, crie ou preencha essas docs antes da acao. Para criar runbooks base:
14
+
15
+ ```bash
16
+ sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
17
+ ```
18
+
19
+ ## Leitura obrigatoria
20
+
21
+ O resultado de `docs-impacto` traz:
22
+
23
+ - `leituraObrigatoria`: docs, readmes e contratos que devem ser lidos.
24
+ - `docsAusentes`: docs que bloqueiam a acao.
25
+ - `docsCriadas`: docs criadas automaticamente quando autorizado.
26
+ - `bloqueios`: diagnosticos de severidade 4.
27
+
28
+ O conteudo dos documentos existentes vem na resposta para que o agente realmente leia o material antes de agir.
29
+
30
+ ## Finalizacao
31
+
32
+ Antes de responder que terminou, a IA deve chamar:
33
+
34
+ ```bash
35
+ sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/api.md --json
36
+ ```
37
+
38
+ Se faltar leitura ou documentacao, a conclusao deve ser bloqueada.
39
+
40
+ ## Docs que podem nascer automaticamente
41
+
42
+ O Sema cria runbooks base para categorias operacionais:
43
+
44
+ - `docs/deploy.md`
45
+ - `docs/env.md`
46
+ - `docs/rollback.md`
47
+ - `docs/api.md`
48
+ - `docs/auth.md`
49
+ - `docs/seguranca.md`
50
+ - `docs/database.md`
51
+ - `docs/frontend.md`
52
+ - `docs/testes.md`
53
+ - `docs/mcp.md`
54
+ - `docs/documentacao.md`
55
+ - `docs/extensao-vscode.md`
56
+
57
+ Esses arquivos sao esqueletos seguros. Eles devem ser completados com detalhes reais do projeto quando a operacao exigir.
58
+
59
+ ## O que nao fazer
60
+
61
+ - Nao concluir uma mudanca sem rodar o portao documental.
62
+ - Nao usar doc criada automaticamente como evidencia final se ela ainda esta generica.
63
+ - Nao editar codigo sem contrato e sem leitura das docs relacionadas.