fg-tracker-mcp 0.9.1 → 0.11.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 (49) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +22 -10
  3. package/dist/cli.js +12 -7
  4. package/dist/cli.js.map +1 -1
  5. package/dist/client.d.ts +44 -4
  6. package/dist/client.js +80 -11
  7. package/dist/client.js.map +1 -1
  8. package/dist/database.js +1 -1
  9. package/dist/database.js.map +1 -1
  10. package/dist/diagnostics.d.ts +18 -0
  11. package/dist/diagnostics.js +467 -0
  12. package/dist/diagnostics.js.map +1 -0
  13. package/dist/docs.js +22 -22
  14. package/dist/docs.js.map +1 -1
  15. package/dist/format.d.ts +68 -3
  16. package/dist/format.js +113 -11
  17. package/dist/format.js.map +1 -1
  18. package/dist/guide.d.ts +1 -1
  19. package/dist/guide.js +27 -23
  20. package/dist/guide.js.map +1 -1
  21. package/dist/infra/handover.d.ts +1 -1
  22. package/dist/infra/handover.js +25 -23
  23. package/dist/infra/handover.js.map +1 -1
  24. package/dist/infra/iac.js +2 -2
  25. package/dist/infra/iac.js.map +1 -1
  26. package/dist/infra/instrument.js +5 -5
  27. package/dist/infra/instrument.js.map +1 -1
  28. package/dist/infra/tools.js +45 -32
  29. package/dist/infra/tools.js.map +1 -1
  30. package/dist/inputs.d.ts +40 -0
  31. package/dist/inputs.js +30 -0
  32. package/dist/inputs.js.map +1 -0
  33. package/dist/journeys.d.ts +71 -0
  34. package/dist/journeys.js +130 -0
  35. package/dist/journeys.js.map +1 -0
  36. package/dist/links.d.ts +87 -0
  37. package/dist/links.js +124 -0
  38. package/dist/links.js.map +1 -0
  39. package/dist/loadtest/scenario.js +1 -1
  40. package/dist/loadtest/scenario.js.map +1 -1
  41. package/dist/loadtest/tools.js +20 -11
  42. package/dist/loadtest/tools.js.map +1 -1
  43. package/dist/schemas.d.ts +621 -0
  44. package/dist/schemas.js +277 -0
  45. package/dist/schemas.js.map +1 -0
  46. package/dist/server.d.ts +21 -2
  47. package/dist/server.js +757 -147
  48. package/dist/server.js.map +1 -1
  49. package/package.json +3 -3
@@ -7,13 +7,14 @@ import { stat, writeFile } from 'node:fs/promises';
7
7
  import { join, resolve } from 'node:path';
8
8
  import { z } from 'zod';
9
9
  import { TrackApiError } from '../client.js';
10
- import { compact, guard, json, text } from '../format.js';
10
+ import { compact, guard, json, structured, text } from '../format.js';
11
+ import { infraEnvironmentsOutput, reportOutput } from '../schemas.js';
11
12
  import { ENVIRONMENT_LABEL, describeAwsError, detectEnvironments, detectRegionsInUse, discoverAws, readStackOutputs, serviceLabel } from './aws.js';
12
13
  import { DOC_PATH, GUARD_PATH, GUARD_SCRIPT, HANDOVER_DIR, HANDOVER_README, LOCK_PATH, PATCH_PATH, buildHandoverEdits, formatChanges, handoverDoc, handoverReadme, lockFile, writeHandoverFiles, } from './handover.js';
13
14
  import { findCloudAssemblies, graphsFromAssembly } from './cdk-graph.js';
14
15
  import { analyzeIac, formatIac } from './iac.js';
15
16
  import { buildInstrumentPlan } from './instrument.js';
16
- const projectIdSchema = z.string().uuid().describe('ID (uuid) do projeto — veja track_list_projects');
17
+ const projectIdSchema = z.string().uuid().describe('ID (uuid) do projeto — veja tracker_list_projects');
17
18
  const regionSchema = z.string().regex(/^[a-z]{2}(-gov)?-[a-z]+-\d$/, 'região AWS inválida (ex.: us-east-1)');
18
19
  const SEVERITY_RANK = { critical: 0, high: 1, medium: 2, low: 3 };
19
20
  const PILLAR_LABEL = { performance: 'Performance', security: 'Segurança', scalability: 'Escalabilidade', reliability: 'Confiabilidade' };
@@ -50,18 +51,19 @@ export function registerInfraTools(server, client, version) {
50
51
  const infraRouteMissing = (err) => err instanceof TrackApiError && err.status === 404 && /Cannot (GET|POST)/.test(err.message);
51
52
  const wrapInfra = (err) => {
52
53
  if (infraRouteMissing(err)) {
53
- throw new TrackApiError(`A API em ${client.baseUrl} não expõe as rotas de infraestrutura (/v1/projects/:id/infra/*). Atualize a API do FG Track ou verifique INFRA_ENABLED.`, 404, err.path);
54
+ throw new TrackApiError(`A API em ${client.baseUrl} não expõe as rotas de infraestrutura (/v1/projects/:id/infra/*). Atualize a API do FG Tracker ou verifique INFRA_ENABLED.`, 404, err.path);
54
55
  }
55
56
  throw err;
56
57
  };
57
58
  /* 0 ---------------- detectar contas/ambientes/regiões ---------------- */
58
59
  server.registerTool('infra_detect_environments', {
59
60
  title: 'Detectar contas, ambientes e regiões AWS (credenciais locais)',
60
- description: 'Somente leitura e local: lista os perfis de ~/.aws/config e ~/.aws/credentials (+ AWS_PROFILE e a cadeia padrão), chama sts:GetCallerIdentity em cada um (até 10; falhas são puladas com o motivo), deduplica por conta, classifica o ambiente pelo nome do perfil/ARN (prod/prd → production; stag/hml/homolog/qa → staging; dev/sandbox/test → development; senão null = pergunte ao usuário) e detecta as regiões em uso (índices do Resource Explorer ou sondagem com CloudFormation ListStacks + Tagging GetResources). Não chama a API do FG Track. Depois: confirme com o usuário e chame infra_connect_account por ambiente.',
61
+ description: 'Somente leitura e local: lista os perfis de ~/.aws/config e ~/.aws/credentials (+ AWS_PROFILE e a cadeia padrão), chama sts:GetCallerIdentity em cada um (até 10; falhas são puladas com o motivo), deduplica por conta, classifica o ambiente pelo nome do perfil/ARN (prod/prd → production; stag/hml/homolog/qa → staging; dev/sandbox/test → development; senão null = pergunte ao usuário) e detecta as regiões em uso (índices do Resource Explorer ou sondagem com CloudFormation ListStacks + Tagging GetResources). Não chama a API do FG Tracker. Depois: confirme com o usuário e chame infra_connect_account por ambiente.',
61
62
  inputSchema: {
62
63
  profiles: z.array(z.string().min(1)).max(20).optional().describe('Perfis a testar (default: todos os perfis encontrados, até 10)'),
63
64
  includeRegions: z.array(regionSchema).max(20).optional().describe('Regiões extras a sempre considerar além das candidatas'),
64
65
  },
66
+ outputSchema: infraEnvironmentsOutput,
65
67
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
66
68
  }, async ({ profiles, includeRegions }) => guard(async () => {
67
69
  const result = await detectEnvironments({ profiles, includeRegions });
@@ -92,7 +94,7 @@ export function registerInfraTools(server, client, version) {
92
94
  if (result.skipped.length)
93
95
  lines.push('', 'Perfis ignorados:', ...result.skipped.map((s) => `- ${s.profile ?? '(cadeia padrão)'}: ${s.reason}`));
94
96
  lines.push('', 'Próximos passos:', '1. Mostre a lista ao usuário e confirme quais contas/ambientes conectar (pergunte o ambiente só quando for desconhecido; confirme as regiões).', '2. Para cada ambiente escolhido: `infra_connect_account { projectId, level, name: "<nome> · <Ambiente>", environment, regions, profile }` → peça confirmação → rode o comando de deploy devolvido → `infra_verify_connection { projectId, connectionId, profile }` → `infra_discover { projectId, profile, regions }`.');
95
- return json({ accounts, skipped: result.skipped, profilesFound: result.profilesFound }, lines.join('\n'));
97
+ return structured({ accounts, skipped: result.skipped, profilesFound: result.profilesFound }, lines.join('\n'));
96
98
  }));
97
99
  /* 1 ---------------- conectar conta ---------------- */
98
100
  server.registerTool('infra_connect_account', {
@@ -194,7 +196,7 @@ export function registerInfraTools(server, client, version) {
194
196
  }
195
197
  lines.push(`## Criar o stack de conexão \`${stackName}\` (conta${profile ? ` do perfil ${profile}` : ''}, região ${region})`);
196
198
  if (deployCommand) {
197
- lines.push('**Peça confirmação explícita ao usuário antes de rodar** — é a única mudança na AWS do fluxo (cria as roles IAM do FG Track). Mostre o comando e, só com o "sim", rode:', '```bash', deployCommand, '```');
199
+ lines.push('**Peça confirmação explícita ao usuário antes de rodar** — é a única mudança na AWS do fluxo (cria as roles IAM do FG Tracker). Mostre o comando e, só com o "sim", rode:', '```bash', deployCommand, '```');
198
200
  }
199
201
  else {
200
202
  lines.push('A API não devolveu template nem comando. Baixe-o na tela Infraestrutura → Conexões.');
@@ -207,7 +209,7 @@ export function registerInfraTools(server, client, version) {
207
209
  /* 2 ---------------- verificar conexão ---------------- */
208
210
  server.registerTool('infra_verify_connection', {
209
211
  title: 'Verificar conexão AWS',
210
- description: 'Testa a conexão (POST .../infra/connections/:connectionId/verify: AssumeRole + GetCallerIdentity no FG Track). Sem ARNs informados, lê os outputs do stack local `fg-tracker-<slug>` com DescribeStacks (somente leitura, credenciais locais) e os envia.',
212
+ description: 'Testa a conexão (POST .../infra/connections/:connectionId/verify: AssumeRole + GetCallerIdentity no FG Tracker). Sem ARNs informados, lê os outputs do stack local `fg-tracker-<slug>` com DescribeStacks (somente leitura, credenciais locais) e os envia.',
211
213
  inputSchema: {
212
214
  projectId: projectIdSchema,
213
215
  connectionId: z.string().uuid().describe('id devolvido por infra_connect_account'),
@@ -259,7 +261,7 @@ export function registerInfraTools(server, client, version) {
259
261
  return json(compact(result), [
260
262
  ...notes,
261
263
  ok ? `Conexão OK — conta ${accountId ?? '?'}.` : `Conexão com status ${status ?? '?'}${result.statusError ? `: ${result.statusError}` : ''}.`,
262
- ok ? `Próximo passo: infra_discover { projectId: "${projectId}" }.` : 'Confira se o stack terminou (CREATE_COMPLETE), a região e se as roles confiam no principal do FG Track com o External ID.',
264
+ ok ? `Próximo passo: infra_discover { projectId: "${projectId}" }.` : 'Confira se o stack terminou (CREATE_COMPLETE), a região e se as roles confiam no principal do FG Tracker com o External ID.',
263
265
  ].join('\n'));
264
266
  }));
265
267
  /* 3 ---------------- descoberta local ---------------- */
@@ -338,12 +340,16 @@ export function registerInfraTools(server, client, version) {
338
340
  title: 'Analisar IaC do repositório',
339
341
  description: 'Lê o repositório local (sem executar nada): cdk.json e entrada do app, stacks `new XStack(app, "Nome", { env })`, constructs `aws-cdk-lib/aws-*`, assets (Code.fromAsset, NodejsFunction, DockerImageFunction, ContainerImage.fromAsset), contextos, SAM, Serverless, Terraform (somente leitura) e comandos de deploy do CI. Devolve viabilidade de handover por stack.',
340
342
  inputSchema: { path: z.string().optional().describe('Caminho do repositório (default: diretório atual)') },
343
+ outputSchema: reportOutput,
341
344
  annotations: { readOnlyHint: true, openWorldHint: false },
342
- }, async ({ path }) => guard(async () => text(formatIac(await analyzeIac(await resolveRoot(path))))));
345
+ }, async ({ path }) => guard(async () => {
346
+ const report = formatIac(await analyzeIac(await resolveRoot(path)));
347
+ return structured({ report }, report, { body: null });
348
+ }));
343
349
  /* 4b ---------------- diagrama do IaC ---------------- */
344
350
  server.registerTool('infra_publish_iac', {
345
351
  title: 'Montar o diagrama a partir do CDK',
346
- description: 'Lê o CloudFormation sintetizado do app CDK (manifest.json + *.template.json do `cdk.out`, inclusive `output` customizado no cdk.json) e envia ao FG Track os serviços e o fluxo entre eles: API Gateway → Lambda, SQS → Lambda (event source), Lambda → SQS/SNS/DynamoDB/S3 (variáveis de ambiente e grants do IAM), EventBridge → alvo, SNS → assinante, CloudFront → origem. POST .../infra/iac. O diagrama passa a mostrar esse fluxo e o escopo do projeto vira esses stacks; estado, saúde, réplicas e tráfego vêm da AWS e do SDK. Não executa o app: se não houver cdk.out, peça ao usuário para rodar `npx cdk synth` (ou rode com aprovação) e chame de novo.',
352
+ description: 'Lê o CloudFormation sintetizado do app CDK (manifest.json + *.template.json do `cdk.out`, inclusive `output` customizado no cdk.json) e envia ao FG Tracker os serviços e o fluxo entre eles: API Gateway → Lambda, SQS → Lambda (event source), Lambda → SQS/SNS/DynamoDB/S3 (variáveis de ambiente e grants do IAM), EventBridge → alvo, SNS → assinante, CloudFront → origem. POST .../infra/iac. O diagrama passa a mostrar esse fluxo e o escopo do projeto vira esses stacks; estado, saúde, réplicas e tráfego vêm da AWS e do SDK. Não executa o app: se não houver cdk.out, peça ao usuário para rodar `npx cdk synth` (ou rode com aprovação) e chame de novo.',
347
353
  inputSchema: {
348
354
  projectId: projectIdSchema,
349
355
  path: z.string().optional().describe('Caminho do repositório (default: diretório atual)'),
@@ -429,19 +435,22 @@ export function registerInfraTools(server, client, version) {
429
435
  title: 'Plano de instrumentação de infra',
430
436
  description: 'Varre o repositório e devolve um plano de patches (não aplicado): instalar fg-tracker-sdk, tracker.instrumentAws(new SQSClient()) nos clientes SQS/SNS/EventBridge/DynamoDB/Kinesis/SFN, tracker.instrumentPgPool(pool), tracker.startInfraReporter({ ecs: true }) em apps ECS, camada da extensão + FG_TRACKER_URL/FG_TRACKER_KEY nas Lambdas do CDK e tracker.wrapLambda(handler), com arquivos e trechos de código.',
431
437
  inputSchema: { projectId: projectIdSchema, path: z.string().optional().describe('Caminho do repositório (default: diretório atual)') },
438
+ outputSchema: reportOutput,
432
439
  annotations: { readOnlyHint: true, openWorldHint: true },
433
440
  }, async ({ projectId, path }) => guard(async () => {
434
441
  const root = await resolveRoot(path);
435
442
  const project = await getProject(projectId);
436
443
  const conn = (await getConnections(projectId)).find((c) => c.accountId) ?? null;
437
444
  const layerArn = conn?.accountId ? `arn:aws:lambda:${conn.regions?.[0] ?? '<região>'}:${conn.accountId}:layer:fg-tracker-extension:<versão>` : 'arn:aws:lambda:<região>:<conta>:layer:fg-tracker-extension:<versão>';
438
- return text(await buildInstrumentPlan(root, { endpoint: client.baseUrl, serviceName: project.slug, layerArn }));
445
+ const report = await buildInstrumentPlan(root, { endpoint: client.baseUrl, serviceName: project.slug, layerArn });
446
+ return structured({ report }, report, { body: null });
439
447
  }));
440
448
  /* 7 ---------------- validação (notas) ---------------- */
441
449
  server.registerTool('infra_validate', {
442
450
  title: 'Notas dos quatro pilares',
443
451
  description: 'Relatório compacto por pilar (performance, segurança, escalabilidade, confiabilidade): GET .../infra/scores + findings abertos, com as principais recomendações.',
444
452
  inputSchema: { projectId: projectIdSchema },
453
+ outputSchema: reportOutput,
445
454
  annotations: { readOnlyHint: true, openWorldHint: true },
446
455
  }, async ({ projectId }) => guard(async () => {
447
456
  const scores = await client.get(`${base(projectId)}/scores`).catch(wrapInfra);
@@ -463,14 +472,16 @@ export function registerInfraTools(server, client, version) {
463
472
  if (!top.length)
464
473
  lines.push('- sem findings abertos');
465
474
  }
466
- lines.push('', 'Correções de infra são feitas pelo FG Track (diagrama → mudança → aprovação), nunca direto na AWS pelo agente. Ajustes de código (timeouts, pools, retries) podem ir no PR.');
467
- return text(lines.join('\n'));
475
+ lines.push('', 'Correções de infra são feitas pelo FG Tracker (diagrama → mudança → aprovação), nunca direto na AWS pelo agente. Ajustes de código (timeouts, pools, retries) podem ir no PR.');
476
+ const report = lines.join('\n');
477
+ return structured({ report, overall: scores.overall, pillars: scores.pillars ?? {}, openFindings: findings.length }, report, { body: null });
468
478
  }));
469
479
  /* 8 ---------------- diagrama ---------------- */
470
480
  server.registerTool('infra_get_diagram', {
471
481
  title: 'Diagrama da infraestrutura (texto)',
472
482
  description: 'GET .../infra/graph em texto compacto: grupos (conta/região/VPC/AZ/subnet) → nós com estado, réplicas e custo; arestas; gargalos (nós em warning/critical); deploys ativos; notas e custo.',
473
483
  inputSchema: { projectId: projectIdSchema, maxNodes: z.number().int().min(10).max(500).default(150).describe('Máximo de nós listados') },
484
+ outputSchema: reportOutput,
474
485
  annotations: { readOnlyHint: true, openWorldHint: true },
475
486
  }, async ({ projectId, maxNodes }) => guard(async () => {
476
487
  const g = await client.get(`${base(projectId)}/graph`).catch(wrapInfra);
@@ -493,7 +504,7 @@ export function registerInfraTools(server, client, version) {
493
504
  const f = n.openFindings;
494
505
  const fl = f && f.critical + f.high + f.medium + f.low ? ` · findings ${f.critical}c/${f.high}h/${f.medium}m/${f.low}l` : '';
495
506
  const rep = n.replicas ? ` · réplicas ${n.replicas.current}/${n.replicas.desired ?? '—'}${n.replicas.max ? ` (máx ${n.replicas.max})` : ''}` : '';
496
- return `${indent}- ${n.name} (${n.service}) ${n.state}${n.stateReason ? `: ${n.stateReason}` : ''}${rep}${n.costPerHour ? ` · ${usd(n.costPerHour)}/h` : ''}${n.instrumented ? ' · instrumentado' : ''}${n.owner === 'fg-tracker' ? ' · FG Track' : ''}${n.shared ? ' · compartilhado' : ''}${fl}`;
507
+ return `${indent}- ${n.name} (${n.service}) ${n.state}${n.stateReason ? `: ${n.stateReason}` : ''}${rep}${n.costPerHour ? ` · ${usd(n.costPerHour)}/h` : ''}${n.instrumented ? ' · instrumentado' : ''}${n.owner === 'fg-tracker' ? ' · FG Tracker' : ''}${n.shared ? ' · compartilhado' : ''}${fl}`;
497
508
  };
498
509
  const visit = (parent, depth) => {
499
510
  for (const gr of children.get(parent) ?? []) {
@@ -529,7 +540,8 @@ export function registerInfraTools(server, client, version) {
529
540
  const deploys = g.activeDeployments ?? [];
530
541
  if (deploys.length)
531
542
  lines.push('', 'Deploys ativos:', ...deploys.slice(0, 10).map((d) => `- ${d.name} ${d.status}${d.stage ? ` (${d.stage})` : ''}${d.release ? ` · ${d.release}` : d.commitSha ? ` · ${d.commitSha.slice(0, 7)}` : ''}`));
532
- return text(lines.join('\n'));
543
+ const report = lines.join('\n');
544
+ return structured({ report, nodes: nodes.length, edges: edges.length, hot: hot.length }, report, { body: null });
533
545
  }));
534
546
  /* 9 / 10 ---------------- handover ---------------- */
535
547
  const handoverInputs = {
@@ -559,9 +571,10 @@ export function registerInfraTools(server, client, version) {
559
571
  }
560
572
  server.registerTool('infra_plan_handover', {
561
573
  title: 'Planejar transferência de controle',
562
- description: 'Combina POST .../infra/handover/plan com a análise local de IaC e devolve a lista exata de edições do PR: remover stacks do app CDK e do cdk deploy do CI, separar deploy de código (fg-tracker-release deploy --release <sha>), guard do CI, infra/fg-tracker.lock.json e README. Não escreve nada.',
574
+ description: 'Combina POST .../infra/handover/plan com a análise local de IaC e devolve a lista exata de edições do PR: remover stacks do app CDK e do cdk deploy do CI, separar deploy de código (fg-tracker-release deploy --release <sha>), guard do CI, infra/fg-tracker.lock.json e README. Não escreve arquivos locais, mas chama uma rota POST da API (sessão de owner/admin): não é uma ferramenta somente leitura.',
563
575
  inputSchema: handoverInputs,
564
- annotations: { readOnlyHint: true, openWorldHint: true },
576
+ // POST /infra/handover/plan: rota de sessão (owner/admin), recusada para token de leitura.
577
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
565
578
  }, async ({ projectId, stackNames, path }) => guard(async () => {
566
579
  const { apiPlan, apiPlanError, edits } = await prepareHandover(projectId, stackNames, path);
567
580
  const patchLines = edits.patch.split('\n');
@@ -572,7 +585,7 @@ export function registerInfraTools(server, client, version) {
572
585
  ...feasibilityLines(edits),
573
586
  ...(edits.unsupported.length ? [`Terraform não é transferível: ${edits.unsupported.map((s) => s.name).join(', ')}.`] : []),
574
587
  '',
575
- '## Plano do FG Track',
588
+ '## Plano do FG Tracker',
576
589
  apiPlanError ? `Indisponível: ${apiPlanError}` : '```json\n' + JSON.stringify(compact(apiPlan), null, 2) + '\n```',
577
590
  '',
578
591
  '## Edições do PR',
@@ -634,7 +647,7 @@ export function registerInfraTools(server, client, version) {
634
647
  files[PATCH_PATH] = edits.patch;
635
648
  const written = await writeHandoverFiles(root, files);
636
649
  const patched = [...new Set(edits.changes.filter((c) => c.kind === 'patch').map((c) => c.path))];
637
- const title = `Transferir ${stackNames.join(', ')} ao FG Track`;
650
+ const title = `Transferir ${stackNames.join(', ')} ao FG Tracker`;
638
651
  const commands = [
639
652
  `cd ${shellQuote(root)}`,
640
653
  `git checkout -b ${prBranch}`,
@@ -642,7 +655,7 @@ export function registerInfraTools(server, client, version) {
642
655
  ...edits.moves.map((m) => `mkdir -p ${shellQuote(m.to.split('/').slice(0, -1).join('/'))} && git mv ${shellQuote(m.from)} ${shellQuote(m.to)}`),
643
656
  `node ${GUARD_PATH}`,
644
657
  `git add ${[LOCK_PATH, GUARD_PATH, DOC_PATH, HANDOVER_DIR, ...patched].map(shellQuote).join(' ')}`,
645
- `git commit -m ${shellQuote(`infra: transfere ${stackNames.join(', ')} ao FG Track`)}`,
658
+ `git commit -m ${shellQuote(`infra: transfere ${stackNames.join(', ')} ao FG Tracker`)}`,
646
659
  `git push -u origin ${prBranch}`,
647
660
  `gh pr create --title ${shellQuote(title)} --body-file ${DOC_PATH}`,
648
661
  ];
@@ -653,7 +666,7 @@ export function registerInfraTools(server, client, version) {
653
666
  '## Edições',
654
667
  formatChanges(edits),
655
668
  ...(edits.warnings.length ? ['', '## Pendências (resolver antes do commit)', ...edits.warnings.map((w) => `- ${w}`)] : []),
656
- ...(apiPlanError ? ['', `Plano do FG Track indisponível: ${apiPlanError}`] : apiPlan ? ['', 'Plano do FG Track validado (POST /infra/handover/plan).'] : []),
669
+ ...(apiPlanError ? ['', `Plano do FG Tracker indisponível: ${apiPlanError}`] : apiPlan ? ['', 'Plano do FG Tracker validado (POST /infra/handover/plan).'] : []),
657
670
  '',
658
671
  '## Comandos (mostre ao usuário; rode só com a aprovação dele)',
659
672
  '```bash',
@@ -661,14 +674,14 @@ export function registerInfraTools(server, client, version) {
661
674
  '```',
662
675
  '',
663
676
  'Antes do commit: revise o diff (`git diff`), rode `npx cdk ls`/`cdk synth` e os testes do repositório.',
664
- `Depois do MERGE do PR: infra_complete_handover { projectId: "${projectId}", stackNames: ${JSON.stringify(stackNames)}, prUrl: "<url do PR>" }. O FG Track só assume os stacks nesse passo, com a verificação de change set vazio.`,
677
+ `Depois do MERGE do PR: infra_complete_handover { projectId: "${projectId}", stackNames: ${JSON.stringify(stackNames)}, prUrl: "<url do PR>" }. O FG Tracker só assume os stacks nesse passo, com a verificação de change set vazio.`,
665
678
  ];
666
679
  return text(lines.join('\n'));
667
680
  }));
668
681
  /* 11 ---------------- concluir handover ---------------- */
669
682
  server.registerTool('infra_complete_handover', {
670
683
  title: 'Concluir transferência de controle',
671
- description: 'Depois do merge do PR: POST .../infra/handover { stackIds, prUrl } — o FG Track lê os templates, cria o estado desejado v1, marca os stacks com fg-tracker:owner=true, aplica a stack policy e verifica com change set vazio (em dry-run só simula). Aceita stackNames (resolvidos em GET .../infra/stacks).',
684
+ description: 'Depois do merge do PR: POST .../infra/handover { stackIds, prUrl } — o FG Tracker lê os templates, cria o estado desejado v1, marca os stacks com fg-tracker:owner=true, aplica a stack policy e verifica com change set vazio (em dry-run só simula). Aceita stackNames (resolvidos em GET .../infra/stacks).',
672
685
  inputSchema: {
673
686
  projectId: projectIdSchema,
674
687
  stackIds: z.array(z.string().uuid()).optional(),
@@ -696,15 +709,15 @@ export function registerInfraTools(server, client, version) {
696
709
  return json(compact(result), [
697
710
  `Handover ${r.id ?? ''} registrado: status ${r.status ?? '?'} para ${ids.size} stack(s).`,
698
711
  unresolved.length ? `Não resolvidos: ${unresolved.join(', ')}.` : '',
699
- `Atualize "status" em ${LOCK_PATH} para "completed" num commit seguinte, se quiser manter o registro fiel. Acompanhe a verificação com infra_get_diagram (stacks com owner FG Track).`,
712
+ `Atualize "status" em ${LOCK_PATH} para "completed" num commit seguinte, se quiser manter o registro fiel. Acompanhe a verificação com infra_get_diagram (stacks com owner FG Tracker).`,
700
713
  ].filter(Boolean).join('\n'));
701
714
  }));
702
715
  /* ---------------- prompt ---------------- */
703
716
  server.registerPrompt('connect-infrastructure', {
704
- title: 'Conectar a infraestrutura AWS ao FG Track',
717
+ title: 'Conectar a infraestrutura AWS ao FG Tracker',
705
718
  description: 'Roteiro para o agente: detectar contas/ambientes/regiões → conectar cada ambiente (com confirmação antes do stack) → verificar → descobrir → analisar IaC → confirmar recursos → instrumentar → validar → no nível operação, transferir o controle por padrão (plano + PR + conclusão após o merge), com regras de segurança.',
706
719
  argsSchema: {
707
- projectId: z.string().optional().describe('Projeto no FG Track (default: ler da mensagem do usuário ou escolher com track_list_projects)'),
720
+ projectId: z.string().optional().describe('Projeto no FG Tracker (default: ler da mensagem do usuário ou escolher com tracker_list_projects)'),
708
721
  level: z.string().optional().describe('read | operate (default: ler da mensagem do usuário)'),
709
722
  name: z.string().optional().describe('Nome base da conexão (opcional)'),
710
723
  path: z.string().optional().describe('Repositório (default: diretório atual)'),
@@ -715,16 +728,16 @@ export function registerInfraTools(server, client, version) {
715
728
  }));
716
729
  }
717
730
  export function connectInfrastructurePrompt(args, endpoint) {
718
- const p = args.projectId ? `projectId **${args.projectId}**` : 'o projeto indicado na mensagem do usuário (senão use `track_list_projects` e pergunte)';
731
+ const p = args.projectId ? `projectId **${args.projectId}**` : 'o projeto indicado na mensagem do usuário (senão use `tracker_list_projects` e pergunte)';
719
732
  const repo = args.path ? `\`${args.path}\`` : 'o diretório atual';
720
733
  const known = [args.level ? `nível **${args.level}**` : '', args.name ? `nome da conexão **${args.name}**` : '', args.environment ? `somente o ambiente **${args.environment}**` : ''].filter(Boolean).join(', ');
721
- return `Você vai integrar a infraestrutura AWS deste repositório (${repo}) ao FG Track (${endpoint}) para ${p}${known ? ` (${known})` : ''}. Trabalhe passo a passo, mostre o resultado de cada tool e peça confirmação nos pontos marcados. Você mesmo identifica contas, ambientes e regiões — não peça ao usuário o que dá para detectar.
734
+ return `Você vai integrar a infraestrutura AWS deste repositório (${repo}) ao FG Tracker (${endpoint}) para ${p}${known ? ` (${known})` : ''}. Trabalhe passo a passo, mostre o resultado de cada tool e peça confirmação nos pontos marcados. Você mesmo identifica contas, ambientes e regiões — não peça ao usuário o que dá para detectar.
722
735
 
723
736
  ## Regras de segurança (obrigatórias)
724
737
  - **A única mudança na AWS permitida é criar o stack de conexão \`fg-tracker-<slug>\`**, com o comando devolvido por \`infra_connect_account\` e **somente depois de o usuário confirmar explicitamente** (mostre conta, perfil, região e comando). Nunca rode \`cdk deploy\`, \`sam deploy\`, \`terraform apply\` ou outros \`aws ... create/update/delete/put\`.
725
- - Alterações de infraestrutura só acontecem no FG Track, com **aprovação humana na tela**. O merge do PR de transferência é a confirmação humana do handover.
738
+ - Alterações de infraestrutura só acontecem no FG Tracker, com **aprovação humana na tela**. O merge do PR de transferência é a confirmação humana do handover.
726
739
  - Não faça \`git push\` nem \`gh pr create\` sem o usuário aprovar os comandos. Nunca commite chaves (\`FG_TRACKER_KEY\`, credenciais AWS, External ID, \`fg-tracker-connection-*.json\`).
727
- - Se \`track_status\` indicar API fora do ar ou sem \`FG_TRACKER_TOKEN\`, pare e explique o que configurar.
740
+ - Se \`tracker_status\` indicar API fora do ar ou sem \`FG_TRACKER_TOKEN\`, pare e explique o que configurar.
728
741
 
729
742
  ## Roteiro
730
743
  1. **Ler o pedido** — extraia da mensagem do usuário o \`projectId\`, o nível (\`read\` | \`operate\`) e o nome da conexão (opcional; default: nome do projeto). Pergunte só o que faltar.
@@ -739,8 +752,8 @@ export function connectInfrastructurePrompt(args, endpoint) {
739
752
  6. **Instrumentar** — \`infra_instrument { projectId, path }\`; aplique os patches de código (SDK, clientes AWS, pools, reporter ECS, camada nas Lambdas, \`wrapLambda\`) no repositório, em edits mínimos. Não implante.
740
753
  7. **Validar** — \`infra_validate { projectId }\` e \`infra_get_diagram\`; resuma as notas por pilar e as 3–5 recomendações mais importantes.
741
754
  8. **Handover (padrão no nível \`operate\`)** — no nível \`read\`, pule os passos 8–10. No nível \`operate\`, **a transferência de controle faz parte da conexão**: não pergunte se o usuário quer transferir nem quais stacks. Selecione por padrão todos os stacks CloudFormation/CDK/SAM que pertencem ao projeto em cada ambiente conectado (os relacionados no passo 4 e confirmados no passo 5), deixando fora apenas stacks compartilhados, Terraform (fica somente leitura) e o próprio \`fg-tracker-<slug>\`. Rode \`infra_plan_handover { projectId, stackNames, path }\` e mostre, num único resumo, os stacks incluídos, os bloqueios e a separação do deploy de código (\`fg-tracker-release deploy --release <sha>\`). Stacks com bloqueio ficam de fora e entram na lista de pendências.
742
- 9. **Gerar o PR** — em seguida, sem nova pergunta, \`infra_open_handover_pr\` com os stacks sem bloqueio; aplique o patch e rode as verificações locais (\`cdk ls\`, guard, testes). Peça **uma única aprovação** para os comandos git/gh (push + PR). O PR remove o deploy de infraestrutura do CI do repositório; sem ele o pipeline e o FG Track disputariam os mesmos stacks.
743
- 10. **Após o merge** — assim que o usuário informar que o PR foi mergeado (ou \`gh pr view <url> --json state\` indicar MERGED), rode \`infra_complete_handover { projectId, stackNames, prUrl }\` sem nova confirmação: o merge é a aprovação humana. Acompanhe com \`infra_get_diagram\` até os stacks aparecerem com owner FG Track.
755
+ 9. **Gerar o PR** — em seguida, sem nova pergunta, \`infra_open_handover_pr\` com os stacks sem bloqueio; aplique o patch e rode as verificações locais (\`cdk ls\`, guard, testes). Peça **uma única aprovação** para os comandos git/gh (push + PR). O PR remove o deploy de infraestrutura do CI do repositório; sem ele o pipeline e o FG Tracker disputariam os mesmos stacks.
756
+ 10. **Após o merge** — assim que o usuário informar que o PR foi mergeado (ou \`gh pr view <url> --json state\` indicar MERGED), rode \`infra_complete_handover { projectId, stackNames, prUrl }\` sem nova confirmação: o merge é a aprovação humana. Acompanhe com \`infra_get_diagram\` até os stacks aparecerem com owner FG Tracker.
744
757
 
745
758
  Ao final, liste: conexões criadas (ambiente, conta, regiões, status), nº de recursos por ambiente, recursos confirmados, arquivos alterados, notas por pilar e o estado do handover.`;
746
759
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/infra/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAkC,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAwB,MAAM,UAAU,CAAC;AAC1K,OAAO,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,cAAc,EACd,QAAQ,EACR,kBAAkB,GAEnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAoB,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC,CAAC;AACtG,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,6BAA6B,EAAE,sCAAsC,CAAC,CAAC;AAmC7G,MAAM,aAAa,GAA2B,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAC1F,MAAM,YAAY,GAA2B,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;AAEjK,SAAS,MAAM,CAAI,KAAc;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAY,CAAC;IAC9C,MAAM,KAAK,GAAI,KAAoC,EAAE,KAAK,CAAC;IAC3D,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAa,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,GAAG,CAAC,CAA4B;IACvC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACnH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAa;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,yDAAyD,CAAC,CAAC;IACnI,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAmB,EAAE,OAAe;IACxF,MAAM,IAAI,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,gBAAgB,SAAS,QAAQ,CAAC;IACtE,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAU,gBAAgB,SAAS,EAAE,CAAC,CAAC;IAC3F,MAAM,cAAc,GAAG,KAAK,EAAE,SAAiB,EAA6B,EAAE;QAC5E,IAAI,CAAC;YACH,OAAO,MAAM,CAAiB,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QACpF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxI,MAAM,SAAS,GAAG,CAAC,GAAY,EAAS,EAAE;QACxC,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,aAAa,CAAC,YAAY,MAAM,CAAC,OAAO,0HAA0H,EAAE,GAAG,EAAG,GAAqB,CAAC,IAAI,CAAC,CAAC;QAClN,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC;IAEF,2EAA2E;IAC3E,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,KAAK,EAAE,+DAA+D;QACtE,WAAW,EACT,smBAAsmB;QACxmB,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;YAClI,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SAC5H;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACvG,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,CACrC,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3C,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,eAAe,EAAE,CAAC,CAAC,eAAe;YAClC,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,uBAAuB,EAAE,CAAC,CAAC,uBAAuB;YAClD,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC,CAAC;QACJ,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CACR,8EAA8E,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAC1J,yHAAyH,CAC1H,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,6BAA6B,CAAC,CAAC;YAC5D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,KAAK,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,6CAA6C,CAAC;gBACrI,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzF,KAAK,CAAC,IAAI,CACR,WAAW,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,OAAO,IAAI,iBAAiB,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,YAAY,EAAE,CAC7S,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,iBAAiB,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjJ,KAAK,CAAC,IAAI,CACR,EAAE,EACF,kBAAkB,EAClB,gJAAgJ,EAChJ,wTAAwT,CACzT,CAAC;QACF,OAAO,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5G,CAAC,CAAC,CACL,CAAC;IAEF,wDAAwD;IACxD,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,+BAA+B;QACtC,WAAW,EACT,sbAAsb;QACxb,WAAW,EAAE;YACX,SAAS,EAAE,eAAe;YAC1B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,8HAA8H,CAAC;YAC3K,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YACvI,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+EAA+E,CAAC;YAClJ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;YAC9H,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iFAAiF,CAAC;SAClI;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KACzG,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAClE,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,UAAU,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;gBACvD,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChD,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,CAAC,MAAM,SAAS,OAAO,CAAC,CAAC,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC,iBAAiB,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpM,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,KAAK,CAAC,IAAI,CAAC,+BAA+B,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;gBACxB,UAAU,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,WAAW,CAAC,CAAC;gBACvF,KAAK,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,CAAC,CAAC,yEAAyE,CAAC,CAAC;YAC/G,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,MAAM;aACrB,IAAI,CAAsK,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;YAC3M,IAAI,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,IAAI,KAAK,EAAE;YACvD,KAAK;YACL,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,MAAM;SACb,CAAC;aACD,KAAK,CAAC,SAAS,CAAC,CAAC;QACpB,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,cAAc,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG;YACZ,mBAAmB,GAAG,CAAC,UAAU,EAAE,IAAI,IAAI,IAAI,IAAI,SAAS,QAAQ,YAAY,aAAa,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,UAAU,EAAE,MAAM,IAAI,SAAS,GAAG;YACjO,GAAG,KAAK;YACR,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,UAAU,0EAA0E,CAAC,CAAC,CAAC,EAAE;YAC9H,EAAE;SACH,CAAC;QACF,IAAI,aAAa,GAAkB,IAAI,CAAC;QACxC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAChD,sIAAsI;YACtI,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;gBAC1C,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,GAAG,CAAC,CAAC,0CAA0C;gBACxD,CAAC;YACH,CAAC,CAAC;YACF,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7F,MAAM,MAAM,GAAG,WAAW,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAChF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,yBAAyB,MAAM,OAAO,CAAC,CAAC;YACzE,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;YACxE,IAAI,MAAM,GAAa,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAA6C,CAAC;gBAC5H,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;YACD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACnB,aAAa,GAAG,GAAG,CAAC,UAAU;qBAC3B,KAAK,CAAC,IAAI,CAAC;qBACX,MAAM,CAAC,OAAO,CAAC;qBACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,mBAAmB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;qBAC1J,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5H,aAAa,GAAG;oBACd,2BAA2B;oBAC3B,qBAAqB,UAAU,CAAC,IAAI,CAAC,EAAE;oBACvC,kBAAkB,SAAS,EAAE;oBAC7B,uCAAuC;oBACvC,cAAc,MAAM,EAAE;oBACtB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1D,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2BAA2B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChF,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,uBAAuB,IAAI,mBAAmB,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC1B,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3J,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,iCAAiC,SAAS,YAAY,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,MAAM,GAAG,CAAC,CAAC;QAC9H,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CACR,yKAAyK,EACzK,SAAS,EACT,aAAa,EACb,KAAK,CACN,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,GAAG,CAAC,cAAc;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,mDAAmD,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;QAChH,KAAK,CAAC,IAAI,CACR,EAAE,EACF,4DAA4D,EAC5D,8CAA8C,SAAS,qBAAqB,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,eAAe,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,6DAA6D,SAAS,uBAAuB,EACjO,qCAAqC,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,eAAe,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,cAAc,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAC1I,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CACL,CAAC;IAEF,2DAA2D;IAC3D,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,2PAA2P;QAC7P,WAAW,EAAE;YACX,SAAS,EAAE,eAAe;YAC1B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YAClF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;YACrD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;YACxD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;YAC1D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YACzF,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YACjG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;SAChF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAC/G,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,GAA2B,EAAE,CAAC;QACxC,IAAI,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAChD,IAAI,cAAc;YAAE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACzD,IAAI,gBAAgB;YAAE,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;YAClF,MAAM,KAAK,GAAG,SAAS,IAAI,cAAc,OAAO,CAAC,IAAI,EAAE,CAAC;YACxD,MAAM,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,WAAW,CAAC;YAClH,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChF,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,GAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACrG,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;gBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3B,IAAI,IAAI;oBAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBAClC,IAAI,OAAO;oBAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;gBAC3C,IAAI,IAAI;oBAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,OAAO,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gCAAgC,GAAG,CAAC,CAAC;YAC/K,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,KAAK,CAAC,IAAI,CAAC,8BAA8B,KAAK,SAAS,CAAC,KAAK,gBAAgB,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;YAChJ,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAoG,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,YAAY,SAAS,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpN,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC;QACnE,MAAM,EAAE,GAAG,MAAM,KAAK,WAAW,CAAC;QAClC,OAAO,IAAI,CACT,OAAO,CAAC,MAAM,CAAC,EACf;YACE,GAAG,KAAK;YACR,EAAE,CAAC,CAAC,CAAC,sBAAsB,SAAS,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,sBAAsB,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;YAC7I,EAAE,CAAC,CAAC,CAAC,+CAA+C,SAAS,MAAM,CAAC,CAAC,CAAC,2HAA2H;SAClM,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC,CAAC,CACL,CAAC;IAEF,0DAA0D;IAC1D,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,6CAA6C;QACpD,WAAW,EACT,wVAAwV;QAC1V,WAAW,EAAE;YACX,SAAS,EAAE,eAAe;YAC1B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;YAC5H,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;YACnG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;SACxG;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAC9C,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,IAAI,UAAU,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YACxB,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACxG,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,WAAW,CAAC,CAAC;QACpI,CAAC;QACD,IAAI,SAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,WAAW,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,GAA4B,CAAC;QACjC,IAAI,IAAI;YAAE,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAExI,IAAI,QAAiB,CAAC;QACtB,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAC3C,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzH,KAAK,GAAG,qBAAqB,CAAC;gBAC9B,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAClF,CAAC;;gBAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAChD,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9F,MAAM,IAAI,GAAG,QAAuD,CAAC;QACrE,MAAM,KAAK,GAAG;YACZ,SAAS,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,gBAAgB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACpI,WAAW,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACvF,qBAAqB,KAAK,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG;YAC/I,EAAE;YACF,cAAc,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACvE,cAAc;YACd,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;SAC3F,CAAC;QACF,IAAI,SAAS,CAAC,IAAI,GAAG,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,SAAS,CAAC,IAAI,GAAG,EAAE,WAAW,CAAC,CAAC;QAC5E,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,0BAA0B,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,CAAC;YAClN,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,SAAS,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACrG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,8JAA8J,CAAC,CAAC;QAC/K,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CACL,CAAC;IAEF,wDAAwD;IACxD,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,6BAA6B;QACpC,WAAW,EACT,0WAA0W;QAC5W,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC,EAAE;QAC1G,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,UAAU,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAClG,CAAC;IAEF,0DAA0D;IAC1D,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EACT,woBAAwoB;QAC1oB,WAAW,EAAE;YACX,SAAS,EAAE,eAAe;YAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YACzF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;SAClH;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CACpC,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CACT;gBACE,8CAA8C;gBAC9C,QAAQ,CAAC,OAAO,CAAC,MAAM;oBACrB,CAAC,CAAC,6BAA6B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mHAAmH;oBACnN,CAAC,CAAC,uDAAuD;aAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACvM,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,gDAAgD,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACpJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAA6E,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7K,MAAM,KAAK,GAAG;YACZ,4BAA4B,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,SAAS,gBAAgB,MAAM,CAAC,KAAK,kBAAkB,MAAM,CAAC,YAAY,8CAA8C;YACtL,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,cAAc,CAAC,CAAC,KAAK,CAAC,MAAM,cAAc,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,GAAG,CAAC;YACpL,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK;gBAChC,CAAC,CAAC,4JAA4J;gBAC9J,CAAC,CAAC,EAAE;SACP,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CACL,CAAC;IAEF,2DAA2D;IAC3D,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,KAAK,EAAE,+BAA+B;QACtC,WAAW,EACT,uNAAuN;QACzN,WAAW,EAAE;YACX,SAAS,EAAE,eAAe;YAC1B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YACnG,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;SAC5I;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CACxC,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACvI,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;YACxB,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;gBACvD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACvB,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;oBACpG,IAAI,GAAG,CAAC,YAAY;wBAAE,QAAQ,EAAE,CAAC;;wBAC5B,OAAO,EAAE,CAAC;gBACjB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,YAAY,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,uCAAuC,OAAO,eAAe,CAAC,CAAC;QACzF,IAAI,QAAQ,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,yDAAyD,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5J,IAAI,MAAM,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,YAAY,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACzG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,iDAAiD,SAAS,uBAAuB,CAAC,CAAC;QAClG,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7G,CAAC,CAAC,CACL,CAAC;IAEF,wDAAwD;IACxD,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kCAAkC;QACzC,WAAW,EACT,wZAAwZ;QAC1Z,WAAW,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC,EAAE;QACtI,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACzD,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAC5B,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;QAChF,MAAM,QAAQ,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,sCAAsC,CAAC,CAAC,CAAC,qEAAqE,CAAC;QACrN,OAAO,IAAI,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC,CAAC,CACL,CAAC;IAEF,2DAA2D;IAC3D,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,kKAAkK;QAC/K,WAAW,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;QAC3C,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACzD,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CACtB,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAkG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/K,MAAM,QAAQ,GAAG,MAAM,CAAc,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1G,IAAI,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACtE,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,QAAQ,CAAC,MAAM,oBAAoB,CAAC,CAAC;QACvG,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,QAAQ,YAAY,CAAC,CAAC;YAC/H,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxJ,KAAK,MAAM,CAAC,IAAI,GAAG;gBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChL,IAAI,CAAC,GAAG,CAAC,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,6KAA6K,CAAC,CAAC;QAC9L,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CACL,CAAC;IAEF,kDAAkD;IAClD,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,oCAAoC;QAC3C,WAAW,EAAE,4LAA4L;QACzM,WAAW,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;QACxI,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACzD,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAChC,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,GAAG,CAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,KAAK,GAAa;YACtB,aAAa,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE;YACrJ,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,sBAAsB,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1T,EAAE;SACH,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;QACzD,KAAK,MAAM,EAAE,IAAI,MAAM;YAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/F,MAAM,YAAY,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC5D,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChH,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,QAAQ,GAAG,CAAC,CAAyB,EAAE,MAAc,EAAE,EAAE;YAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC;YACzB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7H,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClJ,OAAO,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;QACrS,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,MAAqB,EAAE,KAAa,EAAE,EAAE;YACrD,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;gBAChD,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC9C,IAAI,KAAK,EAAE,GAAG,QAAQ;wBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;gBACjE,CAAC;gBACD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;QACF,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5F,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1B,KAAK,MAAM,CAAC,IAAI,MAAM;gBAAE,IAAI,KAAK,EAAE,GAAG,QAAQ;oBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,KAAK,GAAG,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,GAAG,QAAQ,yBAAyB,CAAC,CAAC;QAClF,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;YAC7C,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5Q,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,MAAM,GAAG,EAAE,UAAU,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QACjF,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,qBAAqB,GAAG,CAAC,MAAM,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1L,MAAM,OAAO,GAAG,CAAC,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC1C,IAAI,OAAO,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3O,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CACL,CAAC;IAEF,uDAAuD;IACvD,MAAM,cAAc,GAAG;QACrB,SAAS,EAAE,eAAe;QAC1B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QAC9G,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;KAC1F,CAAC;IAEF,KAAK,UAAU,eAAe,CAAC,SAAiB,EAAE,UAAoB,EAAE,IAAa;QACnF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,OAAO,GAAY,IAAI,CAAC;QAC5B,IAAI,YAAY,GAAkB,IAAI,CAAC;QACvC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAClF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC,GAAG,YAAY,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChK,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACnE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAC1D,CAAC;IAED,SAAS,gBAAgB,CAAC,KAAqD;QAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1K,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,oGAAoG,CAAC,CAAC;QACtJ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,oCAAoC;QAC3C,WAAW,EACT,sSAAsS;QACxS,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACzD,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,CACxC,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAC5F,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG;YACZ,6BAA6B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpD,EAAE;YACF,gBAAgB;YAChB,GAAG,gBAAgB,CAAC,KAAK,CAAC;YAC1B,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iCAAiC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1H,EAAE;YACF,sBAAsB;YACtB,YAAY,CAAC,CAAC,CAAC,iBAAiB,YAAY,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO;YAClH,EAAE;YACF,kBAAkB;YAClB,aAAa,CAAC,KAAK,CAAC;SACrB,CAAC;QACF,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACnG,IAAI,KAAK,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,mBAAmB,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,MAAM,8CAA8C,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;QAClN,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,wFAAwF,SAAS,kBAAkB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnK,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EACT,+BAA+B,SAAS,KAAK,UAAU,mBAAmB,QAAQ,mBAAmB,eAAe,MAAM,UAAU,2PAA2P;QACjY,WAAW,EAAE,EAAE,GAAG,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC,EAAE;QACrJ,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAChD,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAC5G,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/F,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvN,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,YAAY,GAAkC,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACtE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;gBAAE,IAAI,CAAC,CAAC,OAAO,KAAK,sBAAsB,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;oBAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;QACtJ,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;QACD,MAAM,GAAG,GAAoB;YAC3B,SAAS;YACT,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI;YAClC,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,IAAI;YACtC,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE;YAC5B,YAAY;YACZ,OAAO;SACR,CAAC;QACF,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpI,MAAM,QAAQ,GAAG,MAAM,IAAI,uBAAuB,IAAI,IAAI,QAAQ,EAAE,CAAC;QACrE,qDAAqD;QACrD,MAAM,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAyB,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAa,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/W,MAAM,KAAK,GAA2B;YACpC,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC;YAC/C,CAAC,UAAU,CAAC,EAAE,YAAY;YAC1B,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC;YACjD,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC;SACzC,CAAC;QACF,IAAI,KAAK,CAAC,KAAK;YAAE,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEtD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjG,MAAM,KAAK,GAAG,cAAc,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAChE,MAAM,QAAQ,GAAG;YACf,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE;YACxB,mBAAmB,QAAQ,EAAE;YAC7B,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAqB,UAAU,iBAAiB,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/I,QAAQ,UAAU,EAAE;YACpB,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAClG,iBAAiB,UAAU,CAAC,oBAAoB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACtF,sBAAsB,QAAQ,EAAE;YAChC,wBAAwB,UAAU,CAAC,KAAK,CAAC,gBAAgB,QAAQ,EAAE;SACpE,CAAC;QACF,MAAM,KAAK,GAAG;YACZ,uBAAuB,IAAI,GAAG;YAC9B,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC5E,EAAE;YACF,YAAY;YACZ,aAAa,CAAC,KAAK,CAAC;YACpB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,0CAA0C,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1H,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,mCAAmC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,yDAAyD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5J,EAAE;YACF,+DAA+D;YAC/D,SAAS;YACT,GAAG,QAAQ;YACX,KAAK;YACL,EAAE;YACF,wGAAwG;YACxG,gEAAgE,SAAS,kBAAkB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,8GAA8G;SACpO,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CACL,CAAC;IAEF,4DAA4D;IAC5D,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,oCAAoC;QAC3C,WAAW,EAAE,8SAA8S;QAC3T,WAAW,EAAE;YACX,SAAS,EAAE,eAAe;YAC1B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;YAC/C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACjD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;SACvD;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KACzG,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CACnD,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACpC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,CAAqE,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1J,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;gBACrE,IAAI,CAAC,KAAK,CAAC,MAAM;oBAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,KAAK,MAAM,CAAC,IAAI,KAAK;oBAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACxK,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAA0B,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzI,MAAM,CAAC,GAAG,MAAkE,CAAC;QAC7E,OAAO,IAAI,CACT,OAAO,CAAC,MAAM,CAAC,EACf;YACE,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,IAAI,YAAY;YACzF,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACpE,wBAAwB,SAAS,qJAAqJ;SACvL,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7B,CAAC;IACJ,CAAC,CAAC,CACL,CAAC;IAEF,8CAA8C;IAC9C,MAAM,CAAC,cAAc,CACnB,wBAAwB,EACxB;QACE,KAAK,EAAE,2CAA2C;QAClD,WAAW,EAAE,+TAA+T;QAC5U,UAAU,EAAE;YACV,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+FAA+F,CAAC;YAC1I,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;YAC7F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YACvE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YAC9E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;SAC3G;KACF,EACD,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;KAC1J,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAgG,EAAE,QAAgB;IAC5J,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,wFAAwF,CAAC;IACxJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAClE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClN,OAAO,6DAA6D,IAAI,kBAAkB,QAAQ,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;qLAwByC,CAAC;AACtL,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/infra/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /** Parâmetros de entrada comuns às ferramentas tracker_* (o mesmo texto em todas). */
2
+ import { z } from 'zod';
3
+ export declare const rangeSchema: z.ZodDefault<z.ZodEnum<{
4
+ "15m": "15m";
5
+ "1h": "1h";
6
+ "6h": "6h";
7
+ "24h": "24h";
8
+ "7d": "7d";
9
+ "30d": "30d";
10
+ }>>;
11
+ export declare const projectIdSchema: z.ZodString;
12
+ export declare const rootKindSchema: z.ZodOptional<z.ZodEnum<{
13
+ custom: "custom";
14
+ http: "http";
15
+ browser: "browser";
16
+ all: "all";
17
+ }>>;
18
+ export declare const serviceFilterSchema: z.ZodOptional<z.ZodString>;
19
+ export declare const envFilterSchema: z.ZodOptional<z.ZodString>;
20
+ /** Instante ISO 8601 com fuso (`2026-10-15T09:00:00Z`, `2026-10-15T06:00:00-03:00`). */
21
+ export declare const isoInstantSchema: z.ZodString;
22
+ /** `from`/`to` absolutos das leituras de métricas (a API aceita até 31 dias; `range` vale quando falta `from`). */
23
+ export declare const fromSchema: z.ZodOptional<z.ZodString>;
24
+ export declare const toSchema: z.ZodOptional<z.ZodString>;
25
+ /** Descreve os filtros de raiz aplicados, para as mensagens de resumo. */
26
+ export declare function filterNote(filters: {
27
+ rootKind?: string;
28
+ service?: string;
29
+ env?: string;
30
+ }): string;
31
+ /** Filtros de raiz informados (sem as chaves ausentes), para o `structuredContent`. */
32
+ export declare function definedFilters(filters: {
33
+ rootKind?: string;
34
+ service?: string;
35
+ env?: string;
36
+ }): {
37
+ rootKind?: string;
38
+ service?: string;
39
+ env?: string;
40
+ };
package/dist/inputs.js ADDED
@@ -0,0 +1,30 @@
1
+ /** Parâmetros de entrada comuns às ferramentas tracker_* (o mesmo texto em todas). */
2
+ import { z } from 'zod';
3
+ import { RANGE_KEYS } from './client.js';
4
+ export const rangeSchema = z.enum(RANGE_KEYS).default('24h').describe('Janela: 15m|1h|6h|24h|7d|30d (default 24h)');
5
+ export const projectIdSchema = z.string().uuid().describe('ID (uuid) do projeto — veja tracker_list_projects');
6
+ export const rootKindSchema = z
7
+ .enum(['http', 'custom', 'browser', 'all'])
8
+ .optional()
9
+ .describe('Tipo da raiz: http = requisições (default), custom = jobs/tarefas (tracker.span("custom", ...) sem pai), browser = raízes do SDK de navegador, all = qualquer raiz');
10
+ export const serviceFilterSchema = z.string().min(1).max(120).optional().describe('Só execuções deste serviço (serviceName da raiz, igualdade exata; valores em `services` de tracker_get_overview)');
11
+ export const envFilterSchema = z.string().min(1).max(64).optional().describe('Só execuções deste ambiente (environment da raiz, igualdade exata; valores em tracker_list_environments)');
12
+ /** Instante ISO 8601 com fuso (`2026-10-15T09:00:00Z`, `2026-10-15T06:00:00-03:00`). */
13
+ export const isoInstantSchema = z.string().datetime({ offset: true });
14
+ /** `from`/`to` absolutos das leituras de métricas (a API aceita até 31 dias; `range` vale quando falta `from`). */
15
+ export const fromSchema = isoInstantSchema.optional().describe('Início absoluto ISO 8601 (ex.: 2026-10-15T09:00:00Z); com from/to o range só vale quando falta from. Até 31 dias');
16
+ export const toSchema = isoInstantSchema.optional().describe('Fim absoluto ISO 8601 (default agora)');
17
+ /** Descreve os filtros de raiz aplicados, para as mensagens de resumo. */
18
+ export function filterNote(filters) {
19
+ const parts = [
20
+ filters.rootKind && filters.rootKind !== 'http' ? `rootKind ${filters.rootKind}` : '',
21
+ filters.service ? `service ${filters.service}` : '',
22
+ filters.env ? `env ${filters.env}` : '',
23
+ ].filter(Boolean);
24
+ return parts.length ? ` (${parts.join(', ')})` : '';
25
+ }
26
+ /** Filtros de raiz informados (sem as chaves ausentes), para o `structuredContent`. */
27
+ export function definedFilters(filters) {
28
+ return Object.fromEntries(Object.entries(filters).filter(([, value]) => value !== undefined));
29
+ }
30
+ //# sourceMappingURL=inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputs.js","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAExD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,UAAuC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC,CAAC;AACjJ,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC,CAAC;AAC/G,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;KAC1C,QAAQ,EAAE;KACV,QAAQ,CAAC,oKAAoK,CAAC,CAAC;AAClL,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kHAAkH,CAAC,CAAC;AACtM,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0GAA0G,CAAC,CAAC;AAEzL,wFAAwF;AACxF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtE,mHAAmH;AACnH,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kHAAkH,CAAC,CAAC;AACnL,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC;AAEtG,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,OAA8D;IACvF,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;QACrF,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;QACnD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;KACxC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,cAAc,CAAC,OAA8D;IAC3F,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAA0D,CAAC;AACzJ,CAAC"}