@semacode/cli 1.5.18 → 1.5.19

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 (93) hide show
  1. package/AGENTS.md +268 -260
  2. package/LICENSE +22 -22
  3. package/README.md +144 -104
  4. package/SEMA_BRIEF.curto.txt +7 -5
  5. package/SEMA_BRIEF.md +60 -4
  6. package/SEMA_BRIEF.micro.txt +6 -4
  7. package/SEMA_INDEX.json +917 -41
  8. package/dist/controleComercialSupabase.d.ts +326 -0
  9. package/dist/controleComercialSupabase.js +310 -0
  10. package/dist/controleComercialSupabase.js.map +1 -0
  11. package/dist/docs.js +48 -20
  12. package/dist/docs.js.map +1 -1
  13. package/dist/drift.d.ts +5 -3
  14. package/dist/drift.js +123 -14
  15. package/dist/drift.js.map +1 -1
  16. package/dist/index.js +1889 -38
  17. package/dist/index.js.map +1 -1
  18. package/dist/mcpRemoto.d.ts +32 -0
  19. package/dist/mcpRemoto.js +61 -0
  20. package/dist/mcpRemoto.js.map +1 -0
  21. package/dist/projeto.js +3 -1
  22. package/dist/projeto.js.map +1 -1
  23. package/docs/AGENT_STARTER.md +103 -97
  24. package/docs/cli.md +175 -106
  25. package/docs/como-ensinar-a-sema-para-ia.md +41 -35
  26. package/docs/deploy.md +231 -43
  27. package/docs/documentacao.md +61 -36
  28. package/docs/env.md +105 -56
  29. package/docs/extensao-vscode.md +12 -4
  30. package/docs/fluxo-pratico-ia-sema.md +182 -176
  31. package/docs/instalacao-e-primeiro-uso.md +52 -30
  32. package/docs/integracao-com-ia.md +108 -101
  33. package/docs/mcp.md +292 -51
  34. package/docs/pagamento-ponta-a-ponta.md +34 -28
  35. package/docs/persistencia-vendor-first.md +11 -5
  36. package/docs/prompt-base-ia-sema.md +13 -7
  37. package/docs/rollback.md +17 -15
  38. package/docs/sintaxe.md +180 -174
  39. package/exemplos/agendamento.sema +105 -105
  40. package/exemplos/assinatura.sema +133 -133
  41. package/exemplos/auditoria.sema +89 -89
  42. package/exemplos/autenticacao.sema +125 -125
  43. package/exemplos/author_obra_comum.sema +294 -0
  44. package/exemplos/author_tema_sensivel.sema +264 -0
  45. package/exemplos/automacao.sema +107 -107
  46. package/exemplos/cadastro_usuario.sema +54 -54
  47. package/exemplos/calculadora.sema +78 -78
  48. package/exemplos/crud_simples.sema +89 -89
  49. package/exemplos/estoque.sema +127 -127
  50. package/exemplos/exportacao.sema +94 -94
  51. package/exemplos/fila.sema +130 -130
  52. package/exemplos/integracao_externa.sema +94 -94
  53. package/exemplos/multi_tenant.sema +140 -140
  54. package/exemplos/notificacao.sema +149 -149
  55. package/exemplos/operacao_estrategia.sema +633 -633
  56. package/exemplos/pagamento.sema +434 -434
  57. package/exemplos/pagamento_dominio.sema +35 -35
  58. package/exemplos/pedido.sema +255 -255
  59. package/exemplos/permissao.sema +121 -121
  60. package/exemplos/persistencia_vendor_first.sema +86 -86
  61. package/exemplos/profile_game.sema +114 -0
  62. package/exemplos/profile_legal.sema +105 -0
  63. package/exemplos/profile_ops.sema +110 -0
  64. package/exemplos/profile_research.sema +104 -0
  65. package/exemplos/profile_software.sema +123 -0
  66. package/exemplos/profile_workflow_n8n.sema +99 -0
  67. package/exemplos/relatorio.sema +93 -93
  68. package/exemplos/replica_analitica_erp.sema +160 -160
  69. package/exemplos/testes_embutidos.sema +45 -45
  70. package/exemplos/tratamento_erro.sema +157 -157
  71. package/exemplos/upload_arquivo.sema +93 -93
  72. package/exemplos/webhook.sema +94 -94
  73. package/llms-full.txt +34 -34
  74. package/llms.txt +17 -17
  75. package/node_modules/@sema/gerador-css/dist/index.js +563 -563
  76. package/node_modules/@sema/gerador-css/package.json +1 -1
  77. package/node_modules/@sema/gerador-dart/package.json +1 -1
  78. package/node_modules/@sema/gerador-html/dist/index.js +90 -90
  79. package/node_modules/@sema/gerador-html/package.json +1 -1
  80. package/node_modules/@sema/gerador-javascript/dist/index.js +92 -92
  81. package/node_modules/@sema/gerador-javascript/package.json +1 -1
  82. package/node_modules/@sema/gerador-lua/dist/index.js +53 -53
  83. package/node_modules/@sema/gerador-lua/package.json +1 -1
  84. package/node_modules/@sema/gerador-python/dist/index.js +122 -96
  85. package/node_modules/@sema/gerador-python/dist/index.js.map +1 -1
  86. package/node_modules/@sema/gerador-python/package.json +1 -1
  87. package/node_modules/@sema/gerador-typescript/dist/index.js +153 -153
  88. package/node_modules/@sema/gerador-typescript/package.json +1 -1
  89. package/node_modules/@sema/nucleo/dist/formatador/index.js +12 -4
  90. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
  91. package/node_modules/@sema/nucleo/package.json +1 -1
  92. package/node_modules/@sema/padroes/package.json +1 -1
  93. package/package.json +11 -11
@@ -1,78 +1,78 @@
1
- module exemplos.calculadora {
2
- docs {
3
- resumo: "Operacoes aritmeticas simples com garantias e testes."
4
- }
5
-
6
- comments {
7
- observacao: "Exemplo base para demonstrar tarefas semanticas puras."
8
- }
9
-
10
- task somar {
11
- input {
12
- a: Numero required
13
- b: Numero required
14
- }
15
- output {
16
- resultado: Numero
17
- }
18
- rules {
19
- a deve_ser numero_valido
20
- b deve_ser numero_valido
21
- }
22
- effects {
23
- auditoria operacao soma
24
- }
25
- guarantees {
26
- resultado existe
27
- }
28
- error {
29
- entrada_invalida: "Os valores precisam ser numericos."
30
- }
31
- tests {
32
- caso "soma basica" {
33
- given {
34
- a: 2
35
- b: 3
36
- }
37
-
38
- expect {
39
- sucesso: verdadeiro
40
- }
41
- }
42
- }
43
- }
44
-
45
- task dividir {
46
- input {
47
- dividendo: Numero required
48
- divisor: Numero required
49
- }
50
- output {
51
- resultado: Numero
52
- }
53
- rules {
54
- divisor deve_ser diferente_de_zero
55
- }
56
- effects {
57
- auditoria operacao divisao
58
- }
59
- guarantees {
60
- resultado existe
61
- }
62
- error {
63
- divisor_zero: "Nao e permitido dividir por zero."
64
- }
65
- tests {
66
- caso "divisao valida" {
67
- given {
68
- dividendo: 10
69
- divisor: 2
70
- }
71
-
72
- expect {
73
- sucesso: verdadeiro
74
- }
75
- }
76
- }
77
- }
78
- }
1
+ module exemplos.calculadora {
2
+ docs {
3
+ resumo: "Operacoes aritmeticas simples com garantias e testes."
4
+ }
5
+
6
+ comments {
7
+ observacao: "Exemplo base para demonstrar tarefas semanticas puras."
8
+ }
9
+
10
+ task somar {
11
+ input {
12
+ a: Numero required
13
+ b: Numero required
14
+ }
15
+ output {
16
+ resultado: Numero
17
+ }
18
+ rules {
19
+ a deve_ser numero_valido
20
+ b deve_ser numero_valido
21
+ }
22
+ effects {
23
+ auditoria operacao soma
24
+ }
25
+ guarantees {
26
+ resultado existe
27
+ }
28
+ error {
29
+ entrada_invalida: "Os valores precisam ser numericos."
30
+ }
31
+ tests {
32
+ caso "soma basica" {
33
+ given {
34
+ a: 2
35
+ b: 3
36
+ }
37
+
38
+ expect {
39
+ sucesso: verdadeiro
40
+ }
41
+ }
42
+ }
43
+ }
44
+
45
+ task dividir {
46
+ input {
47
+ dividendo: Numero required
48
+ divisor: Numero required
49
+ }
50
+ output {
51
+ resultado: Numero
52
+ }
53
+ rules {
54
+ divisor deve_ser diferente_de_zero
55
+ }
56
+ effects {
57
+ auditoria operacao divisao
58
+ }
59
+ guarantees {
60
+ resultado existe
61
+ }
62
+ error {
63
+ divisor_zero: "Nao e permitido dividir por zero."
64
+ }
65
+ tests {
66
+ caso "divisao valida" {
67
+ given {
68
+ dividendo: 10
69
+ divisor: 2
70
+ }
71
+
72
+ expect {
73
+ sucesso: verdadeiro
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
@@ -1,89 +1,89 @@
1
- module exemplos.crud.simples {
2
- entity Produto {
3
- fields {
4
- id: Id
5
- nome: Texto
6
- preco: Decimal
7
- ativo: Booleano
8
- }
9
- }
10
-
11
- task criar_produto {
12
- input {
13
- nome: Texto required
14
- preco: Decimal required
15
- }
16
- output {
17
- produto: Produto
18
- }
19
- rules {
20
- nome deve_ser preenchido
21
- preco deve_ser positivo
22
- }
23
- effects {
24
- persistencia Produto
25
- auditoria produto_criado
26
- }
27
- guarantees {
28
- produto existe
29
- }
30
- tests {
31
- caso "cria produto" {
32
- given {
33
- nome: "Caneca"
34
- preco: 39.9
35
- }
36
-
37
- expect {
38
- sucesso: verdadeiro
39
- }
40
- }
41
- }
42
- }
43
-
44
- task atualizar_produto {
45
- input {
46
- id: Id required
47
- nome: Texto
48
- preco: Decimal
49
- }
50
- output {
51
- produto: Produto
52
- }
53
- rules {
54
- id deve_ser valido
55
- }
56
- effects {
57
- persistencia Produto
58
- auditoria produto_atualizado
59
- }
60
- guarantees {
61
- produto existe
62
- }
63
- tests {
64
- caso "atualiza produto" {
65
- given {
66
- id: "prod_1"
67
- }
68
-
69
- expect {
70
- sucesso: verdadeiro
71
- }
72
- }
73
- }
74
- }
75
-
76
- route produtos {
77
- metodo: POST
78
- caminho: /produtos
79
- task: criar_produto
80
- finalidade: cadastro_produto
81
- input {
82
- nome: Texto
83
- preco: Decimal
84
- }
85
- output {
86
- produto: Produto
87
- }
88
- }
89
- }
1
+ module exemplos.crud.simples {
2
+ entity Produto {
3
+ fields {
4
+ id: Id
5
+ nome: Texto
6
+ preco: Decimal
7
+ ativo: Booleano
8
+ }
9
+ }
10
+
11
+ task criar_produto {
12
+ input {
13
+ nome: Texto required
14
+ preco: Decimal required
15
+ }
16
+ output {
17
+ produto: Produto
18
+ }
19
+ rules {
20
+ nome deve_ser preenchido
21
+ preco deve_ser positivo
22
+ }
23
+ effects {
24
+ persistencia Produto
25
+ auditoria produto_criado
26
+ }
27
+ guarantees {
28
+ produto existe
29
+ }
30
+ tests {
31
+ caso "cria produto" {
32
+ given {
33
+ nome: "Caneca"
34
+ preco: 39.9
35
+ }
36
+
37
+ expect {
38
+ sucesso: verdadeiro
39
+ }
40
+ }
41
+ }
42
+ }
43
+
44
+ task atualizar_produto {
45
+ input {
46
+ id: Id required
47
+ nome: Texto
48
+ preco: Decimal
49
+ }
50
+ output {
51
+ produto: Produto
52
+ }
53
+ rules {
54
+ id deve_ser valido
55
+ }
56
+ effects {
57
+ persistencia Produto
58
+ auditoria produto_atualizado
59
+ }
60
+ guarantees {
61
+ produto existe
62
+ }
63
+ tests {
64
+ caso "atualiza produto" {
65
+ given {
66
+ id: "prod_1"
67
+ }
68
+
69
+ expect {
70
+ sucesso: verdadeiro
71
+ }
72
+ }
73
+ }
74
+ }
75
+
76
+ route produtos {
77
+ metodo: POST
78
+ caminho: /produtos
79
+ task: criar_produto
80
+ finalidade: cadastro_produto
81
+ input {
82
+ nome: Texto
83
+ preco: Decimal
84
+ }
85
+ output {
86
+ produto: Produto
87
+ }
88
+ }
89
+ }
@@ -1,127 +1,127 @@
1
- module exemplos.estoque {
2
- docs {
3
- resumo: "Controle de estoque com reserva, entrada e saida de produtos."
4
- }
5
-
6
- entity ItemEstoque {
7
- fields {
8
- id: Id
9
- produto_id: Id
10
- quantidade: Inteiro
11
- quantidade_reservada: Inteiro
12
- localizacao: Texto
13
- }
14
- }
15
-
16
- entity MovimentacaoEstoque {
17
- fields {
18
- id: Id
19
- produto_id: Id
20
- tipo: Texto
21
- quantidade: Inteiro
22
- motivo: Texto
23
- realizada_em: Timestamp
24
- }
25
- }
26
-
27
- task reservar_estoque {
28
- input {
29
- produto_id: Id required
30
- quantidade: Inteiro required
31
- pedido_id: Id required
32
- }
33
- output {
34
- reserva_id: Id
35
- quantidade_reservada: Inteiro
36
- }
37
- rules {
38
- quantidade > 0
39
- produto_id deve_ser valido
40
- }
41
- effects {
42
- consulta ItemEstoque por produto_id criticidade = alta
43
- persistencia ItemEstoque
44
- persistencia MovimentacaoEstoque
45
- evento estoque_reservado criticidade = media
46
- auditoria reserva_estoque
47
- }
48
- guarantees {
49
- reserva_id existe
50
- quantidade_reservada existe
51
- }
52
- error {
53
- estoque_insuficiente: "Quantidade solicitada indisponivel em estoque."
54
- produto_nao_encontrado: "Produto nao localizado no estoque."
55
- }
56
- tests {
57
- caso "reserva com estoque disponivel" {
58
- given { produto_id: "prod_1" quantidade: 5 pedido_id: "ped_1" }
59
- expect { sucesso: verdadeiro }
60
- }
61
- caso "reserva sem estoque" {
62
- given { produto_id: "prod_sem" quantidade: 999 pedido_id: "ped_2" }
63
- expect { sucesso: falso }
64
- error { tipo: "estoque_insuficiente" }
65
- }
66
- }
67
- }
68
-
69
- task registrar_entrada {
70
- input {
71
- produto_id: Id required
72
- quantidade: Inteiro required
73
- motivo: Texto required
74
- }
75
- output {
76
- movimentacao_id: Id
77
- }
78
- rules {
79
- quantidade > 0
80
- motivo deve_ser preenchido
81
- }
82
- effects {
83
- persistencia ItemEstoque
84
- persistencia MovimentacaoEstoque
85
- evento estoque_reposto
86
- auditoria entrada_estoque
87
- }
88
- guarantees {
89
- movimentacao_id existe
90
- }
91
- tests {
92
- caso "entrada valida" {
93
- given { produto_id: "prod_1" quantidade: 100 motivo: "Reposicao mensal" }
94
- expect { sucesso: verdadeiro }
95
- }
96
- }
97
- }
98
-
99
- task liberar_reserva {
100
- input {
101
- reserva_id: Id required
102
- motivo: Texto required
103
- }
104
- output {
105
- protocolo: Id
106
- }
107
- rules {
108
- reserva_id deve_ser valido
109
- motivo deve_ser preenchido
110
- }
111
- effects {
112
- persistencia ItemEstoque
113
- persistencia MovimentacaoEstoque
114
- evento reserva_liberada
115
- auditoria liberacao_reserva
116
- }
117
- guarantees {
118
- protocolo existe
119
- }
120
- tests {
121
- caso "libera reserva existente" {
122
- given { reserva_id: "res_1" motivo: "Pedido cancelado" }
123
- expect { sucesso: verdadeiro }
124
- }
125
- }
126
- }
127
- }
1
+ module exemplos.estoque {
2
+ docs {
3
+ resumo: "Controle de estoque com reserva, entrada e saida de produtos."
4
+ }
5
+
6
+ entity ItemEstoque {
7
+ fields {
8
+ id: Id
9
+ produto_id: Id
10
+ quantidade: Inteiro
11
+ quantidade_reservada: Inteiro
12
+ localizacao: Texto
13
+ }
14
+ }
15
+
16
+ entity MovimentacaoEstoque {
17
+ fields {
18
+ id: Id
19
+ produto_id: Id
20
+ tipo: Texto
21
+ quantidade: Inteiro
22
+ motivo: Texto
23
+ realizada_em: Timestamp
24
+ }
25
+ }
26
+
27
+ task reservar_estoque {
28
+ input {
29
+ produto_id: Id required
30
+ quantidade: Inteiro required
31
+ pedido_id: Id required
32
+ }
33
+ output {
34
+ reserva_id: Id
35
+ quantidade_reservada: Inteiro
36
+ }
37
+ rules {
38
+ quantidade > 0
39
+ produto_id deve_ser valido
40
+ }
41
+ effects {
42
+ consulta ItemEstoque por produto_id criticidade = alta
43
+ persistencia ItemEstoque
44
+ persistencia MovimentacaoEstoque
45
+ evento estoque_reservado criticidade = media
46
+ auditoria reserva_estoque
47
+ }
48
+ guarantees {
49
+ reserva_id existe
50
+ quantidade_reservada existe
51
+ }
52
+ error {
53
+ estoque_insuficiente: "Quantidade solicitada indisponivel em estoque."
54
+ produto_nao_encontrado: "Produto nao localizado no estoque."
55
+ }
56
+ tests {
57
+ caso "reserva com estoque disponivel" {
58
+ given { produto_id: "prod_1" quantidade: 5 pedido_id: "ped_1" }
59
+ expect { sucesso: verdadeiro }
60
+ }
61
+ caso "reserva sem estoque" {
62
+ given { produto_id: "prod_sem" quantidade: 999 pedido_id: "ped_2" }
63
+ expect { sucesso: falso }
64
+ error { tipo: "estoque_insuficiente" }
65
+ }
66
+ }
67
+ }
68
+
69
+ task registrar_entrada {
70
+ input {
71
+ produto_id: Id required
72
+ quantidade: Inteiro required
73
+ motivo: Texto required
74
+ }
75
+ output {
76
+ movimentacao_id: Id
77
+ }
78
+ rules {
79
+ quantidade > 0
80
+ motivo deve_ser preenchido
81
+ }
82
+ effects {
83
+ persistencia ItemEstoque
84
+ persistencia MovimentacaoEstoque
85
+ evento estoque_reposto
86
+ auditoria entrada_estoque
87
+ }
88
+ guarantees {
89
+ movimentacao_id existe
90
+ }
91
+ tests {
92
+ caso "entrada valida" {
93
+ given { produto_id: "prod_1" quantidade: 100 motivo: "Reposicao mensal" }
94
+ expect { sucesso: verdadeiro }
95
+ }
96
+ }
97
+ }
98
+
99
+ task liberar_reserva {
100
+ input {
101
+ reserva_id: Id required
102
+ motivo: Texto required
103
+ }
104
+ output {
105
+ protocolo: Id
106
+ }
107
+ rules {
108
+ reserva_id deve_ser valido
109
+ motivo deve_ser preenchido
110
+ }
111
+ effects {
112
+ persistencia ItemEstoque
113
+ persistencia MovimentacaoEstoque
114
+ evento reserva_liberada
115
+ auditoria liberacao_reserva
116
+ }
117
+ guarantees {
118
+ protocolo existe
119
+ }
120
+ tests {
121
+ caso "libera reserva existente" {
122
+ given { reserva_id: "res_1" motivo: "Pedido cancelado" }
123
+ expect { sucesso: verdadeiro }
124
+ }
125
+ }
126
+ }
127
+ }