@semacode/cli 1.3.6 → 1.3.7

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 (98) hide show
  1. package/AGENTS.md +272 -0
  2. package/LICENSE +22 -0
  3. package/README.md +73 -0
  4. package/SEMA_BRIEF.curto.txt +9 -0
  5. package/SEMA_BRIEF.md +49 -0
  6. package/SEMA_BRIEF.micro.txt +7 -0
  7. package/SEMA_INDEX.json +546 -0
  8. package/dist/projeto.js +1 -3
  9. package/dist/projeto.js.map +1 -1
  10. package/dist/typescript-http.js +1 -1
  11. package/dist/typescript-http.js.map +1 -1
  12. package/docs/AGENT_STARTER.md +102 -0
  13. package/docs/como-ensinar-a-sema-para-ia.md +149 -0
  14. package/docs/fluxo-pratico-ia-sema.md +177 -0
  15. package/docs/instalacao-e-primeiro-uso.md +196 -0
  16. package/docs/integracao-com-ia.md +228 -0
  17. package/docs/pagamento-ponta-a-ponta.md +155 -0
  18. package/docs/prompt-base-ia-sema.md +104 -0
  19. package/docs/sintaxe.md +361 -0
  20. package/exemplos/agendamento.sema +106 -0
  21. package/exemplos/assinatura.sema +136 -0
  22. package/exemplos/auditoria.sema +88 -0
  23. package/exemplos/autenticacao.sema +125 -0
  24. package/exemplos/automacao.sema +107 -0
  25. package/exemplos/cadastro_usuario.sema +54 -0
  26. package/exemplos/calculadora.sema +78 -0
  27. package/exemplos/crud_simples.sema +89 -0
  28. package/exemplos/estoque.sema +126 -0
  29. package/exemplos/exportacao.sema +94 -0
  30. package/exemplos/fila.sema +131 -0
  31. package/exemplos/integracao_externa.sema +94 -0
  32. package/exemplos/multi_tenant.sema +140 -0
  33. package/exemplos/notificacao.sema +98 -0
  34. package/exemplos/operacao_estrategia.sema +402 -0
  35. package/exemplos/pagamento.sema +222 -0
  36. package/exemplos/pagamento_dominio.sema +35 -0
  37. package/exemplos/pedido.sema +119 -0
  38. package/exemplos/permissao.sema +121 -0
  39. package/exemplos/relatorio.sema +93 -0
  40. package/exemplos/testes_embutidos.sema +45 -0
  41. package/exemplos/tratamento_erro.sema +157 -0
  42. package/exemplos/upload_arquivo.sema +93 -0
  43. package/exemplos/webhook.sema +96 -0
  44. package/llms-full.txt +34 -0
  45. package/llms.txt +17 -0
  46. package/logo.png +0 -0
  47. package/node_modules/@sema/gerador-css/package.json +3 -10
  48. package/node_modules/@sema/gerador-dart/package.json +3 -10
  49. package/node_modules/@sema/gerador-html/package.json +3 -10
  50. package/node_modules/@sema/gerador-javascript/package.json +3 -10
  51. package/node_modules/@sema/gerador-lua/package.json +3 -10
  52. package/node_modules/@sema/gerador-python/package.json +3 -10
  53. package/node_modules/@sema/gerador-typescript/package.json +3 -10
  54. package/node_modules/@sema/nucleo/package.json +3 -6
  55. package/node_modules/@sema/padroes/package.json +3 -6
  56. package/package.json +33 -21
  57. package/node_modules/@sema/gerador-css/src/index.ts +0 -605
  58. package/node_modules/@sema/gerador-css/tsconfig.json +0 -13
  59. package/node_modules/@sema/gerador-css/tsconfig.tsbuildinfo +0 -1
  60. package/node_modules/@sema/gerador-dart/src/index.ts +0 -52
  61. package/node_modules/@sema/gerador-dart/tsconfig.json +0 -13
  62. package/node_modules/@sema/gerador-dart/tsconfig.tsbuildinfo +0 -1
  63. package/node_modules/@sema/gerador-html/src/index.ts +0 -185
  64. package/node_modules/@sema/gerador-html/tsconfig.json +0 -13
  65. package/node_modules/@sema/gerador-html/tsconfig.tsbuildinfo +0 -1
  66. package/node_modules/@sema/gerador-javascript/src/index.ts +0 -461
  67. package/node_modules/@sema/gerador-javascript/tsconfig.json +0 -13
  68. package/node_modules/@sema/gerador-javascript/tsconfig.tsbuildinfo +0 -1
  69. package/node_modules/@sema/gerador-lua/src/index.d.ts +0 -3
  70. package/node_modules/@sema/gerador-lua/src/index.js.map +0 -1
  71. package/node_modules/@sema/gerador-lua/src/index.ts +0 -359
  72. package/node_modules/@sema/gerador-lua/tsconfig.json +0 -13
  73. package/node_modules/@sema/gerador-lua/tsconfig.tsbuildinfo +0 -1
  74. package/node_modules/@sema/gerador-python/src/index.ts +0 -706
  75. package/node_modules/@sema/gerador-python/tsconfig.json +0 -13
  76. package/node_modules/@sema/gerador-python/tsconfig.tsbuildinfo +0 -1
  77. package/node_modules/@sema/gerador-typescript/src/index.ts +0 -728
  78. package/node_modules/@sema/gerador-typescript/tsconfig.json +0 -13
  79. package/node_modules/@sema/gerador-typescript/tsconfig.tsbuildinfo +0 -1
  80. package/node_modules/@sema/nucleo/src/ast/tipos.ts +0 -191
  81. package/node_modules/@sema/nucleo/src/diagnosticos/index.ts +0 -43
  82. package/node_modules/@sema/nucleo/src/formatador/index.ts +0 -507
  83. package/node_modules/@sema/nucleo/src/index.ts +0 -133
  84. package/node_modules/@sema/nucleo/src/ir/conversor.ts +0 -912
  85. package/node_modules/@sema/nucleo/src/ir/modelos.ts +0 -331
  86. package/node_modules/@sema/nucleo/src/lexer/lexer.ts +0 -166
  87. package/node_modules/@sema/nucleo/src/lexer/tokens.ts +0 -64
  88. package/node_modules/@sema/nucleo/src/parser/gramatica.ebnf +0 -39
  89. package/node_modules/@sema/nucleo/src/parser/parser.ts +0 -790
  90. package/node_modules/@sema/nucleo/src/semantico/analisador.ts +0 -2692
  91. package/node_modules/@sema/nucleo/src/semantico/estruturas.ts +0 -632
  92. package/node_modules/@sema/nucleo/src/semantico/seguranca.ts +0 -362
  93. package/node_modules/@sema/nucleo/src/util/arquivos.ts +0 -28
  94. package/node_modules/@sema/nucleo/tsconfig.json +0 -9
  95. package/node_modules/@sema/nucleo/tsconfig.tsbuildinfo +0 -1
  96. package/node_modules/@sema/padroes/src/index.ts +0 -251
  97. package/node_modules/@sema/padroes/tsconfig.json +0 -9
  98. package/node_modules/@sema/padroes/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,546 @@
1
+ {
2
+ "comando": "resumo-projeto",
3
+ "geradoEm": "2026-04-03T14:43:39.329Z",
4
+ "cliVersao": "1.2.17",
5
+ "baseProjeto": "c:\\GitHub\\Sema",
6
+ "totalModulos": 4,
7
+ "entradaCanonica": {
8
+ "descricao": "Entrada canonica do repositorio para IA. O repo nao e human-first; a IA deve começar por esses artefatos antes de abrir codigo cru.",
9
+ "ordemLeitura": [
10
+ "llms.txt",
11
+ "SEMA_BRIEF.md",
12
+ "SEMA_INDEX.json",
13
+ "AGENTS.md",
14
+ "README.md",
15
+ "llms-full.txt"
16
+ ],
17
+ "porCapacidade": {
18
+ "pequena": [
19
+ "llms.txt",
20
+ "SEMA_BRIEF.micro.txt",
21
+ "SEMA_INDEX.json",
22
+ "AGENTS.md"
23
+ ],
24
+ "media": [
25
+ "llms.txt",
26
+ "SEMA_BRIEF.curto.txt",
27
+ "SEMA_INDEX.json",
28
+ "AGENTS.md",
29
+ "README.md"
30
+ ],
31
+ "grande": [
32
+ "llms-full.txt",
33
+ "SEMA_BRIEF.md",
34
+ "SEMA_INDEX.json",
35
+ "AGENTS.md",
36
+ "README.md"
37
+ ]
38
+ },
39
+ "docsSuporte": [
40
+ "docs/AGENT_STARTER.md",
41
+ "docs/integracao-com-ia.md",
42
+ "docs/fluxo-pratico-ia-sema.md",
43
+ "docs/como-ensinar-a-sema-para-ia.md",
44
+ "docs/sintaxe.md",
45
+ "docs/cli.md"
46
+ ],
47
+ "guiaPorCapacidade": {
48
+ "pequena": {
49
+ "descricao": "IA gratuita ou com contexto curto. Leia so o cartao semantico e o briefing minimo.",
50
+ "artefatos": [
51
+ "resumo.micro.txt",
52
+ "briefing.min.json",
53
+ "prompt-curto.txt"
54
+ ],
55
+ "ordemLeitura": [
56
+ "resumo.micro.txt",
57
+ "briefing.min.json",
58
+ "resumo.curto.txt"
59
+ ],
60
+ "evitar": [
61
+ "ast.json",
62
+ "ir.json",
63
+ "diagnosticos.json"
64
+ ]
65
+ },
66
+ "media": {
67
+ "descricao": "IA com contexto medio. Aguenta resumo expandido, briefing minimo e drift.",
68
+ "artefatos": [
69
+ "resumo.curto.txt",
70
+ "briefing.min.json",
71
+ "drift.json",
72
+ "prompt-curto.txt"
73
+ ],
74
+ "ordemLeitura": [
75
+ "resumo.curto.txt",
76
+ "briefing.min.json",
77
+ "drift.json",
78
+ "resumo.md"
79
+ ],
80
+ "evitar": [
81
+ "ast.json"
82
+ ]
83
+ },
84
+ "grande": {
85
+ "descricao": "IA com contexto grande ou tool use. Pode consumir o pacote completo.",
86
+ "artefatos": [
87
+ "README.md",
88
+ "resumo.md",
89
+ "briefing.json",
90
+ "drift.json",
91
+ "ir.json",
92
+ "ast.json"
93
+ ],
94
+ "ordemLeitura": [
95
+ "README.md",
96
+ "resumo.md",
97
+ "briefing.json",
98
+ "drift.json",
99
+ "ir.json",
100
+ "ast.json"
101
+ ],
102
+ "evitar": []
103
+ }
104
+ }
105
+ },
106
+ "guiaPorCapacidade": {
107
+ "pequena": {
108
+ "descricao": "IA gratuita ou com contexto curto. Leia so o cartao semantico e o briefing minimo.",
109
+ "artefatos": [
110
+ "resumo.micro.txt",
111
+ "briefing.min.json",
112
+ "prompt-curto.txt"
113
+ ],
114
+ "ordemLeitura": [
115
+ "resumo.micro.txt",
116
+ "briefing.min.json",
117
+ "resumo.curto.txt"
118
+ ],
119
+ "evitar": [
120
+ "ast.json",
121
+ "ir.json",
122
+ "diagnosticos.json"
123
+ ]
124
+ },
125
+ "media": {
126
+ "descricao": "IA com contexto medio. Aguenta resumo expandido, briefing minimo e drift.",
127
+ "artefatos": [
128
+ "resumo.curto.txt",
129
+ "briefing.min.json",
130
+ "drift.json",
131
+ "prompt-curto.txt"
132
+ ],
133
+ "ordemLeitura": [
134
+ "resumo.curto.txt",
135
+ "briefing.min.json",
136
+ "drift.json",
137
+ "resumo.md"
138
+ ],
139
+ "evitar": [
140
+ "ast.json"
141
+ ]
142
+ },
143
+ "grande": {
144
+ "descricao": "IA com contexto grande ou tool use. Pode consumir o pacote completo.",
145
+ "artefatos": [
146
+ "README.md",
147
+ "resumo.md",
148
+ "briefing.json",
149
+ "drift.json",
150
+ "ir.json",
151
+ "ast.json"
152
+ ],
153
+ "ordemLeitura": [
154
+ "README.md",
155
+ "resumo.md",
156
+ "briefing.json",
157
+ "drift.json",
158
+ "ir.json",
159
+ "ast.json"
160
+ ],
161
+ "evitar": []
162
+ }
163
+ },
164
+ "modulos": [
165
+ {
166
+ "geradoEm": "2026-04-03T14:43:39.329Z",
167
+ "arquivo": "c:\\GitHub\\Sema\\contratos\\pedidos.sema",
168
+ "modulo": "app.pedidos",
169
+ "perfilCompatibilidade": "publico",
170
+ "scoreSemantico": 35,
171
+ "confiancaGeral": "media",
172
+ "riscoOperacional": "alto",
173
+ "faz": "governa 1 rota(s), 1 task(s) com foco em criar pedido publico",
174
+ "tarefasPrincipais": [
175
+ "criar_pedido"
176
+ ],
177
+ "entradasChave": [
178
+ "criar_pedido(cliente_id, total)"
179
+ ],
180
+ "saidasChave": [
181
+ "criar_pedido(pedido_id, status)"
182
+ ],
183
+ "superficiesPublicas": [
184
+ "POST /pedidos"
185
+ ],
186
+ "regrasCriticas": [
187
+ "pedido_id existe",
188
+ "status existe",
189
+ "total > 0"
190
+ ],
191
+ "efeitos": [
192
+ "auditoria pedidos criticidade = media",
193
+ "db.write Pedido criticidade = alta privilegio = escrita isolamento = tenant",
194
+ "secret.read pedidos_api_key criticidade = media privilegio = leitura isolamento = processo"
195
+ ],
196
+ "erros": [],
197
+ "entidadesAfetadas": [
198
+ "Pedido",
199
+ "pedidos",
200
+ "pedidos_api_key"
201
+ ],
202
+ "arquivosProvaveis": [],
203
+ "simbolosRelacionados": [],
204
+ "riscosPrincipais": [
205
+ "criar_pedido:alto",
206
+ "efeito_critico",
207
+ "efeito_privilegiado"
208
+ ],
209
+ "lacunas": [
210
+ "sem_impl",
211
+ "vinculo_quebrado"
212
+ ],
213
+ "inferido": [],
214
+ "checksSugeridos": [
215
+ "confirmar proibicoes operacionais",
216
+ "corrigir vinculos rastreaveis",
217
+ "revisar auth e authz",
218
+ "revisar efeitos operacionais",
219
+ "rodar sema drift --json",
220
+ "rodar sema validar --json"
221
+ ],
222
+ "testesMinimos": [
223
+ "sema drift <arquivo> --json",
224
+ "sema validar <arquivo> --json",
225
+ "sema verificar <arquivo-ou-pasta> --json"
226
+ ],
227
+ "consumerFramework": "nextjs-consumer",
228
+ "appRoutes": [],
229
+ "consumerSurfaces": [],
230
+ "consumerBridges": [],
231
+ "arquivosProvaveisEditar": []
232
+ },
233
+ {
234
+ "geradoEm": "2026-04-03T14:43:39.329Z",
235
+ "arquivo": "c:\\GitHub\\Sema\\contratos\\sema\\ergonomia_e_dominio.sema",
236
+ "modulo": "sema.produto.ergonomia_e_dominio",
237
+ "perfilCompatibilidade": "interno",
238
+ "scoreSemantico": 90,
239
+ "confiancaGeral": "alta",
240
+ "riscoOperacional": "alto",
241
+ "faz": "governa 2 superficie(s), 5 task(s) com foco em scorecard atualizado",
242
+ "tarefasPrincipais": [
243
+ "reduzir_atrito_sintatico_em_contrato_rico",
244
+ "modelar_payload_com_mais_precisao",
245
+ "explicitar_variacao_e_compatibilidade",
246
+ "separar_validacao_regra_e_poscondicao",
247
+ "consultar_scorecard_compatibilidade"
248
+ ],
249
+ "entradasChave": [
250
+ "reduzir_atrito_sintatico_em_contrato_rico(contrato_atual, repeticao_detectada)",
251
+ "modelar_payload_com_mais_precisao(contrato_atual, payload_json_generico, exemplos_payload)",
252
+ "explicitar_variacao_e_compatibilidade(contrato_atual, perfil_atual)",
253
+ "separar_validacao_regra_e_poscondicao(contrato_atual, garantias_confusas)"
254
+ ],
255
+ "saidasChave": [
256
+ "reduzir_atrito_sintatico_em_contrato_rico(leitura_mais_limpa, ambiguidade_controlada, perfil)",
257
+ "modelar_payload_com_mais_precisao(tipo_composto_explicito, cardinalidade_explicita, shape_rico)",
258
+ "explicitar_variacao_e_compatibilidade(versao_explicita, fallback_claro, contrato_publico_distinto)",
259
+ "separar_validacao_regra_e_poscondicao(validacao_de_input_clara, regra_de_negocio_clara, pos_condicao_clara)"
260
+ ],
261
+ "superficiesPublicas": [
262
+ "evento:scorecard_atualizado",
263
+ "policy:compatibilidade_publica"
264
+ ],
265
+ "regrasCriticas": [
266
+ "ambiguidade_controlada existe",
267
+ "cardinalidade_explicita existe",
268
+ "contrato_publico_distinto existe",
269
+ "fallback_claro existe",
270
+ "leitura_mais_limpa existe",
271
+ "nota existe",
272
+ "perfil em [ PUBLICO , INTERNO , EXPERIMENTAL , LEGADO , DEPRECADO ]",
273
+ "pos_condicao_clara existe"
274
+ ],
275
+ "efeitos": [],
276
+ "erros": [],
277
+ "entidadesAfetadas": [
278
+ "PerfilCompatibilidade"
279
+ ],
280
+ "arquivosProvaveis": [
281
+ "c:\\GitHub\\Sema\\pacotes\\cli\\src\\projeto.ts",
282
+ "c:\\GitHub\\Sema\\pacotes\\nucleo\\src\\formatador\\index.ts",
283
+ "c:\\GitHub\\Sema\\pacotes\\nucleo\\src\\ir\\conversor.ts",
284
+ "c:\\GitHub\\Sema\\pacotes\\nucleo\\src\\semantico\\analisador.ts"
285
+ ],
286
+ "simbolosRelacionados": [
287
+ "analisarSemantica",
288
+ "converterParaIr",
289
+ "formatarCodigo",
290
+ "resolverAlvosVerificacao"
291
+ ],
292
+ "riscosPrincipais": [
293
+ "consultar_scorecard_compatibilidade:medio",
294
+ "explicitar_variacao_e_compatibilidade:medio",
295
+ "modelar_payload_com_mais_precisao:alto",
296
+ "reduzir_atrito_sintatico_em_contrato_rico:medio",
297
+ "separar_validacao_regra_e_poscondicao:medio"
298
+ ],
299
+ "lacunas": [
300
+ "sem_impl",
301
+ "vinculo_quebrado"
302
+ ],
303
+ "inferido": [
304
+ "consultar_scorecard_compatibilidade:pacotes/cli/src/projeto.ts",
305
+ "evento:scorecard_atualizado:scorecard_compatibilidade",
306
+ "explicitar_variacao_e_compatibilidade:pacotes/nucleo/src/ir/conversor.ts",
307
+ "modelar_payload_com_mais_precisao:pacotes/nucleo/src/semantico/analisador.ts",
308
+ "policy:compatibilidade_publica:compatibilidade_publica",
309
+ "reduzir_atrito_sintatico_em_contrato_rico:pacotes/nucleo/src/formatador/index.ts"
310
+ ],
311
+ "checksSugeridos": [
312
+ "confirmar proibicoes operacionais",
313
+ "corrigir vinculos rastreaveis",
314
+ "revisar auth e authz",
315
+ "revisar efeitos operacionais",
316
+ "rodar sema drift --json",
317
+ "rodar sema validar --json"
318
+ ],
319
+ "testesMinimos": [
320
+ "sema drift <arquivo> --json",
321
+ "sema validar <arquivo> --json",
322
+ "sema verificar <arquivo-ou-pasta> --json"
323
+ ],
324
+ "consumerFramework": "nextjs-consumer",
325
+ "appRoutes": [],
326
+ "consumerSurfaces": [],
327
+ "consumerBridges": [],
328
+ "arquivosProvaveisEditar": [
329
+ "c:\\GitHub\\Sema\\pacotes\\cli\\src\\projeto.ts",
330
+ "c:\\GitHub\\Sema\\pacotes\\nucleo\\src\\formatador\\index.ts",
331
+ "c:\\GitHub\\Sema\\pacotes\\nucleo\\src\\ir\\conversor.ts",
332
+ "c:\\GitHub\\Sema\\pacotes\\nucleo\\src\\semantico\\analisador.ts"
333
+ ]
334
+ },
335
+ {
336
+ "geradoEm": "2026-04-03T14:43:39.329Z",
337
+ "arquivo": "c:\\GitHub\\Sema\\contratos\\sema\\governanca_ia.sema",
338
+ "modulo": "sema.produto.governanca_ia",
339
+ "perfilCompatibilidade": "publico",
340
+ "scoreSemantico": 90,
341
+ "confiancaGeral": "alta",
342
+ "riscoOperacional": "alto",
343
+ "faz": "governa 2 superficie(s), 4 task(s) com foco em preparar briefing contextual",
344
+ "tarefasPrincipais": [
345
+ "mapear_projeto_sem_adivinhacao",
346
+ "normalizar_saida_sem_ruido",
347
+ "medir_drift_contra_codigo_vivo",
348
+ "padronizar_nomes_para_leitura_de_ia"
349
+ ],
350
+ "entradasChave": [
351
+ "mapear_projeto_sem_adivinhacao(entrada, explicito)",
352
+ "normalizar_saida_sem_ruido(estrutura_desejada)",
353
+ "medir_drift_contra_codigo_vivo(contrato_alvo, codigo_vivo)",
354
+ "padronizar_nomes_para_leitura_de_ia(contrato_atual, sinonimos_em_excesso)"
355
+ ],
356
+ "saidasChave": [
357
+ "mapear_projeto_sem_adivinhacao(base_resolvida, origens_coerentes, codigo_vivo_detectado)",
358
+ "normalizar_saida_sem_ruido(estrutura_canonica, alias_confuso)",
359
+ "medir_drift_contra_codigo_vivo(impls_resolvidas, rotas_resolvidas, ambiguidades_explicitas)",
360
+ "padronizar_nomes_para_leitura_de_ia(nomes_consistentes, leitura_rapida, casos_especiais_reduzidos)"
361
+ ],
362
+ "superficiesPublicas": [
363
+ "webhook:confirmar_contexto_publico",
364
+ "worker:preparar_briefing_contextual"
365
+ ],
366
+ "regrasCriticas": [
367
+ "alias_confuso existe",
368
+ "ambiguidades_explicitas existe",
369
+ "base_resolvida existe",
370
+ "casos_especiais_reduzidos existe",
371
+ "codigo_vivo_detectado existe",
372
+ "estrutura_canonica existe",
373
+ "impls_resolvidas existe",
374
+ "leitura_rapida existe"
375
+ ],
376
+ "efeitos": [],
377
+ "erros": [
378
+ "simbolo_ambiguo"
379
+ ],
380
+ "entidadesAfetadas": [],
381
+ "arquivosProvaveis": [
382
+ "c:\\GitHub\\Sema\\pacotes\\cli\\src\\drift.ts",
383
+ "c:\\GitHub\\Sema\\pacotes\\cli\\src\\index.ts",
384
+ "c:\\GitHub\\Sema\\pacotes\\cli\\src\\projeto.ts",
385
+ "c:\\GitHub\\Sema\\pacotes\\nucleo\\src\\formatador\\index.ts"
386
+ ],
387
+ "simbolosRelacionados": [
388
+ "analisarDriftLegado",
389
+ "carregarProjeto",
390
+ "comandoContextoIa",
391
+ "formatarCodigo",
392
+ "normalizarEstruturaSaida"
393
+ ],
394
+ "riscosPrincipais": [
395
+ "mapear_projeto_sem_adivinhacao:medio",
396
+ "medir_drift_contra_codigo_vivo:alto",
397
+ "normalizar_saida_sem_ruido:medio",
398
+ "padronizar_nomes_para_leitura_de_ia:medio"
399
+ ],
400
+ "lacunas": [
401
+ "sem_impl",
402
+ "vinculo_quebrado"
403
+ ],
404
+ "inferido": [
405
+ "mapear_projeto_sem_adivinhacao:pacotes/cli/src/projeto.ts",
406
+ "medir_drift_contra_codigo_vivo:pacotes/cli/src/drift.ts",
407
+ "normalizar_saida_sem_ruido:pacotes/cli/src/projeto.ts",
408
+ "padronizar_nomes_para_leitura_de_ia:pacotes/nucleo/src/formatador/index.ts",
409
+ "sema.produto.governanca_ia:pacotes/cli/src/index.ts",
410
+ "webhook:confirmar_contexto_publico:/ interno / contexto-ia"
411
+ ],
412
+ "checksSugeridos": [
413
+ "confirmar proibicoes operacionais",
414
+ "corrigir vinculos rastreaveis",
415
+ "revisar auth e authz",
416
+ "revisar efeitos operacionais",
417
+ "rodar sema drift --json",
418
+ "rodar sema validar --json"
419
+ ],
420
+ "testesMinimos": [
421
+ "sema drift <arquivo> --json",
422
+ "sema validar <arquivo> --json",
423
+ "sema verificar <arquivo-ou-pasta> --json"
424
+ ],
425
+ "consumerFramework": "nextjs-consumer",
426
+ "appRoutes": [
427
+ "/ranking"
428
+ ],
429
+ "consumerSurfaces": [
430
+ "router:/ranking -> c:\\GitHub\\Sema\\pacotes\\cli\\src\\index.ts"
431
+ ],
432
+ "consumerBridges": [],
433
+ "arquivosProvaveisEditar": [
434
+ "c:\\GitHub\\Sema\\pacotes\\cli\\src\\drift.ts",
435
+ "c:\\GitHub\\Sema\\pacotes\\cli\\src\\index.ts",
436
+ "c:\\GitHub\\Sema\\pacotes\\cli\\src\\projeto.ts",
437
+ "c:\\GitHub\\Sema\\pacotes\\nucleo\\src\\formatador\\index.ts"
438
+ ]
439
+ },
440
+ {
441
+ "geradoEm": "2026-04-03T14:43:39.329Z",
442
+ "arquivo": "c:\\GitHub\\Sema\\contratos\\sema\\linguagem_composta.sema",
443
+ "modulo": "sema.produto.linguagem_composta",
444
+ "perfilCompatibilidade": "interno",
445
+ "scoreSemantico": 90,
446
+ "confiancaGeral": "alta",
447
+ "riscoOperacional": "alto",
448
+ "faz": "governa 1 superficie(s), 5 task(s) com foco em regressao composta",
449
+ "tarefasPrincipais": [
450
+ "interpretar_bloco_nomeado",
451
+ "converter_bloco_composto_para_ir",
452
+ "formatar_bloco_composto",
453
+ "gerar_teste_python_composto",
454
+ "gerar_teste_typescript_composto"
455
+ ],
456
+ "entradasChave": [
457
+ "interpretar_bloco_nomeado(arquivo_semantico, sinais)",
458
+ "converter_bloco_composto_para_ir(arquivo_semantico)",
459
+ "formatar_bloco_composto(arquivo_semantico)",
460
+ "gerar_teste_python_composto(contrato)"
461
+ ],
462
+ "saidasChave": [
463
+ "interpretar_bloco_nomeado(ast_valida, blocos_preservados, status)",
464
+ "converter_bloco_composto_para_ir(ir_coerente, contexto_preservado, status)",
465
+ "formatar_bloco_composto(formato_canonico, bloco_legivel)",
466
+ "gerar_teste_python_composto(dataclass_aninhada, comparacao_tipada)"
467
+ ],
468
+ "superficiesPublicas": [
469
+ "storage:regressao_composta"
470
+ ],
471
+ "regrasCriticas": [
472
+ "asserts_coerentes existe",
473
+ "ast_valida existe",
474
+ "bloco_legivel existe",
475
+ "blocos_preservados existe",
476
+ "comparacao_tipada existe",
477
+ "contexto_preservado existe",
478
+ "dataclass_aninhada existe",
479
+ "formato_canonico existe"
480
+ ],
481
+ "efeitos": [],
482
+ "erros": [],
483
+ "entidadesAfetadas": [
484
+ "SinalTesteComposto",
485
+ "StatusEvolucao"
486
+ ],
487
+ "arquivosProvaveis": [
488
+ "c:\\GitHub\\Sema\\pacotes\\gerador-python\\src\\index.ts",
489
+ "c:\\GitHub\\Sema\\pacotes\\gerador-typescript\\src\\index.ts",
490
+ "c:\\GitHub\\Sema\\pacotes\\nucleo\\src\\formatador\\index.ts",
491
+ "c:\\GitHub\\Sema\\pacotes\\nucleo\\src\\ir\\conversor.ts",
492
+ "c:\\GitHub\\Sema\\pacotes\\nucleo\\src\\parser\\parser.ts"
493
+ ],
494
+ "simbolosRelacionados": [
495
+ "converterParaIr",
496
+ "formatarCodigo",
497
+ "gerarPython",
498
+ "gerarTypeScript",
499
+ "parsear"
500
+ ],
501
+ "riscosPrincipais": [
502
+ "converter_bloco_composto_para_ir:alto",
503
+ "formatar_bloco_composto:medio",
504
+ "gerar_teste_python_composto:medio",
505
+ "gerar_teste_typescript_composto:medio",
506
+ "interpretar_bloco_nomeado:alto"
507
+ ],
508
+ "lacunas": [
509
+ "sem_impl",
510
+ "vinculo_quebrado"
511
+ ],
512
+ "inferido": [
513
+ "converter_bloco_composto_para_ir:pacotes/nucleo/src/ir/conversor.ts",
514
+ "formatar_bloco_composto:pacotes/nucleo/src/formatador/index.ts",
515
+ "gerar_teste_python_composto:pacotes/gerador-python/src/index.ts",
516
+ "gerar_teste_typescript_composto:pacotes/gerador-typescript/src/index.ts",
517
+ "interpretar_bloco_nomeado:pacotes/nucleo/src/parser/parser.ts",
518
+ "sema.produto.linguagem_composta:pacotes/nucleo/src/parser/parser.ts"
519
+ ],
520
+ "checksSugeridos": [
521
+ "confirmar proibicoes operacionais",
522
+ "corrigir vinculos rastreaveis",
523
+ "revisar auth e authz",
524
+ "revisar efeitos operacionais",
525
+ "rodar sema drift --json",
526
+ "rodar sema validar --json"
527
+ ],
528
+ "testesMinimos": [
529
+ "sema drift <arquivo> --json",
530
+ "sema validar <arquivo> --json",
531
+ "sema verificar <arquivo-ou-pasta> --json"
532
+ ],
533
+ "consumerFramework": "nextjs-consumer",
534
+ "appRoutes": [],
535
+ "consumerSurfaces": [],
536
+ "consumerBridges": [],
537
+ "arquivosProvaveisEditar": [
538
+ "c:\\GitHub\\Sema\\pacotes\\gerador-python\\src\\index.ts",
539
+ "c:\\GitHub\\Sema\\pacotes\\gerador-typescript\\src\\index.ts",
540
+ "c:\\GitHub\\Sema\\pacotes\\nucleo\\src\\formatador\\index.ts",
541
+ "c:\\GitHub\\Sema\\pacotes\\nucleo\\src\\ir\\conversor.ts",
542
+ "c:\\GitHub\\Sema\\pacotes\\nucleo\\src\\parser\\parser.ts"
543
+ ]
544
+ }
545
+ ]
546
+ }
package/dist/projeto.js CHANGED
@@ -430,9 +430,7 @@ async function inferirFontesLegado(diretoriosCodigo, baseProjeto, configCarregad
430
430
  const temNext = textosPackage.some((texto) => /"next"\s*:/.test(texto ?? ""))
431
431
  || nextConfigs.length > 0
432
432
  || relacoesTs.some((relacao) => /(?:^|\/)(?:src\/)?app\/api\/.+\/route\.(?:ts|tsx|js|jsx)$/.test(relacao));
433
- const temNextConsumer = textosPackage.some((texto) => /"next"\s*:/.test(texto ?? ""))
434
- || nextConfigs.length > 0
435
- || relacoesTs.some((relacao) => /(?:^|\/)(?:src\/)?app\/(?:(?!api\/).)*?(?:page|layout|loading|error)\.(?:ts|tsx|js|jsx)$/.test(relacao));
433
+ const temNextConsumer = relacoesTs.some((relacao) => /(?:^|\/)(?:src\/)?app\/(?:(?!api\/).)*?(?:page|layout|loading|error)\.(?:ts|tsx|js|jsx)$/.test(relacao));
436
434
  const temSuperficieReactViteConsumer = relacoesTs.some((relacao) => /^(?:src\/)?pages\/.+\.(?:ts|tsx|js|jsx)$/.test(relacao))
437
435
  || relacoesTs.some((relacao) => /^(?:src\/)?App\.(?:ts|tsx|js|jsx)$/.test(relacao))
438
436
  || relacoesTs.some((relacao) => /(?:^|\/)(?:src\/)?(?:app\/)?(?:router|routes)\.(?:ts|tsx|js|jsx)$/.test(relacao));