@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,33 @@
1
+ capability_id: pr.assignees.add
2
+ version: "1.0.0"
3
+ description: Add assignees to a pull request without replacing existing ones.
4
+ input_schema:
5
+ type: object
6
+ required: [owner, name, prNumber, assignees]
7
+ properties:
8
+ owner: { type: string, minLength: 1 }
9
+ name: { type: string, minLength: 1 }
10
+ prNumber: { type: integer, minimum: 1 }
11
+ assignees:
12
+ type: array
13
+ items: { type: string, minLength: 1 }
14
+ minItems: 1
15
+ additionalProperties: false
16
+ output_schema:
17
+ type: object
18
+ required: [prNumber, added]
19
+ properties:
20
+ prNumber: { type: integer, minimum: 1 }
21
+ added:
22
+ type: array
23
+ items: { type: string }
24
+ additionalProperties: false
25
+ routing:
26
+ preferred: graphql
27
+ fallbacks: [cli]
28
+ graphql:
29
+ operationName: PrAssigneesAdd
30
+ operationType: mutation
31
+ documentPath: src/gql/operations/pr-assignees-add.graphql
32
+ cli:
33
+ command: pr edit
@@ -0,0 +1,33 @@
1
+ capability_id: pr.assignees.remove
2
+ version: "1.0.0"
3
+ description: Remove specific assignees from a pull request.
4
+ input_schema:
5
+ type: object
6
+ required: [owner, name, prNumber, assignees]
7
+ properties:
8
+ owner: { type: string, minLength: 1 }
9
+ name: { type: string, minLength: 1 }
10
+ prNumber: { type: integer, minimum: 1 }
11
+ assignees:
12
+ type: array
13
+ items: { type: string, minLength: 1 }
14
+ minItems: 1
15
+ additionalProperties: false
16
+ output_schema:
17
+ type: object
18
+ required: [prNumber, removed]
19
+ properties:
20
+ prNumber: { type: integer, minimum: 1 }
21
+ removed:
22
+ type: array
23
+ items: { type: string }
24
+ additionalProperties: false
25
+ routing:
26
+ preferred: graphql
27
+ fallbacks: [cli]
28
+ graphql:
29
+ operationName: PrAssigneesRemove
30
+ operationType: mutation
31
+ documentPath: src/gql/operations/pr-assignees-remove.graphql
32
+ cli:
33
+ command: pr edit
@@ -17,7 +17,11 @@ output_schema:
17
17
  updated: { type: boolean }
18
18
  additionalProperties: false
19
19
  routing:
20
- preferred: cli
21
- fallbacks: []
20
+ preferred: graphql
21
+ fallbacks: [cli]
22
+ graphql:
23
+ operationName: PrBranchUpdate
24
+ operationType: mutation
25
+ documentPath: src/gql/operations/pr-branch-update.graphql
22
26
  cli:
23
27
  command: pr update-branch
@@ -1,4 +1,4 @@
1
- capability_id: pr.status.checks
1
+ capability_id: pr.checks.list
2
2
  version: "1.0.0"
3
3
  description: List pull request check statuses with summary counts.
4
4
  input_schema:
@@ -8,6 +8,7 @@ input_schema:
8
8
  owner: { type: string, minLength: 1 }
9
9
  name: { type: string, minLength: 1 }
10
10
  prNumber: { type: integer, minimum: 1 }
11
+ state: { type: string, enum: [failed, pending, passed] }
11
12
  additionalProperties: false
12
13
  output_schema:
13
14
  type: object
@@ -17,12 +18,24 @@ output_schema:
17
18
  type: array
18
19
  items:
19
20
  type: object
20
- required: [name, state, workflow, link]
21
+ required: [name, state, workflow, link, annotations]
21
22
  properties:
22
23
  name: { type: [string, "null"] }
23
24
  state: { type: [string, "null"] }
24
25
  workflow: { type: [string, "null"] }
25
26
  link: { type: [string, "null"] }
27
+ annotations:
28
+ type: array
29
+ items:
30
+ type: object
31
+ required: [path, startLine, endLine, level, message]
32
+ properties:
33
+ path: { type: [string, "null"] }
34
+ startLine: { type: [integer, "null"] }
35
+ endLine: { type: [integer, "null"] }
36
+ level: { type: [string, "null"] }
37
+ message: { type: [string, "null"] }
38
+ additionalProperties: false
26
39
  additionalProperties: false
27
40
  summary:
28
41
  type: object
@@ -1,4 +1,4 @@
1
- capability_id: pr.checks.rerun_all
1
+ capability_id: pr.checks.rerun.all
2
2
  version: "1.0.0"
3
3
  description: Rerun all pull request workflow checks for a selected run.
4
4
  input_schema:
@@ -12,11 +12,9 @@ input_schema:
12
12
  additionalProperties: false
13
13
  output_schema:
14
14
  type: object
15
- required: [prNumber, runId, mode, queued]
15
+ required: [runId, queued]
16
16
  properties:
17
- prNumber: { type: integer, minimum: 1 }
18
17
  runId: { type: integer, minimum: 1 }
19
- mode: { type: string, const: all }
20
18
  queued: { type: boolean }
21
19
  additionalProperties: false
22
20
  routing:
@@ -1,4 +1,4 @@
1
- capability_id: pr.checks.rerun_failed
1
+ capability_id: pr.checks.rerun.failed
2
2
  version: "1.0.0"
3
3
  description: Rerun failed pull request workflow checks for a selected run.
4
4
  input_schema:
@@ -12,11 +12,9 @@ input_schema:
12
12
  additionalProperties: false
13
13
  output_schema:
14
14
  type: object
15
- required: [prNumber, runId, mode, queued]
15
+ required: [runId, queued]
16
16
  properties:
17
- prNumber: { type: integer, minimum: 1 }
18
- runId: { type: integer, minimum: 1 }
19
- mode: { type: string, const: failed }
17
+ runId: { type: integer }
20
18
  queued: { type: boolean }
21
19
  additionalProperties: false
22
20
  routing:
@@ -0,0 +1,34 @@
1
+ capability_id: pr.create
2
+ version: "1.0.0"
3
+ description: Create a pull request.
4
+ input_schema:
5
+ type: object
6
+ required: [owner, name, title, head, base]
7
+ properties:
8
+ owner: { type: string, minLength: 1 }
9
+ name: { type: string, minLength: 1 }
10
+ title: { type: string, minLength: 1 }
11
+ body: { type: string }
12
+ head: { type: string, minLength: 1 }
13
+ base: { type: string, minLength: 1 }
14
+ draft: { type: boolean }
15
+ additionalProperties: false
16
+ output_schema:
17
+ type: object
18
+ required: [number, url, title, state, draft]
19
+ properties:
20
+ number: { type: integer, minimum: 1 }
21
+ url: { type: string, minLength: 1 }
22
+ title: { type: string }
23
+ state: { type: string }
24
+ draft: { type: boolean }
25
+ additionalProperties: false
26
+ routing:
27
+ preferred: graphql
28
+ fallbacks: [cli]
29
+ graphql:
30
+ operationName: PrCreate
31
+ operationType: mutation
32
+ documentPath: src/gql/operations/pr-create.graphql
33
+ cli:
34
+ command: pr create
@@ -1,4 +1,4 @@
1
- capability_id: pr.diff.list_files
1
+ capability_id: pr.diff.files
2
2
  version: "1.0.0"
3
3
  description: List changed files in a pull request diff.
4
4
  input_schema:
@@ -38,6 +38,7 @@ routing:
38
38
  fallbacks: []
39
39
  graphql:
40
40
  operationName: PrDiffListFiles
41
+ operationType: query
41
42
  documentPath: src/gql/operations/pr-diff-list-files.graphql
42
43
  cli:
43
44
  command: pr view
@@ -1,24 +1,22 @@
1
- capability_id: pr.ready_for_review.set
1
+ capability_id: pr.diff.view
2
2
  version: "1.0.0"
3
- description: Mark pull request as ready for review or draft.
3
+ description: View the unified diff for a pull request.
4
4
  input_schema:
5
5
  type: object
6
- required: [owner, name, prNumber, ready]
6
+ required: [owner, name, prNumber]
7
7
  properties:
8
8
  owner: { type: string, minLength: 1 }
9
9
  name: { type: string, minLength: 1 }
10
10
  prNumber: { type: integer, minimum: 1 }
11
- ready: { type: boolean }
12
11
  additionalProperties: false
13
12
  output_schema:
14
13
  type: object
15
- required: [prNumber, isDraft]
14
+ required: [diff]
16
15
  properties:
17
- prNumber: { type: integer, minimum: 1 }
18
- isDraft: { type: boolean }
16
+ diff: { type: string }
19
17
  additionalProperties: false
20
18
  routing:
21
19
  preferred: cli
22
20
  fallbacks: []
23
21
  cli:
24
- command: pr ready
22
+ command: pr diff
@@ -42,6 +42,7 @@ routing:
42
42
  - Prefer CLI for low-latency structured fetches when gh authentication is available.
43
43
  graphql:
44
44
  operationName: PrList
45
+ operationType: query
45
46
  documentPath: src/gql/operations/pr-list.graphql
46
47
  cli:
47
48
  command: pr list
@@ -1,4 +1,4 @@
1
- capability_id: pr.mergeability.view
1
+ capability_id: pr.merge.status
2
2
  version: "1.0.0"
3
3
  description: View pull request mergeability and readiness signals.
4
4
  input_schema:
@@ -20,8 +20,12 @@ output_schema:
20
20
  state: { type: string }
21
21
  additionalProperties: false
22
22
  routing:
23
- preferred: cli
24
- fallbacks: []
23
+ preferred: graphql
24
+ fallbacks: [cli]
25
+ graphql:
26
+ operationName: PrMergeStatus
27
+ operationType: query
28
+ documentPath: src/gql/operations/pr-merge-status.graphql
25
29
  cli:
26
30
  command: pr view
27
31
  jsonFields: [mergeable, mergeStateStatus, reviewDecision, isDraft, state]
@@ -1,4 +1,4 @@
1
- capability_id: pr.merge.execute
1
+ capability_id: pr.merge
2
2
  version: "1.0.0"
3
3
  description: Execute a pull request merge.
4
4
  input_schema:
@@ -15,15 +15,21 @@ input_schema:
15
15
  additionalProperties: false
16
16
  output_schema:
17
17
  type: object
18
- required: [prNumber, method, queued, deleteBranch]
18
+ required: [prNumber, method, isMethodAssumed, queued, deleteBranch]
19
19
  properties:
20
20
  prNumber: { type: integer, minimum: 1 }
21
21
  method: { type: string, enum: [merge, squash, rebase] }
22
+ isMethodAssumed: { type: boolean, description: "true when method was not specified by the caller and defaults to merge" }
22
23
  queued: { type: boolean }
23
24
  deleteBranch: { type: boolean }
24
25
  additionalProperties: false
25
26
  routing:
26
- preferred: cli
27
- fallbacks: []
27
+ preferred: graphql
28
+ fallbacks: [cli]
29
+ graphql:
30
+ # GQL limitation: deleteBranch: true unsupported, triggers CLI fallback
31
+ operationName: PrMerge
32
+ operationType: mutation
33
+ documentPath: src/gql/operations/pr-merge.graphql
28
34
  cli:
29
35
  command: pr merge
@@ -1,6 +1,6 @@
1
1
  capability_id: pr.reviews.list
2
2
  version: "1.0.0"
3
- description: List pull request reviews.
3
+ description: "List pull request reviews (state, author, overall review body). Returns review-level metadata only — use pr.threads.list for inline diff comments."
4
4
  input_schema:
5
5
  type: object
6
6
  required: [owner, name, prNumber]
@@ -42,6 +42,7 @@ routing:
42
42
  fallbacks: []
43
43
  graphql:
44
44
  operationName: PrReviewsList
45
+ operationType: query
45
46
  documentPath: src/gql/operations/pr-reviews-list.graphql
46
47
  cli:
47
48
  command: pr view
@@ -1,4 +1,4 @@
1
- capability_id: pr.reviewers.request
1
+ capability_id: pr.reviews.request
2
2
  version: "1.0.0"
3
3
  description: Request pull request reviewers.
4
4
  input_schema:
@@ -20,12 +20,15 @@ output_schema:
20
20
  prNumber: { type: integer, minimum: 1 }
21
21
  reviewers:
22
22
  type: array
23
- minItems: 1
24
23
  items: { type: string, minLength: 1 }
25
24
  updated: { type: boolean }
26
25
  additionalProperties: false
27
26
  routing:
28
- preferred: cli
29
- fallbacks: []
27
+ preferred: graphql
28
+ fallbacks: [cli]
29
+ graphql:
30
+ operationName: PrReviewsRequest
31
+ operationType: mutation
32
+ documentPath: src/gql/operations/pr-reviews-request.graphql
30
33
  cli:
31
34
  command: pr edit
@@ -0,0 +1,68 @@
1
+ capability_id: pr.reviews.submit
2
+ version: "1.0.0"
3
+ description: Submit a pull request review (approve, request changes, or comment). GitHub requires a non-empty body for COMMENT and REQUEST_CHANGES events.
4
+ input_schema:
5
+ type: object
6
+ required: [owner, name, prNumber, event]
7
+ properties:
8
+ owner: { type: string, minLength: 1 }
9
+ name: { type: string, minLength: 1 }
10
+ prNumber: { type: integer, minimum: 1 }
11
+ event:
12
+ type: string
13
+ enum: [APPROVE, COMMENT, REQUEST_CHANGES]
14
+ body:
15
+ type: string
16
+ minLength: 1
17
+ description: "Required when event is COMMENT or REQUEST_CHANGES. Optional for APPROVE."
18
+ comments:
19
+ type: array
20
+ items:
21
+ type: object
22
+ required: [path, body, line]
23
+ properties:
24
+ path: { type: string, minLength: 1 }
25
+ body: { type: string, minLength: 1 }
26
+ line: { type: integer, minimum: 1 }
27
+ side:
28
+ type: string
29
+ enum: [LEFT, RIGHT]
30
+ description: "Diff side of the comment line (LEFT=base, RIGHT=head). Returned as diffSide in pr.threads.list output."
31
+ startLine:
32
+ type: integer
33
+ minimum: 1
34
+ description: "First line of a multi-line comment range. Omit for single-line comments."
35
+ startSide:
36
+ type: string
37
+ enum: [LEFT, RIGHT]
38
+ description: "Diff side of startLine (LEFT=base, RIGHT=head). Required if startLine is set."
39
+ additionalProperties: false
40
+ additionalProperties: false
41
+ output_schema:
42
+ type: object
43
+ required: [id, state, url, body]
44
+ properties:
45
+ id: { type: [string, "null"] }
46
+ state: { type: [string, "null"] }
47
+ url: { type: [string, "null"] }
48
+ body: { type: [string, "null"] }
49
+ additionalProperties: false
50
+ routing:
51
+ preferred: graphql
52
+ fallbacks: []
53
+ graphql:
54
+ operationName: PrReviewSubmit
55
+ operationType: mutation
56
+ documentPath: src/gql/operations/pr-review-submit.graphql
57
+ resolution:
58
+ lookup:
59
+ operationName: PrNodeId
60
+ documentPath: src/gql/operations/pr-node-id.graphql
61
+ vars:
62
+ owner: owner
63
+ name: name
64
+ prNumber: prNumber
65
+ inject:
66
+ - target: pullRequestId
67
+ source: scalar
68
+ path: repository.pullRequest.id
@@ -1,6 +1,6 @@
1
- capability_id: pr.comments.list
1
+ capability_id: pr.threads.list
2
2
  version: "1.0.0"
3
- description: List pull request review threads with unresolved filtering.
3
+ description: List pull request review threads (unresolved only by default; pass unresolvedOnly:false to include resolved).
4
4
  input_schema:
5
5
  type: object
6
6
  required: [owner, name, prNumber]
@@ -93,6 +93,7 @@ routing:
93
93
  - Prefer GraphQL for review-thread semantics and unresolved filtering.
94
94
  graphql:
95
95
  operationName: PrCommentsList
96
+ operationType: query
96
97
  documentPath: src/gql/operations/pr-comments-list.graphql
97
98
  cli:
98
99
  command: api graphql
@@ -1,4 +1,4 @@
1
- capability_id: pr.comment.reply
1
+ capability_id: pr.threads.reply
2
2
  version: "1.0.0"
3
3
  description: Reply to a pull request review thread.
4
4
  input_schema:
@@ -10,14 +10,17 @@ input_schema:
10
10
  additionalProperties: false
11
11
  output_schema:
12
12
  type: object
13
- required: [id, isResolved]
13
+ required: [id, isResolved, commentId, commentUrl]
14
14
  properties:
15
15
  id: { type: string, minLength: 1 }
16
16
  isResolved: { type: boolean }
17
+ commentId: { type: string }
18
+ commentUrl: { type: string }
17
19
  additionalProperties: false
18
20
  routing:
19
21
  preferred: graphql
20
22
  fallbacks: []
21
23
  graphql:
22
24
  operationName: PrCommentReply
25
+ operationType: mutation
23
26
  documentPath: src/gql/operations/pr-comment-reply.graphql
@@ -1,4 +1,4 @@
1
- capability_id: pr.comment.resolve
1
+ capability_id: pr.threads.resolve
2
2
  version: "1.0.0"
3
3
  description: Resolve a pull request review thread.
4
4
  input_schema:
@@ -19,4 +19,5 @@ routing:
19
19
  fallbacks: []
20
20
  graphql:
21
21
  operationName: PrCommentResolve
22
+ operationType: mutation
22
23
  documentPath: src/gql/operations/pr-comment-resolve.graphql
@@ -1,4 +1,4 @@
1
- capability_id: pr.comment.unresolve
1
+ capability_id: pr.threads.unresolve
2
2
  version: "1.0.0"
3
3
  description: Unresolve a pull request review thread.
4
4
  input_schema:
@@ -19,4 +19,5 @@ routing:
19
19
  fallbacks: []
20
20
  graphql:
21
21
  operationName: PrCommentUnresolve
22
+ operationType: mutation
22
23
  documentPath: src/gql/operations/pr-comment-unresolve.graphql
@@ -0,0 +1,34 @@
1
+ capability_id: pr.update
2
+ version: "1.0.0"
3
+ description: Update pull request metadata (title, body, draft status).
4
+ input_schema:
5
+ type: object
6
+ required: [owner, name, prNumber]
7
+ properties:
8
+ owner: { type: string, minLength: 1 }
9
+ name: { type: string, minLength: 1 }
10
+ prNumber: { type: integer, minimum: 1 }
11
+ title: { type: string, minLength: 1 }
12
+ body: { type: string }
13
+ draft: { type: boolean }
14
+ additionalProperties: false
15
+ output_schema:
16
+ type: object
17
+ required: [number, url, title, state, draft]
18
+ properties:
19
+ number: { type: integer, minimum: 1 }
20
+ url: { type: string, minLength: 1 }
21
+ title: { type: string }
22
+ state: { type: string }
23
+ draft: { type: boolean }
24
+ additionalProperties: false
25
+ routing:
26
+ preferred: graphql
27
+ fallbacks: [cli]
28
+ graphql:
29
+ # GQL limitation: draft-only updates fall back to CLI
30
+ operationName: PrUpdate
31
+ operationType: mutation
32
+ documentPath: src/gql/operations/pr-update.graphql
33
+ cli:
34
+ command: pr edit
@@ -11,22 +11,25 @@ input_schema:
11
11
  additionalProperties: false
12
12
  output_schema:
13
13
  type: object
14
- required: [id, number, title, state, url]
14
+ required: [id, number, title, state, url, body, labels]
15
15
  properties:
16
16
  id: { type: string, minLength: 1 }
17
17
  number: { type: integer, minimum: 1 }
18
18
  title: { type: string }
19
19
  state: { type: string }
20
20
  url: { type: string, minLength: 1 }
21
+ body: { type: string }
22
+ labels: { type: array, items: { type: string } }
21
23
  additionalProperties: false
22
24
  routing:
23
- preferred: cli
24
- fallbacks: [graphql]
25
+ preferred: graphql
26
+ fallbacks: [cli]
25
27
  notes:
26
- - Prefer CLI for low-latency structured fetches when gh authentication is available.
28
+ - Prefer GraphQL for structured fetch; CLI fallback if gh auth unavailable.
27
29
  graphql:
28
30
  operationName: PrView
31
+ operationType: query
29
32
  documentPath: src/gql/operations/pr-view.graphql
30
33
  cli:
31
34
  command: pr view
32
- jsonFields: [id, number, title, state, url]
35
+ jsonFields: [id, number, title, state, url, body, labels]
@@ -7,6 +7,8 @@ input_schema:
7
7
  properties:
8
8
  owner: { type: string, minLength: 1 }
9
9
  projectNumber: { type: integer, minimum: 1 }
10
+ first: { type: integer, minimum: 1 }
11
+ after: { type: [string, "null"] }
10
12
  additionalProperties: false
11
13
  output_schema:
12
14
  type: object
@@ -21,6 +23,15 @@ output_schema:
21
23
  id: { type: [string, "null"] }
22
24
  name: { type: [string, "null"] }
23
25
  dataType: { type: [string, "null"] }
26
+ options:
27
+ type: [array, "null"]
28
+ items:
29
+ type: object
30
+ required: [id, name]
31
+ properties:
32
+ id: { type: string }
33
+ name: { type: string }
34
+ additionalProperties: false
24
35
  additionalProperties: false
25
36
  pageInfo:
26
37
  type: object
@@ -31,7 +42,12 @@ output_schema:
31
42
  additionalProperties: false
32
43
  additionalProperties: false
33
44
  routing:
34
- preferred: cli
35
- fallbacks: []
45
+ preferred: graphql
46
+ fallbacks: [cli]
47
+ graphql:
48
+ # GQL limitation: user fallback handled in domain handler
49
+ operationName: ProjectV2FieldsListOrg
50
+ operationType: query
51
+ documentPath: src/gql/operations/project-v2-fields-list-org.graphql
36
52
  cli:
37
53
  command: project field-list
@@ -1,4 +1,4 @@
1
- capability_id: project_v2.item.field.update
1
+ capability_id: project_v2.items.field.update
2
2
  version: "1.0.0"
3
3
  description: Update a field on a Projects v2 project item.
4
4
  input_schema:
@@ -17,13 +17,16 @@ input_schema:
17
17
  additionalProperties: false
18
18
  output_schema:
19
19
  type: object
20
- required: [itemId, updated]
20
+ required: [itemId]
21
21
  properties:
22
- itemId: { type: [string, "null"] }
23
- updated: { type: boolean }
22
+ itemId: { type: string }
24
23
  additionalProperties: false
25
24
  routing:
26
- preferred: cli
27
- fallbacks: []
25
+ preferred: graphql
26
+ fallbacks: [cli]
27
+ graphql:
28
+ operationName: UpdateProjectV2ItemField
29
+ operationType: mutation
30
+ documentPath: src/gql/operations/project-v2-item-field-update.graphql
28
31
  cli:
29
32
  command: project item-edit
@@ -1,4 +1,4 @@
1
- capability_id: project_v2.item.add_issue
1
+ capability_id: project_v2.items.issue.add
2
2
  version: "1.0.0"
3
3
  description: Add an issue to a Projects v2 project.
4
4
  input_schema:
@@ -11,13 +11,17 @@ input_schema:
11
11
  additionalProperties: false
12
12
  output_schema:
13
13
  type: object
14
- required: [itemId, added]
14
+ required: [itemId, itemType]
15
15
  properties:
16
- itemId: { type: [string, "null"] }
17
- added: { type: boolean }
16
+ itemId: { type: string }
17
+ itemType: { type: [string, "null"] }
18
18
  additionalProperties: false
19
19
  routing:
20
- preferred: cli
21
- fallbacks: []
20
+ preferred: graphql
21
+ fallbacks: [cli]
22
+ graphql:
23
+ operationName: AddProjectV2Item
24
+ operationType: mutation
25
+ documentPath: src/gql/operations/project-v2-item-add.graphql
22
26
  cli:
23
27
  command: project item-add
@@ -0,0 +1,26 @@
1
+ capability_id: project_v2.items.issue.remove
2
+ version: "1.0.0"
3
+ description: Remove an issue from a Projects v2 project.
4
+ input_schema:
5
+ type: object
6
+ required: [owner, projectNumber, itemId]
7
+ properties:
8
+ owner: { type: string, minLength: 1 }
9
+ projectNumber: { type: integer, minimum: 1 }
10
+ itemId: { type: string, minLength: 1 }
11
+ additionalProperties: false
12
+ output_schema:
13
+ type: object
14
+ required: [deletedItemId]
15
+ properties:
16
+ deletedItemId: { type: string, minLength: 1 }
17
+ additionalProperties: false
18
+ routing:
19
+ preferred: graphql
20
+ fallbacks: [cli]
21
+ graphql:
22
+ operationName: RemoveProjectV2Item
23
+ operationType: mutation
24
+ documentPath: src/gql/operations/project-v2-item-remove.graphql
25
+ cli:
26
+ command: project item-delete