@andrebuzeli/git-mcp 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/README.md +346 -0
  2. package/dist/client.d.ts +307 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +299 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/config.d.ts +299 -0
  7. package/dist/config.d.ts.map +1 -0
  8. package/dist/config.js +381 -0
  9. package/dist/config.js.map +1 -0
  10. package/dist/index.d.ts +22 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +53 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/providers/base-provider.d.ts +139 -0
  15. package/dist/providers/base-provider.d.ts.map +1 -0
  16. package/dist/providers/base-provider.js +246 -0
  17. package/dist/providers/base-provider.js.map +1 -0
  18. package/dist/providers/error-handler.d.ts +51 -0
  19. package/dist/providers/error-handler.d.ts.map +1 -0
  20. package/dist/providers/error-handler.js +170 -0
  21. package/dist/providers/error-handler.js.map +1 -0
  22. package/dist/providers/gitea-provider.d.ts +68 -0
  23. package/dist/providers/gitea-provider.d.ts.map +1 -0
  24. package/dist/providers/gitea-provider.js +515 -0
  25. package/dist/providers/gitea-provider.js.map +1 -0
  26. package/dist/providers/github-provider.d.ts +68 -0
  27. package/dist/providers/github-provider.d.ts.map +1 -0
  28. package/dist/providers/github-provider.js +518 -0
  29. package/dist/providers/github-provider.js.map +1 -0
  30. package/dist/providers/index.d.ts +13 -0
  31. package/dist/providers/index.d.ts.map +1 -0
  32. package/dist/providers/index.js +41 -0
  33. package/dist/providers/index.js.map +1 -0
  34. package/dist/providers/provider-factory.d.ts +75 -0
  35. package/dist/providers/provider-factory.d.ts.map +1 -0
  36. package/dist/providers/provider-factory.js +298 -0
  37. package/dist/providers/provider-factory.js.map +1 -0
  38. package/dist/providers/types.d.ts +276 -0
  39. package/dist/providers/types.d.ts.map +1 -0
  40. package/dist/providers/types.js +7 -0
  41. package/dist/providers/types.js.map +1 -0
  42. package/dist/server.d.ts +77 -0
  43. package/dist/server.d.ts.map +1 -0
  44. package/dist/server.js +262 -0
  45. package/dist/server.js.map +1 -0
  46. package/dist/tools/actions.d.ts +272 -0
  47. package/dist/tools/actions.d.ts.map +1 -0
  48. package/dist/tools/actions.js +428 -0
  49. package/dist/tools/actions.js.map +1 -0
  50. package/dist/tools/analytics.d.ts +326 -0
  51. package/dist/tools/analytics.d.ts.map +1 -0
  52. package/dist/tools/analytics.js +473 -0
  53. package/dist/tools/analytics.js.map +1 -0
  54. package/dist/tools/branches.d.ts +461 -0
  55. package/dist/tools/branches.d.ts.map +1 -0
  56. package/dist/tools/branches.js +525 -0
  57. package/dist/tools/branches.js.map +1 -0
  58. package/dist/tools/code-review.d.ts +323 -0
  59. package/dist/tools/code-review.d.ts.map +1 -0
  60. package/dist/tools/code-review.js +552 -0
  61. package/dist/tools/code-review.js.map +1 -0
  62. package/dist/tools/commits.d.ts +488 -0
  63. package/dist/tools/commits.d.ts.map +1 -0
  64. package/dist/tools/commits.js +578 -0
  65. package/dist/tools/commits.js.map +1 -0
  66. package/dist/tools/deployments.d.ts +319 -0
  67. package/dist/tools/deployments.d.ts.map +1 -0
  68. package/dist/tools/deployments.js +355 -0
  69. package/dist/tools/deployments.js.map +1 -0
  70. package/dist/tools/files.d.ts +456 -0
  71. package/dist/tools/files.d.ts.map +1 -0
  72. package/dist/tools/files.js +531 -0
  73. package/dist/tools/files.js.map +1 -0
  74. package/dist/tools/git-sync.d.ts +177 -0
  75. package/dist/tools/git-sync.d.ts.map +1 -0
  76. package/dist/tools/git-sync.js +112 -0
  77. package/dist/tools/git-sync.js.map +1 -0
  78. package/dist/tools/issues.d.ts +579 -0
  79. package/dist/tools/issues.d.ts.map +1 -0
  80. package/dist/tools/issues.js +631 -0
  81. package/dist/tools/issues.js.map +1 -0
  82. package/dist/tools/pulls.d.ts +702 -0
  83. package/dist/tools/pulls.d.ts.map +1 -0
  84. package/dist/tools/pulls.js +730 -0
  85. package/dist/tools/pulls.js.map +1 -0
  86. package/dist/tools/releases.d.ts +495 -0
  87. package/dist/tools/releases.d.ts.map +1 -0
  88. package/dist/tools/releases.js +551 -0
  89. package/dist/tools/releases.js.map +1 -0
  90. package/dist/tools/repositories.d.ts +513 -0
  91. package/dist/tools/repositories.d.ts.map +1 -0
  92. package/dist/tools/repositories.js +634 -0
  93. package/dist/tools/repositories.js.map +1 -0
  94. package/dist/tools/security.d.ts +341 -0
  95. package/dist/tools/security.d.ts.map +1 -0
  96. package/dist/tools/security.js +394 -0
  97. package/dist/tools/security.js.map +1 -0
  98. package/dist/tools/tags.d.ts +419 -0
  99. package/dist/tools/tags.d.ts.map +1 -0
  100. package/dist/tools/tags.js +479 -0
  101. package/dist/tools/tags.js.map +1 -0
  102. package/dist/tools/users.d.ts +376 -0
  103. package/dist/tools/users.d.ts.map +1 -0
  104. package/dist/tools/users.js +495 -0
  105. package/dist/tools/users.js.map +1 -0
  106. package/dist/tools/validator.d.ts +192 -0
  107. package/dist/tools/validator.d.ts.map +1 -0
  108. package/dist/tools/validator.js +198 -0
  109. package/dist/tools/validator.js.map +1 -0
  110. package/dist/tools/version-control.d.ts +247 -0
  111. package/dist/tools/version-control.d.ts.map +1 -0
  112. package/dist/tools/version-control.js +521 -0
  113. package/dist/tools/version-control.js.map +1 -0
  114. package/dist/tools/webhooks.d.ts +478 -0
  115. package/dist/tools/webhooks.d.ts.map +1 -0
  116. package/dist/tools/webhooks.js +541 -0
  117. package/dist/tools/webhooks.js.map +1 -0
  118. package/dist/tools/workflows.d.ts +313 -0
  119. package/dist/tools/workflows.d.ts.map +1 -0
  120. package/dist/tools/workflows.js +430 -0
  121. package/dist/tools/workflows.js.map +1 -0
  122. package/package.json +58 -0
@@ -0,0 +1,177 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Tool: git-sync
4
+ *
5
+ * DESCRIÇÃO:
6
+ * Sincronização entre dois repositórios hospedados em provedores distintos (ex.: Gitea <-> GitHub).
7
+ *
8
+ * OBJETIVOS:
9
+ * - Configurar espelhamento (quando suportado pelo backend) e registrar estado
10
+ * - Executar sincronização pontual (one-shot) de código e/ou metadados
11
+ * - Consultar status/diagnóstico da sincronização
12
+ *
13
+ * LIMITAÇÕES:
14
+ * - Histórico Git completo por API REST é limitado; prioriza espelhamento nativo (push mirrors) quando disponível
15
+ * - Metadados (issues, labels, releases, PRs) têm mapeamento best-effort com diferenças entre plataformas
16
+ *
17
+ * DICAS (solo):
18
+ * - Use para manter um backup/em espelho entre provedores
19
+ * - Prefira one-shot antes de configurar contínuo; verifique status e conflitos
20
+ * - Defina estratégia de conflito e escopos explicitamente
21
+ */
22
+ declare const GitSyncInputSchema: z.ZodObject<{
23
+ action: z.ZodEnum<["configure", "status", "one-shot"]>;
24
+ source: z.ZodOptional<z.ZodObject<{
25
+ provider: z.ZodString;
26
+ owner: z.ZodString;
27
+ repo: z.ZodString;
28
+ }, "strip", z.ZodTypeAny, {
29
+ provider: string;
30
+ owner: string;
31
+ repo: string;
32
+ }, {
33
+ provider: string;
34
+ owner: string;
35
+ repo: string;
36
+ }>>;
37
+ target: z.ZodOptional<z.ZodObject<{
38
+ provider: z.ZodString;
39
+ owner: z.ZodString;
40
+ repo: z.ZodString;
41
+ }, "strip", z.ZodTypeAny, {
42
+ provider: string;
43
+ owner: string;
44
+ repo: string;
45
+ }, {
46
+ provider: string;
47
+ owner: string;
48
+ repo: string;
49
+ }>>;
50
+ direction: z.ZodOptional<z.ZodEnum<["one-way", "two-way"]>>;
51
+ include: z.ZodOptional<z.ZodArray<z.ZodEnum<["git", "issues", "labels", "milestones", "releases", "pulls"]>, "many">>;
52
+ strategy: z.ZodOptional<z.ZodEnum<["source-wins", "timestamp", "skip-conflicts"]>>;
53
+ dry_run: z.ZodOptional<z.ZodBoolean>;
54
+ }, "strip", z.ZodTypeAny, {
55
+ action: "status" | "configure" | "one-shot";
56
+ target?: {
57
+ provider: string;
58
+ owner: string;
59
+ repo: string;
60
+ } | undefined;
61
+ direction?: "one-way" | "two-way" | undefined;
62
+ source?: {
63
+ provider: string;
64
+ owner: string;
65
+ repo: string;
66
+ } | undefined;
67
+ include?: ("issues" | "labels" | "pulls" | "releases" | "git" | "milestones")[] | undefined;
68
+ strategy?: "timestamp" | "source-wins" | "skip-conflicts" | undefined;
69
+ dry_run?: boolean | undefined;
70
+ }, {
71
+ action: "status" | "configure" | "one-shot";
72
+ target?: {
73
+ provider: string;
74
+ owner: string;
75
+ repo: string;
76
+ } | undefined;
77
+ direction?: "one-way" | "two-way" | undefined;
78
+ source?: {
79
+ provider: string;
80
+ owner: string;
81
+ repo: string;
82
+ } | undefined;
83
+ include?: ("issues" | "labels" | "pulls" | "releases" | "git" | "milestones")[] | undefined;
84
+ strategy?: "timestamp" | "source-wins" | "skip-conflicts" | undefined;
85
+ dry_run?: boolean | undefined;
86
+ }>;
87
+ export type GitSyncInput = z.infer<typeof GitSyncInputSchema>;
88
+ declare const GitSyncResultSchema: z.ZodObject<{
89
+ success: z.ZodBoolean;
90
+ action: z.ZodString;
91
+ message: z.ZodString;
92
+ data: z.ZodOptional<z.ZodAny>;
93
+ error: z.ZodOptional<z.ZodString>;
94
+ }, "strip", z.ZodTypeAny, {
95
+ message: string;
96
+ action: string;
97
+ success: boolean;
98
+ error?: string | undefined;
99
+ data?: any;
100
+ }, {
101
+ message: string;
102
+ action: string;
103
+ success: boolean;
104
+ error?: string | undefined;
105
+ data?: any;
106
+ }>;
107
+ export type GitSyncResult = z.infer<typeof GitSyncResultSchema>;
108
+ export declare const gitSyncTool: {
109
+ name: string;
110
+ description: string;
111
+ inputSchema: {
112
+ type: string;
113
+ properties: {
114
+ action: {
115
+ type: string;
116
+ enum: string[];
117
+ description: string;
118
+ };
119
+ source: {
120
+ type: string;
121
+ description: string;
122
+ properties: {
123
+ provider: {
124
+ type: string;
125
+ };
126
+ owner: {
127
+ type: string;
128
+ };
129
+ repo: {
130
+ type: string;
131
+ };
132
+ };
133
+ };
134
+ target: {
135
+ type: string;
136
+ description: string;
137
+ properties: {
138
+ provider: {
139
+ type: string;
140
+ };
141
+ owner: {
142
+ type: string;
143
+ };
144
+ repo: {
145
+ type: string;
146
+ };
147
+ };
148
+ };
149
+ direction: {
150
+ type: string;
151
+ enum: string[];
152
+ description: string;
153
+ };
154
+ include: {
155
+ type: string;
156
+ items: {
157
+ type: string;
158
+ enum: string[];
159
+ };
160
+ description: string;
161
+ };
162
+ strategy: {
163
+ type: string;
164
+ enum: string[];
165
+ description: string;
166
+ };
167
+ dry_run: {
168
+ type: string;
169
+ description: string;
170
+ };
171
+ };
172
+ required: string[];
173
+ };
174
+ handler(input: GitSyncInput): Promise<GitSyncResult>;
175
+ };
176
+ export {};
177
+ //# sourceMappingURL=git-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-sync.d.ts","sourceRoot":"","sources":["../../src/tools/git-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQtB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAMvB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAiCD,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;CAqC3D,CAAC"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gitSyncTool = void 0;
4
+ const zod_1 = require("zod");
5
+ /**
6
+ * Tool: git-sync
7
+ *
8
+ * DESCRIÇÃO:
9
+ * Sincronização entre dois repositórios hospedados em provedores distintos (ex.: Gitea <-> GitHub).
10
+ *
11
+ * OBJETIVOS:
12
+ * - Configurar espelhamento (quando suportado pelo backend) e registrar estado
13
+ * - Executar sincronização pontual (one-shot) de código e/ou metadados
14
+ * - Consultar status/diagnóstico da sincronização
15
+ *
16
+ * LIMITAÇÕES:
17
+ * - Histórico Git completo por API REST é limitado; prioriza espelhamento nativo (push mirrors) quando disponível
18
+ * - Metadados (issues, labels, releases, PRs) têm mapeamento best-effort com diferenças entre plataformas
19
+ *
20
+ * DICAS (solo):
21
+ * - Use para manter um backup/em espelho entre provedores
22
+ * - Prefira one-shot antes de configurar contínuo; verifique status e conflitos
23
+ * - Defina estratégia de conflito e escopos explicitamente
24
+ */
25
+ const GitSyncInputSchema = zod_1.z.object({
26
+ action: zod_1.z.enum(['configure', 'status', 'one-shot']),
27
+ source: zod_1.z.object({ provider: zod_1.z.string(), owner: zod_1.z.string(), repo: zod_1.z.string() }).optional(),
28
+ target: zod_1.z.object({ provider: zod_1.z.string(), owner: zod_1.z.string(), repo: zod_1.z.string() }).optional(),
29
+ direction: zod_1.z.enum(['one-way', 'two-way']).optional(),
30
+ include: zod_1.z.array(zod_1.z.enum(['git', 'issues', 'labels', 'milestones', 'releases', 'pulls'])).optional(),
31
+ strategy: zod_1.z.enum(['source-wins', 'timestamp', 'skip-conflicts']).optional(),
32
+ dry_run: zod_1.z.boolean().optional()
33
+ });
34
+ const GitSyncResultSchema = zod_1.z.object({
35
+ success: zod_1.z.boolean(),
36
+ action: zod_1.z.string(),
37
+ message: zod_1.z.string(),
38
+ data: zod_1.z.any().optional(),
39
+ error: zod_1.z.string().optional()
40
+ });
41
+ exports.gitSyncTool = {
42
+ name: 'git-sync',
43
+ description: 'Synchronize two repositories across providers (Gitea <-> GitHub). Modos: configure (espelhamento quando suportado), one-shot (execução pontual) e status (diagnóstico). Dicas: execute dry-run primeiro, escolha escopos e estratégia de conflito.',
44
+ inputSchema: {
45
+ type: 'object',
46
+ properties: {
47
+ action: { type: 'string', enum: ['configure', 'status', 'one-shot'], description: 'Sync action' },
48
+ source: {
49
+ type: 'object',
50
+ description: 'Source repository descriptor',
51
+ properties: {
52
+ provider: { type: 'string' },
53
+ owner: { type: 'string' },
54
+ repo: { type: 'string' }
55
+ }
56
+ },
57
+ target: {
58
+ type: 'object',
59
+ description: 'Target repository descriptor',
60
+ properties: {
61
+ provider: { type: 'string' },
62
+ owner: { type: 'string' },
63
+ repo: { type: 'string' }
64
+ }
65
+ },
66
+ direction: { type: 'string', enum: ['one-way', 'two-way'], description: 'Sync direction' },
67
+ include: { type: 'array', items: { type: 'string', enum: ['git', 'issues', 'labels', 'milestones', 'releases', 'pulls'] }, description: 'Scopes to include' },
68
+ strategy: { type: 'string', enum: ['source-wins', 'timestamp', 'skip-conflicts'], description: 'Conflict strategy' },
69
+ dry_run: { type: 'boolean', description: 'Simulate without applying changes' }
70
+ },
71
+ required: ['action']
72
+ },
73
+ async handler(input) {
74
+ try {
75
+ const params = GitSyncInputSchema.parse(input);
76
+ switch (params.action) {
77
+ case 'configure':
78
+ return {
79
+ success: true,
80
+ action: 'configure',
81
+ message: 'Configuração registrada (placeholder). Integração com providers será aplicada na próxima etapa da implementação.',
82
+ data: { params }
83
+ };
84
+ case 'status':
85
+ return {
86
+ success: true,
87
+ action: 'status',
88
+ message: 'Status coletado (placeholder).',
89
+ data: { health: 'unknown', details: params }
90
+ };
91
+ case 'one-shot':
92
+ return {
93
+ success: true,
94
+ action: 'one-shot',
95
+ message: 'Sincronização pontual executada (placeholder).',
96
+ data: { params, applied: false }
97
+ };
98
+ default:
99
+ throw new Error(`Ação não suportada: ${params.action}`);
100
+ }
101
+ }
102
+ catch (error) {
103
+ return {
104
+ success: false,
105
+ action: input.action,
106
+ message: 'Erro na execução do git-sync',
107
+ error: error instanceof Error ? error.message : String(error)
108
+ };
109
+ }
110
+ }
111
+ };
112
+ //# sourceMappingURL=git-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-sync.js","sourceRoot":"","sources":["../../src/tools/git-sync.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnD,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1F,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1F,SAAS,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpD,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnG,QAAQ,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3E,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAIH,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;AAIU,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,oPAAoP;IACjQ,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE;YACjG,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;gBAC3C,UAAU,EAAE;oBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACzB;aACF;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;gBAC3C,UAAU,EAAE;oBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACzB;aACF;YACD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE;YAC1F,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAC,YAAY,EAAC,UAAU,EAAC,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE;YACxJ,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE;YACpH,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,mCAAmC,EAAE;SAC/E;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;IAED,KAAK,CAAC,OAAO,CAAC,KAAmB;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/C,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,KAAK,WAAW;oBACd,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,WAAW;wBACnB,OAAO,EAAE,kHAAkH;wBAC3H,IAAI,EAAE,EAAE,MAAM,EAAE;qBACjB,CAAC;gBACJ,KAAK,QAAQ;oBACX,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,QAAQ;wBAChB,OAAO,EAAE,gCAAgC;wBACzC,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;qBAC7C,CAAC;gBACJ,KAAK,UAAU;oBACb,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE,gDAAgD;wBACzD,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;qBACjC,CAAC;gBACJ;oBACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAG,KAAa,CAAC,MAAM;gBAC7B,OAAO,EAAE,8BAA8B;gBACvC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}