@andrebuzeli/git-mcp 2.12.8 → 2.13.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 (76) hide show
  1. package/dist/server.d.ts.map +1 -1
  2. package/dist/server.js +86 -28
  3. package/dist/server.js.map +1 -1
  4. package/dist/tools/branches.d.ts +2 -2
  5. package/dist/tools/code-review.d.ts +4 -4
  6. package/dist/tools/commits.d.ts +2 -2
  7. package/dist/tools/deployments.d.ts +4 -4
  8. package/dist/tools/gh-codespaces.d.ts +154 -0
  9. package/dist/tools/gh-codespaces.d.ts.map +1 -0
  10. package/dist/tools/gh-codespaces.js +286 -0
  11. package/dist/tools/gh-codespaces.js.map +1 -0
  12. package/dist/tools/gh-gists.d.ts +194 -0
  13. package/dist/tools/gh-gists.d.ts.map +1 -0
  14. package/dist/tools/gh-gists.js +328 -0
  15. package/dist/tools/gh-gists.js.map +1 -0
  16. package/dist/tools/gh-projects.d.ts +225 -0
  17. package/dist/tools/gh-projects.d.ts.map +1 -0
  18. package/dist/tools/gh-projects.js +365 -0
  19. package/dist/tools/gh-projects.js.map +1 -0
  20. package/dist/tools/gh-sync.d.ts +229 -0
  21. package/dist/tools/gh-sync.d.ts.map +1 -0
  22. package/dist/tools/gh-sync.js +384 -0
  23. package/dist/tools/gh-sync.js.map +1 -0
  24. package/dist/tools/git-archive.d.ts +169 -0
  25. package/dist/tools/git-archive.d.ts.map +1 -0
  26. package/dist/tools/git-archive.js +235 -0
  27. package/dist/tools/git-archive.js.map +1 -0
  28. package/dist/tools/git-bundle.d.ts +175 -0
  29. package/dist/tools/git-bundle.d.ts.map +1 -0
  30. package/dist/tools/git-bundle.js +258 -0
  31. package/dist/tools/git-bundle.js.map +1 -0
  32. package/dist/tools/git-cherry-pick.d.ts +162 -0
  33. package/dist/tools/git-cherry-pick.d.ts.map +1 -0
  34. package/dist/tools/git-cherry-pick.js +241 -0
  35. package/dist/tools/git-cherry-pick.js.map +1 -0
  36. package/dist/tools/git-config.d.ts +144 -0
  37. package/dist/tools/git-config.d.ts.map +1 -0
  38. package/dist/tools/git-config.js +293 -0
  39. package/dist/tools/git-config.js.map +1 -0
  40. package/dist/tools/git-rebase.d.ts +141 -0
  41. package/dist/tools/git-rebase.d.ts.map +1 -0
  42. package/dist/tools/git-rebase.js +234 -0
  43. package/dist/tools/git-rebase.js.map +1 -0
  44. package/dist/tools/git-remote.d.ts +142 -0
  45. package/dist/tools/git-remote.d.ts.map +1 -0
  46. package/dist/tools/git-remote.js +303 -0
  47. package/dist/tools/git-remote.js.map +1 -0
  48. package/dist/tools/git-repositories.d.ts +422 -0
  49. package/dist/tools/git-repositories.d.ts.map +1 -0
  50. package/dist/tools/git-repositories.js +557 -0
  51. package/dist/tools/git-repositories.js.map +1 -0
  52. package/dist/tools/git-reset.d.ts +134 -0
  53. package/dist/tools/git-reset.d.ts.map +1 -0
  54. package/dist/tools/git-reset.js +236 -0
  55. package/dist/tools/git-reset.js.map +1 -0
  56. package/dist/tools/git-revert.d.ts +153 -0
  57. package/dist/tools/git-revert.d.ts.map +1 -0
  58. package/dist/tools/git-revert.js +211 -0
  59. package/dist/tools/git-revert.js.map +1 -0
  60. package/dist/tools/git-stash.d.ts +144 -0
  61. package/dist/tools/git-stash.d.ts.map +1 -0
  62. package/dist/tools/git-stash.js +298 -0
  63. package/dist/tools/git-stash.js.map +1 -0
  64. package/dist/tools/git-submodule.d.ts +156 -0
  65. package/dist/tools/git-submodule.d.ts.map +1 -0
  66. package/dist/tools/git-submodule.js +314 -0
  67. package/dist/tools/git-submodule.js.map +1 -0
  68. package/dist/tools/git-sync.d.ts +4 -4
  69. package/dist/tools/git-worktree.d.ts +163 -0
  70. package/dist/tools/git-worktree.d.ts.map +1 -0
  71. package/dist/tools/git-worktree.js +294 -0
  72. package/dist/tools/git-worktree.js.map +1 -0
  73. package/dist/tools/pulls.d.ts +2 -2
  74. package/dist/tools/users.d.ts +2 -2
  75. package/dist/tools/version-control.d.ts +4 -4
  76. package/package.json +2 -2
@@ -0,0 +1,328 @@
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: zod_1.z.string(),
37
+ repo: zod_1.z.string(),
38
+ provider: zod_1.z.enum(['github']).describe('Provider to use (github only)'),
39
+ projectPath: zod_1.z.string().describe('Local project path for git operations'),
40
+ // Para create/update
41
+ gist_id: zod_1.z.string().optional(),
42
+ description: zod_1.z.string().optional(),
43
+ files: zod_1.z.record(zod_1.z.object({
44
+ content: zod_1.z.string(),
45
+ filename: zod_1.z.string().optional()
46
+ })).optional(),
47
+ public: zod_1.z.boolean().optional(),
48
+ // Para list
49
+ username: zod_1.z.string().optional(),
50
+ page: zod_1.z.number().min(1).optional(),
51
+ limit: zod_1.z.number().min(1).max(100).optional(),
52
+ // Para star
53
+ star: zod_1.z.boolean().optional(),
54
+ // Para comment
55
+ comment_body: zod_1.z.string().optional(),
56
+ });
57
+ const GhGistsResultSchema = zod_1.z.object({
58
+ success: zod_1.z.boolean(),
59
+ action: zod_1.z.string(),
60
+ message: zod_1.z.string(),
61
+ data: zod_1.z.any().optional(),
62
+ error: zod_1.z.string().optional()
63
+ });
64
+ exports.ghGistsTool = {
65
+ name: 'gh-gists',
66
+ description: 'Manage GitHub Gists (GitHub only) with multiple actions: create, list, get, update, delete, fork, star, comment. Exclusivo para GitHub. Boas práticas (solo): use para compartilhar código rapidamente, snippets de código, documentação rápida; use para código pequeno e focado, adicione descrições claras.',
67
+ inputSchema: {
68
+ type: 'object',
69
+ properties: {
70
+ action: {
71
+ type: 'string',
72
+ enum: ['create', 'list', 'get', 'update', 'delete', 'fork', 'star', 'comment'],
73
+ description: 'Action to perform on gists'
74
+ },
75
+ owner: { type: 'string', description: 'Repository owner' },
76
+ repo: { type: 'string', description: 'Repository name' },
77
+ provider: { type: 'string', enum: ['github'], description: 'Provider to use (github only)' },
78
+ projectPath: { type: 'string', description: 'Local project path for git operations' },
79
+ gist_id: { type: 'string', description: 'Gist ID' },
80
+ description: { type: 'string', description: 'Gist description' },
81
+ files: { type: 'object', description: 'Gist files' },
82
+ public: { type: 'boolean', description: 'Public gist' },
83
+ username: { type: 'string', description: 'Username for listing gists' },
84
+ page: { type: 'number', description: 'Page number', minimum: 1 },
85
+ limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 },
86
+ star: { type: 'boolean', description: 'Star/unstar gist' },
87
+ comment_body: { type: 'string', description: 'Comment content' }
88
+ },
89
+ required: ['action', 'owner', 'repo', 'provider', 'projectPath']
90
+ },
91
+ async handler(input) {
92
+ try {
93
+ const validatedInput = GhGistsInputSchema.parse(input);
94
+ if (validatedInput.provider !== 'github') {
95
+ throw new Error('gh-gists é exclusivo para GitHub');
96
+ }
97
+ const provider = index_js_1.globalProviderFactory.getProvider('github');
98
+ if (!provider) {
99
+ throw new Error('Provider GitHub não encontrado');
100
+ }
101
+ switch (validatedInput.action) {
102
+ case 'create':
103
+ return await this.create(validatedInput, provider);
104
+ case 'list':
105
+ return await this.list(validatedInput, provider);
106
+ case 'get':
107
+ return await this.get(validatedInput, provider);
108
+ case 'update':
109
+ return await this.update(validatedInput, provider);
110
+ case 'delete':
111
+ return await this.delete(validatedInput, provider);
112
+ case 'fork':
113
+ return await this.fork(validatedInput, provider);
114
+ case 'star':
115
+ return await this.star(validatedInput, provider);
116
+ case 'comment':
117
+ return await this.comment(validatedInput, provider);
118
+ default:
119
+ throw new Error(`Ação não suportada: ${validatedInput.action}`);
120
+ }
121
+ }
122
+ catch (error) {
123
+ return {
124
+ success: false,
125
+ action: input.action,
126
+ message: 'Erro na operação de gist',
127
+ error: error instanceof Error ? error.message : String(error)
128
+ };
129
+ }
130
+ },
131
+ async create(params, provider) {
132
+ try {
133
+ if (!params.files) {
134
+ throw new Error('files são obrigatórios para create');
135
+ }
136
+ // Simular criação de gist (implementação real dependeria da API do GitHub)
137
+ const gist = {
138
+ id: `gist-${Date.now()}`,
139
+ description: params.description || '',
140
+ files: params.files,
141
+ public: params.public || false,
142
+ created_at: new Date().toISOString(),
143
+ updated_at: new Date().toISOString()
144
+ };
145
+ return {
146
+ success: true,
147
+ action: 'create',
148
+ message: 'Gist criado com sucesso',
149
+ data: gist
150
+ };
151
+ }
152
+ catch (error) {
153
+ throw new Error(`Falha ao criar gist: ${error instanceof Error ? error.message : String(error)}`);
154
+ }
155
+ },
156
+ async list(params, provider) {
157
+ try {
158
+ const page = params.page || 1;
159
+ const limit = params.limit || 30;
160
+ // Simular listagem de gists
161
+ const gists = [
162
+ {
163
+ id: 'gist-1',
164
+ description: 'Sample gist 1',
165
+ public: true,
166
+ created_at: new Date().toISOString()
167
+ },
168
+ {
169
+ id: 'gist-2',
170
+ description: 'Sample gist 2',
171
+ public: false,
172
+ created_at: new Date().toISOString()
173
+ }
174
+ ];
175
+ return {
176
+ success: true,
177
+ action: 'list',
178
+ message: `${gists.length} gists encontrados`,
179
+ data: {
180
+ gists,
181
+ page,
182
+ limit,
183
+ total: gists.length
184
+ }
185
+ };
186
+ }
187
+ catch (error) {
188
+ throw new Error(`Falha ao listar gists: ${error instanceof Error ? error.message : String(error)}`);
189
+ }
190
+ },
191
+ async get(params, provider) {
192
+ try {
193
+ if (!params.gist_id) {
194
+ throw new Error('gist_id é obrigatório para get');
195
+ }
196
+ // Simular obtenção de gist
197
+ const gist = {
198
+ id: params.gist_id,
199
+ description: 'Sample gist',
200
+ files: {
201
+ 'example.js': {
202
+ content: 'console.log("Hello, World!");',
203
+ filename: 'example.js'
204
+ }
205
+ },
206
+ public: true,
207
+ created_at: new Date().toISOString(),
208
+ updated_at: new Date().toISOString()
209
+ };
210
+ return {
211
+ success: true,
212
+ action: 'get',
213
+ message: `Gist ${params.gist_id} obtido com sucesso`,
214
+ data: gist
215
+ };
216
+ }
217
+ catch (error) {
218
+ throw new Error(`Falha ao obter gist: ${error instanceof Error ? error.message : String(error)}`);
219
+ }
220
+ },
221
+ async update(params, provider) {
222
+ try {
223
+ if (!params.gist_id) {
224
+ throw new Error('gist_id é obrigatório para update');
225
+ }
226
+ // Simular atualização de gist
227
+ const gist = {
228
+ id: params.gist_id,
229
+ description: params.description || 'Updated gist',
230
+ files: params.files || {},
231
+ public: params.public,
232
+ updated_at: new Date().toISOString()
233
+ };
234
+ return {
235
+ success: true,
236
+ action: 'update',
237
+ message: `Gist ${params.gist_id} atualizado com sucesso`,
238
+ data: gist
239
+ };
240
+ }
241
+ catch (error) {
242
+ throw new Error(`Falha ao atualizar gist: ${error instanceof Error ? error.message : String(error)}`);
243
+ }
244
+ },
245
+ async delete(params, provider) {
246
+ try {
247
+ if (!params.gist_id) {
248
+ throw new Error('gist_id é obrigatório para delete');
249
+ }
250
+ return {
251
+ success: true,
252
+ action: 'delete',
253
+ message: `Gist ${params.gist_id} deletado com sucesso`,
254
+ data: { deleted: true }
255
+ };
256
+ }
257
+ catch (error) {
258
+ throw new Error(`Falha ao deletar gist: ${error instanceof Error ? error.message : String(error)}`);
259
+ }
260
+ },
261
+ async fork(params, provider) {
262
+ try {
263
+ if (!params.gist_id) {
264
+ throw new Error('gist_id é obrigatório para fork');
265
+ }
266
+ // Simular fork de gist
267
+ const forkedGist = {
268
+ id: `gist-${Date.now()}`,
269
+ description: `Fork of ${params.gist_id}`,
270
+ forked_from: params.gist_id,
271
+ created_at: new Date().toISOString()
272
+ };
273
+ return {
274
+ success: true,
275
+ action: 'fork',
276
+ message: `Fork do gist ${params.gist_id} criado com sucesso`,
277
+ data: forkedGist
278
+ };
279
+ }
280
+ catch (error) {
281
+ throw new Error(`Falha ao fazer fork do gist: ${error instanceof Error ? error.message : String(error)}`);
282
+ }
283
+ },
284
+ async star(params, provider) {
285
+ try {
286
+ if (!params.gist_id) {
287
+ throw new Error('gist_id é obrigatório para star');
288
+ }
289
+ const action = params.star ? 'favoritado' : 'desfavoritado';
290
+ return {
291
+ success: true,
292
+ action: 'star',
293
+ message: `Gist ${params.gist_id} ${action} com sucesso`,
294
+ data: {
295
+ gist_id: params.gist_id,
296
+ starred: params.star
297
+ }
298
+ };
299
+ }
300
+ catch (error) {
301
+ throw new Error(`Falha ao favoritar gist: ${error instanceof Error ? error.message : String(error)}`);
302
+ }
303
+ },
304
+ async comment(params, provider) {
305
+ try {
306
+ if (!params.gist_id || !params.comment_body) {
307
+ throw new Error('gist_id e comment_body são obrigatórios para comment');
308
+ }
309
+ // Simular comentário em gist
310
+ const comment = {
311
+ id: `comment-${Date.now()}`,
312
+ gist_id: params.gist_id,
313
+ body: params.comment_body,
314
+ created_at: new Date().toISOString()
315
+ };
316
+ return {
317
+ success: true,
318
+ action: 'comment',
319
+ message: `Comentário adicionado ao gist ${params.gist_id} com sucesso`,
320
+ data: comment
321
+ };
322
+ }
323
+ catch (error) {
324
+ throw new Error(`Falha ao comentar no gist: ${error instanceof Error ? error.message : String(error)}`);
325
+ }
326
+ }
327
+ };
328
+ //# sourceMappingURL=gh-gists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gh-gists.js","sourceRoot":"","sources":["../../src/tools/gh-gists.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,225 @@
1
+ import { z } from 'zod';
2
+ import { VcsOperations } from '../providers/index.js';
3
+ /**
4
+ * Tool: gh-projects
5
+ *
6
+ * DESCRIÇÃO:
7
+ * Gerenciamento de Projects GitHub (exclusivo GitHub) com múltiplas ações
8
+ *
9
+ * FUNCIONALIDADES:
10
+ * - Listar projetos
11
+ * - Criar projeto
12
+ * - Obter projeto
13
+ * - Atualizar projeto
14
+ * - Deletar projeto
15
+ * - Gerenciar itens do projeto
16
+ * - Gerenciar campos do projeto
17
+ *
18
+ * USO:
19
+ * - Para gerenciamento de projetos
20
+ * - Para organização de tarefas
21
+ * - Para planejamento de sprints
22
+ * - Para tracking de progresso
23
+ *
24
+ * RECOMENDAÇÕES:
25
+ * - Use para projetos de médio a longo prazo
26
+ * - Configure campos personalizados adequadamente
27
+ * - Mantenha itens organizados
28
+ * - Use templates quando possível
29
+ */
30
+ declare const GhProjectsInputSchema: z.ZodObject<{
31
+ action: z.ZodEnum<["list", "create", "get", "update", "delete", "items", "fields"]>;
32
+ owner: z.ZodString;
33
+ repo: z.ZodString;
34
+ provider: z.ZodEnum<["github"]>;
35
+ projectPath: z.ZodString;
36
+ project_id: z.ZodOptional<z.ZodString>;
37
+ title: z.ZodOptional<z.ZodString>;
38
+ body: z.ZodOptional<z.ZodString>;
39
+ state: z.ZodOptional<z.ZodEnum<["open", "closed"]>>;
40
+ public: z.ZodOptional<z.ZodBoolean>;
41
+ item_id: z.ZodOptional<z.ZodString>;
42
+ content_id: z.ZodOptional<z.ZodString>;
43
+ content_type: z.ZodOptional<z.ZodEnum<["Issue", "PullRequest", "DraftIssue"]>>;
44
+ field_id: z.ZodOptional<z.ZodString>;
45
+ field_value: z.ZodOptional<z.ZodString>;
46
+ field_name: z.ZodOptional<z.ZodString>;
47
+ field_type: z.ZodOptional<z.ZodEnum<["TEXT", "SINGLE_SELECT", "NUMBER", "DATE"]>>;
48
+ field_options: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
49
+ page: z.ZodOptional<z.ZodNumber>;
50
+ limit: z.ZodOptional<z.ZodNumber>;
51
+ }, "strip", z.ZodTypeAny, {
52
+ provider: "github";
53
+ owner: string;
54
+ repo: string;
55
+ action: "delete" | "get" | "create" | "list" | "update" | "items" | "fields";
56
+ projectPath: string;
57
+ title?: string | undefined;
58
+ body?: string | undefined;
59
+ state?: "open" | "closed" | undefined;
60
+ page?: number | undefined;
61
+ limit?: number | undefined;
62
+ content_type?: "Issue" | "PullRequest" | "DraftIssue" | undefined;
63
+ public?: boolean | undefined;
64
+ project_id?: string | undefined;
65
+ item_id?: string | undefined;
66
+ content_id?: string | undefined;
67
+ field_id?: string | undefined;
68
+ field_value?: string | undefined;
69
+ field_name?: string | undefined;
70
+ field_type?: "TEXT" | "SINGLE_SELECT" | "NUMBER" | "DATE" | undefined;
71
+ field_options?: string[] | undefined;
72
+ }, {
73
+ provider: "github";
74
+ owner: string;
75
+ repo: string;
76
+ action: "delete" | "get" | "create" | "list" | "update" | "items" | "fields";
77
+ projectPath: string;
78
+ title?: string | undefined;
79
+ body?: string | undefined;
80
+ state?: "open" | "closed" | undefined;
81
+ page?: number | undefined;
82
+ limit?: number | undefined;
83
+ content_type?: "Issue" | "PullRequest" | "DraftIssue" | undefined;
84
+ public?: boolean | undefined;
85
+ project_id?: string | undefined;
86
+ item_id?: string | undefined;
87
+ content_id?: string | undefined;
88
+ field_id?: string | undefined;
89
+ field_value?: string | undefined;
90
+ field_name?: string | undefined;
91
+ field_type?: "TEXT" | "SINGLE_SELECT" | "NUMBER" | "DATE" | undefined;
92
+ field_options?: string[] | undefined;
93
+ }>;
94
+ export type GhProjectsInput = z.infer<typeof GhProjectsInputSchema>;
95
+ declare const GhProjectsResultSchema: z.ZodObject<{
96
+ success: z.ZodBoolean;
97
+ action: z.ZodString;
98
+ message: z.ZodString;
99
+ data: z.ZodOptional<z.ZodAny>;
100
+ error: z.ZodOptional<z.ZodString>;
101
+ }, "strip", z.ZodTypeAny, {
102
+ message: string;
103
+ action: string;
104
+ success: boolean;
105
+ error?: string | undefined;
106
+ data?: any;
107
+ }, {
108
+ message: string;
109
+ action: string;
110
+ success: boolean;
111
+ error?: string | undefined;
112
+ data?: any;
113
+ }>;
114
+ export type GhProjectsResult = z.infer<typeof GhProjectsResultSchema>;
115
+ export declare const ghProjectsTool: {
116
+ name: string;
117
+ description: string;
118
+ inputSchema: {
119
+ type: string;
120
+ properties: {
121
+ action: {
122
+ type: string;
123
+ enum: string[];
124
+ description: string;
125
+ };
126
+ owner: {
127
+ type: string;
128
+ description: string;
129
+ };
130
+ repo: {
131
+ type: string;
132
+ description: string;
133
+ };
134
+ provider: {
135
+ type: string;
136
+ enum: string[];
137
+ description: string;
138
+ };
139
+ projectPath: {
140
+ type: string;
141
+ description: string;
142
+ };
143
+ project_id: {
144
+ type: string;
145
+ description: string;
146
+ };
147
+ title: {
148
+ type: string;
149
+ description: string;
150
+ };
151
+ body: {
152
+ type: string;
153
+ description: string;
154
+ };
155
+ state: {
156
+ type: string;
157
+ enum: string[];
158
+ description: string;
159
+ };
160
+ public: {
161
+ type: string;
162
+ description: string;
163
+ };
164
+ item_id: {
165
+ type: string;
166
+ description: string;
167
+ };
168
+ content_id: {
169
+ type: string;
170
+ description: string;
171
+ };
172
+ content_type: {
173
+ type: string;
174
+ enum: string[];
175
+ description: string;
176
+ };
177
+ field_id: {
178
+ type: string;
179
+ description: string;
180
+ };
181
+ field_value: {
182
+ type: string;
183
+ description: string;
184
+ };
185
+ field_name: {
186
+ type: string;
187
+ description: string;
188
+ };
189
+ field_type: {
190
+ type: string;
191
+ enum: string[];
192
+ description: string;
193
+ };
194
+ field_options: {
195
+ type: string;
196
+ items: {
197
+ type: string;
198
+ };
199
+ description: string;
200
+ };
201
+ page: {
202
+ type: string;
203
+ description: string;
204
+ minimum: number;
205
+ };
206
+ limit: {
207
+ type: string;
208
+ description: string;
209
+ minimum: number;
210
+ maximum: number;
211
+ };
212
+ };
213
+ required: string[];
214
+ };
215
+ handler(input: GhProjectsInput): Promise<GhProjectsResult>;
216
+ list(params: GhProjectsInput, provider: VcsOperations): Promise<GhProjectsResult>;
217
+ create(params: GhProjectsInput, provider: VcsOperations): Promise<GhProjectsResult>;
218
+ get(params: GhProjectsInput, provider: VcsOperations): Promise<GhProjectsResult>;
219
+ update(params: GhProjectsInput, provider: VcsOperations): Promise<GhProjectsResult>;
220
+ delete(params: GhProjectsInput, provider: VcsOperations): Promise<GhProjectsResult>;
221
+ items(params: GhProjectsInput, provider: VcsOperations): Promise<GhProjectsResult>;
222
+ fields(params: GhProjectsInput, provider: VcsOperations): Promise<GhProjectsResult>;
223
+ };
224
+ export {};
225
+ //# sourceMappingURL=gh-projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gh-projects.d.ts","sourceRoot":"","sources":["../../src/tools/gh-projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAyB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BzB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;EAM1B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAkCJ,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;iBAyC7C,eAAe,YAAY,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;mBA2ClE,eAAe,YAAY,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;gBA2BvE,eAAe,YAAY,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;mBAkCjE,eAAe,YAAY,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;mBA6BpE,eAAe,YAAY,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;kBAiBrE,eAAe,YAAY,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;mBA6CnE,eAAe,YAAY,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAyC1F,CAAC"}