@ghx-dev/core 0.1.0-beta.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 (319) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +212 -0
  3. package/dist/agent-interface/prompt/main-skill.d.ts +3 -0
  4. package/dist/agent-interface/prompt/main-skill.js +7 -0
  5. package/dist/agent-interface/prompt/main-skill.js.map +1 -0
  6. package/dist/agent-interface/tools/execute-tool.d.ts +16 -0
  7. package/dist/agent-interface/tools/execute-tool.js +7 -0
  8. package/dist/agent-interface/tools/execute-tool.js.map +1 -0
  9. package/dist/agent-interface/tools/explain-tool.d.ts +11 -0
  10. package/dist/agent-interface/tools/explain-tool.js +9 -0
  11. package/dist/agent-interface/tools/explain-tool.js.map +1 -0
  12. package/dist/agent-interface/tools/list-capabilities-tool.d.ts +7 -0
  13. package/dist/agent-interface/tools/list-capabilities-tool.js +9 -0
  14. package/dist/agent-interface/tools/list-capabilities-tool.js.map +1 -0
  15. package/dist/agent.d.ts +7 -0
  16. package/dist/agent.js +21 -0
  17. package/dist/agent.js.map +1 -0
  18. package/dist/chunk-2W4L5YCC.js +116 -0
  19. package/dist/chunk-2W4L5YCC.js.map +1 -0
  20. package/dist/chunk-3RAT5BCB.js +584 -0
  21. package/dist/chunk-3RAT5BCB.js.map +1 -0
  22. package/dist/chunk-3RJCF42N.js +16 -0
  23. package/dist/chunk-3RJCF42N.js.map +1 -0
  24. package/dist/chunk-573MDG3I.js +18 -0
  25. package/dist/chunk-573MDG3I.js.map +1 -0
  26. package/dist/chunk-5JRLVOF2.js +50 -0
  27. package/dist/chunk-5JRLVOF2.js.map +1 -0
  28. package/dist/chunk-B6RLMKS4.js +41 -0
  29. package/dist/chunk-B6RLMKS4.js.map +1 -0
  30. package/dist/chunk-BJHVAFTN.js +42 -0
  31. package/dist/chunk-BJHVAFTN.js.map +1 -0
  32. package/dist/chunk-D746VR3B.js +38 -0
  33. package/dist/chunk-D746VR3B.js.map +1 -0
  34. package/dist/chunk-DJIEG6K7.js +20 -0
  35. package/dist/chunk-DJIEG6K7.js.map +1 -0
  36. package/dist/chunk-DLKIQBK6.js +106 -0
  37. package/dist/chunk-DLKIQBK6.js.map +1 -0
  38. package/dist/chunk-EBRDO4Y6.js +31 -0
  39. package/dist/chunk-EBRDO4Y6.js.map +1 -0
  40. package/dist/chunk-FXN6IIT5.js +14 -0
  41. package/dist/chunk-FXN6IIT5.js.map +1 -0
  42. package/dist/chunk-GPU4P7UG.js +92 -0
  43. package/dist/chunk-GPU4P7UG.js.map +1 -0
  44. package/dist/chunk-MMG6CIKK.js +44 -0
  45. package/dist/chunk-MMG6CIKK.js.map +1 -0
  46. package/dist/chunk-MT4U5DYD.js +88 -0
  47. package/dist/chunk-MT4U5DYD.js.map +1 -0
  48. package/dist/chunk-NFF5VF4U.js +28 -0
  49. package/dist/chunk-NFF5VF4U.js.map +1 -0
  50. package/dist/chunk-Q4RTT3DV.js +209 -0
  51. package/dist/chunk-Q4RTT3DV.js.map +1 -0
  52. package/dist/chunk-QEAMC4IJ.js +34 -0
  53. package/dist/chunk-QEAMC4IJ.js.map +1 -0
  54. package/dist/chunk-QX34GTH6.js +30 -0
  55. package/dist/chunk-QX34GTH6.js.map +1 -0
  56. package/dist/chunk-QZZC53HF.js +38 -0
  57. package/dist/chunk-QZZC53HF.js.map +1 -0
  58. package/dist/chunk-RUQXGZ35.js +34 -0
  59. package/dist/chunk-RUQXGZ35.js.map +1 -0
  60. package/dist/chunk-TCLMLVUQ.js +38 -0
  61. package/dist/chunk-TCLMLVUQ.js.map +1 -0
  62. package/dist/chunk-TDTKOJKN.js +52 -0
  63. package/dist/chunk-TDTKOJKN.js.map +1 -0
  64. package/dist/chunk-UGWIZ3RI.js +7 -0
  65. package/dist/chunk-UGWIZ3RI.js.map +1 -0
  66. package/dist/chunk-UOJWOHRM.js +16 -0
  67. package/dist/chunk-UOJWOHRM.js.map +1 -0
  68. package/dist/chunk-VD5NXQP7.js +42 -0
  69. package/dist/chunk-VD5NXQP7.js.map +1 -0
  70. package/dist/chunk-W2TKG2UL.js +37 -0
  71. package/dist/chunk-W2TKG2UL.js.map +1 -0
  72. package/dist/chunk-W6ROKCY5.js +28 -0
  73. package/dist/chunk-W6ROKCY5.js.map +1 -0
  74. package/dist/chunk-WYSY75U7.js +156 -0
  75. package/dist/chunk-WYSY75U7.js.map +1 -0
  76. package/dist/chunk-YNNDBMNR.js +113 -0
  77. package/dist/chunk-YNNDBMNR.js.map +1 -0
  78. package/dist/chunk-YNQNHCRS.js +198 -0
  79. package/dist/chunk-YNQNHCRS.js.map +1 -0
  80. package/dist/chunk-YQDQX4BT.js +624 -0
  81. package/dist/chunk-YQDQX4BT.js.map +1 -0
  82. package/dist/cli/commands/capabilities-explain.d.ts +3 -0
  83. package/dist/cli/commands/capabilities-explain.js +10 -0
  84. package/dist/cli/commands/capabilities-explain.js.map +1 -0
  85. package/dist/cli/commands/capabilities-list.d.ts +3 -0
  86. package/dist/cli/commands/capabilities-list.js +10 -0
  87. package/dist/cli/commands/capabilities-list.js.map +1 -0
  88. package/dist/cli/commands/doctor.d.ts +3 -0
  89. package/dist/cli/commands/doctor.js +7 -0
  90. package/dist/cli/commands/doctor.js.map +1 -0
  91. package/dist/cli/commands/routes.d.ts +3 -0
  92. package/dist/cli/commands/routes.js +7 -0
  93. package/dist/cli/commands/routes.js.map +1 -0
  94. package/dist/cli/commands/run.d.ts +3 -0
  95. package/dist/cli/commands/run.js +31 -0
  96. package/dist/cli/commands/run.js.map +1 -0
  97. package/dist/cli/commands/setup.d.ts +3 -0
  98. package/dist/cli/commands/setup.js +7 -0
  99. package/dist/cli/commands/setup.js.map +1 -0
  100. package/dist/cli/formatters/json.d.ts +3 -0
  101. package/dist/cli/formatters/json.js +8 -0
  102. package/dist/cli/formatters/json.js.map +1 -0
  103. package/dist/cli/formatters/table.d.ts +3 -0
  104. package/dist/cli/formatters/table.js +8 -0
  105. package/dist/cli/formatters/table.js.map +1 -0
  106. package/dist/cli/index.d.ts +4 -0
  107. package/dist/cli/index.js +118 -0
  108. package/dist/cli/index.js.map +1 -0
  109. package/dist/core/contracts/envelope.d.ts +43 -0
  110. package/dist/core/contracts/envelope.js +1 -0
  111. package/dist/core/contracts/envelope.js.map +1 -0
  112. package/dist/core/contracts/task.d.ts +7 -0
  113. package/dist/core/contracts/task.js +1 -0
  114. package/dist/core/contracts/task.js.map +1 -0
  115. package/dist/core/contracts/tasks/check_run.annotations.list.d.ts +5 -0
  116. package/dist/core/contracts/tasks/check_run.annotations.list.js +8 -0
  117. package/dist/core/contracts/tasks/check_run.annotations.list.js.map +1 -0
  118. package/dist/core/contracts/tasks/issue.comments.list.d.ts +5 -0
  119. package/dist/core/contracts/tasks/issue.comments.list.js +8 -0
  120. package/dist/core/contracts/tasks/issue.comments.list.js.map +1 -0
  121. package/dist/core/contracts/tasks/issue.list.d.ts +5 -0
  122. package/dist/core/contracts/tasks/issue.list.js +8 -0
  123. package/dist/core/contracts/tasks/issue.list.js.map +1 -0
  124. package/dist/core/contracts/tasks/issue.view.d.ts +5 -0
  125. package/dist/core/contracts/tasks/issue.view.js +8 -0
  126. package/dist/core/contracts/tasks/issue.view.js.map +1 -0
  127. package/dist/core/contracts/tasks/pr.checks.get_failed.d.ts +5 -0
  128. package/dist/core/contracts/tasks/pr.checks.get_failed.js +8 -0
  129. package/dist/core/contracts/tasks/pr.checks.get_failed.js.map +1 -0
  130. package/dist/core/contracts/tasks/pr.comment.reply.d.ts +5 -0
  131. package/dist/core/contracts/tasks/pr.comment.reply.js +8 -0
  132. package/dist/core/contracts/tasks/pr.comment.reply.js.map +1 -0
  133. package/dist/core/contracts/tasks/pr.comment.resolve.d.ts +5 -0
  134. package/dist/core/contracts/tasks/pr.comment.resolve.js +8 -0
  135. package/dist/core/contracts/tasks/pr.comment.resolve.js.map +1 -0
  136. package/dist/core/contracts/tasks/pr.comment.unresolve.d.ts +5 -0
  137. package/dist/core/contracts/tasks/pr.comment.unresolve.js +8 -0
  138. package/dist/core/contracts/tasks/pr.comment.unresolve.js.map +1 -0
  139. package/dist/core/contracts/tasks/pr.comments.list.d.ts +5 -0
  140. package/dist/core/contracts/tasks/pr.comments.list.js +8 -0
  141. package/dist/core/contracts/tasks/pr.comments.list.js.map +1 -0
  142. package/dist/core/contracts/tasks/pr.diff.list_files.d.ts +5 -0
  143. package/dist/core/contracts/tasks/pr.diff.list_files.js +8 -0
  144. package/dist/core/contracts/tasks/pr.diff.list_files.js.map +1 -0
  145. package/dist/core/contracts/tasks/pr.list.d.ts +5 -0
  146. package/dist/core/contracts/tasks/pr.list.js +8 -0
  147. package/dist/core/contracts/tasks/pr.list.js.map +1 -0
  148. package/dist/core/contracts/tasks/pr.mergeability.view.d.ts +5 -0
  149. package/dist/core/contracts/tasks/pr.mergeability.view.js +8 -0
  150. package/dist/core/contracts/tasks/pr.mergeability.view.js.map +1 -0
  151. package/dist/core/contracts/tasks/pr.ready_for_review.set.d.ts +5 -0
  152. package/dist/core/contracts/tasks/pr.ready_for_review.set.js +8 -0
  153. package/dist/core/contracts/tasks/pr.ready_for_review.set.js.map +1 -0
  154. package/dist/core/contracts/tasks/pr.reviews.list.d.ts +5 -0
  155. package/dist/core/contracts/tasks/pr.reviews.list.js +8 -0
  156. package/dist/core/contracts/tasks/pr.reviews.list.js.map +1 -0
  157. package/dist/core/contracts/tasks/pr.status.checks.d.ts +5 -0
  158. package/dist/core/contracts/tasks/pr.status.checks.js +8 -0
  159. package/dist/core/contracts/tasks/pr.status.checks.js.map +1 -0
  160. package/dist/core/contracts/tasks/pr.view.d.ts +5 -0
  161. package/dist/core/contracts/tasks/pr.view.js +8 -0
  162. package/dist/core/contracts/tasks/pr.view.js.map +1 -0
  163. package/dist/core/contracts/tasks/repo.view.d.ts +5 -0
  164. package/dist/core/contracts/tasks/repo.view.js +8 -0
  165. package/dist/core/contracts/tasks/repo.view.js.map +1 -0
  166. package/dist/core/contracts/tasks/workflow_job.logs.analyze.d.ts +5 -0
  167. package/dist/core/contracts/tasks/workflow_job.logs.analyze.js +8 -0
  168. package/dist/core/contracts/tasks/workflow_job.logs.analyze.js.map +1 -0
  169. package/dist/core/contracts/tasks/workflow_job.logs.get.d.ts +5 -0
  170. package/dist/core/contracts/tasks/workflow_job.logs.get.js +8 -0
  171. package/dist/core/contracts/tasks/workflow_job.logs.get.js.map +1 -0
  172. package/dist/core/contracts/tasks/workflow_run.jobs.list.d.ts +5 -0
  173. package/dist/core/contracts/tasks/workflow_run.jobs.list.js +8 -0
  174. package/dist/core/contracts/tasks/workflow_run.jobs.list.js.map +1 -0
  175. package/dist/core/contracts/tasks/workflow_runs.list.d.ts +5 -0
  176. package/dist/core/contracts/tasks/workflow_runs.list.js +8 -0
  177. package/dist/core/contracts/tasks/workflow_runs.list.js.map +1 -0
  178. package/dist/core/errors/codes.d.ts +13 -0
  179. package/dist/core/errors/codes.js +7 -0
  180. package/dist/core/errors/codes.js.map +1 -0
  181. package/dist/core/errors/map-error.d.ts +5 -0
  182. package/dist/core/errors/map-error.js +8 -0
  183. package/dist/core/errors/map-error.js.map +1 -0
  184. package/dist/core/errors/retryability.d.ts +3 -0
  185. package/dist/core/errors/retryability.js +8 -0
  186. package/dist/core/errors/retryability.js.map +1 -0
  187. package/dist/core/execute/execute.d.ts +28 -0
  188. package/dist/core/execute/execute.js +11 -0
  189. package/dist/core/execute/execute.js.map +1 -0
  190. package/dist/core/execution/adapters/cli-adapter.d.ts +22 -0
  191. package/dist/core/execution/adapters/cli-adapter.js +69 -0
  192. package/dist/core/execution/adapters/cli-adapter.js.map +1 -0
  193. package/dist/core/execution/adapters/cli-capability-adapter.d.ts +16 -0
  194. package/dist/core/execution/adapters/cli-capability-adapter.js +11 -0
  195. package/dist/core/execution/adapters/cli-capability-adapter.js.map +1 -0
  196. package/dist/core/execution/adapters/graphql-adapter.d.ts +25 -0
  197. package/dist/core/execution/adapters/graphql-adapter.js +44 -0
  198. package/dist/core/execution/adapters/graphql-adapter.js.map +1 -0
  199. package/dist/core/execution/adapters/graphql-capability-adapter.d.ts +20 -0
  200. package/dist/core/execution/adapters/graphql-capability-adapter.js +11 -0
  201. package/dist/core/execution/adapters/graphql-capability-adapter.js.map +1 -0
  202. package/dist/core/execution/adapters/rest-adapter.d.ts +3 -0
  203. package/dist/core/execution/adapters/rest-adapter.js +8 -0
  204. package/dist/core/execution/adapters/rest-adapter.js.map +1 -0
  205. package/dist/core/execution/cli/safe-runner.d.ts +12 -0
  206. package/dist/core/execution/cli/safe-runner.js +7 -0
  207. package/dist/core/execution/cli/safe-runner.js.map +1 -0
  208. package/dist/core/execution/normalizer.d.ts +13 -0
  209. package/dist/core/execution/normalizer.js +9 -0
  210. package/dist/core/execution/normalizer.js.map +1 -0
  211. package/dist/core/execution/preflight.d.ts +24 -0
  212. package/dist/core/execution/preflight.js +8 -0
  213. package/dist/core/execution/preflight.js.map +1 -0
  214. package/dist/core/registry/cards/check_run.annotations.list.yaml +35 -0
  215. package/dist/core/registry/cards/issue.comments.list.yaml +48 -0
  216. package/dist/core/registry/cards/issue.list.yaml +48 -0
  217. package/dist/core/registry/cards/issue.view.yaml +32 -0
  218. package/dist/core/registry/cards/pr.checks.get_failed.yaml +42 -0
  219. package/dist/core/registry/cards/pr.comment.reply.yaml +23 -0
  220. package/dist/core/registry/cards/pr.comment.resolve.yaml +22 -0
  221. package/dist/core/registry/cards/pr.comment.unresolve.yaml +22 -0
  222. package/dist/core/registry/cards/pr.comments.list.yaml +98 -0
  223. package/dist/core/registry/cards/pr.diff.list_files.yaml +43 -0
  224. package/dist/core/registry/cards/pr.list.yaml +48 -0
  225. package/dist/core/registry/cards/pr.mergeability.view.yaml +27 -0
  226. package/dist/core/registry/cards/pr.ready_for_review.set.yaml +24 -0
  227. package/dist/core/registry/cards/pr.reviews.list.yaml +47 -0
  228. package/dist/core/registry/cards/pr.status.checks.yaml +42 -0
  229. package/dist/core/registry/cards/pr.view.yaml +32 -0
  230. package/dist/core/registry/cards/repo.view.yaml +34 -0
  231. package/dist/core/registry/cards/workflow_job.logs.analyze.yaml +33 -0
  232. package/dist/core/registry/cards/workflow_job.logs.get.yaml +24 -0
  233. package/dist/core/registry/cards/workflow_run.jobs.list.yaml +35 -0
  234. package/dist/core/registry/cards/workflow_runs.list.yaml +45 -0
  235. package/dist/core/registry/index.d.ts +15 -0
  236. package/dist/core/registry/index.js +12 -0
  237. package/dist/core/registry/index.js.map +1 -0
  238. package/dist/core/registry/operation-card-schema.d.ts +167 -0
  239. package/dist/core/registry/operation-card-schema.js +7 -0
  240. package/dist/core/registry/operation-card-schema.js.map +1 -0
  241. package/dist/core/registry/schema-validator.d.ts +16 -0
  242. package/dist/core/registry/schema-validator.js +9 -0
  243. package/dist/core/registry/schema-validator.js.map +1 -0
  244. package/dist/core/registry/types.d.ts +51 -0
  245. package/dist/core/registry/types.js +1 -0
  246. package/dist/core/registry/types.js.map +1 -0
  247. package/dist/core/routing/capability-registry.d.ts +8 -0
  248. package/dist/core/routing/capability-registry.js +15 -0
  249. package/dist/core/routing/capability-registry.js.map +1 -0
  250. package/dist/core/routing/engine.d.ts +32 -0
  251. package/dist/core/routing/engine.js +23 -0
  252. package/dist/core/routing/engine.js.map +1 -0
  253. package/dist/core/routing/policy.d.ts +3 -0
  254. package/dist/core/routing/policy.js +7 -0
  255. package/dist/core/routing/policy.js.map +1 -0
  256. package/dist/core/routing/reason-codes.d.ts +4 -0
  257. package/dist/core/routing/reason-codes.js +15 -0
  258. package/dist/core/routing/reason-codes.js.map +1 -0
  259. package/dist/core/telemetry/logger.d.ts +8 -0
  260. package/dist/core/telemetry/logger.js +9 -0
  261. package/dist/core/telemetry/logger.js.map +1 -0
  262. package/dist/core/telemetry/metrics.d.ts +7 -0
  263. package/dist/core/telemetry/metrics.js +1 -0
  264. package/dist/core/telemetry/metrics.js.map +1 -0
  265. package/dist/gql/client.d.ts +183 -0
  266. package/dist/gql/client.js +17 -0
  267. package/dist/gql/client.js.map +1 -0
  268. package/dist/gql/generated/common-types.d.ts +36 -0
  269. package/dist/gql/generated/common-types.js +1 -0
  270. package/dist/gql/generated/common-types.js.map +1 -0
  271. package/dist/gql/operations/issue-comments-list.generated.d.ts +59 -0
  272. package/dist/gql/operations/issue-comments-list.generated.js +9 -0
  273. package/dist/gql/operations/issue-comments-list.generated.js.map +1 -0
  274. package/dist/gql/operations/issue-list.generated.d.ts +40 -0
  275. package/dist/gql/operations/issue-list.generated.js +9 -0
  276. package/dist/gql/operations/issue-list.generated.js.map +1 -0
  277. package/dist/gql/operations/issue-view.generated.d.ts +31 -0
  278. package/dist/gql/operations/issue-view.generated.js +9 -0
  279. package/dist/gql/operations/issue-view.generated.js.map +1 -0
  280. package/dist/gql/operations/pr-comment-reply.generated.d.ts +26 -0
  281. package/dist/gql/operations/pr-comment-reply.generated.js +25 -0
  282. package/dist/gql/operations/pr-comment-reply.generated.js.map +1 -0
  283. package/dist/gql/operations/pr-comment-resolve.generated.d.ts +26 -0
  284. package/dist/gql/operations/pr-comment-resolve.generated.js +24 -0
  285. package/dist/gql/operations/pr-comment-resolve.generated.js.map +1 -0
  286. package/dist/gql/operations/pr-comment-unresolve.generated.d.ts +26 -0
  287. package/dist/gql/operations/pr-comment-unresolve.generated.js +24 -0
  288. package/dist/gql/operations/pr-comment-unresolve.generated.js.map +1 -0
  289. package/dist/gql/operations/pr-comments-list.generated.d.ts +84 -0
  290. package/dist/gql/operations/pr-comments-list.generated.js +58 -0
  291. package/dist/gql/operations/pr-comments-list.generated.js.map +1 -0
  292. package/dist/gql/operations/pr-diff-list-files.generated.d.ts +42 -0
  293. package/dist/gql/operations/pr-diff-list-files.generated.js +9 -0
  294. package/dist/gql/operations/pr-diff-list-files.generated.js.map +1 -0
  295. package/dist/gql/operations/pr-list.generated.d.ts +40 -0
  296. package/dist/gql/operations/pr-list.generated.js +9 -0
  297. package/dist/gql/operations/pr-list.generated.js.map +1 -0
  298. package/dist/gql/operations/pr-reviews-list.generated.d.ts +64 -0
  299. package/dist/gql/operations/pr-reviews-list.generated.js +9 -0
  300. package/dist/gql/operations/pr-reviews-list.generated.js.map +1 -0
  301. package/dist/gql/operations/pr-view.generated.d.ts +31 -0
  302. package/dist/gql/operations/pr-view.generated.js +9 -0
  303. package/dist/gql/operations/pr-view.generated.js.map +1 -0
  304. package/dist/gql/operations/repo-view.generated.d.ts +33 -0
  305. package/dist/gql/operations/repo-view.generated.js +9 -0
  306. package/dist/gql/operations/repo-view.generated.js.map +1 -0
  307. package/dist/index.d.ts +22 -0
  308. package/dist/index.js +43 -0
  309. package/dist/index.js.map +1 -0
  310. package/dist/shared/constants.d.ts +3 -0
  311. package/dist/shared/constants.js +6 -0
  312. package/dist/shared/constants.js.map +1 -0
  313. package/dist/shared/types.d.ts +3 -0
  314. package/dist/shared/types.js +1 -0
  315. package/dist/shared/types.js.map +1 -0
  316. package/dist/shared/utils.d.ts +3 -0
  317. package/dist/shared/utils.js +8 -0
  318. package/dist/shared/utils.js.map +1 -0
  319. package/package.json +79 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/gql/client.ts"],"sourcesContent":["import { print, type DocumentNode } from \"graphql\"\nimport type { GraphQLClient, RequestDocument, RequestOptions } from \"graphql-request\"\n\nimport {\n getSdk as getIssueCommentsListSdk\n} from \"./operations/issue-comments-list.generated.js\"\nimport {\n getSdk as getIssueListSdk\n} from \"./operations/issue-list.generated.js\"\nimport {\n getSdk as getIssueViewSdk\n} from \"./operations/issue-view.generated.js\"\nimport {\n getSdk as getPrDiffListFilesSdk\n} from \"./operations/pr-diff-list-files.generated.js\"\nimport {\n getSdk as getPrReviewsListSdk\n} from \"./operations/pr-reviews-list.generated.js\"\nimport {\n getSdk as getPrListSdk\n} from \"./operations/pr-list.generated.js\"\nimport {\n getSdk as getPrViewSdk\n} from \"./operations/pr-view.generated.js\"\nimport {\n getSdk as getRepoViewSdk\n} from \"./operations/repo-view.generated.js\"\nimport type {\n IssueCommentsListQuery,\n IssueCommentsListQueryVariables,\n} from \"./operations/issue-comments-list.generated.js\"\nimport type {\n IssueListQuery,\n IssueListQueryVariables,\n} from \"./operations/issue-list.generated.js\"\nimport type {\n IssueViewQuery,\n IssueViewQueryVariables,\n} from \"./operations/issue-view.generated.js\"\nimport type {\n PrDiffListFilesQuery,\n PrDiffListFilesQueryVariables,\n} from \"./operations/pr-diff-list-files.generated.js\"\nimport type {\n PrReviewsListQuery,\n PrReviewsListQueryVariables,\n} from \"./operations/pr-reviews-list.generated.js\"\nimport type {\n PrListQuery,\n PrListQueryVariables,\n} from \"./operations/pr-list.generated.js\"\nimport type {\n PrViewQuery,\n PrViewQueryVariables,\n} from \"./operations/pr-view.generated.js\"\nimport type {\n RepoViewQuery,\n RepoViewQueryVariables\n} from \"./operations/repo-view.generated.js\"\n\nexport type GraphqlVariables = Record<string, unknown>\ntype GraphqlDocument = string | DocumentNode\ntype QueryLike = GraphqlDocument | RequestDocument\n\nexport interface GraphqlTransport {\n execute<TData>(query: string, variables?: GraphqlVariables): Promise<TData>\n}\n\nexport interface GraphqlClient {\n query<TData, TVariables extends GraphqlVariables = GraphqlVariables>(\n query: GraphqlDocument,\n variables?: TVariables\n ): Promise<TData>\n}\n\nexport type RepoViewInput = RepoViewQueryVariables\nexport type IssueCommentsListInput = IssueCommentsListQueryVariables\nexport type IssueListInput = IssueListQueryVariables\nexport type IssueViewInput = IssueViewQueryVariables\nexport type PrListInput = PrListQueryVariables\nexport type PrViewInput = PrViewQueryVariables\nexport type PrReviewsListInput = PrReviewsListQueryVariables\nexport type PrDiffListFilesInput = PrDiffListFilesQueryVariables\n\nexport type PrCommentsListInput = {\n owner: string\n name: string\n prNumber: number\n first: number\n after?: string | null\n unresolvedOnly?: boolean\n includeOutdated?: boolean\n}\n\nexport type RepoViewData = {\n id: string\n name: string\n nameWithOwner: string\n isPrivate: boolean\n stargazerCount: number\n forkCount: number\n url: string\n defaultBranch: string | null\n}\n\nexport type IssueViewData = {\n id: string\n number: number\n title: string\n state: string\n url: string\n}\n\nexport type IssueListData = {\n items: Array<IssueViewData>\n pageInfo: {\n endCursor: string | null\n hasNextPage: boolean\n }\n}\n\nexport type IssueCommentData = {\n id: string\n body: string\n authorLogin: string | null\n createdAt: string\n url: string\n}\n\nexport type IssueCommentsListData = {\n items: Array<IssueCommentData>\n pageInfo: {\n endCursor: string | null\n hasNextPage: boolean\n }\n}\n\nexport type PrViewData = {\n id: string\n number: number\n title: string\n state: string\n url: string\n}\n\nexport type PrListData = {\n items: Array<PrViewData>\n pageInfo: {\n endCursor: string | null\n hasNextPage: boolean\n }\n}\n\nexport type PrReviewThreadCommentData = {\n id: string\n authorLogin: string | null\n body: string\n createdAt: string\n url: string\n}\n\nexport type PrReviewThreadData = {\n id: string\n path: string | null\n line: number | null\n startLine: number | null\n diffSide: string | null\n subjectType: string | null\n isResolved: boolean\n isOutdated: boolean\n viewerCanReply: boolean\n viewerCanResolve: boolean\n viewerCanUnresolve: boolean\n resolvedByLogin: string | null\n comments: Array<PrReviewThreadCommentData>\n}\n\nexport type PrCommentsListData = {\n items: Array<PrReviewThreadData>\n pageInfo: {\n endCursor: string | null\n hasNextPage: boolean\n }\n filterApplied: {\n unresolvedOnly: boolean\n includeOutdated: boolean\n }\n scan: {\n pagesScanned: number\n sourceItemsScanned: number\n scanTruncated: boolean\n }\n}\n\nexport type PrReviewData = {\n id: string\n authorLogin: string | null\n body: string\n state: string\n submittedAt: string | null\n url: string\n commitOid: string | null\n}\n\nexport type PrReviewsListData = {\n items: Array<PrReviewData>\n pageInfo: {\n endCursor: string | null\n hasNextPage: boolean\n }\n}\n\nexport type PrDiffFileData = {\n path: string\n additions: number\n deletions: number\n}\n\nexport type PrDiffListFilesData = {\n items: Array<PrDiffFileData>\n pageInfo: {\n endCursor: string | null\n hasNextPage: boolean\n }\n}\n\nexport type ReviewThreadMutationInput = {\n threadId: string\n}\n\nexport type ReplyToReviewThreadInput = ReviewThreadMutationInput & {\n body: string\n}\n\nexport type ReviewThreadMutationData = {\n id: string\n isResolved: boolean\n}\n\nexport interface GithubClient extends GraphqlClient {\n fetchRepoView(input: RepoViewInput): Promise<RepoViewData>\n fetchIssueCommentsList(input: IssueCommentsListInput): Promise<IssueCommentsListData>\n fetchIssueList(input: IssueListInput): Promise<IssueListData>\n fetchIssueView(input: IssueViewInput): Promise<IssueViewData>\n fetchPrList(input: PrListInput): Promise<PrListData>\n fetchPrView(input: PrViewInput): Promise<PrViewData>\n fetchPrCommentsList(input: PrCommentsListInput): Promise<PrCommentsListData>\n fetchPrReviewsList(input: PrReviewsListInput): Promise<PrReviewsListData>\n fetchPrDiffListFiles(input: PrDiffListFilesInput): Promise<PrDiffListFilesData>\n replyToReviewThread(input: ReplyToReviewThreadInput): Promise<ReviewThreadMutationData>\n resolveReviewThread(input: ReviewThreadMutationInput): Promise<ReviewThreadMutationData>\n unresolveReviewThread(input: ReviewThreadMutationInput): Promise<ReviewThreadMutationData>\n}\n\nfunction assertRepoInput(input: RepoViewInput): void {\n if (input.owner.trim().length === 0 || input.name.trim().length === 0) {\n throw new Error(\"Repository owner and name are required\")\n }\n}\n\nfunction assertIssueInput(input: IssueViewInput): void {\n if (input.owner.trim().length === 0 || input.name.trim().length === 0) {\n throw new Error(\"Repository owner and name are required\")\n }\n if (!Number.isInteger(input.issueNumber) || input.issueNumber <= 0) {\n throw new Error(\"Issue number must be a positive integer\")\n }\n}\n\nfunction assertIssueListInput(input: IssueListInput): void {\n if (input.owner.trim().length === 0 || input.name.trim().length === 0) {\n throw new Error(\"Repository owner and name are required\")\n }\n if (!Number.isInteger(input.first) || input.first <= 0) {\n throw new Error(\"List page size must be a positive integer\")\n }\n}\n\nfunction assertIssueCommentsListInput(input: IssueCommentsListInput): void {\n if (input.owner.trim().length === 0 || input.name.trim().length === 0) {\n throw new Error(\"Repository owner and name are required\")\n }\n if (!Number.isInteger(input.issueNumber) || input.issueNumber <= 0) {\n throw new Error(\"Issue number must be a positive integer\")\n }\n if (!Number.isInteger(input.first) || input.first <= 0) {\n throw new Error(\"List page size must be a positive integer\")\n }\n if (input.after !== undefined && input.after !== null && typeof input.after !== \"string\") {\n throw new Error(\"After cursor must be a string\")\n }\n}\n\nfunction assertPrInput(input: PrViewInput): void {\n if (input.owner.trim().length === 0 || input.name.trim().length === 0) {\n throw new Error(\"Repository owner and name are required\")\n }\n if (!Number.isInteger(input.prNumber) || input.prNumber <= 0) {\n throw new Error(\"PR number must be a positive integer\")\n }\n}\n\nfunction assertPrListInput(input: PrListInput): void {\n if (input.owner.trim().length === 0 || input.name.trim().length === 0) {\n throw new Error(\"Repository owner and name are required\")\n }\n if (!Number.isInteger(input.first) || input.first <= 0) {\n throw new Error(\"List page size must be a positive integer\")\n }\n}\n\nfunction assertPrReviewsListInput(input: PrReviewsListInput): void {\n if (\n typeof input.owner !== \"string\"\n || typeof input.name !== \"string\"\n || input.owner.trim().length === 0\n || input.name.trim().length === 0\n ) {\n throw new Error(\"Repository owner and name are required\")\n }\n if (!Number.isInteger(input.prNumber) || input.prNumber <= 0) {\n throw new Error(\"PR number must be a positive integer\")\n }\n if (!Number.isInteger(input.first) || input.first <= 0) {\n throw new Error(\"List page size must be a positive integer\")\n }\n}\n\nfunction assertPrDiffListFilesInput(input: PrDiffListFilesInput): void {\n if (\n typeof input.owner !== \"string\"\n || typeof input.name !== \"string\"\n || input.owner.trim().length === 0\n || input.name.trim().length === 0\n ) {\n throw new Error(\"Repository owner and name are required\")\n }\n if (!Number.isInteger(input.prNumber) || input.prNumber <= 0) {\n throw new Error(\"PR number must be a positive integer\")\n }\n if (!Number.isInteger(input.first) || input.first <= 0) {\n throw new Error(\"List page size must be a positive integer\")\n }\n}\n\nfunction assertPrCommentsListInput(input: PrCommentsListInput): void {\n if (\n typeof input.owner !== \"string\"\n || typeof input.name !== \"string\"\n || input.owner.trim().length === 0\n || input.name.trim().length === 0\n ) {\n throw new Error(\"Repository owner and name are required\")\n }\n if (!Number.isInteger(input.prNumber) || input.prNumber <= 0) {\n throw new Error(\"PR number must be a positive integer\")\n }\n if (!Number.isInteger(input.first) || input.first <= 0) {\n throw new Error(\"List page size must be a positive integer\")\n }\n if (input.unresolvedOnly !== undefined && typeof input.unresolvedOnly !== \"boolean\") {\n throw new Error(\"unresolvedOnly must be a boolean\")\n }\n if (input.includeOutdated !== undefined && typeof input.includeOutdated !== \"boolean\") {\n throw new Error(\"includeOutdated must be a boolean\")\n }\n if (input.after !== undefined && input.after !== null && typeof input.after !== \"string\") {\n throw new Error(\"After cursor must be a string\")\n }\n}\n\nconst PR_COMMENTS_LIST_QUERY = `\n query PrCommentsList($owner: String!, $name: String!, $prNumber: Int!, $first: Int!, $after: String) {\n repository(owner: $owner, name: $name) {\n pullRequest(number: $prNumber) {\n reviewThreads(first: $first, after: $after) {\n edges {\n cursor\n node {\n id\n path\n line\n startLine\n diffSide\n subjectType\n isResolved\n isOutdated\n viewerCanReply\n viewerCanResolve\n viewerCanUnresolve\n resolvedBy {\n login\n }\n comments(first: 20) {\n nodes {\n id\n body\n createdAt\n url\n author {\n login\n }\n }\n }\n }\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n }\n }\n }\n`\n\nconst PR_COMMENT_REPLY_MUTATION = `\n mutation PrCommentReply($threadId: ID!, $body: String!) {\n addPullRequestReviewThreadReply(input: { pullRequestReviewThreadId: $threadId, body: $body }) {\n comment {\n id\n }\n }\n }\n`\n\nconst PR_COMMENT_RESOLVE_MUTATION = `\n mutation PrCommentResolve($threadId: ID!) {\n resolveReviewThread(input: { threadId: $threadId }) {\n thread {\n id\n isResolved\n }\n }\n }\n`\n\nconst PR_COMMENT_UNRESOLVE_MUTATION = `\n mutation PrCommentUnresolve($threadId: ID!) {\n unresolveReviewThread(input: { threadId: $threadId }) {\n thread {\n id\n isResolved\n }\n }\n }\n`\n\nconst REVIEW_THREAD_STATE_QUERY = `\n query ReviewThreadState($threadId: ID!) {\n node(id: $threadId) {\n ... on PullRequestReviewThread {\n id\n isResolved\n }\n }\n }\n`\n\ntype SdkClients = {\n issueCommentsList: ReturnType<typeof getIssueCommentsListSdk>\n issueList: ReturnType<typeof getIssueListSdk>\n issue: ReturnType<typeof getIssueViewSdk>\n prDiffListFiles: ReturnType<typeof getPrDiffListFilesSdk>\n prList: ReturnType<typeof getPrListSdk>\n prReviewsList: ReturnType<typeof getPrReviewsListSdk>\n pr: ReturnType<typeof getPrViewSdk>\n repo: ReturnType<typeof getRepoViewSdk>\n}\n\nfunction createSdkClients(transport: GraphqlTransport): SdkClients {\n const client: Pick<GraphQLClient, \"request\"> = {\n request<TData, TVariables extends object = object>(\n documentOrOptions: RequestDocument | RequestOptions<TVariables, TData>,\n ...variablesAndRequestHeaders: unknown[]\n ): Promise<TData> {\n const options =\n typeof documentOrOptions === \"object\" && documentOrOptions !== null && \"document\" in documentOrOptions\n ? documentOrOptions\n : {\n document: documentOrOptions,\n variables: variablesAndRequestHeaders[0] as TVariables | undefined\n }\n\n const queryText = queryToString(options.document)\n assertQuery(queryText)\n return transport.execute<TData>(queryText, options.variables as GraphqlVariables)\n }\n }\n\n const graphqlRequestClient = client as GraphQLClient\n\n return {\n issueCommentsList: getIssueCommentsListSdk(graphqlRequestClient),\n issueList: getIssueListSdk(graphqlRequestClient),\n issue: getIssueViewSdk(graphqlRequestClient),\n prDiffListFiles: getPrDiffListFilesSdk(graphqlRequestClient),\n prList: getPrListSdk(graphqlRequestClient),\n prReviewsList: getPrReviewsListSdk(graphqlRequestClient),\n pr: getPrViewSdk(graphqlRequestClient),\n repo: getRepoViewSdk(graphqlRequestClient)\n }\n}\n\nasync function runRepoView(sdk: SdkClients[\"repo\"], input: RepoViewInput): Promise<RepoViewData> {\n assertRepoInput(input)\n\n const result: RepoViewQuery = await sdk.RepoView(input)\n if (!result.repository) {\n throw new Error(\"Repository not found\")\n }\n\n return {\n id: result.repository.id,\n name: result.repository.name,\n nameWithOwner: result.repository.nameWithOwner,\n isPrivate: result.repository.isPrivate,\n stargazerCount: result.repository.stargazerCount,\n forkCount: result.repository.forkCount,\n url: result.repository.url,\n defaultBranch: result.repository.defaultBranchRef?.name ?? null\n }\n}\n\nasync function runIssueView(sdk: SdkClients[\"issue\"], input: IssueViewInput): Promise<IssueViewData> {\n assertIssueInput(input)\n\n const result: IssueViewQuery = await sdk.IssueView(input)\n const issue = result.repository?.issue\n if (!issue) {\n throw new Error(\"Issue not found\")\n }\n\n return {\n id: issue.id,\n number: issue.number,\n title: issue.title,\n state: issue.state,\n url: issue.url\n }\n}\n\nasync function runIssueList(sdk: SdkClients[\"issueList\"], input: IssueListInput): Promise<IssueListData> {\n assertIssueListInput(input)\n\n const result: IssueListQuery = await sdk.IssueList(input)\n const issues = result.repository?.issues\n if (!issues) {\n throw new Error(\"Issues not found\")\n }\n\n return {\n items: (issues.nodes ?? []).flatMap((issue) =>\n issue\n ? [\n {\n id: issue.id,\n number: issue.number,\n title: issue.title,\n state: issue.state,\n url: issue.url\n }\n ]\n : []\n ),\n pageInfo: {\n endCursor: issues.pageInfo.endCursor ?? null,\n hasNextPage: issues.pageInfo.hasNextPage\n }\n }\n}\n\nasync function runIssueCommentsList(\n sdk: SdkClients[\"issueCommentsList\"],\n input: IssueCommentsListInput\n): Promise<IssueCommentsListData> {\n assertIssueCommentsListInput(input)\n\n const result: IssueCommentsListQuery = await sdk.IssueCommentsList(input)\n const comments = result.repository?.issue?.comments\n if (!comments) {\n throw new Error(\"Issue comments not found\")\n }\n\n return {\n items: (comments.nodes ?? []).flatMap((comment) =>\n comment\n ? [\n {\n id: comment.id,\n body: comment.body,\n authorLogin: comment.author?.login ?? null,\n createdAt: comment.createdAt,\n url: String(comment.url)\n }\n ]\n : []\n ),\n pageInfo: {\n endCursor: comments.pageInfo.endCursor ?? null,\n hasNextPage: comments.pageInfo.hasNextPage\n }\n }\n}\n\nasync function runPrView(sdk: SdkClients[\"pr\"], input: PrViewInput): Promise<PrViewData> {\n assertPrInput(input)\n\n const result: PrViewQuery = await sdk.PrView(input)\n const pr = result.repository?.pullRequest\n if (!pr) {\n throw new Error(\"Pull request not found\")\n }\n\n return {\n id: pr.id,\n number: pr.number,\n title: pr.title,\n state: pr.state,\n url: pr.url\n }\n}\n\nasync function runPrList(sdk: SdkClients[\"prList\"], input: PrListInput): Promise<PrListData> {\n assertPrListInput(input)\n\n const result: PrListQuery = await sdk.PrList(input)\n const prs = result.repository?.pullRequests\n if (!prs) {\n throw new Error(\"Pull requests not found\")\n }\n\n return {\n items: (prs.nodes ?? []).flatMap((pr) =>\n pr\n ? [\n {\n id: pr.id,\n number: pr.number,\n title: pr.title,\n state: pr.state,\n url: pr.url\n }\n ]\n : []\n ),\n pageInfo: {\n endCursor: prs.pageInfo.endCursor ?? null,\n hasNextPage: prs.pageInfo.hasNextPage\n }\n }\n}\n\nasync function runPrReviewsList(\n sdk: SdkClients[\"prReviewsList\"],\n input: PrReviewsListInput\n): Promise<PrReviewsListData> {\n assertPrReviewsListInput(input)\n\n const result: PrReviewsListQuery = await sdk.PrReviewsList(input)\n const reviews = result.repository?.pullRequest?.reviews\n if (!reviews) {\n throw new Error(\"Pull request reviews not found\")\n }\n\n return {\n items: (reviews.nodes ?? []).flatMap((review) =>\n review\n ? [{\n id: review.id,\n authorLogin: review.author?.login ?? null,\n body: review.body,\n state: review.state,\n submittedAt: review.submittedAt ?? null,\n url: review.url,\n commitOid: review.commit?.oid ?? null\n }]\n : []\n ),\n pageInfo: {\n endCursor: reviews.pageInfo.endCursor ?? null,\n hasNextPage: reviews.pageInfo.hasNextPage\n }\n }\n}\n\nasync function runPrDiffListFiles(\n sdk: SdkClients[\"prDiffListFiles\"],\n input: PrDiffListFilesInput\n): Promise<PrDiffListFilesData> {\n assertPrDiffListFilesInput(input)\n\n const result: PrDiffListFilesQuery = await sdk.PrDiffListFiles(input)\n const files = result.repository?.pullRequest?.files\n if (!files) {\n throw new Error(\"Pull request files not found\")\n }\n\n return {\n items: (files.nodes ?? []).flatMap((file) =>\n file\n ? [{\n path: file.path,\n additions: file.additions,\n deletions: file.deletions\n }]\n : []\n ),\n pageInfo: {\n endCursor: files.pageInfo.endCursor ?? null,\n hasNextPage: files.pageInfo.hasNextPage\n }\n }\n}\n\nconst MAX_PR_REVIEW_THREAD_SCAN_PAGES = 5\n\nfunction asRecord(value: unknown): Record<string, unknown> | null {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : null\n}\n\nfunction normalizePrReviewThreadComment(comment: unknown): PrReviewThreadCommentData | null {\n const commentRecord = asRecord(comment)\n if (!commentRecord || typeof commentRecord.id !== \"string\") {\n return null\n }\n\n const author = asRecord(commentRecord.author)\n const url = commentRecord.url\n\n return {\n id: commentRecord.id,\n authorLogin: typeof author?.login === \"string\" ? author.login : null,\n body: typeof commentRecord.body === \"string\" ? commentRecord.body : \"\",\n createdAt: typeof commentRecord.createdAt === \"string\" ? commentRecord.createdAt : \"\",\n url: typeof url === \"string\" ? url : String(url ?? \"\")\n }\n}\n\nfunction normalizePrReviewThread(thread: unknown): PrReviewThreadData | null {\n const threadRecord = asRecord(thread)\n if (!threadRecord || typeof threadRecord.id !== \"string\") {\n return null\n }\n\n const comments = asRecord(threadRecord.comments)\n const commentNodes = Array.isArray(comments?.nodes) ? comments.nodes : []\n const resolvedBy = asRecord(threadRecord.resolvedBy)\n\n return {\n id: threadRecord.id,\n path: typeof threadRecord.path === \"string\" ? threadRecord.path : null,\n line: typeof threadRecord.line === \"number\" ? threadRecord.line : null,\n startLine: typeof threadRecord.startLine === \"number\" ? threadRecord.startLine : null,\n diffSide: typeof threadRecord.diffSide === \"string\" ? threadRecord.diffSide : null,\n subjectType: typeof threadRecord.subjectType === \"string\" ? threadRecord.subjectType : null,\n isResolved: Boolean(threadRecord.isResolved),\n isOutdated: Boolean(threadRecord.isOutdated),\n viewerCanReply: Boolean(threadRecord.viewerCanReply),\n viewerCanResolve: Boolean(threadRecord.viewerCanResolve),\n viewerCanUnresolve: Boolean(threadRecord.viewerCanUnresolve),\n resolvedByLogin: typeof resolvedBy?.login === \"string\" ? resolvedBy.login : null,\n comments: commentNodes\n .map((comment) => normalizePrReviewThreadComment(comment))\n .flatMap((comment) => (comment ? [comment] : []))\n }\n}\n\nasync function runPrCommentsList(\n graphqlClient: GraphqlClient,\n input: PrCommentsListInput\n): Promise<PrCommentsListData> {\n assertPrCommentsListInput(input)\n\n const unresolvedOnly = input.unresolvedOnly ?? false\n const includeOutdated = input.includeOutdated ?? true\n\n const filteredThreads: Array<{ thread: PrReviewThreadData; cursor: string | null }> = []\n let sourceEndCursor: string | null = input.after ?? null\n let sourceHasNextPage = false\n let pagesScanned = 0\n let sourceItemsScanned = 0\n\n while (pagesScanned < MAX_PR_REVIEW_THREAD_SCAN_PAGES && filteredThreads.length < input.first) {\n const result = await graphqlClient.query<unknown, GraphqlVariables>(PR_COMMENTS_LIST_QUERY, {\n owner: input.owner,\n name: input.name,\n prNumber: input.prNumber,\n first: input.first,\n after: sourceEndCursor\n })\n\n const repository = asRecord(asRecord(result)?.repository)\n const pullRequest = asRecord(repository?.pullRequest)\n const reviewThreads = asRecord(pullRequest?.reviewThreads)\n if (!reviewThreads) {\n throw new Error(\"Pull request review threads not found\")\n }\n\n const pageInfo = asRecord(reviewThreads.pageInfo)\n const threadEdges = Array.isArray(reviewThreads.edges)\n ? reviewThreads.edges\n .map((edge) => {\n const edgeRecord = asRecord(edge)\n if (!edgeRecord) {\n return null\n }\n\n return {\n cursor: typeof edgeRecord.cursor === \"string\" ? edgeRecord.cursor : null,\n node: edgeRecord.node\n }\n })\n .flatMap((edge) => (edge ? [edge] : []))\n : []\n\n const threadNodes = threadEdges.length > 0\n ? threadEdges\n : (Array.isArray(reviewThreads.nodes) ? reviewThreads.nodes.map((node) => ({ cursor: null, node })) : [])\n\n pagesScanned += 1\n sourceItemsScanned += threadNodes.length\n\n for (const threadNode of threadNodes) {\n const normalized = normalizePrReviewThread(threadNode.node)\n if (!normalized) {\n continue\n }\n\n if (unresolvedOnly && normalized.isResolved) {\n continue\n }\n\n if (unresolvedOnly && !includeOutdated && normalized.isOutdated) {\n continue\n }\n\n filteredThreads.push({ thread: normalized, cursor: threadNode.cursor })\n }\n\n sourceHasNextPage = Boolean(pageInfo?.hasNextPage)\n sourceEndCursor = typeof pageInfo?.endCursor === \"string\" ? pageInfo.endCursor : null\n\n if (!sourceHasNextPage) {\n break\n }\n }\n\n const hasBufferedFilteredItems = filteredThreads.length > input.first\n const returnedThreads = filteredThreads.slice(0, input.first)\n const endCursor = returnedThreads.length > 0\n ? (returnedThreads[returnedThreads.length - 1]?.cursor ?? sourceEndCursor)\n : sourceEndCursor\n const scanTruncated = sourceHasNextPage && pagesScanned >= MAX_PR_REVIEW_THREAD_SCAN_PAGES\n\n return {\n items: returnedThreads.map((entry) => entry.thread),\n pageInfo: {\n hasNextPage: hasBufferedFilteredItems || sourceHasNextPage,\n endCursor: hasBufferedFilteredItems || sourceHasNextPage ? endCursor : null\n },\n filterApplied: {\n unresolvedOnly,\n includeOutdated\n },\n scan: {\n pagesScanned,\n sourceItemsScanned,\n scanTruncated\n }\n }\n}\n\nfunction assertReviewThreadInput(input: ReviewThreadMutationInput): void {\n if (typeof input.threadId !== \"string\" || input.threadId.trim().length === 0) {\n throw new Error(\"Review thread id is required\")\n }\n}\n\nfunction assertReplyToReviewThreadInput(input: ReplyToReviewThreadInput): void {\n assertReviewThreadInput(input)\n if (typeof input.body !== \"string\" || input.body.trim().length === 0) {\n throw new Error(\"Reply body is required\")\n }\n}\n\nfunction parseReviewThreadMutationResult(result: unknown, mutationKey: string): ReviewThreadMutationData {\n const root = asRecord(result)\n const mutation = asRecord(root?.[mutationKey])\n const thread = asRecord(mutation?.thread)\n if (!thread || typeof thread.id !== \"string\") {\n throw new Error(\"Review thread mutation failed\")\n }\n\n return {\n id: thread.id,\n isResolved: Boolean(thread.isResolved)\n }\n}\n\nasync function runReplyToReviewThread(\n graphqlClient: GraphqlClient,\n input: ReplyToReviewThreadInput\n): Promise<ReviewThreadMutationData> {\n assertReplyToReviewThreadInput(input)\n\n const result = await graphqlClient.query<unknown, GraphqlVariables>(PR_COMMENT_REPLY_MUTATION, {\n threadId: input.threadId,\n body: input.body\n })\n const root = asRecord(result)\n const mutation = asRecord(root?.addPullRequestReviewThreadReply)\n const comment = asRecord(mutation?.comment)\n if (!comment || typeof comment.id !== \"string\") {\n throw new Error(\"Review thread mutation failed\")\n }\n\n const threadStateResult = await graphqlClient.query<unknown, GraphqlVariables>(REVIEW_THREAD_STATE_QUERY, {\n threadId: input.threadId\n })\n const threadNode = asRecord(asRecord(threadStateResult)?.node)\n if (!threadNode || typeof threadNode.id !== \"string\") {\n throw new Error(\"Review thread state lookup failed\")\n }\n\n return {\n id: input.threadId,\n isResolved: Boolean(threadNode.isResolved)\n }\n}\n\nasync function runResolveReviewThread(\n graphqlClient: GraphqlClient,\n input: ReviewThreadMutationInput\n): Promise<ReviewThreadMutationData> {\n assertReviewThreadInput(input)\n\n const result = await graphqlClient.query<unknown, GraphqlVariables>(PR_COMMENT_RESOLVE_MUTATION, {\n threadId: input.threadId\n })\n return parseReviewThreadMutationResult(result, \"resolveReviewThread\")\n}\n\nasync function runUnresolveReviewThread(\n graphqlClient: GraphqlClient,\n input: ReviewThreadMutationInput\n): Promise<ReviewThreadMutationData> {\n assertReviewThreadInput(input)\n\n const result = await graphqlClient.query<unknown, GraphqlVariables>(PR_COMMENT_UNRESOLVE_MUTATION, {\n threadId: input.threadId\n })\n return parseReviewThreadMutationResult(result, \"unresolveReviewThread\")\n}\n\nfunction queryToString(query: QueryLike): string {\n if (typeof query === \"string\") {\n return query\n }\n\n if (typeof query === \"object\" && query !== null && \"kind\" in query) {\n return print(query as DocumentNode)\n }\n\n return String(query)\n}\n\nfunction assertQuery(query: string): void {\n if (query.trim().length === 0) {\n throw new Error(\"GraphQL query must be non-empty\")\n }\n}\n\nexport function createGraphqlClient(transport: GraphqlTransport): GraphqlClient {\n return {\n async query<TData, TVariables extends GraphqlVariables = GraphqlVariables>(\n query: GraphqlDocument,\n variables?: TVariables\n ): Promise<TData> {\n const queryText = queryToString(query)\n assertQuery(queryText)\n return transport.execute<TData>(queryText, variables)\n }\n }\n}\n\nexport function createGithubClient(transport: GraphqlTransport): GithubClient {\n const graphqlClient = createGraphqlClient(transport)\n const sdk = createSdkClients(transport)\n\n return {\n query: (query, variables) => graphqlClient.query(query, variables),\n fetchRepoView: (input) => runRepoView(sdk.repo, input),\n fetchIssueCommentsList: (input) => runIssueCommentsList(sdk.issueCommentsList, input),\n fetchIssueList: (input) => runIssueList(sdk.issueList, input),\n fetchIssueView: (input) => runIssueView(sdk.issue, input),\n fetchPrList: (input) => runPrList(sdk.prList, input),\n fetchPrView: (input) => runPrView(sdk.pr, input),\n fetchPrCommentsList: (input) => runPrCommentsList(graphqlClient, input),\n fetchPrReviewsList: (input) => runPrReviewsList(sdk.prReviewsList, input),\n fetchPrDiffListFiles: (input) => runPrDiffListFiles(sdk.prDiffListFiles, input),\n replyToReviewThread: (input) => runReplyToReviewThread(graphqlClient, input),\n resolveReviewThread: (input) => runResolveReviewThread(graphqlClient, input),\n unresolveReviewThread: (input) => runUnresolveReviewThread(graphqlClient, input)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,aAAgC;AA8PzC,SAAS,gBAAgB,OAA4B;AACnD,MAAI,MAAM,MAAM,KAAK,EAAE,WAAW,KAAK,MAAM,KAAK,KAAK,EAAE,WAAW,GAAG;AACrE,UAAM,IAAI,MAAM,wCAAwC;AAAA,EAC1D;AACF;AAEA,SAAS,iBAAiB,OAA6B;AACrD,MAAI,MAAM,MAAM,KAAK,EAAE,WAAW,KAAK,MAAM,KAAK,KAAK,EAAE,WAAW,GAAG;AACrE,UAAM,IAAI,MAAM,wCAAwC;AAAA,EAC1D;AACA,MAAI,CAAC,OAAO,UAAU,MAAM,WAAW,KAAK,MAAM,eAAe,GAAG;AAClE,UAAM,IAAI,MAAM,yCAAyC;AAAA,EAC3D;AACF;AAEA,SAAS,qBAAqB,OAA6B;AACzD,MAAI,MAAM,MAAM,KAAK,EAAE,WAAW,KAAK,MAAM,KAAK,KAAK,EAAE,WAAW,GAAG;AACrE,UAAM,IAAI,MAAM,wCAAwC;AAAA,EAC1D;AACA,MAAI,CAAC,OAAO,UAAU,MAAM,KAAK,KAAK,MAAM,SAAS,GAAG;AACtD,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AACF;AAEA,SAAS,6BAA6B,OAAqC;AACzE,MAAI,MAAM,MAAM,KAAK,EAAE,WAAW,KAAK,MAAM,KAAK,KAAK,EAAE,WAAW,GAAG;AACrE,UAAM,IAAI,MAAM,wCAAwC;AAAA,EAC1D;AACA,MAAI,CAAC,OAAO,UAAU,MAAM,WAAW,KAAK,MAAM,eAAe,GAAG;AAClE,UAAM,IAAI,MAAM,yCAAyC;AAAA,EAC3D;AACA,MAAI,CAAC,OAAO,UAAU,MAAM,KAAK,KAAK,MAAM,SAAS,GAAG;AACtD,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AACA,MAAI,MAAM,UAAU,UAAa,MAAM,UAAU,QAAQ,OAAO,MAAM,UAAU,UAAU;AACxF,UAAM,IAAI,MAAM,+BAA+B;AAAA,EACjD;AACF;AAEA,SAAS,cAAc,OAA0B;AAC/C,MAAI,MAAM,MAAM,KAAK,EAAE,WAAW,KAAK,MAAM,KAAK,KAAK,EAAE,WAAW,GAAG;AACrE,UAAM,IAAI,MAAM,wCAAwC;AAAA,EAC1D;AACA,MAAI,CAAC,OAAO,UAAU,MAAM,QAAQ,KAAK,MAAM,YAAY,GAAG;AAC5D,UAAM,IAAI,MAAM,sCAAsC;AAAA,EACxD;AACF;AAEA,SAAS,kBAAkB,OAA0B;AACnD,MAAI,MAAM,MAAM,KAAK,EAAE,WAAW,KAAK,MAAM,KAAK,KAAK,EAAE,WAAW,GAAG;AACrE,UAAM,IAAI,MAAM,wCAAwC;AAAA,EAC1D;AACA,MAAI,CAAC,OAAO,UAAU,MAAM,KAAK,KAAK,MAAM,SAAS,GAAG;AACtD,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AACF;AAEA,SAAS,yBAAyB,OAAiC;AACjE,MACE,OAAO,MAAM,UAAU,YACpB,OAAO,MAAM,SAAS,YACtB,MAAM,MAAM,KAAK,EAAE,WAAW,KAC9B,MAAM,KAAK,KAAK,EAAE,WAAW,GAChC;AACA,UAAM,IAAI,MAAM,wCAAwC;AAAA,EAC1D;AACA,MAAI,CAAC,OAAO,UAAU,MAAM,QAAQ,KAAK,MAAM,YAAY,GAAG;AAC5D,UAAM,IAAI,MAAM,sCAAsC;AAAA,EACxD;AACA,MAAI,CAAC,OAAO,UAAU,MAAM,KAAK,KAAK,MAAM,SAAS,GAAG;AACtD,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AACF;AAEA,SAAS,2BAA2B,OAAmC;AACrE,MACE,OAAO,MAAM,UAAU,YACpB,OAAO,MAAM,SAAS,YACtB,MAAM,MAAM,KAAK,EAAE,WAAW,KAC9B,MAAM,KAAK,KAAK,EAAE,WAAW,GAChC;AACA,UAAM,IAAI,MAAM,wCAAwC;AAAA,EAC1D;AACA,MAAI,CAAC,OAAO,UAAU,MAAM,QAAQ,KAAK,MAAM,YAAY,GAAG;AAC5D,UAAM,IAAI,MAAM,sCAAsC;AAAA,EACxD;AACA,MAAI,CAAC,OAAO,UAAU,MAAM,KAAK,KAAK,MAAM,SAAS,GAAG;AACtD,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AACF;AAEA,SAAS,0BAA0B,OAAkC;AACnE,MACE,OAAO,MAAM,UAAU,YACpB,OAAO,MAAM,SAAS,YACtB,MAAM,MAAM,KAAK,EAAE,WAAW,KAC9B,MAAM,KAAK,KAAK,EAAE,WAAW,GAChC;AACA,UAAM,IAAI,MAAM,wCAAwC;AAAA,EAC1D;AACA,MAAI,CAAC,OAAO,UAAU,MAAM,QAAQ,KAAK,MAAM,YAAY,GAAG;AAC5D,UAAM,IAAI,MAAM,sCAAsC;AAAA,EACxD;AACA,MAAI,CAAC,OAAO,UAAU,MAAM,KAAK,KAAK,MAAM,SAAS,GAAG;AACtD,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AACA,MAAI,MAAM,mBAAmB,UAAa,OAAO,MAAM,mBAAmB,WAAW;AACnF,UAAM,IAAI,MAAM,kCAAkC;AAAA,EACpD;AACA,MAAI,MAAM,oBAAoB,UAAa,OAAO,MAAM,oBAAoB,WAAW;AACrF,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AACA,MAAI,MAAM,UAAU,UAAa,MAAM,UAAU,QAAQ,OAAO,MAAM,UAAU,UAAU;AACxF,UAAM,IAAI,MAAM,+BAA+B;AAAA,EACjD;AACF;AAEA,IAAM,yBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6C/B,IAAM,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUlC,IAAM,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWpC,IAAM,gCAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWtC,IAAM,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBlC,SAAS,iBAAiB,WAAyC;AACjE,QAAM,SAAyC;AAAA,IAC7C,QACE,sBACG,4BACa;AAChB,YAAM,UACJ,OAAO,sBAAsB,YAAY,sBAAsB,QAAQ,cAAc,oBACjF,oBACA;AAAA,QACE,UAAU;AAAA,QACV,WAAW,2BAA2B,CAAC;AAAA,MACzC;AAEN,YAAM,YAAY,cAAc,QAAQ,QAAQ;AAChD,kBAAY,SAAS;AACrB,aAAO,UAAU,QAAe,WAAW,QAAQ,SAA6B;AAAA,IAClF;AAAA,EACF;AAEA,QAAM,uBAAuB;AAE7B,SAAO;AAAA,IACL,mBAAmB,OAAwB,oBAAoB;AAAA,IAC/D,WAAWA,QAAgB,oBAAoB;AAAA,IAC/C,OAAOA,QAAgB,oBAAoB;AAAA,IAC3C,iBAAiBA,QAAsB,oBAAoB;AAAA,IAC3D,QAAQA,QAAa,oBAAoB;AAAA,IACzC,eAAeA,QAAoB,oBAAoB;AAAA,IACvD,IAAIA,QAAa,oBAAoB;AAAA,IACrC,MAAMA,QAAe,oBAAoB;AAAA,EAC3C;AACF;AAEA,eAAe,YAAY,KAAyB,OAA6C;AAC/F,kBAAgB,KAAK;AAErB,QAAM,SAAwB,MAAM,IAAI,SAAS,KAAK;AACtD,MAAI,CAAC,OAAO,YAAY;AACtB,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AAEA,SAAO;AAAA,IACL,IAAI,OAAO,WAAW;AAAA,IACtB,MAAM,OAAO,WAAW;AAAA,IACxB,eAAe,OAAO,WAAW;AAAA,IACjC,WAAW,OAAO,WAAW;AAAA,IAC7B,gBAAgB,OAAO,WAAW;AAAA,IAClC,WAAW,OAAO,WAAW;AAAA,IAC7B,KAAK,OAAO,WAAW;AAAA,IACvB,eAAe,OAAO,WAAW,kBAAkB,QAAQ;AAAA,EAC7D;AACF;AAEA,eAAe,aAAa,KAA0B,OAA+C;AACnG,mBAAiB,KAAK;AAEtB,QAAM,SAAyB,MAAM,IAAI,UAAU,KAAK;AACxD,QAAM,QAAQ,OAAO,YAAY;AACjC,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,iBAAiB;AAAA,EACnC;AAEA,SAAO;AAAA,IACL,IAAI,MAAM;AAAA,IACV,QAAQ,MAAM;AAAA,IACd,OAAO,MAAM;AAAA,IACb,OAAO,MAAM;AAAA,IACb,KAAK,MAAM;AAAA,EACb;AACF;AAEA,eAAe,aAAa,KAA8B,OAA+C;AACvG,uBAAqB,KAAK;AAE1B,QAAM,SAAyB,MAAM,IAAI,UAAU,KAAK;AACxD,QAAM,SAAS,OAAO,YAAY;AAClC,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,kBAAkB;AAAA,EACpC;AAEA,SAAO;AAAA,IACL,QAAQ,OAAO,SAAS,CAAC,GAAG;AAAA,MAAQ,CAAC,UACnC,QACI;AAAA,QACE;AAAA,UACE,IAAI,MAAM;AAAA,UACV,QAAQ,MAAM;AAAA,UACd,OAAO,MAAM;AAAA,UACb,OAAO,MAAM;AAAA,UACb,KAAK,MAAM;AAAA,QACb;AAAA,MACF,IACA,CAAC;AAAA,IACP;AAAA,IACA,UAAU;AAAA,MACR,WAAW,OAAO,SAAS,aAAa;AAAA,MACxC,aAAa,OAAO,SAAS;AAAA,IAC/B;AAAA,EACF;AACF;AAEA,eAAe,qBACb,KACA,OACgC;AAChC,+BAA6B,KAAK;AAElC,QAAM,SAAiC,MAAM,IAAI,kBAAkB,KAAK;AACxE,QAAM,WAAW,OAAO,YAAY,OAAO;AAC3C,MAAI,CAAC,UAAU;AACb,UAAM,IAAI,MAAM,0BAA0B;AAAA,EAC5C;AAEA,SAAO;AAAA,IACL,QAAQ,SAAS,SAAS,CAAC,GAAG;AAAA,MAAQ,CAAC,YACrC,UACI;AAAA,QACE;AAAA,UACE,IAAI,QAAQ;AAAA,UACZ,MAAM,QAAQ;AAAA,UACd,aAAa,QAAQ,QAAQ,SAAS;AAAA,UACtC,WAAW,QAAQ;AAAA,UACnB,KAAK,OAAO,QAAQ,GAAG;AAAA,QACzB;AAAA,MACF,IACA,CAAC;AAAA,IACP;AAAA,IACA,UAAU;AAAA,MACR,WAAW,SAAS,SAAS,aAAa;AAAA,MAC1C,aAAa,SAAS,SAAS;AAAA,IACjC;AAAA,EACF;AACF;AAEA,eAAe,UAAU,KAAuB,OAAyC;AACvF,gBAAc,KAAK;AAEnB,QAAM,SAAsB,MAAM,IAAI,OAAO,KAAK;AAClD,QAAM,KAAK,OAAO,YAAY;AAC9B,MAAI,CAAC,IAAI;AACP,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,SAAO;AAAA,IACL,IAAI,GAAG;AAAA,IACP,QAAQ,GAAG;AAAA,IACX,OAAO,GAAG;AAAA,IACV,OAAO,GAAG;AAAA,IACV,KAAK,GAAG;AAAA,EACV;AACF;AAEA,eAAe,UAAU,KAA2B,OAAyC;AAC3F,oBAAkB,KAAK;AAEvB,QAAM,SAAsB,MAAM,IAAI,OAAO,KAAK;AAClD,QAAM,MAAM,OAAO,YAAY;AAC/B,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAEA,SAAO;AAAA,IACL,QAAQ,IAAI,SAAS,CAAC,GAAG;AAAA,MAAQ,CAAC,OAChC,KACI;AAAA,QACE;AAAA,UACE,IAAI,GAAG;AAAA,UACP,QAAQ,GAAG;AAAA,UACX,OAAO,GAAG;AAAA,UACV,OAAO,GAAG;AAAA,UACV,KAAK,GAAG;AAAA,QACV;AAAA,MACF,IACA,CAAC;AAAA,IACP;AAAA,IACA,UAAU;AAAA,MACR,WAAW,IAAI,SAAS,aAAa;AAAA,MACrC,aAAa,IAAI,SAAS;AAAA,IAC5B;AAAA,EACF;AACF;AAEA,eAAe,iBACb,KACA,OAC4B;AAC5B,2BAAyB,KAAK;AAE9B,QAAM,SAA6B,MAAM,IAAI,cAAc,KAAK;AAChE,QAAM,UAAU,OAAO,YAAY,aAAa;AAChD,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AAEA,SAAO;AAAA,IACL,QAAQ,QAAQ,SAAS,CAAC,GAAG;AAAA,MAAQ,CAAC,WACpC,SACI,CAAC;AAAA,QACC,IAAI,OAAO;AAAA,QACX,aAAa,OAAO,QAAQ,SAAS;AAAA,QACrC,MAAM,OAAO;AAAA,QACb,OAAO,OAAO;AAAA,QACd,aAAa,OAAO,eAAe;AAAA,QACnC,KAAK,OAAO;AAAA,QACZ,WAAW,OAAO,QAAQ,OAAO;AAAA,MACnC,CAAC,IACD,CAAC;AAAA,IACP;AAAA,IACA,UAAU;AAAA,MACR,WAAW,QAAQ,SAAS,aAAa;AAAA,MACzC,aAAa,QAAQ,SAAS;AAAA,IAChC;AAAA,EACF;AACF;AAEA,eAAe,mBACb,KACA,OAC8B;AAC9B,6BAA2B,KAAK;AAEhC,QAAM,SAA+B,MAAM,IAAI,gBAAgB,KAAK;AACpE,QAAM,QAAQ,OAAO,YAAY,aAAa;AAC9C,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,8BAA8B;AAAA,EAChD;AAEA,SAAO;AAAA,IACL,QAAQ,MAAM,SAAS,CAAC,GAAG;AAAA,MAAQ,CAAC,SAClC,OACI,CAAC;AAAA,QACC,MAAM,KAAK;AAAA,QACX,WAAW,KAAK;AAAA,QAChB,WAAW,KAAK;AAAA,MAClB,CAAC,IACD,CAAC;AAAA,IACP;AAAA,IACA,UAAU;AAAA,MACR,WAAW,MAAM,SAAS,aAAa;AAAA,MACvC,aAAa,MAAM,SAAS;AAAA,IAC9B;AAAA,EACF;AACF;AAEA,IAAM,kCAAkC;AAExC,SAAS,SAAS,OAAgD;AAChE,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IACrE,QACD;AACN;AAEA,SAAS,+BAA+B,SAAoD;AAC1F,QAAM,gBAAgB,SAAS,OAAO;AACtC,MAAI,CAAC,iBAAiB,OAAO,cAAc,OAAO,UAAU;AAC1D,WAAO;AAAA,EACT;AAEA,QAAM,SAAS,SAAS,cAAc,MAAM;AAC5C,QAAM,MAAM,cAAc;AAE1B,SAAO;AAAA,IACL,IAAI,cAAc;AAAA,IAClB,aAAa,OAAO,QAAQ,UAAU,WAAW,OAAO,QAAQ;AAAA,IAChE,MAAM,OAAO,cAAc,SAAS,WAAW,cAAc,OAAO;AAAA,IACpE,WAAW,OAAO,cAAc,cAAc,WAAW,cAAc,YAAY;AAAA,IACnF,KAAK,OAAO,QAAQ,WAAW,MAAM,OAAO,OAAO,EAAE;AAAA,EACvD;AACF;AAEA,SAAS,wBAAwB,QAA4C;AAC3E,QAAM,eAAe,SAAS,MAAM;AACpC,MAAI,CAAC,gBAAgB,OAAO,aAAa,OAAO,UAAU;AACxD,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,SAAS,aAAa,QAAQ;AAC/C,QAAM,eAAe,MAAM,QAAQ,UAAU,KAAK,IAAI,SAAS,QAAQ,CAAC;AACxE,QAAM,aAAa,SAAS,aAAa,UAAU;AAEnD,SAAO;AAAA,IACL,IAAI,aAAa;AAAA,IACjB,MAAM,OAAO,aAAa,SAAS,WAAW,aAAa,OAAO;AAAA,IAClE,MAAM,OAAO,aAAa,SAAS,WAAW,aAAa,OAAO;AAAA,IAClE,WAAW,OAAO,aAAa,cAAc,WAAW,aAAa,YAAY;AAAA,IACjF,UAAU,OAAO,aAAa,aAAa,WAAW,aAAa,WAAW;AAAA,IAC9E,aAAa,OAAO,aAAa,gBAAgB,WAAW,aAAa,cAAc;AAAA,IACvF,YAAY,QAAQ,aAAa,UAAU;AAAA,IAC3C,YAAY,QAAQ,aAAa,UAAU;AAAA,IAC3C,gBAAgB,QAAQ,aAAa,cAAc;AAAA,IACnD,kBAAkB,QAAQ,aAAa,gBAAgB;AAAA,IACvD,oBAAoB,QAAQ,aAAa,kBAAkB;AAAA,IAC3D,iBAAiB,OAAO,YAAY,UAAU,WAAW,WAAW,QAAQ;AAAA,IAC5E,UAAU,aACP,IAAI,CAAC,YAAY,+BAA+B,OAAO,CAAC,EACxD,QAAQ,CAAC,YAAa,UAAU,CAAC,OAAO,IAAI,CAAC,CAAE;AAAA,EACpD;AACF;AAEA,eAAe,kBACb,eACA,OAC6B;AAC7B,4BAA0B,KAAK;AAE/B,QAAM,iBAAiB,MAAM,kBAAkB;AAC/C,QAAM,kBAAkB,MAAM,mBAAmB;AAEjD,QAAM,kBAAgF,CAAC;AACvF,MAAI,kBAAiC,MAAM,SAAS;AACpD,MAAI,oBAAoB;AACxB,MAAI,eAAe;AACnB,MAAI,qBAAqB;AAEzB,SAAO,eAAe,mCAAmC,gBAAgB,SAAS,MAAM,OAAO;AAC7F,UAAM,SAAS,MAAM,cAAc,MAAiC,wBAAwB;AAAA,MAC1F,OAAO,MAAM;AAAA,MACb,MAAM,MAAM;AAAA,MACZ,UAAU,MAAM;AAAA,MAChB,OAAO,MAAM;AAAA,MACb,OAAO;AAAA,IACT,CAAC;AAED,UAAM,aAAa,SAAS,SAAS,MAAM,GAAG,UAAU;AACxD,UAAM,cAAc,SAAS,YAAY,WAAW;AACpD,UAAM,gBAAgB,SAAS,aAAa,aAAa;AACzD,QAAI,CAAC,eAAe;AAClB,YAAM,IAAI,MAAM,uCAAuC;AAAA,IACzD;AAEA,UAAM,WAAW,SAAS,cAAc,QAAQ;AAChD,UAAM,cAAc,MAAM,QAAQ,cAAc,KAAK,IACjD,cAAc,MACX,IAAI,CAAC,SAAS;AACb,YAAM,aAAa,SAAS,IAAI;AAChC,UAAI,CAAC,YAAY;AACf,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,QACL,QAAQ,OAAO,WAAW,WAAW,WAAW,WAAW,SAAS;AAAA,QACpE,MAAM,WAAW;AAAA,MACnB;AAAA,IACF,CAAC,EACA,QAAQ,CAAC,SAAU,OAAO,CAAC,IAAI,IAAI,CAAC,CAAE,IACzC,CAAC;AAEL,UAAM,cAAc,YAAY,SAAS,IACrC,cACC,MAAM,QAAQ,cAAc,KAAK,IAAI,cAAc,MAAM,IAAI,CAAC,UAAU,EAAE,QAAQ,MAAM,KAAK,EAAE,IAAI,CAAC;AAEzG,oBAAgB;AAChB,0BAAsB,YAAY;AAElC,eAAW,cAAc,aAAa;AACpC,YAAM,aAAa,wBAAwB,WAAW,IAAI;AAC1D,UAAI,CAAC,YAAY;AACf;AAAA,MACF;AAEA,UAAI,kBAAkB,WAAW,YAAY;AAC3C;AAAA,MACF;AAEA,UAAI,kBAAkB,CAAC,mBAAmB,WAAW,YAAY;AAC/D;AAAA,MACF;AAEA,sBAAgB,KAAK,EAAE,QAAQ,YAAY,QAAQ,WAAW,OAAO,CAAC;AAAA,IACxE;AAEA,wBAAoB,QAAQ,UAAU,WAAW;AACjD,sBAAkB,OAAO,UAAU,cAAc,WAAW,SAAS,YAAY;AAEjF,QAAI,CAAC,mBAAmB;AACtB;AAAA,IACF;AAAA,EACF;AAEA,QAAM,2BAA2B,gBAAgB,SAAS,MAAM;AAChE,QAAM,kBAAkB,gBAAgB,MAAM,GAAG,MAAM,KAAK;AAC5D,QAAM,YAAY,gBAAgB,SAAS,IACtC,gBAAgB,gBAAgB,SAAS,CAAC,GAAG,UAAU,kBACxD;AACJ,QAAM,gBAAgB,qBAAqB,gBAAgB;AAE3D,SAAO;AAAA,IACL,OAAO,gBAAgB,IAAI,CAAC,UAAU,MAAM,MAAM;AAAA,IAClD,UAAU;AAAA,MACR,aAAa,4BAA4B;AAAA,MACzC,WAAW,4BAA4B,oBAAoB,YAAY;AAAA,IACzE;AAAA,IACA,eAAe;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,wBAAwB,OAAwC;AACvE,MAAI,OAAO,MAAM,aAAa,YAAY,MAAM,SAAS,KAAK,EAAE,WAAW,GAAG;AAC5E,UAAM,IAAI,MAAM,8BAA8B;AAAA,EAChD;AACF;AAEA,SAAS,+BAA+B,OAAuC;AAC7E,0BAAwB,KAAK;AAC7B,MAAI,OAAO,MAAM,SAAS,YAAY,MAAM,KAAK,KAAK,EAAE,WAAW,GAAG;AACpE,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AACF;AAEA,SAAS,gCAAgC,QAAiB,aAA+C;AACvG,QAAM,OAAO,SAAS,MAAM;AAC5B,QAAM,WAAW,SAAS,OAAO,WAAW,CAAC;AAC7C,QAAM,SAAS,SAAS,UAAU,MAAM;AACxC,MAAI,CAAC,UAAU,OAAO,OAAO,OAAO,UAAU;AAC5C,UAAM,IAAI,MAAM,+BAA+B;AAAA,EACjD;AAEA,SAAO;AAAA,IACL,IAAI,OAAO;AAAA,IACX,YAAY,QAAQ,OAAO,UAAU;AAAA,EACvC;AACF;AAEA,eAAe,uBACb,eACA,OACmC;AACnC,iCAA+B,KAAK;AAEpC,QAAM,SAAS,MAAM,cAAc,MAAiC,2BAA2B;AAAA,IAC7F,UAAU,MAAM;AAAA,IAChB,MAAM,MAAM;AAAA,EACd,CAAC;AACD,QAAM,OAAO,SAAS,MAAM;AAC5B,QAAM,WAAW,SAAS,MAAM,+BAA+B;AAC/D,QAAM,UAAU,SAAS,UAAU,OAAO;AAC1C,MAAI,CAAC,WAAW,OAAO,QAAQ,OAAO,UAAU;AAC9C,UAAM,IAAI,MAAM,+BAA+B;AAAA,EACjD;AAEA,QAAM,oBAAoB,MAAM,cAAc,MAAiC,2BAA2B;AAAA,IACxG,UAAU,MAAM;AAAA,EAClB,CAAC;AACD,QAAM,aAAa,SAAS,SAAS,iBAAiB,GAAG,IAAI;AAC7D,MAAI,CAAC,cAAc,OAAO,WAAW,OAAO,UAAU;AACpD,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AAEA,SAAO;AAAA,IACL,IAAI,MAAM;AAAA,IACV,YAAY,QAAQ,WAAW,UAAU;AAAA,EAC3C;AACF;AAEA,eAAe,uBACb,eACA,OACmC;AACnC,0BAAwB,KAAK;AAE7B,QAAM,SAAS,MAAM,cAAc,MAAiC,6BAA6B;AAAA,IAC/F,UAAU,MAAM;AAAA,EAClB,CAAC;AACD,SAAO,gCAAgC,QAAQ,qBAAqB;AACtE;AAEA,eAAe,yBACb,eACA,OACmC;AACnC,0BAAwB,KAAK;AAE7B,QAAM,SAAS,MAAM,cAAc,MAAiC,+BAA+B;AAAA,IACjG,UAAU,MAAM;AAAA,EAClB,CAAC;AACD,SAAO,gCAAgC,QAAQ,uBAAuB;AACxE;AAEA,SAAS,cAAc,OAA0B;AAC/C,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU,OAAO;AAClE,WAAO,MAAM,KAAqB;AAAA,EACpC;AAEA,SAAO,OAAO,KAAK;AACrB;AAEA,SAAS,YAAY,OAAqB;AACxC,MAAI,MAAM,KAAK,EAAE,WAAW,GAAG;AAC7B,UAAM,IAAI,MAAM,iCAAiC;AAAA,EACnD;AACF;AAEO,SAAS,oBAAoB,WAA4C;AAC9E,SAAO;AAAA,IACL,MAAM,MACJ,OACA,WACgB;AAChB,YAAM,YAAY,cAAc,KAAK;AACrC,kBAAY,SAAS;AACrB,aAAO,UAAU,QAAe,WAAW,SAAS;AAAA,IACtD;AAAA,EACF;AACF;AAEO,SAAS,mBAAmB,WAA2C;AAC5E,QAAM,gBAAgB,oBAAoB,SAAS;AACnD,QAAM,MAAM,iBAAiB,SAAS;AAEtC,SAAO;AAAA,IACL,OAAO,CAAC,OAAO,cAAc,cAAc,MAAM,OAAO,SAAS;AAAA,IACjE,eAAe,CAAC,UAAU,YAAY,IAAI,MAAM,KAAK;AAAA,IACrD,wBAAwB,CAAC,UAAU,qBAAqB,IAAI,mBAAmB,KAAK;AAAA,IACpF,gBAAgB,CAAC,UAAU,aAAa,IAAI,WAAW,KAAK;AAAA,IAC5D,gBAAgB,CAAC,UAAU,aAAa,IAAI,OAAO,KAAK;AAAA,IACxD,aAAa,CAAC,UAAU,UAAU,IAAI,QAAQ,KAAK;AAAA,IACnD,aAAa,CAAC,UAAU,UAAU,IAAI,IAAI,KAAK;AAAA,IAC/C,qBAAqB,CAAC,UAAU,kBAAkB,eAAe,KAAK;AAAA,IACtE,oBAAoB,CAAC,UAAU,iBAAiB,IAAI,eAAe,KAAK;AAAA,IACxE,sBAAsB,CAAC,UAAU,mBAAmB,IAAI,iBAAiB,KAAK;AAAA,IAC9E,qBAAqB,CAAC,UAAU,uBAAuB,eAAe,KAAK;AAAA,IAC3E,qBAAqB,CAAC,UAAU,uBAAuB,eAAe,KAAK;AAAA,IAC3E,uBAAuB,CAAC,UAAU,yBAAyB,eAAe,KAAK;AAAA,EACjF;AACF;","names":["getSdk"]}
@@ -0,0 +1,3 @@
1
+ declare function capabilitiesExplainCommand(argv?: string[]): Promise<number>;
2
+
3
+ export { capabilitiesExplainCommand };
@@ -0,0 +1,10 @@
1
+ import {
2
+ capabilitiesExplainCommand
3
+ } from "../../chunk-BJHVAFTN.js";
4
+ import "../../chunk-MMG6CIKK.js";
5
+ import "../../chunk-MT4U5DYD.js";
6
+ import "../../chunk-2W4L5YCC.js";
7
+ export {
8
+ capabilitiesExplainCommand
9
+ };
10
+ //# sourceMappingURL=capabilities-explain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function capabilitiesListCommand(argv?: string[]): Promise<number>;
2
+
3
+ export { capabilitiesListCommand };
@@ -0,0 +1,10 @@
1
+ import {
2
+ capabilitiesListCommand
3
+ } from "../../chunk-QX34GTH6.js";
4
+ import "../../chunk-3RJCF42N.js";
5
+ import "../../chunk-MT4U5DYD.js";
6
+ import "../../chunk-2W4L5YCC.js";
7
+ export {
8
+ capabilitiesListCommand
9
+ };
10
+ //# sourceMappingURL=capabilities-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function doctorCommand(): void;
2
+
3
+ export { doctorCommand };
@@ -0,0 +1,7 @@
1
+ // src/cli/commands/doctor.ts
2
+ function doctorCommand() {
3
+ }
4
+ export {
5
+ doctorCommand
6
+ };
7
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/commands/doctor.ts"],"sourcesContent":["export function doctorCommand(): void {\n // Doctor command scaffold.\n}\n"],"mappings":";AAAO,SAAS,gBAAsB;AAEtC;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function routesCommand(): void;
2
+
3
+ export { routesCommand };
@@ -0,0 +1,7 @@
1
+ // src/cli/commands/routes.ts
2
+ function routesCommand() {
3
+ }
4
+ export {
5
+ routesCommand
6
+ };
7
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/commands/routes.ts"],"sourcesContent":["export function routesCommand(): void {\n // Routes command scaffold.\n}\n"],"mappings":";AAAO,SAAS,gBAAsB;AAEtC;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function runCommand(argv?: string[]): Promise<number>;
2
+
3
+ export { runCommand };
@@ -0,0 +1,31 @@
1
+ import {
2
+ runCommand
3
+ } from "../../chunk-GPU4P7UG.js";
4
+ import "../../chunk-WYSY75U7.js";
5
+ import "../../chunk-DLKIQBK6.js";
6
+ import "../../chunk-3RAT5BCB.js";
7
+ import "../../chunk-YNNDBMNR.js";
8
+ import "../../chunk-UGWIZ3RI.js";
9
+ import "../../chunk-TDTKOJKN.js";
10
+ import "../../chunk-Q4RTT3DV.js";
11
+ import "../../chunk-W2TKG2UL.js";
12
+ import "../../chunk-QEAMC4IJ.js";
13
+ import "../../chunk-5JRLVOF2.js";
14
+ import "../../chunk-B6RLMKS4.js";
15
+ import "../../chunk-573MDG3I.js";
16
+ import "../../chunk-UOJWOHRM.js";
17
+ import "../../chunk-MT4U5DYD.js";
18
+ import "../../chunk-2W4L5YCC.js";
19
+ import "../../chunk-YQDQX4BT.js";
20
+ import "../../chunk-NFF5VF4U.js";
21
+ import "../../chunk-EBRDO4Y6.js";
22
+ import "../../chunk-W6ROKCY5.js";
23
+ import "../../chunk-RUQXGZ35.js";
24
+ import "../../chunk-TCLMLVUQ.js";
25
+ import "../../chunk-VD5NXQP7.js";
26
+ import "../../chunk-QZZC53HF.js";
27
+ import "../../chunk-D746VR3B.js";
28
+ export {
29
+ runCommand
30
+ };
31
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function setupCommand(argv?: string[]): Promise<number>;
2
+
3
+ export { setupCommand };
@@ -0,0 +1,7 @@
1
+ import {
2
+ setupCommand
3
+ } from "../../chunk-YNQNHCRS.js";
4
+ export {
5
+ setupCommand
6
+ };
7
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function formatJson(value: unknown): string;
2
+
3
+ export { formatJson };
@@ -0,0 +1,8 @@
1
+ // src/cli/formatters/json.ts
2
+ function formatJson(value) {
3
+ return JSON.stringify(value, null, 2);
4
+ }
5
+ export {
6
+ formatJson
7
+ };
8
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/formatters/json.ts"],"sourcesContent":["export function formatJson(value: unknown): string {\n return JSON.stringify(value, null, 2)\n}\n"],"mappings":";AAAO,SAAS,WAAW,OAAwB;AACjD,SAAO,KAAK,UAAU,OAAO,MAAM,CAAC;AACtC;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function formatTable(_rows: Array<Record<string, unknown>>): string;
2
+
3
+ export { formatTable };
@@ -0,0 +1,8 @@
1
+ // src/cli/formatters/table.ts
2
+ function formatTable(_rows) {
3
+ return "table output not implemented";
4
+ }
5
+ export {
6
+ formatTable
7
+ };
8
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/formatters/table.ts"],"sourcesContent":["export function formatTable(_rows: Array<Record<string, unknown>>): string {\n return \"table output not implemented\"\n}\n"],"mappings":";AAAO,SAAS,YAAY,OAA+C;AACzE,SAAO;AACT;","names":[]}
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ declare function main(argv?: string[]): Promise<number>;
3
+
4
+ export { main };
@@ -0,0 +1,118 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ runCommand
4
+ } from "../chunk-GPU4P7UG.js";
5
+ import {
6
+ setupCommand
7
+ } from "../chunk-YNQNHCRS.js";
8
+ import {
9
+ capabilitiesExplainCommand
10
+ } from "../chunk-BJHVAFTN.js";
11
+ import {
12
+ capabilitiesListCommand
13
+ } from "../chunk-QX34GTH6.js";
14
+ import "../chunk-MMG6CIKK.js";
15
+ import "../chunk-3RJCF42N.js";
16
+ import "../chunk-WYSY75U7.js";
17
+ import "../chunk-DLKIQBK6.js";
18
+ import "../chunk-3RAT5BCB.js";
19
+ import "../chunk-YNNDBMNR.js";
20
+ import "../chunk-UGWIZ3RI.js";
21
+ import "../chunk-TDTKOJKN.js";
22
+ import "../chunk-Q4RTT3DV.js";
23
+ import "../chunk-W2TKG2UL.js";
24
+ import "../chunk-QEAMC4IJ.js";
25
+ import "../chunk-5JRLVOF2.js";
26
+ import "../chunk-B6RLMKS4.js";
27
+ import "../chunk-573MDG3I.js";
28
+ import "../chunk-UOJWOHRM.js";
29
+ import "../chunk-MT4U5DYD.js";
30
+ import "../chunk-2W4L5YCC.js";
31
+ import "../chunk-YQDQX4BT.js";
32
+ import "../chunk-NFF5VF4U.js";
33
+ import "../chunk-EBRDO4Y6.js";
34
+ import "../chunk-W6ROKCY5.js";
35
+ import "../chunk-RUQXGZ35.js";
36
+ import "../chunk-TCLMLVUQ.js";
37
+ import "../chunk-VD5NXQP7.js";
38
+ import "../chunk-QZZC53HF.js";
39
+ import "../chunk-D746VR3B.js";
40
+
41
+ // src/cli/index.ts
42
+ import { realpathSync } from "fs";
43
+ import { pathToFileURL } from "url";
44
+ function usage() {
45
+ return [
46
+ "Usage:",
47
+ " ghx run <task> --input '<json>'",
48
+ " ghx setup --scope <user|project> [--yes] [--dry-run] [--verify] [--track]",
49
+ " ghx capabilities list",
50
+ " ghx capabilities explain <capability_id>"
51
+ ].join("\n");
52
+ }
53
+ async function main(argv = process.argv.slice(2)) {
54
+ const [command, ...rest] = argv;
55
+ if (!command || command === "--help" || command === "-h") {
56
+ process.stdout.write(`${usage()}
57
+ `);
58
+ return 0;
59
+ }
60
+ if (command === "run") {
61
+ return runCommand(rest);
62
+ }
63
+ if (command === "setup") {
64
+ return setupCommand(rest);
65
+ }
66
+ if (command === "capabilities") {
67
+ const [subcommand, ...subcommandArgs] = rest;
68
+ if (!subcommand) {
69
+ process.stderr.write(`Missing capabilities subcommand.
70
+ ${usage()}
71
+ `);
72
+ return 1;
73
+ }
74
+ if (subcommand === "list") {
75
+ return capabilitiesListCommand(subcommandArgs);
76
+ }
77
+ if (subcommand === "explain") {
78
+ return capabilitiesExplainCommand(subcommandArgs);
79
+ }
80
+ process.stderr.write(`Unknown capabilities subcommand: ${subcommand}
81
+ ${usage()}
82
+ `);
83
+ return 1;
84
+ }
85
+ process.stderr.write(`Unknown command: ${command}
86
+ ${usage()}
87
+ `);
88
+ return 1;
89
+ }
90
+ var isDirectRun = (() => {
91
+ if (!process.argv[1]) {
92
+ return false;
93
+ }
94
+ try {
95
+ const currentEntry = realpathSync(new URL(import.meta.url));
96
+ const invokedEntry = realpathSync(process.argv[1]);
97
+ return currentEntry === invokedEntry || import.meta.url === pathToFileURL(process.argv[1]).href;
98
+ } catch {
99
+ return import.meta.url === pathToFileURL(process.argv[1]).href;
100
+ }
101
+ })();
102
+ if (isDirectRun) {
103
+ main().then(
104
+ (exitCode) => {
105
+ process.exitCode = exitCode;
106
+ },
107
+ (error) => {
108
+ const message = error instanceof Error ? error.message : String(error);
109
+ process.stderr.write(`${message}
110
+ `);
111
+ process.exit(1);
112
+ }
113
+ );
114
+ }
115
+ export {
116
+ main
117
+ };
118
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { realpathSync } from \"node:fs\"\nimport { pathToFileURL } from \"node:url\"\n\nimport { capabilitiesExplainCommand } from \"./commands/capabilities-explain.js\"\nimport { capabilitiesListCommand } from \"./commands/capabilities-list.js\"\nimport { runCommand } from \"./commands/run.js\"\nimport { setupCommand } from \"./commands/setup.js\"\n\nfunction usage(): string {\n return [\n \"Usage:\",\n \" ghx run <task> --input '<json>'\",\n \" ghx setup --scope <user|project> [--yes] [--dry-run] [--verify] [--track]\",\n \" ghx capabilities list\",\n \" ghx capabilities explain <capability_id>\"\n ].join(\"\\n\")\n}\n\nexport async function main(argv: string[] = process.argv.slice(2)): Promise<number> {\n const [command, ...rest] = argv\n\n if (!command || command === \"--help\" || command === \"-h\") {\n process.stdout.write(`${usage()}\\n`)\n return 0\n }\n\n if (command === \"run\") {\n return runCommand(rest)\n }\n\n if (command === \"setup\") {\n return setupCommand(rest)\n }\n\n if (command === \"capabilities\") {\n const [subcommand, ...subcommandArgs] = rest\n\n if (!subcommand) {\n process.stderr.write(`Missing capabilities subcommand.\\n${usage()}\\n`)\n return 1\n }\n\n if (subcommand === \"list\") {\n return capabilitiesListCommand(subcommandArgs)\n }\n\n if (subcommand === \"explain\") {\n return capabilitiesExplainCommand(subcommandArgs)\n }\n\n process.stderr.write(`Unknown capabilities subcommand: ${subcommand}\\n${usage()}\\n`)\n return 1\n }\n\n process.stderr.write(`Unknown command: ${command}\\n${usage()}\\n`)\n return 1\n}\n\nconst isDirectRun = (() => {\n if (!process.argv[1]) {\n return false\n }\n\n try {\n const currentEntry = realpathSync(new URL(import.meta.url))\n const invokedEntry = realpathSync(process.argv[1])\n return currentEntry === invokedEntry || import.meta.url === pathToFileURL(process.argv[1]).href\n } catch {\n return import.meta.url === pathToFileURL(process.argv[1]).href\n }\n})()\n\nif (isDirectRun) {\n main().then(\n (exitCode) => {\n process.exitCode = exitCode\n },\n (error: unknown) => {\n const message = error instanceof Error ? error.message : String(error)\n process.stderr.write(`${message}\\n`)\n process.exit(1)\n }\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAO9B,SAAS,QAAgB;AACvB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,KAAK,IAAI;AACb;AAEA,eAAsB,KAAK,OAAiB,QAAQ,KAAK,MAAM,CAAC,GAAoB;AAClF,QAAM,CAAC,SAAS,GAAG,IAAI,IAAI;AAE3B,MAAI,CAAC,WAAW,YAAY,YAAY,YAAY,MAAM;AACxD,YAAQ,OAAO,MAAM,GAAG,MAAM,CAAC;AAAA,CAAI;AACnC,WAAO;AAAA,EACT;AAEA,MAAI,YAAY,OAAO;AACrB,WAAO,WAAW,IAAI;AAAA,EACxB;AAEA,MAAI,YAAY,SAAS;AACvB,WAAO,aAAa,IAAI;AAAA,EAC1B;AAEA,MAAI,YAAY,gBAAgB;AAC9B,UAAM,CAAC,YAAY,GAAG,cAAc,IAAI;AAExC,QAAI,CAAC,YAAY;AACf,cAAQ,OAAO,MAAM;AAAA,EAAqC,MAAM,CAAC;AAAA,CAAI;AACrE,aAAO;AAAA,IACT;AAEA,QAAI,eAAe,QAAQ;AACzB,aAAO,wBAAwB,cAAc;AAAA,IAC/C;AAEA,QAAI,eAAe,WAAW;AAC5B,aAAO,2BAA2B,cAAc;AAAA,IAClD;AAEA,YAAQ,OAAO,MAAM,oCAAoC,UAAU;AAAA,EAAK,MAAM,CAAC;AAAA,CAAI;AACnF,WAAO;AAAA,EACT;AAEA,UAAQ,OAAO,MAAM,oBAAoB,OAAO;AAAA,EAAK,MAAM,CAAC;AAAA,CAAI;AAChE,SAAO;AACT;AAEA,IAAM,eAAe,MAAM;AACzB,MAAI,CAAC,QAAQ,KAAK,CAAC,GAAG;AACpB,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,eAAe,aAAa,IAAI,IAAI,YAAY,GAAG,CAAC;AAC1D,UAAM,eAAe,aAAa,QAAQ,KAAK,CAAC,CAAC;AACjD,WAAO,iBAAiB,gBAAgB,YAAY,QAAQ,cAAc,QAAQ,KAAK,CAAC,CAAC,EAAE;AAAA,EAC7F,QAAQ;AACN,WAAO,YAAY,QAAQ,cAAc,QAAQ,KAAK,CAAC,CAAC,EAAE;AAAA,EAC5D;AACF,GAAG;AAEH,IAAI,aAAa;AACf,OAAK,EAAE;AAAA,IACL,CAAC,aAAa;AACZ,cAAQ,WAAW;AAAA,IACrB;AAAA,IACA,CAAC,UAAmB;AAClB,YAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACrE,cAAQ,OAAO,MAAM,GAAG,OAAO;AAAA,CAAI;AACnC,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,43 @@
1
+ import { RouteReasonCode } from '../routing/reason-codes.js';
2
+ import { ErrorCode } from '../errors/codes.js';
3
+
4
+ type RouteSource = "cli" | "rest" | "graphql";
5
+ interface ResultError {
6
+ code: ErrorCode;
7
+ message: string;
8
+ retryable: boolean;
9
+ details?: Record<string, unknown>;
10
+ }
11
+ interface AttemptMeta {
12
+ route: RouteSource;
13
+ status: "success" | "error" | "skipped";
14
+ error_code?: ErrorCode;
15
+ duration_ms?: number;
16
+ }
17
+ interface ResultMeta {
18
+ capability_id: string;
19
+ route_used?: RouteSource;
20
+ reason?: RouteReasonCode;
21
+ attempts?: AttemptMeta[];
22
+ pagination?: {
23
+ has_next_page?: boolean;
24
+ end_cursor?: string;
25
+ next?: unknown;
26
+ };
27
+ timings?: {
28
+ total_ms?: number;
29
+ adapter_ms?: number;
30
+ };
31
+ cost?: {
32
+ tokens_in?: number;
33
+ tokens_out?: number;
34
+ };
35
+ }
36
+ interface ResultEnvelope<TData = unknown> {
37
+ ok: boolean;
38
+ data?: TData;
39
+ error?: ResultError;
40
+ meta: ResultMeta;
41
+ }
42
+
43
+ export type { AttemptMeta, ResultEnvelope, ResultError, ResultMeta, RouteSource };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=envelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,7 @@
1
+ type TaskId = string;
2
+ interface TaskRequest<TInput = Record<string, unknown>> {
3
+ task: TaskId;
4
+ input: TInput;
5
+ }
6
+
7
+ export type { TaskId, TaskRequest };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,5 @@
1
+ declare const checkRunAnnotationsListTask: {
2
+ readonly id: "check_run.annotations.list";
3
+ };
4
+
5
+ export { checkRunAnnotationsListTask };
@@ -0,0 +1,8 @@
1
+ // src/core/contracts/tasks/check_run.annotations.list.ts
2
+ var checkRunAnnotationsListTask = {
3
+ id: "check_run.annotations.list"
4
+ };
5
+ export {
6
+ checkRunAnnotationsListTask
7
+ };
8
+ //# sourceMappingURL=check_run.annotations.list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/contracts/tasks/check_run.annotations.list.ts"],"sourcesContent":["export const checkRunAnnotationsListTask = {\n id: \"check_run.annotations.list\",\n} as const\n"],"mappings":";AAAO,IAAM,8BAA8B;AAAA,EACzC,IAAI;AACN;","names":[]}
@@ -0,0 +1,5 @@
1
+ declare const issueCommentsListTask: {
2
+ readonly id: "issue.comments.list";
3
+ };
4
+
5
+ export { issueCommentsListTask };
@@ -0,0 +1,8 @@
1
+ // src/core/contracts/tasks/issue.comments.list.ts
2
+ var issueCommentsListTask = {
3
+ id: "issue.comments.list"
4
+ };
5
+ export {
6
+ issueCommentsListTask
7
+ };
8
+ //# sourceMappingURL=issue.comments.list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/contracts/tasks/issue.comments.list.ts"],"sourcesContent":["export const issueCommentsListTask = {\n id: \"issue.comments.list\"\n} as const\n"],"mappings":";AAAO,IAAM,wBAAwB;AAAA,EACnC,IAAI;AACN;","names":[]}
@@ -0,0 +1,5 @@
1
+ declare const issueListTask: {
2
+ readonly id: "issue.list";
3
+ };
4
+
5
+ export { issueListTask };
@@ -0,0 +1,8 @@
1
+ // src/core/contracts/tasks/issue.list.ts
2
+ var issueListTask = {
3
+ id: "issue.list"
4
+ };
5
+ export {
6
+ issueListTask
7
+ };
8
+ //# sourceMappingURL=issue.list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/contracts/tasks/issue.list.ts"],"sourcesContent":["export const issueListTask = {\n id: \"issue.list\"\n} as const\n"],"mappings":";AAAO,IAAM,gBAAgB;AAAA,EAC3B,IAAI;AACN;","names":[]}
@@ -0,0 +1,5 @@
1
+ declare const issueViewTask: {
2
+ readonly id: "issue.view";
3
+ };
4
+
5
+ export { issueViewTask };
@@ -0,0 +1,8 @@
1
+ // src/core/contracts/tasks/issue.view.ts
2
+ var issueViewTask = {
3
+ id: "issue.view"
4
+ };
5
+ export {
6
+ issueViewTask
7
+ };
8
+ //# sourceMappingURL=issue.view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/contracts/tasks/issue.view.ts"],"sourcesContent":["export const issueViewTask = {\n id: \"issue.view\"\n} as const\n"],"mappings":";AAAO,IAAM,gBAAgB;AAAA,EAC3B,IAAI;AACN;","names":[]}
@@ -0,0 +1,5 @@
1
+ declare const prChecksGetFailedTask: {
2
+ readonly id: "pr.checks.get_failed";
3
+ };
4
+
5
+ export { prChecksGetFailedTask };
@@ -0,0 +1,8 @@
1
+ // src/core/contracts/tasks/pr.checks.get_failed.ts
2
+ var prChecksGetFailedTask = {
3
+ id: "pr.checks.get_failed"
4
+ };
5
+ export {
6
+ prChecksGetFailedTask
7
+ };
8
+ //# sourceMappingURL=pr.checks.get_failed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/contracts/tasks/pr.checks.get_failed.ts"],"sourcesContent":["export const prChecksGetFailedTask = {\n id: \"pr.checks.get_failed\",\n} as const\n"],"mappings":";AAAO,IAAM,wBAAwB;AAAA,EACnC,IAAI;AACN;","names":[]}
@@ -0,0 +1,5 @@
1
+ declare const prCommentReplyTask: {
2
+ readonly id: "pr.comment.reply";
3
+ };
4
+
5
+ export { prCommentReplyTask };
@@ -0,0 +1,8 @@
1
+ // src/core/contracts/tasks/pr.comment.reply.ts
2
+ var prCommentReplyTask = {
3
+ id: "pr.comment.reply"
4
+ };
5
+ export {
6
+ prCommentReplyTask
7
+ };
8
+ //# sourceMappingURL=pr.comment.reply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/contracts/tasks/pr.comment.reply.ts"],"sourcesContent":["export const prCommentReplyTask = {\n id: \"pr.comment.reply\"\n} as const\n"],"mappings":";AAAO,IAAM,qBAAqB;AAAA,EAChC,IAAI;AACN;","names":[]}
@@ -0,0 +1,5 @@
1
+ declare const prCommentResolveTask: {
2
+ readonly id: "pr.comment.resolve";
3
+ };
4
+
5
+ export { prCommentResolveTask };
@@ -0,0 +1,8 @@
1
+ // src/core/contracts/tasks/pr.comment.resolve.ts
2
+ var prCommentResolveTask = {
3
+ id: "pr.comment.resolve"
4
+ };
5
+ export {
6
+ prCommentResolveTask
7
+ };
8
+ //# sourceMappingURL=pr.comment.resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/core/contracts/tasks/pr.comment.resolve.ts"],"sourcesContent":["export const prCommentResolveTask = {\n id: \"pr.comment.resolve\"\n} as const\n"],"mappings":";AAAO,IAAM,uBAAuB;AAAA,EAClC,IAAI;AACN;","names":[]}