@andrebuzeli/git-mcp 2.27.4 → 2.28.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 (112) hide show
  1. package/dist/client.d.ts +306 -306
  2. package/dist/client.js +298 -298
  3. package/dist/config.d.ts +310 -310
  4. package/dist/config.js +392 -392
  5. package/dist/index.d.ts +22 -22
  6. package/dist/index.js +89 -89
  7. package/dist/providers/base-provider.d.ts +160 -156
  8. package/dist/providers/base-provider.d.ts.map +1 -1
  9. package/dist/providers/base-provider.js +274 -260
  10. package/dist/providers/base-provider.js.map +1 -1
  11. package/dist/providers/error-handler.d.ts +50 -50
  12. package/dist/providers/error-handler.js +175 -175
  13. package/dist/providers/gitea-provider.d.ts +97 -97
  14. package/dist/providers/gitea-provider.js +1001 -1001
  15. package/dist/providers/github-provider.d.ts +104 -104
  16. package/dist/providers/github-provider.js +1234 -1234
  17. package/dist/providers/index.d.ts +12 -12
  18. package/dist/providers/index.js +40 -40
  19. package/dist/providers/provider-factory.d.ts +74 -74
  20. package/dist/providers/provider-factory.js +311 -311
  21. package/dist/providers/types.d.ts +318 -298
  22. package/dist/providers/types.d.ts.map +1 -1
  23. package/dist/providers/types.js +6 -6
  24. package/dist/server.d.ts +76 -76
  25. package/dist/server.d.ts.map +1 -1
  26. package/dist/server.js +306 -305
  27. package/dist/server.js.map +1 -1
  28. package/dist/tools/gh-actions.d.ts +252 -252
  29. package/dist/tools/gh-actions.js +389 -389
  30. package/dist/tools/gh-analytics.d.ts +263 -263
  31. package/dist/tools/gh-analytics.js +401 -401
  32. package/dist/tools/gh-code-review.d.ts +304 -304
  33. package/dist/tools/gh-code-review.js +512 -512
  34. package/dist/tools/gh-codespaces.d.ts +138 -138
  35. package/dist/tools/gh-codespaces.js +282 -282
  36. package/dist/tools/gh-deployments.d.ts +300 -300
  37. package/dist/tools/gh-deployments.js +367 -367
  38. package/dist/tools/gh-gists.d.ts +174 -174
  39. package/dist/tools/gh-gists.js +321 -321
  40. package/dist/tools/gh-projects.d.ts +205 -205
  41. package/dist/tools/gh-projects.js +358 -358
  42. package/dist/tools/gh-security.d.ts +274 -274
  43. package/dist/tools/gh-security.js +395 -395
  44. package/dist/tools/gh-sync.d.ts +213 -213
  45. package/dist/tools/gh-sync.js +378 -378
  46. package/dist/tools/gh-workflows.d.ts +290 -290
  47. package/dist/tools/gh-workflows.js +432 -432
  48. package/dist/tools/git-archive.d.ts +165 -165
  49. package/dist/tools/git-archive.js +233 -233
  50. package/dist/tools/git-branches.d.ts +430 -430
  51. package/dist/tools/git-branches.d.ts.map +1 -1
  52. package/dist/tools/git-branches.js +627 -530
  53. package/dist/tools/git-branches.js.map +1 -1
  54. package/dist/tools/git-bundle.d.ts +171 -171
  55. package/dist/tools/git-bundle.js +241 -241
  56. package/dist/tools/git-cherry-pick.d.ts +158 -158
  57. package/dist/tools/git-cherry-pick.js +224 -224
  58. package/dist/tools/git-commits.d.ts +485 -485
  59. package/dist/tools/git-commits.d.ts.map +1 -1
  60. package/dist/tools/git-commits.js +735 -625
  61. package/dist/tools/git-commits.js.map +1 -1
  62. package/dist/tools/git-config.d.ts +140 -140
  63. package/dist/tools/git-config.js +268 -268
  64. package/dist/tools/git-files.d.ts +486 -486
  65. package/dist/tools/git-files.js +607 -607
  66. package/dist/tools/git-issues.d.ts +571 -571
  67. package/dist/tools/git-issues.d.ts.map +1 -1
  68. package/dist/tools/git-issues.js +740 -693
  69. package/dist/tools/git-issues.js.map +1 -1
  70. package/dist/tools/git-pulls.d.ts +694 -694
  71. package/dist/tools/git-pulls.js +732 -732
  72. package/dist/tools/git-rebase.d.ts +137 -137
  73. package/dist/tools/git-rebase.js +213 -213
  74. package/dist/tools/git-releases.d.ts +487 -487
  75. package/dist/tools/git-releases.js +557 -557
  76. package/dist/tools/git-remote.d.ts +138 -138
  77. package/dist/tools/git-remote.js +274 -274
  78. package/dist/tools/git-repositories.d.ts +483 -483
  79. package/dist/tools/git-repositories.js +640 -640
  80. package/dist/tools/git-reset.d.ts +130 -130
  81. package/dist/tools/git-reset.js +223 -223
  82. package/dist/tools/git-revert.d.ts +149 -149
  83. package/dist/tools/git-revert.js +198 -198
  84. package/dist/tools/git-stash.d.ts +140 -140
  85. package/dist/tools/git-stash.js +269 -269
  86. package/dist/tools/git-submodule.d.ts +152 -152
  87. package/dist/tools/git-submodule.js +289 -289
  88. package/dist/tools/git-sync.d.ts +178 -166
  89. package/dist/tools/git-sync.d.ts.map +1 -1
  90. package/dist/tools/git-sync.js +312 -117
  91. package/dist/tools/git-sync.js.map +1 -1
  92. package/dist/tools/git-tags.d.ts +411 -411
  93. package/dist/tools/git-tags.js +485 -485
  94. package/dist/tools/git-webhooks.d.ts +470 -482
  95. package/dist/tools/git-webhooks.d.ts.map +1 -1
  96. package/dist/tools/git-webhooks.js +543 -555
  97. package/dist/tools/git-webhooks.js.map +1 -1
  98. package/dist/tools/git-worktree.d.ts +159 -159
  99. package/dist/tools/git-worktree.js +269 -269
  100. package/dist/tools/repositories.d.ts +405 -405
  101. package/dist/tools/repositories.js +569 -569
  102. package/dist/tools/users.d.ts +372 -372
  103. package/dist/tools/users.js +499 -499
  104. package/dist/tools/validator.d.ts +170 -170
  105. package/dist/tools/validator.js +194 -194
  106. package/dist/tools/version-control.d.ts +136 -136
  107. package/dist/tools/version-control.js +164 -164
  108. package/dist/utils/terminal-controller.d.ts +80 -80
  109. package/dist/utils/terminal-controller.js +345 -345
  110. package/dist/utils/user-detection.d.ts +24 -24
  111. package/dist/utils/user-detection.js +53 -53
  112. package/package.json +59 -59
@@ -1,322 +1,322 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ghGistsTool = void 0;
4
- const zod_1 = require("zod");
5
- const index_js_1 = require("../providers/index.js");
6
- /**
7
- * Tool: gh-gists
8
- *
9
- * DESCRIÇÃO:
10
- * Gerenciamento de Gists GitHub (exclusivo GitHub) com múltiplas ações
11
- *
12
- * FUNCIONALIDADES:
13
- * - Criar gist
14
- * - Listar gists
15
- * - Obter gist
16
- * - Atualizar gist
17
- * - Deletar gist
18
- * - Fazer fork do gist
19
- * - Favoritar gist
20
- * - Comentar gist
21
- *
22
- * USO:
23
- * - Para compartilhar código rapidamente
24
- * - Para snippets de código
25
- * - Para documentação rápida
26
- * - Para testes de código
27
- *
28
- * RECOMENDAÇÕES:
29
- * - Use para código pequeno e focado
30
- * - Adicione descrições claras
31
- * - Use tags apropriadas
32
- * - Mantenha gists organizados
33
- */
34
- const GhGistsInputSchema = zod_1.z.object({
35
- action: zod_1.z.enum(['create', 'list', 'get', 'update', 'delete', 'fork', 'star', 'comment']),
36
- // owner: obtido automaticamente do provider,
37
- repo: zod_1.z.string(),
38
- projectPath: zod_1.z.string().describe('Local project path for git operations'),
39
- // Para create/update
40
- gist_id: zod_1.z.string().optional(),
41
- description: zod_1.z.string().optional(),
42
- files: zod_1.z.record(zod_1.z.object({
43
- content: zod_1.z.string(),
44
- filename: zod_1.z.string().optional()
45
- })).optional(),
46
- public: zod_1.z.boolean().optional(),
47
- // Para list
48
- username: zod_1.z.string().optional(),
49
- page: zod_1.z.number().min(1).optional(),
50
- limit: zod_1.z.number().min(1).max(100).optional(),
51
- // Para star
52
- star: zod_1.z.boolean().optional(),
53
- // Para comment
54
- comment_body: zod_1.z.string().optional(),
55
- });
56
- const GhGistsResultSchema = zod_1.z.object({
57
- success: zod_1.z.boolean(),
58
- action: zod_1.z.string(),
59
- message: zod_1.z.string(),
60
- data: zod_1.z.any().optional(),
61
- error: zod_1.z.string().optional()
62
- });
63
- exports.ghGistsTool = {
64
- name: 'gh-gists',
65
- description: 'tool: Gerencia GitHub Gists para compartilhamento de código\n──────────────\naction create: cria novo gist\naction create requires: files, description, public\n───────────────\naction list: lista gists\naction list requires: username, page, limit\n───────────────\naction get: obtém detalhes de gist específico\naction get requires: gist_id\n───────────────\naction update: atualiza gist existente\naction update requires: gist_id, description, files, public\n───────────────\naction delete: remove gist\naction delete requires: gist_id\n───────────────\naction fork: faz fork de gist\naction fork requires: gist_id\n───────────────\naction star: adiciona/remove estrela\naction star requires: gist_id, star\n───────────────\naction comment: adiciona comentário\naction comment requires: gist_id, comment_body',
66
- inputSchema: {
67
- type: 'object',
68
- properties: {
69
- action: {
70
- type: 'string',
71
- enum: ['create', 'list', 'get', 'update', 'delete', 'fork', 'star', 'comment'],
72
- description: 'Action to perform on gists'
73
- },
74
- projectPath: { type: 'string', description: 'Local project path for git operations' },
75
- gist_id: { type: 'string', description: 'Gist ID' },
76
- description: { type: 'string', description: 'Gist description' },
77
- files: { type: 'object', description: 'Gist files' },
78
- public: { type: 'boolean', description: 'Public gist' },
79
- username: { type: 'string', description: 'Username for listing gists' },
80
- page: { type: 'number', description: 'Page number', minimum: 1 },
81
- limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 },
82
- star: { type: 'boolean', description: 'Star/unstar gist' },
83
- comment_body: { type: 'string', description: 'Comment content' }
84
- },
85
- required: ['action', 'projectPath']
86
- },
87
- async handler(input) {
88
- try {
89
- const validatedInput = GhGistsInputSchema.parse(input);
90
- // Fixar provider como github para tools exclusivas do GitHub
91
- const provider = index_js_1.globalProviderFactory.getProvider('github');
92
- if (!provider) {
93
- throw new Error('Provider GitHub não encontrado');
94
- }
95
- switch (validatedInput.action) {
96
- case 'create':
97
- return await this.create(validatedInput, provider);
98
- case 'list':
99
- return await this.list(validatedInput, provider);
100
- case 'get':
101
- return await this.get(validatedInput, provider);
102
- case 'update':
103
- return await this.update(validatedInput, provider);
104
- case 'delete':
105
- return await this.delete(validatedInput, provider);
106
- case 'fork':
107
- return await this.fork(validatedInput, provider);
108
- case 'star':
109
- return await this.star(validatedInput, provider);
110
- case 'comment':
111
- return await this.comment(validatedInput, provider);
112
- default:
113
- throw new Error(`Ação não suportada: ${validatedInput.action}`);
114
- }
115
- }
116
- catch (error) {
117
- return {
118
- success: false,
119
- action: input.action,
120
- message: 'Erro na operação de gist',
121
- error: error instanceof Error ? error.message : String(error)
122
- };
123
- }
124
- },
125
- async create(params, provider) {
126
- try {
127
- if (!params.files) {
128
- throw new Error('files são obrigatórios para create');
129
- }
130
- // Simular criação de gist (implementação real dependeria da API do GitHub)
131
- const gist = {
132
- id: `gist-${Date.now()}`,
133
- description: params.description || '',
134
- files: params.files,
135
- public: params.public || false,
136
- created_at: new Date().toISOString(),
137
- updated_at: new Date().toISOString()
138
- };
139
- return {
140
- success: true,
141
- action: 'create',
142
- message: 'Gist criado com sucesso',
143
- data: gist
144
- };
145
- }
146
- catch (error) {
147
- throw new Error(`Falha ao criar gist: ${error instanceof Error ? error.message : String(error)}`);
148
- }
149
- },
150
- async list(params, provider) {
151
- try {
152
- const page = params.page || 1;
153
- const limit = params.limit || 30;
154
- // Simular listagem de gists
155
- const gists = [
156
- {
157
- id: 'gist-1',
158
- description: 'Sample gist 1',
159
- public: true,
160
- created_at: new Date().toISOString()
161
- },
162
- {
163
- id: 'gist-2',
164
- description: 'Sample gist 2',
165
- public: false,
166
- created_at: new Date().toISOString()
167
- }
168
- ];
169
- return {
170
- success: true,
171
- action: 'list',
172
- message: `${gists.length} gists encontrados`,
173
- data: {
174
- gists,
175
- page,
176
- limit,
177
- total: gists.length
178
- }
179
- };
180
- }
181
- catch (error) {
182
- throw new Error(`Falha ao listar gists: ${error instanceof Error ? error.message : String(error)}`);
183
- }
184
- },
185
- async get(params, provider) {
186
- try {
187
- if (!params.gist_id) {
188
- throw new Error('gist_id é obrigatório para get');
189
- }
190
- // Simular obtenção de gist
191
- const gist = {
192
- id: params.gist_id,
193
- description: 'Sample gist',
194
- files: {
195
- 'example.js': {
196
- content: 'console.log("Hello, World!");',
197
- filename: 'example.js'
198
- }
199
- },
200
- public: true,
201
- created_at: new Date().toISOString(),
202
- updated_at: new Date().toISOString()
203
- };
204
- return {
205
- success: true,
206
- action: 'get',
207
- message: `Gist ${params.gist_id} obtido com sucesso`,
208
- data: gist
209
- };
210
- }
211
- catch (error) {
212
- throw new Error(`Falha ao obter gist: ${error instanceof Error ? error.message : String(error)}`);
213
- }
214
- },
215
- async update(params, provider) {
216
- try {
217
- if (!params.gist_id) {
218
- throw new Error('gist_id é obrigatório para update');
219
- }
220
- // Simular atualização de gist
221
- const gist = {
222
- id: params.gist_id,
223
- description: params.description || 'Updated gist',
224
- files: params.files || {},
225
- public: params.public,
226
- updated_at: new Date().toISOString()
227
- };
228
- return {
229
- success: true,
230
- action: 'update',
231
- message: `Gist ${params.gist_id} atualizado com sucesso`,
232
- data: gist
233
- };
234
- }
235
- catch (error) {
236
- throw new Error(`Falha ao atualizar gist: ${error instanceof Error ? error.message : String(error)}`);
237
- }
238
- },
239
- async delete(params, provider) {
240
- try {
241
- if (!params.gist_id) {
242
- throw new Error('gist_id é obrigatório para delete');
243
- }
244
- return {
245
- success: true,
246
- action: 'delete',
247
- message: `Gist ${params.gist_id} deletado com sucesso`,
248
- data: { deleted: true }
249
- };
250
- }
251
- catch (error) {
252
- throw new Error(`Falha ao deletar gist: ${error instanceof Error ? error.message : String(error)}`);
253
- }
254
- },
255
- async fork(params, provider) {
256
- try {
257
- if (!params.gist_id) {
258
- throw new Error('gist_id é obrigatório para fork');
259
- }
260
- // Simular fork de gist
261
- const forkedGist = {
262
- id: `gist-${Date.now()}`,
263
- description: `Fork of ${params.gist_id}`,
264
- forked_from: params.gist_id,
265
- created_at: new Date().toISOString()
266
- };
267
- return {
268
- success: true,
269
- action: 'fork',
270
- message: `Fork do gist ${params.gist_id} criado com sucesso`,
271
- data: forkedGist
272
- };
273
- }
274
- catch (error) {
275
- throw new Error(`Falha ao fazer fork do gist: ${error instanceof Error ? error.message : String(error)}`);
276
- }
277
- },
278
- async star(params, provider) {
279
- try {
280
- if (!params.gist_id) {
281
- throw new Error('gist_id é obrigatório para star');
282
- }
283
- const action = params.star ? 'favoritado' : 'desfavoritado';
284
- return {
285
- success: true,
286
- action: 'star',
287
- message: `Gist ${params.gist_id} ${action} com sucesso`,
288
- data: {
289
- gist_id: params.gist_id,
290
- starred: params.star
291
- }
292
- };
293
- }
294
- catch (error) {
295
- throw new Error(`Falha ao favoritar gist: ${error instanceof Error ? error.message : String(error)}`);
296
- }
297
- },
298
- async comment(params, provider) {
299
- try {
300
- if (!params.gist_id || !params.comment_body) {
301
- throw new Error('gist_id e comment_body são obrigatórios para comment');
302
- }
303
- // Simular comentário em gist
304
- const comment = {
305
- id: `comment-${Date.now()}`,
306
- gist_id: params.gist_id,
307
- body: params.comment_body,
308
- created_at: new Date().toISOString()
309
- };
310
- return {
311
- success: true,
312
- action: 'comment',
313
- message: `Comentário adicionado ao gist ${params.gist_id} com sucesso`,
314
- data: comment
315
- };
316
- }
317
- catch (error) {
318
- throw new Error(`Falha ao comentar no gist: ${error instanceof Error ? error.message : String(error)}`);
319
- }
320
- }
321
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ghGistsTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const index_js_1 = require("../providers/index.js");
6
+ /**
7
+ * Tool: gh-gists
8
+ *
9
+ * DESCRIÇÃO:
10
+ * Gerenciamento de Gists GitHub (exclusivo GitHub) com múltiplas ações
11
+ *
12
+ * FUNCIONALIDADES:
13
+ * - Criar gist
14
+ * - Listar gists
15
+ * - Obter gist
16
+ * - Atualizar gist
17
+ * - Deletar gist
18
+ * - Fazer fork do gist
19
+ * - Favoritar gist
20
+ * - Comentar gist
21
+ *
22
+ * USO:
23
+ * - Para compartilhar código rapidamente
24
+ * - Para snippets de código
25
+ * - Para documentação rápida
26
+ * - Para testes de código
27
+ *
28
+ * RECOMENDAÇÕES:
29
+ * - Use para código pequeno e focado
30
+ * - Adicione descrições claras
31
+ * - Use tags apropriadas
32
+ * - Mantenha gists organizados
33
+ */
34
+ const GhGistsInputSchema = zod_1.z.object({
35
+ action: zod_1.z.enum(['create', 'list', 'get', 'update', 'delete', 'fork', 'star', 'comment']),
36
+ // owner: obtido automaticamente do provider,
37
+ repo: zod_1.z.string(),
38
+ projectPath: zod_1.z.string().describe('Local project path for git operations'),
39
+ // Para create/update
40
+ gist_id: zod_1.z.string().optional(),
41
+ description: zod_1.z.string().optional(),
42
+ files: zod_1.z.record(zod_1.z.object({
43
+ content: zod_1.z.string(),
44
+ filename: zod_1.z.string().optional()
45
+ })).optional(),
46
+ public: zod_1.z.boolean().optional(),
47
+ // Para list
48
+ username: zod_1.z.string().optional(),
49
+ page: zod_1.z.number().min(1).optional(),
50
+ limit: zod_1.z.number().min(1).max(100).optional(),
51
+ // Para star
52
+ star: zod_1.z.boolean().optional(),
53
+ // Para comment
54
+ comment_body: zod_1.z.string().optional(),
55
+ });
56
+ const GhGistsResultSchema = zod_1.z.object({
57
+ success: zod_1.z.boolean(),
58
+ action: zod_1.z.string(),
59
+ message: zod_1.z.string(),
60
+ data: zod_1.z.any().optional(),
61
+ error: zod_1.z.string().optional()
62
+ });
63
+ exports.ghGistsTool = {
64
+ name: 'gh-gists',
65
+ description: 'tool: Gerencia GitHub Gists para compartilhamento de código\n──────────────\naction create: cria novo gist\naction create requires: files, description, public\n───────────────\naction list: lista gists\naction list requires: username, page, limit\n───────────────\naction get: obtém detalhes de gist específico\naction get requires: gist_id\n───────────────\naction update: atualiza gist existente\naction update requires: gist_id, description, files, public\n───────────────\naction delete: remove gist\naction delete requires: gist_id\n───────────────\naction fork: faz fork de gist\naction fork requires: gist_id\n───────────────\naction star: adiciona/remove estrela\naction star requires: gist_id, star\n───────────────\naction comment: adiciona comentário\naction comment requires: gist_id, comment_body',
66
+ inputSchema: {
67
+ type: 'object',
68
+ properties: {
69
+ action: {
70
+ type: 'string',
71
+ enum: ['create', 'list', 'get', 'update', 'delete', 'fork', 'star', 'comment'],
72
+ description: 'Action to perform on gists'
73
+ },
74
+ projectPath: { type: 'string', description: 'Local project path for git operations' },
75
+ gist_id: { type: 'string', description: 'Gist ID' },
76
+ description: { type: 'string', description: 'Gist description' },
77
+ files: { type: 'object', description: 'Gist files' },
78
+ public: { type: 'boolean', description: 'Public gist' },
79
+ username: { type: 'string', description: 'Username for listing gists' },
80
+ page: { type: 'number', description: 'Page number', minimum: 1 },
81
+ limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 },
82
+ star: { type: 'boolean', description: 'Star/unstar gist' },
83
+ comment_body: { type: 'string', description: 'Comment content' }
84
+ },
85
+ required: ['action', 'projectPath']
86
+ },
87
+ async handler(input) {
88
+ try {
89
+ const validatedInput = GhGistsInputSchema.parse(input);
90
+ // Fixar provider como github para tools exclusivas do GitHub
91
+ const provider = index_js_1.globalProviderFactory.getProvider('github');
92
+ if (!provider) {
93
+ throw new Error('Provider GitHub não encontrado');
94
+ }
95
+ switch (validatedInput.action) {
96
+ case 'create':
97
+ return await this.create(validatedInput, provider);
98
+ case 'list':
99
+ return await this.list(validatedInput, provider);
100
+ case 'get':
101
+ return await this.get(validatedInput, provider);
102
+ case 'update':
103
+ return await this.update(validatedInput, provider);
104
+ case 'delete':
105
+ return await this.delete(validatedInput, provider);
106
+ case 'fork':
107
+ return await this.fork(validatedInput, provider);
108
+ case 'star':
109
+ return await this.star(validatedInput, provider);
110
+ case 'comment':
111
+ return await this.comment(validatedInput, provider);
112
+ default:
113
+ throw new Error(`Ação não suportada: ${validatedInput.action}`);
114
+ }
115
+ }
116
+ catch (error) {
117
+ return {
118
+ success: false,
119
+ action: input.action,
120
+ message: 'Erro na operação de gist',
121
+ error: error instanceof Error ? error.message : String(error)
122
+ };
123
+ }
124
+ },
125
+ async create(params, provider) {
126
+ try {
127
+ if (!params.files) {
128
+ throw new Error('files são obrigatórios para create');
129
+ }
130
+ // Simular criação de gist (implementação real dependeria da API do GitHub)
131
+ const gist = {
132
+ id: `gist-${Date.now()}`,
133
+ description: params.description || '',
134
+ files: params.files,
135
+ public: params.public || false,
136
+ created_at: new Date().toISOString(),
137
+ updated_at: new Date().toISOString()
138
+ };
139
+ return {
140
+ success: true,
141
+ action: 'create',
142
+ message: 'Gist criado com sucesso',
143
+ data: gist
144
+ };
145
+ }
146
+ catch (error) {
147
+ throw new Error(`Falha ao criar gist: ${error instanceof Error ? error.message : String(error)}`);
148
+ }
149
+ },
150
+ async list(params, provider) {
151
+ try {
152
+ const page = params.page || 1;
153
+ const limit = params.limit || 30;
154
+ // Simular listagem de gists
155
+ const gists = [
156
+ {
157
+ id: 'gist-1',
158
+ description: 'Sample gist 1',
159
+ public: true,
160
+ created_at: new Date().toISOString()
161
+ },
162
+ {
163
+ id: 'gist-2',
164
+ description: 'Sample gist 2',
165
+ public: false,
166
+ created_at: new Date().toISOString()
167
+ }
168
+ ];
169
+ return {
170
+ success: true,
171
+ action: 'list',
172
+ message: `${gists.length} gists encontrados`,
173
+ data: {
174
+ gists,
175
+ page,
176
+ limit,
177
+ total: gists.length
178
+ }
179
+ };
180
+ }
181
+ catch (error) {
182
+ throw new Error(`Falha ao listar gists: ${error instanceof Error ? error.message : String(error)}`);
183
+ }
184
+ },
185
+ async get(params, provider) {
186
+ try {
187
+ if (!params.gist_id) {
188
+ throw new Error('gist_id é obrigatório para get');
189
+ }
190
+ // Simular obtenção de gist
191
+ const gist = {
192
+ id: params.gist_id,
193
+ description: 'Sample gist',
194
+ files: {
195
+ 'example.js': {
196
+ content: 'console.log("Hello, World!");',
197
+ filename: 'example.js'
198
+ }
199
+ },
200
+ public: true,
201
+ created_at: new Date().toISOString(),
202
+ updated_at: new Date().toISOString()
203
+ };
204
+ return {
205
+ success: true,
206
+ action: 'get',
207
+ message: `Gist ${params.gist_id} obtido com sucesso`,
208
+ data: gist
209
+ };
210
+ }
211
+ catch (error) {
212
+ throw new Error(`Falha ao obter gist: ${error instanceof Error ? error.message : String(error)}`);
213
+ }
214
+ },
215
+ async update(params, provider) {
216
+ try {
217
+ if (!params.gist_id) {
218
+ throw new Error('gist_id é obrigatório para update');
219
+ }
220
+ // Simular atualização de gist
221
+ const gist = {
222
+ id: params.gist_id,
223
+ description: params.description || 'Updated gist',
224
+ files: params.files || {},
225
+ public: params.public,
226
+ updated_at: new Date().toISOString()
227
+ };
228
+ return {
229
+ success: true,
230
+ action: 'update',
231
+ message: `Gist ${params.gist_id} atualizado com sucesso`,
232
+ data: gist
233
+ };
234
+ }
235
+ catch (error) {
236
+ throw new Error(`Falha ao atualizar gist: ${error instanceof Error ? error.message : String(error)}`);
237
+ }
238
+ },
239
+ async delete(params, provider) {
240
+ try {
241
+ if (!params.gist_id) {
242
+ throw new Error('gist_id é obrigatório para delete');
243
+ }
244
+ return {
245
+ success: true,
246
+ action: 'delete',
247
+ message: `Gist ${params.gist_id} deletado com sucesso`,
248
+ data: { deleted: true }
249
+ };
250
+ }
251
+ catch (error) {
252
+ throw new Error(`Falha ao deletar gist: ${error instanceof Error ? error.message : String(error)}`);
253
+ }
254
+ },
255
+ async fork(params, provider) {
256
+ try {
257
+ if (!params.gist_id) {
258
+ throw new Error('gist_id é obrigatório para fork');
259
+ }
260
+ // Simular fork de gist
261
+ const forkedGist = {
262
+ id: `gist-${Date.now()}`,
263
+ description: `Fork of ${params.gist_id}`,
264
+ forked_from: params.gist_id,
265
+ created_at: new Date().toISOString()
266
+ };
267
+ return {
268
+ success: true,
269
+ action: 'fork',
270
+ message: `Fork do gist ${params.gist_id} criado com sucesso`,
271
+ data: forkedGist
272
+ };
273
+ }
274
+ catch (error) {
275
+ throw new Error(`Falha ao fazer fork do gist: ${error instanceof Error ? error.message : String(error)}`);
276
+ }
277
+ },
278
+ async star(params, provider) {
279
+ try {
280
+ if (!params.gist_id) {
281
+ throw new Error('gist_id é obrigatório para star');
282
+ }
283
+ const action = params.star ? 'favoritado' : 'desfavoritado';
284
+ return {
285
+ success: true,
286
+ action: 'star',
287
+ message: `Gist ${params.gist_id} ${action} com sucesso`,
288
+ data: {
289
+ gist_id: params.gist_id,
290
+ starred: params.star
291
+ }
292
+ };
293
+ }
294
+ catch (error) {
295
+ throw new Error(`Falha ao favoritar gist: ${error instanceof Error ? error.message : String(error)}`);
296
+ }
297
+ },
298
+ async comment(params, provider) {
299
+ try {
300
+ if (!params.gist_id || !params.comment_body) {
301
+ throw new Error('gist_id e comment_body são obrigatórios para comment');
302
+ }
303
+ // Simular comentário em gist
304
+ const comment = {
305
+ id: `comment-${Date.now()}`,
306
+ gist_id: params.gist_id,
307
+ body: params.comment_body,
308
+ created_at: new Date().toISOString()
309
+ };
310
+ return {
311
+ success: true,
312
+ action: 'comment',
313
+ message: `Comentário adicionado ao gist ${params.gist_id} com sucesso`,
314
+ data: comment
315
+ };
316
+ }
317
+ catch (error) {
318
+ throw new Error(`Falha ao comentar no gist: ${error instanceof Error ? error.message : String(error)}`);
319
+ }
320
+ }
321
+ };
322
322
  //# sourceMappingURL=gh-gists.js.map