@semacode/cli 2.3.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/LICENSE +39 -39
  2. package/README.md +112 -41
  3. package/dist/agentContextPack.js +14 -10
  4. package/dist/agentEntryPoints.d.ts +5 -0
  5. package/dist/agentEntryPoints.js +102 -91
  6. package/dist/angular-consumer-standalone.d.ts +3 -1
  7. package/dist/angular-consumer-standalone.js +12 -8
  8. package/dist/bin.d.ts +6 -0
  9. package/dist/bin.js +130 -0
  10. package/dist/cliArgs.js +4 -4
  11. package/dist/cliControlError.d.ts +12 -0
  12. package/dist/cliControlError.js +47 -0
  13. package/dist/cliGrammar.d.ts +11 -0
  14. package/dist/cliGrammar.js +551 -0
  15. package/dist/cliHelp.d.ts +13 -0
  16. package/dist/cliHelp.js +19 -0
  17. package/dist/cliHelpTexto.d.ts +3 -0
  18. package/dist/cliHelpTexto.js +168 -0
  19. package/dist/cliRuntime.d.ts +2 -0
  20. package/dist/cliRuntime.js +31 -0
  21. package/dist/comandos.js +9 -22
  22. package/dist/contexto.js +5 -5
  23. package/dist/dev/index.d.ts +1 -0
  24. package/dist/dev/index.js +51 -9
  25. package/dist/discovery/catalog.js +3 -3
  26. package/dist/distribuicao/filesystemGlobal.d.ts +63 -0
  27. package/dist/distribuicao/filesystemGlobal.js +701 -0
  28. package/dist/distribuicao/index.d.ts +7 -0
  29. package/dist/distribuicao/index.js +227 -0
  30. package/dist/distribuicao/launcherGlobal.d.ts +53 -0
  31. package/dist/distribuicao/launcherGlobal.js +643 -0
  32. package/dist/distribuicao/launcherWindows.d.ts +28 -0
  33. package/dist/distribuicao/launcherWindows.js +326 -0
  34. package/dist/distribuicao/lockContextGlobal.d.ts +10 -0
  35. package/dist/distribuicao/lockContextGlobal.js +17 -0
  36. package/dist/distribuicao/lockGlobal.d.ts +6 -0
  37. package/dist/distribuicao/lockGlobal.js +520 -0
  38. package/dist/distribuicao/skillGlobal.d.ts +48 -0
  39. package/dist/distribuicao/skillGlobal.js +652 -0
  40. package/dist/distribuicao/skillIntentPolicy.d.ts +21 -0
  41. package/dist/distribuicao/skillIntentPolicy.js +115 -0
  42. package/dist/distribuicao/tipos.d.ts +50 -0
  43. package/dist/distribuicao/tipos.js +10 -0
  44. package/dist/distribuicao/versaoSemantica.d.ts +3 -0
  45. package/dist/distribuicao/versaoSemantica.js +62 -0
  46. package/dist/drift.part01.d.ts +34 -2
  47. package/dist/drift.part01.js +3 -0
  48. package/dist/drift.part04.d.ts +12 -2
  49. package/dist/drift.part04.js +89 -15
  50. package/dist/drift.part05.d.ts +2 -1
  51. package/dist/drift.part05.js +9 -6
  52. package/dist/drift.part06.d.ts +2 -1
  53. package/dist/drift.part06.js +115 -24
  54. package/dist/drift.part07.d.ts +11 -10
  55. package/dist/drift.part07.js +261 -255
  56. package/dist/drift.part08.d.ts +2 -1
  57. package/dist/drift.part08.js +35 -25
  58. package/dist/drift.part11.js +279 -32
  59. package/dist/drift.part12.d.ts +1 -1
  60. package/dist/drift.part12.js +196 -11
  61. package/dist/drift.part13.d.ts +18 -2
  62. package/dist/drift.part13.js +654 -76
  63. package/dist/drift.part14.js +21 -7
  64. package/dist/driftCacheCas.d.ts +43 -0
  65. package/dist/driftCacheCas.js +351 -0
  66. package/dist/driftCacheFilesystem.d.ts +64 -0
  67. package/dist/driftCacheFilesystem.js +313 -0
  68. package/dist/driftCacheModes.d.ts +38 -0
  69. package/dist/driftCacheModes.js +147 -0
  70. package/dist/driftCacheStore.d.ts +80 -0
  71. package/dist/driftCacheStore.js +603 -0
  72. package/dist/driftCatalogo.d.ts +65 -0
  73. package/dist/driftCatalogo.js +516 -0
  74. package/dist/driftEscopo.d.ts +21 -0
  75. package/dist/driftEscopo.js +647 -0
  76. package/dist/driftEscopoReferencias.d.ts +8 -0
  77. package/dist/driftEscopoReferencias.js +612 -0
  78. package/dist/driftOrcamento.d.ts +6 -0
  79. package/dist/driftOrcamento.js +20 -3
  80. package/dist/geracaoCore.js +4 -6
  81. package/dist/iaPrompts.d.ts +3 -3
  82. package/dist/iaPrompts.js +13 -14
  83. package/dist/index.d.ts +4 -1
  84. package/dist/index.js +6 -25
  85. package/dist/index.part01.d.ts +21 -14
  86. package/dist/index.part01.js +20 -165
  87. package/dist/index.part02.js +57 -43
  88. package/dist/index.part03.d.ts +23 -1
  89. package/dist/index.part03.js +83 -8
  90. package/dist/index.part04.d.ts +10 -2
  91. package/dist/index.part04.js +48 -14
  92. package/dist/index.part05.d.ts +1 -1
  93. package/dist/index.part05.js +109 -30
  94. package/dist/index.part06.js +34 -16
  95. package/dist/index.part07.js +31 -27
  96. package/dist/index.part08.d.ts +1 -1
  97. package/dist/index.part08.js +23 -28
  98. package/dist/init/templates.part01.js +393 -393
  99. package/dist/init/templates.part02.js +189 -189
  100. package/dist/initCommand.js +5 -1
  101. package/dist/initTemplatesBackend.js +73 -73
  102. package/dist/initTemplatesBase.js +7 -5
  103. package/dist/initTemplatesFlutter.js +137 -137
  104. package/dist/initTemplatesRuntime.js +350 -350
  105. package/dist/initTemplatesWeb.js +309 -309
  106. package/dist/pipelineConteudo/command.d.ts +1 -0
  107. package/dist/pipelineConteudo/command.js +4 -32
  108. package/dist/pipelineConteudo/help.d.ts +2 -0
  109. package/dist/pipelineConteudo/help.js +33 -0
  110. package/dist/profileAuthorCommand.js +3 -7
  111. package/dist/profileCommand.js +3 -7
  112. package/dist/projeto.d.ts +1 -1
  113. package/dist/projetoCarregar.d.ts +2 -2
  114. package/dist/projetoCarregar.js +69 -28
  115. package/dist/projetoCatalogo.d.ts +8 -0
  116. package/dist/projetoCatalogo.js +164 -0
  117. package/dist/projetoOrigens.d.ts +2 -0
  118. package/dist/projetoOrigens.js +65 -9
  119. package/dist/projetoTipos.d.ts +15 -5
  120. package/dist/resultadoCli.d.ts +20 -0
  121. package/dist/resultadoCli.js +57 -0
  122. package/dist/saidaCli.d.ts +35 -0
  123. package/dist/saidaCli.js +118 -0
  124. package/dist/sistemasInterativos/acceptanceEvidence.d.ts +22 -0
  125. package/dist/sistemasInterativos/acceptanceEvidence.js +345 -0
  126. package/dist/sistemasInterativos/engineObservation.d.ts +12 -0
  127. package/dist/sistemasInterativos/engineObservation.js +438 -0
  128. package/dist/sistemasInterativos/jobOrchestration.d.ts +2 -0
  129. package/dist/sistemasInterativos/jobOrchestration.js +204 -0
  130. package/dist/sistemasInterativos/operationPrimitives.d.ts +21 -0
  131. package/dist/sistemasInterativos/operationPrimitives.js +194 -0
  132. package/dist/sistemasInterativos/operations.d.ts +4 -39
  133. package/dist/sistemasInterativos/operations.js +5 -1164
  134. package/dist/skillCommand.d.ts +5 -0
  135. package/dist/skillCommand.js +88 -0
  136. package/dist/sync/index.js +35 -35
  137. package/docs/README.md +11 -7
  138. package/docs/ai-integration.md +18 -11
  139. package/docs/ai-onboarding.md +81 -62
  140. package/docs/ai-workflow.md +10 -4
  141. package/docs/auth.md +26 -26
  142. package/docs/cli.md +197 -79
  143. package/docs/commands.md +30 -6
  144. package/docs/database.md +15 -15
  145. package/docs/deploy.md +54 -41
  146. package/docs/documentation.md +11 -10
  147. package/docs/drift-cache.md +108 -0
  148. package/docs/env.md +16 -16
  149. package/docs/frontend.md +41 -41
  150. package/docs/getting-started.md +82 -57
  151. package/docs/i18n.md +15 -15
  152. package/docs/repositories.md +60 -43
  153. package/docs/rollback.md +38 -31
  154. package/docs/security.md +54 -32
  155. package/docs/sistemas-interativos.md +27 -27
  156. package/docs/support.md +8 -8
  157. package/docs/testing.md +123 -17
  158. package/docs/vocabulary.md +29 -29
  159. package/exemplos/agendamento.sema +1 -1
  160. package/exemplos/assinatura.sema +1 -1
  161. package/exemplos/auditoria.sema +1 -1
  162. package/exemplos/autenticacao.sema +1 -1
  163. package/exemplos/author_obra_comum.sema +1 -1
  164. package/exemplos/author_tema_sensivel.sema +1 -1
  165. package/exemplos/automacao.sema +1 -1
  166. package/exemplos/cadastro_usuario.sema +1 -1
  167. package/exemplos/calculadora.sema +1 -1
  168. package/exemplos/crud_simples.sema +1 -1
  169. package/exemplos/estoque.sema +1 -1
  170. package/exemplos/exportacao.sema +1 -1
  171. package/exemplos/fila.sema +1 -1
  172. package/exemplos/integracao_externa.sema +1 -1
  173. package/exemplos/multi_tenant.sema +1 -1
  174. package/exemplos/notificacao.sema +1 -1
  175. package/exemplos/operacao_estrategia.sema +132 -132
  176. package/exemplos/operacao_estrategia_discovery.sema +220 -220
  177. package/exemplos/operacao_estrategia_fluxo.sema +114 -114
  178. package/exemplos/operacao_estrategia_gates.sema +106 -106
  179. package/exemplos/operacao_estrategia_quarentena.sema +133 -133
  180. package/exemplos/operacao_estrategia_rollout.sema +124 -124
  181. package/exemplos/pagamento.sema +1 -1
  182. package/exemplos/pagamento_dominio.sema +1 -1
  183. package/exemplos/pedido.sema +1 -1
  184. package/exemplos/permissao.sema +1 -1
  185. package/exemplos/persistencia_vendor_first.sema +1 -1
  186. package/exemplos/profile_conversas.sema +165 -165
  187. package/exemplos/profile_game.sema +1 -1
  188. package/exemplos/profile_legal.sema +1 -1
  189. package/exemplos/profile_ops.sema +1 -1
  190. package/exemplos/profile_research.sema +1 -1
  191. package/exemplos/profile_software.sema +1 -1
  192. package/exemplos/profile_workflow_n8n.sema +1 -1
  193. package/exemplos/relatorio.sema +1 -1
  194. package/exemplos/replica_analitica_erp.sema +1 -1
  195. package/exemplos/testes_embutidos.sema +1 -1
  196. package/exemplos/tratamento_erro.sema +1 -1
  197. package/exemplos/upload_arquivo.sema +1 -1
  198. package/exemplos/webhook.sema +1 -1
  199. package/node_modules/@sema/gerador-cpp/dist/index.js +176 -176
  200. package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
  201. package/node_modules/@sema/gerador-css/dist/index.part02.js +460 -460
  202. package/node_modules/@sema/gerador-dotnet/dist/index.js +169 -169
  203. package/node_modules/@sema/gerador-html/dist/index.js +17 -17
  204. package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
  205. package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
  206. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
  207. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +1 -0
  208. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1 -0
  209. package/package.json +7 -2
  210. package/scripts/postinstall.mjs +148 -0
  211. package/skills/sema/SKILL.md +199 -0
  212. package/skills/sema/agents/openai.yaml +4 -0
  213. package/node_modules/@sema/gerador-cpp/dist/index.js.map +0 -1
  214. package/node_modules/@sema/gerador-css/dist/index.js.map +0 -1
  215. package/node_modules/@sema/gerador-css/dist/index.part01.js.map +0 -1
  216. package/node_modules/@sema/gerador-css/dist/index.part02.js.map +0 -1
  217. package/node_modules/@sema/gerador-dart/dist/index.js.map +0 -1
  218. package/node_modules/@sema/gerador-dotnet/dist/index.js.map +0 -1
  219. package/node_modules/@sema/gerador-html/dist/index.js.map +0 -1
  220. package/node_modules/@sema/gerador-javascript/dist/index.js.map +0 -1
  221. package/node_modules/@sema/gerador-lua/dist/index.js.map +0 -1
  222. package/node_modules/@sema/gerador-php/dist/index.js.map +0 -1
  223. package/node_modules/@sema/gerador-python/dist/index.js.map +0 -1
  224. package/node_modules/@sema/gerador-python/dist/index.part01.js.map +0 -1
  225. package/node_modules/@sema/gerador-python/dist/index.part02.js.map +0 -1
  226. package/node_modules/@sema/gerador-typescript/dist/index.js.map +0 -1
  227. package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +0 -1
  228. package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +0 -1
  229. package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +0 -1
  230. package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +0 -1
  231. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +0 -1
  232. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +0 -1
  233. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +0 -1
  234. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +0 -1
  235. package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +0 -1
  236. package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +0 -1
  237. package/node_modules/@sema/nucleo/dist/index.js.map +0 -1
  238. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +0 -1
  239. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +0 -1
  240. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +0 -1
  241. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +0 -1
  242. package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +0 -1
  243. package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +0 -1
  244. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +0 -1
  245. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +0 -1
  246. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +0 -1
  247. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +0 -1
  248. package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +0 -1
  249. package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +0 -1
  250. package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +0 -1
  251. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +0 -1
  252. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +0 -1
  253. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +0 -1
  254. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +0 -1
  255. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +0 -1
  256. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +0 -1
  257. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +0 -1
  258. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +0 -1
  259. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +0 -1
  260. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +0 -1
  261. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +0 -1
  262. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +0 -1
  263. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +0 -1
  264. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +0 -1
  265. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +0 -1
  266. package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +0 -1
  267. package/node_modules/@sema/padroes/dist/index.js.map +0 -1
package/dist/bin.js ADDED
@@ -0,0 +1,130 @@
1
+ #!/usr/bin/env node
2
+ // SEMA-GOVERNED: sema.produto.cli_invocacao_publica, sema.produto.cli_invocacao_publica.resultados, sema.produto.cli_invocacao_publica.handlers, sema.produto.distribuicao_global
3
+ // Descrição: bootstrap executável puro; ajuda e versão encerram antes do runtime operacional.
4
+ import pacoteCli from "../package.json" with { type: "json" };
5
+ import { spawnSync } from "node:child_process";
6
+ import { fileURLToPath } from "node:url";
7
+ import { ehCliControlError } from "./cliControlError.js";
8
+ import { validarSintaxeInvocacaoPublica } from "./cliGrammar.js";
9
+ import { detectarHelpAntesDispatch } from "./cliHelp.js";
10
+ import { criarAjudaRaiz } from "./cliHelpTexto.js";
11
+ import { criarAjudaPipelineConteudo } from "./pipelineConteudo/help.js";
12
+ import { CODIGO_SAIDA_FATAL_RUNTIME_CLI, criarEnvelopeControleJsonV1, emitirResultadoCliJsonV1, executarInvocacaoPublica, } from "./saidaCli.js";
13
+ const FLAGS_VERSAO = new Set(["--versao", "--version", "-v"]);
14
+ const CAMINHO_RUNTIME_CLI = fileURLToPath(new URL("./cliRuntime.js", import.meta.url));
15
+ const LIMITE_BUFFER_RUNTIME_JSON = 16 * 1024 * 1024;
16
+ function executarRuntimeJsonCapturado(argv) {
17
+ const execucao = spawnSync(process.execPath, [CAMINHO_RUNTIME_CLI, ...argv], {
18
+ cwd: process.cwd(),
19
+ env: process.env,
20
+ encoding: "utf8",
21
+ maxBuffer: LIMITE_BUFFER_RUNTIME_JSON,
22
+ shell: false,
23
+ stdio: ["ignore", "pipe", "pipe"],
24
+ windowsHide: true,
25
+ });
26
+ if (execucao.error
27
+ || execucao.signal !== null
28
+ || execucao.status === null
29
+ || execucao.status === CODIGO_SAIDA_FATAL_RUNTIME_CLI) {
30
+ return null;
31
+ }
32
+ return {
33
+ codigoSaida: execucao.status,
34
+ stdout: execucao.stdout ?? "",
35
+ };
36
+ }
37
+ function mensagemAjudaPublica(argv) {
38
+ if (argv[0] === "conteudo") {
39
+ const ajudaConteudo = criarAjudaPipelineConteudo();
40
+ if (typeof ajudaConteudo.mensagem === "string") {
41
+ return ajudaConteudo.mensagem;
42
+ }
43
+ }
44
+ return criarAjudaRaiz(pacoteCli.version);
45
+ }
46
+ function emitirAjuda(argv, modoJson) {
47
+ const mensagemTexto = mensagemAjudaPublica(argv);
48
+ const relatorio = executarInvocacaoPublica({
49
+ resultado: "HELP",
50
+ modoJson,
51
+ mensagemTexto,
52
+ envelopeControle: modoJson
53
+ ? criarEnvelopeControleJsonV1({
54
+ categoria: "HELP",
55
+ codigoPublico: "CLI_HELP",
56
+ mensagemPublica: argv[0] === "conteudo" ? mensagemTexto : "Sema CLI help",
57
+ codigoSaida: 0,
58
+ })
59
+ : undefined,
60
+ });
61
+ return relatorio.codigoSaida;
62
+ }
63
+ function emitirFalhaControle(argv, categoria, codigoPublico, mensagemPublica, codigoSaida) {
64
+ const modoJson = argv.includes("--json");
65
+ const relatorio = executarInvocacaoPublica({
66
+ resultado: categoria,
67
+ modoJson,
68
+ mensagemTexto: mensagemPublica,
69
+ envelopeControle: modoJson
70
+ ? criarEnvelopeControleJsonV1({
71
+ categoria,
72
+ codigoPublico,
73
+ mensagemPublica,
74
+ codigoSaida,
75
+ })
76
+ : undefined,
77
+ });
78
+ if (!modoJson && categoria === "UNKNOWN_COMMAND") {
79
+ console.log(criarAjudaRaiz(pacoteCli.version));
80
+ }
81
+ return relatorio.codigoSaida;
82
+ }
83
+ /**
84
+ * Única entrada executável pública. O import do runtime ocorre somente depois
85
+ * de ajuda, argv vazio e versão encerrarem sem resolver handlers.
86
+ */
87
+ export async function executarCliPublica(argv = process.argv.slice(2)) {
88
+ if (argv.length === 0) {
89
+ return emitirAjuda(argv, false);
90
+ }
91
+ const deteccaoHelp = detectarHelpAntesDispatch(argv);
92
+ if (deteccaoHelp.ajudaSolicitada) {
93
+ return emitirAjuda(argv, deteccaoHelp.modoJson);
94
+ }
95
+ if (FLAGS_VERSAO.has(argv[0])) {
96
+ console.log(pacoteCli.version);
97
+ return 0;
98
+ }
99
+ try {
100
+ const sintaxe = validarSintaxeInvocacaoPublica(argv);
101
+ if (!sintaxe.dispatchPermitido)
102
+ return 0;
103
+ if (argv.includes("--json")) {
104
+ const execucao = executarRuntimeJsonCapturado(argv);
105
+ if (!execucao) {
106
+ return emitirFalhaControle(argv, "FATAL_ERROR", "CLI_FATAL_ERROR", "Falha ao executar a CLI da Sema.", 1);
107
+ }
108
+ return emitirResultadoCliJsonV1({
109
+ comando: sintaxe.comando,
110
+ codigoSaida: execucao.codigoSaida,
111
+ stdout: execucao.stdout,
112
+ }).exitCode;
113
+ }
114
+ const { principal } = await import("./index.part08.js");
115
+ return await principal();
116
+ }
117
+ catch (erro) {
118
+ if (ehCliControlError(erro)) {
119
+ return emitirFalhaControle(argv, erro.categoria, erro.codigoPublico, erro.mensagemPublica, erro.codigoSaida);
120
+ }
121
+ return emitirFalhaControle(argv, "FATAL_ERROR", "CLI_FATAL_ERROR", "Falha ao executar a CLI da Sema.", 1);
122
+ }
123
+ }
124
+ void executarCliPublica().then((codigoSaida) => {
125
+ process.exitCode = codigoSaida;
126
+ }, () => {
127
+ console.error("Falha ao executar a CLI da Sema.");
128
+ process.exitCode = 1;
129
+ });
130
+ //# sourceMappingURL=bin.js.map
package/dist/cliArgs.js CHANGED
@@ -1,7 +1,5 @@
1
- // SEMA-GOVERNED
2
- // M?dulo: sema.produto.orcamento_semantico
3
- // Contrato: contratos/sema/orcamento_semantico.sema
4
- // Descri??o: parse comum de argumentos e flags da CLI.
1
+ // SEMA-GOVERNED: sema.produto.orcamento_semantico, sema.produto.governanca_ia.drift.cache.modos
2
+ // Descrição: classifica flags públicas da CLI sem perder os modos explícitos de drift.
5
3
  export function obterOpcao(args, nome, padrao) {
6
4
  const nomes = [nome, ...Object.entries(ALIAS_OPCOES).filter(([, v]) => v === nome).map(([k]) => k)];
7
5
  for (const n of nomes) {
@@ -28,6 +26,8 @@ export const OPCOES_COM_VALOR = new Set([
28
26
  "--template",
29
27
  "--alvo", "-a",
30
28
  "--escopo",
29
+ "--cache",
30
+ "--drift",
31
31
  "--saida", "-s",
32
32
  "--estrutura",
33
33
  "--framework",
@@ -0,0 +1,12 @@
1
+ export type CategoriaFalhaControleCli = "UNKNOWN_COMMAND" | "ARGUMENT_ERROR" | "FATAL_ERROR";
2
+ export declare class CliControlError extends Error {
3
+ readonly categoria: CategoriaFalhaControleCli;
4
+ readonly codigoPublico: string;
5
+ readonly mensagemPublica: string;
6
+ readonly codigoSaida: number;
7
+ constructor(categoria: CategoriaFalhaControleCli);
8
+ }
9
+ export declare function erroComandoDesconhecido(): CliControlError;
10
+ export declare function erroArgumentoInvalido(): CliControlError;
11
+ export declare function erroFatalCli(): CliControlError;
12
+ export declare function ehCliControlError(valor: unknown): valor is CliControlError;
@@ -0,0 +1,47 @@
1
+ // SEMA-GOVERNED: sema.produto.cli_invocacao_publica.argumentos
2
+ // Descrição: representa falhas públicas de controle sem carregar argv, stack ou caminhos na mensagem.
3
+ const DEFINICOES_FALHA_CONTROLE = Object.freeze({
4
+ UNKNOWN_COMMAND: Object.freeze({
5
+ codigoPublico: "CLI_UNKNOWN_COMMAND",
6
+ mensagemPublica: "Comando Sema desconhecido.",
7
+ codigoSaida: 1,
8
+ }),
9
+ ARGUMENT_ERROR: Object.freeze({
10
+ codigoPublico: "CLI_ARGUMENT_ERROR",
11
+ mensagemPublica: "Argumentos inválidos. Consulte a ajuda do comando.",
12
+ codigoSaida: 1,
13
+ }),
14
+ FATAL_ERROR: Object.freeze({
15
+ codigoPublico: "CLI_FATAL_ERROR",
16
+ mensagemPublica: "Falha ao executar a CLI da Sema.",
17
+ codigoSaida: 1,
18
+ }),
19
+ });
20
+ export class CliControlError extends Error {
21
+ categoria;
22
+ codigoPublico;
23
+ mensagemPublica;
24
+ codigoSaida;
25
+ constructor(categoria) {
26
+ const definicao = DEFINICOES_FALHA_CONTROLE[categoria];
27
+ super(definicao.mensagemPublica);
28
+ this.name = "CliControlError";
29
+ this.categoria = categoria;
30
+ this.codigoPublico = definicao.codigoPublico;
31
+ this.mensagemPublica = definicao.mensagemPublica;
32
+ this.codigoSaida = definicao.codigoSaida;
33
+ }
34
+ }
35
+ export function erroComandoDesconhecido() {
36
+ return new CliControlError("UNKNOWN_COMMAND");
37
+ }
38
+ export function erroArgumentoInvalido() {
39
+ return new CliControlError("ARGUMENT_ERROR");
40
+ }
41
+ export function erroFatalCli() {
42
+ return new CliControlError("FATAL_ERROR");
43
+ }
44
+ export function ehCliControlError(valor) {
45
+ return valor instanceof CliControlError;
46
+ }
47
+ //# sourceMappingURL=cliControlError.js.map
@@ -0,0 +1,11 @@
1
+ import { type CategoriaFalhaControleCli } from "./cliControlError.js";
2
+ export interface ResultadoSintaxeInvocacaoPublica {
3
+ readonly comando: string;
4
+ readonly sintaxeValida: true;
5
+ readonly dispatchPermitido: boolean;
6
+ readonly handlerResolvido: false;
7
+ readonly efeitosPermitidos: boolean;
8
+ readonly categoriaFalha: CategoriaFalhaControleCli | null;
9
+ readonly codigoPublico: string | null;
10
+ }
11
+ export declare function validarSintaxeInvocacaoPublica(argv: readonly string[]): ResultadoSintaxeInvocacaoPublica;