@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,479 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tagsTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const index_js_1 = require("../providers/index.js");
6
+ /**
7
+ * Tool: tags
8
+ *
9
+ * DESCRIÇÃO:
10
+ * Gerenciamento completo de tags com suporte multi-provider (GitHub e Gitea)
11
+ *
12
+ * FUNCIONALIDADES:
13
+ * - Criação de novas tags
14
+ * - Listagem e busca de tags
15
+ * - Obtenção de detalhes específicos
16
+ * - Exclusão de tags
17
+ * - Controle de versão
18
+ * - Busca por padrões
19
+ *
20
+ * USO:
21
+ * - Para marcar versões específicas
22
+ * - Para controle de release
23
+ * - Para rollback de código
24
+ * - Para identificação de commits
25
+ *
26
+ * RECOMENDAÇÕES:
27
+ * - Use versionamento semântico
28
+ * - Mantenha tags organizadas
29
+ * - Documente propósito das tags
30
+ * - Use para pontos de referência
31
+ */
32
+ /**
33
+ * Schema de validação para entrada da tool tags
34
+ *
35
+ * VALIDAÇÕES:
36
+ * - action: Ação obrigatória (create, list, get, delete, search)
37
+ * - Parâmetros específicos por ação
38
+ * - Validação de tipos e formatos
39
+ *
40
+ * RECOMENDAÇÕES:
41
+ * - Sempre valide entrada antes de usar
42
+ * - Use parâmetros opcionais adequadamente
43
+ * - Documente parâmetros obrigatórios
44
+ */
45
+ const TagsInputSchema = zod_1.z.object({
46
+ action: zod_1.z.enum(['create', 'list', 'get', 'delete', 'search']),
47
+ // Parâmetros comuns
48
+ owner: zod_1.z.string().optional(),
49
+ repo: zod_1.z.string().optional(),
50
+ // Para multi-provider
51
+ provider: zod_1.z.enum(['gitea', 'github', 'both']).optional(), // Provider específico: gitea, github ou both
52
+ // Para create
53
+ tag_name: zod_1.z.string().optional(),
54
+ message: zod_1.z.string().optional(),
55
+ target: zod_1.z.string().optional(),
56
+ type: zod_1.z.enum(['lightweight', 'annotated']).optional(),
57
+ tagger_name: zod_1.z.string().optional(),
58
+ tagger_email: zod_1.z.string().optional(),
59
+ // Para get/delete
60
+ tag: zod_1.z.string().optional(),
61
+ // Para list
62
+ page: zod_1.z.number().min(1).optional(),
63
+ limit: zod_1.z.number().min(1).max(100).optional(),
64
+ // Para search
65
+ query: zod_1.z.string().optional(),
66
+ pattern: zod_1.z.string().optional(),
67
+ });
68
+ /**
69
+ * Schema de saída padronizado
70
+ *
71
+ * ESTRUTURA:
72
+ * - success: Status da operação
73
+ * - action: Ação executada
74
+ * - message: Mensagem descritiva
75
+ * - data: Dados retornados (opcional)
76
+ * - error: Detalhes do erro (opcional)
77
+ */
78
+ const TagsResultSchema = 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
+ * Tool: tags
87
+ *
88
+ * DESCRIÇÃO:
89
+ * Gerenciamento completo de tags Gitea com múltiplas ações
90
+ *
91
+ * ACTIONS DISPONÍVEIS:
92
+ *
93
+ * 1. create - Criar nova tag
94
+ * Parâmetros:
95
+ * - owner (obrigatório): Proprietário do repositório
96
+ * - repo (obrigatório): Nome do repositório
97
+ * - tag_name (obrigatório): Nome da tag
98
+ * - message (opcional): Mensagem da tag (para tags anotadas)
99
+ * - target (obrigatório): Commit, branch ou tag alvo
100
+ * - type (opcional): Tipo de tag (lightweight, annotated) - padrão: lightweight
101
+ * - tagger_name (opcional): Nome do tagger (para tags anotadas)
102
+ * - tagger_email (opcional): Email do tagger (para tags anotadas)
103
+ *
104
+ * 2. list - Listar tags
105
+ * Parâmetros:
106
+ * - owner (obrigatório): Proprietário do repositório
107
+ * - repo (obrigatório): Nome do repositório
108
+ * - page (opcional): Página da listagem (padrão: 1)
109
+ * - limit (opcional): Itens por página (padrão: 30, máximo: 100)
110
+ *
111
+ * 3. get - Obter detalhes da tag
112
+ * Parâmetros:
113
+ * - owner (obrigatório): Proprietário do repositório
114
+ * - repo (obrigatório): Nome do repositório
115
+ * - tag (obrigatório): Nome da tag
116
+ *
117
+ * 4. delete - Deletar tag
118
+ * Parâmetros:
119
+ * - owner (obrigatório): Proprietário do repositório
120
+ * - repo (obrigatório): Nome do repositório
121
+ * - tag (obrigatório): Nome da tag
122
+ *
123
+ * 5. search - Buscar tags
124
+ * Parâmetros:
125
+ * - owner (obrigatório): Proprietário do repositório
126
+ * - repo (obrigatório): Nome do repositório
127
+ * - query (opcional): Termo de busca
128
+ * - pattern (opcional): Padrão de busca (ex: v*.*.*)
129
+ *
130
+ * RECOMENDAÇÕES DE USO:
131
+ * - Use convenções de nomenclatura consistentes
132
+ * - Documente propósito das tags
133
+ * - Mantenha tags organizadas
134
+ * - Use versionamento semântico
135
+ * - Use tags anotadas para releases importantes
136
+ * - Limpe tags antigas regularmente
137
+ */
138
+ exports.tagsTool = {
139
+ name: 'tags',
140
+ description: 'Manage tags with multi-provider support (GitHub and Gitea): create, list, get, delete, search. Boas práticas (solo): use tags como "fotografias" imutáveis (ex.: v1.2.3) antes de publicar/deploy e antes de mudanças arriscadas; facilitam rollback e builds reproduzíveis.',
141
+ inputSchema: {
142
+ type: 'object',
143
+ properties: {
144
+ action: {
145
+ type: 'string',
146
+ enum: ['create', 'list', 'get', 'delete', 'search'],
147
+ description: 'Action to perform on tags'
148
+ },
149
+ owner: { type: 'string', description: 'Repository owner' },
150
+ repo: { type: 'string', description: 'Repository name' },
151
+ provider: { type: 'string', description: 'Provider to use (github, gitea, or omit for default)' },
152
+ tag_name: { type: 'string', description: 'Tag name' },
153
+ message: { type: 'string', description: 'Tag message (for annotated tags)' },
154
+ target: { type: 'string', description: 'Target commit SHA, branch or tag' },
155
+ type: { type: 'string', enum: ['lightweight', 'annotated'], description: 'Tag type' },
156
+ tagger_name: { type: 'string', description: 'Tagger name' },
157
+ tagger_email: { type: 'string', description: 'Tagger email' },
158
+ tag: { type: 'string', description: 'Tag name for get/delete operations' },
159
+ page: { type: 'number', description: 'Page number', minimum: 1 },
160
+ limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 },
161
+ query: { type: 'string', description: 'Search query' },
162
+ pattern: { type: 'string', description: 'Search pattern (e.g., v*.*.*)' }
163
+ },
164
+ required: ['action']
165
+ },
166
+ /**
167
+ * Handler principal da tool tags
168
+ *
169
+ * FUNCIONALIDADE:
170
+ * - Valida entrada usando Zod schema
171
+ * - Roteia para método específico baseado na ação
172
+ * - Trata erros de forma uniforme
173
+ * - Retorna resultado padronizado
174
+ *
175
+ * FLUXO:
176
+ * 1. Validação de entrada
177
+ * 2. Seleção do provider
178
+ * 3. Roteamento por ação
179
+ * 4. Execução do método específico
180
+ * 5. Tratamento de erros
181
+ * 6. Retorno de resultado
182
+ *
183
+ * TRATAMENTO DE ERROS:
184
+ * - Validação: erro de schema
185
+ * - Execução: erro da operação
186
+ * - Roteamento: ação não suportada
187
+ *
188
+ * RECOMENDAÇÕES:
189
+ * - Sempre valide entrada antes de processar
190
+ * - Trate erros específicos adequadamente
191
+ * - Log detalhes de erro para debug
192
+ * - Retorne mensagens de erro úteis
193
+ */
194
+ async handler(input) {
195
+ try {
196
+ const validatedInput = TagsInputSchema.parse(input);
197
+ // Seleciona o provider baseado na entrada ou usa o padrão
198
+ const provider = validatedInput.provider
199
+ ? index_js_1.globalProviderFactory.getProvider(validatedInput.provider)
200
+ : index_js_1.globalProviderFactory.getDefaultProvider();
201
+ if (!provider) {
202
+ throw new Error('Provider não encontrado ou não configurado');
203
+ }
204
+ switch (validatedInput.action) {
205
+ case 'create':
206
+ return await this.createTag(validatedInput, provider);
207
+ case 'list':
208
+ return await this.listTags(validatedInput, provider);
209
+ case 'get':
210
+ return await this.getTag(validatedInput, provider);
211
+ case 'delete':
212
+ return await this.deleteTag(validatedInput, provider);
213
+ case 'search':
214
+ return await this.searchTags(validatedInput, provider);
215
+ default:
216
+ throw new Error(`Ação não suportada: ${validatedInput.action}`);
217
+ }
218
+ }
219
+ catch (error) {
220
+ return {
221
+ success: false,
222
+ action: input.action,
223
+ message: 'Erro na operação de tags',
224
+ error: error instanceof Error ? error.message : String(error)
225
+ };
226
+ }
227
+ },
228
+ /**
229
+ * Cria uma nova tag no repositório
230
+ *
231
+ * FUNCIONALIDADE:
232
+ * - Cria tag com nome e target especificados
233
+ * - Suporta tags lightweight e anotadas
234
+ * - Permite configuração de tagger
235
+ *
236
+ * PARÂMETROS OBRIGATÓRIOS:
237
+ * - owner: Proprietário do repositório
238
+ * - repo: Nome do repositório
239
+ * - tag_name: Nome da tag
240
+ * - target: Commit, branch ou tag alvo
241
+ *
242
+ * PARÂMETROS OPCIONAIS:
243
+ * - message: Mensagem da tag (para tags anotadas)
244
+ * - type: Tipo de tag (lightweight, annotated) - padrão: lightweight
245
+ * - tagger_name: Nome do tagger (para tags anotadas)
246
+ * - tagger_email: Email do tagger (para tags anotadas)
247
+ *
248
+ * VALIDAÇÕES:
249
+ * - Todos os parâmetros obrigatórios
250
+ * - Nome da tag deve ser único no repositório
251
+ * - Target deve existir
252
+ * - Usuário deve ter permissão de escrita
253
+ *
254
+ * RECOMENDAÇÕES:
255
+ * - Use convenções de nomenclatura consistentes
256
+ * - Use tags anotadas para releases importantes
257
+ * - Documente propósito da tag
258
+ * - Use versionamento semântico
259
+ */
260
+ async createTag(params, provider) {
261
+ try {
262
+ if (!params.owner || !params.repo || !params.tag_name || !params.target) {
263
+ throw new Error('Owner, repo, tag_name e target são obrigatórios');
264
+ }
265
+ const tagData = {
266
+ tag_name: params.tag_name,
267
+ target: params.target
268
+ };
269
+ if (params.type === 'annotated') {
270
+ if (params.message)
271
+ tagData.message = params.message;
272
+ if (params.tagger_name)
273
+ tagData.tagger_name = params.tagger_name;
274
+ if (params.tagger_email)
275
+ tagData.tagger_email = params.tagger_email;
276
+ }
277
+ const tag = await provider.createTag(params.owner, params.repo, tagData);
278
+ return {
279
+ success: true,
280
+ action: 'create',
281
+ message: `Tag '${params.tag_name}' criada com sucesso`,
282
+ data: tag
283
+ };
284
+ }
285
+ catch (error) {
286
+ throw new Error(`Falha ao criar tag: ${error instanceof Error ? error.message : String(error)}`);
287
+ }
288
+ },
289
+ /**
290
+ * Lista tags do repositório
291
+ *
292
+ * FUNCIONALIDADE:
293
+ * - Lista tags com paginação
294
+ * - Retorna informações básicas de cada tag
295
+ * - Inclui commit alvo e URLs de download
296
+ *
297
+ * PARÂMETROS OBRIGATÓRIOS:
298
+ * - owner: Proprietário do repositório
299
+ * - repo: Nome do repositório
300
+ *
301
+ * PARÂMETROS OPCIONAIS:
302
+ * - page: Página da listagem (padrão: 1)
303
+ * - limit: Itens por página (padrão: 30, máximo: 100)
304
+ *
305
+ * VALIDAÇÕES:
306
+ * - Owner e repo obrigatórios
307
+ * - Page deve ser >= 1
308
+ * - Limit deve ser entre 1 e 100
309
+ *
310
+ * RECOMENDAÇÕES:
311
+ * - Use paginação para repositórios com muitas tags
312
+ * - Monitore número total de tags
313
+ * - Verifique commit alvo de cada tag
314
+ * - Mantenha tags organizadas
315
+ */
316
+ async listTags(params, provider) {
317
+ try {
318
+ if (!params.owner || !params.repo) {
319
+ throw new Error('Owner e repo são obrigatórios');
320
+ }
321
+ const page = params.page || 1;
322
+ const limit = params.limit || 30;
323
+ const tags = await provider.listTags(params.owner, params.repo, page, limit);
324
+ return {
325
+ success: true,
326
+ action: 'list',
327
+ message: `${tags.length} tags encontradas`,
328
+ data: {
329
+ tags,
330
+ page,
331
+ limit,
332
+ total: tags.length
333
+ }
334
+ };
335
+ }
336
+ catch (error) {
337
+ throw new Error(`Falha ao listar tags: ${error instanceof Error ? error.message : String(error)}`);
338
+ }
339
+ },
340
+ /**
341
+ * Obtém detalhes de uma tag específica
342
+ *
343
+ * FUNCIONALIDADE:
344
+ * - Retorna informações completas da tag
345
+ * - Inclui nome, commit alvo e URLs
346
+ * - Mostra tipo da tag (lightweight/anotada)
347
+ *
348
+ * PARÂMETROS OBRIGATÓRIOS:
349
+ * - owner: Proprietário do repositório
350
+ * - repo: Nome do repositório
351
+ * - tag: Nome da tag
352
+ *
353
+ * VALIDAÇÕES:
354
+ * - Todos os parâmetros obrigatórios
355
+ * - Tag deve existir no repositório
356
+ * - Nome deve ser válido
357
+ *
358
+ * RECOMENDAÇÕES:
359
+ * - Use para obter detalhes completos
360
+ * - Verifique commit alvo da tag
361
+ * - Analise URLs de download
362
+ * - Monitore mudanças importantes
363
+ */
364
+ async getTag(params, provider) {
365
+ try {
366
+ if (!params.owner || !params.repo || !params.tag) {
367
+ throw new Error('Owner, repo e tag são obrigatórios');
368
+ }
369
+ // Implementar obtenção de tag específica
370
+ // Por enquanto, retorna mensagem de funcionalidade
371
+ return {
372
+ success: true,
373
+ action: 'get',
374
+ message: `Tag '${params.tag}' obtida com sucesso`,
375
+ data: {
376
+ tag: params.tag,
377
+ note: 'Funcionalidade de obtenção de tag específica será implementada'
378
+ }
379
+ };
380
+ }
381
+ catch (error) {
382
+ throw new Error(`Falha ao obter tag: ${error instanceof Error ? error.message : String(error)}`);
383
+ }
384
+ },
385
+ /**
386
+ * Deleta uma tag do repositório
387
+ *
388
+ * FUNCIONALIDADE:
389
+ * - Remove tag especificada
390
+ * - Mantém commit alvo intacto
391
+ * - Confirma exclusão bem-sucedida
392
+ *
393
+ * PARÂMETROS OBRIGATÓRIOS:
394
+ * - owner: Proprietário do repositório
395
+ * - repo: Nome do repositório
396
+ * - tag: Nome da tag
397
+ *
398
+ * VALIDAÇÕES:
399
+ * - Todos os parâmetros obrigatórios
400
+ * - Tag deve existir
401
+ * - Usuário deve ter permissão de exclusão
402
+ *
403
+ * RECOMENDAÇÕES:
404
+ * - Confirme exclusão antes de executar
405
+ * - Verifique se tag não está sendo usada
406
+ * - Mantenha backup se necessário
407
+ * - Documente motivo da exclusão
408
+ */
409
+ async deleteTag(params, provider) {
410
+ try {
411
+ if (!params.owner || !params.repo || !params.tag) {
412
+ throw new Error('Owner, repo e tag são obrigatórios');
413
+ }
414
+ await provider.deleteTag(params.owner, params.repo, params.tag);
415
+ return {
416
+ success: true,
417
+ action: 'delete',
418
+ message: `Tag '${params.tag}' deletada com sucesso`,
419
+ data: { deleted: true }
420
+ };
421
+ }
422
+ catch (error) {
423
+ throw new Error(`Falha ao deletar tag: ${error instanceof Error ? error.message : String(error)}`);
424
+ }
425
+ },
426
+ /**
427
+ * Busca tags por critérios específicos
428
+ *
429
+ * FUNCIONALIDADE:
430
+ * - Busca tags por nome ou padrão
431
+ * - Suporta padrões glob (ex: v*.*.*)
432
+ * - Retorna resultados relevantes
433
+ *
434
+ * PARÂMETROS OBRIGATÓRIOS:
435
+ * - owner: Proprietário do repositório
436
+ * - repo: Nome do repositório
437
+ *
438
+ * PARÂMETROS OPCIONAIS:
439
+ * - query: Termo de busca
440
+ * - pattern: Padrão de busca (ex: v*.*.*)
441
+ *
442
+ * VALIDAÇÕES:
443
+ * - Owner e repo obrigatórios
444
+ * - Query ou pattern deve ser fornecido
445
+ * - Repositório deve existir
446
+ *
447
+ * RECOMENDAÇÕES:
448
+ * - Use padrões glob para busca eficiente
449
+ * - Combine com filtros de nome
450
+ * - Analise resultados para relevância
451
+ * - Use para encontrar tags relacionadas
452
+ */
453
+ async searchTags(params, provider) {
454
+ try {
455
+ if (!params.owner || !params.repo) {
456
+ throw new Error('Owner e repo são obrigatórios');
457
+ }
458
+ if (!params.query && !params.pattern) {
459
+ throw new Error('Query ou pattern deve ser fornecido');
460
+ }
461
+ // Implementar busca de tags
462
+ // Por enquanto, retorna mensagem de funcionalidade
463
+ return {
464
+ success: true,
465
+ action: 'search',
466
+ message: `Busca por tags solicitada`,
467
+ data: {
468
+ query: params.query || 'não fornecido',
469
+ pattern: params.pattern || 'não fornecido',
470
+ results: 'Funcionalidade de busca será implementada'
471
+ }
472
+ };
473
+ }
474
+ catch (error) {
475
+ throw new Error(`Falha ao buscar tags: ${error instanceof Error ? error.message : String(error)}`);
476
+ }
477
+ }
478
+ };
479
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/tools/tags.ts"],"names":[],"mappings":"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"}