@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.
- package/AGENTS.md +272 -0
- package/LICENSE +22 -0
- package/SEMA_BRIEF.curto.txt +9 -0
- package/SEMA_BRIEF.md +70 -0
- package/SEMA_BRIEF.micro.txt +7 -0
- package/SEMA_INDEX.json +921 -0
- package/dist/angular-consumer-standalone.d.ts +6 -0
- package/dist/angular-consumer-standalone.js.map +1 -0
- package/dist/cpp-symbols.d.ts +10 -0
- package/dist/cpp-symbols.js.map +1 -0
- package/dist/docs.d.ts +56 -0
- package/dist/docs.js.map +1 -0
- package/dist/dotnet-http.d.ts +23 -0
- package/dist/dotnet-http.js.map +1 -0
- package/dist/drift.d.ts +225 -0
- package/dist/drift.js.map +1 -0
- package/dist/go-http.d.ts +23 -0
- package/dist/go-http.js.map +1 -0
- package/dist/importador.d.ts +31 -0
- package/dist/importador.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js.map +1 -0
- package/dist/java-http.d.ts +23 -0
- package/dist/java-http.js.map +1 -0
- package/dist/lua-symbols.d.ts +10 -0
- package/dist/lua-symbols.js.map +1 -0
- package/dist/php-symbols.d.ts +24 -0
- package/dist/php-symbols.js.map +1 -0
- package/dist/projeto.d.ts +53 -0
- package/dist/projeto.js.map +1 -0
- package/dist/python-http.d.ts +23 -0
- package/dist/python-http.js.map +1 -0
- package/dist/rust-http.d.ts +23 -0
- package/dist/rust-http.js.map +1 -0
- package/dist/tipos.d.ts +3 -0
- package/dist/tipos.js.map +1 -0
- package/dist/typescript-http.d.ts +35 -0
- package/dist/typescript-http.js.map +1 -0
- package/docs/AGENT_STARTER.md +102 -0
- package/docs/cli.md +119 -0
- package/docs/como-ensinar-a-sema-para-ia.md +149 -0
- package/docs/deploy.md +70 -0
- package/docs/documentacao.md +63 -0
- package/docs/env.md +56 -0
- package/docs/extensao-vscode.md +45 -0
- package/docs/fluxo-pratico-ia-sema.md +177 -0
- package/docs/instalacao-e-primeiro-uso.md +112 -0
- package/docs/integracao-com-ia.md +101 -0
- package/docs/mcp.md +53 -0
- package/docs/pagamento-ponta-a-ponta.md +155 -0
- package/docs/persistencia-vendor-first.md +145 -0
- package/docs/prompt-base-ia-sema.md +104 -0
- package/docs/rollback.md +47 -0
- package/docs/sintaxe.md +410 -0
- package/exemplos/agendamento.sema +106 -0
- package/exemplos/assinatura.sema +136 -0
- package/exemplos/auditoria.sema +88 -0
- package/exemplos/autenticacao.sema +125 -0
- package/exemplos/automacao.sema +107 -0
- package/exemplos/cadastro_usuario.sema +54 -0
- package/exemplos/calculadora.sema +78 -0
- package/exemplos/crud_simples.sema +89 -0
- package/exemplos/estoque.sema +126 -0
- package/exemplos/exportacao.sema +94 -0
- package/exemplos/fila.sema +131 -0
- package/exemplos/integracao_externa.sema +94 -0
- package/exemplos/multi_tenant.sema +140 -0
- package/exemplos/notificacao.sema +98 -0
- package/exemplos/operacao_estrategia.sema +402 -0
- package/exemplos/pagamento.sema +222 -0
- package/exemplos/pagamento_dominio.sema +35 -0
- package/exemplos/pedido.sema +119 -0
- package/exemplos/permissao.sema +121 -0
- package/exemplos/persistencia_vendor_first.sema +86 -0
- package/exemplos/relatorio.sema +93 -0
- package/exemplos/testes_embutidos.sema +45 -0
- package/exemplos/tratamento_erro.sema +157 -0
- package/exemplos/upload_arquivo.sema +93 -0
- package/exemplos/webhook.sema +96 -0
- package/llms-full.txt +34 -0
- package/llms.txt +17 -0
- package/node_modules/@sema/gerador-css/dist/index.d.ts +3 -0
- package/node_modules/@sema/gerador-css/dist/index.js +592 -0
- package/node_modules/@sema/gerador-css/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-css/package.json +7 -0
- package/node_modules/@sema/gerador-dart/dist/index.d.ts +3 -0
- package/node_modules/@sema/gerador-dart/dist/index.js +44 -0
- package/node_modules/@sema/gerador-dart/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-dart/package.json +7 -0
- package/node_modules/@sema/gerador-html/dist/index.d.ts +3 -0
- package/node_modules/@sema/gerador-html/dist/index.js +163 -0
- package/node_modules/@sema/gerador-html/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-html/package.json +7 -0
- package/node_modules/@sema/gerador-javascript/dist/index.d.ts +3 -0
- package/node_modules/@sema/gerador-javascript/dist/index.js +421 -0
- package/node_modules/@sema/gerador-javascript/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-javascript/package.json +7 -0
- package/node_modules/@sema/gerador-lua/dist/index.d.ts +3 -0
- package/node_modules/@sema/gerador-lua/dist/index.js +328 -0
- package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-lua/package.json +7 -0
- package/node_modules/@sema/gerador-python/dist/index.d.ts +6 -0
- package/node_modules/@sema/gerador-python/dist/index.js +729 -0
- package/node_modules/@sema/gerador-python/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-python/package.json +7 -0
- package/node_modules/@sema/gerador-typescript/dist/index.d.ts +6 -0
- package/node_modules/@sema/gerador-typescript/dist/index.js +793 -0
- package/node_modules/@sema/gerador-typescript/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-typescript/package.json +7 -0
- package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +125 -0
- package/node_modules/@sema/nucleo/dist/ast/tipos.js +2 -0
- package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/index.d.ts +21 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/index.js +12 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +9 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.js +488 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/index.d.ts +35 -0
- package/node_modules/@sema/nucleo/dist/index.js +96 -0
- package/node_modules/@sema/nucleo/dist/index.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +5 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.js +1072 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +377 -0
- package/node_modules/@sema/nucleo/dist/ir/modelos.js +2 -0
- package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/lexer/lexer.d.ts +7 -0
- package/node_modules/@sema/nucleo/dist/lexer/lexer.js +122 -0
- package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/lexer/tokens.d.ts +8 -0
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js +82 -0
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +9 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.js +807 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -0
- 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 +58 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1912 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +104 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +445 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/seguranca.d.ts +91 -0
- package/node_modules/@sema/nucleo/dist/semantico/seguranca.js +258 -0
- package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/util/arquivos.d.ts +2 -0
- package/node_modules/@sema/nucleo/dist/util/arquivos.js +25 -0
- package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +1 -0
- package/node_modules/@sema/nucleo/package.json +7 -0
- package/node_modules/@sema/padroes/dist/index.d.ts +25 -0
- package/node_modules/@sema/padroes/dist/index.js +316 -0
- package/node_modules/@sema/padroes/dist/index.js.map +1 -0
- package/node_modules/@sema/padroes/package.json +7 -0
- package/package.json +35 -26
- package/semacode-cli-1.3.1.tgz +0 -0
- package/src/angular-consumer-standalone.ts +0 -312
- package/src/cpp-symbols.ts +0 -82
- package/src/docs.ts +0 -535
- package/src/dotnet-http.ts +0 -355
- package/src/drift.ts +0 -4933
- package/src/go-http.ts +0 -118
- package/src/importador.ts +0 -3891
- package/src/index.ts +0 -5641
- package/src/java-http.ts +0 -247
- package/src/lua-symbols.ts +0 -114
- package/src/php-symbols.ts +0 -462
- package/src/projeto.ts +0 -862
- package/src/python-http.ts +0 -258
- package/src/rust-http.ts +0 -125
- package/src/tipos.ts +0 -24
- package/src/typescript-http.ts +0 -1076
- 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,96 @@
|
|
|
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: {} assinatura: "sig_ok" }
|
|
54
|
+
expect { sucesso: verdadeiro }
|
|
55
|
+
}
|
|
56
|
+
caso "rejeita assinatura invalida" {
|
|
57
|
+
given { origem: "stripe" tipo: "payment.succeeded" payload: {} 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
|
+
evento.tentativas < 5
|
|
74
|
+
evento.status em [FALHOU, PENDENTE]
|
|
75
|
+
}
|
|
76
|
+
effects {
|
|
77
|
+
consulta EventoWebhook por evento_id
|
|
78
|
+
persistencia EventoWebhook
|
|
79
|
+
evento webhook_reenviado
|
|
80
|
+
auditoria reenvio_webhook
|
|
81
|
+
}
|
|
82
|
+
guarantees {
|
|
83
|
+
protocolo existe
|
|
84
|
+
}
|
|
85
|
+
error {
|
|
86
|
+
limite_tentativas: "Numero maximo de tentativas atingido."
|
|
87
|
+
evento_ja_processado: "Este evento ja foi processado com sucesso."
|
|
88
|
+
}
|
|
89
|
+
tests {
|
|
90
|
+
caso "reenvia evento falho" {
|
|
91
|
+
given { evento_id: "evt_1" }
|
|
92
|
+
expect { sucesso: verdadeiro }
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
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.
|