@semacode/cli 1.5.18 → 1.5.25

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 (93) hide show
  1. package/AGENTS.md +268 -260
  2. package/LICENSE +22 -22
  3. package/README.md +144 -104
  4. package/SEMA_BRIEF.curto.txt +7 -5
  5. package/SEMA_BRIEF.md +61 -5
  6. package/SEMA_BRIEF.micro.txt +6 -4
  7. package/SEMA_INDEX.json +991 -47
  8. package/dist/controleComercialSupabase.d.ts +326 -0
  9. package/dist/controleComercialSupabase.js +310 -0
  10. package/dist/controleComercialSupabase.js.map +1 -0
  11. package/dist/docs.js +48 -20
  12. package/dist/docs.js.map +1 -1
  13. package/dist/drift.d.ts +5 -3
  14. package/dist/drift.js +123 -14
  15. package/dist/drift.js.map +1 -1
  16. package/dist/index.js +1889 -38
  17. package/dist/index.js.map +1 -1
  18. package/dist/mcpRemoto.d.ts +32 -0
  19. package/dist/mcpRemoto.js +61 -0
  20. package/dist/mcpRemoto.js.map +1 -0
  21. package/dist/projeto.js +3 -1
  22. package/dist/projeto.js.map +1 -1
  23. package/docs/AGENT_STARTER.md +103 -97
  24. package/docs/cli.md +175 -106
  25. package/docs/como-ensinar-a-sema-para-ia.md +41 -35
  26. package/docs/deploy.md +231 -43
  27. package/docs/documentacao.md +61 -36
  28. package/docs/env.md +105 -56
  29. package/docs/extensao-vscode.md +12 -4
  30. package/docs/fluxo-pratico-ia-sema.md +182 -176
  31. package/docs/instalacao-e-primeiro-uso.md +52 -30
  32. package/docs/integracao-com-ia.md +108 -101
  33. package/docs/mcp.md +292 -51
  34. package/docs/pagamento-ponta-a-ponta.md +34 -28
  35. package/docs/persistencia-vendor-first.md +11 -5
  36. package/docs/prompt-base-ia-sema.md +13 -7
  37. package/docs/rollback.md +17 -15
  38. package/docs/sintaxe.md +180 -174
  39. package/exemplos/agendamento.sema +105 -105
  40. package/exemplos/assinatura.sema +133 -133
  41. package/exemplos/auditoria.sema +89 -89
  42. package/exemplos/autenticacao.sema +125 -125
  43. package/exemplos/author_obra_comum.sema +294 -0
  44. package/exemplos/author_tema_sensivel.sema +264 -0
  45. package/exemplos/automacao.sema +107 -107
  46. package/exemplos/cadastro_usuario.sema +54 -54
  47. package/exemplos/calculadora.sema +78 -78
  48. package/exemplos/crud_simples.sema +89 -89
  49. package/exemplos/estoque.sema +127 -127
  50. package/exemplos/exportacao.sema +94 -94
  51. package/exemplos/fila.sema +130 -130
  52. package/exemplos/integracao_externa.sema +94 -94
  53. package/exemplos/multi_tenant.sema +140 -140
  54. package/exemplos/notificacao.sema +149 -149
  55. package/exemplos/operacao_estrategia.sema +633 -633
  56. package/exemplos/pagamento.sema +434 -434
  57. package/exemplos/pagamento_dominio.sema +35 -35
  58. package/exemplos/pedido.sema +255 -255
  59. package/exemplos/permissao.sema +121 -121
  60. package/exemplos/persistencia_vendor_first.sema +86 -86
  61. package/exemplos/profile_game.sema +114 -0
  62. package/exemplos/profile_legal.sema +105 -0
  63. package/exemplos/profile_ops.sema +110 -0
  64. package/exemplos/profile_research.sema +104 -0
  65. package/exemplos/profile_software.sema +123 -0
  66. package/exemplos/profile_workflow_n8n.sema +99 -0
  67. package/exemplos/relatorio.sema +93 -93
  68. package/exemplos/replica_analitica_erp.sema +160 -160
  69. package/exemplos/testes_embutidos.sema +45 -45
  70. package/exemplos/tratamento_erro.sema +157 -157
  71. package/exemplos/upload_arquivo.sema +93 -93
  72. package/exemplos/webhook.sema +94 -94
  73. package/llms-full.txt +34 -34
  74. package/llms.txt +17 -17
  75. package/node_modules/@sema/gerador-css/dist/index.js +563 -563
  76. package/node_modules/@sema/gerador-css/package.json +1 -1
  77. package/node_modules/@sema/gerador-dart/package.json +1 -1
  78. package/node_modules/@sema/gerador-html/dist/index.js +90 -90
  79. package/node_modules/@sema/gerador-html/package.json +1 -1
  80. package/node_modules/@sema/gerador-javascript/dist/index.js +92 -92
  81. package/node_modules/@sema/gerador-javascript/package.json +1 -1
  82. package/node_modules/@sema/gerador-lua/dist/index.js +53 -53
  83. package/node_modules/@sema/gerador-lua/package.json +1 -1
  84. package/node_modules/@sema/gerador-python/dist/index.js +122 -96
  85. package/node_modules/@sema/gerador-python/dist/index.js.map +1 -1
  86. package/node_modules/@sema/gerador-python/package.json +1 -1
  87. package/node_modules/@sema/gerador-typescript/dist/index.js +153 -153
  88. package/node_modules/@sema/gerador-typescript/package.json +1 -1
  89. package/node_modules/@sema/nucleo/dist/formatador/index.js +12 -4
  90. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
  91. package/node_modules/@sema/nucleo/package.json +1 -1
  92. package/node_modules/@sema/padroes/package.json +1 -1
  93. package/package.json +11 -11
package/dist/docs.js CHANGED
@@ -72,9 +72,24 @@ const REGRAS_DOCUMENTACAO = [
72
72
  { relativo: "docs/api.md", tipo: "documentacao", motivo: "contrato operacional de rotas e endpoints", permitirCriacao: true },
73
73
  ],
74
74
  },
75
+ {
76
+ categoria: "author",
77
+ padroes: [/\bauthor\b/, /autoral/, /obra/, /cliche/, /estilo/, /personagem/, /narrativa/, /sensibility/, /sensitivity/],
78
+ docs: [
79
+ { relativo: "docs/profiles-author-agents-flow.md", tipo: "documentacao", motivo: "profile Author, agents, flow e guardrails autorais", permitirCriacao: false },
80
+ ],
81
+ },
82
+ {
83
+ categoria: "profile",
84
+ padroes: [/\bprofiles\b/, /\bworkflow\b/, /\bn8n\b/, /\bops\b/, /\bgame\b/, /\blegal\b/, /\bresearch\b/, /pesquisa/, /juridic/, /orquestracao/, /automacao/],
85
+ docs: [
86
+ { relativo: "docs/profiles.md", tipo: "documentacao", motivo: "profiles oficiais, gates e fronteiras de adapter", permitirCriacao: false },
87
+ { relativo: "docs/scorecard-compatibilidade.md", tipo: "documentacao", motivo: "scorecard de compatibilidade para runtimes e adapters", permitirCriacao: false },
88
+ ],
89
+ },
75
90
  {
76
91
  categoria: "auth",
77
- padroes: [/auth/, /login/, /permiss/, /autoriz/, /token/, /oauth/, /seguranca/],
92
+ padroes: [/(^|[^a-z0-9])auth([^a-z0-9]|$)/, /autentic/, /login/, /permiss/, /autoriz/, /token/, /oauth/, /seguranca/],
78
93
  docs: [
79
94
  { relativo: "docs/auth.md", tipo: "documentacao", motivo: "regras de autenticacao, autorizacao e tokens", permitirCriacao: true },
80
95
  { relativo: "docs/seguranca.md", tipo: "documentacao", motivo: "politicas de seguranca afetadas pela mudanca", permitirCriacao: true },
@@ -90,11 +105,10 @@ const REGRAS_DOCUMENTACAO = [
90
105
  },
91
106
  {
92
107
  categoria: "mcp",
93
- padroes: [/\bmcp\b/, /tool/, /ferramenta/, /server/, /stdio/],
108
+ padroes: [/\bmcp\b/, /tool/, /ferramenta/, /server/, /streamable/, /sse/],
94
109
  docs: [
95
- { relativo: "pacotes/mcp/README.md", tipo: "pacote", motivo: "documentacao publica do pacote MCP", permitirCriacao: false },
96
110
  { relativo: "docs/integracao-com-ia.md", tipo: "documentacao", motivo: "integracao do Sema com agentes IA", permitirCriacao: false },
97
- { relativo: "docs/mcp.md", tipo: "documentacao", motivo: "runbook especifico de ferramentas MCP", permitirCriacao: true },
111
+ { relativo: "docs/mcp.md", tipo: "documentacao", motivo: "runbook do MCP privado e ferramentas remotas", permitirCriacao: true },
98
112
  ],
99
113
  },
100
114
  {
@@ -156,44 +170,54 @@ function criarTemplateDoc(doc, intencao, categorias, arquivosAlvo) {
156
170
  const linhas = [
157
171
  `# ${titulo}`,
158
172
  "",
159
- "Documento criado pelo Sema porque uma IA declarou uma intencao que exige leitura operacional antes de agir.",
173
+ "## English",
174
+ "",
175
+ "This document was created by Sema because an AI declared an intention that requires operational reading before action.",
176
+ "",
177
+ "## Português",
178
+ "",
179
+ "Documento criado pela Sema porque uma IA declarou uma intenção que exige leitura operacional antes de agir.",
160
180
  "",
161
- "## Intencao",
181
+ "## Español",
162
182
  "",
163
- intencao || "Descrever a intencao operacional antes de executar a mudanca.",
183
+ "Documento creado por Sema porque una IA declaró una intención que exige lectura operativa antes de actuar.",
184
+ "",
185
+ "## Intenção",
186
+ "",
187
+ intencao || "Descrever a intenção operacional antes de executar a mudança.",
164
188
  "",
165
189
  "## Escopo",
166
190
  "",
167
191
  arquivosAlvo.length > 0
168
192
  ? arquivosAlvo.map((arquivo) => `- ${arquivo}`).join("\n")
169
- : "- Declarar os arquivos, servicos ou contratos afetados.",
193
+ : "- Declarar os arquivos, serviços ou contratos afetados.",
170
194
  "",
171
- "## Leitura obrigatoria antes de agir",
195
+ "## Leitura obrigatória antes de agir",
172
196
  "",
173
197
  "- Ler este documento inteiro.",
174
- "- Ler contratos .sema relacionados antes de editar codigo.",
198
+ "- Ler contratos .sema relacionados antes de editar código.",
175
199
  "- Ler README, runbooks e docs de pacote envolvidos.",
176
200
  "",
177
201
  "## Procedimento",
178
202
  "",
179
203
  "- Descrever os comandos ou passos seguros.",
180
- "- Declarar pre-condicoes, variaveis e dependencias.",
204
+ "- Declarar pré-condições, variáveis e dependências.",
181
205
  "- Registrar como validar sucesso.",
182
206
  "",
183
- "## Validacao",
207
+ "## Validação",
184
208
  "",
185
- "- Listar comandos de build, teste, verificacao ou smoke test.",
186
- "- Registrar evidencias esperadas.",
209
+ "- Listar comandos de build, teste, verificação ou smoke test.",
210
+ "- Registrar evidências esperadas.",
187
211
  "",
188
212
  "## Rollback",
189
213
  "",
190
- "- Descrever como desfazer a mudanca.",
214
+ "- Descrever como desfazer a mudança.",
191
215
  "- Declarar sinais que exigem rollback.",
192
216
  "",
193
- "## Atualizacao documental",
217
+ "## Atualização documental",
194
218
  "",
195
219
  "- Atualizar este arquivo quando o fluxo operacional mudar.",
196
- "- Atualizar docs e contratos relacionados na mesma mudanca.",
220
+ "- Atualizar docs e contratos relacionados na mesma mudança.",
197
221
  "",
198
222
  `Categorias inferidas: ${categorias.join(", ")}`,
199
223
  "",
@@ -364,6 +388,10 @@ function normalizarDocLida(baseProjeto, valor) {
364
388
  const absoluto = path.isAbsolute(semEspaco) ? semEspaco : path.resolve(baseProjeto, semEspaco);
365
389
  return normalizarRelativo(path.relative(baseProjeto, absoluto));
366
390
  }
391
+ function compactarDocumentoObrigatorio(doc) {
392
+ const { conteudo, template, ...compacto } = doc;
393
+ return compacto;
394
+ }
367
395
  export async function verificarDocumentacaoMudanca(opcoes) {
368
396
  const baseProjeto = path.resolve(opcoes.baseProjeto ?? process.cwd());
369
397
  const impacto = await resolverDocumentacaoObrigatoria({
@@ -395,9 +423,9 @@ export async function verificarDocumentacaoMudanca(opcoes) {
395
423
  intencao: opcoes.intencao,
396
424
  categorias: impacto.categorias,
397
425
  docsLidas,
398
- leituraObrigatoria: impacto.leituraObrigatoria,
399
- docsNaoLidas,
400
- docsAusentes: impacto.docsAusentes,
426
+ leituraObrigatoria: impacto.leituraObrigatoria.map(compactarDocumentoObrigatorio),
427
+ docsNaoLidas: docsNaoLidas.map(compactarDocumentoObrigatorio),
428
+ docsAusentes: impacto.docsAusentes.map(compactarDocumentoObrigatorio),
401
429
  diagnosticos,
402
430
  instrucoes: diagnosticos.length === 0
403
431
  ? ["Leitura documental comprovada. Continue com validar, drift e testes conforme a mudanca."]
package/dist/docs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"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"}
package/dist/drift.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  import type { EngineBanco, NivelConfiancaSemantica, NivelRiscoSemantico, TipoRecursoPersistencia } from "@sema/nucleo";
2
2
  import type { ContextoProjetoCarregado } from "./projeto.js";
3
+ type OrigemCodigoDrift = "ts" | "py" | "dart" | "cs" | "java" | "go" | "rust" | "cpp";
4
+ type OrigemSimboloDrift = OrigemCodigoDrift | "sql";
3
5
  interface SimboloResolvido {
4
- origem: "ts" | "py" | "dart" | "cs" | "java" | "go" | "rust" | "cpp";
6
+ origem: OrigemSimboloDrift;
5
7
  caminho: string;
6
8
  arquivo: string;
7
9
  simbolo: string;
@@ -33,7 +35,7 @@ export interface DiagnosticoDrift {
33
35
  interface RegistroImplDrift {
34
36
  modulo: string;
35
37
  task: string;
36
- origem: "ts" | "py" | "dart" | "cs" | "java" | "go" | "rust" | "cpp";
38
+ origem: OrigemCodigoDrift;
37
39
  caminho: string;
38
40
  arquivo?: string;
39
41
  simbolo?: string;
@@ -82,7 +84,7 @@ interface RegistroRepositorioPersistenciaDrift {
82
84
  arquivo: string;
83
85
  }
84
86
  interface SimboloCandidatoDrift {
85
- origem: "ts" | "py" | "dart" | "cs" | "java" | "go" | "rust" | "cpp";
87
+ origem: OrigemCodigoDrift;
86
88
  caminho: string;
87
89
  arquivo: string;
88
90
  simbolo: string;
package/dist/drift.js CHANGED
@@ -49,9 +49,11 @@ const TERMOS_ESCopo_IGNORADOS = new Set([
49
49
  "api",
50
50
  "app",
51
51
  "apps",
52
+ "antes",
52
53
  "base",
53
54
  "codigo",
54
55
  "config",
56
+ "contra",
55
57
  "controller",
56
58
  "controllers",
57
59
  "data",
@@ -60,16 +62,19 @@ const TERMOS_ESCopo_IGNORADOS = new Set([
60
62
  "int",
61
63
  "module",
62
64
  "modulo",
65
+ "para",
63
66
  "publico",
64
67
  "route",
65
68
  "routes",
66
69
  "schema",
70
+ "sem",
67
71
  "sema",
68
72
  "service",
69
73
  "services",
70
74
  "src",
71
75
  "task",
72
76
  "tasks",
77
+ "testes",
73
78
  "tests",
74
79
  "ui",
75
80
  "web",
@@ -201,11 +206,11 @@ function resolverRaizesExplicitasConfiguradas(contexto) {
201
206
  ...origensDeclaradas.map((origem) => path.resolve(configCarregada.baseDiretorio, origem)),
202
207
  ])].sort((a, b) => a.localeCompare(b, "pt-BR"));
203
208
  }
204
- function resolverRaizesIgnoradasPermitidas(contexto, segmentosIgnorados) {
209
+ function resolverRaizesIgnoradasPermitidas(contexto, segmentosIgnorados, incluirRaizesConfiguradas = false) {
205
210
  return [...new Set([
206
211
  path.resolve(contexto.baseProjeto),
207
212
  resolverRaizEscopoReal(contexto),
208
- ...resolverRaizesExplicitasConfiguradas(contexto),
213
+ ...(incluirRaizesConfiguradas ? resolverRaizesExplicitasConfiguradas(contexto) : []),
209
214
  ])]
210
215
  .filter((raiz) => caminhoTemSegmentoIgnorado(raiz, segmentosIgnorados))
211
216
  .sort((a, b) => a.localeCompare(b, "pt-BR"));
@@ -220,8 +225,12 @@ function caminhoIgnoradoForaDoEscopoReal(caminhoArquivo, segmentosIgnorados, rai
220
225
  return !raizesPermitidas.some((raiz) => caminhoEstaDentroDe(raiz, caminhoArquivo));
221
226
  }
222
227
  function filtrarCaminhosEscopoReal(caminhos, contexto, configuracao) {
223
- const raizesWorktreePermitidas = resolverRaizesIgnoradasPermitidas(contexto, DIRETORIOS_WORKTREE);
224
- const raizesConsumidorPermitidas = resolverRaizesIgnoradasPermitidas(contexto, DIRETORIOS_CONSUMIDOR_LATERAL);
228
+ const escopoJaEstaEmWorktree = caminhoTemSegmentoIgnorado(contexto.baseProjeto, DIRETORIOS_WORKTREE)
229
+ || caminhoTemSegmentoIgnorado(resolverRaizEscopoReal(contexto), DIRETORIOS_WORKTREE);
230
+ const escopoJaEstaEmConsumer = caminhoTemSegmentoIgnorado(contexto.baseProjeto, DIRETORIOS_CONSUMIDOR_LATERAL)
231
+ || caminhoTemSegmentoIgnorado(resolverRaizEscopoReal(contexto), DIRETORIOS_CONSUMIDOR_LATERAL);
232
+ const raizesWorktreePermitidas = resolverRaizesIgnoradasPermitidas(contexto, DIRETORIOS_WORKTREE, escopoJaEstaEmWorktree);
233
+ const raizesConsumidorPermitidas = resolverRaizesIgnoradasPermitidas(contexto, DIRETORIOS_CONSUMIDOR_LATERAL, escopoJaEstaEmConsumer);
225
234
  return caminhos.filter((caminho) => {
226
235
  if (configuracao.ignorarWorktrees && caminhoIgnoradoForaDoEscopoReal(caminho, DIRETORIOS_WORKTREE, raizesWorktreePermitidas)) {
227
236
  return false;
@@ -337,6 +346,11 @@ function pontuarProximidadeRotaConsumer(rota, rotasAncora) {
337
346
  }
338
347
  return scoreMaximo;
339
348
  }
349
+ function caminhoConsumerParaTextoEscopo(contexto, arquivo) {
350
+ return path.isAbsolute(arquivo)
351
+ ? path.relative(contexto.baseProjeto, arquivo)
352
+ : arquivo;
353
+ }
340
354
  function filtrarConsumerSurfacesPorEscopo(consumerSurfaces, consumerBridges, contexto, configuracao, relevancia) {
341
355
  const raizesWorktreePermitidas = resolverRaizesIgnoradasPermitidas(contexto, DIRETORIOS_WORKTREE);
342
356
  const raizesConsumidorPermitidas = resolverRaizesIgnoradasPermitidas(contexto, DIRETORIOS_CONSUMIDOR_LATERAL);
@@ -350,13 +364,20 @@ function filtrarConsumerSurfacesPorEscopo(consumerSurfaces, consumerBridges, con
350
364
  && caminhoIgnoradoForaDoEscopoReal(surface.arquivo, DIRETORIOS_CONSUMIDOR_LATERAL, raizesConsumidorPermitidas)) {
351
365
  return false;
352
366
  }
367
+ if (!configuracao.ignorarConsumidoresLaterais) {
368
+ return true;
369
+ }
353
370
  if (configuracao.escopo === "projeto") {
354
371
  return true;
355
372
  }
356
- const score = pontuarTextoEscopo(`${surface.rota} ${surface.arquivo} ${surface.tipoArquivo}`, configuracao.termosEscopo)
357
- + pontuarProximidadeArquivoConsumer(surface.arquivo, relevancia?.arquivosAncora ?? [])
358
- + pontuarProximidadeRotaConsumer(surface.rota, relevancia?.rotasAncora ?? []);
359
- return score >= limiar;
373
+ const arquivoTexto = caminhoConsumerParaTextoEscopo(contexto, surface.arquivo);
374
+ const scoreTexto = pontuarTextoEscopo(`${surface.rota} ${arquivoTexto} ${surface.tipoArquivo}`, configuracao.termosEscopo);
375
+ const scoreRota = pontuarProximidadeRotaConsumer(surface.rota, relevancia?.rotasAncora ?? []);
376
+ if (scoreTexto === 0 && scoreRota === 0) {
377
+ return false;
378
+ }
379
+ const scoreArquivo = pontuarProximidadeArquivoConsumer(surface.arquivo, relevancia?.arquivosAncora ?? []);
380
+ return scoreTexto + scoreArquivo + scoreRota >= limiar;
360
381
  };
361
382
  const manterBridge = (bridge) => {
362
383
  if (configuracao.ignorarWorktrees
@@ -367,12 +388,19 @@ function filtrarConsumerSurfacesPorEscopo(consumerSurfaces, consumerBridges, con
367
388
  && caminhoIgnoradoForaDoEscopoReal(bridge.arquivo, DIRETORIOS_CONSUMIDOR_LATERAL, raizesConsumidorPermitidas)) {
368
389
  return false;
369
390
  }
391
+ if (!configuracao.ignorarConsumidoresLaterais) {
392
+ return true;
393
+ }
370
394
  if (configuracao.escopo === "projeto") {
371
395
  return true;
372
396
  }
373
- const score = pontuarTextoEscopo(`${bridge.caminho} ${bridge.arquivo} ${bridge.simbolo}`, configuracao.termosEscopo)
374
- + pontuarProximidadeArquivoConsumer(bridge.arquivo, relevancia?.arquivosAncora ?? []);
375
- return score >= limiar;
397
+ const arquivoTexto = caminhoConsumerParaTextoEscopo(contexto, bridge.arquivo);
398
+ const scoreTexto = pontuarTextoEscopo(`${bridge.caminho} ${arquivoTexto} ${bridge.simbolo}`, configuracao.termosEscopo);
399
+ if (scoreTexto === 0) {
400
+ return false;
401
+ }
402
+ const scoreArquivo = pontuarProximidadeArquivoConsumer(bridge.arquivo, relevancia?.arquivosAncora ?? []);
403
+ return scoreTexto + scoreArquivo >= limiar;
376
404
  };
377
405
  return {
378
406
  consumerSurfaces: consumerSurfaces.filter(manterSurface),
@@ -627,6 +655,51 @@ function extrairRecursosSql(arquivo, codigo) {
627
655
  }
628
656
  return [...recursos.values()];
629
657
  }
658
+ function limparIdentificadorSql(valor) {
659
+ const limpo = valor.trim();
660
+ if ((limpo.startsWith("\"") && limpo.endsWith("\""))
661
+ || (limpo.startsWith("`") && limpo.endsWith("`"))
662
+ || (limpo.startsWith("[") && limpo.endsWith("]"))) {
663
+ return limpo.slice(1, -1).replace(/""/g, "\"").trim();
664
+ }
665
+ return limpo;
666
+ }
667
+ function normalizarNomeSqlDeclarativo(valor) {
668
+ return valor
669
+ .split(/\s*\.\s*/g)
670
+ .map(limparIdentificadorSql)
671
+ .filter(Boolean)
672
+ .join(".");
673
+ }
674
+ function registrarSimboloSqlDeclarativo(simbolos, arquivo, nomeSql) {
675
+ const caminho = normalizarNomeSqlDeclarativo(nomeSql);
676
+ if (!caminho) {
677
+ return;
678
+ }
679
+ const ultimoSegmento = caminho.split(".").filter(Boolean).at(-1);
680
+ for (const simbolo of [caminho, ultimoSegmento].filter((item) => Boolean(item))) {
681
+ if (!simbolos.has(simbolo)) {
682
+ simbolos.set(simbolo, {
683
+ origem: "sql",
684
+ caminho: simbolo,
685
+ arquivo,
686
+ simbolo,
687
+ });
688
+ }
689
+ }
690
+ }
691
+ function extrairSimbolosSqlDeclarativos(arquivo, codigo) {
692
+ if (!/\.(?:sql|psql|ddl)$/i.test(arquivo)) {
693
+ return [];
694
+ }
695
+ const simbolos = new Map();
696
+ const padraoIdentificadorSql = /(?:"[^"]+"|`[^`]+`|\[[^\]]+\]|[A-Za-z_][\w$]*)/;
697
+ const padraoObjetoSql = new RegExp(`\\bcreate\\s+(?:or\\s+replace\\s+)?(?:function|procedure)\\s+(${padraoIdentificadorSql.source}(?:\\s*\\.\\s*${padraoIdentificadorSql.source})?)\\s*\\(`, "gi");
698
+ for (const match of codigo.matchAll(padraoObjetoSql)) {
699
+ registrarSimboloSqlDeclarativo(simbolos, arquivo, match[1] ?? "");
700
+ }
701
+ return [...simbolos.values()];
702
+ }
630
703
  function extrairRecursosMongoDb(arquivo, codigo) {
631
704
  const recursos = new Map();
632
705
  const contextoMongo = /\b(?:mongodb|mongoose|mongoclient|objectid)\b/i.test(codigo)
@@ -764,9 +837,17 @@ function escolherSimboloPorVinculo(simbolos, mapaImpl, valor) {
764
837
  if (exato) {
765
838
  return { simbolo: exato, confianca: "alta", status: "resolvido" };
766
839
  }
840
+ const valorNormalizado = valor.toLowerCase();
841
+ const exatoIndexado = simbolos.find((simbolo) => simbolo.caminho.toLowerCase() === valorNormalizado
842
+ || simbolo.simbolo.toLowerCase() === valorNormalizado);
843
+ if (exatoIndexado) {
844
+ return { simbolo: exatoIndexado, confianca: "alta", status: "resolvido" };
845
+ }
767
846
  const ultimoSegmento = valor.split(".").at(-1)?.toLowerCase();
768
- const aproximado = simbolos.find((simbolo) => simbolo.caminho.toLowerCase() === valor.toLowerCase()
769
- || simbolo.simbolo.toLowerCase() === ultimoSegmento
847
+ if (!ultimoSegmento) {
848
+ return { confianca: "baixa", status: "nao_encontrado" };
849
+ }
850
+ const aproximado = simbolos.find((simbolo) => simbolo.simbolo.toLowerCase() === ultimoSegmento
770
851
  || simbolo.caminho.toLowerCase().endsWith(`.${ultimoSegmento}`));
771
852
  if (aproximado) {
772
853
  return { simbolo: aproximado, confianca: "media", status: "parcial" };
@@ -1040,6 +1121,24 @@ async function listarArquivosRecursivos(diretorio, extensoes) {
1040
1121
  }
1041
1122
  return encontrados.sort((a, b) => a.localeCompare(b, "pt-BR"));
1042
1123
  }
1124
+ const EXTENSOES_ARQUIVOS_RASTREAVEIS_DRIFT = [
1125
+ ".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs",
1126
+ ".py", ".dart", ".cs", ".java", ".go", ".rs",
1127
+ ".cpp", ".cc", ".cxx", ".hpp", ".h",
1128
+ ".sql", ".psql", ".ddl", ".prisma",
1129
+ ".md", ".mdx", ".txt", ".json", ".jsonl",
1130
+ ".yml", ".yaml", ".toml", ".xml", ".html", ".htm", ".css",
1131
+ ".Caddyfile", ".caddyfile",
1132
+ ];
1133
+ async function indexarArquivosRastreaveis(diretorios) {
1134
+ const arquivos = new Set();
1135
+ for (const diretorio of diretorios) {
1136
+ for (const arquivo of await listarArquivosRecursivos(diretorio, EXTENSOES_ARQUIVOS_RASTREAVEIS_DRIFT)) {
1137
+ arquivos.add(arquivo);
1138
+ }
1139
+ }
1140
+ return [...arquivos].sort((a, b) => a.localeCompare(b, "pt-BR"));
1141
+ }
1043
1142
  function caminhosSimbolicos(baseDiretorio, arquivo) {
1044
1143
  const relativo = path.relative(baseDiretorio, arquivo).replace(/\.[^.]+$/, "");
1045
1144
  const semPrefixo = relativo
@@ -2039,6 +2138,7 @@ async function indexarCpp(diretorios) {
2039
2138
  }
2040
2139
  async function indexarPersistenciaDeclarativa(diretorios) {
2041
2140
  const recursos = new Map();
2141
+ const simbolos = new Map();
2042
2142
  for (const diretorio of diretorios) {
2043
2143
  const arquivos = await listarArquivosRecursivos(diretorio, [
2044
2144
  ".sql", ".psql", ".ddl", ".prisma",
@@ -2053,9 +2153,12 @@ async function indexarPersistenciaDeclarativa(diretorios) {
2053
2153
  for (const recurso of extracoes) {
2054
2154
  registrarRecursoDrift(recursos, recurso.origem, recurso.tipo, recurso.nome, recurso.arquivo, recurso.simbolo);
2055
2155
  }
2156
+ for (const simbolo of extrairSimbolosSqlDeclarativos(arquivo, codigo)) {
2157
+ simbolos.set(`${simbolo.caminho}:${simbolo.arquivo}`, simbolo);
2158
+ }
2056
2159
  }
2057
2160
  }
2058
- return { recursos: [...recursos.values()] };
2161
+ return { recursos: [...recursos.values()], simbolos: [...simbolos.values()] };
2059
2162
  }
2060
2163
  function normalizarOrigemParaEngine(origem) {
2061
2164
  return origem && origem !== "firebase" && origem !== "arquivo" ? origem : undefined;
@@ -2539,6 +2642,9 @@ function pontuarCandidatoDeclarado(candidato, origem, caminhoDeclarado) {
2539
2642
  return undefined;
2540
2643
  }
2541
2644
  function pontuarCandidatoPorTask(candidato, task) {
2645
+ if (candidato.origem === "sql") {
2646
+ return undefined;
2647
+ }
2542
2648
  const taskNormalizada = paraIdentificadorModulo(task);
2543
2649
  const simboloNormalizado = paraIdentificadorModulo(candidato.simbolo.replace(/\./g, "_"));
2544
2650
  const caminhoNormalizado = paraIdentificadorModulo(candidato.caminho.replace(/\./g, "_"));
@@ -2840,6 +2946,7 @@ export async function analisarDriftLegado(contexto, opcoes) {
2840
2946
  const indexPersistencia = await indexarPersistenciaDeclarativa(diretoriosCodigoAtivos);
2841
2947
  const detalhesPersistencia = await indexarPersistenciaDetalhada(diretoriosCodigoAtivos);
2842
2948
  const indexCpp = await indexarCpp(diretoriosCodigoAtivos);
2949
+ const arquivosRastreaveis = await indexarArquivosRastreaveis(diretoriosCodigoAtivos);
2843
2950
  const todosSimbolos = [
2844
2951
  ...indexTs.simbolos,
2845
2952
  ...indexPy.simbolos,
@@ -2849,6 +2956,7 @@ export async function analisarDriftLegado(contexto, opcoes) {
2849
2956
  ...indexGo.simbolos,
2850
2957
  ...indexRust.simbolos,
2851
2958
  ...indexCpp.simbolos,
2959
+ ...indexPersistencia.simbolos,
2852
2960
  ];
2853
2961
  const mapaImpl = new Map([
2854
2962
  ...indexTs.simbolos.map((item) => [item.caminho, item]),
@@ -2882,6 +2990,7 @@ export async function analisarDriftLegado(contexto, opcoes) {
2882
2990
  ...indexRust.rotas,
2883
2991
  ];
2884
2992
  const todosArquivosConhecidos = [...new Set([
2993
+ ...arquivosRastreaveis,
2885
2994
  ...todosSimbolos.map((item) => item.arquivo),
2886
2995
  ...todasRotasIndexadas.map((item) => item.arquivo),
2887
2996
  ...todosRecursos.map((item) => item.arquivo),