@semacode/cli 1.5.28 → 1.5.29

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 (81) hide show
  1. package/AGENTS.md +279 -265
  2. package/AGENT_CONTEXT_PACK.json +164 -0
  3. package/README.md +144 -144
  4. package/SEMA_BRIEF.curto.txt +7 -7
  5. package/SEMA_BRIEF.md +464 -65
  6. package/SEMA_BRIEF.micro.txt +6 -6
  7. package/SEMA_INDEX.json +6723 -669
  8. package/dist/bridge.d.ts +52 -0
  9. package/dist/bridge.js +318 -0
  10. package/dist/bridge.js.map +1 -0
  11. package/dist/comandos.d.ts +11 -0
  12. package/dist/comandos.js +110 -0
  13. package/dist/comandos.js.map +1 -0
  14. package/dist/contexto.d.ts +34 -0
  15. package/dist/contexto.js +197 -0
  16. package/dist/contexto.js.map +1 -0
  17. package/dist/drift.d.ts +1 -1
  18. package/dist/drift.js +32 -5
  19. package/dist/drift.js.map +1 -1
  20. package/dist/index.js +391 -64
  21. package/dist/index.js.map +1 -1
  22. package/dist/lua-symbols.d.ts +0 -6
  23. package/dist/lua-symbols.js +11 -78
  24. package/dist/lua-symbols.js.map +1 -1
  25. package/dist/projeto.js +6 -0
  26. package/dist/projeto.js.map +1 -1
  27. package/dist/tipos.d.ts +1 -1
  28. package/docs/AGENT_STARTER.md +109 -109
  29. package/docs/api.md +82 -0
  30. package/docs/cli.md +175 -175
  31. package/docs/como-ensinar-a-sema-para-ia.md +155 -155
  32. package/docs/deploy.md +93 -93
  33. package/docs/documentacao.md +88 -88
  34. package/docs/env.md +105 -105
  35. package/docs/extensao-vscode.md +53 -53
  36. package/docs/fluxo-pratico-ia-sema.md +187 -187
  37. package/docs/instalacao-e-primeiro-uso.md +134 -134
  38. package/docs/integracao-com-ia.md +110 -110
  39. package/docs/mcp.md +292 -292
  40. package/docs/pagamento-ponta-a-ponta.md +171 -171
  41. package/docs/persistencia-vendor-first.md +151 -151
  42. package/docs/prompt-base-ia-sema.md +111 -111
  43. package/docs/repositories.md +54 -54
  44. package/docs/rollback.md +49 -49
  45. package/docs/seguranca.md +126 -126
  46. package/docs/sintaxe.md +218 -218
  47. package/exemplos/author_obra_comum.sema +294 -294
  48. package/exemplos/author_tema_sensivel.sema +264 -264
  49. package/exemplos/profile_game.sema +114 -114
  50. package/exemplos/profile_legal.sema +105 -105
  51. package/exemplos/profile_ops.sema +110 -110
  52. package/exemplos/profile_research.sema +104 -104
  53. package/exemplos/profile_software.sema +123 -123
  54. package/exemplos/profile_workflow_n8n.sema +99 -99
  55. package/llms-full.txt +10 -9
  56. package/llms.txt +8 -7
  57. package/node_modules/@sema/gerador-css/package.json +1 -1
  58. package/node_modules/@sema/gerador-dart/package.json +1 -1
  59. package/node_modules/@sema/gerador-html/package.json +1 -1
  60. package/node_modules/@sema/gerador-javascript/package.json +1 -1
  61. package/node_modules/@sema/gerador-lua/package.json +1 -1
  62. package/node_modules/@sema/gerador-python/package.json +1 -1
  63. package/node_modules/@sema/gerador-typescript/package.json +1 -1
  64. package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +1 -1
  65. package/node_modules/@sema/nucleo/dist/index.d.ts +17 -0
  66. package/node_modules/@sema/nucleo/dist/index.js +28 -0
  67. package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
  68. package/node_modules/@sema/nucleo/dist/ir/conversor.js +4 -0
  69. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
  70. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +3 -3
  71. package/node_modules/@sema/nucleo/dist/parser/parser.js +2 -0
  72. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
  73. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +2 -2
  74. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +3 -1
  75. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -1
  76. package/node_modules/@sema/nucleo/package.json +1 -1
  77. package/node_modules/@sema/padroes/package.json +1 -1
  78. package/package.json +11 -10
  79. package/dist/php-symbols.d.ts +0 -24
  80. package/dist/php-symbols.js +0 -375
  81. package/dist/php-symbols.js.map +0 -1
@@ -1,114 +1,114 @@
1
- module exemplos.profile.game {
2
- docs {
3
- resumo: "Starter do Profile Game: contrato primeiro. Criar, editar ou remover contrato antes de qualquer acao; depois loop jogavel, jogador, estado, state, regras, transicoes, falha, derrota, balanceamento, abuso, exploit, telemetria, replay e metricas."
4
- }
5
-
6
- state partida_status {
7
- fields {
8
- estado: StatusPartida
9
- }
10
- invariants {
11
- estado existe
12
- }
13
- transitions {
14
- PREPARANDO -> EM_JOGO
15
- EM_JOGO -> VITORIA
16
- EM_JOGO -> DERROTA
17
- }
18
- }
19
-
20
- enum StatusPartida {
21
- PREPARANDO,
22
- EM_JOGO,
23
- VITORIA,
24
- DERROTA
25
- }
26
-
27
- type LoopJogo {
28
- fields {
29
- objetivo: Texto
30
- jogador: Texto
31
- estado: Texto
32
- regras: Lista
33
- telemetria: Lista
34
- }
35
- invariants {
36
- objetivo existe
37
- jogador existe
38
- estado existe
39
- regras existe
40
- }
41
- }
42
-
43
- task validar_loop_jogavel {
44
- input {
45
- loop: Texto required
46
- jogador: Texto required
47
- estado: Texto required
48
- regras: Lista required
49
- estado_state: Texto
50
- transicoes: Texto
51
- falha: Texto
52
- derrota: Texto
53
- balanceamento: Texto
54
- abuso: Texto
55
- exploit: Texto
56
- telemetria: Texto
57
- replay: Texto
58
- metricas: Texto
59
- }
60
- output {
61
- jogavel: Booleano
62
- bloqueios: Lista
63
- }
64
- rules {
65
- loop deve_ser jogavel
66
- jogador deve_ser declarado
67
- estado deve_ser persistente
68
- estado_state deve_ser explicito
69
- regras deve_ser testaveis
70
- transicoes deve_ser declaradas
71
- falha deve_ser possivel
72
- derrota deve_ser legivel
73
- balanceamento deve_ser testavel
74
- abuso deve_ser mapeado
75
- exploit deve_ser bloqueado
76
- telemetria deve_ser declarada
77
- replay deve_ser opcional
78
- metricas deve_ser coletaveis
79
- }
80
- effects {
81
- evento game_loop_validado criticidade = baixa
82
- auditoria game_loop criticidade = media
83
- }
84
- forbidden {
85
- vitoria_sem_custo
86
- exploit_sem_mitigacao
87
- falha_invisivel
88
- }
89
- execucao {
90
- idempotencia: verdadeiro
91
- timeout: "10s"
92
- criticidade_operacional: media
93
- }
94
- guarantees {
95
- jogavel existe
96
- bloqueios existe
97
- }
98
- tests {
99
- caso "loop tem estado e falha" {
100
- given {
101
- loop: "explorar, escolher risco, resolver encontro"
102
- jogador: "piloto"
103
- estado: "energia e mapa"
104
- regras: "transicoes PREPARANDO EM_JOGO DERROTA"
105
- }
106
-
107
- expect {
108
- sucesso: verdadeiro
109
- jogavel: verdadeiro
110
- }
111
- }
112
- }
113
- }
114
- }
1
+ module exemplos.profile.game {
2
+ docs {
3
+ resumo: "Starter do Profile Game: contrato primeiro. Criar, editar ou remover contrato antes de qualquer acao; depois loop jogavel, jogador, estado, state, regras, transicoes, falha, derrota, balanceamento, abuso, exploit, telemetria, replay e metricas."
4
+ }
5
+
6
+ state partida_status {
7
+ fields {
8
+ estado: StatusPartida
9
+ }
10
+ invariants {
11
+ estado existe
12
+ }
13
+ transitions {
14
+ PREPARANDO -> EM_JOGO
15
+ EM_JOGO -> VITORIA
16
+ EM_JOGO -> DERROTA
17
+ }
18
+ }
19
+
20
+ enum StatusPartida {
21
+ PREPARANDO,
22
+ EM_JOGO,
23
+ VITORIA,
24
+ DERROTA
25
+ }
26
+
27
+ type LoopJogo {
28
+ fields {
29
+ objetivo: Texto
30
+ jogador: Texto
31
+ estado: Texto
32
+ regras: Lista
33
+ telemetria: Lista
34
+ }
35
+ invariants {
36
+ objetivo existe
37
+ jogador existe
38
+ estado existe
39
+ regras existe
40
+ }
41
+ }
42
+
43
+ task validar_loop_jogavel {
44
+ input {
45
+ loop: Texto required
46
+ jogador: Texto required
47
+ estado: Texto required
48
+ regras: Lista required
49
+ estado_state: Texto
50
+ transicoes: Texto
51
+ falha: Texto
52
+ derrota: Texto
53
+ balanceamento: Texto
54
+ abuso: Texto
55
+ exploit: Texto
56
+ telemetria: Texto
57
+ replay: Texto
58
+ metricas: Texto
59
+ }
60
+ output {
61
+ jogavel: Booleano
62
+ bloqueios: Lista
63
+ }
64
+ rules {
65
+ loop deve_ser jogavel
66
+ jogador deve_ser declarado
67
+ estado deve_ser persistente
68
+ estado_state deve_ser explicito
69
+ regras deve_ser testaveis
70
+ transicoes deve_ser declaradas
71
+ falha deve_ser possivel
72
+ derrota deve_ser legivel
73
+ balanceamento deve_ser testavel
74
+ abuso deve_ser mapeado
75
+ exploit deve_ser bloqueado
76
+ telemetria deve_ser declarada
77
+ replay deve_ser opcional
78
+ metricas deve_ser coletaveis
79
+ }
80
+ effects {
81
+ evento game_loop_validado criticidade = baixa
82
+ auditoria game_loop criticidade = media
83
+ }
84
+ forbidden {
85
+ vitoria_sem_custo
86
+ exploit_sem_mitigacao
87
+ falha_invisivel
88
+ }
89
+ execucao {
90
+ idempotencia: verdadeiro
91
+ timeout: "10s"
92
+ criticidade_operacional: media
93
+ }
94
+ guarantees {
95
+ jogavel existe
96
+ bloqueios existe
97
+ }
98
+ tests {
99
+ caso "loop tem estado e falha" {
100
+ given {
101
+ loop: "explorar, escolher risco, resolver encontro"
102
+ jogador: "piloto"
103
+ estado: "energia e mapa"
104
+ regras: "transicoes PREPARANDO EM_JOGO DERROTA"
105
+ }
106
+
107
+ expect {
108
+ sucesso: verdadeiro
109
+ jogavel: verdadeiro
110
+ }
111
+ }
112
+ }
113
+ }
114
+ }
@@ -1,105 +1,105 @@
1
- module exemplos.profile.legal {
2
- docs {
3
- resumo: "Starter do Profile Legal: contrato primeiro. Criar, editar ou remover contrato antes de qualquer acao; depois jurisdicao, escopo, limite, fonte normativa, lei, regulamento, documento, citacao, evidencia, revisao_humana, advogado, aprovador, bloqueio, auditoria, retencao, correlacao e motivo."
4
- }
5
-
6
- type ContextoLegal {
7
- fields {
8
- jurisdicao: Texto
9
- escopo: Texto
10
- limite: Texto
11
- fontes: Lista
12
- revisao_humana: Booleano
13
- }
14
- invariants {
15
- jurisdicao existe
16
- escopo existe
17
- limite existe
18
- fontes existe
19
- revisao_humana existe
20
- }
21
- }
22
-
23
- task validar_minuta_legal {
24
- input {
25
- jurisdicao: Texto required
26
- escopo: Texto required
27
- fonte: Texto required
28
- documento: Texto required
29
- limite: Texto
30
- norma: Texto
31
- lei: Texto
32
- regulamento: Texto
33
- citacao: Texto
34
- evidencia: Texto
35
- revisao_humana: Texto
36
- advogado: Texto
37
- }
38
- output {
39
- aprovado: Booleano
40
- bloqueio: Lista
41
- }
42
- rules {
43
- jurisdicao deve_ser declarada
44
- escopo deve_ser limitado
45
- limite deve_ser explicito
46
- fonte deve_ser normativa
47
- norma deve_ser verificavel
48
- lei deve_ser citavel
49
- regulamento deve_ser citavel
50
- documento deve_ser anexado
51
- citacao deve_ser rastreavel
52
- evidencia deve_ser preservada
53
- revisao_humana deve_ser obrigatoria
54
- advogado deve_ser aprovador
55
- }
56
- effects {
57
- auditoria legal_minuta criticidade = media
58
- }
59
- authz {
60
- escopo: legal.validar_minuta
61
- tenant: opcional
62
- }
63
- dados {
64
- classificacao_padrao: interno
65
- redacao_log: obrigatoria
66
- }
67
- audit {
68
- evento: exemplos.legal.minuta.validada
69
- ator: advogado
70
- correlacao: request_id
71
- retencao: "180d"
72
- motivo: obrigatorio
73
- }
74
- forbidden {
75
- parecer_final_sem_revisao_humana
76
- citacao_inventada
77
- orientacao_juridica_sem_limite
78
- }
79
- execucao {
80
- idempotencia: verdadeiro
81
- timeout: "20s"
82
- retry: "nenhum"
83
- criticidade_operacional: media
84
- }
85
- guarantees {
86
- aprovado existe
87
- bloqueio existe
88
- }
89
- tests {
90
- caso "minuta exige fonte e humano" {
91
- given {
92
- jurisdicao: "BR"
93
- escopo: "contrato comercial"
94
- fonte: "lei e regulamento"
95
- documento: "documento com citacao e evidencia"
96
- }
97
-
98
- expect {
99
- sucesso: verdadeiro
100
- aprovado: verdadeiro
101
- }
102
- }
103
- }
104
- }
105
- }
1
+ module exemplos.profile.legal {
2
+ docs {
3
+ resumo: "Starter do Profile Legal: contrato primeiro. Criar, editar ou remover contrato antes de qualquer acao; depois jurisdicao, escopo, limite, fonte normativa, lei, regulamento, documento, citacao, evidencia, revisao_humana, advogado, aprovador, bloqueio, auditoria, retencao, correlacao e motivo."
4
+ }
5
+
6
+ type ContextoLegal {
7
+ fields {
8
+ jurisdicao: Texto
9
+ escopo: Texto
10
+ limite: Texto
11
+ fontes: Lista
12
+ revisao_humana: Booleano
13
+ }
14
+ invariants {
15
+ jurisdicao existe
16
+ escopo existe
17
+ limite existe
18
+ fontes existe
19
+ revisao_humana existe
20
+ }
21
+ }
22
+
23
+ task validar_minuta_legal {
24
+ input {
25
+ jurisdicao: Texto required
26
+ escopo: Texto required
27
+ fonte: Texto required
28
+ documento: Texto required
29
+ limite: Texto
30
+ norma: Texto
31
+ lei: Texto
32
+ regulamento: Texto
33
+ citacao: Texto
34
+ evidencia: Texto
35
+ revisao_humana: Texto
36
+ advogado: Texto
37
+ }
38
+ output {
39
+ aprovado: Booleano
40
+ bloqueio: Lista
41
+ }
42
+ rules {
43
+ jurisdicao deve_ser declarada
44
+ escopo deve_ser limitado
45
+ limite deve_ser explicito
46
+ fonte deve_ser normativa
47
+ norma deve_ser verificavel
48
+ lei deve_ser citavel
49
+ regulamento deve_ser citavel
50
+ documento deve_ser anexado
51
+ citacao deve_ser rastreavel
52
+ evidencia deve_ser preservada
53
+ revisao_humana deve_ser obrigatoria
54
+ advogado deve_ser aprovador
55
+ }
56
+ effects {
57
+ auditoria legal_minuta criticidade = media
58
+ }
59
+ authz {
60
+ escopo: legal.validar_minuta
61
+ tenant: opcional
62
+ }
63
+ dados {
64
+ classificacao_padrao: interno
65
+ redacao_log: obrigatoria
66
+ }
67
+ audit {
68
+ evento: exemplos.legal.minuta.validada
69
+ ator: advogado
70
+ correlacao: request_id
71
+ retencao: "180d"
72
+ motivo: obrigatorio
73
+ }
74
+ forbidden {
75
+ parecer_final_sem_revisao_humana
76
+ citacao_inventada
77
+ orientacao_juridica_sem_limite
78
+ }
79
+ execucao {
80
+ idempotencia: verdadeiro
81
+ timeout: "20s"
82
+ retry: "nenhum"
83
+ criticidade_operacional: media
84
+ }
85
+ guarantees {
86
+ aprovado existe
87
+ bloqueio existe
88
+ }
89
+ tests {
90
+ caso "minuta exige fonte e humano" {
91
+ given {
92
+ jurisdicao: "BR"
93
+ escopo: "contrato comercial"
94
+ fonte: "lei e regulamento"
95
+ documento: "documento com citacao e evidencia"
96
+ }
97
+
98
+ expect {
99
+ sucesso: verdadeiro
100
+ aprovado: verdadeiro
101
+ }
102
+ }
103
+ }
104
+ }
105
+ }
@@ -1,110 +1,110 @@
1
- module exemplos.profile.ops {
2
- docs {
3
- resumo: "Starter do Profile Ops: contrato primeiro. Criar, editar ou remover contrato antes de qualquer acao; depois runbook, rollback, recuperacao, healthcheck, metricas, logs, traces, observabilidade, incidente, severidade, responsavel, oncall, segredos, acesso e authz."
4
- }
5
-
6
- type RunbookOperacional {
7
- fields {
8
- runbook: Texto
9
- rollback: Texto
10
- healthcheck: Texto
11
- responsavel: Texto
12
- severidade: Texto
13
- }
14
- invariants {
15
- runbook existe
16
- rollback existe
17
- healthcheck existe
18
- responsavel existe
19
- severidade existe
20
- }
21
- }
22
-
23
- task validar_operacao_deploy {
24
- input {
25
- runbook: Texto required
26
- rollback: Texto required
27
- healthcheck: Texto required
28
- responsavel: Texto required
29
- recuperacao: Texto
30
- metricas: Texto
31
- logs: Texto
32
- traces: Texto
33
- observabilidade: Texto
34
- incidente: Texto
35
- severidade: Texto
36
- segredos: Texto
37
- acesso: Texto
38
- authz: Texto
39
- }
40
- output {
41
- operavel: Booleano
42
- bloqueios: Lista
43
- }
44
- rules {
45
- runbook deve_ser preenchido
46
- rollback deve_ser testado
47
- recuperacao deve_ser declarada
48
- healthcheck deve_ser verificavel
49
- metricas deve_ser declaradas
50
- logs deve_ser preservados
51
- traces deve_ser opcionais
52
- observabilidade deve_ser suficiente
53
- incidente deve_ser classificado
54
- severidade deve_ser definida
55
- responsavel deve_ser oncall
56
- segredos deve_ser protegidos
57
- acesso deve_ser limitado
58
- authz deve_ser revisado
59
- }
60
- effects {
61
- auditoria ops_deploy criticidade = media
62
- }
63
- authz {
64
- escopo: ops.validar_deploy
65
- tenant: opcional
66
- }
67
- dados {
68
- classificacao_padrao: interno
69
- redacao_log: obrigatoria
70
- }
71
- audit {
72
- evento: exemplos.ops.deploy.validado
73
- ator: operador
74
- correlacao: request_id
75
- retencao: "90d"
76
- motivo: obrigatorio
77
- }
78
- forbidden {
79
- deploy_sem_rollback
80
- secret_em_log
81
- incidente_sem_responsavel
82
- }
83
- execucao {
84
- idempotencia: verdadeiro
85
- timeout: "15s"
86
- retry: "nenhum"
87
- compensacao: "rollback"
88
- criticidade_operacional: media
89
- }
90
- guarantees {
91
- operavel existe
92
- bloqueios existe
93
- }
94
- tests {
95
- caso "deploy operavel" {
96
- given {
97
- runbook: "runbook de incidente com severidade"
98
- rollback: "rollback testado"
99
- healthcheck: "healthcheck metricas logs traces"
100
- responsavel: "oncall"
101
- }
102
-
103
- expect {
104
- sucesso: verdadeiro
105
- operavel: verdadeiro
106
- }
107
- }
108
- }
109
- }
110
- }
1
+ module exemplos.profile.ops {
2
+ docs {
3
+ resumo: "Starter do Profile Ops: contrato primeiro. Criar, editar ou remover contrato antes de qualquer acao; depois runbook, rollback, recuperacao, healthcheck, metricas, logs, traces, observabilidade, incidente, severidade, responsavel, oncall, segredos, acesso e authz."
4
+ }
5
+
6
+ type RunbookOperacional {
7
+ fields {
8
+ runbook: Texto
9
+ rollback: Texto
10
+ healthcheck: Texto
11
+ responsavel: Texto
12
+ severidade: Texto
13
+ }
14
+ invariants {
15
+ runbook existe
16
+ rollback existe
17
+ healthcheck existe
18
+ responsavel existe
19
+ severidade existe
20
+ }
21
+ }
22
+
23
+ task validar_operacao_deploy {
24
+ input {
25
+ runbook: Texto required
26
+ rollback: Texto required
27
+ healthcheck: Texto required
28
+ responsavel: Texto required
29
+ recuperacao: Texto
30
+ metricas: Texto
31
+ logs: Texto
32
+ traces: Texto
33
+ observabilidade: Texto
34
+ incidente: Texto
35
+ severidade: Texto
36
+ segredos: Texto
37
+ acesso: Texto
38
+ authz: Texto
39
+ }
40
+ output {
41
+ operavel: Booleano
42
+ bloqueios: Lista
43
+ }
44
+ rules {
45
+ runbook deve_ser preenchido
46
+ rollback deve_ser testado
47
+ recuperacao deve_ser declarada
48
+ healthcheck deve_ser verificavel
49
+ metricas deve_ser declaradas
50
+ logs deve_ser preservados
51
+ traces deve_ser opcionais
52
+ observabilidade deve_ser suficiente
53
+ incidente deve_ser classificado
54
+ severidade deve_ser definida
55
+ responsavel deve_ser oncall
56
+ segredos deve_ser protegidos
57
+ acesso deve_ser limitado
58
+ authz deve_ser revisado
59
+ }
60
+ effects {
61
+ auditoria ops_deploy criticidade = media
62
+ }
63
+ authz {
64
+ escopo: ops.validar_deploy
65
+ tenant: opcional
66
+ }
67
+ dados {
68
+ classificacao_padrao: interno
69
+ redacao_log: obrigatoria
70
+ }
71
+ audit {
72
+ evento: exemplos.ops.deploy.validado
73
+ ator: operador
74
+ correlacao: request_id
75
+ retencao: "90d"
76
+ motivo: obrigatorio
77
+ }
78
+ forbidden {
79
+ deploy_sem_rollback
80
+ secret_em_log
81
+ incidente_sem_responsavel
82
+ }
83
+ execucao {
84
+ idempotencia: verdadeiro
85
+ timeout: "15s"
86
+ retry: "nenhum"
87
+ compensacao: "rollback"
88
+ criticidade_operacional: media
89
+ }
90
+ guarantees {
91
+ operavel existe
92
+ bloqueios existe
93
+ }
94
+ tests {
95
+ caso "deploy operavel" {
96
+ given {
97
+ runbook: "runbook de incidente com severidade"
98
+ rollback: "rollback testado"
99
+ healthcheck: "healthcheck metricas logs traces"
100
+ responsavel: "oncall"
101
+ }
102
+
103
+ expect {
104
+ sucesso: verdadeiro
105
+ operavel: verdadeiro
106
+ }
107
+ }
108
+ }
109
+ }
110
+ }