@semacode/cli 1.5.16 → 1.5.18

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 (181) hide show
  1. package/AGENTS.md +272 -0
  2. package/LICENSE +22 -0
  3. package/README.md +104 -112
  4. package/SEMA_BRIEF.curto.txt +9 -0
  5. package/SEMA_BRIEF.md +63 -0
  6. package/SEMA_BRIEF.micro.txt +7 -0
  7. package/SEMA_INDEX.json +783 -0
  8. package/dist/angular-consumer-standalone.d.ts +6 -0
  9. package/dist/angular-consumer-standalone.js.map +1 -0
  10. package/dist/cpp-symbols.d.ts +10 -0
  11. package/dist/cpp-symbols.js.map +1 -0
  12. package/dist/docs.d.ts +56 -0
  13. package/dist/docs.js.map +1 -0
  14. package/dist/dotnet-http.d.ts +23 -0
  15. package/dist/dotnet-http.js.map +1 -0
  16. package/dist/drift.d.ts +225 -0
  17. package/dist/drift.js +5 -111
  18. package/dist/drift.js.map +1 -0
  19. package/dist/go-http.d.ts +23 -0
  20. package/dist/go-http.js.map +1 -0
  21. package/dist/importador.d.ts +31 -0
  22. package/dist/importador.js +1 -200
  23. package/dist/importador.js.map +1 -0
  24. package/dist/index.d.ts +2 -0
  25. package/dist/index.js +59 -479
  26. package/dist/index.js.map +1 -0
  27. package/dist/java-http.d.ts +23 -0
  28. package/dist/java-http.js.map +1 -0
  29. package/dist/lua-symbols.d.ts +10 -0
  30. package/dist/lua-symbols.js.map +1 -0
  31. package/dist/php-symbols.d.ts +24 -0
  32. package/dist/php-symbols.js.map +1 -0
  33. package/dist/projeto.d.ts +53 -0
  34. package/dist/projeto.js +0 -20
  35. package/dist/projeto.js.map +1 -0
  36. package/dist/python-http.d.ts +23 -0
  37. package/dist/python-http.js.map +1 -0
  38. package/dist/rust-http.d.ts +23 -0
  39. package/dist/rust-http.js.map +1 -0
  40. package/dist/tipos.d.ts +3 -0
  41. package/dist/tipos.js.map +1 -0
  42. package/dist/typescript-http.d.ts +35 -0
  43. package/dist/typescript-http.js.map +1 -0
  44. package/docs/AGENT_STARTER.md +103 -0
  45. package/docs/cli.md +106 -0
  46. package/docs/como-ensinar-a-sema-para-ia.md +149 -0
  47. package/docs/deploy.md +70 -0
  48. package/docs/documentacao.md +63 -0
  49. package/docs/env.md +56 -0
  50. package/docs/extensao-vscode.md +45 -0
  51. package/docs/fluxo-pratico-ia-sema.md +181 -0
  52. package/docs/instalacao-e-primeiro-uso.md +112 -0
  53. package/docs/integracao-com-ia.md +103 -0
  54. package/docs/mcp.md +51 -0
  55. package/docs/pagamento-ponta-a-ponta.md +165 -0
  56. package/docs/persistencia-vendor-first.md +145 -0
  57. package/docs/prompt-base-ia-sema.md +105 -0
  58. package/docs/rollback.md +47 -0
  59. package/docs/sintaxe.md +212 -0
  60. package/exemplos/agendamento.sema +105 -0
  61. package/exemplos/assinatura.sema +133 -0
  62. package/exemplos/auditoria.sema +89 -0
  63. package/exemplos/autenticacao.sema +125 -0
  64. package/exemplos/automacao.sema +107 -0
  65. package/exemplos/cadastro_usuario.sema +54 -0
  66. package/exemplos/calculadora.sema +78 -0
  67. package/exemplos/crud_simples.sema +89 -0
  68. package/exemplos/estoque.sema +127 -0
  69. package/exemplos/exportacao.sema +94 -0
  70. package/exemplos/fila.sema +130 -0
  71. package/exemplos/integracao_externa.sema +94 -0
  72. package/exemplos/multi_tenant.sema +140 -0
  73. package/exemplos/notificacao.sema +149 -0
  74. package/exemplos/operacao_estrategia.sema +633 -0
  75. package/exemplos/pagamento.sema +434 -0
  76. package/exemplos/pagamento_dominio.sema +35 -0
  77. package/exemplos/pedido.sema +255 -0
  78. package/exemplos/permissao.sema +121 -0
  79. package/exemplos/persistencia_vendor_first.sema +86 -0
  80. package/exemplos/relatorio.sema +93 -0
  81. package/exemplos/replica_analitica_erp.sema +160 -0
  82. package/exemplos/testes_embutidos.sema +45 -0
  83. package/exemplos/tratamento_erro.sema +157 -0
  84. package/exemplos/upload_arquivo.sema +93 -0
  85. package/exemplos/webhook.sema +94 -0
  86. package/llms-full.txt +34 -0
  87. package/llms.txt +17 -0
  88. package/node_modules/@sema/gerador-css/dist/index.d.ts +3 -0
  89. package/node_modules/@sema/gerador-css/dist/index.js +592 -0
  90. package/node_modules/@sema/gerador-css/dist/index.js.map +1 -0
  91. package/node_modules/@sema/gerador-css/package.json +7 -0
  92. package/node_modules/@sema/gerador-dart/dist/index.d.ts +3 -0
  93. package/node_modules/@sema/gerador-dart/dist/index.js +44 -0
  94. package/node_modules/@sema/gerador-dart/dist/index.js.map +1 -0
  95. package/node_modules/@sema/gerador-dart/package.json +7 -0
  96. package/node_modules/@sema/gerador-html/dist/index.d.ts +3 -0
  97. package/node_modules/@sema/gerador-html/dist/index.js +163 -0
  98. package/node_modules/@sema/gerador-html/dist/index.js.map +1 -0
  99. package/node_modules/@sema/gerador-html/package.json +7 -0
  100. package/node_modules/@sema/gerador-javascript/dist/index.d.ts +3 -0
  101. package/node_modules/@sema/gerador-javascript/dist/index.js +421 -0
  102. package/node_modules/@sema/gerador-javascript/dist/index.js.map +1 -0
  103. package/node_modules/@sema/gerador-javascript/package.json +7 -0
  104. package/node_modules/@sema/gerador-lua/dist/index.d.ts +3 -0
  105. package/node_modules/@sema/gerador-lua/dist/index.js +328 -0
  106. package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -0
  107. package/node_modules/@sema/gerador-lua/package.json +7 -0
  108. package/node_modules/@sema/gerador-python/dist/index.d.ts +6 -0
  109. package/node_modules/@sema/gerador-python/dist/index.js +729 -0
  110. package/node_modules/@sema/gerador-python/dist/index.js.map +1 -0
  111. package/node_modules/@sema/gerador-python/package.json +7 -0
  112. package/node_modules/@sema/gerador-typescript/dist/index.d.ts +6 -0
  113. package/node_modules/@sema/gerador-typescript/dist/index.js +793 -0
  114. package/node_modules/@sema/gerador-typescript/dist/index.js.map +1 -0
  115. package/node_modules/@sema/gerador-typescript/package.json +7 -0
  116. package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +123 -0
  117. package/node_modules/@sema/nucleo/dist/ast/tipos.js +2 -0
  118. package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +1 -0
  119. package/node_modules/@sema/nucleo/dist/diagnosticos/index.d.ts +21 -0
  120. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js +12 -0
  121. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +1 -0
  122. package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +9 -0
  123. package/node_modules/@sema/nucleo/dist/formatador/index.js +460 -0
  124. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -0
  125. package/node_modules/@sema/nucleo/dist/index.d.ts +35 -0
  126. package/node_modules/@sema/nucleo/dist/index.js +96 -0
  127. package/node_modules/@sema/nucleo/dist/index.js.map +1 -0
  128. package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +5 -0
  129. package/node_modules/@sema/nucleo/dist/ir/conversor.js +877 -0
  130. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -0
  131. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +345 -0
  132. package/node_modules/@sema/nucleo/dist/ir/modelos.js +2 -0
  133. package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +1 -0
  134. package/node_modules/@sema/nucleo/dist/lexer/lexer.d.ts +7 -0
  135. package/node_modules/@sema/nucleo/dist/lexer/lexer.js +122 -0
  136. package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +1 -0
  137. package/node_modules/@sema/nucleo/dist/lexer/tokens.d.ts +8 -0
  138. package/node_modules/@sema/nucleo/dist/lexer/tokens.js +61 -0
  139. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +1 -0
  140. package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +9 -0
  141. package/node_modules/@sema/nucleo/dist/parser/parser.js +767 -0
  142. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -0
  143. package/node_modules/@sema/nucleo/dist/persistencia/contratos.d.ts +39 -0
  144. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +294 -0
  145. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +1 -0
  146. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +59 -0
  147. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1681 -0
  148. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -0
  149. package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +106 -0
  150. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +475 -0
  151. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +1 -0
  152. package/node_modules/@sema/nucleo/dist/semantico/seguranca.d.ts +91 -0
  153. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js +258 -0
  154. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +1 -0
  155. package/node_modules/@sema/nucleo/dist/util/arquivos.d.ts +2 -0
  156. package/node_modules/@sema/nucleo/dist/util/arquivos.js +25 -0
  157. package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +1 -0
  158. package/node_modules/@sema/nucleo/package.json +7 -0
  159. package/node_modules/@sema/padroes/dist/index.d.ts +25 -0
  160. package/node_modules/@sema/padroes/dist/index.js +316 -0
  161. package/node_modules/@sema/padroes/dist/index.js.map +1 -0
  162. package/node_modules/@sema/padroes/package.json +7 -0
  163. package/package.json +32 -23
  164. package/semacode-cli-1.3.1.tgz +0 -0
  165. package/src/angular-consumer-standalone.ts +0 -312
  166. package/src/cpp-symbols.ts +0 -82
  167. package/src/docs.ts +0 -535
  168. package/src/dotnet-http.ts +0 -355
  169. package/src/drift.ts +0 -4933
  170. package/src/go-http.ts +0 -118
  171. package/src/importador.ts +0 -3891
  172. package/src/index.ts +0 -5641
  173. package/src/java-http.ts +0 -247
  174. package/src/lua-symbols.ts +0 -114
  175. package/src/php-symbols.ts +0 -462
  176. package/src/projeto.ts +0 -862
  177. package/src/python-http.ts +0 -258
  178. package/src/rust-http.ts +0 -125
  179. package/src/tipos.ts +0 -24
  180. package/src/typescript-http.ts +0 -1076
  181. package/tsconfig.json +0 -20
@@ -0,0 +1,93 @@
1
+ module exemplos.upload.arquivo {
2
+ docs {
3
+ resumo: "Upload de arquivos com validacao de tipo, tamanho e processamento."
4
+ }
5
+
6
+ entity Arquivo {
7
+ fields {
8
+ id: Id
9
+ nome: Texto
10
+ tipo_mime: Texto
11
+ tamanho_bytes: Inteiro
12
+ url: Texto
13
+ status: Texto
14
+ enviado_por: Id
15
+ criado_em: Timestamp
16
+ }
17
+ }
18
+
19
+ task iniciar_upload {
20
+ input {
21
+ nome: Texto required
22
+ tipo_mime: Texto required
23
+ tamanho_bytes: Inteiro required
24
+ }
25
+ output {
26
+ upload_id: Id
27
+ url_upload: Texto
28
+ }
29
+ rules {
30
+ tipo_mime em [image/jpeg, image/png, application/pdf, text/csv]
31
+ tamanho_bytes <= 10485760
32
+ nome deve_ser preenchido
33
+ }
34
+ effects {
35
+ consulta storage criticidade = alta
36
+ persistencia Arquivo
37
+ auditoria upload_iniciado
38
+ }
39
+ guarantees {
40
+ upload_id existe
41
+ url_upload existe
42
+ }
43
+ error {
44
+ tipo_nao_permitido: "Tipo de arquivo nao aceito."
45
+ tamanho_excedido: "Arquivo excede o limite de 10MB."
46
+ storage_indisponivel: "Servico de armazenamento indisponivel."
47
+ }
48
+ tests {
49
+ caso "inicia upload de imagem" {
50
+ given { nome: "foto.jpg" tipo_mime: "image/jpeg" tamanho_bytes: 512000 }
51
+ expect { sucesso: verdadeiro }
52
+ }
53
+ caso "rejeita arquivo muito grande" {
54
+ given { nome: "video.mp4" tipo_mime: "video/mp4" tamanho_bytes: 20971520 }
55
+ expect { sucesso: falso }
56
+ error { tipo: "tamanho_excedido" }
57
+ }
58
+ }
59
+ }
60
+
61
+ task confirmar_upload {
62
+ input {
63
+ upload_id: Id required
64
+ }
65
+ output {
66
+ arquivo: Arquivo
67
+ }
68
+ rules {
69
+ upload_id deve_ser valido
70
+ }
71
+ effects {
72
+ consulta storage por upload_id criticidade = alta
73
+ persistencia Arquivo
74
+ evento arquivo_disponivel criticidade = baixa
75
+ auditoria upload_confirmado
76
+ }
77
+ state ciclo_arquivo {
78
+ transitions {
79
+ PENDENTE -> DISPONIVEL
80
+ }
81
+ }
82
+ guarantees {
83
+ arquivo existe
84
+ arquivo.url existe
85
+ }
86
+ tests {
87
+ caso "confirma upload realizado" {
88
+ given { upload_id: "upl_1" }
89
+ expect { sucesso: verdadeiro }
90
+ }
91
+ }
92
+ }
93
+ }
@@ -0,0 +1,94 @@
1
+ module exemplos.webhook {
2
+ docs {
3
+ resumo: "Recepcao, validacao e reenvio de eventos via webhook."
4
+ }
5
+
6
+ entity EventoWebhook {
7
+ fields {
8
+ id: Id
9
+ origem: Texto
10
+ tipo: Texto
11
+ payload: Objeto
12
+ status: Texto
13
+ tentativas: Inteiro
14
+ recebido_em: Timestamp
15
+ processado_em: Timestamp
16
+ }
17
+ }
18
+
19
+ task receber_webhook {
20
+ input {
21
+ origem: Texto required
22
+ tipo: Texto required
23
+ payload: Objeto required
24
+ assinatura: Texto required
25
+ }
26
+ output {
27
+ evento_id: Id
28
+ }
29
+ rules {
30
+ assinatura deve_ser valida para payload
31
+ origem deve_ser permitida
32
+ tipo deve_ser preenchido
33
+ }
34
+ effects {
35
+ persistencia EventoWebhook
36
+ evento webhook_recebido criticidade = media
37
+ auditoria recepcao_webhook
38
+ }
39
+ state ciclo_webhook {
40
+ transitions {
41
+ RECEBIDO -> EM_PROCESSAMENTO
42
+ }
43
+ }
44
+ guarantees {
45
+ evento_id existe
46
+ }
47
+ error {
48
+ assinatura_invalida: "Assinatura do webhook nao confere."
49
+ origem_nao_permitida: "Origem do webhook nao esta na lista de permitidos."
50
+ }
51
+ tests {
52
+ caso "recebe webhook valido" {
53
+ given { origem: "stripe" tipo: "payment.succeeded" payload: "payload_ok" assinatura: "sig_ok" }
54
+ expect { sucesso: verdadeiro }
55
+ }
56
+ caso "rejeita assinatura invalida" {
57
+ given { origem: "stripe" tipo: "payment.succeeded" payload: "payload_ok" assinatura: "sig_errada" }
58
+ expect { sucesso: falso }
59
+ error { tipo: "assinatura_invalida" }
60
+ }
61
+ }
62
+ }
63
+
64
+ task reenviar_webhook {
65
+ input {
66
+ evento_id: Id required
67
+ }
68
+ output {
69
+ protocolo: Id
70
+ }
71
+ rules {
72
+ evento_id deve_ser valido
73
+ }
74
+ effects {
75
+ consulta EventoWebhook por evento_id
76
+ persistencia EventoWebhook
77
+ evento webhook_reenviado
78
+ auditoria reenvio_webhook
79
+ }
80
+ guarantees {
81
+ protocolo existe
82
+ }
83
+ error {
84
+ limite_tentativas: "Numero maximo de tentativas atingido."
85
+ evento_ja_processado: "Este evento ja foi processado com sucesso."
86
+ }
87
+ tests {
88
+ caso "reenvia evento falho" {
89
+ given { evento_id: "evt_1" }
90
+ expect { sucesso: verdadeiro }
91
+ }
92
+ }
93
+ }
94
+ }
package/llms-full.txt ADDED
@@ -0,0 +1,34 @@
1
+ Sema is an AI-first semantic language and tooling stack for explicit software intent, drift analysis, and safer intervention in live backend systems.
2
+
3
+ This repository is not optimized for human-first reading. It is optimized for AI agents that need compressed, canonical semantic context.
4
+
5
+ Canonical entrypoints in the repository root:
6
+ 1. `llms.txt`
7
+ 2. `SEMA_BRIEF.md`
8
+ 3. `SEMA_INDEX.json`
9
+ 4. `AGENTS.md`
10
+ 5. `README.md`
11
+ 6. `docs/AGENT_STARTER.md`
12
+
13
+ Capacity routing:
14
+ - small/free AI: `llms.txt` -> `SEMA_BRIEF.micro.txt` -> `SEMA_INDEX.json` -> `AGENTS.md`
15
+ - medium AI: `llms.txt` -> `SEMA_BRIEF.curto.txt` -> `SEMA_INDEX.json` -> `AGENTS.md` -> `README.md`
16
+ - large/tool-using AI: `llms-full.txt` -> `SEMA_BRIEF.md` -> `SEMA_INDEX.json` -> `AGENTS.md` -> `README.md`
17
+
18
+ Source-of-truth order:
19
+ 1. root Sema artifacts
20
+ 2. CLI JSON outputs
21
+ 3. official docs
22
+ 4. official examples
23
+ 5. raw implementation code
24
+
25
+ Useful commands:
26
+ - `sema resumo <arquivo-ou-pasta> --micro --para mudanca`
27
+ - `sema prompt-curto <arquivo-ou-pasta> --curto --para review`
28
+ - `sema drift <arquivo-ou-pasta> --json`
29
+ - `sema contexto-ia <arquivo.sema> --saida ./.tmp/contexto --json`
30
+ - `sema validar <arquivo-ou-pasta> --json`
31
+ - `sema verificar <arquivo-ou-pasta> --json`
32
+
33
+ Do not ask the model to infer semantics that are already available in Sema artifacts.
34
+ Do not start from raw source code if `SEMA_BRIEF`, `SEMA_INDEX`, `drift`, or `briefing` are available.
package/llms.txt ADDED
@@ -0,0 +1,17 @@
1
+ Sema is an AI-first semantic language and tooling stack for backend intent.
2
+
3
+ This repository is not human-first. Use the canonical AI entrypoints before raw code.
4
+
5
+ Read in this order:
6
+ 1. SEMA_BRIEF.micro.txt or SEMA_BRIEF.md
7
+ 2. SEMA_INDEX.json
8
+ 3. AGENTS.md
9
+ 4. README.md
10
+
11
+ Capacity routing:
12
+ - small models: llms.txt -> SEMA_BRIEF.micro.txt -> SEMA_INDEX.json
13
+ - medium models: llms.txt -> SEMA_BRIEF.curto.txt -> SEMA_INDEX.json -> README.md
14
+ - large models: llms-full.txt -> SEMA_BRIEF.md -> SEMA_INDEX.json -> README.md
15
+
16
+ Prefer Sema artifacts over raw source code when both exist.
17
+ Prefer `drift`, `briefing`, `ir`, and `diagnosticos` over guesswork.
@@ -0,0 +1,3 @@
1
+ import type { IrModulo } from "@sema/nucleo";
2
+ import { type ArquivoGerado } from "@sema/padroes";
3
+ export declare function gerarCss(modulo: IrModulo): ArquivoGerado[];