@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,171 +1,171 @@
1
- # Pagamento Ponta a Ponta na Sema
2
-
3
- <!-- sema:i18n -->
4
- > EN: English first. The canonical operational body below may still be in Portuguese until full translation lands.
5
- > PT: Português depois, com acentos preservados.
6
- > ES: Español al final; não traduza comandos, rotas nem sómbolos `.sema` sem contrato.
7
-
8
-
9
- Este documento descreve o vertical oficial de pagamento da Sema no fluxo público atual.
10
-
11
- O objetivo não é mostrar um exemplo fofo. O objetivo e demonstrar que a linguagem já consegue modelar um fluxo de negócio real com:
12
-
13
- - contrato público
14
- - segurança e autorizacao
15
- - classificacao de dados
16
- - segredos e proibicoes explicitas
17
- - regras
18
- - efeitos operacionais
19
- - execução, idempotencia, retry e compensacao
20
- - transicoes de estado
21
- - orquestração
22
- - erros publicos
23
- - testes executaveis com saída, status ou erro observavel
24
-
25
- ## Arquivos de referência
26
-
27
- - `exemplos/pagamento_dominio.sema`
28
- - `exemplos/pagamento.sema`
29
-
30
- ## Como o vertical foi dividido
31
-
32
- ### `exemplos.pagamento.dominio`
33
-
34
- Centraliza os contratos compartilhados:
35
-
36
- - `entity Pagamento`
37
- - `enum StatusPagamento`
38
- - `state ciclo_pagamento`
39
-
40
- ### `exemplos.pagamento`
41
-
42
- Centraliza a operação do vertical:
43
-
44
- - `task processar_pagamento`
45
- - `task confirmar_pagamento`
46
- - `task notificar_falha_pagamento`
47
- - `task registrar_timeout_pagamento`
48
- - `flow orquestracao_pagamento`
49
- - `route processar_pagamento_publico`
50
-
51
- ## Narrativa do caso
52
-
53
- ### Entrada pública
54
-
55
- A operação entra por:
56
-
57
- - `route processar_pagamento_publico`
58
-
59
- Esse contrato pública:
60
-
61
- - `pagamento_id`
62
- - `valor`
63
- - `token`
64
-
65
- É expoe:
66
-
67
- - `pagamento`
68
- - `status`
69
- - erros publicos coerentes com a `task`
70
-
71
- ### Task interna
72
-
73
- A `task processar_pagamento` faz o trabalho central:
74
-
75
- - exige `authz`
76
- - classifica `dados`
77
- - declara `segredos`, `audit` e `forbidden`
78
- - valida entrada
79
- - consulta o gateway
80
- - persiste o pagamento
81
- - emite evento
82
- - notifica comprovante
83
- - registra auditoria
84
- - declara `execucao` com idempotencia, timeout, retry, compensacao e criticidade
85
- - garante consistencia da saída
86
-
87
- ### Estado e transicoes
88
-
89
- O `state ciclo_pagamento` ancora o contrato de transicao:
90
-
91
- - `PENDENTE -> AUTORIZADO`
92
- - `AUTORIZADO -> PROCESSADO`
93
- - `PENDENTE -> RECUSADO`
94
-
95
- A `task` explícita quais transicoes ela realmente usa.
96
-
97
- ### Flow de orquestração
98
-
99
- O `flow orquestracao_pagamento` demonstra:
100
-
101
- - passagem de contexto
102
- - confirmação em caso de sucesso
103
- - notificação em caso de recusa
104
- - registro de timeout em caso de indisponibilidade
105
- - ramificacao por erro tipado
106
-
107
- ### Efeitos operacionais
108
-
109
- O vertical usa as 5 categorias oficiais da Sema:
110
-
111
- - `persistencia`
112
- - `consulta`
113
- - `evento`
114
- - `notificacao`
115
- - `auditoria`
116
-
117
- Também usa `criticidade` para deixar claro o peso operacional do efeito.
118
-
119
- ### Falhas reais
120
-
121
- O vertical cobre explicitamente:
122
-
123
- - autorizacao negada
124
- - saldo insuficiente
125
- - timeout de gateway
126
-
127
- ## Fluxo de trabalho recomendado
128
-
129
- ### 1. Escrever ou ajustar os arquivos `.sema`
130
-
131
- Use o domínio compartilhado em um módulo e a operação em outro módulo.
132
-
133
- ### 2. Aplicar o formato canônico
134
-
135
- ```bash
136
- sema formatar exemplos
137
- ```
138
-
139
- ### 3. Validar semanticamente
140
-
141
- ```bash
142
- sema validar exemplos/pagamento.sema
143
- ```
144
-
145
- ### 4. Gerar código
146
-
147
- ```bash
148
- sema compilar exemplos/pagamento.sema --alvo typescript --saida ./.tmp/pagamento-ts
149
- sema compilar exemplos/pagamento.sema --alvo python --saida ./.tmp/pagamento-py
150
- ```
151
-
152
- ### 5. Verificar o vertical completo
153
-
154
- ```bash
155
- sema verificar exemplos/pagamento.sema --json --saida ./.tmp/verificacao-pagamento
156
- ```
157
-
158
- ## O que esse vertical prova
159
-
160
- Se esse vertical passa, a Sema já consegue demonstrar que:
161
-
162
- - modela contrato público
163
- - modela superficie sensível sem deixar segurança invisível
164
- - modela efeitos operacionais
165
- - modela falhas reais
166
- - modulariza domínio com `use`
167
- - declara idempotencia e execução crítica sem criar sintaxe nova
168
- - gera artefatos coerentes para TypeScript e Python
169
- - executa testes gerados sem gambiarra conceitual
170
-
171
- Esse e o criterio pratico que sustenta o uso público do vertical de pagamento como referência para IA e geracao.
1
+ # Pagamento Ponta a Ponta na Sema
2
+
3
+ <!-- sema:i18n -->
4
+ > EN: English first. The canonical operational body below may still be in Portuguese until full translation lands.
5
+ > PT: Português depois, com acentos preservados.
6
+ > ES: Español al final; não traduza comandos, rotas nem sómbolos `.sema` sem contrato.
7
+
8
+
9
+ Este documento descreve o vertical oficial de pagamento da Sema no fluxo público atual.
10
+
11
+ O objetivo não é mostrar um exemplo fofo. O objetivo e demonstrar que a linguagem já consegue modelar um fluxo de negócio real com:
12
+
13
+ - contrato público
14
+ - segurança e autorizacao
15
+ - classificacao de dados
16
+ - segredos e proibicoes explicitas
17
+ - regras
18
+ - efeitos operacionais
19
+ - execução, idempotencia, retry e compensacao
20
+ - transicoes de estado
21
+ - orquestração
22
+ - erros publicos
23
+ - testes executaveis com saída, status ou erro observavel
24
+
25
+ ## Arquivos de referência
26
+
27
+ - `exemplos/pagamento_dominio.sema`
28
+ - `exemplos/pagamento.sema`
29
+
30
+ ## Como o vertical foi dividido
31
+
32
+ ### `exemplos.pagamento.dominio`
33
+
34
+ Centraliza os contratos compartilhados:
35
+
36
+ - `entity Pagamento`
37
+ - `enum StatusPagamento`
38
+ - `state ciclo_pagamento`
39
+
40
+ ### `exemplos.pagamento`
41
+
42
+ Centraliza a operação do vertical:
43
+
44
+ - `task processar_pagamento`
45
+ - `task confirmar_pagamento`
46
+ - `task notificar_falha_pagamento`
47
+ - `task registrar_timeout_pagamento`
48
+ - `flow orquestracao_pagamento`
49
+ - `route processar_pagamento_publico`
50
+
51
+ ## Narrativa do caso
52
+
53
+ ### Entrada pública
54
+
55
+ A operação entra por:
56
+
57
+ - `route processar_pagamento_publico`
58
+
59
+ Esse contrato pública:
60
+
61
+ - `pagamento_id`
62
+ - `valor`
63
+ - `token`
64
+
65
+ É expoe:
66
+
67
+ - `pagamento`
68
+ - `status`
69
+ - erros publicos coerentes com a `task`
70
+
71
+ ### Task interna
72
+
73
+ A `task processar_pagamento` faz o trabalho central:
74
+
75
+ - exige `authz`
76
+ - classifica `dados`
77
+ - declara `segredos`, `audit` e `forbidden`
78
+ - valida entrada
79
+ - consulta o gateway
80
+ - persiste o pagamento
81
+ - emite evento
82
+ - notifica comprovante
83
+ - registra auditoria
84
+ - declara `execucao` com idempotencia, timeout, retry, compensacao e criticidade
85
+ - garante consistencia da saída
86
+
87
+ ### Estado e transicoes
88
+
89
+ O `state ciclo_pagamento` ancora o contrato de transicao:
90
+
91
+ - `PENDENTE -> AUTORIZADO`
92
+ - `AUTORIZADO -> PROCESSADO`
93
+ - `PENDENTE -> RECUSADO`
94
+
95
+ A `task` explícita quais transicoes ela realmente usa.
96
+
97
+ ### Flow de orquestração
98
+
99
+ O `flow orquestracao_pagamento` demonstra:
100
+
101
+ - passagem de contexto
102
+ - confirmação em caso de sucesso
103
+ - notificação em caso de recusa
104
+ - registro de timeout em caso de indisponibilidade
105
+ - ramificacao por erro tipado
106
+
107
+ ### Efeitos operacionais
108
+
109
+ O vertical usa as 5 categorias oficiais da Sema:
110
+
111
+ - `persistencia`
112
+ - `consulta`
113
+ - `evento`
114
+ - `notificacao`
115
+ - `auditoria`
116
+
117
+ Também usa `criticidade` para deixar claro o peso operacional do efeito.
118
+
119
+ ### Falhas reais
120
+
121
+ O vertical cobre explicitamente:
122
+
123
+ - autorizacao negada
124
+ - saldo insuficiente
125
+ - timeout de gateway
126
+
127
+ ## Fluxo de trabalho recomendado
128
+
129
+ ### 1. Escrever ou ajustar os arquivos `.sema`
130
+
131
+ Use o domínio compartilhado em um módulo e a operação em outro módulo.
132
+
133
+ ### 2. Aplicar o formato canônico
134
+
135
+ ```bash
136
+ sema formatar exemplos
137
+ ```
138
+
139
+ ### 3. Validar semanticamente
140
+
141
+ ```bash
142
+ sema validar exemplos/pagamento.sema
143
+ ```
144
+
145
+ ### 4. Gerar código
146
+
147
+ ```bash
148
+ sema compilar exemplos/pagamento.sema --alvo typescript --saida ./.tmp/pagamento-ts
149
+ sema compilar exemplos/pagamento.sema --alvo python --saida ./.tmp/pagamento-py
150
+ ```
151
+
152
+ ### 5. Verificar o vertical completo
153
+
154
+ ```bash
155
+ sema verificar exemplos/pagamento.sema --json --saida ./.tmp/verificacao-pagamento
156
+ ```
157
+
158
+ ## O que esse vertical prova
159
+
160
+ Se esse vertical passa, a Sema já consegue demonstrar que:
161
+
162
+ - modela contrato público
163
+ - modela superficie sensível sem deixar segurança invisível
164
+ - modela efeitos operacionais
165
+ - modela falhas reais
166
+ - modulariza domínio com `use`
167
+ - declara idempotencia e execução crítica sem criar sintaxe nova
168
+ - gera artefatos coerentes para TypeScript e Python
169
+ - executa testes gerados sem gambiarra conceitual
170
+
171
+ Esse e o criterio pratico que sustenta o uso público do vertical de pagamento como referência para IA e geracao.
@@ -1,151 +1,151 @@
1
- # Persistência Vendor-First
2
-
3
- <!-- sema:i18n -->
4
- > EN: English first. The canonical operational body below may still be in Portuguese until full translation lands.
5
- > PT: Português depois, com acentos preservados.
6
- > ES: Español al final; não traduza comandos, rotas nem sómbolos `.sema` sem contrato.
7
-
8
-
9
- Sema 1.5.28 trata banco como superficie semântica de primeira classe. Isso significa assumir diferenças reais entre engines e coloca-las no contrato, no semântico, na IR, no drift, no impact map, na renomeacao assistida, no `verificar` e na extensao. Nesta linha, o `drift` também materializa persistência local real em `Preferences`, `localStorage` e `sessionStorage` quando a task está ancorada no arquivo que usa essas APIs, preservando o framing IA-first da release atual.
10
-
11
- ## Engines publicas
12
-
13
- - `postgres`
14
- - `mysql`
15
- - `sqlite`
16
- - `mongodb`
17
- - `redis`
18
-
19
- ## Exemplo PostgreSQL
20
-
21
- ```sema
22
- database principal_postgres {
23
- engine: postgres
24
- schema: public
25
- consistency: forte
26
- durability: alta
27
- transaction_model: mvcc
28
- query_model: sql
29
- capabilities {
30
- joins
31
- views
32
- foreign_keys
33
- }
34
- table pedidos {
35
- entity: Pedido
36
- }
37
- relationship pedido_cliente {
38
- from: Pedido
39
- to: Cliente
40
- }
41
- query buscar_pedidos {
42
- mode: sql
43
- }
44
- }
45
- ```
46
-
47
- ## Exemplo MySQL
48
-
49
- ```sema
50
- database principal_mysql {
51
- engine: mysql
52
- consistency: forte
53
- durability: alta
54
- transaction_model: bloqueio
55
- query_model: sql
56
- table faturamento {
57
- table: faturamento
58
- }
59
- index faturamento_status {
60
- table: faturamento
61
- }
62
- query buscar_faturas {
63
- mode: sql
64
- }
65
- }
66
- ```
67
-
68
- ## Exemplo SQLite
69
-
70
- ```sema
71
- database principal_sqlite {
72
- engine: sqlite
73
- consistency: snapshot
74
- durability: media
75
- transaction_model: single_thread
76
- query_model: sql
77
- table cache_local {
78
- table: cache_local
79
- }
80
- retention limpeza_local {
81
- retention: "7d"
82
- }
83
- }
84
- ```
85
-
86
- ## Exemplo MongoDB
87
-
88
- ```sema
89
- database principal_mongodb {
90
- engine: mongodb
91
- consistency: eventual
92
- durability: alta
93
- transaction_model: documento
94
- query_model: documento
95
- collection pedidos {
96
- collection: pedidos
97
- }
98
- document pedido_snapshot {
99
- entity: PedidoSnapshot
100
- }
101
- query pipeline_pedido {
102
- mode: pipeline
103
- }
104
- }
105
- ```
106
-
107
- ## Exemplo Redis
108
-
109
- ```sema
110
- database principal_redis {
111
- engine: redis
112
- consistency: eventual
113
- durability: media
114
- transaction_model: single_thread
115
- query_model: chave_valor
116
- keyspace cache_pedidos {
117
- ttl: "300s"
118
- }
119
- stream eventos_pedido {
120
- surface: fila
121
- }
122
- retention expurgo_cache {
123
- retention: "300s"
124
- }
125
- }
126
- ```
127
-
128
- ## Compatibilidade calculada
129
-
130
- Cada recurso recebe compatibilidade por engine:
131
-
132
- - `nativo`
133
- - `adaptado`
134
- - `parcial`
135
- - `invalido`
136
-
137
- Isso deixa explícito quando o contrato está pedindo portabilidade falsa, por exemplo:
138
-
139
- - `table` em `redis`
140
- - `foreign_keys` em engine sem suporte equivalente
141
- - transação multi-documento tratada como universal
142
-
143
- ## Onde isso aparece
144
-
145
- - parser e AST
146
- - IR canonica
147
- - analisador semântico
148
- - formatador
149
- - `sema drift`
150
- - `sema importar`
151
- - extensao VS Code
1
+ # Persistência Vendor-First
2
+
3
+ <!-- sema:i18n -->
4
+ > EN: English first. The canonical operational body below may still be in Portuguese until full translation lands.
5
+ > PT: Português depois, com acentos preservados.
6
+ > ES: Español al final; não traduza comandos, rotas nem sómbolos `.sema` sem contrato.
7
+
8
+
9
+ Sema 1.5.29 trata banco como superficie semântica de primeira classe. Isso significa assumir diferenças reais entre engines e coloca-las no contrato, no semântico, na IR, no drift, no impact map, na renomeacao assistida, no `verificar` e na extensao. Nesta linha, o `drift` também materializa persistência local real em `Preferences`, `localStorage` e `sessionStorage` quando a task está ancorada no arquivo que usa essas APIs, preservando o framing IA-first da release atual.
10
+
11
+ ## Engines publicas
12
+
13
+ - `postgres`
14
+ - `mysql`
15
+ - `sqlite`
16
+ - `mongodb`
17
+ - `redis`
18
+
19
+ ## Exemplo PostgreSQL
20
+
21
+ ```sema
22
+ database principal_postgres {
23
+ engine: postgres
24
+ schema: public
25
+ consistency: forte
26
+ durability: alta
27
+ transaction_model: mvcc
28
+ query_model: sql
29
+ capabilities {
30
+ joins
31
+ views
32
+ foreign_keys
33
+ }
34
+ table pedidos {
35
+ entity: Pedido
36
+ }
37
+ relationship pedido_cliente {
38
+ from: Pedido
39
+ to: Cliente
40
+ }
41
+ query buscar_pedidos {
42
+ mode: sql
43
+ }
44
+ }
45
+ ```
46
+
47
+ ## Exemplo MySQL
48
+
49
+ ```sema
50
+ database principal_mysql {
51
+ engine: mysql
52
+ consistency: forte
53
+ durability: alta
54
+ transaction_model: bloqueio
55
+ query_model: sql
56
+ table faturamento {
57
+ table: faturamento
58
+ }
59
+ index faturamento_status {
60
+ table: faturamento
61
+ }
62
+ query buscar_faturas {
63
+ mode: sql
64
+ }
65
+ }
66
+ ```
67
+
68
+ ## Exemplo SQLite
69
+
70
+ ```sema
71
+ database principal_sqlite {
72
+ engine: sqlite
73
+ consistency: snapshot
74
+ durability: media
75
+ transaction_model: single_thread
76
+ query_model: sql
77
+ table cache_local {
78
+ table: cache_local
79
+ }
80
+ retention limpeza_local {
81
+ retention: "7d"
82
+ }
83
+ }
84
+ ```
85
+
86
+ ## Exemplo MongoDB
87
+
88
+ ```sema
89
+ database principal_mongodb {
90
+ engine: mongodb
91
+ consistency: eventual
92
+ durability: alta
93
+ transaction_model: documento
94
+ query_model: documento
95
+ collection pedidos {
96
+ collection: pedidos
97
+ }
98
+ document pedido_snapshot {
99
+ entity: PedidoSnapshot
100
+ }
101
+ query pipeline_pedido {
102
+ mode: pipeline
103
+ }
104
+ }
105
+ ```
106
+
107
+ ## Exemplo Redis
108
+
109
+ ```sema
110
+ database principal_redis {
111
+ engine: redis
112
+ consistency: eventual
113
+ durability: media
114
+ transaction_model: single_thread
115
+ query_model: chave_valor
116
+ keyspace cache_pedidos {
117
+ ttl: "300s"
118
+ }
119
+ stream eventos_pedido {
120
+ surface: fila
121
+ }
122
+ retention expurgo_cache {
123
+ retention: "300s"
124
+ }
125
+ }
126
+ ```
127
+
128
+ ## Compatibilidade calculada
129
+
130
+ Cada recurso recebe compatibilidade por engine:
131
+
132
+ - `nativo`
133
+ - `adaptado`
134
+ - `parcial`
135
+ - `invalido`
136
+
137
+ Isso deixa explícito quando o contrato está pedindo portabilidade falsa, por exemplo:
138
+
139
+ - `table` em `redis`
140
+ - `foreign_keys` em engine sem suporte equivalente
141
+ - transação multi-documento tratada como universal
142
+
143
+ ## Onde isso aparece
144
+
145
+ - parser e AST
146
+ - IR canonica
147
+ - analisador semântico
148
+ - formatador
149
+ - `sema drift`
150
+ - `sema importar`
151
+ - extensao VS Code