@andrebuzeli/git-mcp 2.13.0 → 2.14.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 (60) hide show
  1. package/dist/server.js +29 -29
  2. package/dist/server.js.map +1 -1
  3. package/dist/tools/gh-actions.d.ts +272 -0
  4. package/dist/tools/gh-actions.d.ts.map +1 -0
  5. package/dist/tools/gh-actions.js +479 -0
  6. package/dist/tools/gh-actions.js.map +1 -0
  7. package/dist/tools/gh-analytics.d.ts +326 -0
  8. package/dist/tools/gh-analytics.d.ts.map +1 -0
  9. package/dist/tools/gh-analytics.js +524 -0
  10. package/dist/tools/gh-analytics.js.map +1 -0
  11. package/dist/tools/gh-code-review.d.ts +323 -0
  12. package/dist/tools/gh-code-review.d.ts.map +1 -0
  13. package/dist/tools/gh-code-review.js +577 -0
  14. package/dist/tools/gh-code-review.js.map +1 -0
  15. package/dist/tools/gh-deployments.d.ts +319 -0
  16. package/dist/tools/gh-deployments.d.ts.map +1 -0
  17. package/dist/tools/gh-deployments.js +384 -0
  18. package/dist/tools/gh-deployments.js.map +1 -0
  19. package/dist/tools/gh-gists.d.ts +6 -6
  20. package/dist/tools/gh-security.d.ts +341 -0
  21. package/dist/tools/gh-security.d.ts.map +1 -0
  22. package/dist/tools/gh-security.js +427 -0
  23. package/dist/tools/gh-security.js.map +1 -0
  24. package/dist/tools/gh-workflows.d.ts +313 -0
  25. package/dist/tools/gh-workflows.d.ts.map +1 -0
  26. package/dist/tools/gh-workflows.js +462 -0
  27. package/dist/tools/gh-workflows.js.map +1 -0
  28. package/dist/tools/git-branches.d.ts +438 -0
  29. package/dist/tools/git-branches.d.ts.map +1 -0
  30. package/dist/tools/git-branches.js +525 -0
  31. package/dist/tools/git-branches.js.map +1 -0
  32. package/dist/tools/git-commits.d.ts +497 -0
  33. package/dist/tools/git-commits.d.ts.map +1 -0
  34. package/dist/tools/git-commits.js +626 -0
  35. package/dist/tools/git-commits.js.map +1 -0
  36. package/dist/tools/git-files.d.ts +463 -0
  37. package/dist/tools/git-files.d.ts.map +1 -0
  38. package/dist/tools/git-files.js +555 -0
  39. package/dist/tools/git-files.js.map +1 -0
  40. package/dist/tools/git-issues.d.ts +579 -0
  41. package/dist/tools/git-issues.d.ts.map +1 -0
  42. package/dist/tools/git-issues.js +694 -0
  43. package/dist/tools/git-issues.js.map +1 -0
  44. package/dist/tools/git-pulls.d.ts +702 -0
  45. package/dist/tools/git-pulls.d.ts.map +1 -0
  46. package/dist/tools/git-pulls.js +733 -0
  47. package/dist/tools/git-pulls.js.map +1 -0
  48. package/dist/tools/git-releases.d.ts +495 -0
  49. package/dist/tools/git-releases.d.ts.map +1 -0
  50. package/dist/tools/git-releases.js +552 -0
  51. package/dist/tools/git-releases.js.map +1 -0
  52. package/dist/tools/git-tags.d.ts +419 -0
  53. package/dist/tools/git-tags.d.ts.map +1 -0
  54. package/dist/tools/git-tags.js +480 -0
  55. package/dist/tools/git-tags.js.map +1 -0
  56. package/dist/tools/git-webhooks.d.ts +490 -0
  57. package/dist/tools/git-webhooks.d.ts.map +1 -0
  58. package/dist/tools/git-webhooks.js +556 -0
  59. package/dist/tools/git-webhooks.js.map +1 -0
  60. package/package.json +2 -2
@@ -0,0 +1,479 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.actionsTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const index_js_1 = require("../providers/index.js");
6
+ const user_detection_js_1 = require("../utils/user-detection.js");
7
+ const validator_js_1 = require("./validator.js");
8
+ /**
9
+ * Tool: actions
10
+ *
11
+ * DESCRIÇÃO:
12
+ * Gerenciamento completo de GitHub Actions com múltiplas ações
13
+ *
14
+ * FUNCIONALIDADES:
15
+ * - Listagem de execuções de actions
16
+ * - Cancelamento de execuções
17
+ * - Re-execução de actions falhadas
18
+ * - Gerenciamento de artefatos
19
+ * - Gerenciamento de secrets (read-only)
20
+ * - Monitoramento de jobs
21
+ *
22
+ * USO:
23
+ * - Para monitorar execuções de CI/CD
24
+ * - Para gerenciar artefatos de build
25
+ * - Para troubleshooting de falhas
26
+ * - Para automação de re-execuções
27
+ *
28
+ * RECOMENDAÇÕES:
29
+ * - Monitore execuções regularmente
30
+ * - Limpe artefatos antigos
31
+ * - Use re-execução apenas quando necessário
32
+ * - Mantenha secrets seguros
33
+ */
34
+ /**
35
+ * Schema de validação para entrada da tool actions
36
+ */
37
+ const ActionsInputSchema = zod_1.z.object({
38
+ action: zod_1.z.enum(['list-runs', 'cancel', 'rerun', 'artifacts', 'secrets', 'jobs', 'download-artifact']),
39
+ // Parâmetros comuns
40
+ owner: validator_js_1.CommonSchemas.owner,
41
+ repo: validator_js_1.CommonSchemas.repo,
42
+ provider: validator_js_1.CommonSchemas.provider,
43
+ // Parâmetros para listagem
44
+ page: validator_js_1.CommonSchemas.page,
45
+ limit: validator_js_1.CommonSchemas.limit,
46
+ // Parâmetros para runs
47
+ run_id: validator_js_1.CommonSchemas.shortString,
48
+ workflow_id: validator_js_1.CommonSchemas.shortString,
49
+ status: zod_1.z.enum(['queued', 'in_progress', 'completed', 'cancelled', 'failure', 'success']).optional(),
50
+ branch: validator_js_1.CommonSchemas.branch,
51
+ event: validator_js_1.CommonSchemas.shortString,
52
+ // Parâmetros para jobs
53
+ job_id: validator_js_1.CommonSchemas.shortString,
54
+ // Parâmetros para artefatos
55
+ artifact_id: validator_js_1.CommonSchemas.shortString,
56
+ artifact_name: validator_js_1.CommonSchemas.shortString,
57
+ download_path: validator_js_1.CommonSchemas.mediumString,
58
+ // Parâmetros para secrets
59
+ secret_name: validator_js_1.CommonSchemas.shortString,
60
+ // Filtros de data
61
+ created_after: zod_1.z.string().optional(),
62
+ created_before: zod_1.z.string().optional()
63
+ }).refine((data) => {
64
+ // Validações específicas por ação
65
+ if (['cancel', 'rerun', 'jobs'].includes(data.action)) {
66
+ return data.owner && data.repo && data.run_id;
67
+ }
68
+ if (['download-artifact'].includes(data.action)) {
69
+ return data.owner && data.repo && (data.artifact_id || data.artifact_name);
70
+ }
71
+ return data.owner && data.repo;
72
+ }, {
73
+ message: "Parâmetros obrigatórios não fornecidos para a ação especificada"
74
+ });
75
+ /**
76
+ * Schema de validação para resultado da tool actions
77
+ */
78
+ const ActionsResultSchema = zod_1.z.object({
79
+ success: zod_1.z.boolean(),
80
+ action: zod_1.z.string(),
81
+ message: zod_1.z.string(),
82
+ data: zod_1.z.any().optional(),
83
+ error: zod_1.z.string().optional()
84
+ });
85
+ /**
86
+ * Implementação da tool actions
87
+ */
88
+ exports.actionsTool = {
89
+ name: 'gh-actions',
90
+ description: 'Gerenciamento completo de GitHub Actions runs (EXCLUSIVO GITHUB). PARÂMETROS OBRIGATÓRIOS: action, owner, repo, provider (deve ser github). AÇÕES: list-runs (lista execuções), cancel (cancela), rerun (re-executa), artifacts (artefatos), secrets (lista secrets), jobs (lista jobs), download-artifact (baixa artefato). Boas práticas: monitore execuções regularmente, limpe artefatos antigos, use re-execução apenas quando necessário.',
91
+ inputSchema: {
92
+ type: 'object',
93
+ properties: {
94
+ action: {
95
+ type: 'string',
96
+ enum: ['list-runs', 'cancel', 'rerun', 'artifacts', 'secrets', 'jobs', 'download-artifact'],
97
+ description: 'Ação a executar: list-runs (lista execuções), cancel (cancela), rerun (re-executa), artifacts (artefatos), secrets (lista secrets), jobs (lista jobs), download-artifact (baixa artefato)'
98
+ },
99
+ owner: {
100
+ type: 'string',
101
+ description: 'Proprietário do repositório (OBRIGATÓRIO para todas as ações)'
102
+ },
103
+ repo: {
104
+ type: 'string',
105
+ description: 'Nome do repositório (OBRIGATÓRIO para todas as ações)'
106
+ },
107
+ provider: {
108
+ type: 'string',
109
+ description: 'Provider específico (github, gitea) ou usa padrão'
110
+ },
111
+ run_id: {
112
+ type: 'string',
113
+ description: 'ID da execução do workflow (OBRIGATÓRIO para cancel, rerun, jobs)'
114
+ },
115
+ workflow_id: {
116
+ type: 'string',
117
+ description: 'ID do workflow (OPCIONAL para list-runs)'
118
+ },
119
+ status: {
120
+ type: 'string',
121
+ enum: ['queued', 'in_progress', 'completed', 'cancelled', 'failure', 'success'],
122
+ description: 'Status da execução para filtrar (OPCIONAL para list-runs)'
123
+ },
124
+ branch: {
125
+ type: 'string',
126
+ description: 'Branch para filtrar execuções (OPCIONAL para list-runs)'
127
+ },
128
+ event: {
129
+ type: 'string',
130
+ description: 'Evento que disparou a execução (OPCIONAL para list-runs)'
131
+ },
132
+ job_id: {
133
+ type: 'string',
134
+ description: 'ID do job específico (OBRIGATÓRIO para jobs)'
135
+ },
136
+ artifact_id: {
137
+ type: 'string',
138
+ description: 'ID do artefato (OBRIGATÓRIO para download-artifact se não usar artifact_name)'
139
+ },
140
+ artifact_name: {
141
+ type: 'string',
142
+ description: 'Nome do artefato (OBRIGATÓRIO para download-artifact se não usar artifact_id)'
143
+ },
144
+ download_path: {
145
+ type: 'string',
146
+ description: 'Caminho local para salvar o artefato (OBRIGATÓRIO para download-artifact)'
147
+ },
148
+ secret_name: {
149
+ type: 'string',
150
+ description: 'Nome do secret específico (OPCIONAL para secrets)'
151
+ },
152
+ created_after: {
153
+ type: 'string',
154
+ description: 'Filtrar execuções criadas após esta data (OPCIONAL para list-runs)'
155
+ },
156
+ created_before: {
157
+ type: 'string',
158
+ description: 'Filtrar execuções criadas antes desta data (OPCIONAL para list-runs)'
159
+ },
160
+ page: {
161
+ type: 'number',
162
+ description: 'Página da listagem (mínimo: 1, padrão: 1)',
163
+ minimum: 1
164
+ },
165
+ limit: {
166
+ type: 'number',
167
+ description: 'Itens por página (mínimo: 1, máximo: 100, padrão: 30)',
168
+ minimum: 1,
169
+ maximum: 100
170
+ }
171
+ },
172
+ required: ['action', 'owner', 'repo', 'provider']
173
+ },
174
+ async handler(input) {
175
+ try {
176
+ const validatedInput = ActionsInputSchema.parse(input);
177
+ // Aplicar auto-detecção de usuário
178
+ const updatedParams = await (0, user_detection_js_1.applyAutoUserDetection)(validatedInput, validatedInput.provider);
179
+ const provider = updatedParams.provider
180
+ ? index_js_1.globalProviderFactory.getProvider(updatedParams.provider)
181
+ : index_js_1.globalProviderFactory.getDefaultProvider();
182
+ if (!provider) {
183
+ throw new Error(`Provider '${updatedParams.provider}' não encontrado`);
184
+ }
185
+ switch (updatedParams.action) {
186
+ case 'list-runs':
187
+ return await this.listRuns(updatedParams, provider);
188
+ case 'cancel':
189
+ return await this.cancelRun(updatedParams, provider);
190
+ case 'rerun':
191
+ return await this.rerunWorkflow(updatedParams, provider);
192
+ case 'artifacts':
193
+ return await this.listArtifacts(updatedParams, provider);
194
+ case 'secrets':
195
+ return await this.listSecrets(updatedParams, provider);
196
+ case 'jobs':
197
+ return await this.listJobs(updatedParams, provider);
198
+ case 'download-artifact':
199
+ return await this.downloadArtifact(updatedParams, provider);
200
+ default:
201
+ throw new Error(`Ação não suportada: ${updatedParams.action}`);
202
+ }
203
+ }
204
+ catch (error) {
205
+ return {
206
+ success: false,
207
+ action: input.action || 'unknown',
208
+ message: 'Erro na operação de actions',
209
+ error: error instanceof Error ? error.message : String(error)
210
+ };
211
+ }
212
+ },
213
+ /**
214
+ * Lista execuções de workflows
215
+ */
216
+ async listRuns(params, provider) {
217
+ try {
218
+ // Auto-detecção de owner/username se não fornecidos
219
+ let updatedParams = { ...params };
220
+ if (!updatedParams.owner) {
221
+ try {
222
+ const currentUser = await provider.getCurrentUser();
223
+ updatedParams.owner = currentUser.login;
224
+ }
225
+ catch (error) {
226
+ console.warn('[ACTIONS.TS] Falha na auto-detecção de usuário');
227
+ }
228
+ }
229
+ if (!provider.listWorkflowRuns) {
230
+ return {
231
+ success: true,
232
+ action: 'list-runs',
233
+ message: 'Funcionalidade de workflow runs não suportada por este provider',
234
+ data: {
235
+ total_count: 0,
236
+ workflow_runs: [],
237
+ note: 'Workflow runs não disponíveis neste provider'
238
+ }
239
+ };
240
+ }
241
+ const result = await provider.listWorkflowRuns({
242
+ owner: params.owner,
243
+ repo: params.repo,
244
+ workflow_id: params.workflow_id,
245
+ status: params.status,
246
+ branch: params.branch,
247
+ event: params.event,
248
+ created_after: params.created_after,
249
+ created_before: params.created_before,
250
+ page: params.page,
251
+ limit: params.limit
252
+ });
253
+ return {
254
+ success: true,
255
+ action: 'list-runs',
256
+ message: `${result.runs?.length || 0} execuções encontradas`,
257
+ data: result
258
+ };
259
+ }
260
+ catch (error) {
261
+ throw new Error(`Falha ao listar execuções: ${error}`);
262
+ }
263
+ },
264
+ /**
265
+ * Cancela execução de workflow
266
+ */
267
+ async cancelRun(params, provider) {
268
+ try {
269
+ if (!provider.cancelWorkflowRun) {
270
+ return {
271
+ success: false,
272
+ action: 'cancel',
273
+ message: 'Funcionalidade não suportada por este provider',
274
+ error: 'Provider não implementa cancelWorkflowRun'
275
+ };
276
+ }
277
+ const result = await provider.cancelWorkflowRun({
278
+ owner: params.owner,
279
+ repo: params.repo,
280
+ run_id: params.run_id
281
+ });
282
+ return {
283
+ success: true,
284
+ action: 'cancel',
285
+ message: `Execução cancelada com sucesso`,
286
+ data: result
287
+ };
288
+ }
289
+ catch (error) {
290
+ throw new Error(`Falha ao cancelar execução: ${error}`);
291
+ }
292
+ },
293
+ /**
294
+ * Re-executa workflow
295
+ */
296
+ async rerunWorkflow(params, provider) {
297
+ try {
298
+ if (!provider.rerunWorkflow) {
299
+ return {
300
+ success: false,
301
+ action: 'rerun-workflow',
302
+ message: 'Funcionalidade não suportada por este provider',
303
+ error: 'Provider não implementa rerunWorkflow'
304
+ };
305
+ }
306
+ const result = await provider.rerunWorkflow({
307
+ owner: params.owner,
308
+ repo: params.repo,
309
+ run_id: params.run_id
310
+ });
311
+ return {
312
+ success: true,
313
+ action: 'rerun',
314
+ message: `Workflow re-executado com sucesso`,
315
+ data: result
316
+ };
317
+ }
318
+ catch (error) {
319
+ throw new Error(`Falha ao re-executar workflow: ${error}`);
320
+ }
321
+ },
322
+ /**
323
+ * Lista artefatos
324
+ */
325
+ async listArtifacts(params, provider) {
326
+ try {
327
+ // Auto-detecção de owner/username se não fornecidos
328
+ let updatedParams = { ...params };
329
+ if (!updatedParams.owner) {
330
+ try {
331
+ const currentUser = await provider.getCurrentUser();
332
+ updatedParams.owner = currentUser.login;
333
+ }
334
+ catch (error) {
335
+ console.warn('[ACTIONS.TS] Falha na auto-detecção de usuário');
336
+ }
337
+ }
338
+ if (!provider.listArtifacts) {
339
+ return {
340
+ success: false,
341
+ action: 'list-artifacts',
342
+ message: 'Funcionalidade não suportada por este provider',
343
+ error: 'Provider não implementa listArtifacts'
344
+ };
345
+ }
346
+ const result = await provider.listArtifacts({
347
+ owner: params.owner,
348
+ repo: params.repo,
349
+ run_id: params.run_id,
350
+ page: params.page,
351
+ limit: params.limit
352
+ });
353
+ return {
354
+ success: true,
355
+ action: 'artifacts',
356
+ message: `${result.artifacts?.length || 0} artefatos encontrados`,
357
+ data: result
358
+ };
359
+ }
360
+ catch (error) {
361
+ throw new Error(`Falha ao listar artefatos: ${error}`);
362
+ }
363
+ },
364
+ /**
365
+ * Lista secrets (read-only)
366
+ */
367
+ async listSecrets(params, provider) {
368
+ try {
369
+ // Auto-detecção de owner/username se não fornecidos
370
+ let updatedParams = { ...params };
371
+ if (!updatedParams.owner) {
372
+ try {
373
+ const currentUser = await provider.getCurrentUser();
374
+ updatedParams.owner = currentUser.login;
375
+ }
376
+ catch (error) {
377
+ console.warn('[ACTIONS.TS] Falha na auto-detecção de usuário');
378
+ }
379
+ }
380
+ if (!provider.listSecrets) {
381
+ return {
382
+ success: false,
383
+ action: 'list-secrets',
384
+ message: 'Funcionalidade não suportada por este provider',
385
+ error: 'Provider não implementa listSecrets'
386
+ };
387
+ }
388
+ const result = await provider.listSecrets({
389
+ owner: params.owner,
390
+ repo: params.repo,
391
+ page: params.page,
392
+ limit: params.limit
393
+ });
394
+ return {
395
+ success: true,
396
+ action: 'secrets',
397
+ message: `${result.secrets?.length || 0} secrets encontrados`,
398
+ data: result
399
+ };
400
+ }
401
+ catch (error) {
402
+ throw new Error(`Falha ao listar secrets: ${error}`);
403
+ }
404
+ },
405
+ /**
406
+ * Lista jobs de uma execução
407
+ */
408
+ async listJobs(params, provider) {
409
+ try {
410
+ // Auto-detecção de owner/username se não fornecidos
411
+ let updatedParams = { ...params };
412
+ if (!updatedParams.owner) {
413
+ try {
414
+ const currentUser = await provider.getCurrentUser();
415
+ updatedParams.owner = currentUser.login;
416
+ }
417
+ catch (error) {
418
+ console.warn('[ACTIONS.TS] Falha na auto-detecção de usuário');
419
+ }
420
+ }
421
+ if (!provider.listJobs) {
422
+ return {
423
+ success: false,
424
+ action: 'list-jobs',
425
+ message: 'Funcionalidade não suportada por este provider',
426
+ error: 'Provider não implementa listJobs'
427
+ };
428
+ }
429
+ const result = await provider.listJobs({
430
+ owner: params.owner,
431
+ repo: params.repo,
432
+ run_id: params.run_id,
433
+ page: params.page,
434
+ limit: params.limit
435
+ });
436
+ return {
437
+ success: true,
438
+ action: 'jobs',
439
+ message: `${result.jobs?.length || 0} jobs encontrados`,
440
+ data: result
441
+ };
442
+ }
443
+ catch (error) {
444
+ throw new Error(`Falha ao listar jobs: ${error}`);
445
+ }
446
+ },
447
+ /**
448
+ * Baixa artefato
449
+ */
450
+ async downloadArtifact(params, provider) {
451
+ try {
452
+ if (!provider.downloadArtifact) {
453
+ return {
454
+ success: false,
455
+ action: 'download-artifact',
456
+ message: 'Funcionalidade não suportada por este provider',
457
+ error: 'Provider não implementa downloadArtifact'
458
+ };
459
+ }
460
+ const result = await provider.downloadArtifact({
461
+ owner: params.owner,
462
+ repo: params.repo,
463
+ artifact_id: params.artifact_id,
464
+ artifact_name: params.artifact_name,
465
+ download_path: params.download_path
466
+ });
467
+ return {
468
+ success: true,
469
+ action: 'download-artifact',
470
+ message: `Artefato baixado com sucesso`,
471
+ data: result
472
+ };
473
+ }
474
+ catch (error) {
475
+ throw new Error(`Falha ao baixar artefato: ${error}`);
476
+ }
477
+ }
478
+ };
479
+ //# sourceMappingURL=gh-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gh-actions.js","sourceRoot":"","sources":["../../src/tools/gh-actions.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,oDAA6E;AAC7E,kEAAoE;AACpE,iDAA2E;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;GAEG;AACH,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAErG,oBAAoB;IACpB,KAAK,EAAE,4BAAa,CAAC,KAAK;IAC1B,IAAI,EAAE,4BAAa,CAAC,IAAI;IACxB,QAAQ,EAAE,4BAAa,CAAC,QAAQ;IAEhC,2BAA2B;IAC3B,IAAI,EAAE,4BAAa,CAAC,IAAI;IACxB,KAAK,EAAE,4BAAa,CAAC,KAAK;IAE1B,uBAAuB;IACvB,MAAM,EAAE,4BAAa,CAAC,WAAW;IACjC,WAAW,EAAE,4BAAa,CAAC,WAAW;IACtC,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpG,MAAM,EAAE,4BAAa,CAAC,MAAM;IAC5B,KAAK,EAAE,4BAAa,CAAC,WAAW;IAEhC,uBAAuB;IACvB,MAAM,EAAE,4BAAa,CAAC,WAAW;IAEjC,4BAA4B;IAC5B,WAAW,EAAE,4BAAa,CAAC,WAAW;IACtC,aAAa,EAAE,4BAAa,CAAC,WAAW;IACxC,aAAa,EAAE,4BAAa,CAAC,YAAY;IAEzC,0BAA0B;IAC1B,WAAW,EAAE,4BAAa,CAAC,WAAW;IAEtC,kBAAkB;IAClB,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IACjB,kCAAkC;IAClC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;IAChD,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC,EAAE;IACD,OAAO,EAAE,iEAAiE;CAC3E,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;IACpB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,OAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACxB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAIH;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,ibAAib;IAC9b,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,mBAAmB,CAAC;gBAC3F,WAAW,EAAE,2LAA2L;aACzM;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+DAA+D;aAC7E;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uDAAuD;aACrE;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mDAAmD;aACjE;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mEAAmE;aACjF;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0CAA0C;aACxD;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;gBAC/E,WAAW,EAAE,2DAA2D;aACzE;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yDAAyD;aACvE;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0DAA0D;aACxE;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC5D;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+EAA+E;aAC7F;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+EAA+E;aAC7F;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2EAA2E;aACzF;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mDAAmD;aACjE;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oEAAoE;aAClF;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sEAAsE;aACpF;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2CAA2C;gBACxD,OAAO,EAAE,CAAC;aACX;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uDAAuD;gBACpE,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,GAAG;aACb;SACF;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC;KAClD;IAED,KAAK,CAAC,OAAO,CAAC,KAAmB;QAC/B,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEvD,mCAAmC;YACnC,MAAM,aAAa,GAAG,MAAM,IAAA,0CAAsB,EAAC,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC5F,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ;gBAErC,CAAC,CAAC,gCAAqB,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC;gBAE3D,CAAC,CAAC,gCAAqB,CAAC,kBAAkB,EAAE,CAAC;YAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,aAAa,aAAa,CAAC,QAAQ,kBAAkB,CAAC,CAAC;YACzE,CAAC;YAED,QAAQ,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC7B,KAAK,WAAW;oBACd,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;gBACtD,KAAK,QAAQ;oBACX,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;gBACvD,KAAK,OAAO;oBACV,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;gBAC3D,KAAK,WAAW;oBACd,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;gBAC3D,KAAK,SAAS;oBACZ,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;gBACzD,KAAK,MAAM;oBACT,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;gBACtD,KAAK,mBAAmB;oBACtB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;gBAC9D;oBACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS;gBACjC,OAAO,EAAE,6BAA6B;gBACtC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAoB,EAAE,QAAuB;QAC1D,IAAI,CAAC;YACH,oDAAoD;YACpD,IAAI,aAAa,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;oBACpD,aAAa,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;gBAC1C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YAGD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBAC/B,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,iEAAiE;oBAC1E,IAAI,EAAE;wBACJ,WAAW,EAAE,CAAC;wBACd,aAAa,EAAE,EAAE;wBACjB,IAAI,EAAE,8CAA8C;qBACrD;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC;gBAC7C,KAAK,EAAE,MAAM,CAAC,KAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAK;gBAClB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,wBAAwB;gBAC5D,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAAoB,EAAE,QAAuB;QAC3D,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;gBAChC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,gDAAgD;oBACzD,KAAK,EAAE,2CAA2C;iBACnD,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC;gBAC9C,KAAK,EAAE,MAAM,CAAC,KAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAK;gBAClB,MAAM,EAAE,MAAM,CAAC,MAAO;aACvB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,gCAAgC;gBACzC,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,MAAoB,EAAE,QAAuB;QAC/D,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAC5B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,gBAAgB;oBACxB,OAAO,EAAE,gDAAgD;oBACzD,KAAK,EAAE,uCAAuC;iBAC/C,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC;gBAC1C,KAAK,EAAE,MAAM,CAAC,KAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAK;gBAClB,MAAM,EAAE,MAAM,CAAC,MAAO;aACvB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,mCAAmC;gBAC5C,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,MAAoB,EAAE,QAAuB;QAC/D,IAAI,CAAC;YACH,oDAAoD;YACpD,IAAI,aAAa,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;oBACpD,aAAa,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;gBAC1C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YAGD,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAC5B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,gBAAgB;oBACxB,OAAO,EAAE,gDAAgD;oBACzD,KAAK,EAAE,uCAAuC;iBAC/C,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC;gBAC1C,KAAK,EAAE,MAAM,CAAC,KAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAK;gBAClB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,wBAAwB;gBACjE,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,MAAoB,EAAE,QAAuB;QAC7D,IAAI,CAAC;YACH,oDAAoD;YACpD,IAAI,aAAa,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;oBACpD,aAAa,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;gBAC1C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YAGD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,cAAc;oBACtB,OAAO,EAAE,gDAAgD;oBACzD,KAAK,EAAE,qCAAqC;iBAC7C,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC;gBACxC,KAAK,EAAE,MAAM,CAAC,KAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAK;gBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,sBAAsB;gBAC7D,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAoB,EAAE,QAAuB;QAC1D,IAAI,CAAC;YACH,oDAAoD;YACpD,IAAI,aAAa,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;oBACpD,aAAa,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;gBAC1C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YAGD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACvB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,gDAAgD;oBACzD,KAAK,EAAE,kCAAkC;iBAC1C,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;gBACrC,KAAK,EAAE,MAAM,CAAC,KAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAK;gBAClB,MAAM,EAAE,MAAM,CAAC,MAAO;gBACtB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,mBAAmB;gBACvD,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAoB,EAAE,QAAuB;QAClE,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBAC/B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,mBAAmB;oBAC3B,OAAO,EAAE,gDAAgD;oBACzD,KAAK,EAAE,0CAA0C;iBAClD,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC;gBAC7C,KAAK,EAAE,MAAM,CAAC,KAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAK;gBAClB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,aAAa,EAAE,MAAM,CAAC,aAAa;aACpC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,mBAAmB;gBAC3B,OAAO,EAAE,8BAA8B;gBACvC,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF,CAAC"}