@ghx-dev/core 0.1.2 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/.claude-plugin/plugin.json +21 -0
  2. package/README.md +49 -45
  3. package/dist/cards/issue.assignees.add.yaml +51 -0
  4. package/dist/cards/issue.assignees.remove.yaml +51 -0
  5. package/dist/cards/issue.assignees.set.yaml +48 -0
  6. package/dist/cards/issue.close.yaml +17 -2
  7. package/dist/cards/issue.comments.create.yaml +17 -2
  8. package/dist/cards/issue.comments.list.yaml +1 -0
  9. package/dist/cards/issue.create.yaml +12 -0
  10. package/dist/cards/issue.delete.yaml +17 -2
  11. package/dist/cards/issue.labels.add.yaml +49 -0
  12. package/dist/cards/issue.labels.remove.yaml +51 -0
  13. package/dist/cards/issue.labels.set.yaml +48 -0
  14. package/dist/cards/issue.list.yaml +1 -0
  15. package/dist/cards/issue.milestone.clear.yaml +41 -0
  16. package/dist/cards/issue.milestone.set.yaml +24 -4
  17. package/dist/{core/registry/cards/issue.blocked_by.add.yaml → cards/issue.relations.blocked_by.add.yaml} +4 -2
  18. package/dist/cards/{issue.blocked_by.remove.yaml → issue.relations.blocked_by.remove.yaml} +2 -1
  19. package/dist/cards/{issue.parent.remove.yaml → issue.relations.parent.remove.yaml} +12 -1
  20. package/dist/{core/registry/cards/issue.parent.set.yaml → cards/issue.relations.parent.set.yaml} +4 -2
  21. package/dist/{core/registry/cards/issue.linked_prs.list.yaml → cards/issue.relations.prs.list.yaml} +2 -1
  22. package/dist/cards/{issue.relations.get.yaml → issue.relations.view.yaml} +2 -1
  23. package/dist/cards/issue.reopen.yaml +17 -2
  24. package/dist/cards/issue.update.yaml +17 -2
  25. package/dist/cards/issue.view.yaml +8 -5
  26. package/dist/cards/pr.assignees.add.yaml +33 -0
  27. package/dist/cards/pr.assignees.remove.yaml +33 -0
  28. package/dist/cards/pr.branch.update.yaml +6 -2
  29. package/dist/{core/registry/cards/pr.status.checks.yaml → cards/pr.checks.list.yaml} +15 -2
  30. package/dist/{core/registry/cards/pr.checks.rerun_all.yaml → cards/pr.checks.rerun.all.yaml} +2 -4
  31. package/dist/{core/registry/cards/pr.checks.rerun_failed.yaml → cards/pr.checks.rerun.failed.yaml} +3 -5
  32. package/dist/cards/pr.create.yaml +34 -0
  33. package/dist/cards/{pr.diff.list_files.yaml → pr.diff.files.yaml} +2 -1
  34. package/dist/cards/{pr.ready_for_review.set.yaml → pr.diff.view.yaml} +6 -8
  35. package/dist/cards/pr.list.yaml +1 -0
  36. package/dist/{core/registry/cards/pr.mergeability.view.yaml → cards/pr.merge.status.yaml} +7 -3
  37. package/dist/{core/registry/cards/pr.merge.execute.yaml → cards/pr.merge.yaml} +10 -4
  38. package/dist/cards/pr.reviews.list.yaml +2 -1
  39. package/dist/cards/{pr.reviewers.request.yaml → pr.reviews.request.yaml} +7 -4
  40. package/dist/cards/pr.reviews.submit.yaml +68 -0
  41. package/dist/cards/{pr.comments.list.yaml → pr.threads.list.yaml} +3 -2
  42. package/dist/cards/{pr.comment.reply.yaml → pr.threads.reply.yaml} +5 -2
  43. package/dist/{core/registry/cards/pr.comment.resolve.yaml → cards/pr.threads.resolve.yaml} +2 -1
  44. package/dist/cards/{pr.comment.unresolve.yaml → pr.threads.unresolve.yaml} +2 -1
  45. package/dist/cards/pr.update.yaml +34 -0
  46. package/dist/cards/pr.view.yaml +8 -5
  47. package/dist/cards/project_v2.fields.list.yaml +18 -2
  48. package/dist/cards/{project_v2.item.field.update.yaml → project_v2.items.field.update.yaml} +9 -6
  49. package/dist/cards/{project_v2.item.add_issue.yaml → project_v2.items.issue.add.yaml} +10 -6
  50. package/dist/cards/project_v2.items.issue.remove.yaml +26 -0
  51. package/dist/cards/project_v2.items.list.yaml +8 -2
  52. package/dist/{core/registry/cards/project_v2.org.get.yaml → cards/project_v2.org.view.yaml} +7 -3
  53. package/dist/cards/{project_v2.user.get.yaml → project_v2.user.view.yaml} +7 -3
  54. package/dist/{core/registry/cards/release.create_draft.yaml → cards/release.create.yaml} +1 -1
  55. package/dist/cards/release.list.yaml +8 -3
  56. package/dist/cards/{release.publish_draft.yaml → release.publish.yaml} +1 -1
  57. package/dist/cards/{release.get.yaml → release.view.yaml} +9 -5
  58. package/dist/cards/repo.issue_types.list.yaml +7 -3
  59. package/dist/cards/repo.labels.list.yaml +7 -2
  60. package/dist/cards/repo.view.yaml +3 -4
  61. package/dist/cards/{workflow_dispatch.run.yaml → workflow.dispatch.yaml} +1 -1
  62. package/dist/cards/{workflow_job.logs.get.yaml → workflow.job.logs.raw.yaml} +2 -2
  63. package/dist/{core/registry/cards/workflow_job.logs.analyze.yaml → cards/workflow.job.logs.view.yaml} +1 -1
  64. package/dist/{core/registry/cards/workflow_run.artifacts.list.yaml → cards/workflow.run.artifacts.list.yaml} +1 -1
  65. package/dist/cards/{workflow_run.cancel.yaml → workflow.run.cancel.yaml} +1 -1
  66. package/dist/cards/{workflow_run.rerun_all.yaml → workflow.run.rerun.all.yaml} +3 -3
  67. package/dist/{core/registry/cards/workflow_run.rerun_failed.yaml → cards/workflow.run.rerun.failed.yaml} +3 -3
  68. package/dist/{core/registry/cards/workflow_run.get.yaml → cards/workflow.run.view.yaml} +19 -4
  69. package/dist/cards/{workflow_runs.list.yaml → workflow.runs.list.yaml} +1 -1
  70. package/dist/cards/{workflow.get.yaml → workflow.view.yaml} +2 -2
  71. package/dist/chunk-3DU2WHXF.js +15 -0
  72. package/dist/chunk-3DU2WHXF.js.map +1 -0
  73. package/dist/chunk-7HUKYNI2.js +536 -0
  74. package/dist/chunk-7HUKYNI2.js.map +1 -0
  75. package/dist/chunk-GQO6BHJV.js +98 -0
  76. package/dist/chunk-GQO6BHJV.js.map +1 -0
  77. package/dist/chunk-H7CLZHRO.js +280 -0
  78. package/dist/chunk-H7CLZHRO.js.map +1 -0
  79. package/dist/chunk-HEHONZTO.js +121 -0
  80. package/dist/chunk-HEHONZTO.js.map +1 -0
  81. package/dist/chunk-M5PJLKL5.js +6132 -0
  82. package/dist/chunk-M5PJLKL5.js.map +1 -0
  83. package/dist/chunk-NQ53ETYV.js +128 -0
  84. package/dist/chunk-NQ53ETYV.js.map +1 -0
  85. package/dist/chunk-OQWLEFAH.js +436 -0
  86. package/dist/chunk-OQWLEFAH.js.map +1 -0
  87. package/dist/chunk-Q2NW7DJE.js +878 -0
  88. package/dist/chunk-Q2NW7DJE.js.map +1 -0
  89. package/dist/chunk-QRHKAMRY.js +211 -0
  90. package/dist/chunk-QRHKAMRY.js.map +1 -0
  91. package/dist/chunk-R3CBGJZX.js +12 -0
  92. package/dist/chunk-R3CBGJZX.js.map +1 -0
  93. package/dist/chunk-TGL33GEA.js +132 -0
  94. package/dist/chunk-TGL33GEA.js.map +1 -0
  95. package/dist/chunk-TPQYVCAS.js +15 -0
  96. package/dist/chunk-TPQYVCAS.js.map +1 -0
  97. package/dist/chunk-ZGBVX2VG.js +32 -0
  98. package/dist/chunk-ZGBVX2VG.js.map +1 -0
  99. package/dist/cli/index.js +268 -22
  100. package/dist/cli/index.js.map +1 -1
  101. package/dist/core/registry/cards/issue.assignees.add.yaml +51 -0
  102. package/dist/core/registry/cards/issue.assignees.remove.yaml +51 -0
  103. package/dist/core/registry/cards/issue.assignees.set.yaml +48 -0
  104. package/dist/core/registry/cards/issue.close.yaml +17 -2
  105. package/dist/core/registry/cards/issue.comments.create.yaml +17 -2
  106. package/dist/core/registry/cards/issue.comments.list.yaml +1 -0
  107. package/dist/core/registry/cards/issue.create.yaml +12 -0
  108. package/dist/core/registry/cards/issue.delete.yaml +17 -2
  109. package/dist/core/registry/cards/issue.labels.add.yaml +49 -0
  110. package/dist/core/registry/cards/issue.labels.remove.yaml +51 -0
  111. package/dist/core/registry/cards/issue.labels.set.yaml +48 -0
  112. package/dist/core/registry/cards/issue.list.yaml +1 -0
  113. package/dist/core/registry/cards/issue.milestone.clear.yaml +41 -0
  114. package/dist/core/registry/cards/issue.milestone.set.yaml +24 -4
  115. package/dist/{cards/issue.blocked_by.add.yaml → core/registry/cards/issue.relations.blocked_by.add.yaml} +4 -2
  116. package/dist/core/registry/cards/{issue.blocked_by.remove.yaml → issue.relations.blocked_by.remove.yaml} +2 -1
  117. package/dist/core/registry/cards/{issue.parent.remove.yaml → issue.relations.parent.remove.yaml} +12 -1
  118. package/dist/{cards/issue.parent.set.yaml → core/registry/cards/issue.relations.parent.set.yaml} +4 -2
  119. package/dist/{cards/issue.linked_prs.list.yaml → core/registry/cards/issue.relations.prs.list.yaml} +2 -1
  120. package/dist/core/registry/cards/{issue.relations.get.yaml → issue.relations.view.yaml} +2 -1
  121. package/dist/core/registry/cards/issue.reopen.yaml +17 -2
  122. package/dist/core/registry/cards/issue.update.yaml +17 -2
  123. package/dist/core/registry/cards/issue.view.yaml +8 -5
  124. package/dist/core/registry/cards/pr.assignees.add.yaml +33 -0
  125. package/dist/core/registry/cards/pr.assignees.remove.yaml +33 -0
  126. package/dist/core/registry/cards/pr.branch.update.yaml +6 -2
  127. package/dist/{cards/pr.status.checks.yaml → core/registry/cards/pr.checks.list.yaml} +15 -2
  128. package/dist/{cards/pr.checks.rerun_all.yaml → core/registry/cards/pr.checks.rerun.all.yaml} +2 -4
  129. package/dist/{cards/pr.checks.rerun_failed.yaml → core/registry/cards/pr.checks.rerun.failed.yaml} +3 -5
  130. package/dist/core/registry/cards/pr.create.yaml +34 -0
  131. package/dist/core/registry/cards/{pr.diff.list_files.yaml → pr.diff.files.yaml} +2 -1
  132. package/dist/core/registry/cards/{pr.ready_for_review.set.yaml → pr.diff.view.yaml} +6 -8
  133. package/dist/core/registry/cards/pr.list.yaml +1 -0
  134. package/dist/{cards/pr.mergeability.view.yaml → core/registry/cards/pr.merge.status.yaml} +7 -3
  135. package/dist/{cards/pr.merge.execute.yaml → core/registry/cards/pr.merge.yaml} +10 -4
  136. package/dist/core/registry/cards/pr.reviews.list.yaml +2 -1
  137. package/dist/core/registry/cards/{pr.reviewers.request.yaml → pr.reviews.request.yaml} +7 -4
  138. package/dist/core/registry/cards/pr.reviews.submit.yaml +68 -0
  139. package/dist/core/registry/cards/{pr.comments.list.yaml → pr.threads.list.yaml} +3 -2
  140. package/dist/core/registry/cards/{pr.comment.reply.yaml → pr.threads.reply.yaml} +5 -2
  141. package/dist/{cards/pr.comment.resolve.yaml → core/registry/cards/pr.threads.resolve.yaml} +2 -1
  142. package/dist/core/registry/cards/{pr.comment.unresolve.yaml → pr.threads.unresolve.yaml} +2 -1
  143. package/dist/core/registry/cards/pr.update.yaml +34 -0
  144. package/dist/core/registry/cards/pr.view.yaml +8 -5
  145. package/dist/core/registry/cards/project_v2.fields.list.yaml +18 -2
  146. package/dist/core/registry/cards/{project_v2.item.field.update.yaml → project_v2.items.field.update.yaml} +9 -6
  147. package/dist/core/registry/cards/{project_v2.item.add_issue.yaml → project_v2.items.issue.add.yaml} +10 -6
  148. package/dist/core/registry/cards/project_v2.items.issue.remove.yaml +26 -0
  149. package/dist/core/registry/cards/project_v2.items.list.yaml +8 -2
  150. package/dist/{cards/project_v2.org.get.yaml → core/registry/cards/project_v2.org.view.yaml} +7 -3
  151. package/dist/core/registry/cards/{project_v2.user.get.yaml → project_v2.user.view.yaml} +7 -3
  152. package/dist/{cards/release.create_draft.yaml → core/registry/cards/release.create.yaml} +1 -1
  153. package/dist/core/registry/cards/release.list.yaml +8 -3
  154. package/dist/core/registry/cards/{release.publish_draft.yaml → release.publish.yaml} +1 -1
  155. package/dist/core/registry/cards/{release.get.yaml → release.view.yaml} +9 -5
  156. package/dist/core/registry/cards/repo.issue_types.list.yaml +7 -3
  157. package/dist/core/registry/cards/repo.labels.list.yaml +7 -2
  158. package/dist/core/registry/cards/repo.view.yaml +3 -4
  159. package/dist/core/registry/cards/{workflow_dispatch.run.yaml → workflow.dispatch.yaml} +1 -1
  160. package/dist/core/registry/cards/{workflow_job.logs.get.yaml → workflow.job.logs.raw.yaml} +2 -2
  161. package/dist/{cards/workflow_job.logs.analyze.yaml → core/registry/cards/workflow.job.logs.view.yaml} +1 -1
  162. package/dist/{cards/workflow_run.artifacts.list.yaml → core/registry/cards/workflow.run.artifacts.list.yaml} +1 -1
  163. package/dist/core/registry/cards/{workflow_run.cancel.yaml → workflow.run.cancel.yaml} +1 -1
  164. package/dist/core/registry/cards/{workflow_run.rerun_all.yaml → workflow.run.rerun.all.yaml} +3 -3
  165. package/dist/{cards/workflow_run.rerun_failed.yaml → core/registry/cards/workflow.run.rerun.failed.yaml} +3 -3
  166. package/dist/{cards/workflow_run.get.yaml → core/registry/cards/workflow.run.view.yaml} +19 -4
  167. package/dist/core/registry/cards/{workflow_runs.list.yaml → workflow.runs.list.yaml} +1 -1
  168. package/dist/core/registry/cards/{workflow.get.yaml → workflow.view.yaml} +2 -2
  169. package/dist/index.d.ts +671 -35
  170. package/dist/index.js +41 -5
  171. package/dist/index.js.map +1 -1
  172. package/dist/issue-mutations-OW464JP3.js +645 -0
  173. package/dist/issue-mutations-OW464JP3.js.map +1 -0
  174. package/dist/issue-queries-ORG3VPK4.js +93 -0
  175. package/dist/issue-queries-ORG3VPK4.js.map +1 -0
  176. package/dist/pr-mutations-WOTG6FAB.js +484 -0
  177. package/dist/pr-mutations-WOTG6FAB.js.map +1 -0
  178. package/dist/pr-queries-6CJJW7BT.js +143 -0
  179. package/dist/pr-queries-6CJJW7BT.js.map +1 -0
  180. package/dist/project-QFSCYDDW.js +429 -0
  181. package/dist/project-QFSCYDDW.js.map +1 -0
  182. package/dist/release-33236BBA.js +57 -0
  183. package/dist/release-33236BBA.js.map +1 -0
  184. package/dist/repo-M6DKCWBG.js +82 -0
  185. package/dist/repo-M6DKCWBG.js.map +1 -0
  186. package/package.json +19 -16
  187. package/skills/using-ghx/SKILL.md +127 -0
  188. package/dist/agent.d.ts +0 -32
  189. package/dist/agent.js +0 -36
  190. package/dist/agent.js.map +0 -1
  191. package/dist/cards/check_run.annotations.list.yaml +0 -35
  192. package/dist/cards/issue.assignees.update.yaml +0 -27
  193. package/dist/cards/issue.labels.update.yaml +0 -27
  194. package/dist/cards/pr.assignees.update.yaml +0 -38
  195. package/dist/cards/pr.checks.get_failed.yaml +0 -42
  196. package/dist/cards/pr.review.submit_approve.yaml +0 -26
  197. package/dist/cards/pr.review.submit_comment.yaml +0 -26
  198. package/dist/cards/pr.review.submit_request_changes.yaml +0 -26
  199. package/dist/cards/workflow_run.jobs.list.yaml +0 -35
  200. package/dist/chunk-2FCPR3XZ.js +0 -54
  201. package/dist/chunk-2FCPR3XZ.js.map +0 -1
  202. package/dist/chunk-RDUPMVHG.js +0 -4139
  203. package/dist/chunk-RDUPMVHG.js.map +0 -1
  204. package/dist/chunk-UN5YHUNK.js +0 -245
  205. package/dist/chunk-UN5YHUNK.js.map +0 -1
  206. package/dist/cli/assets/skills/ghx/SKILL.md +0 -57
  207. package/dist/core/registry/cards/check_run.annotations.list.yaml +0 -35
  208. package/dist/core/registry/cards/issue.assignees.update.yaml +0 -27
  209. package/dist/core/registry/cards/issue.labels.update.yaml +0 -27
  210. package/dist/core/registry/cards/pr.assignees.update.yaml +0 -38
  211. package/dist/core/registry/cards/pr.checks.get_failed.yaml +0 -42
  212. package/dist/core/registry/cards/pr.review.submit_approve.yaml +0 -26
  213. package/dist/core/registry/cards/pr.review.submit_comment.yaml +0 -26
  214. package/dist/core/registry/cards/pr.review.submit_request_changes.yaml +0 -26
  215. package/dist/core/registry/cards/workflow_run.jobs.list.yaml +0 -35
  216. package/dist/envelope-BpF6MNCv.d.ts +0 -55
@@ -0,0 +1,645 @@
1
+ import {
2
+ getSdk,
3
+ getSdk10 as getSdk11,
4
+ getSdk11 as getSdk12,
5
+ getSdk12 as getSdk13,
6
+ getSdk13 as getSdk14,
7
+ getSdk14 as getSdk15,
8
+ getSdk15 as getSdk16,
9
+ getSdk16 as getSdk17,
10
+ getSdk17 as getSdk18,
11
+ getSdk18 as getSdk19,
12
+ getSdk19 as getSdk20,
13
+ getSdk2,
14
+ getSdk20 as getSdk21,
15
+ getSdk21 as getSdk22,
16
+ getSdk22 as getSdk23,
17
+ getSdk23 as getSdk24,
18
+ getSdk24 as getSdk25,
19
+ getSdk3,
20
+ getSdk4,
21
+ getSdk5,
22
+ getSdk6,
23
+ getSdk7,
24
+ getSdk8,
25
+ getSdk9
26
+ } from "./chunk-Q2NW7DJE.js";
27
+ import "./chunk-3DU2WHXF.js";
28
+ import "./chunk-TPQYVCAS.js";
29
+ import {
30
+ getSdk as getSdk10
31
+ } from "./chunk-ZGBVX2VG.js";
32
+ import {
33
+ asRecord,
34
+ assertIssueAssigneesAddInput,
35
+ assertIssueAssigneesRemoveInput,
36
+ assertIssueAssigneesUpdateInput,
37
+ assertIssueBlockedByInput,
38
+ assertIssueCommentCreateInput,
39
+ assertIssueCreateInput,
40
+ assertIssueLabelsAddInput,
41
+ assertIssueLabelsRemoveInput,
42
+ assertIssueLabelsUpdateInput,
43
+ assertIssueLinkedPrsListInput,
44
+ assertIssueMilestoneSetInput,
45
+ assertIssueMutationInput,
46
+ assertIssueParentRemoveInput,
47
+ assertIssueParentSetInput,
48
+ assertIssueRelationsGetInput,
49
+ assertIssueUpdateInput,
50
+ assertNonEmptyString
51
+ } from "./chunk-OQWLEFAH.js";
52
+ import {
53
+ createGraphqlRequestClient
54
+ } from "./chunk-HEHONZTO.js";
55
+
56
+ // src/gql/domains/issue-mutations.ts
57
+ function parseIssueNode(issue) {
58
+ const issueRecord = asRecord(issue);
59
+ if (!issueRecord || typeof issueRecord.id !== "string" || typeof issueRecord.number !== "number") {
60
+ throw new Error("Issue mutation failed");
61
+ }
62
+ const result = {
63
+ id: issueRecord.id,
64
+ number: issueRecord.number
65
+ };
66
+ if (typeof issueRecord.title === "string") {
67
+ result.title = issueRecord.title;
68
+ }
69
+ if (typeof issueRecord.state === "string") {
70
+ result.state = issueRecord.state;
71
+ }
72
+ if (typeof issueRecord.url === "string") {
73
+ result.url = issueRecord.url;
74
+ }
75
+ return result;
76
+ }
77
+ async function runIssueCreate(transport, input) {
78
+ assertIssueCreateInput(input);
79
+ const client = createGraphqlRequestClient(transport);
80
+ const repositoryLookupResult = await getSdk10(
81
+ client
82
+ ).IssueCreateRepositoryId({
83
+ owner: input.owner,
84
+ name: input.name
85
+ });
86
+ const repositoryId = asRecord(repositoryLookupResult.repository)?.id;
87
+ if (typeof repositoryId !== "string" || repositoryId.length === 0) {
88
+ throw new Error("Repository not found");
89
+ }
90
+ const result = await getSdk9(client).IssueCreate({
91
+ repositoryId,
92
+ title: input.title,
93
+ ...input.body === void 0 ? {} : { body: input.body }
94
+ });
95
+ const issue = asRecord(asRecord(result)?.createIssue)?.issue;
96
+ return parseIssueNode(issue);
97
+ }
98
+ async function runIssueUpdate(transport, input) {
99
+ assertIssueUpdateInput(input);
100
+ const client = createGraphqlRequestClient(transport);
101
+ const lookupResult = await getSdk19(client).IssueNodeIdLookup({
102
+ owner: input.owner,
103
+ name: input.name,
104
+ issueNumber: input.issueNumber
105
+ });
106
+ const issueId = asRecord(asRecord(asRecord(lookupResult)?.repository)?.issue)?.id;
107
+ if (typeof issueId !== "string" || issueId.length === 0) {
108
+ throw new Error("Issue not found");
109
+ }
110
+ const result = await getSdk25(client).IssueUpdate({
111
+ issueId,
112
+ ...input.title === void 0 ? {} : { title: input.title },
113
+ ...input.body === void 0 ? {} : { body: input.body }
114
+ });
115
+ const issue = asRecord(asRecord(result)?.updateIssue)?.issue;
116
+ return parseIssueNode(issue);
117
+ }
118
+ async function runIssueClose(transport, input) {
119
+ assertIssueMutationInput(input);
120
+ const client = createGraphqlRequestClient(transport);
121
+ const lookupResult = await getSdk19(client).IssueNodeIdLookup({
122
+ owner: input.owner,
123
+ name: input.name,
124
+ issueNumber: input.issueNumber
125
+ });
126
+ const issueId = asRecord(asRecord(asRecord(lookupResult)?.repository)?.issue)?.id;
127
+ if (typeof issueId !== "string" || issueId.length === 0) {
128
+ throw new Error("Issue not found");
129
+ }
130
+ const result = await getSdk7(client).IssueClose({ issueId });
131
+ const issueData = parseIssueNode(asRecord(asRecord(result)?.closeIssue)?.issue);
132
+ return {
133
+ ...issueData,
134
+ closed: issueData.state === "CLOSED"
135
+ };
136
+ }
137
+ async function runIssueReopen(transport, input) {
138
+ assertIssueMutationInput(input);
139
+ const client = createGraphqlRequestClient(transport);
140
+ const lookupResult = await getSdk19(client).IssueNodeIdLookup({
141
+ owner: input.owner,
142
+ name: input.name,
143
+ issueNumber: input.issueNumber
144
+ });
145
+ const issueId = asRecord(asRecord(asRecord(lookupResult)?.repository)?.issue)?.id;
146
+ if (typeof issueId !== "string" || issueId.length === 0) {
147
+ throw new Error("Issue not found");
148
+ }
149
+ const result = await getSdk24(client).IssueReopen({ issueId });
150
+ const issueData = parseIssueNode(asRecord(asRecord(result)?.reopenIssue)?.issue);
151
+ return {
152
+ ...issueData,
153
+ reopened: issueData.state === "OPEN"
154
+ };
155
+ }
156
+ async function runIssueDelete(transport, input) {
157
+ assertIssueMutationInput(input);
158
+ const client = createGraphqlRequestClient(transport);
159
+ const lookupResult = await getSdk19(client).IssueNodeIdLookup({
160
+ owner: input.owner,
161
+ name: input.name,
162
+ issueNumber: input.issueNumber
163
+ });
164
+ const issueId = asRecord(asRecord(asRecord(lookupResult)?.repository)?.issue)?.id;
165
+ if (typeof issueId !== "string" || issueId.length === 0) {
166
+ throw new Error("Issue not found");
167
+ }
168
+ const result = await getSdk11(client).IssueDelete({ issueId });
169
+ const mutation = asRecord(asRecord(result)?.deleteIssue);
170
+ if (!mutation) {
171
+ throw new Error("Issue deletion failed");
172
+ }
173
+ return {
174
+ id: issueId,
175
+ number: 0,
176
+ deleted: true
177
+ };
178
+ }
179
+ async function runIssueLabelsUpdate(transport, input) {
180
+ assertIssueLabelsUpdateInput(input);
181
+ const client = createGraphqlRequestClient(transport);
182
+ const lookupResult = await getSdk13(client).IssueLabelsLookupByNumber({
183
+ owner: input.owner,
184
+ name: input.name,
185
+ issueNumber: input.issueNumber
186
+ });
187
+ const repo = asRecord(asRecord(lookupResult)?.repository);
188
+ const issueId = asRecord(repo?.issue)?.id;
189
+ if (typeof issueId !== "string" || issueId.length === 0) {
190
+ throw new Error("Issue not found");
191
+ }
192
+ const availableLabels = Array.isArray(asRecord(repo?.labels)?.nodes) ? asRecord(repo?.labels)?.nodes : [];
193
+ const labelIdsByName = /* @__PURE__ */ new Map();
194
+ for (const label of availableLabels) {
195
+ const labelRecord = asRecord(label);
196
+ if (typeof labelRecord?.name === "string" && typeof labelRecord?.id === "string") {
197
+ labelIdsByName.set(labelRecord.name.toLowerCase(), labelRecord.id);
198
+ }
199
+ }
200
+ const labelIds = input.labels.map((labelName) => {
201
+ const id = labelIdsByName.get(labelName.toLowerCase());
202
+ if (!id) {
203
+ throw new Error(`Label not found: ${labelName}`);
204
+ }
205
+ return id;
206
+ });
207
+ const result = await getSdk15(client).IssueLabelsUpdate({
208
+ issueId,
209
+ labelIds
210
+ });
211
+ const mutation = asRecord(asRecord(result)?.["updateIssue"]);
212
+ const issue = asRecord(mutation?.["issue"]);
213
+ const labels = asRecord(issue?.["labels"]);
214
+ const labelNodes = Array.isArray(labels?.["nodes"]) ? labels["nodes"] : [];
215
+ return {
216
+ id: assertNonEmptyString(issue?.["id"], "Issue id"),
217
+ labels: labelNodes.map((label) => asRecord(label)?.["name"]).filter((name) => typeof name === "string")
218
+ };
219
+ }
220
+ async function runIssueLabelsAdd(transport, input) {
221
+ assertIssueLabelsAddInput(input);
222
+ const client = createGraphqlRequestClient(transport);
223
+ const lookupResult = await getSdk13(client).IssueLabelsLookupByNumber({
224
+ owner: input.owner,
225
+ name: input.name,
226
+ issueNumber: input.issueNumber
227
+ });
228
+ const repo = asRecord(asRecord(lookupResult)?.repository);
229
+ const labelableId = asRecord(repo?.issue)?.id;
230
+ if (typeof labelableId !== "string" || labelableId.length === 0) {
231
+ throw new Error("Issue not found");
232
+ }
233
+ const availableLabels = Array.isArray(asRecord(repo?.labels)?.nodes) ? asRecord(repo?.labels)?.nodes : [];
234
+ const labelIdsByName = /* @__PURE__ */ new Map();
235
+ for (const label of availableLabels) {
236
+ const labelRecord = asRecord(label);
237
+ if (typeof labelRecord?.name === "string" && typeof labelRecord?.id === "string") {
238
+ labelIdsByName.set(labelRecord.name.toLowerCase(), labelRecord.id);
239
+ }
240
+ }
241
+ const labelIds = input.labels.map((labelName) => {
242
+ const id = labelIdsByName.get(labelName.toLowerCase());
243
+ if (!id) {
244
+ throw new Error(`Label not found: ${labelName}`);
245
+ }
246
+ return id;
247
+ });
248
+ const result = await getSdk12(client).IssueLabelsAdd({
249
+ labelableId,
250
+ labelIds
251
+ });
252
+ const mutation = asRecord(asRecord(result)?.["addLabelsToLabelable"]);
253
+ const labelable = asRecord(mutation?.["labelable"]);
254
+ const labels = asRecord(labelable?.["labels"]);
255
+ const labelNodes = Array.isArray(labels?.["nodes"]) ? labels["nodes"] : [];
256
+ return {
257
+ id: assertNonEmptyString(labelable?.["id"], "Issue id"),
258
+ labels: labelNodes.map((label) => asRecord(label)?.["name"]).filter((name) => typeof name === "string")
259
+ };
260
+ }
261
+ async function runIssueLabelsRemove(transport, input) {
262
+ assertIssueLabelsRemoveInput(input);
263
+ const client = createGraphqlRequestClient(transport);
264
+ const lookupResult = await getSdk13(client).IssueLabelsLookupByNumber({
265
+ owner: input.owner,
266
+ name: input.name,
267
+ issueNumber: input.issueNumber
268
+ });
269
+ const repo = asRecord(asRecord(lookupResult)?.repository);
270
+ const labelableId = asRecord(repo?.issue)?.id;
271
+ if (typeof labelableId !== "string" || labelableId.length === 0) {
272
+ throw new Error("Issue not found");
273
+ }
274
+ const availableLabels = Array.isArray(asRecord(repo?.labels)?.nodes) ? asRecord(repo?.labels)?.nodes : [];
275
+ const labelIdsByName = /* @__PURE__ */ new Map();
276
+ for (const label of availableLabels) {
277
+ const labelRecord = asRecord(label);
278
+ if (typeof labelRecord?.name === "string" && typeof labelRecord?.id === "string") {
279
+ labelIdsByName.set(labelRecord.name.toLowerCase(), labelRecord.id);
280
+ }
281
+ }
282
+ const labelIds = input.labels.map((labelName) => {
283
+ const id = labelIdsByName.get(labelName.toLowerCase());
284
+ if (!id) {
285
+ throw new Error(`Label not found: ${labelName}`);
286
+ }
287
+ return id;
288
+ });
289
+ await getSdk14(client).IssueLabelsRemove({
290
+ labelableId,
291
+ labelIds
292
+ });
293
+ return {
294
+ issueNumber: input.issueNumber,
295
+ removed: input.labels
296
+ };
297
+ }
298
+ async function runIssueAssigneesUpdate(transport, input) {
299
+ assertIssueAssigneesUpdateInput(input);
300
+ const client = createGraphqlRequestClient(transport);
301
+ const lookupResult = await getSdk2(
302
+ client
303
+ ).IssueAssigneesLookupByNumber({
304
+ owner: input.owner,
305
+ name: input.name,
306
+ issueNumber: input.issueNumber
307
+ });
308
+ const { assignableId, assigneeIds } = resolveAssigneeIds(lookupResult, input.assignees);
309
+ const result = await getSdk4(client).IssueAssigneesUpdate({
310
+ issueId: assignableId,
311
+ assigneeIds
312
+ });
313
+ const mutation = asRecord(asRecord(result)?.["updateIssue"]);
314
+ const issue = asRecord(mutation?.["issue"]);
315
+ const assignees = asRecord(issue?.["assignees"]);
316
+ const assigneeNodes = Array.isArray(assignees?.["nodes"]) ? assignees["nodes"] : [];
317
+ return {
318
+ id: assertNonEmptyString(issue?.["id"], "Issue id"),
319
+ assignees: assigneeNodes.map((assignee) => asRecord(assignee)?.["login"]).filter((login) => typeof login === "string")
320
+ };
321
+ }
322
+ function resolveAssigneeIds(lookupResult, assigneeLogins) {
323
+ const repo = asRecord(asRecord(lookupResult)?.repository);
324
+ const issueId = asRecord(repo?.issue)?.id;
325
+ if (typeof issueId !== "string" || issueId.length === 0) {
326
+ throw new Error("Issue not found");
327
+ }
328
+ const assignableNodes = Array.isArray(asRecord(repo?.assignableUsers)?.nodes) ? asRecord(repo?.assignableUsers)?.nodes : [];
329
+ const idsByLogin = /* @__PURE__ */ new Map();
330
+ for (const node of assignableNodes) {
331
+ const rec = asRecord(node);
332
+ if (typeof rec?.login === "string" && typeof rec?.id === "string") {
333
+ idsByLogin.set(rec.login.toLowerCase(), rec.id);
334
+ }
335
+ }
336
+ const assigneeIds = assigneeLogins.map((login) => {
337
+ const id = idsByLogin.get(login.toLowerCase());
338
+ if (!id) {
339
+ throw new Error(`Assignee not found: ${login}`);
340
+ }
341
+ return id;
342
+ });
343
+ return { assignableId: issueId, assigneeIds };
344
+ }
345
+ function parseAssignableResult(result, mutationKey) {
346
+ const mutation = asRecord(asRecord(result)?.[mutationKey]);
347
+ const assignable = asRecord(mutation?.assignable);
348
+ const assignees = asRecord(assignable?.assignees);
349
+ const nodes = Array.isArray(assignees?.nodes) ? assignees.nodes : [];
350
+ return {
351
+ id: assertNonEmptyString(assignable?.id, "Issue id"),
352
+ assignees: nodes.map((n) => asRecord(n)?.login).filter((login) => typeof login === "string")
353
+ };
354
+ }
355
+ async function runIssueAssigneesAdd(transport, input) {
356
+ assertIssueAssigneesAddInput(input);
357
+ const client = createGraphqlRequestClient(transport);
358
+ const lookupResult = await getSdk2(
359
+ client
360
+ ).IssueAssigneesLookupByNumber({
361
+ owner: input.owner,
362
+ name: input.name,
363
+ issueNumber: input.issueNumber
364
+ });
365
+ const { assignableId, assigneeIds } = resolveAssigneeIds(lookupResult, input.assignees);
366
+ const result = await getSdk(client).IssueAssigneesAdd({
367
+ assignableId,
368
+ assigneeIds
369
+ });
370
+ return parseAssignableResult(result, "addAssigneesToAssignable");
371
+ }
372
+ async function runIssueAssigneesRemove(transport, input) {
373
+ assertIssueAssigneesRemoveInput(input);
374
+ const client = createGraphqlRequestClient(transport);
375
+ const lookupResult = await getSdk2(
376
+ client
377
+ ).IssueAssigneesLookupByNumber({
378
+ owner: input.owner,
379
+ name: input.name,
380
+ issueNumber: input.issueNumber
381
+ });
382
+ const { assignableId, assigneeIds } = resolveAssigneeIds(lookupResult, input.assignees);
383
+ const result = await getSdk3(client).IssueAssigneesRemove({
384
+ assignableId,
385
+ assigneeIds
386
+ });
387
+ return parseAssignableResult(result, "removeAssigneesFromAssignable");
388
+ }
389
+ async function runIssueMilestoneSet(transport, input) {
390
+ assertIssueMilestoneSetInput(input);
391
+ const client = createGraphqlRequestClient(transport);
392
+ const lookupResult = await getSdk17(
393
+ client
394
+ ).IssueMilestoneLookupByNumber({
395
+ owner: input.owner,
396
+ name: input.name,
397
+ issueNumber: input.issueNumber,
398
+ milestoneNumber: input.milestoneNumber
399
+ });
400
+ const repo = asRecord(asRecord(lookupResult)?.repository);
401
+ const issueId = asRecord(repo?.issue)?.id;
402
+ const milestoneId = asRecord(repo?.milestone)?.id;
403
+ if (typeof issueId !== "string" || issueId.length === 0) {
404
+ throw new Error("Issue not found");
405
+ }
406
+ if (typeof milestoneId !== "string" || milestoneId.length === 0) {
407
+ throw new Error(`Milestone not found: ${input.milestoneNumber}`);
408
+ }
409
+ const result = await getSdk18(client).IssueMilestoneSet({
410
+ issueId,
411
+ milestoneId
412
+ });
413
+ const mutation = asRecord(asRecord(result)?.["updateIssue"]);
414
+ const issue = asRecord(mutation?.["issue"]);
415
+ const milestone = asRecord(issue?.["milestone"]);
416
+ return {
417
+ id: assertNonEmptyString(issue?.["id"], "Issue id"),
418
+ milestoneNumber: typeof milestone?.["number"] === "number" ? milestone["number"] : null
419
+ };
420
+ }
421
+ async function runIssueMilestoneClear(transport, input) {
422
+ assertIssueMutationInput(input);
423
+ const client = createGraphqlRequestClient(transport);
424
+ const lookupResult = await getSdk19(client).IssueNodeIdLookup({
425
+ owner: input.owner,
426
+ name: input.name,
427
+ issueNumber: input.issueNumber
428
+ });
429
+ const issueId = asRecord(asRecord(asRecord(lookupResult)?.repository)?.issue)?.id;
430
+ if (typeof issueId !== "string" || issueId.length === 0) {
431
+ throw new Error("Issue not found");
432
+ }
433
+ await getSdk18(client).IssueMilestoneSet({
434
+ issueId,
435
+ milestoneId: null
436
+ });
437
+ return {
438
+ issueNumber: input.issueNumber,
439
+ cleared: true
440
+ };
441
+ }
442
+ async function runIssueCommentCreate(transport, input) {
443
+ assertIssueCommentCreateInput(input);
444
+ const client = createGraphqlRequestClient(transport);
445
+ const lookupResult = await getSdk19(client).IssueNodeIdLookup({
446
+ owner: input.owner,
447
+ name: input.name,
448
+ issueNumber: input.issueNumber
449
+ });
450
+ const issueId = asRecord(asRecord(asRecord(lookupResult)?.repository)?.issue)?.id;
451
+ if (typeof issueId !== "string" || issueId.length === 0) {
452
+ throw new Error("Issue not found");
453
+ }
454
+ const result = await getSdk8(client).IssueCommentCreate({
455
+ issueId,
456
+ body: input.body
457
+ });
458
+ const mutation = asRecord(asRecord(result)?.["addComment"]);
459
+ const commentEdge = asRecord(mutation?.["commentEdge"]);
460
+ const node = asRecord(commentEdge?.["node"]);
461
+ if (!node || typeof node["id"] !== "string" || typeof node["body"] !== "string") {
462
+ throw new Error("Issue comment creation failed");
463
+ }
464
+ return {
465
+ id: node["id"],
466
+ body: node["body"],
467
+ url: typeof node["url"] === "string" ? node["url"] : ""
468
+ };
469
+ }
470
+ async function runIssueLinkedPrsList(transport, input) {
471
+ assertIssueLinkedPrsListInput(input);
472
+ const result = await getSdk16(
473
+ createGraphqlRequestClient(transport)
474
+ ).IssueLinkedPrsList({
475
+ owner: input.owner,
476
+ name: input.name,
477
+ issueNumber: input.issueNumber
478
+ });
479
+ const issue = asRecord(asRecord(asRecord(result)?.repository)?.issue);
480
+ const timelineItems = asRecord(issue?.timelineItems);
481
+ const nodes = Array.isArray(timelineItems?.nodes) ? timelineItems.nodes : [];
482
+ return {
483
+ items: nodes.map((node) => asRecord(asRecord(node)?.["subject"])).filter(
484
+ (subject) => Boolean(subject) && subject?.["__typename"] === "PullRequest"
485
+ ).flatMap((subject) => {
486
+ if (!subject) {
487
+ return [];
488
+ }
489
+ if (typeof subject["id"] !== "string" || typeof subject["number"] !== "number" || typeof subject["title"] !== "string" || typeof subject["state"] !== "string" || typeof subject["url"] !== "string") {
490
+ return [];
491
+ }
492
+ return [
493
+ {
494
+ id: subject["id"],
495
+ number: subject["number"],
496
+ title: subject["title"],
497
+ state: subject["state"],
498
+ url: subject["url"]
499
+ }
500
+ ];
501
+ })
502
+ };
503
+ }
504
+ function parseIssueRelationNode(node) {
505
+ const record = asRecord(node);
506
+ if (!record || typeof record.id !== "string" || typeof record.number !== "number") {
507
+ return null;
508
+ }
509
+ return {
510
+ id: record.id,
511
+ number: record.number
512
+ };
513
+ }
514
+ async function runIssueRelationsGet(transport, input) {
515
+ assertIssueRelationsGetInput(input);
516
+ const result = await getSdk23(
517
+ createGraphqlRequestClient(transport)
518
+ ).IssueRelationsGet({
519
+ owner: input.owner,
520
+ name: input.name,
521
+ issueNumber: input.issueNumber
522
+ });
523
+ const issue = asRecord(asRecord(asRecord(result)?.repository)?.issue);
524
+ const currentIssue = parseIssueRelationNode(issue);
525
+ if (!currentIssue) {
526
+ throw new Error("Issue relations not found");
527
+ }
528
+ const parent = parseIssueRelationNode(issue?.parent);
529
+ const subIssues = asRecord(issue?.["subIssues"]);
530
+ const blockedByConnection = asRecord(issue?.["blockedBy"]);
531
+ const childrenNodes = Array.isArray(subIssues?.["nodes"]) ? subIssues["nodes"] : [];
532
+ const blockedByNodes = Array.isArray(blockedByConnection?.["nodes"]) ? blockedByConnection["nodes"] : [];
533
+ return {
534
+ issue: currentIssue,
535
+ parent,
536
+ children: childrenNodes.map((node) => parseIssueRelationNode(node)).flatMap((node) => node ? [node] : []),
537
+ blockedBy: blockedByNodes.map((node) => parseIssueRelationNode(node)).flatMap((node) => node ? [node] : [])
538
+ };
539
+ }
540
+ async function runIssueParentSet(transport, input) {
541
+ assertIssueParentSetInput(input);
542
+ const result = await getSdk22(createGraphqlRequestClient(transport)).IssueParentSet({
543
+ issueId: input.issueId,
544
+ parentIssueId: input.parentIssueId
545
+ });
546
+ const mutation = asRecord(asRecord(result)?.addSubIssue);
547
+ const parentIssue = asRecord(mutation?.issue);
548
+ const subIssue = asRecord(mutation?.subIssue);
549
+ if (typeof parentIssue?.id !== "string" || typeof subIssue?.id !== "string") {
550
+ throw new Error("Issue parent update failed");
551
+ }
552
+ return {
553
+ issueId: subIssue.id,
554
+ parentIssueId: parentIssue.id,
555
+ updated: true
556
+ };
557
+ }
558
+ async function runIssueParentRemove(transport, input) {
559
+ assertIssueParentRemoveInput(input);
560
+ const client = createGraphqlRequestClient(transport);
561
+ const lookupResult = await getSdk20(client).IssueParentLookup({
562
+ issueId: input.issueId
563
+ });
564
+ const parentIssueId = asRecord(asRecord(asRecord(lookupResult)?.node)?.parent)?.id;
565
+ if (typeof parentIssueId !== "string" || parentIssueId.length === 0) {
566
+ throw new Error("Issue parent removal failed");
567
+ }
568
+ const result = await getSdk21(client).IssueParentRemove({
569
+ issueId: input.issueId,
570
+ parentIssueId
571
+ });
572
+ const mutation = asRecord(asRecord(result)?.removeSubIssue);
573
+ const parentIssue = asRecord(mutation?.issue);
574
+ const subIssue = asRecord(mutation?.subIssue);
575
+ if (typeof parentIssue?.id !== "string" || typeof subIssue?.id !== "string") {
576
+ throw new Error("Issue parent removal failed");
577
+ }
578
+ return {
579
+ issueId: subIssue.id,
580
+ parentRemoved: true
581
+ };
582
+ }
583
+ async function runIssueBlockedByAdd(transport, input) {
584
+ assertIssueBlockedByInput(input);
585
+ const result = await getSdk5(
586
+ createGraphqlRequestClient(transport)
587
+ ).IssueBlockedByAdd({
588
+ issueId: input.issueId,
589
+ blockedByIssueId: input.blockedByIssueId
590
+ });
591
+ const mutation = asRecord(asRecord(result)?.addBlockedBy);
592
+ const issue = asRecord(mutation?.issue);
593
+ const blockingIssue = asRecord(mutation?.blockingIssue);
594
+ if (typeof issue?.id !== "string" || typeof blockingIssue?.id !== "string") {
595
+ throw new Error("Issue dependency mutation failed");
596
+ }
597
+ return {
598
+ issueId: issue.id,
599
+ blockedByIssueId: blockingIssue.id,
600
+ added: true
601
+ };
602
+ }
603
+ async function runIssueBlockedByRemove(transport, input) {
604
+ assertIssueBlockedByInput(input);
605
+ const result = await getSdk6(
606
+ createGraphqlRequestClient(transport)
607
+ ).IssueBlockedByRemove({
608
+ issueId: input.issueId,
609
+ blockedByIssueId: input.blockedByIssueId
610
+ });
611
+ const mutation = asRecord(asRecord(result)?.removeBlockedBy);
612
+ const issue = asRecord(mutation?.issue);
613
+ const blockingIssue = asRecord(mutation?.blockingIssue);
614
+ if (typeof issue?.id !== "string" || typeof blockingIssue?.id !== "string") {
615
+ throw new Error("Issue dependency mutation failed");
616
+ }
617
+ return {
618
+ issueId: issue.id,
619
+ blockedByIssueId: blockingIssue.id,
620
+ removed: true
621
+ };
622
+ }
623
+ export {
624
+ runIssueAssigneesAdd,
625
+ runIssueAssigneesRemove,
626
+ runIssueAssigneesUpdate,
627
+ runIssueBlockedByAdd,
628
+ runIssueBlockedByRemove,
629
+ runIssueClose,
630
+ runIssueCommentCreate,
631
+ runIssueCreate,
632
+ runIssueDelete,
633
+ runIssueLabelsAdd,
634
+ runIssueLabelsRemove,
635
+ runIssueLabelsUpdate,
636
+ runIssueLinkedPrsList,
637
+ runIssueMilestoneClear,
638
+ runIssueMilestoneSet,
639
+ runIssueParentRemove,
640
+ runIssueParentSet,
641
+ runIssueRelationsGet,
642
+ runIssueReopen,
643
+ runIssueUpdate
644
+ };
645
+ //# sourceMappingURL=issue-mutations-OW464JP3.js.map