@ghx-dev/core 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/.claude-plugin/plugin.json +21 -0
  2. package/README.md +17 -20
  3. package/dist/cards/issue.assignees.add.yaml +50 -0
  4. package/dist/cards/issue.assignees.remove.yaml +50 -0
  5. package/dist/cards/issue.assignees.set.yaml +47 -0
  6. package/dist/cards/issue.close.yaml +16 -2
  7. package/dist/cards/issue.comments.create.yaml +16 -2
  8. package/dist/cards/issue.create.yaml +11 -0
  9. package/dist/cards/issue.delete.yaml +16 -2
  10. package/dist/cards/issue.labels.add.yaml +48 -0
  11. package/dist/cards/issue.labels.remove.yaml +50 -0
  12. package/dist/cards/issue.labels.set.yaml +47 -0
  13. package/dist/cards/issue.milestone.clear.yaml +40 -0
  14. package/dist/cards/issue.milestone.set.yaml +23 -4
  15. package/dist/{core/registry/cards/issue.blocked_by.add.yaml → cards/issue.relations.blocked_by.add.yaml} +3 -2
  16. package/dist/cards/{issue.blocked_by.remove.yaml → issue.relations.blocked_by.remove.yaml} +1 -1
  17. package/dist/cards/{issue.parent.remove.yaml → issue.relations.parent.remove.yaml} +11 -1
  18. package/dist/{core/registry/cards/issue.parent.set.yaml → cards/issue.relations.parent.set.yaml} +3 -2
  19. package/dist/{core/registry/cards/issue.linked_prs.list.yaml → cards/issue.relations.prs.list.yaml} +1 -1
  20. package/dist/cards/{issue.relations.get.yaml → issue.relations.view.yaml} +1 -1
  21. package/dist/cards/issue.reopen.yaml +16 -2
  22. package/dist/cards/issue.update.yaml +16 -2
  23. package/dist/cards/issue.view.yaml +7 -5
  24. package/dist/cards/{pr.review.submit_approve.yaml → pr.assignees.add.yaml} +12 -9
  25. package/dist/cards/pr.assignees.remove.yaml +29 -0
  26. package/dist/{core/registry/cards/pr.status.checks.yaml → cards/pr.checks.list.yaml} +15 -2
  27. package/dist/{core/registry/cards/pr.checks.rerun_all.yaml → cards/pr.checks.rerun.all.yaml} +2 -4
  28. package/dist/{core/registry/cards/pr.checks.rerun_failed.yaml → cards/pr.checks.rerun.failed.yaml} +3 -5
  29. package/dist/cards/pr.create.yaml +30 -0
  30. package/dist/cards/{pr.diff.list_files.yaml → pr.diff.files.yaml} +1 -1
  31. package/dist/cards/{pr.ready_for_review.set.yaml → pr.diff.view.yaml} +6 -8
  32. package/dist/{core/registry/cards/pr.mergeability.view.yaml → cards/pr.merge.status.yaml} +6 -3
  33. package/dist/{core/registry/cards/pr.merge.execute.yaml → cards/pr.merge.yaml} +1 -1
  34. package/dist/cards/pr.reviews.list.yaml +1 -1
  35. package/dist/cards/{pr.reviewers.request.yaml → pr.reviews.request.yaml} +1 -1
  36. package/dist/cards/pr.reviews.submit.yaml +67 -0
  37. package/dist/cards/{pr.comments.list.yaml → pr.threads.list.yaml} +2 -2
  38. package/dist/cards/{pr.comment.reply.yaml → pr.threads.reply.yaml} +4 -2
  39. package/dist/cards/{pr.comment.resolve.yaml → pr.threads.resolve.yaml} +1 -1
  40. package/dist/cards/{pr.comment.unresolve.yaml → pr.threads.unresolve.yaml} +1 -1
  41. package/dist/cards/pr.update.yaml +29 -0
  42. package/dist/cards/pr.view.yaml +7 -5
  43. package/dist/cards/project_v2.fields.list.yaml +2 -2
  44. package/dist/{core/registry/cards/project_v2.item.field.update.yaml → cards/project_v2.items.field.update.yaml} +3 -3
  45. package/dist/{core/registry/cards/project_v2.item.add_issue.yaml → cards/project_v2.items.issue.add.yaml} +3 -3
  46. package/dist/cards/project_v2.items.issue.remove.yaml +23 -0
  47. package/dist/cards/project_v2.items.list.yaml +2 -2
  48. package/dist/{core/registry/cards/project_v2.org.get.yaml → cards/project_v2.org.view.yaml} +3 -3
  49. package/dist/cards/{project_v2.user.get.yaml → project_v2.user.view.yaml} +3 -3
  50. package/dist/{core/registry/cards/release.create_draft.yaml → cards/release.create.yaml} +1 -1
  51. package/dist/cards/{release.publish_draft.yaml → release.publish.yaml} +1 -1
  52. package/dist/{core/registry/cards/release.get.yaml → cards/release.view.yaml} +1 -1
  53. package/dist/cards/repo.issue_types.list.yaml +2 -2
  54. package/dist/cards/repo.view.yaml +2 -4
  55. package/dist/cards/{workflow_dispatch.run.yaml → workflow.dispatch.yaml} +1 -1
  56. package/dist/{core/registry/cards/workflow_job.logs.get.yaml → cards/workflow.job.logs.raw.yaml} +2 -2
  57. package/dist/{core/registry/cards/workflow_job.logs.analyze.yaml → cards/workflow.job.logs.view.yaml} +1 -1
  58. package/dist/{core/registry/cards/workflow_run.artifacts.list.yaml → cards/workflow.run.artifacts.list.yaml} +1 -1
  59. package/dist/cards/{workflow_run.cancel.yaml → workflow.run.cancel.yaml} +1 -1
  60. package/dist/cards/{workflow_run.rerun_all.yaml → workflow.run.rerun.all.yaml} +3 -3
  61. package/dist/{core/registry/cards/workflow_run.rerun_failed.yaml → cards/workflow.run.rerun.failed.yaml} +3 -3
  62. package/dist/{core/registry/cards/workflow_run.get.yaml → cards/workflow.run.view.yaml} +19 -4
  63. package/dist/cards/{workflow_runs.list.yaml → workflow.runs.list.yaml} +1 -1
  64. package/dist/cards/{workflow.get.yaml → workflow.view.yaml} +2 -2
  65. package/dist/chunk-3DU2WHXF.js +15 -0
  66. package/dist/chunk-3DU2WHXF.js.map +1 -0
  67. package/dist/chunk-3P3KHWFU.js +5779 -0
  68. package/dist/chunk-3P3KHWFU.js.map +1 -0
  69. package/dist/chunk-BIWBJA2F.js +228 -0
  70. package/dist/chunk-BIWBJA2F.js.map +1 -0
  71. package/dist/chunk-HEHONZTO.js +121 -0
  72. package/dist/chunk-HEHONZTO.js.map +1 -0
  73. package/dist/chunk-Q7RCIK2C.js +773 -0
  74. package/dist/chunk-Q7RCIK2C.js.map +1 -0
  75. package/dist/chunk-R3CBGJZX.js +12 -0
  76. package/dist/chunk-R3CBGJZX.js.map +1 -0
  77. package/dist/chunk-TDABI6C7.js +167 -0
  78. package/dist/chunk-TDABI6C7.js.map +1 -0
  79. package/dist/chunk-TPQYVCAS.js +15 -0
  80. package/dist/chunk-TPQYVCAS.js.map +1 -0
  81. package/dist/cli/index.js +202 -21
  82. package/dist/cli/index.js.map +1 -1
  83. package/dist/core/registry/cards/issue.assignees.add.yaml +50 -0
  84. package/dist/core/registry/cards/issue.assignees.remove.yaml +50 -0
  85. package/dist/core/registry/cards/issue.assignees.set.yaml +47 -0
  86. package/dist/core/registry/cards/issue.close.yaml +16 -2
  87. package/dist/core/registry/cards/issue.comments.create.yaml +16 -2
  88. package/dist/core/registry/cards/issue.create.yaml +11 -0
  89. package/dist/core/registry/cards/issue.delete.yaml +16 -2
  90. package/dist/core/registry/cards/issue.labels.add.yaml +48 -0
  91. package/dist/core/registry/cards/issue.labels.remove.yaml +50 -0
  92. package/dist/core/registry/cards/issue.labels.set.yaml +47 -0
  93. package/dist/core/registry/cards/issue.milestone.clear.yaml +40 -0
  94. package/dist/core/registry/cards/issue.milestone.set.yaml +23 -4
  95. package/dist/{cards/issue.blocked_by.add.yaml → core/registry/cards/issue.relations.blocked_by.add.yaml} +3 -2
  96. package/dist/core/registry/cards/{issue.blocked_by.remove.yaml → issue.relations.blocked_by.remove.yaml} +1 -1
  97. package/dist/core/registry/cards/{issue.parent.remove.yaml → issue.relations.parent.remove.yaml} +11 -1
  98. package/dist/{cards/issue.parent.set.yaml → core/registry/cards/issue.relations.parent.set.yaml} +3 -2
  99. package/dist/{cards/issue.linked_prs.list.yaml → core/registry/cards/issue.relations.prs.list.yaml} +1 -1
  100. package/dist/core/registry/cards/{issue.relations.get.yaml → issue.relations.view.yaml} +1 -1
  101. package/dist/core/registry/cards/issue.reopen.yaml +16 -2
  102. package/dist/core/registry/cards/issue.update.yaml +16 -2
  103. package/dist/core/registry/cards/issue.view.yaml +7 -5
  104. package/dist/core/registry/cards/pr.assignees.add.yaml +29 -0
  105. package/dist/core/registry/cards/pr.assignees.remove.yaml +29 -0
  106. package/dist/{cards/pr.status.checks.yaml → core/registry/cards/pr.checks.list.yaml} +15 -2
  107. package/dist/{cards/pr.checks.rerun_all.yaml → core/registry/cards/pr.checks.rerun.all.yaml} +2 -4
  108. package/dist/{cards/pr.checks.rerun_failed.yaml → core/registry/cards/pr.checks.rerun.failed.yaml} +3 -5
  109. package/dist/core/registry/cards/pr.create.yaml +30 -0
  110. package/dist/core/registry/cards/{pr.diff.list_files.yaml → pr.diff.files.yaml} +1 -1
  111. package/dist/core/registry/cards/{pr.ready_for_review.set.yaml → pr.diff.view.yaml} +6 -8
  112. package/dist/{cards/pr.mergeability.view.yaml → core/registry/cards/pr.merge.status.yaml} +6 -3
  113. package/dist/{cards/pr.merge.execute.yaml → core/registry/cards/pr.merge.yaml} +1 -1
  114. package/dist/core/registry/cards/pr.reviews.list.yaml +1 -1
  115. package/dist/core/registry/cards/{pr.reviewers.request.yaml → pr.reviews.request.yaml} +1 -1
  116. package/dist/core/registry/cards/pr.reviews.submit.yaml +67 -0
  117. package/dist/core/registry/cards/{pr.comments.list.yaml → pr.threads.list.yaml} +2 -2
  118. package/dist/core/registry/cards/{pr.comment.reply.yaml → pr.threads.reply.yaml} +4 -2
  119. package/dist/core/registry/cards/{pr.comment.resolve.yaml → pr.threads.resolve.yaml} +1 -1
  120. package/dist/core/registry/cards/{pr.comment.unresolve.yaml → pr.threads.unresolve.yaml} +1 -1
  121. package/dist/core/registry/cards/pr.update.yaml +29 -0
  122. package/dist/core/registry/cards/pr.view.yaml +7 -5
  123. package/dist/core/registry/cards/project_v2.fields.list.yaml +2 -2
  124. package/dist/{cards/project_v2.item.field.update.yaml → core/registry/cards/project_v2.items.field.update.yaml} +3 -3
  125. package/dist/{cards/project_v2.item.add_issue.yaml → core/registry/cards/project_v2.items.issue.add.yaml} +3 -3
  126. package/dist/core/registry/cards/project_v2.items.issue.remove.yaml +23 -0
  127. package/dist/core/registry/cards/project_v2.items.list.yaml +2 -2
  128. package/dist/{cards/project_v2.org.get.yaml → core/registry/cards/project_v2.org.view.yaml} +3 -3
  129. package/dist/core/registry/cards/{project_v2.user.get.yaml → project_v2.user.view.yaml} +3 -3
  130. package/dist/{cards/release.create_draft.yaml → core/registry/cards/release.create.yaml} +1 -1
  131. package/dist/core/registry/cards/{release.publish_draft.yaml → release.publish.yaml} +1 -1
  132. package/dist/{cards/release.get.yaml → core/registry/cards/release.view.yaml} +1 -1
  133. package/dist/core/registry/cards/repo.issue_types.list.yaml +2 -2
  134. package/dist/core/registry/cards/repo.view.yaml +2 -4
  135. package/dist/core/registry/cards/{workflow_dispatch.run.yaml → workflow.dispatch.yaml} +1 -1
  136. package/dist/{cards/workflow_job.logs.get.yaml → core/registry/cards/workflow.job.logs.raw.yaml} +2 -2
  137. package/dist/{cards/workflow_job.logs.analyze.yaml → core/registry/cards/workflow.job.logs.view.yaml} +1 -1
  138. package/dist/{cards/workflow_run.artifacts.list.yaml → core/registry/cards/workflow.run.artifacts.list.yaml} +1 -1
  139. package/dist/core/registry/cards/{workflow_run.cancel.yaml → workflow.run.cancel.yaml} +1 -1
  140. package/dist/core/registry/cards/{workflow_run.rerun_all.yaml → workflow.run.rerun.all.yaml} +3 -3
  141. package/dist/{cards/workflow_run.rerun_failed.yaml → core/registry/cards/workflow.run.rerun.failed.yaml} +3 -3
  142. package/dist/{cards/workflow_run.get.yaml → core/registry/cards/workflow.run.view.yaml} +19 -4
  143. package/dist/core/registry/cards/{workflow_runs.list.yaml → workflow.runs.list.yaml} +1 -1
  144. package/dist/core/registry/cards/{workflow.get.yaml → workflow.view.yaml} +2 -2
  145. package/dist/index.d.ts +374 -35
  146. package/dist/index.js +33 -5
  147. package/dist/index.js.map +1 -1
  148. package/dist/issue-mutations-FJNZW7L5.js +668 -0
  149. package/dist/issue-mutations-FJNZW7L5.js.map +1 -0
  150. package/dist/issue-queries-GRA4MKPD.js +208 -0
  151. package/dist/issue-queries-GRA4MKPD.js.map +1 -0
  152. package/dist/pr-mutations-UG67YOF5.js +344 -0
  153. package/dist/pr-mutations-UG67YOF5.js.map +1 -0
  154. package/dist/pr-queries-UOEOXIJQ.js +331 -0
  155. package/dist/pr-queries-UOEOXIJQ.js.map +1 -0
  156. package/dist/repo-JDUHFPZF.js +66 -0
  157. package/dist/repo-JDUHFPZF.js.map +1 -0
  158. package/package.json +18 -18
  159. package/skills/using-ghx/SKILL.md +61 -0
  160. package/dist/agent.d.ts +0 -32
  161. package/dist/agent.js +0 -38
  162. package/dist/agent.js.map +0 -1
  163. package/dist/cards/check_run.annotations.list.yaml +0 -35
  164. package/dist/cards/issue.assignees.update.yaml +0 -27
  165. package/dist/cards/issue.labels.update.yaml +0 -27
  166. package/dist/cards/pr.assignees.update.yaml +0 -38
  167. package/dist/cards/pr.checks.get_failed.yaml +0 -42
  168. package/dist/cards/pr.review.submit_comment.yaml +0 -26
  169. package/dist/cards/pr.review.submit_request_changes.yaml +0 -26
  170. package/dist/cards/workflow_run.jobs.list.yaml +0 -35
  171. package/dist/chunk-OL4ARD3R.js +0 -242
  172. package/dist/chunk-OL4ARD3R.js.map +0 -1
  173. package/dist/chunk-PJ2JKKQE.js +0 -4148
  174. package/dist/chunk-PJ2JKKQE.js.map +0 -1
  175. package/dist/chunk-SCIJMW5P.js +0 -54
  176. package/dist/chunk-SCIJMW5P.js.map +0 -1
  177. package/dist/cli/assets/skills/ghx/SKILL.md +0 -57
  178. package/dist/core/registry/cards/check_run.annotations.list.yaml +0 -35
  179. package/dist/core/registry/cards/issue.assignees.update.yaml +0 -27
  180. package/dist/core/registry/cards/issue.labels.update.yaml +0 -27
  181. package/dist/core/registry/cards/pr.assignees.update.yaml +0 -38
  182. package/dist/core/registry/cards/pr.checks.get_failed.yaml +0 -42
  183. package/dist/core/registry/cards/pr.review.submit_approve.yaml +0 -26
  184. package/dist/core/registry/cards/pr.review.submit_comment.yaml +0 -26
  185. package/dist/core/registry/cards/pr.review.submit_request_changes.yaml +0 -26
  186. package/dist/core/registry/cards/workflow_run.jobs.list.yaml +0 -35
  187. package/dist/envelope-BpF6MNCv.d.ts +0 -55
@@ -3,9 +3,11 @@ version: "1.0.0"
3
3
  description: Create an issue comment.
4
4
  input_schema:
5
5
  type: object
6
- required: [issueId, body]
6
+ required: [owner, name, issueNumber, body]
7
7
  properties:
8
- issueId: { type: string, minLength: 1 }
8
+ owner: { type: string, minLength: 1 }
9
+ name: { type: string, minLength: 1 }
10
+ issueNumber: { type: integer, minimum: 1 }
9
11
  body: { type: string, minLength: 1 }
10
12
  additionalProperties: false
11
13
  output_schema:
@@ -22,3 +24,15 @@ routing:
22
24
  graphql:
23
25
  operationName: IssueCommentCreate
24
26
  documentPath: src/gql/operations/issue-comment-create.graphql
27
+ resolution:
28
+ lookup:
29
+ operationName: IssueNodeIdLookup
30
+ documentPath: src/gql/operations/issue-node-id-lookup.graphql
31
+ vars:
32
+ owner: owner
33
+ name: name
34
+ issueNumber: issueNumber
35
+ inject:
36
+ - target: issueId
37
+ source: scalar
38
+ path: repository.issue.id
@@ -26,3 +26,14 @@ routing:
26
26
  graphql:
27
27
  operationName: IssueCreate
28
28
  documentPath: src/gql/operations/issue-create.graphql
29
+ resolution:
30
+ lookup:
31
+ operationName: IssueCreateRepositoryId
32
+ documentPath: src/gql/operations/issue-create-repository-id.graphql
33
+ vars:
34
+ owner: owner
35
+ name: name
36
+ inject:
37
+ - target: repositoryId
38
+ source: scalar
39
+ path: repository.id
@@ -3,9 +3,11 @@ version: "1.0.0"
3
3
  description: Delete an issue.
4
4
  input_schema:
5
5
  type: object
6
- required: [issueId]
6
+ required: [owner, name, issueNumber]
7
7
  properties:
8
- issueId: { type: string, minLength: 1 }
8
+ owner: { type: string, minLength: 1 }
9
+ name: { type: string, minLength: 1 }
10
+ issueNumber: { type: integer, minimum: 1 }
9
11
  additionalProperties: false
10
12
  output_schema:
11
13
  type: object
@@ -21,3 +23,15 @@ routing:
21
23
  graphql:
22
24
  operationName: IssueDelete
23
25
  documentPath: src/gql/operations/issue-delete.graphql
26
+ resolution:
27
+ lookup:
28
+ operationName: IssueNodeIdLookup
29
+ documentPath: src/gql/operations/issue-node-id-lookup.graphql
30
+ vars:
31
+ owner: owner
32
+ name: name
33
+ issueNumber: issueNumber
34
+ inject:
35
+ - target: issueId
36
+ source: scalar
37
+ path: repository.issue.id
@@ -0,0 +1,48 @@
1
+ capability_id: issue.labels.add
2
+ version: "1.0.0"
3
+ description: Add labels to an issue without removing existing labels.
4
+ input_schema:
5
+ type: object
6
+ required: [owner, name, issueNumber, labels]
7
+ properties:
8
+ owner: { type: string, minLength: 1 }
9
+ name: { type: string, minLength: 1 }
10
+ issueNumber: { type: integer, minimum: 1 }
11
+ labels:
12
+ type: array
13
+ items: { type: string, minLength: 1 }
14
+ minItems: 1
15
+ additionalProperties: false
16
+ output_schema:
17
+ type: object
18
+ required: [id, labels]
19
+ properties:
20
+ id: { type: string, minLength: 1 }
21
+ labels:
22
+ type: array
23
+ items: { type: string }
24
+ additionalProperties: false
25
+ routing:
26
+ preferred: graphql
27
+ fallbacks: []
28
+ graphql:
29
+ operationName: IssueLabelsAdd
30
+ documentPath: src/gql/operations/issue-labels-add.graphql
31
+ resolution:
32
+ lookup:
33
+ operationName: IssueLabelsLookupByNumber
34
+ documentPath: src/gql/operations/issue-labels-lookup-by-number.graphql
35
+ vars:
36
+ owner: owner
37
+ name: name
38
+ issueNumber: issueNumber
39
+ inject:
40
+ - target: labelableId
41
+ source: scalar
42
+ path: repository.issue.id
43
+ - target: labelIds
44
+ source: map_array
45
+ from_input: labels
46
+ nodes_path: repository.labels.nodes
47
+ match_field: name
48
+ extract_field: id
@@ -0,0 +1,50 @@
1
+ capability_id: issue.labels.remove
2
+ version: "1.0.0"
3
+ description: Remove specific labels from an issue.
4
+ input_schema:
5
+ type: object
6
+ required: [owner, name, issueNumber, labels]
7
+ properties:
8
+ owner: { type: string, minLength: 1 }
9
+ name: { type: string, minLength: 1 }
10
+ issueNumber: { type: integer, minimum: 1 }
11
+ labels:
12
+ type: array
13
+ items: { type: string, minLength: 1 }
14
+ minItems: 1
15
+ additionalProperties: false
16
+ output_schema:
17
+ type: object
18
+ required: [issueNumber, removed]
19
+ properties:
20
+ issueNumber: { 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: IssueLabelsRemove
30
+ documentPath: src/gql/operations/issue-labels-remove.graphql
31
+ resolution:
32
+ lookup:
33
+ operationName: IssueLabelsLookupByNumber
34
+ documentPath: src/gql/operations/issue-labels-lookup-by-number.graphql
35
+ vars:
36
+ owner: owner
37
+ name: name
38
+ issueNumber: issueNumber
39
+ inject:
40
+ - target: labelableId
41
+ source: scalar
42
+ path: repository.issue.id
43
+ - target: labelIds
44
+ source: map_array
45
+ from_input: labels
46
+ nodes_path: repository.labels.nodes
47
+ match_field: name
48
+ extract_field: id
49
+ cli:
50
+ command: issue edit
@@ -0,0 +1,47 @@
1
+ capability_id: issue.labels.set
2
+ version: "1.0.0"
3
+ description: Replace issue labels.
4
+ input_schema:
5
+ type: object
6
+ required: [owner, name, issueNumber, labels]
7
+ properties:
8
+ owner: { type: string, minLength: 1 }
9
+ name: { type: string, minLength: 1 }
10
+ issueNumber: { type: integer, minimum: 1 }
11
+ labels:
12
+ type: array
13
+ items: { type: string, minLength: 1 }
14
+ additionalProperties: false
15
+ output_schema:
16
+ type: object
17
+ required: [id, labels]
18
+ properties:
19
+ id: { type: string, minLength: 1 }
20
+ labels:
21
+ type: array
22
+ items: { type: string, minLength: 1 }
23
+ additionalProperties: false
24
+ routing:
25
+ preferred: graphql
26
+ fallbacks: []
27
+ graphql:
28
+ operationName: IssueLabelsUpdate
29
+ documentPath: src/gql/operations/issue-labels-update.graphql
30
+ resolution:
31
+ lookup:
32
+ operationName: IssueLabelsLookupByNumber
33
+ documentPath: src/gql/operations/issue-labels-lookup-by-number.graphql
34
+ vars:
35
+ owner: owner
36
+ name: name
37
+ issueNumber: issueNumber
38
+ inject:
39
+ - target: labelableId
40
+ source: scalar
41
+ path: repository.issue.id
42
+ - target: labelIds
43
+ source: map_array
44
+ from_input: labels
45
+ nodes_path: repository.labels.nodes
46
+ match_field: name
47
+ extract_field: id
@@ -0,0 +1,40 @@
1
+ capability_id: issue.milestone.clear
2
+ version: "1.0.0"
3
+ description: Remove the milestone from an issue.
4
+ input_schema:
5
+ type: object
6
+ required: [owner, name, issueNumber]
7
+ properties:
8
+ owner: { type: string, minLength: 1 }
9
+ name: { type: string, minLength: 1 }
10
+ issueNumber: { type: integer, minimum: 1 }
11
+ additionalProperties: false
12
+ output_schema:
13
+ type: object
14
+ required: [issueNumber, cleared]
15
+ properties:
16
+ issueNumber: { type: integer, minimum: 1 }
17
+ cleared: { type: boolean }
18
+ additionalProperties: false
19
+ routing:
20
+ preferred: graphql
21
+ fallbacks: [cli]
22
+ graphql:
23
+ operationName: IssueMilestoneSet
24
+ documentPath: src/gql/operations/issue-milestone-set.graphql
25
+ resolution:
26
+ lookup:
27
+ operationName: IssueNodeIdLookup
28
+ documentPath: src/gql/operations/issue-node-id-lookup.graphql
29
+ vars:
30
+ owner: owner
31
+ name: name
32
+ issueNumber: issueNumber
33
+ inject:
34
+ - target: issueId
35
+ source: scalar
36
+ path: repository.issue.id
37
+ - target: milestoneId
38
+ source: "null_literal"
39
+ cli:
40
+ command: issue edit
@@ -3,17 +3,20 @@ version: "1.0.0"
3
3
  description: Set issue milestone number or clear with null.
4
4
  input_schema:
5
5
  type: object
6
- required: [issueId, milestoneNumber]
6
+ required: [owner, name, issueNumber, milestoneNumber]
7
7
  properties:
8
- issueId: { type: string, minLength: 1 }
9
- milestoneNumber: { type: [integer, "null"], minimum: 1 }
8
+ owner: { type: string, minLength: 1 }
9
+ name: { type: string, minLength: 1 }
10
+ issueNumber: { type: integer, minimum: 1 }
11
+ milestoneNumber: { type: integer, minimum: 1 }
10
12
  additionalProperties: false
11
13
  output_schema:
12
14
  type: object
13
- required: [id, milestoneNumber]
15
+ required: [id, milestoneNumber, updated]
14
16
  properties:
15
17
  id: { type: string, minLength: 1 }
16
18
  milestoneNumber: { type: [integer, "null"] }
19
+ updated: { type: boolean }
17
20
  additionalProperties: false
18
21
  routing:
19
22
  preferred: graphql
@@ -21,3 +24,19 @@ routing:
21
24
  graphql:
22
25
  operationName: IssueMilestoneSet
23
26
  documentPath: src/gql/operations/issue-milestone-set.graphql
27
+ resolution:
28
+ lookup:
29
+ operationName: IssueMilestoneLookupByNumber
30
+ documentPath: src/gql/operations/issue-milestone-lookup-by-number.graphql
31
+ vars:
32
+ owner: owner
33
+ name: name
34
+ issueNumber: issueNumber
35
+ milestoneNumber: milestoneNumber
36
+ inject:
37
+ - target: issueId
38
+ source: scalar
39
+ path: repository.issue.id
40
+ - target: milestoneId
41
+ source: scalar
42
+ path: repository.milestone.id
@@ -1,4 +1,4 @@
1
- capability_id: issue.blocked_by.add
1
+ capability_id: issue.relations.blocked_by.add
2
2
  version: "1.0.0"
3
3
  description: Add a blocked-by relation for an issue.
4
4
  input_schema:
@@ -10,10 +10,11 @@ input_schema:
10
10
  additionalProperties: false
11
11
  output_schema:
12
12
  type: object
13
- required: [issueId, blockedByIssueId]
13
+ required: [issueId, blockedByIssueId, added]
14
14
  properties:
15
15
  issueId: { type: string, minLength: 1 }
16
16
  blockedByIssueId: { type: string, minLength: 1 }
17
+ added: { type: boolean }
17
18
  additionalProperties: false
18
19
  routing:
19
20
  preferred: graphql
@@ -1,4 +1,4 @@
1
- capability_id: issue.blocked_by.remove
1
+ capability_id: issue.relations.blocked_by.remove
2
2
  version: "1.0.0"
3
3
  description: Remove a blocked-by relation for an issue.
4
4
  input_schema:
@@ -1,4 +1,4 @@
1
- capability_id: issue.parent.remove
1
+ capability_id: issue.relations.parent.remove
2
2
  version: "1.0.0"
3
3
  description: Remove an issue parent relation.
4
4
  input_schema:
@@ -20,3 +20,13 @@ routing:
20
20
  graphql:
21
21
  operationName: IssueParentRemove
22
22
  documentPath: src/gql/operations/issue-parent-remove.graphql
23
+ resolution:
24
+ lookup:
25
+ operationName: IssueParentLookup
26
+ documentPath: src/gql/operations/issue-parent-lookup.graphql
27
+ vars:
28
+ issueId: issueId
29
+ inject:
30
+ - target: parentIssueId
31
+ source: scalar
32
+ path: node.parent.id
@@ -1,4 +1,4 @@
1
- capability_id: issue.parent.set
1
+ capability_id: issue.relations.parent.set
2
2
  version: "1.0.0"
3
3
  description: Set an issue parent relation.
4
4
  input_schema:
@@ -10,10 +10,11 @@ input_schema:
10
10
  additionalProperties: false
11
11
  output_schema:
12
12
  type: object
13
- required: [issueId, parentIssueId]
13
+ required: [issueId, parentIssueId, updated]
14
14
  properties:
15
15
  issueId: { type: string, minLength: 1 }
16
16
  parentIssueId: { type: string, minLength: 1 }
17
+ updated: { type: boolean }
17
18
  additionalProperties: false
18
19
  routing:
19
20
  preferred: graphql
@@ -1,4 +1,4 @@
1
- capability_id: issue.linked_prs.list
1
+ capability_id: issue.relations.prs.list
2
2
  version: "1.0.0"
3
3
  description: List pull requests linked to an issue.
4
4
  input_schema:
@@ -1,4 +1,4 @@
1
- capability_id: issue.relations.get
1
+ capability_id: issue.relations.view
2
2
  version: "1.0.0"
3
3
  description: Get issue parent/children/blocking relations.
4
4
  input_schema:
@@ -3,9 +3,11 @@ version: "1.0.0"
3
3
  description: Reopen a closed issue.
4
4
  input_schema:
5
5
  type: object
6
- required: [issueId]
6
+ required: [owner, name, issueNumber]
7
7
  properties:
8
- issueId: { type: string, minLength: 1 }
8
+ owner: { type: string, minLength: 1 }
9
+ name: { type: string, minLength: 1 }
10
+ issueNumber: { type: integer, minimum: 1 }
9
11
  additionalProperties: false
10
12
  output_schema:
11
13
  type: object
@@ -22,3 +24,15 @@ routing:
22
24
  graphql:
23
25
  operationName: IssueReopen
24
26
  documentPath: src/gql/operations/issue-reopen.graphql
27
+ resolution:
28
+ lookup:
29
+ operationName: IssueNodeIdLookup
30
+ documentPath: src/gql/operations/issue-node-id-lookup.graphql
31
+ vars:
32
+ owner: owner
33
+ name: name
34
+ issueNumber: issueNumber
35
+ inject:
36
+ - target: issueId
37
+ source: scalar
38
+ path: repository.issue.id
@@ -3,9 +3,11 @@ version: "1.0.0"
3
3
  description: Update issue title and/or body.
4
4
  input_schema:
5
5
  type: object
6
- required: [issueId]
6
+ required: [owner, name, issueNumber]
7
7
  properties:
8
- issueId: { type: string, minLength: 1 }
8
+ owner: { type: string, minLength: 1 }
9
+ name: { type: string, minLength: 1 }
10
+ issueNumber: { type: integer, minimum: 1 }
9
11
  title: { type: string }
10
12
  body: { type: string }
11
13
  additionalProperties: false
@@ -25,3 +27,15 @@ routing:
25
27
  graphql:
26
28
  operationName: IssueUpdate
27
29
  documentPath: src/gql/operations/issue-update.graphql
30
+ resolution:
31
+ lookup:
32
+ operationName: IssueNodeIdLookup
33
+ documentPath: src/gql/operations/issue-node-id-lookup.graphql
34
+ vars:
35
+ owner: owner
36
+ name: name
37
+ issueNumber: issueNumber
38
+ inject:
39
+ - target: issueId
40
+ source: scalar
41
+ path: repository.issue.id
@@ -11,22 +11,24 @@ 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: IssueView
29
31
  documentPath: src/gql/operations/issue-view.graphql
30
32
  cli:
31
33
  command: issue view
32
- jsonFields: [id, number, title, state, url]
34
+ jsonFields: [id, number, title, state, url, body, labels]
@@ -0,0 +1,29 @@
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: cli
27
+ fallbacks: []
28
+ cli:
29
+ command: pr edit
@@ -0,0 +1,29 @@
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: cli
27
+ fallbacks: []
28
+ cli:
29
+ command: pr edit
@@ -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,30 @@
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]
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: cli
28
+ fallbacks: []
29
+ cli:
30
+ 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: