@semacode/cli 1.5.36 → 1.5.38

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 (490) hide show
  1. package/AGENT_CONTEXT_PACK.json +80 -8
  2. package/LICENSE +1 -2
  3. package/SEMA_BRIEF.curto.txt +9 -6
  4. package/SEMA_BRIEF.md +240 -204
  5. package/SEMA_BRIEF.micro.txt +10 -6
  6. package/SEMA_INDEX.json +2087 -1907
  7. package/dist/agentContext.d.ts +19 -0
  8. package/dist/agentContext.js +26 -0
  9. package/dist/agentContext.js.map +1 -0
  10. package/dist/agentContextPack.d.ts +4 -0
  11. package/dist/agentContextPack.js +408 -0
  12. package/dist/agentContextPack.js.map +1 -0
  13. package/dist/agentContextTipos.d.ts +96 -0
  14. package/dist/agentContextTipos.js +55 -0
  15. package/dist/agentContextTipos.js.map +1 -0
  16. package/dist/agentEntryPoints.d.ts +13 -0
  17. package/dist/agentEntryPoints.js +435 -0
  18. package/dist/agentEntryPoints.js.map +1 -0
  19. package/dist/authorAnalise.d.ts +15 -0
  20. package/dist/authorAnalise.js +210 -0
  21. package/dist/authorAnalise.js.map +1 -0
  22. package/dist/authorPoliticas.d.ts +37 -0
  23. package/dist/authorPoliticas.js +340 -0
  24. package/dist/authorPoliticas.js.map +1 -0
  25. package/dist/billing/index.d.ts +1 -1
  26. package/dist/billing/index.js +6 -2
  27. package/dist/billing/index.js.map +1 -1
  28. package/dist/bridge.js +2 -0
  29. package/dist/bridge.js.map +1 -1
  30. package/dist/carregarModulos.d.ts +2 -0
  31. package/dist/carregarModulos.js +9 -0
  32. package/dist/carregarModulos.js.map +1 -0
  33. package/dist/cliArgs.d.ts +6 -0
  34. package/dist/cliArgs.js +70 -0
  35. package/dist/cliArgs.js.map +1 -0
  36. package/dist/contexto.js +2 -0
  37. package/dist/contexto.js.map +1 -1
  38. package/dist/controleComercialSupabase.js.map +1 -1
  39. package/dist/controleComercialSupabaseAdmin.js.map +1 -1
  40. package/dist/controleComercialSupabaseCadastro.js.map +1 -1
  41. package/dist/controleComercialSupabaseConsumo.js.map +1 -1
  42. package/dist/controleComercialSupabaseConta.js.map +1 -1
  43. package/dist/controleComercialSupabaseProfiles.js.map +1 -1
  44. package/dist/dev/index.js +2 -0
  45. package/dist/dev/index.js.map +1 -1
  46. package/dist/dev/watcher.d.ts +1 -0
  47. package/dist/dev/watcher.js +4 -0
  48. package/dist/dev/watcher.js.map +1 -0
  49. package/dist/docs/resolver.d.ts +1 -0
  50. package/dist/docs/resolver.js +4 -0
  51. package/dist/docs/resolver.js.map +1 -0
  52. package/dist/docs.d.ts +2 -56
  53. package/dist/docs.js +5 -502
  54. package/dist/docs.js.map +1 -1
  55. package/dist/docs.part01.d.ts +78 -0
  56. package/dist/docs.part01.js +347 -0
  57. package/dist/docs.part01.js.map +1 -0
  58. package/dist/docs.part02.d.ts +20 -0
  59. package/dist/docs.part02.js +181 -0
  60. package/dist/docs.part02.js.map +1 -0
  61. package/dist/doctorCommand.d.ts +27 -0
  62. package/dist/doctorCommand.js +160 -0
  63. package/dist/doctorCommand.js.map +1 -0
  64. package/dist/drift.contrato.d.ts +23 -0
  65. package/dist/drift.contrato.js +33 -0
  66. package/dist/drift.contrato.js.map +1 -0
  67. package/dist/drift.d.ts +13 -227
  68. package/dist/drift.js +16 -3924
  69. package/dist/drift.js.map +1 -1
  70. package/dist/drift.part01.d.ts +252 -0
  71. package/dist/drift.part01.js +183 -0
  72. package/dist/drift.part01.js.map +1 -0
  73. package/dist/drift.part02.d.ts +30 -0
  74. package/dist/drift.part02.js +342 -0
  75. package/dist/drift.part02.js.map +1 -0
  76. package/dist/drift.part03.d.ts +26 -0
  77. package/dist/drift.part03.js +343 -0
  78. package/dist/drift.part03.js.map +1 -0
  79. package/dist/drift.part04.d.ts +46 -0
  80. package/dist/drift.part04.js +354 -0
  81. package/dist/drift.part04.js.map +1 -0
  82. package/dist/drift.part05.d.ts +47 -0
  83. package/dist/drift.part05.js +353 -0
  84. package/dist/drift.part05.js.map +1 -0
  85. package/dist/drift.part06.d.ts +17 -0
  86. package/dist/drift.part06.js +381 -0
  87. package/dist/drift.part06.js.map +1 -0
  88. package/dist/drift.part07.d.ts +48 -0
  89. package/dist/drift.part07.js +377 -0
  90. package/dist/drift.part07.js.map +1 -0
  91. package/dist/drift.part08.d.ts +26 -0
  92. package/dist/drift.part08.js +333 -0
  93. package/dist/drift.part08.js.map +1 -0
  94. package/dist/drift.part09.d.ts +22 -0
  95. package/dist/drift.part09.js +322 -0
  96. package/dist/drift.part09.js.map +1 -0
  97. package/dist/drift.part10.d.ts +11 -0
  98. package/dist/drift.part10.js +116 -0
  99. package/dist/drift.part10.js.map +1 -0
  100. package/dist/drift.part11.d.ts +3 -0
  101. package/dist/drift.part11.js +320 -0
  102. package/dist/drift.part11.js.map +1 -0
  103. package/dist/drift.part12.d.ts +17 -0
  104. package/dist/drift.part12.js +289 -0
  105. package/dist/drift.part12.js.map +1 -0
  106. package/dist/drift.part13.d.ts +17 -0
  107. package/dist/drift.part13.js +86 -0
  108. package/dist/drift.part13.js.map +1 -0
  109. package/dist/drift.part14.d.ts +44 -0
  110. package/dist/drift.part14.js +402 -0
  111. package/dist/drift.part14.js.map +1 -0
  112. package/dist/driftOrcamento.d.ts +69 -0
  113. package/dist/driftOrcamento.js +280 -0
  114. package/dist/driftOrcamento.js.map +1 -0
  115. package/dist/execucoesExternas.d.ts +10 -0
  116. package/dist/execucoesExternas.js +51 -0
  117. package/dist/execucoesExternas.js.map +1 -0
  118. package/dist/exemplosOficiais.d.ts +10 -0
  119. package/dist/exemplosOficiais.js +63 -0
  120. package/dist/exemplosOficiais.js.map +1 -0
  121. package/dist/fsGovernado.d.ts +10 -0
  122. package/dist/fsGovernado.js +50 -0
  123. package/dist/fsGovernado.js.map +1 -0
  124. package/dist/geracaoCore.d.ts +64 -0
  125. package/dist/geracaoCore.js +381 -0
  126. package/dist/geracaoCore.js.map +1 -0
  127. package/dist/iaPrompts.d.ts +6 -0
  128. package/dist/iaPrompts.js +318 -0
  129. package/dist/iaPrompts.js.map +1 -0
  130. package/dist/importador.d.ts +9 -31
  131. package/dist/importador.js +11 -2938
  132. package/dist/importador.js.map +1 -1
  133. package/dist/importador.part01.d.ts +150 -0
  134. package/dist/importador.part01.js +256 -0
  135. package/dist/importador.part01.js.map +1 -0
  136. package/dist/importador.part02.d.ts +25 -0
  137. package/dist/importador.part02.js +359 -0
  138. package/dist/importador.part02.js.map +1 -0
  139. package/dist/importador.part03.d.ts +53 -0
  140. package/dist/importador.part03.js +366 -0
  141. package/dist/importador.part03.js.map +1 -0
  142. package/dist/importador.part04.d.ts +26 -0
  143. package/dist/importador.part04.js +374 -0
  144. package/dist/importador.part04.js.map +1 -0
  145. package/dist/importador.part05.d.ts +28 -0
  146. package/dist/importador.part05.js +340 -0
  147. package/dist/importador.part05.js.map +1 -0
  148. package/dist/importador.part06.d.ts +8 -0
  149. package/dist/importador.part06.js +327 -0
  150. package/dist/importador.part06.js.map +1 -0
  151. package/dist/importador.part07.d.ts +23 -0
  152. package/dist/importador.part07.js +300 -0
  153. package/dist/importador.part07.js.map +1 -0
  154. package/dist/importador.part08.d.ts +12 -0
  155. package/dist/importador.part08.js +378 -0
  156. package/dist/importador.part08.js.map +1 -0
  157. package/dist/importador.part09.d.ts +16 -0
  158. package/dist/importador.part09.js +319 -0
  159. package/dist/importador.part09.js.map +1 -0
  160. package/dist/index.d.ts +12 -1
  161. package/dist/index.js +16 -7945
  162. package/dist/index.js.map +1 -1
  163. package/dist/index.part01.d.ts +148 -0
  164. package/dist/index.part01.js +252 -0
  165. package/dist/index.part01.js.map +1 -0
  166. package/dist/index.part02.d.ts +17 -0
  167. package/dist/index.part02.js +344 -0
  168. package/dist/index.part02.js.map +1 -0
  169. package/dist/index.part03.d.ts +59 -0
  170. package/dist/index.part03.js +352 -0
  171. package/dist/index.part03.js.map +1 -0
  172. package/dist/index.part04.d.ts +20 -0
  173. package/dist/index.part04.js +360 -0
  174. package/dist/index.part04.js.map +1 -0
  175. package/dist/index.part05.d.ts +10 -0
  176. package/dist/index.part05.js +370 -0
  177. package/dist/index.part05.js.map +1 -0
  178. package/dist/index.part06.d.ts +14 -0
  179. package/dist/index.part06.js +336 -0
  180. package/dist/index.part06.js.map +1 -0
  181. package/dist/index.part07.d.ts +9 -0
  182. package/dist/index.part07.js +287 -0
  183. package/dist/index.part07.js.map +1 -0
  184. package/dist/index.part08.d.ts +1 -0
  185. package/dist/index.part08.js +206 -0
  186. package/dist/index.part08.js.map +1 -0
  187. package/dist/init/index.js +2 -0
  188. package/dist/init/index.js.map +1 -1
  189. package/dist/init/templates.d.ts +2 -11
  190. package/dist/init/templates.js +4 -659
  191. package/dist/init/templates.js.map +1 -1
  192. package/dist/init/templates.part01.d.ts +11 -0
  193. package/dist/init/templates.part01.js +399 -0
  194. package/dist/init/templates.part01.js.map +1 -0
  195. package/dist/init/templates.part02.d.ts +8 -0
  196. package/dist/init/templates.part02.js +265 -0
  197. package/dist/init/templates.part02.js.map +1 -0
  198. package/dist/initCommand.d.ts +3 -0
  199. package/dist/initCommand.js +41 -0
  200. package/dist/initCommand.js.map +1 -0
  201. package/dist/initTemplatesBackend.d.ts +2 -0
  202. package/dist/initTemplatesBackend.js +127 -0
  203. package/dist/initTemplatesBackend.js.map +1 -0
  204. package/dist/initTemplatesBase.d.ts +9 -0
  205. package/dist/initTemplatesBase.js +79 -0
  206. package/dist/initTemplatesBase.js.map +1 -0
  207. package/dist/initTemplatesFlutter.d.ts +2 -0
  208. package/dist/initTemplatesFlutter.js +185 -0
  209. package/dist/initTemplatesFlutter.js.map +1 -0
  210. package/dist/initTemplatesRuntime.d.ts +2 -0
  211. package/dist/initTemplatesRuntime.js +494 -0
  212. package/dist/initTemplatesRuntime.js.map +1 -0
  213. package/dist/initTemplatesWeb.d.ts +2 -0
  214. package/dist/initTemplatesWeb.js +429 -0
  215. package/dist/initTemplatesWeb.js.map +1 -0
  216. package/dist/mcpInstalarChaveCommand.d.ts +1 -0
  217. package/dist/mcpInstalarChaveCommand.js +141 -0
  218. package/dist/mcpInstalarChaveCommand.js.map +1 -0
  219. package/dist/mcpRemoto.js.map +1 -1
  220. package/dist/mcp_chave.d.ts +1 -0
  221. package/dist/mcp_chave.js +4 -0
  222. package/dist/mcp_chave.js.map +1 -0
  223. package/dist/profileArtefatoBase.d.ts +30 -0
  224. package/dist/profileArtefatoBase.js +129 -0
  225. package/dist/profileArtefatoBase.js.map +1 -0
  226. package/dist/profileArtefatoValidadores.d.ts +9 -0
  227. package/dist/profileArtefatoValidadores.js +287 -0
  228. package/dist/profileArtefatoValidadores.js.map +1 -0
  229. package/dist/profileAuthorCommand.d.ts +6 -0
  230. package/dist/profileAuthorCommand.js +442 -0
  231. package/dist/profileAuthorCommand.js.map +1 -0
  232. package/dist/profileAuthorTipos.d.ts +225 -0
  233. package/dist/profileAuthorTipos.js +6 -0
  234. package/dist/profileAuthorTipos.js.map +1 -0
  235. package/dist/profileCatalogo.d.ts +8 -0
  236. package/dist/profileCatalogo.js +235 -0
  237. package/dist/profileCatalogo.js.map +1 -0
  238. package/dist/profileCommand.d.ts +33 -0
  239. package/dist/profileCommand.js +256 -0
  240. package/dist/profileCommand.js.map +1 -0
  241. package/dist/profileOrquestracao.d.ts +33 -0
  242. package/dist/profileOrquestracao.js +53 -0
  243. package/dist/profileOrquestracao.js.map +1 -0
  244. package/dist/profileRegras.d.ts +19 -0
  245. package/dist/profileRegras.js +219 -0
  246. package/dist/profileRegras.js.map +1 -0
  247. package/dist/profileRulePacks.d.ts +3 -0
  248. package/dist/profileRulePacks.js +334 -0
  249. package/dist/profileRulePacks.js.map +1 -0
  250. package/dist/profiles/validate.d.ts +1 -0
  251. package/dist/profiles/validate.js +4 -0
  252. package/dist/profiles/validate.js.map +1 -0
  253. package/dist/projeto.d.ts +4 -53
  254. package/dist/projeto.js +5 -649
  255. package/dist/projeto.js.map +1 -1
  256. package/dist/projetoBusca.d.ts +7 -0
  257. package/dist/projetoBusca.js +142 -0
  258. package/dist/projetoBusca.js.map +1 -0
  259. package/dist/projetoCarregar.d.ts +2 -0
  260. package/dist/projetoCarregar.js +50 -0
  261. package/dist/projetoCarregar.js.map +1 -0
  262. package/dist/projetoConfig.d.ts +10 -0
  263. package/dist/projetoConfig.js +89 -0
  264. package/dist/projetoConfig.js.map +1 -0
  265. package/dist/projetoLegado.d.ts +3 -0
  266. package/dist/projetoLegado.js +175 -0
  267. package/dist/projetoLegado.js.map +1 -0
  268. package/dist/projetoOrigens.d.ts +6 -0
  269. package/dist/projetoOrigens.js +185 -0
  270. package/dist/projetoOrigens.js.map +1 -0
  271. package/dist/projetoResolucao.d.ts +8 -0
  272. package/dist/projetoResolucao.js +43 -0
  273. package/dist/projetoResolucao.js.map +1 -0
  274. package/dist/projetoTipos.d.ts +43 -0
  275. package/dist/projetoTipos.js +4 -0
  276. package/dist/projetoTipos.js.map +1 -0
  277. package/dist/runnerValidacaoRemota.js.map +1 -1
  278. package/dist/runnerValidacaoRemotaBateria.js +2 -0
  279. package/dist/runnerValidacaoRemotaBateria.js.map +1 -1
  280. package/dist/runnerValidacaoRemotaExecucao.js +2 -0
  281. package/dist/runnerValidacaoRemotaExecucao.js.map +1 -1
  282. package/dist/runnerValidacaoRemotaRelatorio.js +2 -0
  283. package/dist/runnerValidacaoRemotaRelatorio.js.map +1 -1
  284. package/dist/runnerValidacaoRemotaSnapshot.js +2 -0
  285. package/dist/runnerValidacaoRemotaSnapshot.js.map +1 -1
  286. package/dist/runnerValidacaoRemotaWorkspace.js +2 -0
  287. package/dist/runnerValidacaoRemotaWorkspace.js.map +1 -1
  288. package/dist/sync/index.js +2 -0
  289. package/dist/sync/index.js.map +1 -1
  290. package/dist/textoListas.d.ts +4 -0
  291. package/dist/textoListas.js +22 -0
  292. package/dist/textoListas.js.map +1 -0
  293. package/dist/typescript-http-body.d.ts +12 -0
  294. package/dist/typescript-http-body.js +145 -0
  295. package/dist/typescript-http-body.js.map +1 -0
  296. package/dist/typescript-http-expressoes.d.ts +17 -0
  297. package/dist/typescript-http-expressoes.js +194 -0
  298. package/dist/typescript-http-expressoes.js.map +1 -0
  299. package/dist/typescript-http-modelos.d.ts +45 -0
  300. package/dist/typescript-http-modelos.js +82 -0
  301. package/dist/typescript-http-modelos.js.map +1 -0
  302. package/dist/typescript-http-rotas.d.ts +9 -0
  303. package/dist/typescript-http-rotas.js +129 -0
  304. package/dist/typescript-http-rotas.js.map +1 -0
  305. package/dist/typescript-http-semantica.d.ts +11 -0
  306. package/dist/typescript-http-semantica.js +329 -0
  307. package/dist/typescript-http-semantica.js.map +1 -0
  308. package/dist/typescript-http.d.ts +3 -35
  309. package/dist/typescript-http.js +4 -853
  310. package/dist/typescript-http.js.map +1 -1
  311. package/docs/AGENT_STARTER.md +1 -1
  312. package/docs/agentes-por-capacidade.md +55 -3
  313. package/docs/documentacao.md +1 -1
  314. package/docs/fluxo-pratico-ia-sema.md +1 -1
  315. package/docs/mcp.md +12 -0
  316. package/docs/pagamento-ponta-a-ponta.md +1 -1
  317. package/docs/persistencia-vendor-first.md +1 -1
  318. package/docs/prompt-base-ia-sema.md +1 -1
  319. package/docs/repositories.md +2 -2
  320. package/docs/seguranca.md +1 -1
  321. package/docs/sintaxe.md +1 -1
  322. package/exemplos/agendamento.sema +1 -1
  323. package/exemplos/assinatura.sema +1 -1
  324. package/exemplos/auditoria.sema +1 -1
  325. package/exemplos/autenticacao.sema +1 -1
  326. package/exemplos/author_obra_comum.sema +1 -1
  327. package/exemplos/author_tema_sensivel.sema +1 -1
  328. package/exemplos/automacao.sema +1 -1
  329. package/exemplos/cadastro_usuario.sema +1 -1
  330. package/exemplos/calculadora.sema +1 -1
  331. package/exemplos/crud_simples.sema +1 -1
  332. package/exemplos/estoque.sema +1 -1
  333. package/exemplos/exportacao.sema +1 -1
  334. package/exemplos/fila.sema +1 -1
  335. package/exemplos/integracao_externa.sema +1 -1
  336. package/exemplos/multi_tenant.sema +1 -1
  337. package/exemplos/notificacao.sema +1 -1
  338. package/exemplos/operacao_estrategia.sema +132 -633
  339. package/exemplos/operacao_estrategia_discovery.sema +220 -0
  340. package/exemplos/operacao_estrategia_fluxo.sema +114 -0
  341. package/exemplos/operacao_estrategia_gates.sema +106 -0
  342. package/exemplos/operacao_estrategia_quarentena.sema +133 -0
  343. package/exemplos/operacao_estrategia_rollout.sema +124 -0
  344. package/exemplos/pagamento.sema +1 -1
  345. package/exemplos/pagamento_dominio.sema +1 -1
  346. package/exemplos/pedido.sema +1 -1
  347. package/exemplos/permissao.sema +1 -1
  348. package/exemplos/persistencia_vendor_first.sema +1 -1
  349. package/exemplos/profile_game.sema +1 -1
  350. package/exemplos/profile_legal.sema +1 -1
  351. package/exemplos/profile_ops.sema +1 -1
  352. package/exemplos/profile_research.sema +1 -1
  353. package/exemplos/profile_software.sema +1 -1
  354. package/exemplos/profile_workflow_n8n.sema +1 -1
  355. package/exemplos/relatorio.sema +1 -1
  356. package/exemplos/replica_analitica_erp.sema +1 -1
  357. package/exemplos/testes_embutidos.sema +1 -1
  358. package/exemplos/tratamento_erro.sema +1 -1
  359. package/exemplos/upload_arquivo.sema +1 -1
  360. package/exemplos/webhook.sema +1 -1
  361. package/llms-full.txt +13 -8
  362. package/llms.txt +12 -7
  363. package/node_modules/@sema/gerador-css/dist/index.d.ts +2 -3
  364. package/node_modules/@sema/gerador-css/dist/index.js +4 -599
  365. package/node_modules/@sema/gerador-css/dist/index.js.map +1 -1
  366. package/node_modules/@sema/gerador-css/dist/index.part01.d.ts +6 -0
  367. package/node_modules/@sema/gerador-css/dist/index.part01.js +49 -0
  368. package/node_modules/@sema/gerador-css/dist/index.part01.js.map +1 -0
  369. package/node_modules/@sema/gerador-css/dist/index.part02.d.ts +3 -0
  370. package/node_modules/@sema/gerador-css/dist/index.part02.js +471 -0
  371. package/node_modules/@sema/gerador-css/dist/index.part02.js.map +1 -0
  372. package/node_modules/@sema/gerador-css/package.json +1 -1
  373. package/node_modules/@sema/gerador-dart/package.json +1 -1
  374. package/node_modules/@sema/gerador-html/package.json +1 -1
  375. package/node_modules/@sema/gerador-javascript/package.json +1 -1
  376. package/node_modules/@sema/gerador-lua/package.json +1 -1
  377. package/node_modules/@sema/gerador-python/dist/index.d.ts +2 -6
  378. package/node_modules/@sema/gerador-python/dist/index.js +4 -771
  379. package/node_modules/@sema/gerador-python/dist/index.js.map +1 -1
  380. package/node_modules/@sema/gerador-python/dist/index.part01.d.ts +28 -0
  381. package/node_modules/@sema/gerador-python/dist/index.part01.js +383 -0
  382. package/node_modules/@sema/gerador-python/dist/index.part01.js.map +1 -0
  383. package/node_modules/@sema/gerador-python/dist/index.part02.d.ts +20 -0
  384. package/node_modules/@sema/gerador-python/dist/index.part02.js +396 -0
  385. package/node_modules/@sema/gerador-python/dist/index.part02.js.map +1 -0
  386. package/node_modules/@sema/gerador-python/package.json +1 -1
  387. package/node_modules/@sema/gerador-typescript/dist/index.d.ts +3 -6
  388. package/node_modules/@sema/gerador-typescript/dist/index.js +5 -810
  389. package/node_modules/@sema/gerador-typescript/dist/index.js.map +1 -1
  390. package/node_modules/@sema/gerador-typescript/dist/index.part01.d.ts +25 -0
  391. package/node_modules/@sema/gerador-typescript/dist/index.part01.js +358 -0
  392. package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +1 -0
  393. package/node_modules/@sema/gerador-typescript/dist/index.part02.d.ts +14 -0
  394. package/node_modules/@sema/gerador-typescript/dist/index.part02.js +405 -0
  395. package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +1 -0
  396. package/node_modules/@sema/gerador-typescript/dist/index.part03.d.ts +5 -0
  397. package/node_modules/@sema/gerador-typescript/dist/index.part03.js +60 -0
  398. package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +1 -0
  399. package/node_modules/@sema/gerador-typescript/package.json +1 -1
  400. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +2 -0
  401. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +1 -1
  402. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.d.ts +6 -0
  403. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js +40 -0
  404. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +1 -0
  405. package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +2 -9
  406. package/node_modules/@sema/nucleo/dist/formatador/index.js +4 -467
  407. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
  408. package/node_modules/@sema/nucleo/dist/formatador/index.part01.d.ts +39 -0
  409. package/node_modules/@sema/nucleo/dist/formatador/index.part01.js +385 -0
  410. package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +1 -0
  411. package/node_modules/@sema/nucleo/dist/formatador/index.part02.d.ts +4 -0
  412. package/node_modules/@sema/nucleo/dist/formatador/index.part02.js +92 -0
  413. package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +1 -0
  414. package/node_modules/@sema/nucleo/dist/index.d.ts +2 -0
  415. package/node_modules/@sema/nucleo/dist/index.js +6 -0
  416. package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
  417. package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +3 -5
  418. package/node_modules/@sema/nucleo/dist/ir/conversor.js +5 -880
  419. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
  420. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.d.ts +30 -0
  421. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js +398 -0
  422. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +1 -0
  423. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.d.ts +41 -0
  424. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js +184 -0
  425. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +1 -0
  426. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.d.ts +5 -0
  427. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js +310 -0
  428. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +1 -0
  429. package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +3 -9
  430. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.d.ts +11 -0
  431. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js +150 -0
  432. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +1 -0
  433. package/node_modules/@sema/nucleo/dist/parser/parser.js +5 -768
  434. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
  435. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.d.ts +3 -0
  436. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js +222 -0
  437. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +1 -0
  438. package/node_modules/@sema/nucleo/dist/parser/parser.part01.d.ts +9 -0
  439. package/node_modules/@sema/nucleo/dist/parser/parser.part01.js +61 -0
  440. package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +1 -0
  441. package/node_modules/@sema/nucleo/dist/parser/parser.part02.d.ts +40 -0
  442. package/node_modules/@sema/nucleo/dist/parser/parser.part02.js +373 -0
  443. package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +1 -0
  444. package/node_modules/@sema/nucleo/dist/parser/parser.part03.d.ts +4 -0
  445. package/node_modules/@sema/nucleo/dist/parser/parser.part03.js +9 -0
  446. package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +1 -0
  447. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +2 -0
  448. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +1 -1
  449. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +3 -59
  450. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +2 -1682
  451. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -1
  452. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.d.ts +89 -0
  453. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js +292 -0
  454. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +1 -0
  455. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.d.ts +29 -0
  456. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js +168 -0
  457. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +1 -0
  458. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.d.ts +11 -0
  459. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js +185 -0
  460. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +1 -0
  461. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.d.ts +30 -0
  462. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js +200 -0
  463. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +1 -0
  464. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.d.ts +6 -0
  465. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js +193 -0
  466. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +1 -0
  467. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.d.ts +11 -0
  468. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js +208 -0
  469. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +1 -0
  470. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.d.ts +11 -0
  471. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js +247 -0
  472. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +1 -0
  473. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.d.ts +3 -0
  474. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js +249 -0
  475. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +1 -0
  476. package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +2 -106
  477. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +4 -474
  478. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +1 -1
  479. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.d.ts +109 -0
  480. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js +259 -0
  481. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +1 -0
  482. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.d.ts +9 -0
  483. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js +223 -0
  484. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +1 -0
  485. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.d.ts +21 -0
  486. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js +40 -0
  487. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +1 -0
  488. package/node_modules/@sema/nucleo/package.json +1 -1
  489. package/node_modules/@sema/padroes/package.json +1 -1
  490. package/package.json +10 -10
@@ -0,0 +1,168 @@
1
+ // SEMA-GOVERNED: sema.software
2
+ // Descricao: nucleo semantico particionado; consulte contratos/sema/software.sema antes de editar.
3
+ import { criarDiagnostico } from "../diagnosticos/index.js";
4
+ import { CAMPOS_DATABASE_SUPORTADOS, CAMPOS_RECURSO_PERSISTENCIA_SUPORTADOS, classificarCompatibilidadePersistencia, nomeTipoRecursoPersistencia, normalizarConsistenciaPersistencia, normalizarDurabilidadePersistencia, normalizarEngineBanco, normalizarModeloConsultaPersistencia, normalizarModeloTransacaoPersistencia, parsearBooleanoPersistencia, recursoPersistenciaPodeSerPortavel, } from "../persistencia/contratos.js";
5
+ import { parsearEfeitoSemantico, } from "./estruturas.js";
6
+ import { efeitoEhPrivilegiado, } from "./seguranca.js";
7
+ import { CAMPOS_EXECUCAO_SUPORTADOS, CRITICIDADES_OPERACIONAIS, extrairPerfilCompatibilidade, localizarCampo, valorCampoCompleto } from "./analisador.part01.js";
8
+ export function validarCamposSuportadosPersistencia(bloco, camposSuportados, diagnosticos, contexto, codigo, dica) {
9
+ for (const campo of bloco.campos) {
10
+ if (camposSuportados.has(campo.nome)) {
11
+ continue;
12
+ }
13
+ diagnosticos.push(criarDiagnostico(codigo, `Campo de persistencia "${campo.nome}" nao e suportado em ${contexto}.`, "erro", campo.intervalo, dica));
14
+ }
15
+ }
16
+ export function validarBooleanoPersistencia(valor, intervalo, diagnosticos, codigo, mensagem) {
17
+ if (!valor) {
18
+ return;
19
+ }
20
+ if (parsearBooleanoPersistencia(valor) !== undefined) {
21
+ return;
22
+ }
23
+ diagnosticos.push(criarDiagnostico(codigo, mensagem, "erro", intervalo, "Use verdadeiro/falso ou true/false."));
24
+ }
25
+ export function validarRecursoPersistencia(database, recurso, diagnosticos) {
26
+ const engine = normalizarEngineBanco(valorCampoCompleto(localizarCampo(database, "engine")));
27
+ if (!engine) {
28
+ return;
29
+ }
30
+ validarCamposSuportadosPersistencia(recurso, CAMPOS_RECURSO_PERSISTENCIA_SUPORTADOS, diagnosticos, `resource "${recurso.nome ?? recurso.palavraChave}" do database "${database.nome ?? "database"}"`, "SEM106", "Use apenas entity, consistency, durability, transaction_model, query_model, portavel, mode, isolation, strategy, ttl, retention, path, from, to, surface, adapter, resource_kind, collection, table ou compatibilidade.");
31
+ const tipoRecurso = nomeTipoRecursoPersistencia(recurso);
32
+ if (!tipoRecurso) {
33
+ return;
34
+ }
35
+ const nomeRecurso = recurso.nome ?? tipoRecurso;
36
+ const contexto = `resource "${nomeRecurso}" do database "${database.nome ?? "database"}"`;
37
+ const consistency = valorCampoCompleto(localizarCampo(recurso, "consistency"));
38
+ const durability = valorCampoCompleto(localizarCampo(recurso, "durability"));
39
+ const transactionModel = valorCampoCompleto(localizarCampo(recurso, "transaction_model"));
40
+ const queryModel = valorCampoCompleto(localizarCampo(recurso, "query_model"));
41
+ const mode = valorCampoCompleto(localizarCampo(recurso, "mode"));
42
+ const portavel = valorCampoCompleto(localizarCampo(recurso, "portavel"));
43
+ const isolation = valorCampoCompleto(localizarCampo(recurso, "isolation"));
44
+ if (consistency && !normalizarConsistenciaPersistencia(consistency)) {
45
+ diagnosticos.push(criarDiagnostico("SEM107", `${contexto} declarou consistency invalida: "${consistency}".`, "erro", localizarCampo(recurso, "consistency")?.intervalo, "Use eventual, forte, serializable, snapshot ou causal."));
46
+ }
47
+ if (durability && !normalizarDurabilidadePersistencia(durability)) {
48
+ diagnosticos.push(criarDiagnostico("SEM108", `${contexto} declarou durability invalida: "${durability}".`, "erro", localizarCampo(recurso, "durability")?.intervalo, "Use baixa, media ou alta."));
49
+ }
50
+ if (transactionModel && !normalizarModeloTransacaoPersistencia(transactionModel)) {
51
+ diagnosticos.push(criarDiagnostico("SEM109", `${contexto} declarou transaction_model invalido: "${transactionModel}".`, "erro", localizarCampo(recurso, "transaction_model")?.intervalo, "Use mvcc, bloqueio, documento, otimista ou single_thread."));
52
+ }
53
+ if (queryModel && !normalizarModeloConsultaPersistencia(queryModel)) {
54
+ diagnosticos.push(criarDiagnostico("SEM110", `${contexto} declarou query_model invalido: "${queryModel}".`, "erro", localizarCampo(recurso, "query_model")?.intervalo, "Use sql, documento, chave_valor, pipeline ou stream."));
55
+ }
56
+ if (mode && !normalizarModeloConsultaPersistencia(mode)) {
57
+ diagnosticos.push(criarDiagnostico("SEM111", `${contexto} declarou mode invalido: "${mode}".`, "erro", localizarCampo(recurso, "mode")?.intervalo, "Use sql, documento, chave_valor, pipeline ou stream."));
58
+ }
59
+ const compatibilidade = classificarCompatibilidadePersistencia(tipoRecurso, engine, { mode, isolation });
60
+ if (compatibilidade.status === "invalido") {
61
+ diagnosticos.push(criarDiagnostico("SEM112", `${contexto} nao e compativel com o engine ${engine}.`, "erro", recurso.intervalo, compatibilidade.motivo));
62
+ }
63
+ validarBooleanoPersistencia(portavel, localizarCampo(recurso, "portavel")?.intervalo ?? recurso.intervalo, diagnosticos, "SEM113", `${contexto} declarou portavel com valor invalido: "${portavel}".`);
64
+ if (parsearBooleanoPersistencia(portavel) && !recursoPersistenciaPodeSerPortavel(tipoRecurso, { mode, isolation })) {
65
+ diagnosticos.push(criarDiagnostico("SEM114", `${contexto} foi marcado como portavel, mas a compatibilidade entre os cinco bancos nao fecha sem perdas reais.`, "aviso", localizarCampo(recurso, "portavel")?.intervalo ?? recurso.intervalo, "Remova portavel ou reduza o recurso para um baseline comum entre postgres, mysql, sqlite, mongodb e redis."));
66
+ }
67
+ }
68
+ export function validarDatabase(database, diagnosticos) {
69
+ validarCamposSuportadosPersistencia(database, CAMPOS_DATABASE_SUPORTADOS, diagnosticos, `database "${database.nome ?? "database"}"`, "SEM100", "Use apenas engine, schema, database, consistency, durability, transaction_model, query_model, portavel, adapter, perfil ou compatibilidade.");
70
+ const campoEngine = localizarCampo(database, "engine");
71
+ const engineBruto = valorCampoCompleto(campoEngine);
72
+ if (!engineBruto) {
73
+ diagnosticos.push(criarDiagnostico("SEM101", `Database "${database.nome ?? "database"}" precisa declarar engine.`, "erro", database.intervalo, "Use postgres, mysql, sqlite, mongodb ou redis."));
74
+ return;
75
+ }
76
+ const engine = normalizarEngineBanco(engineBruto);
77
+ if (!engine) {
78
+ diagnosticos.push(criarDiagnostico("SEM102", `Database "${database.nome ?? "database"}" declarou engine invalido: "${engineBruto}".`, "erro", campoEngine?.intervalo ?? database.intervalo, "Use postgres, mysql, sqlite, mongodb ou redis."));
79
+ return;
80
+ }
81
+ const consistency = valorCampoCompleto(localizarCampo(database, "consistency"));
82
+ const durability = valorCampoCompleto(localizarCampo(database, "durability"));
83
+ const transactionModel = valorCampoCompleto(localizarCampo(database, "transaction_model"));
84
+ const queryModel = valorCampoCompleto(localizarCampo(database, "query_model"));
85
+ const portavel = valorCampoCompleto(localizarCampo(database, "portavel"));
86
+ if (consistency && !normalizarConsistenciaPersistencia(consistency)) {
87
+ diagnosticos.push(criarDiagnostico("SEM103", `Database "${database.nome ?? "database"}" declarou consistency invalida: "${consistency}".`, "erro", localizarCampo(database, "consistency")?.intervalo, "Use eventual, forte, serializable, snapshot ou causal."));
88
+ }
89
+ if (durability && !normalizarDurabilidadePersistencia(durability)) {
90
+ diagnosticos.push(criarDiagnostico("SEM104", `Database "${database.nome ?? "database"}" declarou durability invalida: "${durability}".`, "erro", localizarCampo(database, "durability")?.intervalo, "Use baixa, media ou alta."));
91
+ }
92
+ if (transactionModel && !normalizarModeloTransacaoPersistencia(transactionModel)) {
93
+ diagnosticos.push(criarDiagnostico("SEM105", `Database "${database.nome ?? "database"}" declarou transaction_model invalido: "${transactionModel}".`, "erro", localizarCampo(database, "transaction_model")?.intervalo, "Use mvcc, bloqueio, documento, otimista ou single_thread."));
94
+ }
95
+ if (queryModel && !normalizarModeloConsultaPersistencia(queryModel)) {
96
+ diagnosticos.push(criarDiagnostico("SEM115", `Database "${database.nome ?? "database"}" declarou query_model invalido: "${queryModel}".`, "erro", localizarCampo(database, "query_model")?.intervalo, "Use sql, documento, chave_valor, pipeline ou stream."));
97
+ }
98
+ validarBooleanoPersistencia(portavel, localizarCampo(database, "portavel")?.intervalo ?? database.intervalo, diagnosticos, "SEM116", `Database "${database.nome ?? "database"}" declarou portavel com valor invalido: "${portavel}".`);
99
+ for (const recurso of database.blocos) {
100
+ if (recurso.tipo !== "bloco_generico") {
101
+ continue;
102
+ }
103
+ validarRecursoPersistencia(database, recurso, diagnosticos);
104
+ }
105
+ }
106
+ export function coletarSuperficiesModulo(modulo) {
107
+ return [
108
+ ...modulo.workers.map((superficie) => ({ tipo: "worker", superficie })),
109
+ ...modulo.eventos.map((superficie) => ({ tipo: "evento", superficie })),
110
+ ...modulo.filas.map((superficie) => ({ tipo: "fila", superficie })),
111
+ ...modulo.crons.map((superficie) => ({ tipo: "cron", superficie })),
112
+ ...modulo.webhooks.map((superficie) => ({ tipo: "webhook", superficie })),
113
+ ...modulo.caches.map((superficie) => ({ tipo: "cache", superficie })),
114
+ ...modulo.storages.map((superficie) => ({ tipo: "storage", superficie })),
115
+ ...modulo.policies.map((superficie) => ({ tipo: "policy", superficie })),
116
+ ];
117
+ }
118
+ export function superficieEhPublica(superficie, tipoSuperficie) {
119
+ return extrairPerfilCompatibilidade(superficie, tipoSuperficie === "webhook" ? "publico" : "interno") === "publico";
120
+ }
121
+ export function taskEhSensivel(task) {
122
+ const criticidadeOperacional = task.execucao
123
+ ? valorCampoCompleto(localizarCampo(task.execucao, "criticidade_operacional"))
124
+ : undefined;
125
+ if (criticidadeOperacional === "alta" || criticidadeOperacional === "critica") {
126
+ return true;
127
+ }
128
+ return (task.effects?.linhas ?? []).some((linha) => {
129
+ const efeito = parsearEfeitoSemantico(linha.conteudo);
130
+ if (!efeito) {
131
+ return false;
132
+ }
133
+ return efeito.categoria === "persistencia" || efeito.criticidade === "alta" || efeito.criticidade === "critica" || efeitoEhPrivilegiado(efeito);
134
+ });
135
+ }
136
+ export function taskTemRastreabilidade(task) {
137
+ return Boolean(task.impl || task.vinculos);
138
+ }
139
+ export function routeEhMutante(route) {
140
+ const metodo = (localizarCampo(route.corpo, "metodo")?.valor ?? "").toUpperCase();
141
+ return ["POST", "PUT", "PATCH", "DELETE"].includes(metodo);
142
+ }
143
+ export function validarExecucaoBloco(execucao, diagnosticos, contexto) {
144
+ if (!execucao) {
145
+ return;
146
+ }
147
+ for (const campo of execucao.campos) {
148
+ if (!CAMPOS_EXECUCAO_SUPORTADOS.has(campo.nome)) {
149
+ diagnosticos.push(criarDiagnostico("SEM065", `Campo de execucao "${campo.nome}" nao e suportado em ${contexto}.`, "erro", campo.intervalo, "Use apenas idempotencia, timeout, retry, compensacao ou criticidade_operacional."));
150
+ continue;
151
+ }
152
+ if (campo.nome === "criticidade_operacional") {
153
+ const criticidade = valorCampoCompleto(campo);
154
+ if (criticidade && !CRITICIDADES_OPERACIONAIS.has(criticidade)) {
155
+ diagnosticos.push(criarDiagnostico("SEM066", `Execucao de ${contexto} declarou criticidade_operacional invalida: "${criticidade}".`, "erro", campo.intervalo, "Use apenas baixa, media, alta ou critica em execucao."));
156
+ }
157
+ }
158
+ }
159
+ const criticidade = valorCampoCompleto(localizarCampo(execucao, "criticidade_operacional"));
160
+ const idempotencia = localizarCampo(execucao, "idempotencia");
161
+ if ((criticidade === "alta" || criticidade === "critica") && !idempotencia) {
162
+ diagnosticos.push(criarDiagnostico("SEM101", `Execucao critica em ${contexto} deveria declarar idempotencia explicita.`, "aviso", execucao.intervalo, "Declare idempotencia: verdadeiro ou idempotencia: falso para a IA nao assumir retry seguro no escuro."));
163
+ }
164
+ }
165
+ export function validarExecucao(task, diagnosticos) {
166
+ validarExecucaoBloco(task.execucao, diagnosticos, `task "${task.nome}"`);
167
+ }
168
+ //# sourceMappingURL=analisador.part02.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analisador.part02.js","sourceRoot":"","sources":["../../src/semantico/analisador.part02.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { type Diagnostico } from "../diagnosticos/index.js";
2
+ import type { BlocoGenericoAst } from "../ast/tipos.js";
3
+ import { extrairContratoForbidden } from "./seguranca.js";
4
+ import { PerfilSegurancaDeclarado } from "./analisador.part02.js";
5
+ export declare function validarAuthBloco(bloco: BlocoGenericoAst | undefined, diagnosticos: Diagnostico[], contexto: string): void;
6
+ export declare function validarAuthzBloco(bloco: BlocoGenericoAst | undefined, diagnosticos: Diagnostico[], contexto: string): void;
7
+ export declare function validarDadosBloco(bloco: BlocoGenericoAst | undefined, diagnosticos: Diagnostico[], contexto: string): void;
8
+ export declare function validarAuditBloco(bloco: BlocoGenericoAst | undefined, diagnosticos: Diagnostico[], contexto: string): void;
9
+ export declare function validarSegredosBloco(bloco: BlocoGenericoAst | undefined, diagnosticos: Diagnostico[], contexto: string): void;
10
+ export declare function validarForbiddenBloco(bloco: BlocoGenericoAst | undefined, efeitos: BlocoGenericoAst["linhas"], diagnosticos: Diagnostico[], contexto: string): ReturnType<typeof extrairContratoForbidden>;
11
+ export declare function coletarPerfilSegurancaDeclarado(corpo: BlocoGenericoAst, effects: BlocoGenericoAst | undefined, diagnosticos: Diagnostico[] | undefined, contexto: string): PerfilSegurancaDeclarado;
@@ -0,0 +1,185 @@
1
+ // SEMA-GOVERNED: sema.software
2
+ // Descricao: nucleo semantico particionado; consulte contratos/sema/software.sema antes de editar.
3
+ import { criarDiagnostico } from "../diagnosticos/index.js";
4
+ import { parsearEfeitoSemantico, } from "./estruturas.js";
5
+ import { CLASSIFICACOES_DADO_SUPORTADAS, MODOS_AUTH_SUPORTADOS, MOTIVOS_AUDIT_SUPORTADOS, ORIGENS_AUTH_SUPORTADAS, PRINCIPAIS_AUTH_SUPORTADOS, REDACOES_LOG_SUPORTADAS, TENANTS_AUTHZ_SUPORTADOS, contratoDadosTemSegredoOuCredencial, contratoDadosTemSensivel, extrairContratoAudit, extrairContratoAuth, extrairContratoAuthz, extrairContratoDados, extrairContratoForbidden, extrairContratoSegredos, efeitoEhPrivilegiado, efeitoRequerSegredo, forbiddenContemRegra, } from "./seguranca.js";
6
+ import { CAMPOS_AUDIT_SUPORTADOS, CAMPOS_AUTHZ_SUPORTADOS, CAMPOS_AUTH_SUPORTADOS, CAMPOS_DADOS_SUPORTADOS, CAMPOS_SEGREDO_SUPORTADOS, localizarBloco, localizarCampo, valorCampoCompleto } from "./analisador.part01.js";
7
+ export function validarAuthBloco(bloco, diagnosticos, contexto) {
8
+ if (!bloco) {
9
+ return;
10
+ }
11
+ for (const campo of bloco.campos) {
12
+ if (!CAMPOS_AUTH_SUPORTADOS.has(campo.nome)) {
13
+ diagnosticos.push(criarDiagnostico("SEM074", `Campo de auth "${campo.nome}" nao e suportado em ${contexto}.`, "erro", campo.intervalo, "Use apenas modo, estrategia, principal ou origem em auth."));
14
+ }
15
+ }
16
+ const auth = extrairContratoAuth(bloco);
17
+ if (auth.modo && !MODOS_AUTH_SUPORTADOS.has(auth.modo)) {
18
+ diagnosticos.push(criarDiagnostico("SEM075", `Auth em ${contexto} declarou modo invalido: "${auth.modo}".`, "erro", bloco.intervalo, "Use obrigatorio, opcional, anonimo, interno ou m2m."));
19
+ }
20
+ if (auth.principal && !PRINCIPAIS_AUTH_SUPORTADOS.has(auth.principal)) {
21
+ diagnosticos.push(criarDiagnostico("SEM076", `Auth em ${contexto} declarou principal invalido: "${auth.principal}".`, "erro", bloco.intervalo, "Use usuario, servico, sistema ou anonimo."));
22
+ }
23
+ if (auth.origem && !ORIGENS_AUTH_SUPORTADAS.has(auth.origem)) {
24
+ diagnosticos.push(criarDiagnostico("SEM077", `Auth em ${contexto} declarou origem invalida: "${auth.origem}".`, "erro", bloco.intervalo, "Use publica, interna, worker, webhook, fila ou cron."));
25
+ }
26
+ }
27
+ export function validarAuthzBloco(bloco, diagnosticos, contexto) {
28
+ if (!bloco) {
29
+ return;
30
+ }
31
+ for (const campo of bloco.campos) {
32
+ if (!CAMPOS_AUTHZ_SUPORTADOS.has(campo.nome)) {
33
+ diagnosticos.push(criarDiagnostico("SEM078", `Campo de authz "${campo.nome}" nao e suportado em ${contexto}.`, "erro", campo.intervalo, "Use papel, papeis, escopo, escopos, politica ou tenant em authz."));
34
+ }
35
+ }
36
+ const authz = extrairContratoAuthz(bloco);
37
+ if (authz.tenant && !TENANTS_AUTHZ_SUPORTADOS.has(authz.tenant)) {
38
+ diagnosticos.push(criarDiagnostico("SEM079", `Authz em ${contexto} declarou tenant invalido: "${authz.tenant}".`, "erro", bloco.intervalo, "Use obrigatorio, opcional ou isolado."));
39
+ }
40
+ if (authz.papeis.length === 0 && authz.escopos.length === 0 && !authz.politica) {
41
+ diagnosticos.push(criarDiagnostico("SEM080", `Authz em ${contexto} precisa declarar papeis, escopos ou politica.`, "erro", bloco.intervalo, "Explicite ao menos um papel, escopo ou politica para a autorizacao nao virar enfeite."));
42
+ }
43
+ }
44
+ export function validarDadosBloco(bloco, diagnosticos, contexto) {
45
+ if (!bloco) {
46
+ return;
47
+ }
48
+ for (const campo of bloco.campos) {
49
+ const valor = valorCampoCompleto(campo);
50
+ if (CAMPOS_DADOS_SUPORTADOS.has(campo.nome)) {
51
+ continue;
52
+ }
53
+ if (valor && !CLASSIFICACOES_DADO_SUPORTADAS.has(valor)) {
54
+ diagnosticos.push(criarDiagnostico("SEM081", `Dados em ${contexto} declarou classificacao invalida para "${campo.nome}": "${valor}".`, "erro", campo.intervalo, "Use publico, interno, pii, financeiro, credencial ou segredo."));
55
+ }
56
+ }
57
+ const dados = extrairContratoDados(bloco);
58
+ if (dados.classificacaoPadrao && !CLASSIFICACOES_DADO_SUPORTADAS.has(dados.classificacaoPadrao)) {
59
+ diagnosticos.push(criarDiagnostico("SEM081", `Dados em ${contexto} declarou classificacao_padrao invalida: "${dados.classificacaoPadrao}".`, "erro", bloco.intervalo, "Use publico, interno, pii, financeiro, credencial ou segredo."));
60
+ }
61
+ if (dados.redacaoLog && !REDACOES_LOG_SUPORTADAS.has(dados.redacaoLog)) {
62
+ diagnosticos.push(criarDiagnostico("SEM082", `Dados em ${contexto} declarou redacao_log invalida: "${dados.redacaoLog}".`, "erro", bloco.intervalo, "Use livre, parcial, obrigatoria ou proibida."));
63
+ }
64
+ for (const subbloco of bloco.blocos) {
65
+ if (subbloco.tipo !== "bloco_generico") {
66
+ continue;
67
+ }
68
+ const nomeSubbloco = subbloco.nome ?? subbloco.palavraChave;
69
+ if (nomeSubbloco !== "input" && nomeSubbloco !== "output") {
70
+ diagnosticos.push(criarDiagnostico("SEM083", `Dados em ${contexto} nao suporta o subbloco "${nomeSubbloco}".`, "erro", subbloco.intervalo, "Use apenas campos diretos ou subblocos input/output para classificar dados."));
71
+ continue;
72
+ }
73
+ for (const campo of subbloco.campos) {
74
+ const classificacao = valorCampoCompleto(campo);
75
+ if (classificacao && !CLASSIFICACOES_DADO_SUPORTADAS.has(classificacao)) {
76
+ diagnosticos.push(criarDiagnostico("SEM081", `Dados em ${contexto} declarou classificacao invalida para "${nomeSubbloco}.${campo.nome}": "${classificacao}".`, "erro", campo.intervalo, "Use publico, interno, pii, financeiro, credencial ou segredo."));
77
+ }
78
+ }
79
+ }
80
+ }
81
+ export function validarAuditBloco(bloco, diagnosticos, contexto) {
82
+ if (!bloco) {
83
+ return;
84
+ }
85
+ for (const campo of bloco.campos) {
86
+ if (!CAMPOS_AUDIT_SUPORTADOS.has(campo.nome)) {
87
+ diagnosticos.push(criarDiagnostico("SEM084", `Campo de audit "${campo.nome}" nao e suportado em ${contexto}.`, "erro", campo.intervalo, "Use evento, ator, correlacao, retencao ou motivo em audit."));
88
+ }
89
+ }
90
+ const audit = extrairContratoAudit(bloco);
91
+ if (!audit.evento) {
92
+ diagnosticos.push(criarDiagnostico("SEM085", `Audit em ${contexto} precisa declarar evento.`, "erro", bloco.intervalo, "Explique qual evento auditavel sera registrado para a operacao."));
93
+ }
94
+ if (audit.motivo && !MOTIVOS_AUDIT_SUPORTADOS.has(audit.motivo)) {
95
+ diagnosticos.push(criarDiagnostico("SEM086", `Audit em ${contexto} declarou motivo invalido: "${audit.motivo}".`, "erro", bloco.intervalo, "Use obrigatorio, opcional ou dispensado."));
96
+ }
97
+ }
98
+ export function validarSegredosBloco(bloco, diagnosticos, contexto) {
99
+ if (!bloco) {
100
+ return;
101
+ }
102
+ const segredos = extrairContratoSegredos(bloco);
103
+ if (segredos.itens.length === 0) {
104
+ diagnosticos.push(criarDiagnostico("SEM087", `Segredos em ${contexto} precisa declarar ao menos um segredo nomeado.`, "erro", bloco.intervalo, "Use segredos { nome_do_segredo { origem: vault escopo: runtime ... } }."));
105
+ return;
106
+ }
107
+ for (const item of bloco.blocos) {
108
+ if (item.tipo !== "bloco_generico") {
109
+ continue;
110
+ }
111
+ for (const campo of item.campos) {
112
+ if (!CAMPOS_SEGREDO_SUPORTADOS.has(campo.nome)) {
113
+ diagnosticos.push(criarDiagnostico("SEM087", `Segredo "${item.nome ?? item.palavraChave}" em ${contexto} usa o campo "${campo.nome}", que nao e suportado.`, "erro", campo.intervalo, "Use origem, escopo, acesso, rotacao, nao_logar, nao_retornar ou mascarar."));
114
+ }
115
+ }
116
+ const nomeSegredo = item.nome ?? item.palavraChave;
117
+ const origem = valorCampoCompleto(localizarCampo(item, "origem"));
118
+ if (!origem) {
119
+ diagnosticos.push(criarDiagnostico("SEM088", `Segredo "${nomeSegredo}" em ${contexto} precisa declarar origem.`, "erro", item.intervalo, "Explicite a origem do segredo, como vault, env, secret_manager ou runtime."));
120
+ }
121
+ for (const nomeBooleano of ["nao_logar", "nao_retornar", "mascarar"]) {
122
+ const campo = localizarCampo(item, nomeBooleano);
123
+ const valor = valorCampoCompleto(campo);
124
+ if (campo && valor !== "verdadeiro" && valor !== "true" && valor !== "falso" && valor !== "false") {
125
+ diagnosticos.push(criarDiagnostico("SEM089", `Segredo "${nomeSegredo}" em ${contexto} declarou "${nomeBooleano}" com valor invalido: "${valor}".`, "erro", campo.intervalo, "Use verdadeiro/falso para campos booleanos de segredos."));
126
+ }
127
+ }
128
+ }
129
+ }
130
+ export function validarForbiddenBloco(bloco, efeitos, diagnosticos, contexto) {
131
+ const forbidden = extrairContratoForbidden(bloco);
132
+ if (!bloco) {
133
+ return forbidden;
134
+ }
135
+ for (const regra of forbidden.regras) {
136
+ if (!/^[A-Za-z_][A-Za-z0-9_.-]*$/u.test(regra)) {
137
+ diagnosticos.push(criarDiagnostico("SEM090", `Forbidden em ${contexto} declarou regra invalida: "${regra}".`, "erro", bloco.intervalo, "Use regras simples como network.egress, shell.exec, retorno.credencial ou log.segredo."));
138
+ }
139
+ }
140
+ for (const linha of efeitos) {
141
+ const efeito = parsearEfeitoSemantico(linha.conteudo);
142
+ if (efeito && forbiddenContemRegra(forbidden, efeito.categoria)) {
143
+ diagnosticos.push(criarDiagnostico("SEM091", `Forbidden em ${contexto} proibe "${efeito.categoria}", mas effects ainda declara esse efeito.`, "erro", linha.intervalo, "Remova o efeito proibido ou ajuste o bloco forbidden para refletir a operacao permitida de verdade."));
144
+ }
145
+ }
146
+ return forbidden;
147
+ }
148
+ export function coletarPerfilSegurancaDeclarado(corpo, effects, diagnosticos, contexto) {
149
+ const authBloco = localizarBloco(corpo, "auth");
150
+ const authzBloco = localizarBloco(corpo, "authz");
151
+ const dadosBloco = localizarBloco(corpo, "dados");
152
+ const auditBloco = localizarBloco(corpo, "audit");
153
+ const segredosBloco = localizarBloco(corpo, "segredos");
154
+ const forbiddenBloco = localizarBloco(corpo, "forbidden");
155
+ if (diagnosticos) {
156
+ validarAuthBloco(authBloco, diagnosticos, contexto);
157
+ validarAuthzBloco(authzBloco, diagnosticos, contexto);
158
+ validarDadosBloco(dadosBloco, diagnosticos, contexto);
159
+ validarAuditBloco(auditBloco, diagnosticos, contexto);
160
+ validarSegredosBloco(segredosBloco, diagnosticos, contexto);
161
+ }
162
+ const forbidden = diagnosticos
163
+ ? validarForbiddenBloco(forbiddenBloco, effects?.linhas ?? [], diagnosticos, contexto)
164
+ : extrairContratoForbidden(forbiddenBloco);
165
+ const auth = extrairContratoAuth(authBloco);
166
+ const authz = extrairContratoAuthz(authzBloco);
167
+ const dados = extrairContratoDados(dadosBloco);
168
+ const audit = extrairContratoAudit(auditBloco);
169
+ const segredos = extrairContratoSegredos(segredosBloco);
170
+ const efeitosEstruturados = (effects?.linhas ?? [])
171
+ .map((linha) => parsearEfeitoSemantico(linha.conteudo))
172
+ .filter((efeito) => Boolean(efeito));
173
+ return {
174
+ auth,
175
+ authz,
176
+ dados,
177
+ audit,
178
+ segredos,
179
+ forbidden,
180
+ efeitoPrivilegiado: efeitosEstruturados.some((efeito) => efeitoEhPrivilegiado(efeito)),
181
+ dadosSensiveis: contratoDadosTemSensivel(dados),
182
+ exigeSegredos: efeitosEstruturados.some((efeito) => efeitoRequerSegredo(efeito)) || contratoDadosTemSegredoOuCredencial(dados),
183
+ };
184
+ }
185
+ //# sourceMappingURL=analisador.part03.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analisador.part03.js","sourceRoot":"","sources":["../../src/semantico/analisador.part03.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type Diagnostico } from "../diagnosticos/index.js";
2
+ import type { BlocoGenericoAst, CampoAst, TaskAst } from "../ast/tipos.js";
3
+ import { PerfilSegurancaDeclarado } from "./analisador.part02.js";
4
+ import { ContextoSemantico, SimboloSemantico } from "./analisador.part01.js";
5
+ export declare function emitirGuardrailsSeguranca(contexto: string, intervalo: CampoAst["intervalo"] | undefined, perfil: PerfilSegurancaDeclarado, diagnosticos: Diagnostico[], opcoes: {
6
+ publico: boolean;
7
+ sensivel: boolean;
8
+ }): void;
9
+ export declare function validarErroOperacional(task: TaskAst, diagnosticos: Diagnostico[]): void;
10
+ export declare function validarSuperficie(superficie: BlocoGenericoAst, tipoSuperficie: SimboloSemantico["categoria"], tasksConhecidas: Set<string>, tiposConhecidos: Set<string>, diagnosticos: Diagnostico[]): void;
11
+ export declare function recomporCaminhoRoute(campo?: CampoAst): string | undefined;
12
+ export declare function serializarTransicao(origem: string, destino: string): string;
13
+ export declare function descreverSugestoes(valores: Iterable<string>, prefixo: string): string | undefined;
14
+ export declare function listarCandidatosUseRelativo(moduloAtual: string, caminhoImportado: string): string[];
15
+ export declare function resolverUseSema(moduloAtual: string, caminhoImportado: string, contextosModulos?: Map<string, ContextoSemantico>): {
16
+ caminhoResolvido?: string;
17
+ candidatosRelativos: string[];
18
+ };
19
+ export declare function descreverDicaSintaxeExpressao(texto: string, dicaPadrao: string): string;
20
+ export declare function validarExpressoesDeclaradas(linhas: BlocoGenericoAst["linhas"], diagnosticos: Diagnostico[], contexto: {
21
+ codigoErroSintaxe: string;
22
+ codigoErroReferencia: string;
23
+ nomeBloco: string;
24
+ simbolosPermitidos: Set<string>;
25
+ dicaSintaxe: string;
26
+ dicaReferencia: string;
27
+ aceitarMarcadoresSemanticos?: boolean;
28
+ dicaReferenciaPersonalizada?: (raiz: string, linha: string) => string | undefined;
29
+ }): void;
30
+ export declare function validarEfeitosDeclarados(linhas: BlocoGenericoAst["linhas"], diagnosticos: Diagnostico[], contexto: string): void;