@semacode/cli 2.3.1 → 3.5.0

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 (281) hide show
  1. package/README.md +265 -217
  2. package/dist/agentContextPack.js +14 -10
  3. package/dist/agentEntryPoints.d.ts +5 -0
  4. package/dist/agentEntryPoints.js +592 -568
  5. package/dist/angular-consumer-standalone.js +1 -1
  6. package/dist/bin.d.ts +6 -0
  7. package/dist/bin.js +130 -0
  8. package/dist/cliArgs.js +4 -4
  9. package/dist/cliControlError.d.ts +12 -0
  10. package/dist/cliControlError.js +47 -0
  11. package/dist/cliGrammar.d.ts +11 -0
  12. package/dist/cliGrammar.js +551 -0
  13. package/dist/cliHelp.d.ts +13 -0
  14. package/dist/cliHelp.js +19 -0
  15. package/dist/cliHelpTexto.d.ts +3 -0
  16. package/dist/cliHelpTexto.js +168 -0
  17. package/dist/cliRuntime.d.ts +2 -0
  18. package/dist/cliRuntime.js +31 -0
  19. package/dist/comandos.js +9 -22
  20. package/dist/contexto.js +5 -5
  21. package/dist/dev/index.d.ts +1 -0
  22. package/dist/dev/index.js +51 -9
  23. package/dist/discovery/catalog.js +3 -3
  24. package/dist/distribuicao/filesystemGlobal.d.ts +63 -0
  25. package/dist/distribuicao/filesystemGlobal.js +701 -0
  26. package/dist/distribuicao/index.d.ts +7 -0
  27. package/dist/distribuicao/index.js +227 -0
  28. package/dist/distribuicao/launcherGlobal.d.ts +53 -0
  29. package/dist/distribuicao/launcherGlobal.js +643 -0
  30. package/dist/distribuicao/launcherWindows.d.ts +28 -0
  31. package/dist/distribuicao/launcherWindows.js +326 -0
  32. package/dist/distribuicao/lockContextGlobal.d.ts +10 -0
  33. package/dist/distribuicao/lockContextGlobal.js +17 -0
  34. package/dist/distribuicao/lockGlobal.d.ts +6 -0
  35. package/dist/distribuicao/lockGlobal.js +520 -0
  36. package/dist/distribuicao/skillGlobal.d.ts +48 -0
  37. package/dist/distribuicao/skillGlobal.js +652 -0
  38. package/dist/distribuicao/skillIntentPolicy.d.ts +21 -0
  39. package/dist/distribuicao/skillIntentPolicy.js +115 -0
  40. package/dist/distribuicao/tipos.d.ts +50 -0
  41. package/dist/distribuicao/tipos.js +10 -0
  42. package/dist/distribuicao/versaoSemantica.d.ts +3 -0
  43. package/dist/distribuicao/versaoSemantica.js +62 -0
  44. package/dist/docs.part01.d.ts +4 -1
  45. package/dist/docs.part01.js +8 -0
  46. package/dist/docs.part02.js +9 -1
  47. package/dist/drift.part01.d.ts +33 -25
  48. package/dist/drift.part01.js +2 -1
  49. package/dist/drift.part04.d.ts +26 -5
  50. package/dist/drift.part04.js +123 -19
  51. package/dist/drift.part05.d.ts +2 -2
  52. package/dist/drift.part05.js +8 -6
  53. package/dist/drift.part06.d.ts +2 -2
  54. package/dist/drift.part06.js +113 -26
  55. package/dist/drift.part07.d.ts +11 -11
  56. package/dist/drift.part07.js +261 -265
  57. package/dist/drift.part08.d.ts +2 -2
  58. package/dist/drift.part08.js +35 -26
  59. package/dist/drift.part09.d.ts +2 -2
  60. package/dist/drift.part09.js +10 -3
  61. package/dist/drift.part11.js +261 -58
  62. package/dist/drift.part12.d.ts +1 -1
  63. package/dist/drift.part12.js +193 -21
  64. package/dist/drift.part13.d.ts +20 -39
  65. package/dist/drift.part13.js +601 -647
  66. package/dist/drift.part14.js +23 -7
  67. package/dist/driftCacheCas.d.ts +43 -0
  68. package/dist/driftCacheCas.js +351 -0
  69. package/dist/driftCacheFilesystem.d.ts +64 -0
  70. package/dist/driftCacheFilesystem.js +313 -0
  71. package/dist/driftCacheModes.d.ts +38 -0
  72. package/dist/driftCacheModes.js +147 -0
  73. package/dist/driftCacheStore.d.ts +80 -0
  74. package/dist/driftCacheStore.js +603 -0
  75. package/dist/driftCatalogo.d.ts +2 -28
  76. package/dist/driftCatalogo.js +143 -284
  77. package/dist/driftEscopo.d.ts +1 -3
  78. package/dist/driftEscopo.js +235 -151
  79. package/dist/driftEscopoReferencias.d.ts +5 -1
  80. package/dist/driftEscopoReferencias.js +375 -28
  81. package/dist/driftOrcamento.d.ts +0 -6
  82. package/dist/driftOrcamento.js +2 -1
  83. package/dist/execucoesExternas.js +19 -5
  84. package/dist/exemplosOficiais.d.ts +2 -1
  85. package/dist/exemplosOficiais.js +9 -3
  86. package/dist/geracaoCore.d.ts +1 -0
  87. package/dist/geracaoCore.js +6 -6
  88. package/dist/iaPrompts.d.ts +3 -3
  89. package/dist/iaPrompts.js +312 -313
  90. package/dist/importador.part01.d.ts +1 -1
  91. package/dist/importador.part06.d.ts +2 -0
  92. package/dist/importador.part06.js +87 -1
  93. package/dist/importador.part09.js +7 -1
  94. package/dist/index.d.ts +4 -1
  95. package/dist/index.js +6 -25
  96. package/dist/index.part01.d.ts +20 -28
  97. package/dist/index.part01.js +16 -237
  98. package/dist/index.part02.js +36 -22
  99. package/dist/index.part03.d.ts +24 -2
  100. package/dist/index.part03.js +83 -19
  101. package/dist/index.part04.d.ts +10 -2
  102. package/dist/index.part04.js +152 -123
  103. package/dist/index.part05.js +80 -78
  104. package/dist/index.part06.js +34 -17
  105. package/dist/index.part07.d.ts +8 -2
  106. package/dist/index.part07.js +153 -7
  107. package/dist/index.part08.d.ts +1 -1
  108. package/dist/index.part08.js +25 -30
  109. package/dist/initCommand.d.ts +1 -0
  110. package/dist/initCommand.js +20 -4
  111. package/dist/initTemplatesBase.js +6 -4
  112. package/dist/pipelineConteudo/command.d.ts +1 -0
  113. package/dist/pipelineConteudo/command.js +9 -2
  114. package/dist/pipelineConteudo/help.d.ts +2 -0
  115. package/dist/pipelineConteudo/help.js +33 -0
  116. package/dist/profileAuthorCommand.js +3 -7
  117. package/dist/profileCommand.js +3 -7
  118. package/dist/projetoCarregar.js +35 -17
  119. package/dist/projetoCatalogo.d.ts +1 -0
  120. package/dist/projetoCatalogo.js +64 -25
  121. package/dist/projetoConfig.js +2 -0
  122. package/dist/projetoLegado.js +18 -0
  123. package/dist/projetoOrigens.d.ts +2 -0
  124. package/dist/projetoOrigens.js +65 -9
  125. package/dist/projetoTipos.d.ts +1 -0
  126. package/dist/resultadoCli.d.ts +20 -0
  127. package/dist/resultadoCli.js +57 -0
  128. package/dist/saidaCli.d.ts +35 -0
  129. package/dist/saidaCli.js +118 -0
  130. package/dist/sistemasInterativos/acceptanceEvidence.d.ts +22 -0
  131. package/dist/sistemasInterativos/acceptanceEvidence.js +345 -0
  132. package/dist/sistemasInterativos/engineObservation.d.ts +12 -0
  133. package/dist/sistemasInterativos/engineObservation.js +438 -0
  134. package/dist/sistemasInterativos/jobOrchestration.d.ts +2 -0
  135. package/dist/sistemasInterativos/jobOrchestration.js +204 -0
  136. package/dist/sistemasInterativos/operationPrimitives.d.ts +21 -0
  137. package/dist/sistemasInterativos/operationPrimitives.js +194 -0
  138. package/dist/sistemasInterativos/operations.d.ts +4 -39
  139. package/dist/sistemasInterativos/operations.js +5 -1164
  140. package/dist/skillCommand.d.ts +5 -0
  141. package/dist/skillCommand.js +88 -0
  142. package/dist/tipos.d.ts +1 -1
  143. package/dist/typescript-http-modelos.d.ts +1 -1
  144. package/dist/typescript-http-rotas.d.ts +1 -0
  145. package/dist/typescript-http-rotas.js +93 -0
  146. package/dist/typescript-http.d.ts +1 -1
  147. package/dist/typescript-http.js +1 -1
  148. package/dist/verificacaoCache.d.ts +25 -0
  149. package/dist/verificacaoCache.js +80 -0
  150. package/docs/README.md +34 -30
  151. package/docs/ai-integration.md +25 -12
  152. package/docs/ai-onboarding.md +37 -18
  153. package/docs/ai-workflow.md +9 -7
  154. package/docs/cli.md +125 -7
  155. package/docs/commands.md +41 -20
  156. package/docs/deploy.md +21 -8
  157. package/docs/descoberta-capacidades.md +106 -106
  158. package/docs/documentation.md +49 -39
  159. package/docs/drift-cache.md +108 -0
  160. package/docs/getting-started.md +43 -18
  161. package/docs/pipeline-conteudo.md +246 -246
  162. package/docs/profiles.md +54 -54
  163. package/docs/repositories.md +19 -2
  164. package/docs/rollback.md +15 -8
  165. package/docs/security.md +25 -3
  166. package/docs/sistemas-interativos.md +379 -374
  167. package/docs/syntax.md +14 -0
  168. package/docs/testing.md +139 -40
  169. package/exemplos/express_crud.sema +139 -0
  170. package/exemplos/fastify_crud.sema +146 -0
  171. package/exemplos/pipeline-conteudo/README.md +44 -44
  172. package/exemplos/pipeline-conteudo/alvos.json +23 -23
  173. package/exemplos/pipeline-conteudo/definicao.json +136 -136
  174. package/exemplos/profile_simulation.sema +211 -211
  175. package/exemplos/sistemas-interativos/README.md +100 -100
  176. package/exemplos/sistemas-interativos/advanced/acceptance-context-evaluate-valid.json +5 -5
  177. package/exemplos/sistemas-interativos/advanced/acceptance-lock-valid.json +16 -16
  178. package/exemplos/sistemas-interativos/advanced/asset-provenance-valid.json +32 -32
  179. package/exemplos/sistemas-interativos/advanced/autonomy-repair-valid.json +93 -93
  180. package/exemplos/sistemas-interativos/advanced/control-run-definition-valid.json +78 -78
  181. package/exemplos/sistemas-interativos/advanced/control-run-valid.json +27 -27
  182. package/exemplos/sistemas-interativos/advanced/distributed-workers-valid.json +79 -79
  183. package/exemplos/sistemas-interativos/advanced/editor-state-valid.json +42 -42
  184. package/exemplos/sistemas-interativos/advanced/engine-snapshot-after-valid.json +32 -32
  185. package/exemplos/sistemas-interativos/advanced/engine-snapshot-before-valid.json +23 -23
  186. package/exemplos/sistemas-interativos/advanced/job-orchestration-valid.json +39 -39
  187. package/exemplos/sistemas-interativos/advanced/multimodal-evidence-valid.json +46 -46
  188. package/exemplos/sistemas-interativos/advanced/multiplayer-authority-valid.json +39 -39
  189. package/exemplos/sistemas-interativos/advanced/playtest-fuzz-valid.json +37 -37
  190. package/exemplos/sistemas-interativos/advanced/portability-valid.json +104 -104
  191. package/exemplos/sistemas-interativos/advanced/temporal-evidence-valid.json +27 -27
  192. package/exemplos/sistemas-interativos/advanced/temporal-valid.json +118 -118
  193. package/exemplos/sistemas-interativos/experience-ir-valid.json +459 -459
  194. package/exemplos/sistemas-interativos/game-2d.json +83 -83
  195. package/exemplos/sistemas-interativos/game-3d-human.json +81 -81
  196. package/exemplos/sistemas-interativos/game-pixel-16-bit.json +97 -97
  197. package/exemplos/sistemas-interativos/game-pixel-8-bit.json +94 -94
  198. package/exemplos/sistemas-interativos/game-xr-human.json +80 -80
  199. package/exemplos/sistemas-interativos/hybrid-2-5d.json +108 -108
  200. package/exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json +75 -75
  201. package/exemplos/sistemas-interativos/protocol-read-only-valid.json +58 -58
  202. package/exemplos/sistemas-interativos/simulation-2d-controlled.json +97 -97
  203. package/exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json +141 -141
  204. package/exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json +112 -112
  205. package/exemplos/sistemas-interativos/simulation-pixel-16-bit.json +103 -103
  206. package/exemplos/sistemas-interativos/simulation-text-controlled.json +95 -95
  207. package/node_modules/@sema/gerador-cpp/package.json +1 -1
  208. package/node_modules/@sema/gerador-dotnet/package.json +1 -1
  209. package/node_modules/@sema/gerador-lua/dist/index.js +51 -51
  210. package/node_modules/@sema/gerador-php/dist/index.js +113 -113
  211. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js +37 -38
  212. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +1 -0
  213. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +1 -0
  214. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1 -0
  215. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.d.ts +7 -0
  216. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js +33 -10
  217. package/package.json +9 -4
  218. package/scripts/postinstall.mjs +148 -0
  219. package/skills/sema/SKILL.md +199 -0
  220. package/skills/sema/agents/openai.yaml +4 -0
  221. package/dist/driftCache.d.ts +0 -49
  222. package/dist/driftCache.js +0 -311
  223. package/dist/driftCacheIncremental.d.ts +0 -98
  224. package/dist/driftCacheIncremental.js +0 -596
  225. package/dist/driftCatalogoPersistente.d.ts +0 -8
  226. package/dist/driftCatalogoPersistente.js +0 -77
  227. package/node_modules/@sema/gerador-cpp/dist/index.js.map +0 -1
  228. package/node_modules/@sema/gerador-css/dist/index.js.map +0 -1
  229. package/node_modules/@sema/gerador-css/dist/index.part01.js.map +0 -1
  230. package/node_modules/@sema/gerador-css/dist/index.part02.js.map +0 -1
  231. package/node_modules/@sema/gerador-dart/dist/index.js.map +0 -1
  232. package/node_modules/@sema/gerador-dotnet/dist/index.js.map +0 -1
  233. package/node_modules/@sema/gerador-html/dist/index.js.map +0 -1
  234. package/node_modules/@sema/gerador-javascript/dist/index.js.map +0 -1
  235. package/node_modules/@sema/gerador-lua/dist/index.js.map +0 -1
  236. package/node_modules/@sema/gerador-php/dist/index.js.map +0 -1
  237. package/node_modules/@sema/gerador-python/dist/index.js.map +0 -1
  238. package/node_modules/@sema/gerador-python/dist/index.part01.js.map +0 -1
  239. package/node_modules/@sema/gerador-python/dist/index.part02.js.map +0 -1
  240. package/node_modules/@sema/gerador-typescript/dist/index.js.map +0 -1
  241. package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +0 -1
  242. package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +0 -1
  243. package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +0 -1
  244. package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +0 -1
  245. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +0 -1
  246. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +0 -1
  247. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +0 -1
  248. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +0 -1
  249. package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +0 -1
  250. package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +0 -1
  251. package/node_modules/@sema/nucleo/dist/index.js.map +0 -1
  252. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +0 -1
  253. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +0 -1
  254. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +0 -1
  255. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +0 -1
  256. package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +0 -1
  257. package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +0 -1
  258. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +0 -1
  259. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +0 -1
  260. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +0 -1
  261. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +0 -1
  262. package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +0 -1
  263. package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +0 -1
  264. package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +0 -1
  265. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +0 -1
  266. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +0 -1
  267. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +0 -1
  268. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +0 -1
  269. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +0 -1
  270. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +0 -1
  271. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +0 -1
  272. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +0 -1
  273. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +0 -1
  274. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +0 -1
  275. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +0 -1
  276. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +0 -1
  277. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +0 -1
  278. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +0 -1
  279. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +0 -1
  280. package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +0 -1
  281. package/node_modules/@sema/padroes/dist/index.js.map +0 -1
@@ -1,5 +1,5 @@
1
- // SEMA-GOVERNED: sema.governanca_ia_contexto
2
- // Descricao: CLI particionada; consulte contratos/sema/governanca_ia_contexto.sema antes de editar.
1
+ // SEMA-GOVERNED: sema.governanca_ia_contexto, sema.produto.governanca_ia.drift.cache.modos
2
+ // Descrição: tipa contexto e evidência de drift opcional sem fabricar métricas.
3
3
  import { readFile } from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import { LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO, LIMITE_AVISO_LINHAS_CONTRATO_SEMA, LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO, LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA, } from "./driftOrcamento.js";
@@ -27,8 +27,13 @@ export function descreverFazModulo(ir, modulo) {
27
27
  }
28
28
  export function coletarResumoSemanticoModulo(contexto) {
29
29
  const { arquivo, modulo, geradoEm, ir, briefing, drift } = contexto;
30
- const modoVerificacaoCodigo = contexto.modoVerificacaoCodigo ?? "codigo_completo";
31
- const fontesConclusao = contexto.fontesConclusao ?? ["contrato", "codigo"];
30
+ const driftExecutado = drift.executada && drift.resumo !== null && drift.drift !== null;
31
+ const modoVerificacaoCodigo = driftExecutado
32
+ ? (contexto.modoVerificacaoCodigo ?? "codigo_completo")
33
+ : "contratos_apenas";
34
+ const fontesConclusao = driftExecutado
35
+ ? (contexto.fontesConclusao ?? ["contrato", "codigo"])
36
+ : ["contrato"];
32
37
  const tarefas = ir?.tasks ?? [];
33
38
  const rotas = ir?.routes ?? [];
34
39
  const superficies = ir?.superficies ?? [];
@@ -58,7 +63,7 @@ export function coletarResumoSemanticoModulo(contexto) {
58
63
  modulo,
59
64
  modoVerificacaoCodigo,
60
65
  avisoVerificacaoCodigo: modoVerificacaoCodigo === "contratos_apenas"
61
- ? "Somente contratos foram enviados; implementacao nao foi verificada neste modo."
66
+ ? "Somente contratos foram analisados; a implementação não foi verificada neste modo."
62
67
  : modoVerificacaoCodigo === "codigo_selecionado"
63
68
  ? "Codigo selecionado foi enviado; conclusoes de implementacao valem apenas para os arquivos do snapshot."
64
69
  : null,
@@ -66,7 +71,7 @@ export function coletarResumoSemanticoModulo(contexto) {
66
71
  perfilCompatibilidade: ir?.perfilCompatibilidade ?? briefing.perfilCompatibilidade,
67
72
  scoreSemantico: briefing.scoreSemantico,
68
73
  confiancaGeral: briefing.confiancaGeral,
69
- riscoOperacional: calcularRiscoOperacionalResumo(drift.resumo),
74
+ riscoOperacional: drift.resumo ? calcularRiscoOperacionalResumo(drift.resumo) : "nao_avaliado",
70
75
  faz: descreverFazModulo(ir, modulo),
71
76
  tarefasPrincipais: limitarLista(tarefas.map((task) => task.nome), 6),
72
77
  entradasChave: limitarLista(tarefas.map((task) => resumirCamposTask(task, "input", 4)), 4),
@@ -86,8 +91,8 @@ export function coletarResumoSemanticoModulo(contexto) {
86
91
  inferido: limitarLista(unicosOrdenados(briefing.oQueFoiInferido), 6),
87
92
  checksSugeridos: limitarLista(unicosOrdenados(briefing.oQueValidar), 6),
88
93
  testesMinimos: limitarLista(unicosOrdenados(briefing.testesMinimos), 6),
89
- consumerFramework: briefing.consumerFramework ?? drift.drift.consumerFramework ?? null,
90
- appRoutes: limitarLista(unicosOrdenados(briefing.appRoutes ?? drift.drift.appRoutes ?? []), 8),
94
+ consumerFramework: briefing.consumerFramework ?? drift.drift?.consumerFramework ?? null,
95
+ appRoutes: limitarLista(unicosOrdenados(briefing.appRoutes ?? drift.drift?.appRoutes ?? []), 8),
91
96
  consumerSurfaces: limitarLista(unicosOrdenados(briefing.consumerSurfaces ?? []), 8),
92
97
  consumerBridges: limitarLista(unicosOrdenados(briefing.consumerBridges ?? []), 8),
93
98
  ancoragensVinculo: limitarLista(unicosOrdenados(briefing.ancoragensVinculo ?? []), 8),
@@ -116,6 +121,10 @@ export function normalizarResumoModoContratosApenas(resumo) {
116
121
  .filter((check) => !/drift|vinculo/i.test(check));
117
122
  return {
118
123
  ...resumo,
124
+ appRoutes: modoContratosApenas ? null : resumo.appRoutes,
125
+ consumerSurfaces: modoContratosApenas ? null : resumo.consumerSurfaces,
126
+ consumerBridges: modoContratosApenas ? null : resumo.consumerBridges,
127
+ ancoragensVinculo: modoContratosApenas ? null : resumo.ancoragensVinculo,
119
128
  riscosPrincipais: limitarLista(unicosOrdenados([
120
129
  ...riscosPrincipais,
121
130
  ...(riscosCodigo || lacunasCodigo ? ["codigo_nao_verificado_neste_modo"] : []),
@@ -177,6 +186,8 @@ export function descreverFontesConclusao(fontes, modo) {
177
186
  }
178
187
  export function renderizarResumoModuloTexto(resumo, tamanho, modo) {
179
188
  const limite = tamanho === "micro" ? 2 : tamanho === "curto" ? 4 : 6;
189
+ const consumerAvaliado = resumo.modoVerificacaoCodigo !== "contratos_apenas";
190
+ const resumirEvidenciaLista = (itens) => itens === null ? "não avaliado" : resumirListaTexto(itens, limite);
180
191
  const linhas = [
181
192
  `MODO: ${modo}`,
182
193
  `MODULO: ${resumo.modulo}`,
@@ -185,11 +196,11 @@ export function renderizarResumoModuloTexto(resumo, tamanho, modo) {
185
196
  `MODO_CODIGO: ${resumo.modoVerificacaoCodigo}`,
186
197
  ...(resumo.avisoVerificacaoCodigo ? [`AVISO_CODIGO: ${resumo.avisoVerificacaoCodigo}`] : []),
187
198
  `FONTES_CONCLUSAO: ${resumirListaTexto(resumo.fontesConclusao, limite)}`,
188
- `CONSUMER_FRAMEWORK: ${resumo.consumerFramework ?? "nenhum"}`,
189
- `APP_ROUTES: ${resumirListaTexto(resumo.appRoutes, limite)}`,
190
- `CONSUMER_SURFACES: ${resumirListaTexto(resumo.consumerSurfaces, limite)}`,
191
- `CONSUMER_BRIDGES: ${resumirListaTexto(resumo.consumerBridges, limite)}`,
192
- `ANCORAGEM_VINCULO: ${resumirListaTexto(resumo.ancoragensVinculo, limite)}`,
199
+ `CONSUMER_FRAMEWORK: ${resumo.consumerFramework ?? (consumerAvaliado ? "nenhum" : "não avaliado")}`,
200
+ `APP_ROUTES: ${resumirEvidenciaLista(resumo.appRoutes)}`,
201
+ `CONSUMER_SURFACES: ${resumirEvidenciaLista(resumo.consumerSurfaces)}`,
202
+ `CONSUMER_BRIDGES: ${resumirEvidenciaLista(resumo.consumerBridges)}`,
203
+ `ANCORAGEM_VINCULO: ${resumirEvidenciaLista(resumo.ancoragensVinculo)}`,
193
204
  `PUBLICO: ${resumirListaTexto(resumo.superficiesPublicas, limite)}`,
194
205
  `TAREFAS: ${resumirListaTexto(resumo.tarefasPrincipais, limite)}`,
195
206
  `ENTRADAS: ${resumirListaTexto(resumo.entradasChave, limite)}`,
@@ -203,9 +214,9 @@ export function renderizarResumoModuloTexto(resumo, tamanho, modo) {
203
214
  `RISCOS: ${resumirListaTexto(resumo.riscosPrincipais, limite)}`,
204
215
  `LACUNAS: ${resumirListaTexto(resumo.lacunas, limite)}`,
205
216
  `INFERIDO: ${resumirListaTexto(resumo.inferido, limite)}`,
206
- `CONFIANCA: ${resumo.confiancaGeral}`,
217
+ `CONFIANCA: ${resumo.confiancaGeral ?? "não avaliada"}`,
207
218
  `RISCO_OPERACIONAL: ${resumo.riscoOperacional}`,
208
- `SCORE: ${resumo.scoreSemantico}`,
219
+ `SCORE: ${resumo.scoreSemantico ?? "não avaliado"}`,
209
220
  `GERADO_EM: ${resumo.geradoEm}`,
210
221
  ];
211
222
  if (tamanho === "micro") {
@@ -214,6 +225,9 @@ export function renderizarResumoModuloTexto(resumo, tamanho, modo) {
214
225
  return `${linhas.join("\n")}\n`;
215
226
  }
216
227
  export function renderizarResumoModuloMarkdown(resumo, modo, guiaPorCapacidade) {
228
+ const consumerAvaliado = resumo.modoVerificacaoCodigo !== "contratos_apenas";
229
+ const resumirEvidenciaLista = (itens) => itens === null ? "não avaliado" : resumirListaTexto(itens, 6);
230
+ const exibirConsumer = resumo.consumerFramework !== null || resumo.appRoutes === null;
217
231
  const linhas = [
218
232
  `# Resumo Sema para ${resumo.modulo}`,
219
233
  "",
@@ -224,8 +238,8 @@ export function renderizarResumoModuloMarkdown(resumo, modo, guiaPorCapacidade)
224
238
  `- Modo de codigo: \`${resumo.modoVerificacaoCodigo}\``,
225
239
  ...(resumo.avisoVerificacaoCodigo ? [`- Aviso de codigo: ${resumo.avisoVerificacaoCodigo}`] : []),
226
240
  `- Fontes de conclusao: ${resumirListaTexto(resumo.fontesConclusao, 6)}`,
227
- `- Score: \`${resumo.scoreSemantico}\``,
228
- `- Confianca: \`${resumo.confiancaGeral}\``,
241
+ `- Score: \`${resumo.scoreSemantico ?? "não avaliado"}\``,
242
+ `- Confiança: \`${resumo.confiancaGeral ?? "não avaliada"}\``,
229
243
  `- Risco operacional: \`${resumo.riscoOperacional}\``,
230
244
  "",
231
245
  "## O que este modulo faz",
@@ -243,14 +257,14 @@ export function renderizarResumoModuloMarkdown(resumo, modo, guiaPorCapacidade)
243
257
  `- Erros: ${resumirListaTexto(resumo.erros, 6)}`,
244
258
  `- Entidades afetadas: ${resumirListaTexto(resumo.entidadesAfetadas, 6)}`,
245
259
  "",
246
- ...(resumo.consumerFramework
260
+ ...(exibirConsumer
247
261
  ? [
248
262
  "## Consumer IA-first",
249
263
  "",
250
- `- Framework consumer: ${resumo.consumerFramework}`,
251
- `- Rotas de app: ${resumirListaTexto(resumo.appRoutes, 6)}`,
252
- `- Superficies consumer: ${resumirListaTexto(resumo.consumerSurfaces, 6)}`,
253
- `- Bridges consumer: ${resumirListaTexto(resumo.consumerBridges, 6)}`,
264
+ `- Framework consumer: ${resumo.consumerFramework ?? (consumerAvaliado ? "nenhum" : "não avaliado")}`,
265
+ `- Rotas de app: ${resumirEvidenciaLista(resumo.appRoutes)}`,
266
+ `- Superficies consumer: ${resumirEvidenciaLista(resumo.consumerSurfaces)}`,
267
+ `- Bridges consumer: ${resumirEvidenciaLista(resumo.consumerBridges)}`,
254
268
  "",
255
269
  ]
256
270
  : []),
@@ -1,7 +1,8 @@
1
1
  import { type IrModulo } from "@sema/nucleo";
2
2
  import { analisarDriftLegado } from "./drift.js";
3
3
  import { type GuiaCapacidadeIaMap } from './agentContextTipos.js';
4
- import { PacoteContextoModuloIa, ResumoSemanticoModuloIa, type ModoAnaliseDriftCli } from "./index.part01.js";
4
+ import { PacoteContextoModuloIa, ResumoSemanticoModuloIa } from "./index.part01.js";
5
+ import type { ResolucaoModoCacheDrift } from "./driftCacheModes.js";
5
6
  export declare function renderizarResumoProjetoMarkdown(geradoEm: string, modulos: ResumoSemanticoModuloIa[], guiaPorCapacidade: GuiaCapacidadeIaMap): string;
6
7
  export declare function falharContextoIa(mensagem: string): never;
7
8
  export declare function garantirArquivoSema(caminhoArquivo: string): void;
@@ -52,7 +53,28 @@ export declare function criarBriefingAgente(arquivo: string, modulo: string, ir:
52
53
  ancoragensVinculo: string[];
53
54
  testesMinimos: string[];
54
55
  };
55
- export declare function carregarContextoModuloIa(arquivoEntrada: string, args?: string[], modoDriftPadrao?: ModoAnaliseDriftCli): Promise<PacoteContextoModuloIa>;
56
+ export declare function criarBriefingAgenteContratos(arquivo: string, modulo: string, ir: IrModulo | null): {
57
+ arquivo: string;
58
+ modulo: string;
59
+ perfilCompatibilidade: import("@sema/nucleo").PerfilCompatibilidade;
60
+ scoreSemantico: null;
61
+ confiancaGeral: null;
62
+ riscosPrincipais: string[];
63
+ oQueTocar: string[];
64
+ arquivosProvaveisEditar: string[];
65
+ oQueValidar: string[];
66
+ oQueEstaFrouxo: never[];
67
+ oQueFoiInferido: string[];
68
+ simbolosRelacionados: string[];
69
+ superficiesImpactadas: string[];
70
+ consumerFramework: null;
71
+ appRoutes: never[];
72
+ consumerSurfaces: never[];
73
+ consumerBridges: never[];
74
+ ancoragensVinculo: never[];
75
+ testesMinimos: string[];
76
+ };
77
+ export declare function carregarContextoModuloIa(arquivoEntrada: string, analiseDrift?: ResolucaoModoCacheDrift): Promise<PacoteContextoModuloIa>;
56
78
  export declare const ARQUIVOS_RESUMO_MODULO_IA: readonly ["SEMA_BOOT.md", "SEMA_SMALL_MODEL.md", "agent-context-pack.json", "resumo.micro.txt", "resumo.curto.txt", "resumo.md", "briefing.min.json", "prompt-curto.txt"];
57
79
  export declare function gerarArquivosResumoModuloIa(contexto: PacoteContextoModuloIa, pastaBase: string): Promise<{
58
80
  artefatosCompactos: string[];
@@ -8,7 +8,6 @@ import { criarEntradaCanonicaProjeto } from './agentContext.js';
8
8
  import { renderizarSemaBoot, renderizarSemaSmallModel, } from './agentEntryPoints.js';
9
9
  import { escreverArquivoWorkspaceSeguro, validarDestinosEscritaWorkspace } from './workspaceWrite.js';
10
10
  import { resumirListaTexto } from './textoListas.js';
11
- import { criarResultadoDriftNaoExecutado, resolverAnaliseDriftCli, } from "./index.part01.js";
12
11
  import { coletarResumoSemanticoModulo, criarBriefingMinimo, criarPromptCurtoModulo, renderizarResumoModuloMarkdown, renderizarResumoModuloTexto } from "./index.part02.js";
13
12
  export function renderizarResumoProjetoMarkdown(geradoEm, modulos, guiaPorCapacidade) {
14
13
  const entradaCanonica = criarEntradaCanonicaProjeto(guiaPorCapacidade);
@@ -83,7 +82,7 @@ export function renderizarResumoProjetoMarkdown(geradoEm, modulos, guiaPorCapaci
83
82
  linhas.push(`- Faz: ${modulo.faz}`);
84
83
  linhas.push(`- Publico: ${resumirListaTexto(modulo.superficiesPublicas, 4)}`);
85
84
  linhas.push(`- Tocar: ${resumirListaTexto(modulo.arquivosProvaveis, 4)}`);
86
- linhas.push(`- Score: ${modulo.scoreSemantico} | Confianca: ${modulo.confiancaGeral} | Risco: ${modulo.riscoOperacional}`);
85
+ linhas.push(`- Score: ${modulo.scoreSemantico ?? "não avaliado"} | Confiança: ${modulo.confiancaGeral ?? "não avaliada"} | Risco: ${modulo.riscoOperacional}`);
87
86
  linhas.push(`- Lacunas: ${resumirListaTexto(modulo.lacunas, 4)}`);
88
87
  linhas.push("");
89
88
  }
@@ -249,16 +248,74 @@ export function criarBriefingAgente(arquivo, modulo, ir, resumoDrift, resultadoD
249
248
  ancoragensVinculo: resumoDrift.ancoragensVinculo,
250
249
  testesMinimos: [
251
250
  "sema validar <arquivo> --json",
252
- "sema drift <arquivo> --json",
251
+ "sema drift <arquivo> --cache fresh --json",
253
252
  "sema verificar <arquivo-ou-pasta> --json",
254
253
  ],
255
254
  };
256
255
  }
257
- export async function carregarContextoModuloIa(arquivoEntrada, args = [], modoDriftPadrao = "fresh") {
256
+ export function criarBriefingAgenteContratos(arquivo, modulo, ir) {
257
+ const vinculos = ir
258
+ ? [
259
+ ...ir.vinculos,
260
+ ...ir.tasks.flatMap((task) => task.vinculos),
261
+ ...ir.flows.flatMap((flow) => flow.vinculos),
262
+ ...ir.routes.flatMap((route) => route.vinculos),
263
+ ...ir.superficies.flatMap((superficie) => superficie.vinculos),
264
+ ]
265
+ : [];
266
+ const arquivosDeclarados = [...new Set(vinculos.flatMap((vinculo) => [
267
+ vinculo.arquivo,
268
+ vinculo.tipo === "arquivo" ? vinculo.valor : undefined,
269
+ ]).filter((valor) => Boolean(valor)))]
270
+ .sort((a, b) => a.localeCompare(b, "pt-BR"));
271
+ const simbolosDeclarados = [...new Set(vinculos
272
+ .map((vinculo) => vinculo.simbolo)
273
+ .filter((valor) => Boolean(valor)))]
274
+ .sort((a, b) => a.localeCompare(b, "pt-BR"));
275
+ return {
276
+ arquivo,
277
+ modulo,
278
+ perfilCompatibilidade: ir?.perfilCompatibilidade ?? "interno",
279
+ scoreSemantico: null,
280
+ confiancaGeral: null,
281
+ riscosPrincipais: [...new Set(ir?.resumoAgente.riscos ?? [])],
282
+ oQueTocar: arquivosDeclarados,
283
+ arquivosProvaveisEditar: arquivosDeclarados,
284
+ oQueValidar: [...new Set([
285
+ ...(ir?.resumoAgente.checks ?? []),
286
+ ...(ir?.tasks.flatMap((task) => task.resumoAgente.checks) ?? []),
287
+ "executar drift antes de concluir sobre a implementação",
288
+ ])],
289
+ oQueEstaFrouxo: [],
290
+ oQueFoiInferido: ["modo_contratos_apenas", "implementacao_nao_verificada"],
291
+ simbolosRelacionados: simbolosDeclarados,
292
+ superficiesImpactadas: [
293
+ ...(ir?.routes.map((route) => `${route.metodo ?? "?"} ${route.caminho ?? route.nome}`) ?? []),
294
+ ...(ir?.superficies.map((superficie) => `${superficie.tipo}:${superficie.nome}`) ?? []),
295
+ ],
296
+ consumerFramework: null,
297
+ appRoutes: [],
298
+ consumerSurfaces: [],
299
+ consumerBridges: [],
300
+ ancoragensVinculo: [],
301
+ testesMinimos: [
302
+ "sema validar <arquivo> --json",
303
+ "sema drift <arquivo> --cache fresh --json",
304
+ ],
305
+ };
306
+ }
307
+ const ANALISE_DRIFT_PADRAO_CONTEXTO = {
308
+ modo: "fresh",
309
+ executar: true,
310
+ avisos: [],
311
+ };
312
+ export async function carregarContextoModuloIa(arquivoEntrada, analiseDrift = ANALISE_DRIFT_PADRAO_CONTEXTO) {
258
313
  const arquivo = path.resolve(arquivoEntrada);
259
314
  garantirArquivoSema(arquivo);
260
- const analiseDrift = resolverAnaliseDriftCli(args, modoDriftPadrao);
261
- const contextoProjeto = await carregarProjeto(arquivo, process.cwd(), { escopo: analiseDrift.opcoes.escopo });
315
+ const contextoProjeto = await carregarProjeto(arquivo, process.cwd(), {
316
+ escopo: "modulo",
317
+ adiarDescobertaCodigo: true,
318
+ });
262
319
  const resultadoModulo = contextoProjeto.modulosSelecionados.find((item) => path.resolve(item.caminho) === arquivo)?.resultado;
263
320
  if (!resultadoModulo) {
264
321
  falharContextoIa(`Nao foi possivel encontrar o modulo correspondente ao arquivo ${arquivo}.`);
@@ -266,20 +323,27 @@ export async function carregarContextoModuloIa(arquivoEntrada, args = [], modoDr
266
323
  const sucesso = !temErros(resultadoModulo.diagnosticos);
267
324
  const modulo = resultadoModulo.modulo?.nome ?? path.basename(arquivo, ".sema");
268
325
  const geradoEm = new Date().toISOString();
269
- const resultadoDrift = analiseDrift.modo === "none"
270
- ? criarResultadoDriftNaoExecutado(contextoProjeto, analiseDrift.opcoes)
271
- : await analisarDriftLegado(contextoProjeto, analiseDrift.opcoes);
326
+ const resultadoDrift = analiseDrift.executar
327
+ ? await analisarDriftLegado(contextoProjeto, {
328
+ escopo: "modulo",
329
+ modoCache: analiseDrift.modo,
330
+ avisosModoCache: analiseDrift.avisos,
331
+ })
332
+ : null;
333
+ const resumoDrift = resultadoDrift
334
+ ? resumirDriftPorModulo(resultadoModulo.modulo?.nome ?? null, arquivo, resultadoDrift)
335
+ : null;
272
336
  const drift = {
273
337
  comando: "drift",
274
338
  caminho: arquivo,
275
339
  modulo: resultadoModulo.modulo?.nome ?? null,
276
- sucesso: resultadoDrift.sucesso,
277
- modoAnalise: analiseDrift.modo,
278
- executado: analiseDrift.modo !== "none",
279
- aviso: analiseDrift.modo === "none"
280
- ? "Análise de drift não executada; nenhuma conclusão sobre o código foi produzida."
281
- : null,
282
- resumo: resumirDriftPorModulo(resultadoModulo.modulo?.nome ?? null, arquivo, resultadoDrift),
340
+ modo: analiseDrift.modo,
341
+ executada: analiseDrift.executar,
342
+ sucesso: resultadoDrift?.sucesso ?? null,
343
+ aviso: analiseDrift.executar
344
+ ? null
345
+ : "Análise de drift não executada; implementação, vínculos e rotas não foram verificados.",
346
+ resumo: resumoDrift,
283
347
  drift: resultadoDrift,
284
348
  };
285
349
  const validar = {
@@ -316,7 +380,9 @@ export async function carregarContextoModuloIa(arquivoEntrada, args = [], modoDr
316
380
  diagnosticos: resultadoModulo.diagnosticos,
317
381
  ir: resultadoModulo.ir ?? null,
318
382
  };
319
- const briefing = criarBriefingAgente(arquivo, modulo, resultadoModulo.ir ?? null, drift.resumo, resultadoDrift);
383
+ const briefing = resultadoDrift && resumoDrift
384
+ ? criarBriefingAgente(arquivo, modulo, resultadoModulo.ir ?? null, resumoDrift, resultadoDrift)
385
+ : criarBriefingAgenteContratos(arquivo, modulo, resultadoModulo.ir ?? null);
320
386
  return {
321
387
  arquivo,
322
388
  modulo,
@@ -330,8 +396,6 @@ export async function carregarContextoModuloIa(arquivoEntrada, args = [], modoDr
330
396
  irJson: ir,
331
397
  drift,
332
398
  briefing,
333
- modoVerificacaoCodigo: analiseDrift.modo === "none" ? "contratos_apenas" : undefined,
334
- fontesConclusao: analiseDrift.modo === "none" ? ["contrato"] : undefined,
335
399
  };
336
400
  }
337
401
  export const ARQUIVOS_RESUMO_MODULO_IA = [
@@ -1,7 +1,8 @@
1
1
  import { type GuiaCapacidadeIaMap } from './agentContextTipos.js';
2
- import { ContextoIaGerado, ResumoSemanticoModuloIa, type ModoAnaliseDriftCli } from "./index.part01.js";
2
+ import { ContextoIaGerado, ResumoSemanticoModuloIa, type ResultadoDriftIa } from "./index.part01.js";
3
+ import type { ResolucaoModoCacheDrift } from "./driftCacheModes.js";
3
4
  export declare const ARQUIVOS_RESUMO_PROJETO_IA: readonly ["SEMA_BOOT.md", "SEMA_SMALL_MODEL.md", "SEMA_BRIEF.md", "SEMA_BRIEF.micro.txt", "SEMA_BRIEF.curto.txt", "SEMA_INDEX.json", "AGENT_CONTEXT_PACK.json", "docs/ai-integration.md"];
4
- export declare function gerarResumoProjetoIa(entrada: string | undefined, pastaSaidaOpcional?: string, escreverNaRaiz?: boolean, args?: string[], modoDriftPadrao?: ModoAnaliseDriftCli): Promise<{
5
+ export declare function gerarResumoProjetoIa(entrada: string | undefined, pastaSaidaOpcional?: string, escreverNaRaiz?: boolean, analiseDrift?: ResolucaoModoCacheDrift): Promise<{
5
6
  geradoEm: string;
6
7
  baseProjeto: string;
7
8
  pastaSaida: string;
@@ -9,6 +10,13 @@ export declare function gerarResumoProjetoIa(entrada: string | undefined, pastaS
9
10
  artefatos: string[];
10
11
  modulos: ResumoSemanticoModuloIa[];
11
12
  guiaPorCapacidade: GuiaCapacidadeIaMap;
13
+ analiseDrift: {
14
+ modo: ResolucaoModoCacheDrift["modo"];
15
+ executada: boolean;
16
+ sucesso: boolean | null;
17
+ aviso: string | null;
18
+ cache: ResultadoDriftIa["escopo_aplicado"]["cache"] | null;
19
+ };
12
20
  }>;
13
21
  export declare function gerarContextoIa(arquivoEntrada: string, pastaSaidaOpcional?: string): Promise<ContextoIaGerado>;
14
22
  export declare function resolverEntradaDocs(posicionais: string[], args: string[]): {