@opentabs-dev/opentabs-plugin-github 0.0.74

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 (157) hide show
  1. package/README.md +159 -0
  2. package/dist/adapter.iife.js +15870 -0
  3. package/dist/adapter.iife.js.map +7 -0
  4. package/dist/github-api.d.ts +15 -0
  5. package/dist/github-api.d.ts.map +1 -0
  6. package/dist/github-api.js +145 -0
  7. package/dist/github-api.js.map +1 -0
  8. package/dist/index.d.ts +14 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +98 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/tools/add-reaction.d.ts +21 -0
  13. package/dist/tools/add-reaction.d.ts.map +1 -0
  14. package/dist/tools/add-reaction.js +50 -0
  15. package/dist/tools/add-reaction.js.map +1 -0
  16. package/dist/tools/compare-commits.d.ts +22 -0
  17. package/dist/tools/compare-commits.d.ts.map +1 -0
  18. package/dist/tools/compare-commits.js +57 -0
  19. package/dist/tools/compare-commits.js.map +1 -0
  20. package/dist/tools/create-comment.d.ts +17 -0
  21. package/dist/tools/create-comment.d.ts.map +1 -0
  22. package/dist/tools/create-comment.js +26 -0
  23. package/dist/tools/create-comment.js.map +1 -0
  24. package/dist/tools/create-issue.d.ts +26 -0
  25. package/dist/tools/create-issue.d.ts.map +1 -0
  26. package/dist/tools/create-issue.js +38 -0
  27. package/dist/tools/create-issue.js.map +1 -0
  28. package/dist/tools/create-label.d.ts +16 -0
  29. package/dist/tools/create-label.d.ts.map +1 -0
  30. package/dist/tools/create-label.js +37 -0
  31. package/dist/tools/create-label.js.map +1 -0
  32. package/dist/tools/create-or-update-file.d.ts +15 -0
  33. package/dist/tools/create-or-update-file.d.ts.map +1 -0
  34. package/dist/tools/create-or-update-file.js +46 -0
  35. package/dist/tools/create-or-update-file.js.map +1 -0
  36. package/dist/tools/create-pull-request.d.ts +33 -0
  37. package/dist/tools/create-pull-request.d.ts.map +1 -0
  38. package/dist/tools/create-pull-request.js +41 -0
  39. package/dist/tools/create-pull-request.js.map +1 -0
  40. package/dist/tools/create-release.d.ts +25 -0
  41. package/dist/tools/create-release.d.ts.map +1 -0
  42. package/dist/tools/create-release.js +46 -0
  43. package/dist/tools/create-release.js.map +1 -0
  44. package/dist/tools/create-repo.d.ts +26 -0
  45. package/dist/tools/create-repo.d.ts.map +1 -0
  46. package/dist/tools/create-repo.js +42 -0
  47. package/dist/tools/create-repo.js.map +1 -0
  48. package/dist/tools/delete-file.d.ts +16 -0
  49. package/dist/tools/delete-file.d.ts.map +1 -0
  50. package/dist/tools/delete-file.js +48 -0
  51. package/dist/tools/delete-file.js.map +1 -0
  52. package/dist/tools/get-file-content.d.ts +11 -0
  53. package/dist/tools/get-file-content.d.ts.map +1 -0
  54. package/dist/tools/get-file-content.js +33 -0
  55. package/dist/tools/get-file-content.js.map +1 -0
  56. package/dist/tools/get-issue.d.ts +23 -0
  57. package/dist/tools/get-issue.d.ts.map +1 -0
  58. package/dist/tools/get-issue.js +25 -0
  59. package/dist/tools/get-issue.js.map +1 -0
  60. package/dist/tools/get-pull-request-diff.d.ts +9 -0
  61. package/dist/tools/get-pull-request-diff.d.ts.map +1 -0
  62. package/dist/tools/get-pull-request-diff.js +26 -0
  63. package/dist/tools/get-pull-request-diff.js.map +1 -0
  64. package/dist/tools/get-pull-request.d.ts +29 -0
  65. package/dist/tools/get-pull-request.d.ts.map +1 -0
  66. package/dist/tools/get-pull-request.js +25 -0
  67. package/dist/tools/get-pull-request.js.map +1 -0
  68. package/dist/tools/get-repo.d.ts +22 -0
  69. package/dist/tools/get-repo.d.ts.map +1 -0
  70. package/dist/tools/get-repo.js +24 -0
  71. package/dist/tools/get-repo.js.map +1 -0
  72. package/dist/tools/get-user-profile.d.ts +21 -0
  73. package/dist/tools/get-user-profile.d.ts.map +1 -0
  74. package/dist/tools/get-user-profile.js +24 -0
  75. package/dist/tools/get-user-profile.js.map +1 -0
  76. package/dist/tools/get-workflow-run.d.ts +19 -0
  77. package/dist/tools/get-workflow-run.d.ts.map +1 -0
  78. package/dist/tools/get-workflow-run.js +25 -0
  79. package/dist/tools/get-workflow-run.js.map +1 -0
  80. package/dist/tools/list-branches.d.ts +14 -0
  81. package/dist/tools/list-branches.d.ts.map +1 -0
  82. package/dist/tools/list-branches.js +30 -0
  83. package/dist/tools/list-branches.js.map +1 -0
  84. package/dist/tools/list-comments.d.ts +18 -0
  85. package/dist/tools/list-comments.d.ts.map +1 -0
  86. package/dist/tools/list-comments.js +31 -0
  87. package/dist/tools/list-comments.js.map +1 -0
  88. package/dist/tools/list-commits.d.ts +18 -0
  89. package/dist/tools/list-commits.d.ts.map +1 -0
  90. package/dist/tools/list-commits.js +33 -0
  91. package/dist/tools/list-commits.js.map +1 -0
  92. package/dist/tools/list-issues.d.ts +40 -0
  93. package/dist/tools/list-issues.d.ts.map +1 -0
  94. package/dist/tools/list-issues.js +42 -0
  95. package/dist/tools/list-issues.js.map +1 -0
  96. package/dist/tools/list-labels.d.ts +15 -0
  97. package/dist/tools/list-labels.d.ts.map +1 -0
  98. package/dist/tools/list-labels.js +30 -0
  99. package/dist/tools/list-labels.js.map +1 -0
  100. package/dist/tools/list-notifications.d.ts +19 -0
  101. package/dist/tools/list-notifications.d.ts.map +1 -0
  102. package/dist/tools/list-notifications.js +39 -0
  103. package/dist/tools/list-notifications.js.map +1 -0
  104. package/dist/tools/list-org-members.d.ts +14 -0
  105. package/dist/tools/list-org-members.d.ts.map +1 -0
  106. package/dist/tools/list-org-members.js +42 -0
  107. package/dist/tools/list-org-members.js.map +1 -0
  108. package/dist/tools/list-pull-request-files.d.ts +18 -0
  109. package/dist/tools/list-pull-request-files.d.ts.map +1 -0
  110. package/dist/tools/list-pull-request-files.js +48 -0
  111. package/dist/tools/list-pull-request-files.js.map +1 -0
  112. package/dist/tools/list-pull-requests.d.ts +47 -0
  113. package/dist/tools/list-pull-requests.d.ts.map +1 -0
  114. package/dist/tools/list-pull-requests.js +45 -0
  115. package/dist/tools/list-pull-requests.js.map +1 -0
  116. package/dist/tools/list-releases.d.ts +21 -0
  117. package/dist/tools/list-releases.d.ts.map +1 -0
  118. package/dist/tools/list-releases.js +30 -0
  119. package/dist/tools/list-releases.js.map +1 -0
  120. package/dist/tools/list-repos.d.ts +36 -0
  121. package/dist/tools/list-repos.d.ts.map +1 -0
  122. package/dist/tools/list-repos.js +48 -0
  123. package/dist/tools/list-repos.js.map +1 -0
  124. package/dist/tools/list-workflow-runs.d.ts +39 -0
  125. package/dist/tools/list-workflow-runs.d.ts.map +1 -0
  126. package/dist/tools/list-workflow-runs.js +62 -0
  127. package/dist/tools/list-workflow-runs.js.map +1 -0
  128. package/dist/tools/merge-pull-request.d.ts +18 -0
  129. package/dist/tools/merge-pull-request.d.ts.map +1 -0
  130. package/dist/tools/merge-pull-request.js +40 -0
  131. package/dist/tools/merge-pull-request.js.map +1 -0
  132. package/dist/tools/request-pull-request-review.d.ts +31 -0
  133. package/dist/tools/request-pull-request-review.d.ts.map +1 -0
  134. package/dist/tools/request-pull-request-review.js +32 -0
  135. package/dist/tools/request-pull-request-review.js.map +1 -0
  136. package/dist/tools/schemas.d.ts +403 -0
  137. package/dist/tools/schemas.d.ts.map +1 -0
  138. package/dist/tools/schemas.js +259 -0
  139. package/dist/tools/schemas.js.map +1 -0
  140. package/dist/tools/search-issues.d.ts +37 -0
  141. package/dist/tools/search-issues.d.ts.map +1 -0
  142. package/dist/tools/search-issues.js +46 -0
  143. package/dist/tools/search-issues.js.map +1 -0
  144. package/dist/tools/search-repos.d.ts +34 -0
  145. package/dist/tools/search-repos.d.ts.map +1 -0
  146. package/dist/tools/search-repos.js +41 -0
  147. package/dist/tools/search-repos.js.map +1 -0
  148. package/dist/tools/update-issue.d.ts +31 -0
  149. package/dist/tools/update-issue.d.ts.map +1 -0
  150. package/dist/tools/update-issue.js +41 -0
  151. package/dist/tools/update-issue.js.map +1 -0
  152. package/dist/tools/update-pull-request.d.ts +37 -0
  153. package/dist/tools/update-pull-request.d.ts.map +1 -0
  154. package/dist/tools/update-pull-request.js +41 -0
  155. package/dist/tools/update-pull-request.js.map +1 -0
  156. package/dist/tools.json +4005 -0
  157. package/package.json +55 -0
@@ -0,0 +1,37 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { api } from '../github-api.js';
4
+ import { labelSchema, mapLabel } from './schemas.js';
5
+ export const createLabel = defineTool({
6
+ name: 'create_label',
7
+ displayName: 'Create Label',
8
+ description: 'Create a new label in a repository.',
9
+ summary: 'Create a label in a repository',
10
+ icon: 'tag',
11
+ group: 'Issues',
12
+ input: z.object({
13
+ owner: z.string().min(1).describe('Repository owner (user or org)'),
14
+ repo: z.string().min(1).describe('Repository name'),
15
+ name: z.string().min(1).describe('Label name'),
16
+ color: z.string().optional().describe('Label hex color without the # prefix (e.g., "ff0000")'),
17
+ description: z.string().optional().describe('Label description'),
18
+ }),
19
+ output: z.object({
20
+ label: labelSchema.describe('The created label'),
21
+ }),
22
+ handle: async (params) => {
23
+ const body = {
24
+ name: params.name,
25
+ };
26
+ if (params.color !== undefined)
27
+ body.color = params.color;
28
+ if (params.description !== undefined)
29
+ body.description = params.description;
30
+ const data = await api(`/repos/${params.owner}/${params.repo}/labels`, {
31
+ method: 'POST',
32
+ body,
33
+ });
34
+ return { label: mapLabel(data) };
35
+ },
36
+ });
37
+ //# sourceMappingURL=create-label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-label.js","sourceRoot":"","sources":["../../src/tools/create-label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAiB,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEpE,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;IACpC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,qCAAqC;IAClD,OAAO,EAAE,gCAAgC;IACzC,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QAC9F,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KACjE,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KACjD,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAA4B;YACpC,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1D,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAE5E,MAAM,IAAI,GAAG,MAAM,GAAG,CAAW,UAAU,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,SAAS,EAAE;YAC/E,MAAM,EAAE,MAAM;YACd,IAAI;SACL,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnC,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ export declare const createOrUpdateFile: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ owner: z.ZodString;
4
+ repo: z.ZodString;
5
+ path: z.ZodString;
6
+ content: z.ZodString;
7
+ message: z.ZodString;
8
+ branch: z.ZodOptional<z.ZodString>;
9
+ sha: z.ZodOptional<z.ZodString>;
10
+ }, z.core.$strip>, z.ZodObject<{
11
+ sha: z.ZodString;
12
+ commit_sha: z.ZodString;
13
+ html_url: z.ZodString;
14
+ }, z.core.$strip>>;
15
+ //# sourceMappingURL=create-or-update-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-or-update-file.d.ts","sourceRoot":"","sources":["../../src/tools/create-or-update-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;kBA6C7B,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { api } from '../github-api.js';
4
+ export const createOrUpdateFile = defineTool({
5
+ name: 'create_or_update_file',
6
+ displayName: 'Create or Update File',
7
+ description: 'Create or update a file in a repository. To update an existing file, provide the current file SHA (obtainable from the contents API). Commits directly to the specified branch.',
8
+ summary: 'Create or update a file in a repository',
9
+ icon: 'file-edit',
10
+ group: 'Repositories',
11
+ input: z.object({
12
+ owner: z.string().min(1).describe('Repository owner (user or org)'),
13
+ repo: z.string().min(1).describe('Repository name'),
14
+ path: z.string().min(1).describe('File path relative to repository root'),
15
+ content: z.string().min(1).describe('File content as a UTF-8 string (will be base64-encoded automatically)'),
16
+ message: z.string().min(1).describe('Commit message'),
17
+ branch: z.string().optional().describe('Branch to commit to (defaults to the default branch)'),
18
+ sha: z.string().optional().describe('SHA of the file being replaced — required when updating an existing file'),
19
+ }),
20
+ output: z.object({
21
+ sha: z.string().describe('SHA of the created/updated file blob'),
22
+ commit_sha: z.string().describe('SHA of the commit'),
23
+ html_url: z.string().describe('URL to the file on GitHub'),
24
+ }),
25
+ handle: async (params) => {
26
+ const body = {
27
+ message: params.message,
28
+ content: btoa(unescape(encodeURIComponent(params.content))),
29
+ };
30
+ if (params.branch)
31
+ body.branch = params.branch;
32
+ if (params.sha)
33
+ body.sha = params.sha;
34
+ const encodedPath = params.path.split('/').map(encodeURIComponent).join('/');
35
+ const data = await api(`/repos/${params.owner}/${params.repo}/contents/${encodedPath}`, {
36
+ method: 'PUT',
37
+ body,
38
+ });
39
+ return {
40
+ sha: data.content?.sha ?? '',
41
+ commit_sha: data.commit?.sha ?? '',
42
+ html_url: data.content?.html_url ?? '',
43
+ };
44
+ },
45
+ });
46
+ //# sourceMappingURL=create-or-update-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-or-update-file.js","sourceRoot":"","sources":["../../src/tools/create-or-update-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;IAC3C,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,uBAAuB;IACpC,WAAW,EACT,iLAAiL;IACnL,OAAO,EAAE,yCAAyC;IAClD,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QACzE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uEAAuE,CAAC;QAC5G,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACrD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;QAC9F,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;KAChH,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAChE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;KAC3D,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAA4B;YACpC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;SAC5D,CAAC;QACF,IAAI,MAAM,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/C,IAAI,MAAM,CAAC,GAAG;YAAE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QAEtC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,MAAM,GAAG,CAGnB,UAAU,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,aAAa,WAAW,EAAE,EAAE;YAClE,MAAM,EAAE,KAAK;YACb,IAAI;SACL,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE;YAC5B,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE;YAClC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE;SACvC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { z } from 'zod';
2
+ export declare const createPullRequest: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ owner: z.ZodString;
4
+ repo: z.ZodString;
5
+ title: z.ZodString;
6
+ head: z.ZodString;
7
+ base: z.ZodString;
8
+ body: z.ZodOptional<z.ZodString>;
9
+ draft: z.ZodOptional<z.ZodBoolean>;
10
+ }, z.core.$strip>, z.ZodObject<{
11
+ pull_request: z.ZodObject<{
12
+ number: z.ZodNumber;
13
+ title: z.ZodString;
14
+ state: z.ZodString;
15
+ body: z.ZodString;
16
+ html_url: z.ZodString;
17
+ user_login: z.ZodString;
18
+ head_ref: z.ZodString;
19
+ base_ref: z.ZodString;
20
+ labels: z.ZodArray<z.ZodString>;
21
+ draft: z.ZodBoolean;
22
+ merged: z.ZodBoolean;
23
+ mergeable: z.ZodBoolean;
24
+ comments: z.ZodNumber;
25
+ commits: z.ZodNumber;
26
+ additions: z.ZodNumber;
27
+ deletions: z.ZodNumber;
28
+ changed_files: z.ZodNumber;
29
+ created_at: z.ZodString;
30
+ updated_at: z.ZodString;
31
+ }, z.core.$strip>;
32
+ }, z.core.$strip>>;
33
+ //# sourceMappingURL=create-pull-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-pull-request.d.ts","sourceRoot":"","sources":["../../src/tools/create-pull-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkC5B,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { api } from '../github-api.js';
4
+ import { mapPullRequest, pullRequestSchema } from './schemas.js';
5
+ export const createPullRequest = defineTool({
6
+ name: 'create_pull_request',
7
+ displayName: 'Create Pull Request',
8
+ description: 'Create a new pull request.',
9
+ summary: 'Create a new pull request',
10
+ icon: 'git-pull-request-arrow',
11
+ group: 'Pull Requests',
12
+ input: z.object({
13
+ owner: z.string().min(1).describe('Repository owner (user or org)'),
14
+ repo: z.string().min(1).describe('Repository name'),
15
+ title: z.string().min(1).describe('Pull request title'),
16
+ head: z.string().min(1).describe('Source branch name (or "user:branch" for cross-repo)'),
17
+ base: z.string().min(1).describe('Target branch name to merge into'),
18
+ body: z.string().optional().describe('Pull request description in Markdown'),
19
+ draft: z.boolean().optional().describe('Create as a draft PR (default: false)'),
20
+ }),
21
+ output: z.object({
22
+ pull_request: pullRequestSchema.describe('The created pull request'),
23
+ }),
24
+ handle: async (params) => {
25
+ const body = {
26
+ title: params.title,
27
+ head: params.head,
28
+ base: params.base,
29
+ };
30
+ if (params.body !== undefined)
31
+ body.body = params.body;
32
+ if (params.draft !== undefined)
33
+ body.draft = params.draft;
34
+ const data = await api(`/repos/${params.owner}/${params.repo}/pulls`, {
35
+ method: 'POST',
36
+ body,
37
+ });
38
+ return { pull_request: mapPullRequest(data) };
39
+ },
40
+ });
41
+ //# sourceMappingURL=create-pull-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-pull-request.js","sourceRoot":"","sources":["../../src/tools/create-pull-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;IAC1C,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,4BAA4B;IACzC,OAAO,EAAE,2BAA2B;IACpC,IAAI,EAAE,wBAAwB;IAC9B,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACvD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sDAAsD,CAAC;QACxF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QACpE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAC5E,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KAChF,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,YAAY,EAAE,iBAAiB,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACrE,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAA4B;YACpC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACvD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAE1D,MAAM,IAAI,GAAG,MAAM,GAAG,CAA0B,UAAU,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,QAAQ,EAAE;YAC7F,MAAM,EAAE,MAAM;YACd,IAAI;SACL,CAAC,CAAC;QACH,OAAO,EAAE,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAChD,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { z } from 'zod';
2
+ export declare const createRelease: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ owner: z.ZodString;
4
+ repo: z.ZodString;
5
+ tag_name: z.ZodString;
6
+ name: z.ZodOptional<z.ZodString>;
7
+ body: z.ZodOptional<z.ZodString>;
8
+ draft: z.ZodOptional<z.ZodBoolean>;
9
+ prerelease: z.ZodOptional<z.ZodBoolean>;
10
+ target_commitish: z.ZodOptional<z.ZodString>;
11
+ }, z.core.$strip>, z.ZodObject<{
12
+ release: z.ZodObject<{
13
+ id: z.ZodNumber;
14
+ tag_name: z.ZodString;
15
+ name: z.ZodString;
16
+ body: z.ZodString;
17
+ draft: z.ZodBoolean;
18
+ prerelease: z.ZodBoolean;
19
+ created_at: z.ZodString;
20
+ published_at: z.ZodString;
21
+ html_url: z.ZodString;
22
+ author_login: z.ZodString;
23
+ }, z.core.$strip>;
24
+ }, z.core.$strip>>;
25
+ //# sourceMappingURL=create-release.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-release.d.ts","sourceRoot":"","sources":["../../src/tools/create-release.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;kBAoCxB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { api } from '../github-api.js';
4
+ import { mapRelease, releaseSchema } from './schemas.js';
5
+ export const createRelease = defineTool({
6
+ name: 'create_release',
7
+ displayName: 'Create Release',
8
+ description: 'Create a new release for a repository. Optionally create as a draft or prerelease.',
9
+ summary: 'Create a release in a repository',
10
+ icon: 'package',
11
+ group: 'Repositories',
12
+ input: z.object({
13
+ owner: z.string().min(1).describe('Repository owner (user or org)'),
14
+ repo: z.string().min(1).describe('Repository name'),
15
+ tag_name: z.string().min(1).describe('Git tag name for the release'),
16
+ name: z.string().optional().describe('Release title'),
17
+ body: z.string().optional().describe('Release notes in Markdown'),
18
+ draft: z.boolean().optional().describe('Create as a draft release (default: false)'),
19
+ prerelease: z.boolean().optional().describe('Mark as a prerelease (default: false)'),
20
+ target_commitish: z.string().optional().describe('Branch or commit SHA to tag — defaults to the default branch'),
21
+ }),
22
+ output: z.object({
23
+ release: releaseSchema.describe('The created release'),
24
+ }),
25
+ handle: async (params) => {
26
+ const body = {
27
+ tag_name: params.tag_name,
28
+ };
29
+ if (params.name !== undefined)
30
+ body.name = params.name;
31
+ if (params.body !== undefined)
32
+ body.body = params.body;
33
+ if (params.draft !== undefined)
34
+ body.draft = params.draft;
35
+ if (params.prerelease !== undefined)
36
+ body.prerelease = params.prerelease;
37
+ if (params.target_commitish !== undefined)
38
+ body.target_commitish = params.target_commitish;
39
+ const data = await api(`/repos/${params.owner}/${params.repo}/releases`, {
40
+ method: 'POST',
41
+ body,
42
+ });
43
+ return { release: mapRelease(data) };
44
+ },
45
+ });
46
+ //# sourceMappingURL=create-release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-release.js","sourceRoot":"","sources":["../../src/tools/create-release.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAmB,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;IACtC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,oFAAoF;IACjG,OAAO,EAAE,kCAAkC;IAC3C,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACpE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACjE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QACpF,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QACpF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;KACjH,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KACvD,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAA4B;YACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACvD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACvD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1D,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACzE,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;YAAE,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAE3F,MAAM,IAAI,GAAG,MAAM,GAAG,CAAa,UAAU,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,WAAW,EAAE;YACnF,MAAM,EAAE,MAAM;YACd,IAAI;SACL,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;IACvC,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ export declare const createRepo: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ name: z.ZodString;
4
+ description: z.ZodOptional<z.ZodString>;
5
+ private: z.ZodOptional<z.ZodBoolean>;
6
+ auto_init: z.ZodOptional<z.ZodBoolean>;
7
+ gitignore_template: z.ZodOptional<z.ZodString>;
8
+ license_template: z.ZodOptional<z.ZodString>;
9
+ }, z.core.$strip>, z.ZodObject<{
10
+ repository: z.ZodObject<{
11
+ id: z.ZodNumber;
12
+ name: z.ZodString;
13
+ full_name: z.ZodString;
14
+ description: z.ZodString;
15
+ private: z.ZodBoolean;
16
+ html_url: z.ZodString;
17
+ default_branch: z.ZodString;
18
+ language: z.ZodString;
19
+ stargazers_count: z.ZodNumber;
20
+ forks_count: z.ZodNumber;
21
+ open_issues_count: z.ZodNumber;
22
+ archived: z.ZodBoolean;
23
+ updated_at: z.ZodString;
24
+ }, z.core.$strip>;
25
+ }, z.core.$strip>>;
26
+ //# sourceMappingURL=create-repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-repo.d.ts","sourceRoot":"","sources":["../../src/tools/create-repo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;kBAgCrB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { api } from '../github-api.js';
4
+ import { mapRepository, repositorySchema } from './schemas.js';
5
+ export const createRepo = defineTool({
6
+ name: 'create_repo',
7
+ displayName: 'Create Repository',
8
+ description: 'Create a new repository for the authenticated user.',
9
+ summary: 'Create a new repository',
10
+ icon: 'plus-circle',
11
+ group: 'Repositories',
12
+ input: z.object({
13
+ name: z.string().min(1).describe('Repository name'),
14
+ description: z.string().optional().describe('Short description of the repository'),
15
+ private: z.boolean().optional().describe('Whether the repository is private (default: false)'),
16
+ auto_init: z.boolean().optional().describe('Initialize with a README (default: false)'),
17
+ gitignore_template: z.string().optional().describe('Gitignore template name (e.g., "Node", "Python")'),
18
+ license_template: z.string().optional().describe('License template (e.g., "mit", "apache-2.0")'),
19
+ }),
20
+ output: z.object({
21
+ repository: repositorySchema.describe('The created repository'),
22
+ }),
23
+ handle: async (params) => {
24
+ const body = { name: params.name };
25
+ if (params.description !== undefined)
26
+ body.description = params.description;
27
+ if (params.private !== undefined)
28
+ body.private = params.private;
29
+ if (params.auto_init !== undefined)
30
+ body.auto_init = params.auto_init;
31
+ if (params.gitignore_template !== undefined)
32
+ body.gitignore_template = params.gitignore_template;
33
+ if (params.license_template !== undefined)
34
+ body.license_template = params.license_template;
35
+ const data = await api('/user/repos', {
36
+ method: 'POST',
37
+ body,
38
+ });
39
+ return { repository: mapRepository(data) };
40
+ },
41
+ });
42
+ //# sourceMappingURL=create-repo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-repo.js","sourceRoot":"","sources":["../../src/tools/create-repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE/D,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;IACnC,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,qDAAqD;IAClE,OAAO,EAAE,yBAAyB;IAClC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAClF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAC9F,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACvF,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACtG,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KACjG,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,UAAU,EAAE,gBAAgB,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KAChE,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5D,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC5E,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAChE,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACtE,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS;YAAE,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACjG,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;YAAE,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAE3F,MAAM,IAAI,GAAG,MAAM,GAAG,CAA0B,aAAa,EAAE;YAC7D,MAAM,EAAE,MAAM;YACd,IAAI;SACL,CAAC,CAAC;QACH,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7C,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ export declare const deleteFile: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ owner: z.ZodString;
4
+ repo: z.ZodString;
5
+ path: z.ZodString;
6
+ message: z.ZodString;
7
+ sha: z.ZodString;
8
+ branch: z.ZodOptional<z.ZodString>;
9
+ }, z.core.$strip>, z.ZodObject<{
10
+ commit: z.ZodObject<{
11
+ sha: z.ZodString;
12
+ message: z.ZodString;
13
+ url: z.ZodString;
14
+ }, z.core.$strip>;
15
+ }, z.core.$strip>>;
16
+ //# sourceMappingURL=delete-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-file.d.ts","sourceRoot":"","sources":["../../src/tools/delete-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;kBAuCrB,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { api } from '../github-api.js';
4
+ const deleteCommitSchema = z.object({
5
+ sha: z.string().describe('Commit SHA'),
6
+ message: z.string().describe('Commit message'),
7
+ url: z.string().describe('URL to the commit on GitHub'),
8
+ });
9
+ export const deleteFile = defineTool({
10
+ name: 'delete_file',
11
+ displayName: 'Delete File',
12
+ description: 'Delete a file from a repository. Requires the current file SHA (obtainable from the contents API). Commits directly to the specified branch.',
13
+ summary: 'Delete a file from a repository',
14
+ icon: 'file-x',
15
+ group: 'Repositories',
16
+ input: z.object({
17
+ owner: z.string().min(1).describe('Repository owner (user or org)'),
18
+ repo: z.string().min(1).describe('Repository name'),
19
+ path: z.string().min(1).describe('File path relative to repository root'),
20
+ message: z.string().min(1).describe('Commit message for the deletion'),
21
+ sha: z.string().min(1).describe('SHA of the file being deleted — required to prevent accidental overwrites'),
22
+ branch: z.string().optional().describe('Branch to commit to (defaults to the default branch)'),
23
+ }),
24
+ output: z.object({
25
+ commit: deleteCommitSchema.describe('The commit created by the deletion'),
26
+ }),
27
+ handle: async (params) => {
28
+ const body = {
29
+ message: params.message,
30
+ sha: params.sha,
31
+ };
32
+ if (params.branch !== undefined)
33
+ body.branch = params.branch;
34
+ const encodedPath = params.path.split('/').map(encodeURIComponent).join('/');
35
+ const data = await api(`/repos/${params.owner}/${params.repo}/contents/${encodedPath}`, {
36
+ method: 'DELETE',
37
+ body,
38
+ });
39
+ return {
40
+ commit: {
41
+ sha: data.commit?.sha ?? '',
42
+ message: data.commit?.message ?? '',
43
+ url: data.commit?.html_url ?? '',
44
+ },
45
+ };
46
+ },
47
+ });
48
+ //# sourceMappingURL=delete-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-file.js","sourceRoot":"","sources":["../../src/tools/delete-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC9C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CACxD,CAAC,CAAC;AAUH,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;IACnC,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,WAAW,EACT,8IAA8I;IAChJ,OAAO,EAAE,iCAAiC;IAC1C,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QACzE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACtE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2EAA2E,CAAC;QAC5G,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;KAC/F,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,oCAAoC,CAAC;KAC1E,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAA4B;YACpC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,EAAE,MAAM,CAAC,GAAG;SAChB,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE7D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,MAAM,GAAG,CAAoB,UAAU,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,aAAa,WAAW,EAAE,EAAE;YACzG,MAAM,EAAE,QAAQ;YAChB,IAAI;SACL,CAAC,CAAC;QACH,OAAO;YACL,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE;gBAC3B,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE;gBACnC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE;aACjC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ export declare const getFileContent: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ owner: z.ZodString;
4
+ repo: z.ZodString;
5
+ path: z.ZodString;
6
+ ref: z.ZodOptional<z.ZodString>;
7
+ }, z.core.$strip>, z.ZodObject<{
8
+ content: z.ZodString;
9
+ path: z.ZodString;
10
+ }, z.core.$strip>>;
11
+ //# sourceMappingURL=get-file-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-file-content.d.ts","sourceRoot":"","sources":["../../src/tools/get-file-content.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc;;;;;;;;kBA6BzB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { apiRaw } from '../github-api.js';
4
+ export const getFileContent = defineTool({
5
+ name: 'get_file_content',
6
+ displayName: 'Get File Content',
7
+ description: 'Read a file from a repository. Returns the raw content as text. Use the ref parameter to read from a specific branch or commit.',
8
+ summary: 'Read a file from a repository',
9
+ icon: 'file-text',
10
+ group: 'Repositories',
11
+ input: z.object({
12
+ owner: z.string().min(1).describe('Repository owner (user or org)'),
13
+ repo: z.string().min(1).describe('Repository name'),
14
+ path: z.string().min(1).describe('File path relative to repository root (e.g., "src/index.ts")'),
15
+ ref: z.string().optional().describe('Branch name, tag, or commit SHA (defaults to the default branch)'),
16
+ }),
17
+ output: z.object({
18
+ content: z.string().describe('Raw file content as text'),
19
+ path: z.string().describe('File path'),
20
+ }),
21
+ handle: async (params) => {
22
+ const query = {};
23
+ if (params.ref)
24
+ query.ref = params.ref;
25
+ const encodedPath = params.path.split('/').map(encodeURIComponent).join('/');
26
+ const content = await apiRaw(`/repos/${params.owner}/${params.repo}/contents/${encodedPath}`, {
27
+ query,
28
+ accept: 'application/vnd.github.raw+json',
29
+ });
30
+ return { content, path: params.path };
31
+ },
32
+ });
33
+ //# sourceMappingURL=get-file-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-file-content.js","sourceRoot":"","sources":["../../src/tools/get-file-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACvC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EACT,iIAAiI;IACnI,OAAO,EAAE,+BAA+B;IACxC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8DAA8D,CAAC;QAChG,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;KACxG,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACxD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;KACvC,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,KAAK,GAA0D,EAAE,CAAC;QACxE,IAAI,MAAM,CAAC,GAAG;YAAE,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QAEvC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,aAAa,WAAW,EAAE,EAAE;YAC5F,KAAK;YACL,MAAM,EAAE,iCAAiC;SAC1C,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ export declare const getIssue: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ owner: z.ZodString;
4
+ repo: z.ZodString;
5
+ issue_number: z.ZodNumber;
6
+ }, z.core.$strip>, z.ZodObject<{
7
+ issue: z.ZodObject<{
8
+ number: z.ZodNumber;
9
+ title: z.ZodString;
10
+ state: z.ZodString;
11
+ body: z.ZodString;
12
+ html_url: z.ZodString;
13
+ user_login: z.ZodString;
14
+ labels: z.ZodArray<z.ZodString>;
15
+ assignees: z.ZodArray<z.ZodString>;
16
+ comments: z.ZodNumber;
17
+ created_at: z.ZodString;
18
+ updated_at: z.ZodString;
19
+ closed_at: z.ZodString;
20
+ is_pull_request: z.ZodBoolean;
21
+ }, z.core.$strip>;
22
+ }, z.core.$strip>>;
23
+ //# sourceMappingURL=get-issue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-issue.d.ts","sourceRoot":"","sources":["../../src/tools/get-issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;kBAqBnB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { api } from '../github-api.js';
4
+ import { issueSchema, mapIssue } from './schemas.js';
5
+ export const getIssue = defineTool({
6
+ name: 'get_issue',
7
+ displayName: 'Get Issue',
8
+ description: 'Get detailed information about a specific issue, including its full body.',
9
+ summary: 'Get details of a specific issue',
10
+ icon: 'circle-dot',
11
+ group: 'Issues',
12
+ input: z.object({
13
+ owner: z.string().min(1).describe('Repository owner (user or org)'),
14
+ repo: z.string().min(1).describe('Repository name'),
15
+ issue_number: z.number().int().min(1).describe('Issue number'),
16
+ }),
17
+ output: z.object({
18
+ issue: issueSchema.describe('Issue details'),
19
+ }),
20
+ handle: async (params) => {
21
+ const data = await api(`/repos/${params.owner}/${params.repo}/issues/${params.issue_number}`);
22
+ return { issue: mapIssue(data) };
23
+ },
24
+ });
25
+ //# sourceMappingURL=get-issue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-issue.js","sourceRoot":"","sources":["../../src/tools/get-issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;IACjC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,2EAA2E;IACxF,OAAO,EAAE,iCAAiC;IAC1C,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;KAC/D,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC7C,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,GAAG,CACpB,UAAU,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,YAAY,EAAE,CACtE,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnC,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export declare const getPullRequestDiff: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ owner: z.ZodString;
4
+ repo: z.ZodString;
5
+ pull_number: z.ZodNumber;
6
+ }, z.core.$strip>, z.ZodObject<{
7
+ diff: z.ZodString;
8
+ }, z.core.$strip>>;
9
+ //# sourceMappingURL=get-pull-request-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-pull-request-diff.d.ts","sourceRoot":"","sources":["../../src/tools/get-pull-request-diff.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,kBAAkB;;;;;;kBAqB7B,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { apiRaw } from '../github-api.js';
4
+ export const getPullRequestDiff = defineTool({
5
+ name: 'get_pull_request_diff',
6
+ displayName: 'Get Pull Request Diff',
7
+ description: 'Get the raw diff of a pull request. Returns the unified diff text for all changed files.',
8
+ summary: 'Get the raw diff of a pull request',
9
+ icon: 'file-diff',
10
+ group: 'Pull Requests',
11
+ input: z.object({
12
+ owner: z.string().min(1).describe('Repository owner (user or org)'),
13
+ repo: z.string().min(1).describe('Repository name'),
14
+ pull_number: z.number().int().min(1).describe('Pull request number'),
15
+ }),
16
+ output: z.object({
17
+ diff: z.string().describe('Raw unified diff text'),
18
+ }),
19
+ handle: async (params) => {
20
+ const diff = await apiRaw(`/repos/${params.owner}/${params.repo}/pulls/${params.pull_number}`, {
21
+ accept: 'application/vnd.github.diff',
22
+ });
23
+ return { diff };
24
+ },
25
+ });
26
+ //# sourceMappingURL=get-pull-request-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-pull-request-diff.js","sourceRoot":"","sources":["../../src/tools/get-pull-request-diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;IAC3C,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,0FAA0F;IACvG,OAAO,EAAE,oCAAoC;IAC7C,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KACrE,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KACnD,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,WAAW,EAAE,EAAE;YAC7F,MAAM,EAAE,6BAA6B;SACtC,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ export declare const getPullRequest: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ owner: z.ZodString;
4
+ repo: z.ZodString;
5
+ pull_number: z.ZodNumber;
6
+ }, z.core.$strip>, z.ZodObject<{
7
+ pull_request: z.ZodObject<{
8
+ number: z.ZodNumber;
9
+ title: z.ZodString;
10
+ state: z.ZodString;
11
+ body: z.ZodString;
12
+ html_url: z.ZodString;
13
+ user_login: z.ZodString;
14
+ head_ref: z.ZodString;
15
+ base_ref: z.ZodString;
16
+ labels: z.ZodArray<z.ZodString>;
17
+ draft: z.ZodBoolean;
18
+ merged: z.ZodBoolean;
19
+ mergeable: z.ZodBoolean;
20
+ comments: z.ZodNumber;
21
+ commits: z.ZodNumber;
22
+ additions: z.ZodNumber;
23
+ deletions: z.ZodNumber;
24
+ changed_files: z.ZodNumber;
25
+ created_at: z.ZodString;
26
+ updated_at: z.ZodString;
27
+ }, z.core.$strip>;
28
+ }, z.core.$strip>>;
29
+ //# sourceMappingURL=get-pull-request.d.ts.map