@semacode/cli 2.3.0 → 2.3.1

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 (177) hide show
  1. package/LICENSE +39 -39
  2. package/README.md +251 -228
  3. package/dist/agentEntryPoints.js +551 -550
  4. package/dist/angular-consumer-standalone.d.ts +3 -1
  5. package/dist/angular-consumer-standalone.js +12 -8
  6. package/dist/drift.part01.d.ts +32 -2
  7. package/dist/drift.part01.js +2 -0
  8. package/dist/drift.part04.d.ts +3 -2
  9. package/dist/drift.part04.js +6 -3
  10. package/dist/drift.part05.d.ts +2 -1
  11. package/dist/drift.part05.js +4 -3
  12. package/dist/drift.part06.d.ts +2 -1
  13. package/dist/drift.part06.js +9 -5
  14. package/dist/drift.part07.d.ts +11 -10
  15. package/dist/drift.part07.js +40 -30
  16. package/dist/drift.part08.d.ts +2 -1
  17. package/dist/drift.part08.js +4 -3
  18. package/dist/drift.part11.js +71 -6
  19. package/dist/drift.part12.js +14 -1
  20. package/dist/drift.part13.d.ts +42 -7
  21. package/dist/drift.part13.js +660 -36
  22. package/dist/driftCache.d.ts +49 -0
  23. package/dist/driftCache.js +311 -0
  24. package/dist/driftCacheIncremental.d.ts +98 -0
  25. package/dist/driftCacheIncremental.js +596 -0
  26. package/dist/driftCatalogo.d.ts +91 -0
  27. package/dist/driftCatalogo.js +657 -0
  28. package/dist/driftCatalogoPersistente.d.ts +8 -0
  29. package/dist/driftCatalogoPersistente.js +77 -0
  30. package/dist/driftEscopo.d.ts +23 -0
  31. package/dist/driftEscopo.js +563 -0
  32. package/dist/driftEscopoReferencias.d.ts +4 -0
  33. package/dist/driftEscopoReferencias.js +265 -0
  34. package/dist/driftOrcamento.d.ts +12 -0
  35. package/dist/driftOrcamento.js +19 -3
  36. package/dist/execucoesExternas.js +5 -19
  37. package/dist/iaPrompts.js +310 -310
  38. package/dist/index.part01.d.ts +16 -1
  39. package/dist/index.part01.js +80 -4
  40. package/dist/index.part02.js +21 -21
  41. package/dist/index.part03.d.ts +2 -2
  42. package/dist/index.part03.js +14 -3
  43. package/dist/index.part04.d.ts +2 -2
  44. package/dist/index.part04.js +113 -101
  45. package/dist/index.part05.d.ts +1 -1
  46. package/dist/index.part05.js +99 -22
  47. package/dist/index.part06.js +3 -2
  48. package/dist/index.part07.js +24 -24
  49. package/dist/index.part08.js +1 -1
  50. package/dist/init/templates.part01.js +393 -393
  51. package/dist/init/templates.part02.js +189 -189
  52. package/dist/initTemplatesBackend.js +73 -73
  53. package/dist/initTemplatesBase.js +81 -81
  54. package/dist/initTemplatesFlutter.js +137 -137
  55. package/dist/initTemplatesRuntime.js +350 -350
  56. package/dist/initTemplatesWeb.js +309 -309
  57. package/dist/pipelineConteudo/command.js +1 -36
  58. package/dist/projeto.d.ts +1 -1
  59. package/dist/projetoCarregar.d.ts +2 -2
  60. package/dist/projetoCarregar.js +47 -24
  61. package/dist/projetoCatalogo.d.ts +7 -0
  62. package/dist/projetoCatalogo.js +125 -0
  63. package/dist/projetoTipos.d.ts +14 -5
  64. package/dist/sync/index.js +35 -35
  65. package/docs/README.md +34 -34
  66. package/docs/ai-integration.md +1 -7
  67. package/docs/ai-onboarding.md +62 -62
  68. package/docs/ai-workflow.md +4 -0
  69. package/docs/auth.md +26 -26
  70. package/docs/cli.md +79 -79
  71. package/docs/commands.md +16 -13
  72. package/docs/database.md +15 -15
  73. package/docs/deploy.md +41 -41
  74. package/docs/descoberta-capacidades.md +106 -106
  75. package/docs/documentation.md +37 -46
  76. package/docs/env.md +16 -16
  77. package/docs/frontend.md +41 -41
  78. package/docs/getting-started.md +57 -57
  79. package/docs/i18n.md +15 -15
  80. package/docs/pipeline-conteudo.md +246 -246
  81. package/docs/profiles.md +54 -54
  82. package/docs/repositories.md +43 -43
  83. package/docs/rollback.md +31 -31
  84. package/docs/security.md +32 -32
  85. package/docs/sistemas-interativos.md +373 -378
  86. package/docs/support.md +8 -8
  87. package/docs/testing.md +51 -44
  88. package/docs/vocabulary.md +29 -29
  89. package/exemplos/agendamento.sema +1 -1
  90. package/exemplos/assinatura.sema +1 -1
  91. package/exemplos/auditoria.sema +1 -1
  92. package/exemplos/autenticacao.sema +1 -1
  93. package/exemplos/author_obra_comum.sema +1 -1
  94. package/exemplos/author_tema_sensivel.sema +1 -1
  95. package/exemplos/automacao.sema +1 -1
  96. package/exemplos/cadastro_usuario.sema +1 -1
  97. package/exemplos/calculadora.sema +1 -1
  98. package/exemplos/crud_simples.sema +1 -1
  99. package/exemplos/estoque.sema +1 -1
  100. package/exemplos/exportacao.sema +1 -1
  101. package/exemplos/fila.sema +1 -1
  102. package/exemplos/integracao_externa.sema +1 -1
  103. package/exemplos/multi_tenant.sema +1 -1
  104. package/exemplos/notificacao.sema +1 -1
  105. package/exemplos/operacao_estrategia.sema +132 -132
  106. package/exemplos/operacao_estrategia_discovery.sema +220 -220
  107. package/exemplos/operacao_estrategia_fluxo.sema +114 -114
  108. package/exemplos/operacao_estrategia_gates.sema +106 -106
  109. package/exemplos/operacao_estrategia_quarentena.sema +133 -133
  110. package/exemplos/operacao_estrategia_rollout.sema +124 -124
  111. package/exemplos/pagamento.sema +1 -1
  112. package/exemplos/pagamento_dominio.sema +1 -1
  113. package/exemplos/pedido.sema +1 -1
  114. package/exemplos/permissao.sema +1 -1
  115. package/exemplos/persistencia_vendor_first.sema +1 -1
  116. package/exemplos/pipeline-conteudo/README.md +44 -44
  117. package/exemplos/pipeline-conteudo/alvos.json +23 -23
  118. package/exemplos/pipeline-conteudo/definicao.json +136 -136
  119. package/exemplos/profile_conversas.sema +165 -165
  120. package/exemplos/profile_game.sema +1 -1
  121. package/exemplos/profile_legal.sema +1 -1
  122. package/exemplos/profile_ops.sema +1 -1
  123. package/exemplos/profile_research.sema +1 -1
  124. package/exemplos/profile_simulation.sema +211 -211
  125. package/exemplos/profile_software.sema +1 -1
  126. package/exemplos/profile_workflow_n8n.sema +1 -1
  127. package/exemplos/relatorio.sema +1 -1
  128. package/exemplos/replica_analitica_erp.sema +1 -1
  129. package/exemplos/sistemas-interativos/README.md +100 -100
  130. package/exemplos/sistemas-interativos/advanced/acceptance-context-evaluate-valid.json +5 -5
  131. package/exemplos/sistemas-interativos/advanced/acceptance-lock-valid.json +16 -16
  132. package/exemplos/sistemas-interativos/advanced/asset-provenance-valid.json +32 -32
  133. package/exemplos/sistemas-interativos/advanced/autonomy-repair-valid.json +93 -93
  134. package/exemplos/sistemas-interativos/advanced/control-run-definition-valid.json +78 -78
  135. package/exemplos/sistemas-interativos/advanced/control-run-valid.json +27 -27
  136. package/exemplos/sistemas-interativos/advanced/distributed-workers-valid.json +79 -79
  137. package/exemplos/sistemas-interativos/advanced/editor-state-valid.json +42 -42
  138. package/exemplos/sistemas-interativos/advanced/engine-snapshot-after-valid.json +32 -32
  139. package/exemplos/sistemas-interativos/advanced/engine-snapshot-before-valid.json +23 -23
  140. package/exemplos/sistemas-interativos/advanced/job-orchestration-valid.json +39 -39
  141. package/exemplos/sistemas-interativos/advanced/multimodal-evidence-valid.json +46 -46
  142. package/exemplos/sistemas-interativos/advanced/multiplayer-authority-valid.json +39 -39
  143. package/exemplos/sistemas-interativos/advanced/playtest-fuzz-valid.json +37 -37
  144. package/exemplos/sistemas-interativos/advanced/portability-valid.json +104 -104
  145. package/exemplos/sistemas-interativos/advanced/temporal-evidence-valid.json +27 -27
  146. package/exemplos/sistemas-interativos/advanced/temporal-valid.json +118 -118
  147. package/exemplos/sistemas-interativos/experience-ir-valid.json +459 -459
  148. package/exemplos/sistemas-interativos/game-2d.json +83 -83
  149. package/exemplos/sistemas-interativos/game-3d-human.json +81 -81
  150. package/exemplos/sistemas-interativos/game-pixel-16-bit.json +97 -97
  151. package/exemplos/sistemas-interativos/game-pixel-8-bit.json +94 -94
  152. package/exemplos/sistemas-interativos/game-xr-human.json +80 -80
  153. package/exemplos/sistemas-interativos/hybrid-2-5d.json +108 -108
  154. package/exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json +75 -75
  155. package/exemplos/sistemas-interativos/protocol-read-only-valid.json +58 -58
  156. package/exemplos/sistemas-interativos/simulation-2d-controlled.json +97 -97
  157. package/exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json +141 -141
  158. package/exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json +112 -112
  159. package/exemplos/sistemas-interativos/simulation-pixel-16-bit.json +103 -103
  160. package/exemplos/sistemas-interativos/simulation-text-controlled.json +95 -95
  161. package/exemplos/testes_embutidos.sema +1 -1
  162. package/exemplos/tratamento_erro.sema +1 -1
  163. package/exemplos/upload_arquivo.sema +1 -1
  164. package/exemplos/webhook.sema +1 -1
  165. package/node_modules/@sema/gerador-cpp/dist/index.js +176 -176
  166. package/node_modules/@sema/gerador-cpp/package.json +1 -1
  167. package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
  168. package/node_modules/@sema/gerador-css/dist/index.part02.js +460 -460
  169. package/node_modules/@sema/gerador-dotnet/dist/index.js +169 -169
  170. package/node_modules/@sema/gerador-dotnet/package.json +1 -1
  171. package/node_modules/@sema/gerador-html/dist/index.js +17 -17
  172. package/node_modules/@sema/gerador-lua/dist/index.js +51 -51
  173. package/node_modules/@sema/gerador-php/dist/index.js +113 -113
  174. package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
  175. package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
  176. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
  177. package/package.json +3 -3
@@ -1,7 +1,7 @@
1
1
  // SEMA-GOVERNED: sema.governanca_ia_contexto
2
2
  // Descricao: CLI particionada; consulte contratos/sema/governanca_ia_contexto.sema antes de editar.
3
3
  import path from "node:path";
4
- import { emitirDiagnosticosArquivosOrcamento } from "./driftOrcamento.js";
4
+ import { emitirDiagnosticosArquivosOrcamento, workspaceExigeCabecalhoCodigoGovernado, } from "./driftOrcamento.js";
5
5
  import { definirDiretoriosIgnoradosAtivos, obterDiretoriosIgnoradosAtivos, extrairTermosEscopoDrift, resolverDiretoriosIgnoradosAtivos, resolverOpcoesDrift } from "./drift.part01.js";
6
6
  import { construirContextoRelevanciaConsumer, filtrarConsumerSurfacesPorEscopo } from "./drift.part02.js";
7
7
  import { inferirConsumerFrameworkPrincipal } from "./drift.part06.js";
@@ -22,7 +22,25 @@ export async function analisarDriftLegado(contexto, opcoes) {
22
22
  const diretoriosIgnoradosAnteriores = obterDiretoriosIgnoradosAtivos();
23
23
  definirDiretoriosIgnoradosAtivos(resolverDiretoriosIgnoradosAtivos(opcoesResolvidas));
24
24
  try {
25
- const { detalhesPersistencia, indexDart, indexTs, mapaImpl, mapaRecursos, todasRotasIndexadas, todosArquivosConhecidos, todosRecursos, todosSimbolos, } = await prepararIndicesDrift(contexto, configuracaoEscopo);
25
+ const indicesPreparados = await prepararIndicesDrift(contexto, configuracaoEscopo, {
26
+ politicaCache: opcoesResolvidas.cache,
27
+ observador: opcoesResolvidas.observador,
28
+ });
29
+ const { arquivosOrcamentoAvaliados, detalhesPersistencia, diagnosticosOrcamento: diagnosticosOrcamentoPrecalculados, indexDart, indexTs, mapaImpl, mapaRecursos, todasRotasIndexadas, todosArquivosConhecidos, todosRecursos, todosSimbolos, planoEscopo, cache: estadoCache, catalogo: metricasCatalogo, } = indicesPreparados;
30
+ const leitorArquivosPlanejados = indicesPreparados.leitorArquivosPlanejados;
31
+ const relativoEscopo = (arquivo) => {
32
+ const relativo = path.relative(contexto.baseProjeto, arquivo).replace(/\\/g, "/");
33
+ return relativo && !relativo.startsWith("../") ? relativo : arquivo.replace(/\\/g, "/");
34
+ };
35
+ configuracaoEscopo.estrategia = planoEscopo.estrategia;
36
+ configuracaoEscopo.cobertura = planoEscopo.cobertura;
37
+ configuracaoEscopo.arquivosPlanejados = planoEscopo.arquivos.map(relativoEscopo);
38
+ configuracaoEscopo.arquivosDeclarados = planoEscopo.arquivosDeclarados.map(relativoEscopo);
39
+ configuracaoEscopo.arquivosInferidos = planoEscopo.arquivosInferidos.map(relativoEscopo);
40
+ configuracaoEscopo.arquivosAusentes = planoEscopo.arquivosAusentes.map(relativoEscopo);
41
+ configuracaoEscopo.bloqueios = [...planoEscopo.bloqueios];
42
+ configuracaoEscopo.cache = estadoCache;
43
+ configuracaoEscopo.catalogo = metricasCatalogo;
26
44
  const implsValidos = [];
27
45
  const implsQuebrados = [];
28
46
  const vinculosValidos = [];
@@ -31,6 +49,14 @@ export async function analisarDriftLegado(contexto, opcoes) {
31
49
  const recursosValidos = [];
32
50
  const recursosDivergentes = [];
33
51
  const diagnosticos = [];
52
+ if (planoEscopo.bloqueios.includes("escopo_estreito_sem_vinculos")) {
53
+ diagnosticos.push({
54
+ tipo: "escopo_estreito_sem_vinculos",
55
+ modulo: contexto.modulosSelecionados[0]?.resultado.ir?.nome ?? "projeto",
56
+ severidade: "erro",
57
+ mensagem: "Escopo arquivo/modulo sem arquivo vinculado ou implementação resolvível. Declare vinculos { arquivo: ... } ou execute explicitamente com --escopo projeto.",
58
+ });
59
+ }
34
60
  const tasksResumo = [];
35
61
  const taskPorChave = new Map();
36
62
  const guardrailsPorTask = new Map();
@@ -249,13 +275,51 @@ export async function analisarDriftLegado(contexto, opcoes) {
249
275
  const moduloOrcamento = contexto.modulosSelecionados[0]?.resultado.ir?.nome
250
276
  ?? contexto.modulosSelecionados[0]?.resultado.modulo?.nome
251
277
  ?? "projeto";
252
- const exigeCabecalhoCodigoGovernado = contexto.configCarregada?.config.modoEstrito === true
253
- && contexto.arquivosProjeto.some((arquivo) => path.basename(arquivo).toLowerCase() === "agents.md");
254
- const diagnosticosOrcamento = await emitirDiagnosticosArquivosOrcamento({
278
+ const exigeCabecalhoCodigoGovernado = await workspaceExigeCabecalhoCodigoGovernado(contexto.baseProjeto, contexto.configCarregada?.config.modoEstrito === true);
279
+ const chaveArquivoOrcamento = (arquivo) => {
280
+ const absoluto = path.resolve(contexto.baseProjeto, arquivo);
281
+ return process.platform === "win32" ? absoluto.toLowerCase() : absoluto;
282
+ };
283
+ const contratosJaCarregados = new Map(contexto.modulosCarregados.map((modulo) => [
284
+ chaveArquivoOrcamento(modulo.caminho),
285
+ modulo.codigo,
286
+ ]));
287
+ const arquivosPlanejados = new Set((planoEscopo.estrategia === "projeto"
288
+ ? todosArquivosConhecidos
289
+ : planoEscopo.arquivos).map(chaveArquivoOrcamento));
290
+ const arquivosAvaliados = new Set(arquivosOrcamentoAvaliados.map(chaveArquivoOrcamento));
291
+ const arquivosSolicitadosOrcamento = new Set([...arquivosOrcamento].map(chaveArquivoOrcamento));
292
+ const leitorArquivosOrcamento = {
293
+ contem: (arquivo) => {
294
+ const chave = chaveArquivoOrcamento(arquivo);
295
+ if (contratosJaCarregados.has(chave)) {
296
+ return true;
297
+ }
298
+ return arquivosPlanejados.has(chave)
299
+ && leitorArquivosPlanejados?.contem(arquivo) === true;
300
+ },
301
+ lerTexto: async (arquivo) => {
302
+ const chave = chaveArquivoOrcamento(arquivo);
303
+ const contrato = contratosJaCarregados.get(chave);
304
+ if (contrato !== undefined) {
305
+ return contrato;
306
+ }
307
+ if (!arquivosPlanejados.has(chave) || !leitorArquivosPlanejados?.contem(arquivo)) {
308
+ throw new Error(`Arquivo fora do catalogo planejado do drift: ${arquivo}`);
309
+ }
310
+ return leitorArquivosPlanejados.lerTexto(arquivo);
311
+ },
312
+ };
313
+ const diagnosticosOrcamentoCalculadosAgora = await emitirDiagnosticosArquivosOrcamento({
255
314
  baseProjeto: contexto.baseProjeto,
256
- arquivos: [...arquivosOrcamento],
315
+ arquivos: [...arquivosOrcamento].filter((arquivo) => !arquivosAvaliados.has(chaveArquivoOrcamento(arquivo))),
257
316
  exigirCabecalhoCodigoGovernado: exigeCabecalhoCodigoGovernado,
317
+ leitorArquivos: leitorArquivosOrcamento,
258
318
  });
319
+ const diagnosticosOrcamento = [
320
+ ...diagnosticosOrcamentoPrecalculados.filter((diagnostico) => arquivosSolicitadosOrcamento.has(chaveArquivoOrcamento(diagnostico.arquivo))),
321
+ ...diagnosticosOrcamentoCalculadosAgora,
322
+ ];
259
323
  for (const diagnostico of diagnosticosOrcamento) {
260
324
  diagnosticos.push({
261
325
  tipo: diagnostico.tipo,
@@ -274,6 +338,7 @@ export async function analisarDriftLegado(contexto, opcoes) {
274
338
  && recursosDivergentes.length === 0
275
339
  && vinculosQuebrados.length === 0
276
340
  && persistenciaReal.every((item) => item.status !== "divergente" && item.compatibilidade !== "invalido")
341
+ && planoEscopo.bloqueios.length === 0
277
342
  && !possuiBloqueioOrcamento;
278
343
  const payloadBase = {
279
344
  comando: "drift",
@@ -3,9 +3,10 @@
3
3
  import { readFile } from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import { listarArquivosRecursivos, paraIdentificadorModulo } from "./drift.part04.js";
6
- import { definirDiretoriosIgnoradosAtivos, obterDiretoriosIgnoradosAtivos, normalizarFragmentoArquivo, quebrarTermosEscopo, resolverDiretoriosIgnoradosAtivos, resolverOpcoesDrift } from "./drift.part01.js";
6
+ import { definirDiretoriosIgnoradosAtivos, obterDiretoriosIgnoradosAtivos, normalizarFragmentoArquivo, quebrarTermosEscopo, extrairTermosEscopoDrift, resolverDiretoriosIgnoradosAtivos, resolverOpcoesDrift } from "./drift.part01.js";
7
7
  import { filtrarCaminhosEscopoReal, resolverDiretoriosCodigoEscopoReal, textoCombinaEscopo } from "./drift.part02.js";
8
8
  import { analisarDriftLegado } from "./drift.part11.js";
9
+ import { planejarEscopoDrift } from "./driftEscopo.js";
9
10
  export const EXTENSOES_BUSCA_IMPACTO = [
10
11
  ".sema",
11
12
  ".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs",
@@ -100,6 +101,18 @@ export function registrarArquivoImpactado(mapa, arquivo, linhas, motivos) {
100
101
  export async function listarArquivosImpacto(contexto, opcoes) {
101
102
  const opcoesResolvidas = resolverOpcoesDrift(opcoes);
102
103
  const arquivos = new Set(filtrarCaminhosEscopoReal(contexto.arquivosProjeto, contexto, opcoesResolvidas));
104
+ if (opcoesResolvidas.escopo !== "projeto") {
105
+ const plano = await planejarEscopoDrift(contexto, {
106
+ escopo: opcoesResolvidas.escopo,
107
+ ignorarWorktrees: opcoesResolvidas.ignorarWorktrees,
108
+ ignorarConsumidoresLaterais: opcoesResolvidas.ignorarConsumidoresLaterais,
109
+ termosEscopo: extrairTermosEscopoDrift(contexto, opcoesResolvidas.escopo),
110
+ });
111
+ for (const arquivo of plano.arquivos) {
112
+ arquivos.add(arquivo);
113
+ }
114
+ return [...arquivos].sort((a, b) => a.localeCompare(b, "pt-BR"));
115
+ }
103
116
  for (const diretorio of resolverDiretoriosCodigoEscopoReal(contexto, opcoesResolvidas)) {
104
117
  for (const arquivo of await listarArquivosRecursivos(diretorio, EXTENSOES_BUSCA_IMPACTO)) {
105
118
  arquivos.add(arquivo);
@@ -3,15 +3,50 @@ import type { ConfiguracaoEscopoDriftAplicada, RecursoResolvido, RotaResolvida,
3
3
  import { indexarTypeScript } from "./drift.part06.js";
4
4
  import { indexarDart } from "./drift.part07.js";
5
5
  import { indexarPersistenciaDetalhada } from "./drift.part08.js";
6
- export interface IndicesDriftPreparados {
7
- detalhesPersistencia: Awaited<ReturnType<typeof indexarPersistenciaDetalhada>>;
8
- indexDart: Awaited<ReturnType<typeof indexarDart>>;
9
- indexTs: Awaited<ReturnType<typeof indexarTypeScript>>;
10
- mapaImpl: Map<string, SimboloResolvido>;
11
- mapaRecursos: Map<string, RecursoResolvido[]>;
6
+ import { type DiagnosticoOrcamentoArquivo } from "./driftOrcamento.js";
7
+ import { type CatalogoDrift, type MetricasCatalogoDrift, type ObservadorOperacaoDrift } from "./driftCatalogo.js";
8
+ import { type PoliticaCacheDrift } from "./driftCache.js";
9
+ import { type MetricasCacheIncrementalDrift } from "./driftCacheIncremental.js";
10
+ import { type PlanoEscopoDrift } from "./driftEscopo.js";
11
+ type IndiceTypeScriptDrift = Awaited<ReturnType<typeof indexarTypeScript>>;
12
+ type IndiceDartDrift = Awaited<ReturnType<typeof indexarDart>>;
13
+ type DetalhesPersistenciaDrift = Awaited<ReturnType<typeof indexarPersistenciaDetalhada>>;
14
+ interface IndicesDriftSerializaveis {
15
+ arquivosOrcamentoAvaliados: string[];
16
+ detalhesPersistencia: DetalhesPersistenciaDrift;
17
+ diagnosticosOrcamento: DiagnosticoOrcamentoArquivo[];
18
+ indexDart: IndiceDartDrift;
19
+ indexTs: IndiceTypeScriptDrift;
12
20
  todasRotasIndexadas: RotaResolvida[];
13
21
  todosArquivosConhecidos: string[];
14
22
  todosRecursos: RecursoResolvido[];
15
23
  todosSimbolos: SimboloResolvido[];
16
24
  }
17
- export declare function prepararIndicesDrift(contexto: ContextoProjetoCarregado, configuracaoEscopo: ConfiguracaoEscopoDriftAplicada): Promise<IndicesDriftPreparados>;
25
+ export interface EstadoCacheIndicesDrift {
26
+ politica: PoliticaCacheDrift;
27
+ origem: "cache" | "calculado" | "nao_aplicavel";
28
+ chave?: string;
29
+ incremental?: MetricasCacheIncrementalDrift;
30
+ fasesMs?: {
31
+ planejamento: number;
32
+ catalogacao: number;
33
+ dependencias: number;
34
+ assinaturas: number;
35
+ indexacao: number;
36
+ total: number;
37
+ };
38
+ }
39
+ export interface IndicesDriftPreparados extends IndicesDriftSerializaveis {
40
+ mapaImpl: Map<string, SimboloResolvido>;
41
+ mapaRecursos: Map<string, RecursoResolvido[]>;
42
+ planoEscopo: PlanoEscopoDrift;
43
+ cache: EstadoCacheIndicesDrift;
44
+ catalogo: MetricasCatalogoDrift;
45
+ leitorArquivosPlanejados?: Pick<CatalogoDrift, "contem" | "lerTexto">;
46
+ }
47
+ export interface OpcoesPrepararIndicesDrift {
48
+ politicaCache?: PoliticaCacheDrift;
49
+ observador?: ObservadorOperacaoDrift;
50
+ }
51
+ export declare function prepararIndicesDrift(contexto: ContextoProjetoCarregado, configuracaoEscopo: ConfiguracaoEscopoDriftAplicada, opcoes?: OpcoesPrepararIndicesDrift): Promise<IndicesDriftPreparados>;
52
+ export {};