@semacode/cli 1.5.36 → 1.5.37

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 (481) hide show
  1. package/AGENT_CONTEXT_PACK.json +76 -8
  2. package/LICENSE +1 -2
  3. package/SEMA_BRIEF.curto.txt +8 -6
  4. package/SEMA_BRIEF.md +240 -204
  5. package/SEMA_BRIEF.micro.txt +9 -6
  6. package/SEMA_INDEX.json +2079 -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 +3 -0
  11. package/dist/agentContextPack.js +403 -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 +422 -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 +358 -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 +46 -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-python/dist/index.d.ts +2 -6
  373. package/node_modules/@sema/gerador-python/dist/index.js +4 -771
  374. package/node_modules/@sema/gerador-python/dist/index.js.map +1 -1
  375. package/node_modules/@sema/gerador-python/dist/index.part01.d.ts +28 -0
  376. package/node_modules/@sema/gerador-python/dist/index.part01.js +383 -0
  377. package/node_modules/@sema/gerador-python/dist/index.part01.js.map +1 -0
  378. package/node_modules/@sema/gerador-python/dist/index.part02.d.ts +20 -0
  379. package/node_modules/@sema/gerador-python/dist/index.part02.js +396 -0
  380. package/node_modules/@sema/gerador-python/dist/index.part02.js.map +1 -0
  381. package/node_modules/@sema/gerador-typescript/dist/index.d.ts +3 -6
  382. package/node_modules/@sema/gerador-typescript/dist/index.js +5 -810
  383. package/node_modules/@sema/gerador-typescript/dist/index.js.map +1 -1
  384. package/node_modules/@sema/gerador-typescript/dist/index.part01.d.ts +25 -0
  385. package/node_modules/@sema/gerador-typescript/dist/index.part01.js +358 -0
  386. package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +1 -0
  387. package/node_modules/@sema/gerador-typescript/dist/index.part02.d.ts +14 -0
  388. package/node_modules/@sema/gerador-typescript/dist/index.part02.js +405 -0
  389. package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +1 -0
  390. package/node_modules/@sema/gerador-typescript/dist/index.part03.d.ts +5 -0
  391. package/node_modules/@sema/gerador-typescript/dist/index.part03.js +60 -0
  392. package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +1 -0
  393. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +2 -0
  394. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +1 -1
  395. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.d.ts +6 -0
  396. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js +40 -0
  397. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +1 -0
  398. package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +2 -9
  399. package/node_modules/@sema/nucleo/dist/formatador/index.js +4 -467
  400. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
  401. package/node_modules/@sema/nucleo/dist/formatador/index.part01.d.ts +38 -0
  402. package/node_modules/@sema/nucleo/dist/formatador/index.part01.js +382 -0
  403. package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +1 -0
  404. package/node_modules/@sema/nucleo/dist/formatador/index.part02.d.ts +4 -0
  405. package/node_modules/@sema/nucleo/dist/formatador/index.part02.js +92 -0
  406. package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +1 -0
  407. package/node_modules/@sema/nucleo/dist/index.d.ts +2 -0
  408. package/node_modules/@sema/nucleo/dist/index.js +6 -0
  409. package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
  410. package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +3 -5
  411. package/node_modules/@sema/nucleo/dist/ir/conversor.js +5 -880
  412. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
  413. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.d.ts +30 -0
  414. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js +398 -0
  415. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +1 -0
  416. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.d.ts +41 -0
  417. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js +184 -0
  418. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +1 -0
  419. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.d.ts +5 -0
  420. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js +310 -0
  421. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +1 -0
  422. package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +3 -9
  423. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.d.ts +11 -0
  424. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js +150 -0
  425. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +1 -0
  426. package/node_modules/@sema/nucleo/dist/parser/parser.js +5 -768
  427. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
  428. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.d.ts +3 -0
  429. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js +222 -0
  430. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +1 -0
  431. package/node_modules/@sema/nucleo/dist/parser/parser.part01.d.ts +9 -0
  432. package/node_modules/@sema/nucleo/dist/parser/parser.part01.js +61 -0
  433. package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +1 -0
  434. package/node_modules/@sema/nucleo/dist/parser/parser.part02.d.ts +40 -0
  435. package/node_modules/@sema/nucleo/dist/parser/parser.part02.js +373 -0
  436. package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +1 -0
  437. package/node_modules/@sema/nucleo/dist/parser/parser.part03.d.ts +4 -0
  438. package/node_modules/@sema/nucleo/dist/parser/parser.part03.js +9 -0
  439. package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +1 -0
  440. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +2 -0
  441. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +1 -1
  442. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +3 -59
  443. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +2 -1682
  444. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -1
  445. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.d.ts +89 -0
  446. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js +292 -0
  447. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +1 -0
  448. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.d.ts +29 -0
  449. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js +168 -0
  450. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +1 -0
  451. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.d.ts +11 -0
  452. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js +185 -0
  453. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +1 -0
  454. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.d.ts +30 -0
  455. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js +200 -0
  456. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +1 -0
  457. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.d.ts +6 -0
  458. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js +193 -0
  459. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +1 -0
  460. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.d.ts +11 -0
  461. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js +208 -0
  462. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +1 -0
  463. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.d.ts +11 -0
  464. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js +247 -0
  465. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +1 -0
  466. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.d.ts +3 -0
  467. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js +249 -0
  468. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +1 -0
  469. package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +2 -106
  470. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +4 -474
  471. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +1 -1
  472. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.d.ts +109 -0
  473. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js +259 -0
  474. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +1 -0
  475. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.d.ts +9 -0
  476. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js +223 -0
  477. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +1 -0
  478. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.d.ts +21 -0
  479. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js +40 -0
  480. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +1 -0
  481. package/package.json +10 -10
@@ -0,0 +1,399 @@
1
+ // SEMA-GOVERNED: sema.governanca_ia_contexto
2
+ // Descricao: CLI particionada; consulte contratos/sema/governanca_ia_contexto.sema antes de editar.
3
+ export const templateCrudSimples = (moduloNome) => `module ${moduloNome} {
4
+ entity Item {
5
+ fields {
6
+ id: Id
7
+ nome: Texto
8
+ descricao: Texto
9
+ ativo: Booleano
10
+ criado_em: Timestamp
11
+ }
12
+ }
13
+
14
+ task criar_item {
15
+ input {
16
+ nome: Texto required
17
+ descricao: Texto optional
18
+ }
19
+ output {
20
+ item: Item
21
+ }
22
+ rules {
23
+ nome deve_ser preenchido
24
+ }
25
+ effects {
26
+ persistencia Item
27
+ auditoria item_criado
28
+ }
29
+ guarantees {
30
+ item existe
31
+ }
32
+ tests {
33
+ caso "cria item basico" {
34
+ given {
35
+ nome: "Novo Item"
36
+ }
37
+ expect {
38
+ sucesso: verdadeiro
39
+ }
40
+ }
41
+ }
42
+ }
43
+
44
+ task listar_itens {
45
+ input {
46
+ ativo: Booleano optional
47
+ pagina: Inteiro optional
48
+ limite: Inteiro optional
49
+ }
50
+ output {
51
+ itens: Lista<Item>
52
+ total: Inteiro
53
+ }
54
+ effects {
55
+ consulta Item
56
+ }
57
+ guarantees {
58
+ itens existe
59
+ }
60
+ }
61
+
62
+ route itens {
63
+ metodo: POST
64
+ caminho: /itens
65
+ task: criar_item
66
+ finalidade: criar_novo_item
67
+ input {
68
+ nome: Texto
69
+ descricao: Texto
70
+ }
71
+ output {
72
+ item: Item
73
+ }
74
+ auth {
75
+ modo: obrigatorio
76
+ }
77
+ authz {
78
+ escopo: ${moduloNome}.criar
79
+ }
80
+ audit {
81
+ evento: ${moduloNome}.item.criado
82
+ ator: auth.usuario
83
+ retencao: "90d"
84
+ }
85
+ }
86
+ }`;
87
+ export const templateAuthCompleto = (moduloNome) => `module ${moduloNome} {
88
+ entity Usuario {
89
+ fields {
90
+ id: Id
91
+ email: Email
92
+ senha_hash: Texto
93
+ papel: Texto
94
+ ativo: Booleano
95
+ ultimo_login: Timestamp
96
+ }
97
+ }
98
+
99
+ task autenticar_usuario {
100
+ input {
101
+ email: Email required
102
+ senha: Texto required
103
+ }
104
+ output {
105
+ token: Texto
106
+ usuario: Usuario
107
+ expiracao: Timestamp
108
+ }
109
+ rules {
110
+ email deve_ser email_valido
111
+ senha deve_ter tamanho >= 8
112
+ }
113
+ effects {
114
+ consulta Usuario
115
+ auditoria login_tentativa
116
+ }
117
+ forbidden {
118
+ expor_senha_em_log
119
+ retornar_senha_hash
120
+ permitir_credencial_inativa
121
+ }
122
+ guarantees {
123
+ token existe
124
+ expiracao > agora
125
+ }
126
+ error {
127
+ credenciais_invalidas: "Email ou senha incorretos."
128
+ conta_inativa: "Conta desativada. Contate o administrador."
129
+ senha_fraca: "Senha nao atende aos requisitos minimos."
130
+ }
131
+ tests {
132
+ caso "login com sucesso" {
133
+ given {
134
+ email: "user@exemplo.com"
135
+ senha: "senha123"
136
+ }
137
+ expect {
138
+ sucesso: verdadeiro
139
+ token existe
140
+ }
141
+ }
142
+ }
143
+ }
144
+
145
+ task registrar_usuario {
146
+ input {
147
+ email: Email required
148
+ senha: Texto required
149
+ confirmar_senha: Texto required
150
+ }
151
+ output {
152
+ usuario: Usuario
153
+ }
154
+ rules {
155
+ email deve_ser email_valido
156
+ email deve_ser unico em Usuario.email
157
+ senha deve_ter tamanho >= 8
158
+ senha deve_coincidir com confirmar_senha
159
+ }
160
+ effects {
161
+ persistencia Usuario
162
+ evento usuario_registrado
163
+ auditoria cadastro_novo
164
+ }
165
+ forbidden {
166
+ armazenar_senha_texto_plano
167
+ permitir_email_duplicado
168
+ }
169
+ guarantees {
170
+ usuario existe
171
+ usuario.senha_hash nao_eh_texto_plano
172
+ }
173
+ error {
174
+ email_duplicado: "Ja existe conta com este email."
175
+ senha_fraca: "Senha deve ter pelo menos 8 caracteres."
176
+ senhas_diferentes: "As senhas nao coincidem."
177
+ }
178
+ }
179
+ }`;
180
+ export const templateApiRest = (moduloNome) => `module ${moduloNome} {
181
+ docs {
182
+ resumo: "API REST completa com CRUD, autenticacao e paginacao."
183
+ versao: "1.0.0"
184
+ }
185
+
186
+ entity Recurso {
187
+ fields {
188
+ id: Id
189
+ titulo: Texto
190
+ conteudo: Texto
191
+ status: Texto
192
+ criado_por: Id
193
+ criado_em: Timestamp
194
+ atualizado_em: Timestamp
195
+ }
196
+ }
197
+
198
+ task criar_recurso {
199
+ input {
200
+ titulo: Texto required
201
+ conteudo: Texto required
202
+ }
203
+ output {
204
+ recurso: Recurso
205
+ }
206
+ rules {
207
+ titulo deve_ser preenchido
208
+ conteudo deve_ser preenchido
209
+ }
210
+ effects {
211
+ persistencia Recurso
212
+ auditoria recurso_criado
213
+ }
214
+ auth {
215
+ modo: obrigatorio
216
+ }
217
+ authz {
218
+ escopo: ${moduloNome}.escrever
219
+ papeis: [admin, editor]
220
+ }
221
+ dados {
222
+ input {
223
+ titulo: publico
224
+ conteudo: interno
225
+ }
226
+ }
227
+ audit {
228
+ evento: ${moduloNome}.recurso.criado
229
+ ator: auth.usuario
230
+ retencao: "90d"
231
+ }
232
+ guarantees {
233
+ recurso existe
234
+ recurso.criado_por == auth.usuario_id
235
+ }
236
+ }
237
+
238
+ task obter_recurso {
239
+ input {
240
+ id: Id required
241
+ }
242
+ output {
243
+ recurso: Recurso
244
+ }
245
+ rules {
246
+ id deve_ser valido
247
+ }
248
+ effects {
249
+ consulta Recurso
250
+ }
251
+ auth {
252
+ modo: opcional
253
+ }
254
+ authz {
255
+ escopo: ${moduloNome}.ler
256
+ }
257
+ guarantees {
258
+ recurso existe
259
+ }
260
+ error {
261
+ nao_encontrado: "Recurso nao encontrado."
262
+ }
263
+ }
264
+
265
+ task listar_recursos {
266
+ input {
267
+ status: Texto optional
268
+ pagina: Inteiro optional
269
+ limite: Inteiro optional
270
+ ordenar_por: Texto optional
271
+ }
272
+ output {
273
+ recursos: Lista<Recurso>
274
+ total: Inteiro
275
+ pagina: Inteiro
276
+ total_paginas: Inteiro
277
+ }
278
+ rules {
279
+ limite quando preenchido deve_ser <= 100
280
+ pagina quando preenchido deve_ser >= 1
281
+ }
282
+ effects {
283
+ consulta Recurso
284
+ }
285
+ auth {
286
+ modo: anonimo
287
+ }
288
+ guarantees {
289
+ recursos existe
290
+ }
291
+ }
292
+
293
+ task atualizar_recurso {
294
+ input {
295
+ id: Id required
296
+ titulo: Texto optional
297
+ conteudo: Texto optional
298
+ status: Texto optional
299
+ }
300
+ output {
301
+ recurso: Recurso
302
+ }
303
+ rules {
304
+ id deve_ser valido
305
+ pelo_menos_um_campo_preenchido
306
+ }
307
+ effects {
308
+ persistencia Recurso
309
+ auditoria recurso_atualizado
310
+ }
311
+ auth {
312
+ modo: obrigatorio
313
+ }
314
+ authz {
315
+ escopo: ${moduloNome}.escrever
316
+ regra: recurso.criado_por == auth.usuario_id ou auth.papel == admin
317
+ }
318
+ guarantees {
319
+ recurso existe
320
+ atualizado_em atualizado
321
+ }
322
+ error {
323
+ nao_encontrado: "Recurso nao encontrado."
324
+ sem_permissao: "Voce nao tem permissao para editar este recurso."
325
+ }
326
+ }
327
+
328
+ task excluir_recurso {
329
+ input {
330
+ id: Id required
331
+ confirmar: Booleano required
332
+ }
333
+ output {
334
+ excluido: Booleano
335
+ }
336
+ rules {
337
+ id deve_ser valido
338
+ confirmar == verdadeiro
339
+ }
340
+ effects {
341
+ persistencia Recurso criticidade = alta
342
+ auditoria recurso_excluido criticidade = alta
343
+ }
344
+ forbidden {
345
+ excluir_sem_confirmacao
346
+ cascade_delete_sem_backup
347
+ }
348
+ auth {
349
+ modo: obrigatorio
350
+ }
351
+ authz {
352
+ escopo: ${moduloNome}.deletar
353
+ regra: auth.papel == admin ou recurso.criado_por == auth.usuario_id
354
+ }
355
+ guarantees {
356
+ excluido == verdadeiro
357
+ }
358
+ error {
359
+ nao_encontrado: "Recurso nao encontrado."
360
+ sem_confirmacao: "Exclusao requer confirmacao explicita."
361
+ }
362
+ }
363
+
364
+ route recursos_criar {
365
+ metodo: POST
366
+ caminho: /recursos
367
+ task: criar_recurso
368
+ finalidade: criar_recurso_api
369
+ }
370
+
371
+ route recursos_listar {
372
+ metodo: GET
373
+ caminho: /recursos
374
+ task: listar_recursos
375
+ finalidade: listar_recursos_api
376
+ }
377
+
378
+ route recursos_obter {
379
+ metodo: GET
380
+ caminho: /recursos/:id
381
+ task: obter_recurso
382
+ finalidade: obter_recurso_api
383
+ }
384
+
385
+ route recursos_atualizar {
386
+ metodo: PUT
387
+ caminho: /recursos/:id
388
+ task: atualizar_recurso
389
+ finalidade: atualizar_recurso_api
390
+ }
391
+
392
+ route recursos_excluir {
393
+ metodo: DELETE
394
+ caminho: /recursos/:id
395
+ task: excluir_recurso
396
+ finalidade: excluir_recurso_api
397
+ }
398
+ }`;
399
+ //# sourceMappingURL=templates.part01.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.part01.js","sourceRoot":"","sources":["../../src/init/templates.part01.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,oGAAoG;AAWpG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA2E/D,UAAU;;;gBAGV,UAAU;;;;;EAKxB,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4F9E,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAsC3D,UAAU;;;;;;;;;;gBAUV,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA2BV,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA4DV,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAqCV,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8CxB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { TemplateInit } from "./templates.part01.js";
2
+ export declare const templateWorkflow: (moduloNome: string) => string;
3
+ export declare const templatePedido: (moduloNome: string) => string;
4
+ export declare const templateUsuario: (moduloNome: string) => string;
5
+ export declare const templateUpload: (moduloNome: string) => string;
6
+ export declare const templatesDisponiveis: Record<string, TemplateInit>;
7
+ export declare function listarTemplates(categoriaFiltro?: string): TemplateInit[];
8
+ export declare function obterTemplate(nome: string): TemplateInit | null;
@@ -0,0 +1,265 @@
1
+ // SEMA-GOVERNED: sema.governanca_ia_contexto
2
+ // Descricao: CLI particionada; consulte contratos/sema/governanca_ia_contexto.sema antes de editar.
3
+ import { templateApiRest, templateAuthCompleto, templateCrudSimples } from "./templates.part01.js";
4
+ export const templateWorkflow = (moduloNome) => `module ${moduloNome} {
5
+ docs {
6
+ resumo: "Workflow de automacao com trigger, acoes e condicoes."
7
+ }
8
+
9
+ entity Workflow {
10
+ fields {
11
+ id: Id
12
+ nome: Texto
13
+ ativo: Booleano
14
+ trigger_tipo: Texto
15
+ trigger_config: Texto
16
+ acoes: Lista<Texto>
17
+ criado_em: Timestamp
18
+ }
19
+ }
20
+
21
+ task executar_workflow {
22
+ input {
23
+ workflow_id: Id required
24
+ payload: Texto required
25
+ contexto: Mapa<Texto, Texto> optional
26
+ }
27
+ output {
28
+ execucao_id: Id
29
+ resultado: Texto
30
+ status: Texto
31
+ duracao_ms: Inteiro
32
+ }
33
+ rules {
34
+ workflow_id deve_ser valido
35
+ payload deve_ser json_valido
36
+ }
37
+ effects {
38
+ consulta Workflow
39
+ consulta workflow_runtime
40
+ persistencia execucao_log
41
+ auditoria workflow_executado
42
+ }
43
+ execucao {
44
+ timeout: "30s"
45
+ retry: "ate 3 tentativas"
46
+ idempotencia: verdadeiro
47
+ }
48
+ guarantees {
49
+ execucao_id existe
50
+ status em ["sucesso", "falha", "timeout"]
51
+ }
52
+ error {
53
+ workflow_nao_encontrado: "Workflow nao encontrado."
54
+ workflow_inativo: "Workflow esta desativado."
55
+ execucao_timeout: "Workflow excedeu tempo limite."
56
+ }
57
+ }
58
+
59
+ flow orquestracao_workflow {
60
+ workflow_id: Id
61
+ payload: Texto
62
+ etapa validar usa executar_workflow com workflow_id = workflow_id, payload = payload em_sucesso processar em_erro registrar_falha
63
+ etapa processar usa processar_resultado com execucao_id = validar.execucao_id depende_de validar
64
+ etapa registrar_falha usa log_erro_workflow com workflow_id = workflow_id, erro = validar.error depende_de validar
65
+ }
66
+ }`;
67
+ export const templatePedido = (moduloNome) => `module ${moduloNome} {
68
+ entity Pedido {
69
+ fields {
70
+ id: Id
71
+ cliente_id: Id
72
+ itens: Lista<Texto>
73
+ valor_total: Decimal
74
+ status: Texto
75
+ criado_em: Timestamp
76
+ }
77
+ }
78
+
79
+ task criar_pedido {
80
+ input {
81
+ cliente_id: Id required
82
+ itens: Lista<Texto> required
83
+ }
84
+ output {
85
+ pedido: Pedido
86
+ }
87
+ rules {
88
+ cliente_id deve_ser valido
89
+ itens deve_ser nao_vazio
90
+ }
91
+ effects {
92
+ persistencia Pedido
93
+ evento pedido_criado
94
+ }
95
+ guarantees {
96
+ pedido existe
97
+ pedido.status == "pendente"
98
+ }
99
+ }
100
+ }`;
101
+ export const templateUsuario = (moduloNome) => `module ${moduloNome} {
102
+ entity Usuario {
103
+ fields {
104
+ id: Id
105
+ nome: Texto
106
+ email: Email
107
+ ativo: Booleano
108
+ }
109
+ }
110
+
111
+ task criar_usuario {
112
+ input {
113
+ nome: Texto required
114
+ email: Email required
115
+ }
116
+ output {
117
+ usuario: Usuario
118
+ }
119
+ rules {
120
+ nome deve_ser preenchido
121
+ email deve_ser email_valido
122
+ email deve_ser unico em Usuario.email
123
+ }
124
+ effects {
125
+ persistencia Usuario
126
+ evento usuario_criado
127
+ auditoria cadastro_usuario
128
+ }
129
+ guarantees {
130
+ usuario existe
131
+ persistencia concluida
132
+ }
133
+ error {
134
+ email_duplicado: "Ja existe usuario com este email."
135
+ entrada_invalida: "Os dados informados nao atendem as regras."
136
+ }
137
+ tests {
138
+ caso "cria usuario valido" {
139
+ given {
140
+ nome: "Ana"
141
+ email: "ana@empresa.com"
142
+ }
143
+ expect {
144
+ sucesso: verdadeiro
145
+ }
146
+ }
147
+ }
148
+ }
149
+ }`;
150
+ export const templateUpload = (moduloNome) => `module ${moduloNome} {
151
+ entity Arquivo {
152
+ fields {
153
+ id: Id
154
+ nome_original: Texto
155
+ mime_type: Texto
156
+ tamanho_bytes: Inteiro
157
+ url: Texto
158
+ upload_por: Id
159
+ criado_em: Timestamp
160
+ }
161
+ }
162
+
163
+ task upload_arquivo {
164
+ input {
165
+ arquivo_binario: Texto required
166
+ nome_original: Texto required
167
+ mime_type: Texto required
168
+ }
169
+ output {
170
+ arquivo: Arquivo
171
+ url_acesso: Texto
172
+ }
173
+ rules {
174
+ tamanho_bytes deve_ser <= 10485760 // 10MB
175
+ mime_type em ["image/jpeg", "image/png", "application/pdf", "text/plain"]
176
+ }
177
+ effects {
178
+ persistencia Arquivo
179
+ storage.write arquivo_binario
180
+ auditoria arquivo_uploadado
181
+ }
182
+ forbidden {
183
+ executar_arquivo_uploadado
184
+ armazenar_exe_ou_script
185
+ permitir_upload_anonimo_sem_rate_limit
186
+ }
187
+ guarantees {
188
+ arquivo existe
189
+ url_acesso existe
190
+ }
191
+ error {
192
+ arquivo_muito_grande: "Arquivo excede 10MB."
193
+ tipo_nao_permitido: "Tipo de arquivo nao permitido."
194
+ }
195
+ }
196
+ }`;
197
+ export const templatesDisponiveis = {
198
+ "crud-simples": {
199
+ nome: "crud-simples",
200
+ categoria: "basico",
201
+ descricao: "CRUD simples com entity, tasks basicas e route POST",
202
+ linhasBase: 45,
203
+ camposEditaveis: ["nome_modulo", "nome_entity", "nome_task"],
204
+ conteudo: templateCrudSimples
205
+ },
206
+ "auth-completo": {
207
+ nome: "auth-completo",
208
+ categoria: "seguranca",
209
+ descricao: "Autenticacao completa com login, registro, tokens e senha",
210
+ linhasBase: 60,
211
+ camposEditaveis: ["nome_modulo", "escopos_authz"],
212
+ conteudo: templateAuthCompleto
213
+ },
214
+ "api-rest": {
215
+ nome: "api-rest",
216
+ categoria: "api",
217
+ descricao: "API REST completa com CRUD, paginacao, autenticacao e 5 routes",
218
+ linhasBase: 180,
219
+ camposEditaveis: ["nome_modulo", "nome_entity", "campos_entity"],
220
+ conteudo: templateApiRest
221
+ },
222
+ "workflow": {
223
+ nome: "workflow",
224
+ categoria: "automation",
225
+ descricao: "Workflow de automacao com trigger, execucao e flow",
226
+ linhasBase: 60,
227
+ camposEditaveis: ["nome_modulo", "triggers", "acoes"],
228
+ conteudo: templateWorkflow
229
+ },
230
+ "pedido": {
231
+ nome: "pedido",
232
+ categoria: "ecommerce",
233
+ descricao: "Template simplificado de pedido para ecommerce",
234
+ linhasBase: 30,
235
+ camposEditaveis: ["nome_modulo", "campos_pedido"],
236
+ conteudo: templatePedido
237
+ },
238
+ "usuario": {
239
+ nome: "usuario",
240
+ categoria: "cadastro",
241
+ descricao: "Cadastro de usuario com email unico e validacoes",
242
+ linhasBase: 40,
243
+ camposEditaveis: ["nome_modulo", "campos_usuario"],
244
+ conteudo: templateUsuario
245
+ },
246
+ "upload": {
247
+ nome: "upload",
248
+ categoria: "arquivos",
249
+ descricao: "Upload de arquivos com validacao de tipo e tamanho",
250
+ linhasBase: 50,
251
+ camposEditaveis: ["nome_modulo", "tipos_permitidos", "tamanho_maximo"],
252
+ conteudo: templateUpload
253
+ }
254
+ };
255
+ export function listarTemplates(categoriaFiltro) {
256
+ const templates = Object.values(templatesDisponiveis);
257
+ if (categoriaFiltro) {
258
+ return templates.filter(t => t.categoria === categoriaFiltro);
259
+ }
260
+ return templates;
261
+ }
262
+ export function obterTemplate(nome) {
263
+ return templatesDisponiveis[nome] || null;
264
+ }
265
+ //# sourceMappingURL=templates.part02.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.part02.js","sourceRoot":"","sources":["../../src/init/templates.part02.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type TemplateIniciar } from "./initTemplatesBase.js";
2
+ export declare function comandoIniciar(cwd: string, template: TemplateIniciar): Promise<number>;
3
+ export declare function comandoInstalarExemplos(emJson: boolean): Promise<number>;