@ghx-dev/core 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -2
- package/dist/agent.d.ts +32 -7
- package/dist/agent.js +29 -12
- package/dist/agent.js.map +1 -1
- package/dist/{chunk-JH6GM6XU.js → chunk-OL4ARD3R.js} +116 -7
- package/dist/chunk-OL4ARD3R.js.map +1 -0
- package/dist/chunk-PJ2JKKQE.js +4148 -0
- package/dist/chunk-PJ2JKKQE.js.map +1 -0
- package/dist/{chunk-4PLVKNCF.js → chunk-SCIJMW5P.js} +14 -4
- package/dist/chunk-SCIJMW5P.js.map +1 -0
- package/dist/cli/assets/skills/ghx/SKILL.md +57 -0
- package/dist/cli/index.js +373 -41
- package/dist/cli/index.js.map +1 -1
- package/dist/{core/contracts/envelope.d.ts → envelope-BpF6MNCv.d.ts} +15 -3
- package/dist/index.d.ts +470 -22
- package/dist/index.js +6 -30
- package/package.json +11 -9
- package/dist/agent-interface/prompt/main-skill.d.ts +0 -3
- package/dist/agent-interface/prompt/main-skill.js +0 -7
- package/dist/agent-interface/prompt/main-skill.js.map +0 -1
- package/dist/agent-interface/tools/execute-tool.d.ts +0 -16
- package/dist/agent-interface/tools/execute-tool.js +0 -7
- package/dist/agent-interface/tools/execute-tool.js.map +0 -1
- package/dist/agent-interface/tools/explain-tool.d.ts +0 -11
- package/dist/agent-interface/tools/explain-tool.js +0 -9
- package/dist/agent-interface/tools/explain-tool.js.map +0 -1
- package/dist/agent-interface/tools/list-capabilities-tool.d.ts +0 -7
- package/dist/agent-interface/tools/list-capabilities-tool.js +0 -9
- package/dist/agent-interface/tools/list-capabilities-tool.js.map +0 -1
- package/dist/chunk-22WWCK6A.js +0 -92
- package/dist/chunk-22WWCK6A.js.map +0 -1
- package/dist/chunk-2W4L5YCC.js +0 -116
- package/dist/chunk-2W4L5YCC.js.map +0 -1
- package/dist/chunk-3MRJX72M.js +0 -209
- package/dist/chunk-3MRJX72M.js.map +0 -1
- package/dist/chunk-4PLVKNCF.js.map +0 -1
- package/dist/chunk-573MDG3I.js +0 -18
- package/dist/chunk-573MDG3I.js.map +0 -1
- package/dist/chunk-5JRLVOF2.js +0 -50
- package/dist/chunk-5JRLVOF2.js.map +0 -1
- package/dist/chunk-B6RLMKS4.js +0 -41
- package/dist/chunk-B6RLMKS4.js.map +0 -1
- package/dist/chunk-D746VR3B.js +0 -38
- package/dist/chunk-D746VR3B.js.map +0 -1
- package/dist/chunk-DJIEG6K7.js +0 -20
- package/dist/chunk-DJIEG6K7.js.map +0 -1
- package/dist/chunk-DLKIQBK6.js +0 -106
- package/dist/chunk-DLKIQBK6.js.map +0 -1
- package/dist/chunk-EBRDO4Y6.js +0 -31
- package/dist/chunk-EBRDO4Y6.js.map +0 -1
- package/dist/chunk-FXN6IIT5.js +0 -14
- package/dist/chunk-FXN6IIT5.js.map +0 -1
- package/dist/chunk-GMTG7X2L.js +0 -16
- package/dist/chunk-GMTG7X2L.js.map +0 -1
- package/dist/chunk-HQ2VRCH7.js +0 -42
- package/dist/chunk-HQ2VRCH7.js.map +0 -1
- package/dist/chunk-JH6GM6XU.js.map +0 -1
- package/dist/chunk-JLDU462R.js +0 -1352
- package/dist/chunk-JLDU462R.js.map +0 -1
- package/dist/chunk-MGNGSGMF.js +0 -203
- package/dist/chunk-MGNGSGMF.js.map +0 -1
- package/dist/chunk-NFF5VF4U.js +0 -28
- package/dist/chunk-NFF5VF4U.js.map +0 -1
- package/dist/chunk-QEAMC4IJ.js +0 -34
- package/dist/chunk-QEAMC4IJ.js.map +0 -1
- package/dist/chunk-QZZC53HF.js +0 -38
- package/dist/chunk-QZZC53HF.js.map +0 -1
- package/dist/chunk-RUQXGZ35.js +0 -34
- package/dist/chunk-RUQXGZ35.js.map +0 -1
- package/dist/chunk-SA2D4A5U.js +0 -1496
- package/dist/chunk-SA2D4A5U.js.map +0 -1
- package/dist/chunk-SD7U4BNA.js +0 -174
- package/dist/chunk-SD7U4BNA.js.map +0 -1
- package/dist/chunk-SJR2SACI.js +0 -30
- package/dist/chunk-SJR2SACI.js.map +0 -1
- package/dist/chunk-TCLMLVUQ.js +0 -38
- package/dist/chunk-TCLMLVUQ.js.map +0 -1
- package/dist/chunk-TDTKOJKN.js +0 -52
- package/dist/chunk-TDTKOJKN.js.map +0 -1
- package/dist/chunk-UGWIZ3RI.js +0 -7
- package/dist/chunk-UGWIZ3RI.js.map +0 -1
- package/dist/chunk-UOJWOHRM.js +0 -16
- package/dist/chunk-UOJWOHRM.js.map +0 -1
- package/dist/chunk-VD5NXQP7.js +0 -42
- package/dist/chunk-VD5NXQP7.js.map +0 -1
- package/dist/chunk-W2TKG2UL.js +0 -37
- package/dist/chunk-W2TKG2UL.js.map +0 -1
- package/dist/chunk-W6ROKCY5.js +0 -28
- package/dist/chunk-W6ROKCY5.js.map +0 -1
- package/dist/chunk-XNMM64WU.js +0 -221
- package/dist/chunk-XNMM64WU.js.map +0 -1
- package/dist/cli/commands/capabilities-explain.d.ts +0 -3
- package/dist/cli/commands/capabilities-explain.js +0 -10
- package/dist/cli/commands/capabilities-explain.js.map +0 -1
- package/dist/cli/commands/capabilities-list.d.ts +0 -3
- package/dist/cli/commands/capabilities-list.js +0 -10
- package/dist/cli/commands/capabilities-list.js.map +0 -1
- package/dist/cli/commands/doctor.d.ts +0 -3
- package/dist/cli/commands/doctor.js +0 -7
- package/dist/cli/commands/doctor.js.map +0 -1
- package/dist/cli/commands/routes.d.ts +0 -3
- package/dist/cli/commands/routes.js +0 -7
- package/dist/cli/commands/routes.js.map +0 -1
- package/dist/cli/commands/run.d.ts +0 -3
- package/dist/cli/commands/run.js +0 -31
- package/dist/cli/commands/run.js.map +0 -1
- package/dist/cli/commands/setup.d.ts +0 -3
- package/dist/cli/commands/setup.js +0 -7
- package/dist/cli/commands/setup.js.map +0 -1
- package/dist/cli/formatters/json.d.ts +0 -3
- package/dist/cli/formatters/json.js +0 -8
- package/dist/cli/formatters/json.js.map +0 -1
- package/dist/cli/formatters/table.d.ts +0 -3
- package/dist/cli/formatters/table.js +0 -8
- package/dist/cli/formatters/table.js.map +0 -1
- package/dist/core/contracts/envelope.js +0 -1
- package/dist/core/contracts/envelope.js.map +0 -1
- package/dist/core/contracts/task.d.ts +0 -7
- package/dist/core/contracts/task.js +0 -1
- package/dist/core/contracts/task.js.map +0 -1
- package/dist/core/contracts/tasks/check_run.annotations.list.d.ts +0 -5
- package/dist/core/contracts/tasks/check_run.annotations.list.js +0 -8
- package/dist/core/contracts/tasks/check_run.annotations.list.js.map +0 -1
- package/dist/core/contracts/tasks/issue.assignees.update.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.assignees.update.js +0 -8
- package/dist/core/contracts/tasks/issue.assignees.update.js.map +0 -1
- package/dist/core/contracts/tasks/issue.blocked_by.add.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.blocked_by.add.js +0 -8
- package/dist/core/contracts/tasks/issue.blocked_by.add.js.map +0 -1
- package/dist/core/contracts/tasks/issue.blocked_by.remove.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.blocked_by.remove.js +0 -8
- package/dist/core/contracts/tasks/issue.blocked_by.remove.js.map +0 -1
- package/dist/core/contracts/tasks/issue.close.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.close.js +0 -8
- package/dist/core/contracts/tasks/issue.close.js.map +0 -1
- package/dist/core/contracts/tasks/issue.comments.create.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.comments.create.js +0 -8
- package/dist/core/contracts/tasks/issue.comments.create.js.map +0 -1
- package/dist/core/contracts/tasks/issue.comments.list.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.comments.list.js +0 -8
- package/dist/core/contracts/tasks/issue.comments.list.js.map +0 -1
- package/dist/core/contracts/tasks/issue.create.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.create.js +0 -8
- package/dist/core/contracts/tasks/issue.create.js.map +0 -1
- package/dist/core/contracts/tasks/issue.delete.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.delete.js +0 -8
- package/dist/core/contracts/tasks/issue.delete.js.map +0 -1
- package/dist/core/contracts/tasks/issue.labels.update.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.labels.update.js +0 -8
- package/dist/core/contracts/tasks/issue.labels.update.js.map +0 -1
- package/dist/core/contracts/tasks/issue.linked_prs.list.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.linked_prs.list.js +0 -8
- package/dist/core/contracts/tasks/issue.linked_prs.list.js.map +0 -1
- package/dist/core/contracts/tasks/issue.list.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.list.js +0 -8
- package/dist/core/contracts/tasks/issue.list.js.map +0 -1
- package/dist/core/contracts/tasks/issue.milestone.set.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.milestone.set.js +0 -8
- package/dist/core/contracts/tasks/issue.milestone.set.js.map +0 -1
- package/dist/core/contracts/tasks/issue.parent.remove.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.parent.remove.js +0 -8
- package/dist/core/contracts/tasks/issue.parent.remove.js.map +0 -1
- package/dist/core/contracts/tasks/issue.parent.set.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.parent.set.js +0 -8
- package/dist/core/contracts/tasks/issue.parent.set.js.map +0 -1
- package/dist/core/contracts/tasks/issue.relations.get.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.relations.get.js +0 -8
- package/dist/core/contracts/tasks/issue.relations.get.js.map +0 -1
- package/dist/core/contracts/tasks/issue.reopen.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.reopen.js +0 -8
- package/dist/core/contracts/tasks/issue.reopen.js.map +0 -1
- package/dist/core/contracts/tasks/issue.update.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.update.js +0 -8
- package/dist/core/contracts/tasks/issue.update.js.map +0 -1
- package/dist/core/contracts/tasks/issue.view.d.ts +0 -5
- package/dist/core/contracts/tasks/issue.view.js +0 -8
- package/dist/core/contracts/tasks/issue.view.js.map +0 -1
- package/dist/core/contracts/tasks/pr.assignees.update.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.assignees.update.js +0 -8
- package/dist/core/contracts/tasks/pr.assignees.update.js.map +0 -1
- package/dist/core/contracts/tasks/pr.branch.update.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.branch.update.js +0 -8
- package/dist/core/contracts/tasks/pr.branch.update.js.map +0 -1
- package/dist/core/contracts/tasks/pr.checks.get_failed.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.checks.get_failed.js +0 -8
- package/dist/core/contracts/tasks/pr.checks.get_failed.js.map +0 -1
- package/dist/core/contracts/tasks/pr.checks.rerun_all.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.checks.rerun_all.js +0 -8
- package/dist/core/contracts/tasks/pr.checks.rerun_all.js.map +0 -1
- package/dist/core/contracts/tasks/pr.checks.rerun_failed.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.checks.rerun_failed.js +0 -8
- package/dist/core/contracts/tasks/pr.checks.rerun_failed.js.map +0 -1
- package/dist/core/contracts/tasks/pr.comment.reply.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.comment.reply.js +0 -8
- package/dist/core/contracts/tasks/pr.comment.reply.js.map +0 -1
- package/dist/core/contracts/tasks/pr.comment.resolve.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.comment.resolve.js +0 -8
- package/dist/core/contracts/tasks/pr.comment.resolve.js.map +0 -1
- package/dist/core/contracts/tasks/pr.comment.unresolve.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.comment.unresolve.js +0 -8
- package/dist/core/contracts/tasks/pr.comment.unresolve.js.map +0 -1
- package/dist/core/contracts/tasks/pr.comments.list.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.comments.list.js +0 -8
- package/dist/core/contracts/tasks/pr.comments.list.js.map +0 -1
- package/dist/core/contracts/tasks/pr.diff.list_files.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.diff.list_files.js +0 -8
- package/dist/core/contracts/tasks/pr.diff.list_files.js.map +0 -1
- package/dist/core/contracts/tasks/pr.list.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.list.js +0 -8
- package/dist/core/contracts/tasks/pr.list.js.map +0 -1
- package/dist/core/contracts/tasks/pr.merge.execute.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.merge.execute.js +0 -8
- package/dist/core/contracts/tasks/pr.merge.execute.js.map +0 -1
- package/dist/core/contracts/tasks/pr.mergeability.view.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.mergeability.view.js +0 -8
- package/dist/core/contracts/tasks/pr.mergeability.view.js.map +0 -1
- package/dist/core/contracts/tasks/pr.ready_for_review.set.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.ready_for_review.set.js +0 -8
- package/dist/core/contracts/tasks/pr.ready_for_review.set.js.map +0 -1
- package/dist/core/contracts/tasks/pr.review.submit_approve.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.review.submit_approve.js +0 -8
- package/dist/core/contracts/tasks/pr.review.submit_approve.js.map +0 -1
- package/dist/core/contracts/tasks/pr.review.submit_comment.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.review.submit_comment.js +0 -8
- package/dist/core/contracts/tasks/pr.review.submit_comment.js.map +0 -1
- package/dist/core/contracts/tasks/pr.review.submit_request_changes.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.review.submit_request_changes.js +0 -8
- package/dist/core/contracts/tasks/pr.review.submit_request_changes.js.map +0 -1
- package/dist/core/contracts/tasks/pr.reviewers.request.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.reviewers.request.js +0 -8
- package/dist/core/contracts/tasks/pr.reviewers.request.js.map +0 -1
- package/dist/core/contracts/tasks/pr.reviews.list.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.reviews.list.js +0 -8
- package/dist/core/contracts/tasks/pr.reviews.list.js.map +0 -1
- package/dist/core/contracts/tasks/pr.status.checks.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.status.checks.js +0 -8
- package/dist/core/contracts/tasks/pr.status.checks.js.map +0 -1
- package/dist/core/contracts/tasks/pr.view.d.ts +0 -5
- package/dist/core/contracts/tasks/pr.view.js +0 -8
- package/dist/core/contracts/tasks/pr.view.js.map +0 -1
- package/dist/core/contracts/tasks/project_v2.fields.list.d.ts +0 -5
- package/dist/core/contracts/tasks/project_v2.fields.list.js +0 -8
- package/dist/core/contracts/tasks/project_v2.fields.list.js.map +0 -1
- package/dist/core/contracts/tasks/project_v2.item.add_issue.d.ts +0 -5
- package/dist/core/contracts/tasks/project_v2.item.add_issue.js +0 -8
- package/dist/core/contracts/tasks/project_v2.item.add_issue.js.map +0 -1
- package/dist/core/contracts/tasks/project_v2.item.field.update.d.ts +0 -5
- package/dist/core/contracts/tasks/project_v2.item.field.update.js +0 -8
- package/dist/core/contracts/tasks/project_v2.item.field.update.js.map +0 -1
- package/dist/core/contracts/tasks/project_v2.items.list.d.ts +0 -5
- package/dist/core/contracts/tasks/project_v2.items.list.js +0 -8
- package/dist/core/contracts/tasks/project_v2.items.list.js.map +0 -1
- package/dist/core/contracts/tasks/project_v2.org.get.d.ts +0 -5
- package/dist/core/contracts/tasks/project_v2.org.get.js +0 -8
- package/dist/core/contracts/tasks/project_v2.org.get.js.map +0 -1
- package/dist/core/contracts/tasks/project_v2.user.get.d.ts +0 -5
- package/dist/core/contracts/tasks/project_v2.user.get.js +0 -8
- package/dist/core/contracts/tasks/project_v2.user.get.js.map +0 -1
- package/dist/core/contracts/tasks/release.create_draft.d.ts +0 -5
- package/dist/core/contracts/tasks/release.create_draft.js +0 -8
- package/dist/core/contracts/tasks/release.create_draft.js.map +0 -1
- package/dist/core/contracts/tasks/release.get.d.ts +0 -5
- package/dist/core/contracts/tasks/release.get.js +0 -8
- package/dist/core/contracts/tasks/release.get.js.map +0 -1
- package/dist/core/contracts/tasks/release.list.d.ts +0 -5
- package/dist/core/contracts/tasks/release.list.js +0 -8
- package/dist/core/contracts/tasks/release.list.js.map +0 -1
- package/dist/core/contracts/tasks/release.publish_draft.d.ts +0 -5
- package/dist/core/contracts/tasks/release.publish_draft.js +0 -8
- package/dist/core/contracts/tasks/release.publish_draft.js.map +0 -1
- package/dist/core/contracts/tasks/release.update.d.ts +0 -5
- package/dist/core/contracts/tasks/release.update.js +0 -8
- package/dist/core/contracts/tasks/release.update.js.map +0 -1
- package/dist/core/contracts/tasks/repo.issue_types.list.d.ts +0 -5
- package/dist/core/contracts/tasks/repo.issue_types.list.js +0 -8
- package/dist/core/contracts/tasks/repo.issue_types.list.js.map +0 -1
- package/dist/core/contracts/tasks/repo.labels.list.d.ts +0 -5
- package/dist/core/contracts/tasks/repo.labels.list.js +0 -8
- package/dist/core/contracts/tasks/repo.labels.list.js.map +0 -1
- package/dist/core/contracts/tasks/repo.view.d.ts +0 -5
- package/dist/core/contracts/tasks/repo.view.js +0 -8
- package/dist/core/contracts/tasks/repo.view.js.map +0 -1
- package/dist/core/contracts/tasks/workflow.get.d.ts +0 -5
- package/dist/core/contracts/tasks/workflow.get.js +0 -8
- package/dist/core/contracts/tasks/workflow.get.js.map +0 -1
- package/dist/core/contracts/tasks/workflow.list.d.ts +0 -5
- package/dist/core/contracts/tasks/workflow.list.js +0 -8
- package/dist/core/contracts/tasks/workflow.list.js.map +0 -1
- package/dist/core/contracts/tasks/workflow_dispatch.run.d.ts +0 -5
- package/dist/core/contracts/tasks/workflow_dispatch.run.js +0 -8
- package/dist/core/contracts/tasks/workflow_dispatch.run.js.map +0 -1
- package/dist/core/contracts/tasks/workflow_job.logs.analyze.d.ts +0 -5
- package/dist/core/contracts/tasks/workflow_job.logs.analyze.js +0 -8
- package/dist/core/contracts/tasks/workflow_job.logs.analyze.js.map +0 -1
- package/dist/core/contracts/tasks/workflow_job.logs.get.d.ts +0 -5
- package/dist/core/contracts/tasks/workflow_job.logs.get.js +0 -8
- package/dist/core/contracts/tasks/workflow_job.logs.get.js.map +0 -1
- package/dist/core/contracts/tasks/workflow_run.artifacts.list.d.ts +0 -5
- package/dist/core/contracts/tasks/workflow_run.artifacts.list.js +0 -8
- package/dist/core/contracts/tasks/workflow_run.artifacts.list.js.map +0 -1
- package/dist/core/contracts/tasks/workflow_run.cancel.d.ts +0 -5
- package/dist/core/contracts/tasks/workflow_run.cancel.js +0 -8
- package/dist/core/contracts/tasks/workflow_run.cancel.js.map +0 -1
- package/dist/core/contracts/tasks/workflow_run.get.d.ts +0 -5
- package/dist/core/contracts/tasks/workflow_run.get.js +0 -8
- package/dist/core/contracts/tasks/workflow_run.get.js.map +0 -1
- package/dist/core/contracts/tasks/workflow_run.jobs.list.d.ts +0 -5
- package/dist/core/contracts/tasks/workflow_run.jobs.list.js +0 -8
- package/dist/core/contracts/tasks/workflow_run.jobs.list.js.map +0 -1
- package/dist/core/contracts/tasks/workflow_run.rerun_all.d.ts +0 -5
- package/dist/core/contracts/tasks/workflow_run.rerun_all.js +0 -8
- package/dist/core/contracts/tasks/workflow_run.rerun_all.js.map +0 -1
- package/dist/core/contracts/tasks/workflow_run.rerun_failed.d.ts +0 -5
- package/dist/core/contracts/tasks/workflow_run.rerun_failed.js +0 -8
- package/dist/core/contracts/tasks/workflow_run.rerun_failed.js.map +0 -1
- package/dist/core/contracts/tasks/workflow_runs.list.d.ts +0 -5
- package/dist/core/contracts/tasks/workflow_runs.list.js +0 -8
- package/dist/core/contracts/tasks/workflow_runs.list.js.map +0 -1
- package/dist/core/errors/codes.d.ts +0 -13
- package/dist/core/errors/codes.js +0 -7
- package/dist/core/errors/codes.js.map +0 -1
- package/dist/core/errors/map-error.d.ts +0 -5
- package/dist/core/errors/map-error.js +0 -8
- package/dist/core/errors/map-error.js.map +0 -1
- package/dist/core/errors/retryability.d.ts +0 -3
- package/dist/core/errors/retryability.js +0 -8
- package/dist/core/errors/retryability.js.map +0 -1
- package/dist/core/execute/execute.d.ts +0 -28
- package/dist/core/execute/execute.js +0 -11
- package/dist/core/execute/execute.js.map +0 -1
- package/dist/core/execution/adapters/cli-adapter.d.ts +0 -22
- package/dist/core/execution/adapters/cli-adapter.js +0 -69
- package/dist/core/execution/adapters/cli-adapter.js.map +0 -1
- package/dist/core/execution/adapters/cli-capability-adapter.d.ts +0 -16
- package/dist/core/execution/adapters/cli-capability-adapter.js +0 -11
- package/dist/core/execution/adapters/cli-capability-adapter.js.map +0 -1
- package/dist/core/execution/adapters/graphql-adapter.d.ts +0 -25
- package/dist/core/execution/adapters/graphql-adapter.js +0 -44
- package/dist/core/execution/adapters/graphql-adapter.js.map +0 -1
- package/dist/core/execution/adapters/graphql-capability-adapter.d.ts +0 -20
- package/dist/core/execution/adapters/graphql-capability-adapter.js +0 -11
- package/dist/core/execution/adapters/graphql-capability-adapter.js.map +0 -1
- package/dist/core/execution/adapters/rest-adapter.d.ts +0 -3
- package/dist/core/execution/adapters/rest-adapter.js +0 -8
- package/dist/core/execution/adapters/rest-adapter.js.map +0 -1
- package/dist/core/execution/cli/safe-runner.d.ts +0 -12
- package/dist/core/execution/cli/safe-runner.js +0 -7
- package/dist/core/execution/cli/safe-runner.js.map +0 -1
- package/dist/core/execution/normalizer.d.ts +0 -13
- package/dist/core/execution/normalizer.js +0 -9
- package/dist/core/execution/normalizer.js.map +0 -1
- package/dist/core/execution/preflight.d.ts +0 -24
- package/dist/core/execution/preflight.js +0 -8
- package/dist/core/execution/preflight.js.map +0 -1
- package/dist/core/registry/index.d.ts +0 -15
- package/dist/core/registry/index.js +0 -12
- package/dist/core/registry/index.js.map +0 -1
- package/dist/core/registry/operation-card-schema.d.ts +0 -167
- package/dist/core/registry/operation-card-schema.js +0 -7
- package/dist/core/registry/operation-card-schema.js.map +0 -1
- package/dist/core/registry/schema-validator.d.ts +0 -16
- package/dist/core/registry/schema-validator.js +0 -9
- package/dist/core/registry/schema-validator.js.map +0 -1
- package/dist/core/registry/types.d.ts +0 -51
- package/dist/core/registry/types.js +0 -1
- package/dist/core/registry/types.js.map +0 -1
- package/dist/core/routing/capability-registry.d.ts +0 -8
- package/dist/core/routing/capability-registry.js +0 -15
- package/dist/core/routing/capability-registry.js.map +0 -1
- package/dist/core/routing/engine.d.ts +0 -32
- package/dist/core/routing/engine.js +0 -23
- package/dist/core/routing/engine.js.map +0 -1
- package/dist/core/routing/policy.d.ts +0 -3
- package/dist/core/routing/policy.js +0 -7
- package/dist/core/routing/policy.js.map +0 -1
- package/dist/core/routing/reason-codes.d.ts +0 -4
- package/dist/core/routing/reason-codes.js +0 -15
- package/dist/core/routing/reason-codes.js.map +0 -1
- package/dist/core/telemetry/logger.d.ts +0 -8
- package/dist/core/telemetry/logger.js +0 -9
- package/dist/core/telemetry/logger.js.map +0 -1
- package/dist/core/telemetry/metrics.d.ts +0 -7
- package/dist/core/telemetry/metrics.js +0 -1
- package/dist/core/telemetry/metrics.js.map +0 -1
- package/dist/gql/client.d.ts +0 -314
- package/dist/gql/client.js +0 -19
- package/dist/gql/client.js.map +0 -1
- package/dist/gql/generated/common-types.d.ts +0 -36
- package/dist/gql/generated/common-types.js +0 -1
- package/dist/gql/generated/common-types.js.map +0 -1
- package/dist/gql/operations/issue-assignees-update.generated.d.ts +0 -33
- package/dist/gql/operations/issue-assignees-update.generated.js +0 -28
- package/dist/gql/operations/issue-assignees-update.generated.js.map +0 -1
- package/dist/gql/operations/issue-blocked-by-add.generated.d.ts +0 -30
- package/dist/gql/operations/issue-blocked-by-add.generated.js +0 -26
- package/dist/gql/operations/issue-blocked-by-add.generated.js.map +0 -1
- package/dist/gql/operations/issue-blocked-by-remove.generated.d.ts +0 -30
- package/dist/gql/operations/issue-blocked-by-remove.generated.js +0 -26
- package/dist/gql/operations/issue-blocked-by-remove.generated.js.map +0 -1
- package/dist/gql/operations/issue-close.generated.d.ts +0 -27
- package/dist/gql/operations/issue-close.generated.js +0 -25
- package/dist/gql/operations/issue-close.generated.js.map +0 -1
- package/dist/gql/operations/issue-comment-create.generated.d.ts +0 -31
- package/dist/gql/operations/issue-comment-create.generated.js +0 -27
- package/dist/gql/operations/issue-comment-create.generated.js.map +0 -1
- package/dist/gql/operations/issue-comments-list.generated.d.ts +0 -59
- package/dist/gql/operations/issue-comments-list.generated.js +0 -9
- package/dist/gql/operations/issue-comments-list.generated.js.map +0 -1
- package/dist/gql/operations/issue-create.generated.d.ts +0 -31
- package/dist/gql/operations/issue-create.generated.js +0 -27
- package/dist/gql/operations/issue-create.generated.js.map +0 -1
- package/dist/gql/operations/issue-delete.generated.d.ts +0 -22
- package/dist/gql/operations/issue-delete.generated.js +0 -21
- package/dist/gql/operations/issue-delete.generated.js.map +0 -1
- package/dist/gql/operations/issue-labels-update.generated.d.ts +0 -33
- package/dist/gql/operations/issue-labels-update.generated.js +0 -28
- package/dist/gql/operations/issue-labels-update.generated.js.map +0 -1
- package/dist/gql/operations/issue-linked-prs-list.generated.d.ts +0 -132
- package/dist/gql/operations/issue-linked-prs-list.generated.js +0 -39
- package/dist/gql/operations/issue-linked-prs-list.generated.js.map +0 -1
- package/dist/gql/operations/issue-list.generated.d.ts +0 -40
- package/dist/gql/operations/issue-list.generated.js +0 -9
- package/dist/gql/operations/issue-list.generated.js.map +0 -1
- package/dist/gql/operations/issue-milestone-set.generated.d.ts +0 -30
- package/dist/gql/operations/issue-milestone-set.generated.js +0 -26
- package/dist/gql/operations/issue-milestone-set.generated.js.map +0 -1
- package/dist/gql/operations/issue-parent-remove.generated.d.ts +0 -30
- package/dist/gql/operations/issue-parent-remove.generated.js +0 -26
- package/dist/gql/operations/issue-parent-remove.generated.js.map +0 -1
- package/dist/gql/operations/issue-parent-set.generated.d.ts +0 -30
- package/dist/gql/operations/issue-parent-set.generated.js +0 -26
- package/dist/gql/operations/issue-parent-set.generated.js.map +0 -1
- package/dist/gql/operations/issue-relations-get.generated.d.ts +0 -49
- package/dist/gql/operations/issue-relations-get.generated.js +0 -40
- package/dist/gql/operations/issue-relations-get.generated.js.map +0 -1
- package/dist/gql/operations/issue-reopen.generated.d.ts +0 -27
- package/dist/gql/operations/issue-reopen.generated.js +0 -25
- package/dist/gql/operations/issue-reopen.generated.js.map +0 -1
- package/dist/gql/operations/issue-update.generated.d.ts +0 -31
- package/dist/gql/operations/issue-update.generated.js +0 -27
- package/dist/gql/operations/issue-update.generated.js.map +0 -1
- package/dist/gql/operations/issue-view.generated.d.ts +0 -31
- package/dist/gql/operations/issue-view.generated.js +0 -9
- package/dist/gql/operations/issue-view.generated.js.map +0 -1
- package/dist/gql/operations/pr-comment-reply.generated.d.ts +0 -26
- package/dist/gql/operations/pr-comment-reply.generated.js +0 -25
- package/dist/gql/operations/pr-comment-reply.generated.js.map +0 -1
- package/dist/gql/operations/pr-comment-resolve.generated.d.ts +0 -26
- package/dist/gql/operations/pr-comment-resolve.generated.js +0 -24
- package/dist/gql/operations/pr-comment-resolve.generated.js.map +0 -1
- package/dist/gql/operations/pr-comment-unresolve.generated.d.ts +0 -26
- package/dist/gql/operations/pr-comment-unresolve.generated.js +0 -24
- package/dist/gql/operations/pr-comment-unresolve.generated.js.map +0 -1
- package/dist/gql/operations/pr-comments-list.generated.d.ts +0 -84
- package/dist/gql/operations/pr-comments-list.generated.js +0 -58
- package/dist/gql/operations/pr-comments-list.generated.js.map +0 -1
- package/dist/gql/operations/pr-diff-list-files.generated.d.ts +0 -42
- package/dist/gql/operations/pr-diff-list-files.generated.js +0 -9
- package/dist/gql/operations/pr-diff-list-files.generated.js.map +0 -1
- package/dist/gql/operations/pr-list.generated.d.ts +0 -40
- package/dist/gql/operations/pr-list.generated.js +0 -9
- package/dist/gql/operations/pr-list.generated.js.map +0 -1
- package/dist/gql/operations/pr-reviews-list.generated.d.ts +0 -64
- package/dist/gql/operations/pr-reviews-list.generated.js +0 -9
- package/dist/gql/operations/pr-reviews-list.generated.js.map +0 -1
- package/dist/gql/operations/pr-view.generated.d.ts +0 -31
- package/dist/gql/operations/pr-view.generated.js +0 -9
- package/dist/gql/operations/pr-view.generated.js.map +0 -1
- package/dist/gql/operations/repo-view.generated.d.ts +0 -33
- package/dist/gql/operations/repo-view.generated.js +0 -9
- package/dist/gql/operations/repo-view.generated.js.map +0 -1
- package/dist/shared/constants.d.ts +0 -3
- package/dist/shared/constants.js +0 -6
- package/dist/shared/constants.js.map +0 -1
- package/dist/shared/types.d.ts +0 -3
- package/dist/shared/types.js +0 -1
- package/dist/shared/types.js.map +0 -1
- package/dist/shared/utils.d.ts +0 -3
- package/dist/shared/utils.js +0 -8
- package/dist/shared/utils.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/execution/adapters/cli-capability-adapter.ts"],"sourcesContent":["import { errorCodes } from \"../../errors/codes.js\"\nimport { mapErrorToCode } from \"../../errors/map-error.js\"\nimport { isRetryableErrorCode } from \"../../errors/retryability.js\"\nimport type { ResultEnvelope } from \"../../contracts/envelope.js\"\nimport type { OperationCard } from \"../../registry/types.js\"\nimport { normalizeError, normalizeResult } from \"../normalizer.js\"\n\nexport type CliCapabilityId =\n | \"repo.view\"\n | \"repo.labels.list\"\n | \"repo.issue_types.list\"\n | \"issue.view\"\n | \"issue.list\"\n | \"issue.comments.list\"\n | \"pr.view\"\n | \"pr.list\"\n | \"pr.status.checks\"\n | \"pr.checks.get_failed\"\n | \"pr.mergeability.view\"\n | \"pr.ready_for_review.set\"\n | \"pr.review.submit_approve\"\n | \"pr.review.submit_request_changes\"\n | \"pr.review.submit_comment\"\n | \"pr.merge.execute\"\n | \"pr.checks.rerun_failed\"\n | \"pr.checks.rerun_all\"\n | \"pr.reviewers.request\"\n | \"pr.assignees.update\"\n | \"pr.branch.update\"\n | \"check_run.annotations.list\"\n | \"workflow_runs.list\"\n | \"workflow_run.jobs.list\"\n | \"workflow_job.logs.get\"\n | \"workflow_job.logs.analyze\"\n | \"workflow.list\"\n | \"workflow.get\"\n | \"workflow_run.get\"\n | \"workflow_run.rerun_all\"\n | \"workflow_run.cancel\"\n | \"workflow_run.artifacts.list\"\n | \"project_v2.org.get\"\n | \"project_v2.user.get\"\n | \"project_v2.fields.list\"\n | \"project_v2.items.list\"\n | \"project_v2.item.add_issue\"\n | \"project_v2.item.field.update\"\n | \"release.list\"\n | \"release.get\"\n | \"release.create_draft\"\n | \"release.update\"\n | \"release.publish_draft\"\n | \"workflow_dispatch.run\"\n | \"workflow_run.rerun_failed\"\n\nexport type CliCommandRunner = {\n run(command: string, args: string[], timeoutMs: number): Promise<{ stdout: string; stderr: string; exitCode: number }>\n}\n\nconst DEFAULT_TIMEOUT_MS = 10_000\nconst DEFAULT_LIST_FIRST = 30\nconst MAX_WORKFLOW_JOB_LOG_CHARS = 50_000\nconst REDACTED_CLI_ERROR_MESSAGE = \"gh command failed; stderr redacted for safety\"\nconst REPO_ISSUE_TYPES_GRAPHQL_QUERY =\n \"query($owner:String!,$name:String!,$first:Int!,$after:String){repository(owner:$owner,name:$name){issueTypes(first:$first,after:$after){nodes{id name color isEnabled} pageInfo{hasNextPage endCursor}}}}\"\nconst ISSUE_COMMENTS_GRAPHQL_QUERY =\n \"query($owner:String!,$name:String!,$issueNumber:Int!,$first:Int!,$after:String){repository(owner:$owner,name:$name){issue(number:$issueNumber){comments(first:$first,after:$after){nodes{id body createdAt url author{login}} pageInfo{hasNextPage endCursor}}}}}\"\n\nfunction containsSensitiveText(value: string): boolean {\n return /(gh[pousr]_[A-Za-z0-9_]+|github_pat_[A-Za-z0-9_]+|authorization:\\s*bearer\\s+\\S+|bearer\\s+[A-Za-z0-9._-]{20,}|(?:api[_-]?key|token|secret|password)\\s*[=:]\\s*\\S+)/i.test(\n value\n )\n}\n\nfunction sanitizeCliErrorMessage(stderr: string, exitCode: number): string {\n const trimmed = stderr.trim()\n if (!trimmed) {\n return `gh exited with code ${exitCode}`\n }\n\n if (containsSensitiveText(trimmed)) {\n return REDACTED_CLI_ERROR_MESSAGE\n }\n\n return trimmed\n}\n\nfunction parseStrictPositiveInt(value: unknown): number | null {\n return typeof value === \"number\" && Number.isInteger(value) && value > 0 ? value : null\n}\n\nfunction parseListFirst(value: unknown): number | null {\n if (value === undefined) {\n return DEFAULT_LIST_FIRST\n }\n\n return parseStrictPositiveInt(value)\n}\n\nfunction parseNonEmptyString(value: unknown): string | null {\n if (typeof value !== \"string\") {\n return null\n }\n\n const trimmed = value.trim()\n return trimmed.length > 0 ? trimmed : null\n}\n\nfunction requireRepo(owner: string, name: string, capabilityId: CliCapabilityId): void {\n if (!owner || !name) {\n throw new Error(`Missing owner/name for ${capabilityId}`)\n }\n}\n\nfunction commandTokens(card: OperationCard | undefined, fallbackCommand: string): string[] {\n const fromCard = card?.cli?.command\n const command = typeof fromCard === \"string\" && fromCard.trim().length > 0 ? fromCard : fallbackCommand\n return command.trim().split(/\\s+/)\n}\n\nfunction jsonFieldsFromCard(card: OperationCard | undefined, fallbackFields: string): string {\n const fields = card?.cli?.jsonFields\n if (Array.isArray(fields) && fields.length > 0) {\n return fields.join(\",\")\n }\n\n return fallbackFields\n}\n\nfunction buildArgs(capabilityId: CliCapabilityId, params: Record<string, unknown>, card?: OperationCard): string[] {\n const owner = String(params.owner ?? \"\")\n const name = String(params.name ?? \"\")\n const repo = owner && name ? `${owner}/${name}` : \"\"\n\n if (capabilityId === \"repo.view\") {\n const args = commandTokens(card, \"repo view\")\n if (repo) {\n args.push(repo)\n }\n\n args.push(\"--json\", jsonFieldsFromCard(card, \"id,name,nameWithOwner,isPrivate,stargazerCount,forkCount,url,defaultBranchRef\"))\n return args\n }\n\n if (capabilityId === \"repo.labels.list\") {\n const first = parseListFirst(params.first)\n if (first === null) {\n throw new Error(\"Missing or invalid first for repo.labels.list\")\n }\n\n const args = commandTokens(card, \"label list\")\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n args.push(\"--limit\", String(first), \"--json\", jsonFieldsFromCard(card, \"id,name,description,color,isDefault\"))\n return args\n }\n\n if (capabilityId === \"repo.issue_types.list\") {\n const first = parseListFirst(params.first)\n if (first === null) {\n throw new Error(\"Missing or invalid first for repo.issue_types.list\")\n }\n\n const after = params.after\n if (!(after === undefined || after === null || typeof after === \"string\")) {\n throw new Error(\"Invalid after cursor for repo.issue_types.list\")\n }\n\n if (!owner || !name) {\n throw new Error(\"Missing owner/name for repo.issue_types.list\")\n }\n\n const args = [\n ...commandTokens(card, \"api graphql\"),\n \"-f\",\n `query=${REPO_ISSUE_TYPES_GRAPHQL_QUERY}`,\n \"-f\",\n `owner=${owner}`,\n \"-f\",\n `name=${name}`,\n \"-F\",\n `first=${first}`\n ]\n\n if (typeof after === \"string\" && after.length > 0) {\n args.push(\"-f\", `after=${after}`)\n }\n\n return args\n }\n\n if (capabilityId === \"issue.view\") {\n const issueNumber = parseStrictPositiveInt(params.issueNumber)\n if (issueNumber === null) {\n throw new Error(\"Missing or invalid issueNumber for issue.view\")\n }\n\n const args = [...commandTokens(card, \"issue view\"), String(issueNumber)]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n args.push(\"--json\", jsonFieldsFromCard(card, \"id,number,title,state,url\"))\n return args\n }\n\n if (capabilityId === \"issue.list\") {\n const first = parseListFirst(params.first)\n if (first === null) {\n throw new Error(\"Missing or invalid first for issue.list\")\n }\n\n const args = commandTokens(card, \"issue list\")\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n args.push(\"--limit\", String(first), \"--json\", jsonFieldsFromCard(card, \"id,number,title,state,url\"))\n return args\n }\n\n if (capabilityId === \"issue.comments.list\") {\n const issueNumber = parseStrictPositiveInt(params.issueNumber)\n if (issueNumber === null) {\n throw new Error(\"Missing or invalid issueNumber for issue.comments.list\")\n }\n\n const first = parseStrictPositiveInt(params.first)\n if (first === null) {\n throw new Error(\"Missing or invalid first for issue.comments.list\")\n }\n\n const after = params.after\n if (!(after === undefined || after === null || typeof after === \"string\")) {\n throw new Error(\"Invalid after cursor for issue.comments.list\")\n }\n\n const args = [\n ...commandTokens(card, \"api graphql\"),\n \"-f\",\n `query=${ISSUE_COMMENTS_GRAPHQL_QUERY}`,\n \"-f\",\n `owner=${owner}`,\n \"-f\",\n `name=${name}`,\n \"-F\",\n `issueNumber=${issueNumber}`,\n \"-F\",\n `first=${first}`\n ]\n\n if (typeof after === \"string\" && after.length > 0) {\n args.push(\"-f\", `after=${after}`)\n }\n\n return args\n }\n\n if (capabilityId === \"pr.view\") {\n const prNumber = parseStrictPositiveInt(params.prNumber)\n if (prNumber === null) {\n throw new Error(\"Missing or invalid prNumber for pr.view\")\n }\n\n const args = [...commandTokens(card, \"pr view\"), String(prNumber)]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n args.push(\"--json\", jsonFieldsFromCard(card, \"id,number,title,state,url\"))\n return args\n }\n\n if (capabilityId === \"pr.list\") {\n const first = parseListFirst(params.first)\n if (first === null) {\n throw new Error(\"Missing or invalid first for pr.list\")\n }\n\n const args = commandTokens(card, \"pr list\")\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n args.push(\"--limit\", String(first), \"--json\", jsonFieldsFromCard(card, \"id,number,title,state,url\"))\n return args\n }\n\n if (capabilityId === \"pr.status.checks\" || capabilityId === \"pr.checks.get_failed\") {\n const prNumber = parseStrictPositiveInt(params.prNumber)\n if (prNumber === null) {\n throw new Error(`Missing or invalid prNumber for ${capabilityId}`)\n }\n\n const args = [...commandTokens(card, \"pr checks\"), String(prNumber)]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n args.push(\"--json\", jsonFieldsFromCard(card, \"name,state,bucket,workflow,link\"))\n return args\n }\n\n if (capabilityId === \"pr.mergeability.view\") {\n const prNumber = parseStrictPositiveInt(params.prNumber)\n if (prNumber === null) {\n throw new Error(\"Missing or invalid prNumber for pr.mergeability.view\")\n }\n\n const args = [...commandTokens(card, \"pr view\"), String(prNumber)]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n args.push(\"--json\", jsonFieldsFromCard(card, \"mergeable,mergeStateStatus,reviewDecision,isDraft,state\"))\n return args\n }\n\n if (capabilityId === \"pr.ready_for_review.set\") {\n const prNumber = parseStrictPositiveInt(params.prNumber)\n if (prNumber === null) {\n throw new Error(\"Missing or invalid prNumber for pr.ready_for_review.set\")\n }\n\n if (typeof params.ready !== \"boolean\") {\n throw new Error(\"Missing or invalid ready for pr.ready_for_review.set\")\n }\n\n const args = [...commandTokens(card, \"pr ready\"), String(prNumber)]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n if (!params.ready) {\n args.push(\"--undo\")\n }\n\n return args\n }\n\n if (\n capabilityId === \"pr.review.submit_approve\"\n || capabilityId === \"pr.review.submit_request_changes\"\n || capabilityId === \"pr.review.submit_comment\"\n ) {\n const prNumber = parseStrictPositiveInt(params.prNumber)\n if (prNumber === null) {\n throw new Error(`Missing or invalid prNumber for ${capabilityId}`)\n }\n\n const args = [...commandTokens(card, \"pr review\"), String(prNumber)]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n if (capabilityId === \"pr.review.submit_approve\") {\n args.push(\"--approve\")\n const body = parseNonEmptyString(params.body)\n if (body) {\n args.push(\"--body\", body)\n }\n return args\n }\n\n const body = parseNonEmptyString(params.body)\n if (body === null) {\n throw new Error(`Missing or invalid body for ${capabilityId}`)\n }\n\n if (capabilityId === \"pr.review.submit_request_changes\") {\n args.push(\"--request-changes\", \"--body\", body)\n return args\n }\n\n args.push(\"--comment\", \"--body\", body)\n return args\n }\n\n if (capabilityId === \"pr.merge.execute\") {\n const prNumber = parseStrictPositiveInt(params.prNumber)\n if (prNumber === null) {\n throw new Error(\"Missing or invalid prNumber for pr.merge.execute\")\n }\n\n const method = params.method === undefined ? \"merge\" : params.method\n if (method !== \"merge\" && method !== \"squash\" && method !== \"rebase\") {\n throw new Error(\"Missing or invalid method for pr.merge.execute\")\n }\n\n if (params.deleteBranch !== undefined && typeof params.deleteBranch !== \"boolean\") {\n throw new Error(\"Missing or invalid deleteBranch for pr.merge.execute\")\n }\n\n const args = [...commandTokens(card, \"pr merge\"), String(prNumber)]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n args.push(`--${method}`)\n\n if (params.deleteBranch === true) {\n args.push(\"--delete-branch\")\n }\n\n return args\n }\n\n if (capabilityId === \"pr.checks.rerun_failed\" || capabilityId === \"pr.checks.rerun_all\") {\n const prNumber = parseStrictPositiveInt(params.prNumber)\n if (prNumber === null) {\n throw new Error(`Missing or invalid prNumber for ${capabilityId}`)\n }\n\n const runId = parseStrictPositiveInt(params.runId)\n if (runId === null) {\n throw new Error(`Missing or invalid runId for ${capabilityId}`)\n }\n\n const args = [...commandTokens(card, \"run rerun\"), String(runId)]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n if (capabilityId === \"pr.checks.rerun_failed\") {\n args.push(\"--failed\")\n }\n\n return args\n }\n\n if (capabilityId === \"pr.reviewers.request\") {\n const prNumber = parseStrictPositiveInt(params.prNumber)\n if (prNumber === null) {\n throw new Error(\"Missing or invalid prNumber for pr.reviewers.request\")\n }\n\n const reviewers = Array.isArray(params.reviewers)\n ? params.reviewers.filter((value): value is string => typeof value === \"string\" && value.trim().length > 0)\n : []\n\n if (reviewers.length === 0) {\n throw new Error(\"Missing or invalid reviewers for pr.reviewers.request\")\n }\n\n const args = [...commandTokens(card, \"pr edit\"), String(prNumber)]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n args.push(\"--add-reviewer\", reviewers.join(\",\"))\n return args\n }\n\n if (capabilityId === \"pr.assignees.update\") {\n const prNumber = parseStrictPositiveInt(params.prNumber)\n if (prNumber === null) {\n throw new Error(\"Missing or invalid prNumber for pr.assignees.update\")\n }\n\n const addAssignees = Array.isArray(params.add)\n ? params.add.filter((value): value is string => typeof value === \"string\" && value.trim().length > 0)\n : []\n const removeAssignees = Array.isArray(params.remove)\n ? params.remove.filter((value): value is string => typeof value === \"string\" && value.trim().length > 0)\n : []\n\n if (addAssignees.length === 0 && removeAssignees.length === 0) {\n throw new Error(\"Missing or invalid add/remove assignees for pr.assignees.update\")\n }\n\n const args = [...commandTokens(card, \"pr edit\"), String(prNumber)]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n if (addAssignees.length > 0) {\n args.push(\"--add-assignee\", addAssignees.join(\",\"))\n }\n\n if (removeAssignees.length > 0) {\n args.push(\"--remove-assignee\", removeAssignees.join(\",\"))\n }\n\n return args\n }\n\n if (capabilityId === \"pr.branch.update\") {\n const prNumber = parseStrictPositiveInt(params.prNumber)\n if (prNumber === null) {\n throw new Error(\"Missing or invalid prNumber for pr.branch.update\")\n }\n\n const args = [...commandTokens(card, \"pr update-branch\"), String(prNumber)]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n return args\n }\n\n if (capabilityId === \"check_run.annotations.list\") {\n const checkRunId = parseStrictPositiveInt(params.checkRunId)\n if (checkRunId === null) {\n throw new Error(\"Missing or invalid checkRunId for check_run.annotations.list\")\n }\n\n if (!owner || !name) {\n throw new Error(\"Missing owner/name for check_run.annotations.list\")\n }\n\n const args = [...commandTokens(card, \"api\"), `repos/${owner}/${name}/check-runs/${checkRunId}/annotations`]\n return args\n }\n\n if (capabilityId === \"workflow_runs.list\") {\n const first = parseListFirst(params.first)\n if (first === null) {\n throw new Error(\"Missing or invalid first for workflow_runs.list\")\n }\n\n const args = commandTokens(card, \"run list\")\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n if (typeof params.branch === \"string\" && params.branch.length > 0) {\n args.push(\"--branch\", params.branch)\n }\n if (typeof params.event === \"string\" && params.event.length > 0) {\n args.push(\"--event\", params.event)\n }\n if (typeof params.status === \"string\" && params.status.length > 0) {\n args.push(\"--status\", params.status)\n }\n\n args.push(\"--limit\", String(first), \"--json\", jsonFieldsFromCard(card, \"databaseId,workflowName,status,conclusion,headBranch,url\"))\n return args\n }\n\n if (capabilityId === \"workflow_run.jobs.list\") {\n const runId = parseStrictPositiveInt(params.runId)\n if (runId === null) {\n throw new Error(\"Missing or invalid runId for workflow_run.jobs.list\")\n }\n\n const args = [...commandTokens(card, \"run view\"), String(runId)]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n args.push(\"--json\", \"jobs\")\n return args\n }\n\n if (capabilityId === \"workflow_job.logs.get\" || capabilityId === \"workflow_job.logs.analyze\") {\n const jobId = parseStrictPositiveInt(params.jobId)\n if (jobId === null) {\n throw new Error(`Missing or invalid jobId for ${capabilityId}`)\n }\n\n const args = [...commandTokens(card, \"run view\"), \"--job\", String(jobId), \"--log\"]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n return args\n }\n\n if (capabilityId === \"workflow.list\") {\n const first = parseListFirst(params.first)\n if (first === null) {\n throw new Error(\"Missing or invalid first for workflow.list\")\n }\n\n const args = commandTokens(card, \"workflow list\")\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n args.push(\"--limit\", String(first), \"--json\", jsonFieldsFromCard(card, \"id,name,path,state\"))\n return args\n }\n\n if (capabilityId === \"workflow.get\") {\n const workflowId = parseNonEmptyString(params.workflowId) ?? (typeof params.workflowId === \"number\" ? String(params.workflowId) : null)\n if (workflowId === null) {\n throw new Error(\"Missing or invalid workflowId for workflow.get\")\n }\n\n const args = [...commandTokens(card, \"workflow view\"), workflowId]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n args.push(\"--json\", jsonFieldsFromCard(card, \"id,name,path,state,url\"))\n return args\n }\n\n if (capabilityId === \"workflow_run.get\") {\n const runId = parseStrictPositiveInt(params.runId)\n if (runId === null) {\n throw new Error(\"Missing or invalid runId for workflow_run.get\")\n }\n\n const args = [...commandTokens(card, \"run view\"), String(runId)]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n args.push(\"--json\", jsonFieldsFromCard(card, \"databaseId,workflowName,status,conclusion,headBranch,headSha,url,event,createdAt,updatedAt,startedAt\"))\n return args\n }\n\n if (capabilityId === \"workflow_run.rerun_all\" || capabilityId === \"workflow_run.cancel\") {\n const runId = parseStrictPositiveInt(params.runId)\n if (runId === null) {\n throw new Error(`Missing or invalid runId for ${capabilityId}`)\n }\n\n const args = [\n ...commandTokens(card, capabilityId === \"workflow_run.rerun_all\" ? \"run rerun\" : \"run cancel\"),\n String(runId)\n ]\n\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n return args\n }\n\n if (capabilityId === \"workflow_run.artifacts.list\") {\n const runId = parseStrictPositiveInt(params.runId)\n if (runId === null) {\n throw new Error(\"Missing or invalid runId for workflow_run.artifacts.list\")\n }\n\n const args = [...commandTokens(card, \"run view\"), String(runId)]\n if (repo) {\n args.push(\"--repo\", repo)\n }\n\n args.push(\"--json\", jsonFieldsFromCard(card, \"artifacts\"))\n return args\n }\n\n if (capabilityId === \"project_v2.org.get\" || capabilityId === \"project_v2.user.get\") {\n const ownerParam = capabilityId === \"project_v2.org.get\" ? params.org : params.user\n const owner = parseNonEmptyString(ownerParam)\n const projectNumber = parseStrictPositiveInt(params.projectNumber)\n if (owner === null || projectNumber === null) {\n throw new Error(`Missing or invalid owner/projectNumber for ${capabilityId}`)\n }\n\n const args = [...commandTokens(card, \"project view\"), String(projectNumber), \"--owner\", owner, \"--format\", \"json\"]\n return args\n }\n\n if (capabilityId === \"project_v2.fields.list\") {\n const projectNumber = parseStrictPositiveInt(params.projectNumber)\n const projectOwner = parseNonEmptyString(params.owner)\n if (projectNumber === null || projectOwner === null) {\n throw new Error(\"Missing or invalid owner/projectNumber for project_v2.fields.list\")\n }\n\n const args = [...commandTokens(card, \"project field-list\"), String(projectNumber), \"--owner\", projectOwner, \"--format\", \"json\"]\n return args\n }\n\n if (capabilityId === \"project_v2.items.list\") {\n const projectNumber = parseStrictPositiveInt(params.projectNumber)\n const projectOwner = parseNonEmptyString(params.owner)\n const first = parseListFirst(params.first)\n if (projectNumber === null || projectOwner === null || first === null) {\n throw new Error(\"Missing or invalid owner/projectNumber/first for project_v2.items.list\")\n }\n\n const args = [\n ...commandTokens(card, \"project item-list\"),\n String(projectNumber),\n \"--owner\",\n projectOwner,\n \"--format\",\n \"json\",\n \"--limit\",\n String(first)\n ]\n return args\n }\n\n if (capabilityId === \"release.list\") {\n requireRepo(owner, name, capabilityId)\n const first = parseListFirst(params.first)\n if (first === null) {\n throw new Error(\"Missing or invalid first for release.list\")\n }\n\n const args = [...commandTokens(card, \"api\"), `repos/${owner}/${name}/releases`, \"-F\", `per_page=${first}`]\n return args\n }\n\n if (capabilityId === \"release.get\") {\n requireRepo(owner, name, capabilityId)\n const tagName = parseNonEmptyString(params.tagName)\n if (tagName === null) {\n throw new Error(\"Missing or invalid tagName for release.get\")\n }\n\n const args = [...commandTokens(card, \"api\"), `repos/${owner}/${name}/releases/tags/${encodeURIComponent(tagName)}`]\n return args\n }\n\n if (capabilityId === \"release.create_draft\") {\n requireRepo(owner, name, capabilityId)\n const tagName = parseNonEmptyString(params.tagName)\n if (tagName === null) {\n throw new Error(\"Missing or invalid tagName for release.create_draft\")\n }\n\n const args = [\n ...commandTokens(card, \"api\"),\n `repos/${owner}/${name}/releases`,\n \"--method\",\n \"POST\",\n \"-f\",\n `tag_name=${tagName}`,\n \"-F\",\n \"draft=true\"\n ]\n\n const title = parseNonEmptyString(params.title)\n if (title) {\n args.push(\"-f\", `name=${title}`)\n }\n\n const notes = parseNonEmptyString(params.notes)\n if (notes) {\n args.push(\"-f\", `body=${notes}`)\n }\n\n const target = parseNonEmptyString(params.targetCommitish)\n if (target) {\n args.push(\"-f\", `target_commitish=${target}`)\n }\n\n if (typeof params.prerelease === \"boolean\") {\n args.push(\"-F\", `prerelease=${params.prerelease ? \"true\" : \"false\"}`)\n }\n\n return args\n }\n\n if (capabilityId === \"release.update\") {\n requireRepo(owner, name, capabilityId)\n const releaseId = parseStrictPositiveInt(params.releaseId)\n if (releaseId === null) {\n throw new Error(\"Missing or invalid releaseId for release.update\")\n }\n\n if (params.draft !== undefined && params.draft !== true) {\n throw new Error(\"release.update only supports draft=true; use release.publish_draft to publish\")\n }\n\n const args = [\n ...commandTokens(card, \"api\"),\n `repos/${owner}/${name}/releases/${releaseId}`,\n \"--method\",\n \"PATCH\",\n \"-F\",\n \"draft=true\"\n ]\n\n const tagName = parseNonEmptyString(params.tagName)\n if (tagName) {\n args.push(\"-f\", `tag_name=${tagName}`)\n }\n\n const title = parseNonEmptyString(params.title)\n if (title) {\n args.push(\"-f\", `name=${title}`)\n }\n\n const notes = parseNonEmptyString(params.notes)\n if (notes) {\n args.push(\"-f\", `body=${notes}`)\n }\n\n const target = parseNonEmptyString(params.targetCommitish)\n if (target) {\n args.push(\"-f\", `target_commitish=${target}`)\n }\n\n if (typeof params.prerelease === \"boolean\") {\n args.push(\"-F\", `prerelease=${params.prerelease ? \"true\" : \"false\"}`)\n }\n\n return args\n }\n\n if (capabilityId === \"release.publish_draft\") {\n requireRepo(owner, name, capabilityId)\n const releaseId = parseStrictPositiveInt(params.releaseId)\n if (releaseId === null) {\n throw new Error(\"Missing or invalid releaseId for release.publish_draft\")\n }\n\n const args = [\n ...commandTokens(card, \"api\"),\n `repos/${owner}/${name}/releases/${releaseId}`,\n \"--method\",\n \"PATCH\",\n \"-F\",\n \"draft=false\"\n ]\n\n const title = parseNonEmptyString(params.title)\n if (title) {\n args.push(\"-f\", `name=${title}`)\n }\n\n const notes = parseNonEmptyString(params.notes)\n if (notes) {\n args.push(\"-f\", `body=${notes}`)\n }\n\n if (typeof params.prerelease === \"boolean\") {\n args.push(\"-F\", `prerelease=${params.prerelease ? \"true\" : \"false\"}`)\n }\n\n return args\n }\n\n if (capabilityId === \"workflow_dispatch.run\") {\n requireRepo(owner, name, capabilityId)\n const workflowId = parseNonEmptyString(params.workflowId)\n if (workflowId === null) {\n throw new Error(\"Missing or invalid workflowId for workflow_dispatch.run\")\n }\n\n const ref = parseNonEmptyString(params.ref)\n if (ref === null) {\n throw new Error(\"Missing or invalid ref for workflow_dispatch.run\")\n }\n\n const args = [\n ...commandTokens(card, \"api\"),\n `repos/${owner}/${name}/actions/workflows/${encodeURIComponent(workflowId)}/dispatches`,\n \"--method\",\n \"POST\",\n \"-f\",\n `ref=${ref}`\n ]\n\n if (params.inputs !== undefined) {\n if (typeof params.inputs !== \"object\" || params.inputs === null || Array.isArray(params.inputs)) {\n throw new Error(\"Missing or invalid inputs for workflow_dispatch.run\")\n }\n\n const inputEntries = Object.entries(params.inputs as Record<string, unknown>)\n for (const [key, value] of inputEntries) {\n if (!key.trim()) {\n throw new Error(\"Missing or invalid inputs for workflow_dispatch.run\")\n }\n\n if (!(typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\")) {\n throw new Error(\"Missing or invalid inputs for workflow_dispatch.run\")\n }\n\n args.push(\"-f\", `inputs[${key}]=${String(value)}`)\n }\n }\n\n return args\n }\n\n if (capabilityId === \"workflow_run.rerun_failed\") {\n requireRepo(owner, name, capabilityId)\n const runId = parseStrictPositiveInt(params.runId)\n if (runId === null) {\n throw new Error(\"Missing or invalid runId for workflow_run.rerun_failed\")\n }\n\n const args = [\n ...commandTokens(card, \"api\"),\n `repos/${owner}/${name}/actions/runs/${runId}/rerun-failed-jobs`,\n \"--method\",\n \"POST\"\n ]\n return args\n }\n\n if (capabilityId === \"project_v2.item.add_issue\") {\n const projectNumber = parseStrictPositiveInt(params.projectNumber)\n const projectOwner = parseNonEmptyString(params.owner)\n const issueUrl = parseNonEmptyString(params.issueUrl)\n if (projectNumber === null || projectOwner === null || issueUrl === null) {\n throw new Error(\"Missing or invalid owner/projectNumber/issueUrl for project_v2.item.add_issue\")\n }\n\n const args = [\n ...commandTokens(card, \"project item-add\"),\n String(projectNumber),\n \"--owner\",\n projectOwner,\n \"--url\",\n issueUrl,\n \"--format\",\n \"json\"\n ]\n return args\n }\n\n if (capabilityId === \"project_v2.item.field.update\") {\n const projectId = parseNonEmptyString(params.projectId)\n const itemId = parseNonEmptyString(params.itemId)\n const fieldId = parseNonEmptyString(params.fieldId)\n if (projectId === null || itemId === null || fieldId === null) {\n throw new Error(\"Missing or invalid projectId/itemId/fieldId for project_v2.item.field.update\")\n }\n\n const args = [\n ...commandTokens(card, \"project item-edit\"),\n \"--project-id\",\n projectId,\n \"--id\",\n itemId,\n \"--field-id\",\n fieldId\n ]\n\n const valueText = parseNonEmptyString(params.valueText)\n const valueDate = parseNonEmptyString(params.valueDate)\n const valueSingleSelectOptionId = parseNonEmptyString(params.valueSingleSelectOptionId)\n const valueIterationId = parseNonEmptyString(params.valueIterationId)\n const clear = params.clear === true\n\n if (valueText !== null) {\n args.push(\"--text\", valueText)\n } else if (typeof params.valueNumber === \"number\" && Number.isFinite(params.valueNumber)) {\n args.push(\"--number\", String(params.valueNumber))\n } else if (valueDate !== null) {\n args.push(\"--date\", valueDate)\n } else if (valueSingleSelectOptionId !== null) {\n args.push(\"--single-select-option-id\", valueSingleSelectOptionId)\n } else if (valueIterationId !== null) {\n args.push(\"--iteration-id\", valueIterationId)\n } else if (clear) {\n args.push(\"--clear\")\n } else {\n throw new Error(\"Missing field value update for project_v2.item.field.update\")\n }\n\n return args\n }\n throw new Error(`Unsupported CLI capability: ${capabilityId}`)\n}\n\nfunction parseCliData(stdout: string): unknown {\n const trimmed = stdout.trim()\n if (!trimmed) {\n return {}\n }\n\n return JSON.parse(trimmed)\n}\n\nfunction normalizeListItem(item: unknown): Record<string, unknown> {\n if (typeof item !== \"object\" || item === null || Array.isArray(item)) {\n return {}\n }\n\n const input = item as Record<string, unknown>\n return {\n id: input.id,\n number: input.number,\n title: input.title,\n state: input.state,\n url: input.url\n }\n}\n\nfunction normalizeWorkflowItem(item: unknown): Record<string, unknown> {\n if (typeof item !== \"object\" || item === null || Array.isArray(item)) {\n return {\n id: 0,\n name: null,\n path: null,\n state: null\n }\n }\n\n const input = item as Record<string, unknown>\n return {\n id: typeof input.id === \"number\" ? input.id : 0,\n name: typeof input.name === \"string\" ? input.name : null,\n path: typeof input.path === \"string\" ? input.path : null,\n state: typeof input.state === \"string\" ? input.state : null\n }\n}\n\nfunction normalizeProjectV2Summary(data: unknown): Record<string, unknown> {\n const input = typeof data === \"object\" && data !== null && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {}\n\n return {\n id: typeof input.id === \"string\" ? input.id : null,\n title: typeof input.title === \"string\" ? input.title : null,\n shortDescription: typeof input.shortDescription === \"string\" ? input.shortDescription : null,\n public: typeof input.public === \"boolean\" ? input.public : null,\n closed: typeof input.closed === \"boolean\" ? input.closed : null,\n url: typeof input.url === \"string\" ? input.url : null\n }\n}\n\nfunction normalizeCheckItem(item: unknown): Record<string, unknown> {\n if (typeof item !== \"object\" || item === null || Array.isArray(item)) {\n return {\n name: null,\n state: null,\n bucket: null,\n workflow: null,\n link: null\n }\n }\n\n const input = item as Record<string, unknown>\n return {\n name: typeof input.name === \"string\" ? input.name : null,\n state: typeof input.state === \"string\" ? input.state : null,\n bucket: typeof input.bucket === \"string\" ? input.bucket : null,\n workflow: typeof input.workflow === \"string\" ? input.workflow : null,\n link: typeof input.link === \"string\" ? input.link : null\n }\n}\n\nfunction normalizeCheckBucket(value: unknown): string | null {\n if (typeof value !== \"string\") {\n return null\n }\n\n return value.trim().toLowerCase()\n}\n\nfunction isCheckFailureBucket(bucket: unknown): boolean {\n const normalized = normalizeCheckBucket(bucket)\n if (!normalized) {\n return false\n }\n\n return normalized === \"fail\" || normalized === \"cancel\"\n}\n\nfunction isCheckPendingBucket(bucket: unknown): boolean {\n const normalized = normalizeCheckBucket(bucket)\n if (!normalized) {\n return false\n }\n\n return normalized === \"pending\"\n}\n\nfunction isCheckPassBucket(bucket: unknown): boolean {\n const normalized = normalizeCheckBucket(bucket)\n if (!normalized) {\n return false\n }\n\n return normalized === \"pass\"\n}\n\nfunction normalizeCliData(capabilityId: CliCapabilityId, data: unknown, params: Record<string, unknown>): unknown {\n const normalizeRelease = (input: unknown): Record<string, unknown> => {\n if (typeof input !== \"object\" || input === null || Array.isArray(input)) {\n return {\n id: 0,\n tagName: null,\n name: null,\n isDraft: false,\n isPrerelease: false,\n url: null,\n targetCommitish: null,\n createdAt: null,\n publishedAt: null\n }\n }\n\n const record = input as Record<string, unknown>\n return {\n id: typeof record.id === \"number\" ? record.id : 0,\n tagName: typeof record.tag_name === \"string\" ? record.tag_name : null,\n name: typeof record.name === \"string\" ? record.name : null,\n isDraft: typeof record.draft === \"boolean\" ? record.draft : false,\n isPrerelease: typeof record.prerelease === \"boolean\" ? record.prerelease : false,\n url: typeof record.html_url === \"string\" ? record.html_url : null,\n targetCommitish: typeof record.target_commitish === \"string\" ? record.target_commitish : null,\n createdAt: typeof record.created_at === \"string\" ? record.created_at : null,\n publishedAt: typeof record.published_at === \"string\" ? record.published_at : null\n }\n }\n\n if (capabilityId === \"repo.view\") {\n const input = typeof data === \"object\" && data !== null && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {}\n const defaultBranchRef =\n typeof input.defaultBranchRef === \"object\" && input.defaultBranchRef !== null\n ? (input.defaultBranchRef as Record<string, unknown>)\n : null\n\n return {\n id: input.id,\n name: input.name,\n nameWithOwner: input.nameWithOwner,\n isPrivate: input.isPrivate,\n stargazerCount: input.stargazerCount,\n forkCount: input.forkCount,\n url: input.url,\n defaultBranch:\n typeof defaultBranchRef?.name === \"string\"\n ? defaultBranchRef.name\n : null\n }\n }\n\n if (capabilityId === \"repo.labels.list\") {\n const labels = Array.isArray(data) ? data : []\n return {\n items: labels.map((label) => {\n if (typeof label !== \"object\" || label === null || Array.isArray(label)) {\n return {\n id: null,\n name: null,\n description: null,\n color: null,\n isDefault: null\n }\n }\n\n const record = label as Record<string, unknown>\n return {\n id: typeof record.id === \"string\" ? record.id : null,\n name: typeof record.name === \"string\" ? record.name : null,\n description: typeof record.description === \"string\" ? record.description : null,\n color: typeof record.color === \"string\" ? record.color : null,\n isDefault: typeof record.isDefault === \"boolean\" ? record.isDefault : null\n }\n }),\n pageInfo: {\n hasNextPage: false,\n endCursor: null\n }\n }\n }\n\n if (capabilityId === \"repo.issue_types.list\") {\n const root = typeof data === \"object\" && data !== null && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {}\n const payload = typeof root.data === \"object\" && root.data !== null && !Array.isArray(root.data)\n ? (root.data as Record<string, unknown>)\n : {}\n const repository = typeof payload.repository === \"object\" && payload.repository !== null && !Array.isArray(payload.repository)\n ? (payload.repository as Record<string, unknown>)\n : {}\n const connection = typeof repository.issueTypes === \"object\" && repository.issueTypes !== null && !Array.isArray(repository.issueTypes)\n ? (repository.issueTypes as Record<string, unknown>)\n : {}\n const nodes = Array.isArray(connection.nodes) ? connection.nodes : []\n const pageInfo = typeof connection.pageInfo === \"object\" && connection.pageInfo !== null && !Array.isArray(connection.pageInfo)\n ? (connection.pageInfo as Record<string, unknown>)\n : {}\n\n return {\n items: nodes.map((node) => {\n if (typeof node !== \"object\" || node === null || Array.isArray(node)) {\n return {\n id: null,\n name: null,\n color: null,\n isEnabled: null\n }\n }\n\n const record = node as Record<string, unknown>\n return {\n id: typeof record.id === \"string\" ? record.id : null,\n name: typeof record.name === \"string\" ? record.name : null,\n color: typeof record.color === \"string\" ? record.color : null,\n isEnabled: typeof record.isEnabled === \"boolean\" ? record.isEnabled : null\n }\n }),\n pageInfo: {\n hasNextPage: typeof pageInfo.hasNextPage === \"boolean\" ? pageInfo.hasNextPage : false,\n endCursor: typeof pageInfo.endCursor === \"string\" ? pageInfo.endCursor : null\n }\n }\n }\n\n if (capabilityId === \"issue.list\" || capabilityId === \"pr.list\") {\n const items = Array.isArray(data) ? data.map((entry) => normalizeListItem(entry)) : []\n return {\n items,\n pageInfo: {\n hasNextPage: false,\n endCursor: null\n }\n }\n }\n\n if (capabilityId === \"issue.comments.list\") {\n if (parseStrictPositiveInt(params.first) === null) {\n throw new Error(\"Missing or invalid first for issue.comments.list\")\n }\n\n const input = typeof data === \"object\" && data !== null && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {}\n const commentsConnection =\n typeof input.data === \"object\" && input.data !== null && !Array.isArray(input.data)\n ? (input.data as Record<string, unknown>).repository\n : null\n const repository =\n typeof commentsConnection === \"object\" && commentsConnection !== null && !Array.isArray(commentsConnection)\n ? (commentsConnection as Record<string, unknown>)\n : null\n const issue =\n typeof repository?.issue === \"object\" && repository.issue !== null && !Array.isArray(repository.issue)\n ? (repository.issue as Record<string, unknown>)\n : null\n const comments =\n typeof issue?.comments === \"object\" && issue.comments !== null && !Array.isArray(issue.comments)\n ? (issue.comments as Record<string, unknown>)\n : null\n const nodes = Array.isArray(comments?.nodes) ? comments.nodes : null\n const pageInfo =\n typeof comments?.pageInfo === \"object\" && comments.pageInfo !== null && !Array.isArray(comments.pageInfo)\n ? (comments.pageInfo as Record<string, unknown>)\n : null\n\n if (nodes === null || pageInfo === null || typeof pageInfo.hasNextPage !== \"boolean\") {\n throw new Error(\"Invalid CLI payload: comments connection is malformed\")\n }\n\n const normalizedItems = nodes.flatMap((comment) => {\n if (typeof comment !== \"object\" || comment === null || Array.isArray(comment)) {\n throw new Error(\"Invalid CLI payload: comment item must be an object\")\n }\n\n const commentRecord = comment as Record<string, unknown>\n const author =\n typeof commentRecord.author === \"object\" && commentRecord.author !== null\n ? (commentRecord.author as Record<string, unknown>)\n : null\n\n if (\n typeof commentRecord.id !== \"string\" ||\n typeof commentRecord.body !== \"string\" ||\n typeof commentRecord.url !== \"string\" ||\n typeof commentRecord.createdAt !== \"string\"\n ) {\n throw new Error(\"Invalid CLI payload: comment item has invalid field types\")\n }\n\n return [{\n id: commentRecord.id,\n body: commentRecord.body,\n authorLogin: typeof author?.login === \"string\" ? author.login : null,\n url: commentRecord.url,\n createdAt: commentRecord.createdAt\n }]\n })\n\n return {\n items: normalizedItems,\n pageInfo: {\n hasNextPage: pageInfo.hasNextPage,\n endCursor: typeof pageInfo.endCursor === \"string\" ? pageInfo.endCursor : null\n }\n }\n }\n\n if (capabilityId === \"pr.status.checks\" || capabilityId === \"pr.checks.get_failed\") {\n const checks = Array.isArray(data) ? data.map((entry) => normalizeCheckItem(entry)) : []\n const failed = checks.filter((entry) => isCheckFailureBucket(entry.bucket))\n const pending = checks.filter((entry) => isCheckPendingBucket(entry.bucket))\n const passed = checks.filter((entry) => isCheckPassBucket(entry.bucket))\n\n return {\n items: capabilityId === \"pr.checks.get_failed\" ? failed : checks,\n summary: {\n total: checks.length,\n failed: failed.length,\n pending: pending.length,\n passed: passed.length\n }\n }\n }\n\n if (capabilityId === \"pr.mergeability.view\") {\n const input = typeof data === \"object\" && data !== null && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {}\n\n return {\n mergeable: typeof input.mergeable === \"string\" ? input.mergeable : null,\n mergeStateStatus: typeof input.mergeStateStatus === \"string\" ? input.mergeStateStatus : null,\n reviewDecision: typeof input.reviewDecision === \"string\" ? input.reviewDecision : null,\n isDraft: Boolean(input.isDraft),\n state: typeof input.state === \"string\" ? input.state : \"UNKNOWN\"\n }\n }\n\n if (capabilityId === \"pr.ready_for_review.set\") {\n const prNumber = Number(params.prNumber)\n const ready = Boolean(params.ready)\n\n return {\n prNumber,\n isDraft: !ready\n }\n }\n\n if (\n capabilityId === \"pr.review.submit_approve\"\n || capabilityId === \"pr.review.submit_request_changes\"\n || capabilityId === \"pr.review.submit_comment\"\n ) {\n const prNumber = Number(params.prNumber)\n const event = capabilityId === \"pr.review.submit_approve\"\n ? \"APPROVE\"\n : capabilityId === \"pr.review.submit_request_changes\"\n ? \"REQUEST_CHANGES\"\n : \"COMMENT\"\n\n return {\n prNumber,\n event,\n submitted: true,\n body: typeof params.body === \"string\" ? params.body : null\n }\n }\n\n if (capabilityId === \"pr.merge.execute\") {\n const method = params.method === \"squash\" || params.method === \"rebase\" ? params.method : \"merge\"\n return {\n prNumber: Number(params.prNumber),\n method,\n queued: true,\n deleteBranch: params.deleteBranch === true\n }\n }\n\n if (capabilityId === \"pr.checks.rerun_failed\" || capabilityId === \"pr.checks.rerun_all\") {\n return {\n prNumber: Number(params.prNumber),\n runId: Number(params.runId),\n mode: capabilityId === \"pr.checks.rerun_failed\" ? \"failed\" : \"all\",\n queued: true\n }\n }\n\n if (capabilityId === \"pr.reviewers.request\") {\n const reviewers = Array.isArray(params.reviewers)\n ? params.reviewers.filter((value): value is string => typeof value === \"string\" && value.trim().length > 0)\n : []\n\n return {\n prNumber: Number(params.prNumber),\n reviewers,\n updated: true\n }\n }\n\n if (capabilityId === \"pr.assignees.update\") {\n const add = Array.isArray(params.add)\n ? params.add.filter((value): value is string => typeof value === \"string\" && value.trim().length > 0)\n : []\n const remove = Array.isArray(params.remove)\n ? params.remove.filter((value): value is string => typeof value === \"string\" && value.trim().length > 0)\n : []\n\n return {\n prNumber: Number(params.prNumber),\n add,\n remove,\n updated: true\n }\n }\n\n if (capabilityId === \"pr.branch.update\") {\n return {\n prNumber: Number(params.prNumber),\n updated: true\n }\n }\n\n if (capabilityId === \"check_run.annotations.list\") {\n const annotations = Array.isArray(data) ? data : []\n\n return {\n items: annotations.map((annotation) => {\n if (typeof annotation !== \"object\" || annotation === null || Array.isArray(annotation)) {\n return {\n path: null,\n startLine: null,\n endLine: null,\n level: null,\n message: null,\n title: null,\n details: null\n }\n }\n\n const record = annotation as Record<string, unknown>\n return {\n path: typeof record.path === \"string\" ? record.path : null,\n startLine: typeof record.start_line === \"number\" ? record.start_line : null,\n endLine: typeof record.end_line === \"number\" ? record.end_line : null,\n level: typeof record.annotation_level === \"string\" ? record.annotation_level : null,\n message: typeof record.message === \"string\" ? record.message : null,\n title: typeof record.title === \"string\" ? record.title : null,\n details: typeof record.raw_details === \"string\" ? record.raw_details : null\n }\n })\n }\n }\n\n if (capabilityId === \"workflow_runs.list\") {\n const runs = Array.isArray(data) ? data : []\n\n return {\n items: runs.map((run) => {\n if (typeof run !== \"object\" || run === null || Array.isArray(run)) {\n return {\n id: 0,\n workflowName: null,\n status: null,\n conclusion: null,\n headBranch: null,\n url: null\n }\n }\n\n const record = run as Record<string, unknown>\n return {\n id: typeof record.databaseId === \"number\" ? record.databaseId : 0,\n workflowName: typeof record.workflowName === \"string\" ? record.workflowName : null,\n status: typeof record.status === \"string\" ? record.status : null,\n conclusion: typeof record.conclusion === \"string\" ? record.conclusion : null,\n headBranch: typeof record.headBranch === \"string\" ? record.headBranch : null,\n url: typeof record.url === \"string\" ? record.url : null\n }\n }),\n pageInfo: {\n hasNextPage: false,\n endCursor: null\n }\n }\n }\n\n if (capabilityId === \"workflow_run.jobs.list\") {\n const root = typeof data === \"object\" && data !== null && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {}\n const jobs = Array.isArray(root.jobs) ? root.jobs : []\n\n return {\n items: jobs.map((job) => {\n if (typeof job !== \"object\" || job === null || Array.isArray(job)) {\n return {\n id: 0,\n name: null,\n status: null,\n conclusion: null,\n startedAt: null,\n completedAt: null,\n url: null\n }\n }\n\n const record = job as Record<string, unknown>\n return {\n id: typeof record.databaseId === \"number\" ? record.databaseId : 0,\n name: typeof record.name === \"string\" ? record.name : null,\n status: typeof record.status === \"string\" ? record.status : null,\n conclusion: typeof record.conclusion === \"string\" ? record.conclusion : null,\n startedAt: typeof record.startedAt === \"string\" ? record.startedAt : null,\n completedAt: typeof record.completedAt === \"string\" ? record.completedAt : null,\n url: typeof record.url === \"string\" ? record.url : null\n }\n })\n }\n }\n\n if (capabilityId === \"workflow_job.logs.get\") {\n const jobId = Number(params.jobId)\n\n const rawLog = typeof data === \"string\" ? data : String(data)\n const truncated = rawLog.length > MAX_WORKFLOW_JOB_LOG_CHARS\n\n return {\n jobId,\n log: truncated ? rawLog.slice(0, MAX_WORKFLOW_JOB_LOG_CHARS) : rawLog,\n truncated\n }\n }\n\n if (capabilityId === \"workflow_job.logs.analyze\") {\n const jobId = Number(params.jobId)\n\n const rawLog = typeof data === \"string\" ? data : String(data)\n const truncated = rawLog.length > MAX_WORKFLOW_JOB_LOG_CHARS\n const boundedLog = truncated ? rawLog.slice(0, MAX_WORKFLOW_JOB_LOG_CHARS) : rawLog\n\n const lines = boundedLog.split(/\\r?\\n/)\n const errorLines = lines.filter((line) => /\\berror\\b/i.test(line))\n const topErrorLines = errorLines.slice(0, 10)\n const warningLines = lines.filter((line) => /\\bwarn(ing)?\\b/i.test(line))\n\n return {\n jobId,\n truncated,\n summary: {\n errorCount: errorLines.length,\n warningCount: warningLines.length,\n topErrorLines\n }\n }\n }\n\n if (capabilityId === \"workflow.list\") {\n const workflows = Array.isArray(data) ? data : []\n return {\n items: workflows.map((workflow) => normalizeWorkflowItem(workflow)),\n pageInfo: {\n hasNextPage: false,\n endCursor: null\n }\n }\n }\n\n if (capabilityId === \"release.list\") {\n const items = Array.isArray(data) ? data.map((item) => normalizeRelease(item)) : []\n return {\n items,\n pageInfo: {\n hasNextPage: false,\n endCursor: null\n }\n }\n }\n\n if (capabilityId === \"workflow.get\") {\n const input = normalizeWorkflowItem(data)\n const root = typeof data === \"object\" && data !== null && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {}\n\n return {\n ...input,\n url: typeof root.url === \"string\" ? root.url : null\n }\n }\n\n if (capabilityId === \"workflow_run.get\") {\n const input = typeof data === \"object\" && data !== null && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {}\n\n return {\n id: typeof input.databaseId === \"number\" ? input.databaseId : 0,\n workflowName: typeof input.workflowName === \"string\" ? input.workflowName : null,\n status: typeof input.status === \"string\" ? input.status : null,\n conclusion: typeof input.conclusion === \"string\" ? input.conclusion : null,\n headBranch: typeof input.headBranch === \"string\" ? input.headBranch : null,\n headSha: typeof input.headSha === \"string\" ? input.headSha : null,\n event: typeof input.event === \"string\" ? input.event : null,\n createdAt: typeof input.createdAt === \"string\" ? input.createdAt : null,\n updatedAt: typeof input.updatedAt === \"string\" ? input.updatedAt : null,\n startedAt: typeof input.startedAt === \"string\" ? input.startedAt : null,\n url: typeof input.url === \"string\" ? input.url : null\n }\n }\n\n if (capabilityId === \"workflow_run.rerun_all\") {\n return {\n runId: Number(params.runId),\n status: \"requested\"\n }\n }\n\n if (capabilityId === \"workflow_run.cancel\") {\n return {\n runId: Number(params.runId),\n status: \"cancel_requested\"\n }\n }\n\n if (capabilityId === \"workflow_run.artifacts.list\") {\n const root = typeof data === \"object\" && data !== null && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {}\n const artifacts = Array.isArray(root.artifacts) ? root.artifacts : []\n\n return {\n items: artifacts.map((artifact) => {\n if (typeof artifact !== \"object\" || artifact === null || Array.isArray(artifact)) {\n return {\n id: 0,\n name: null,\n sizeInBytes: null,\n archiveDownloadUrl: null\n }\n }\n\n const record = artifact as Record<string, unknown>\n return {\n id: typeof record.id === \"number\" ? record.id : 0,\n name: typeof record.name === \"string\" ? record.name : null,\n sizeInBytes: typeof record.sizeInBytes === \"number\" ? record.sizeInBytes : null,\n archiveDownloadUrl: typeof record.archiveDownloadUrl === \"string\" ? record.archiveDownloadUrl : null\n }\n }),\n pageInfo: {\n hasNextPage: false,\n endCursor: null\n }\n }\n }\n\n if (capabilityId === \"project_v2.org.get\" || capabilityId === \"project_v2.user.get\") {\n return normalizeProjectV2Summary(data)\n }\n\n if (capabilityId === \"project_v2.fields.list\") {\n const root = typeof data === \"object\" && data !== null && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {}\n const fields = Array.isArray(root.fields) ? root.fields : []\n\n return {\n items: fields.map((field) => {\n if (typeof field !== \"object\" || field === null || Array.isArray(field)) {\n return {\n id: null,\n name: null,\n dataType: null\n }\n }\n\n const record = field as Record<string, unknown>\n return {\n id: typeof record.id === \"string\" ? record.id : null,\n name: typeof record.name === \"string\" ? record.name : null,\n dataType: typeof record.dataType === \"string\" ? record.dataType : null\n }\n }),\n pageInfo: {\n hasNextPage: false,\n endCursor: null\n }\n }\n }\n\n if (capabilityId === \"project_v2.items.list\") {\n const root = typeof data === \"object\" && data !== null && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {}\n const items = Array.isArray(root.items) ? root.items : []\n\n return {\n items: items.map((item) => {\n if (typeof item !== \"object\" || item === null || Array.isArray(item)) {\n return {\n id: null,\n contentType: null,\n contentNumber: null,\n contentTitle: null\n }\n }\n\n const record = item as Record<string, unknown>\n const content = typeof record.content === \"object\" && record.content !== null && !Array.isArray(record.content)\n ? (record.content as Record<string, unknown>)\n : {}\n\n return {\n id: typeof record.id === \"string\" ? record.id : null,\n contentType: typeof content.type === \"string\" ? content.type : null,\n contentNumber: typeof content.number === \"number\" ? content.number : null,\n contentTitle: typeof content.title === \"string\" ? content.title : null\n }\n }),\n pageInfo: {\n hasNextPage: false,\n endCursor: null\n }\n }\n }\n\n if (capabilityId === \"project_v2.item.add_issue\") {\n const root = typeof data === \"object\" && data !== null && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {}\n\n return {\n itemId: typeof root.id === \"string\" ? root.id : null,\n added: true\n }\n }\n\n if (capabilityId === \"project_v2.item.field.update\") {\n return {\n itemId: parseNonEmptyString(params.itemId),\n updated: true\n }\n }\n\n if (capabilityId === \"release.get\" || capabilityId === \"release.create_draft\" || capabilityId === \"release.update\") {\n return normalizeRelease(data)\n }\n\n if (capabilityId === \"release.publish_draft\") {\n const release = normalizeRelease(data)\n return {\n ...release,\n wasDraft: Boolean(params.__wasDraft)\n }\n }\n\n if (capabilityId === \"workflow_dispatch.run\") {\n return {\n workflowId: String(params.workflowId),\n ref: String(params.ref),\n dispatched: true\n }\n }\n\n if (capabilityId === \"workflow_run.rerun_failed\") {\n return {\n runId: Number(params.runId),\n rerunFailed: true\n }\n }\n\n if (capabilityId === \"issue.view\" || capabilityId === \"pr.view\") {\n return normalizeListItem(data)\n }\n\n return data\n}\n\nexport async function runCliCapability(\n runner: CliCommandRunner,\n capabilityId: CliCapabilityId,\n params: Record<string, unknown>,\n card?: OperationCard\n): Promise<ResultEnvelope> {\n try {\n if (capabilityId === \"release.publish_draft\") {\n const owner = String(params.owner ?? \"\")\n const name = String(params.name ?? \"\")\n const releaseId = parseStrictPositiveInt(params.releaseId)\n if (!owner || !name || releaseId === null) {\n throw new Error(\"Missing owner/name/releaseId for release.publish_draft\")\n }\n\n const readArgs = [...commandTokens(card, \"api\"), `repos/${owner}/${name}/releases/${releaseId}`]\n const readResult = await runner.run(\"gh\", readArgs, DEFAULT_TIMEOUT_MS)\n if (readResult.exitCode !== 0) {\n const code = mapErrorToCode(readResult.stderr)\n return normalizeError(\n {\n code,\n message: sanitizeCliErrorMessage(readResult.stderr, readResult.exitCode),\n retryable: isRetryableErrorCode(code),\n details: { capabilityId, exitCode: readResult.exitCode }\n },\n \"cli\",\n { capabilityId, reason: \"CARD_FALLBACK\" }\n )\n }\n\n const currentRelease = parseCliData(readResult.stdout)\n const currentDraftValue =\n typeof currentRelease === \"object\" && currentRelease !== null && !Array.isArray(currentRelease)\n ? (currentRelease as Record<string, unknown>).draft\n : undefined\n\n if (currentDraftValue !== true) {\n return normalizeError(\n {\n code: errorCodes.Validation,\n message: \"release.publish_draft requires an existing draft release\",\n retryable: false\n },\n \"cli\",\n { capabilityId, reason: \"CARD_FALLBACK\" }\n )\n }\n\n const args = buildArgs(capabilityId, params, card)\n const result = await runner.run(\"gh\", args, DEFAULT_TIMEOUT_MS)\n\n if (result.exitCode !== 0) {\n const code = mapErrorToCode(result.stderr)\n return normalizeError(\n {\n code,\n message: sanitizeCliErrorMessage(result.stderr, result.exitCode),\n retryable: isRetryableErrorCode(code),\n details: { capabilityId, exitCode: result.exitCode }\n },\n \"cli\",\n { capabilityId, reason: \"CARD_FALLBACK\" }\n )\n }\n\n const normalized = normalizeCliData(capabilityId, parseCliData(result.stdout), { ...params, __wasDraft: true })\n return normalizeResult(normalized, \"cli\", { capabilityId, reason: \"CARD_FALLBACK\" })\n }\n\n const args = buildArgs(capabilityId, params, card)\n const result = await runner.run(\"gh\", args, DEFAULT_TIMEOUT_MS)\n\n if (result.exitCode !== 0) {\n const code = mapErrorToCode(result.stderr)\n return normalizeError(\n {\n code,\n message: sanitizeCliErrorMessage(result.stderr, result.exitCode),\n retryable: isRetryableErrorCode(code),\n details: { capabilityId, exitCode: result.exitCode }\n },\n \"cli\",\n { capabilityId, reason: \"CARD_FALLBACK\" }\n )\n }\n\n const data =\n capabilityId === \"workflow_job.logs.get\" || capabilityId === \"workflow_job.logs.analyze\"\n ? result.stdout\n : parseCliData(result.stdout)\n const normalized = normalizeCliData(capabilityId, data, params)\n return normalizeResult(normalized, \"cli\", { capabilityId, reason: \"CARD_FALLBACK\" })\n } catch (error: unknown) {\n if (error instanceof SyntaxError) {\n return normalizeError(\n {\n code: errorCodes.Server,\n message: \"Failed to parse CLI JSON output\",\n retryable: false\n },\n \"cli\",\n { capabilityId, reason: \"CARD_FALLBACK\" }\n )\n }\n\n if (error instanceof Error && error.message.toLowerCase().includes(\"invalid cli payload\")) {\n return normalizeError(\n {\n code: errorCodes.Server,\n message: error.message,\n retryable: false\n },\n \"cli\",\n { capabilityId, reason: \"CARD_FALLBACK\" }\n )\n }\n\n if (error instanceof Error && error.message.toLowerCase().includes(\"invalid after cursor\")) {\n return normalizeError(\n {\n code: errorCodes.Validation,\n message: error.message,\n retryable: false\n },\n \"cli\",\n { capabilityId, reason: \"CARD_FALLBACK\" }\n )\n }\n\n if (error instanceof Error && error.message.toLowerCase().includes(\"only supports draft=true\")) {\n return normalizeError(\n {\n code: errorCodes.Validation,\n message: error.message,\n retryable: false\n },\n \"cli\",\n { capabilityId, reason: \"CARD_FALLBACK\" }\n )\n }\n\n const code = mapErrorToCode(error)\n return normalizeError(\n {\n code,\n message: error instanceof Error ? error.message : String(error),\n retryable: isRetryableErrorCode(code)\n },\n \"cli\",\n { capabilityId, reason: \"CARD_FALLBACK\" }\n )\n }\n}\n"],"mappings":"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","names":["body","owner","args","result","normalized"]}
|
package/dist/chunk-SD7U4BNA.js
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createSafeCliCommandRunner
|
|
3
|
-
} from "./chunk-DLKIQBK6.js";
|
|
4
|
-
import {
|
|
5
|
-
runCliCapability
|
|
6
|
-
} from "./chunk-SA2D4A5U.js";
|
|
7
|
-
import {
|
|
8
|
-
runGraphqlCapability
|
|
9
|
-
} from "./chunk-XNMM64WU.js";
|
|
10
|
-
import {
|
|
11
|
-
routePreferenceOrder
|
|
12
|
-
} from "./chunk-UGWIZ3RI.js";
|
|
13
|
-
import {
|
|
14
|
-
execute
|
|
15
|
-
} from "./chunk-3MRJX72M.js";
|
|
16
|
-
import {
|
|
17
|
-
normalizeError
|
|
18
|
-
} from "./chunk-QEAMC4IJ.js";
|
|
19
|
-
import {
|
|
20
|
-
preflightCheck
|
|
21
|
-
} from "./chunk-TDTKOJKN.js";
|
|
22
|
-
import {
|
|
23
|
-
errorCodes
|
|
24
|
-
} from "./chunk-UOJWOHRM.js";
|
|
25
|
-
import {
|
|
26
|
-
getOperationCard
|
|
27
|
-
} from "./chunk-JH6GM6XU.js";
|
|
28
|
-
|
|
29
|
-
// src/core/routing/engine.ts
|
|
30
|
-
function chooseRoute() {
|
|
31
|
-
return routePreferenceOrder[0];
|
|
32
|
-
}
|
|
33
|
-
var DEFAULT_REASON = "DEFAULT_POLICY";
|
|
34
|
-
var CLI_ENV_CACHE_TTL_MS = 3e4;
|
|
35
|
-
var cliEnvironmentCache = /* @__PURE__ */ new WeakMap();
|
|
36
|
-
var cliEnvironmentInFlight = /* @__PURE__ */ new WeakMap();
|
|
37
|
-
var defaultCliRunner = createSafeCliCommandRunner();
|
|
38
|
-
var SKIP_CLI_PREFLIGHT_ENV = "GHX_SKIP_GH_PREFLIGHT";
|
|
39
|
-
function shouldSkipCliPreflight() {
|
|
40
|
-
const value = process.env[SKIP_CLI_PREFLIGHT_ENV];
|
|
41
|
-
if (!value) {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
const normalized = value.trim().toLowerCase();
|
|
45
|
-
return normalized === "1" || normalized === "true" || normalized === "yes" || normalized === "on";
|
|
46
|
-
}
|
|
47
|
-
async function detectCliEnvironment(runner) {
|
|
48
|
-
try {
|
|
49
|
-
const version = await runner.run("gh", ["--version"], 1500);
|
|
50
|
-
if (version.exitCode !== 0) {
|
|
51
|
-
return {
|
|
52
|
-
ghCliAvailable: false,
|
|
53
|
-
ghAuthenticated: false
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
const auth = await runner.run("gh", ["auth", "status"], 2500);
|
|
57
|
-
return {
|
|
58
|
-
ghCliAvailable: true,
|
|
59
|
-
ghAuthenticated: auth.exitCode === 0
|
|
60
|
-
};
|
|
61
|
-
} catch {
|
|
62
|
-
return {
|
|
63
|
-
ghCliAvailable: false,
|
|
64
|
-
ghAuthenticated: false
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
async function detectCliEnvironmentCached(runner) {
|
|
69
|
-
const now = Date.now();
|
|
70
|
-
const cached = cliEnvironmentCache.get(runner);
|
|
71
|
-
if (cached && cached.expiresAt > now) {
|
|
72
|
-
return cached.value;
|
|
73
|
-
}
|
|
74
|
-
const inFlight = cliEnvironmentInFlight.get(runner);
|
|
75
|
-
if (inFlight) {
|
|
76
|
-
return inFlight;
|
|
77
|
-
}
|
|
78
|
-
const probePromise = detectCliEnvironment(runner).then((value) => {
|
|
79
|
-
cliEnvironmentCache.set(runner, {
|
|
80
|
-
value,
|
|
81
|
-
expiresAt: Date.now() + CLI_ENV_CACHE_TTL_MS
|
|
82
|
-
});
|
|
83
|
-
cliEnvironmentInFlight.delete(runner);
|
|
84
|
-
return value;
|
|
85
|
-
}).catch((error) => {
|
|
86
|
-
cliEnvironmentInFlight.delete(runner);
|
|
87
|
-
throw error;
|
|
88
|
-
});
|
|
89
|
-
cliEnvironmentInFlight.set(runner, probePromise);
|
|
90
|
-
return probePromise;
|
|
91
|
-
}
|
|
92
|
-
async function executeTask(request, deps) {
|
|
93
|
-
const reason = deps.reason ?? DEFAULT_REASON;
|
|
94
|
-
const card = getOperationCard(request.task);
|
|
95
|
-
if (!card) {
|
|
96
|
-
return normalizeError(
|
|
97
|
-
{
|
|
98
|
-
code: errorCodes.Validation,
|
|
99
|
-
message: `Unsupported task: ${request.task}`,
|
|
100
|
-
retryable: false
|
|
101
|
-
},
|
|
102
|
-
chooseRoute(),
|
|
103
|
-
{ capabilityId: request.task, reason }
|
|
104
|
-
);
|
|
105
|
-
}
|
|
106
|
-
const cliRunner = deps.cliRunner ?? defaultCliRunner;
|
|
107
|
-
return execute({
|
|
108
|
-
card,
|
|
109
|
-
params: request.input,
|
|
110
|
-
routingContext: {
|
|
111
|
-
ghCliAvailable: deps.ghCliAvailable,
|
|
112
|
-
ghAuthenticated: deps.ghAuthenticated,
|
|
113
|
-
githubTokenPresent: Boolean(deps.githubToken)
|
|
114
|
-
},
|
|
115
|
-
retry: {
|
|
116
|
-
maxAttemptsPerRoute: 2
|
|
117
|
-
},
|
|
118
|
-
preflight: async (route) => {
|
|
119
|
-
const preflightInput = { route };
|
|
120
|
-
if (deps.githubToken !== void 0) {
|
|
121
|
-
preflightInput.githubToken = deps.githubToken;
|
|
122
|
-
}
|
|
123
|
-
if (route === "cli") {
|
|
124
|
-
if (deps.ghCliAvailable !== void 0) {
|
|
125
|
-
preflightInput.ghCliAvailable = deps.ghCliAvailable;
|
|
126
|
-
}
|
|
127
|
-
if (deps.ghAuthenticated !== void 0) {
|
|
128
|
-
preflightInput.ghAuthenticated = deps.ghAuthenticated;
|
|
129
|
-
}
|
|
130
|
-
if (preflightInput.ghCliAvailable === void 0 || preflightInput.ghAuthenticated === void 0) {
|
|
131
|
-
if (shouldSkipCliPreflight()) {
|
|
132
|
-
if (preflightInput.ghCliAvailable === void 0) {
|
|
133
|
-
preflightInput.ghCliAvailable = true;
|
|
134
|
-
}
|
|
135
|
-
if (preflightInput.ghAuthenticated === void 0) {
|
|
136
|
-
preflightInput.ghAuthenticated = true;
|
|
137
|
-
}
|
|
138
|
-
} else {
|
|
139
|
-
const detected = await detectCliEnvironmentCached(cliRunner);
|
|
140
|
-
if (preflightInput.ghCliAvailable === void 0) {
|
|
141
|
-
preflightInput.ghCliAvailable = detected.ghCliAvailable;
|
|
142
|
-
}
|
|
143
|
-
if (preflightInput.ghAuthenticated === void 0) {
|
|
144
|
-
preflightInput.ghAuthenticated = detected.ghAuthenticated;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
return preflightCheck(preflightInput);
|
|
150
|
-
},
|
|
151
|
-
routes: {
|
|
152
|
-
graphql: async () => runGraphqlCapability(deps.githubClient, request.task, request.input),
|
|
153
|
-
cli: async () => {
|
|
154
|
-
return runCliCapability(cliRunner, request.task, request.input, card);
|
|
155
|
-
},
|
|
156
|
-
rest: async () => normalizeError(
|
|
157
|
-
{
|
|
158
|
-
code: errorCodes.AdapterUnsupported,
|
|
159
|
-
message: `Route 'rest' is not implemented for task '${request.task}'`,
|
|
160
|
-
retryable: false,
|
|
161
|
-
details: { route: "rest", task: request.task }
|
|
162
|
-
},
|
|
163
|
-
"rest",
|
|
164
|
-
{ capabilityId: request.task, reason }
|
|
165
|
-
)
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
export {
|
|
171
|
-
chooseRoute,
|
|
172
|
-
executeTask
|
|
173
|
-
};
|
|
174
|
-
//# sourceMappingURL=chunk-SD7U4BNA.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/routing/engine.ts"],"sourcesContent":["import { routePreferenceOrder } from \"./policy.js\"\nimport type { ResultEnvelope, RouteSource } from \"../contracts/envelope.js\"\nimport type { TaskRequest } from \"../contracts/task.js\"\nimport { errorCodes } from \"../errors/codes.js\"\nimport type { GithubClient } from \"../../gql/client.js\"\nimport type { RouteReasonCode } from \"./reason-codes.js\"\nimport { preflightCheck } from \"../execution/preflight.js\"\nimport { normalizeError } from \"../execution/normalizer.js\"\nimport { execute } from \"../execute/execute.js\"\nimport { getOperationCard } from \"../registry/index.js\"\nimport { runGraphqlCapability, type GraphqlCapabilityId } from \"../execution/adapters/graphql-capability-adapter.js\"\nimport { runCliCapability, type CliCapabilityId, type CliCommandRunner } from \"../execution/adapters/cli-capability-adapter.js\"\nimport { createSafeCliCommandRunner } from \"../execution/cli/safe-runner.js\"\n\nexport function chooseRoute(): (typeof routePreferenceOrder)[number] {\n return routePreferenceOrder[0]\n}\n\ntype ExecutionDeps = {\n githubClient: Pick<\n GithubClient,\n \"fetchRepoView\" | \"fetchIssueCommentsList\" | \"fetchIssueList\" | \"fetchIssueView\" | \"fetchPrList\" | \"fetchPrView\" | \"fetchPrCommentsList\" | \"fetchPrReviewsList\" | \"fetchPrDiffListFiles\" | \"replyToReviewThread\" | \"resolveReviewThread\" | \"unresolveReviewThread\"\n >\n githubToken?: string | null\n cliRunner?: CliCommandRunner\n ghCliAvailable?: boolean\n ghAuthenticated?: boolean\n reason?: RouteReasonCode\n}\n\nconst DEFAULT_REASON: RouteReasonCode = \"DEFAULT_POLICY\"\n\ntype CliEnvironmentState = {\n ghCliAvailable: boolean\n ghAuthenticated: boolean\n}\n\nconst CLI_ENV_CACHE_TTL_MS = 30_000\nconst cliEnvironmentCache = new WeakMap<CliCommandRunner, { value: CliEnvironmentState; expiresAt: number }>()\nconst cliEnvironmentInFlight = new WeakMap<CliCommandRunner, Promise<CliEnvironmentState>>()\nconst defaultCliRunner = createSafeCliCommandRunner()\nconst SKIP_CLI_PREFLIGHT_ENV = \"GHX_SKIP_GH_PREFLIGHT\"\n\nfunction shouldSkipCliPreflight(): boolean {\n const value = process.env[SKIP_CLI_PREFLIGHT_ENV]\n if (!value) {\n return false\n }\n\n const normalized = value.trim().toLowerCase()\n return normalized === \"1\" || normalized === \"true\" || normalized === \"yes\" || normalized === \"on\"\n}\n\nasync function detectCliEnvironment(runner: CliCommandRunner): Promise<CliEnvironmentState> {\n try {\n const version = await runner.run(\"gh\", [\"--version\"], 1_500)\n if (version.exitCode !== 0) {\n return {\n ghCliAvailable: false,\n ghAuthenticated: false\n }\n }\n\n const auth = await runner.run(\"gh\", [\"auth\", \"status\"], 2_500)\n return {\n ghCliAvailable: true,\n ghAuthenticated: auth.exitCode === 0\n }\n } catch {\n return {\n ghCliAvailable: false,\n ghAuthenticated: false\n }\n }\n}\n\nasync function detectCliEnvironmentCached(runner: CliCommandRunner): Promise<CliEnvironmentState> {\n const now = Date.now()\n const cached = cliEnvironmentCache.get(runner)\n if (cached && cached.expiresAt > now) {\n return cached.value\n }\n\n const inFlight = cliEnvironmentInFlight.get(runner)\n if (inFlight) {\n return inFlight\n }\n\n const probePromise = detectCliEnvironment(runner)\n .then((value) => {\n cliEnvironmentCache.set(runner, {\n value,\n expiresAt: Date.now() + CLI_ENV_CACHE_TTL_MS\n })\n cliEnvironmentInFlight.delete(runner)\n return value\n })\n .catch((error) => {\n cliEnvironmentInFlight.delete(runner)\n throw error\n })\n\n cliEnvironmentInFlight.set(runner, probePromise)\n return probePromise\n}\n\nexport async function executeTask(\n request: TaskRequest,\n deps: ExecutionDeps\n): Promise<ResultEnvelope> {\n const reason = deps.reason ?? DEFAULT_REASON\n const card = getOperationCard(request.task)\n if (!card) {\n return normalizeError(\n {\n code: errorCodes.Validation,\n message: `Unsupported task: ${request.task}`,\n retryable: false\n },\n chooseRoute(),\n { capabilityId: request.task, reason }\n )\n }\n\n const cliRunner = deps.cliRunner ?? defaultCliRunner\n\n return execute({\n card,\n params: request.input as Record<string, unknown>,\n routingContext: {\n ghCliAvailable: deps.ghCliAvailable,\n ghAuthenticated: deps.ghAuthenticated,\n githubTokenPresent: Boolean(deps.githubToken)\n },\n retry: {\n maxAttemptsPerRoute: 2\n },\n preflight: async (route: RouteSource) => {\n const preflightInput: Parameters<typeof preflightCheck>[0] = { route }\n if (deps.githubToken !== undefined) {\n preflightInput.githubToken = deps.githubToken\n }\n\n if (route === \"cli\") {\n if (deps.ghCliAvailable !== undefined) {\n preflightInput.ghCliAvailable = deps.ghCliAvailable\n }\n\n if (deps.ghAuthenticated !== undefined) {\n preflightInput.ghAuthenticated = deps.ghAuthenticated\n }\n\n if (preflightInput.ghCliAvailable === undefined || preflightInput.ghAuthenticated === undefined) {\n if (shouldSkipCliPreflight()) {\n if (preflightInput.ghCliAvailable === undefined) {\n preflightInput.ghCliAvailable = true\n }\n\n if (preflightInput.ghAuthenticated === undefined) {\n preflightInput.ghAuthenticated = true\n }\n } else {\n const detected = await detectCliEnvironmentCached(cliRunner)\n\n if (preflightInput.ghCliAvailable === undefined) {\n preflightInput.ghCliAvailable = detected.ghCliAvailable\n }\n\n if (preflightInput.ghAuthenticated === undefined) {\n preflightInput.ghAuthenticated = detected.ghAuthenticated\n }\n }\n }\n }\n\n return preflightCheck(preflightInput)\n },\n routes: {\n graphql: async () =>\n runGraphqlCapability(deps.githubClient, request.task as GraphqlCapabilityId, request.input as Record<string, unknown>),\n cli: async () => {\n return runCliCapability(cliRunner, request.task as CliCapabilityId, request.input as Record<string, unknown>, card)\n },\n rest: async () =>\n normalizeError(\n {\n code: errorCodes.AdapterUnsupported,\n message: `Route 'rest' is not implemented for task '${request.task}'`,\n retryable: false,\n details: { route: \"rest\", task: request.task }\n },\n \"rest\",\n { capabilityId: request.task, reason }\n )\n }\n })\n}\n"],"mappings":"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","names":[]}
|
package/dist/chunk-SJR2SACI.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
listCapabilities
|
|
3
|
-
} from "./chunk-GMTG7X2L.js";
|
|
4
|
-
|
|
5
|
-
// src/cli/commands/capabilities-list.ts
|
|
6
|
-
function parseArgs(argv) {
|
|
7
|
-
return {
|
|
8
|
-
asJson: argv.includes("--json")
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
async function capabilitiesListCommand(argv = []) {
|
|
12
|
-
const { asJson } = parseArgs(argv);
|
|
13
|
-
const capabilities = listCapabilities();
|
|
14
|
-
if (asJson) {
|
|
15
|
-
process.stdout.write(`${JSON.stringify(capabilities)}
|
|
16
|
-
`);
|
|
17
|
-
return 0;
|
|
18
|
-
}
|
|
19
|
-
const lines = capabilities.map(
|
|
20
|
-
(item) => `${item.capability_id} - ${item.description}`
|
|
21
|
-
);
|
|
22
|
-
process.stdout.write(`${lines.join("\n")}
|
|
23
|
-
`);
|
|
24
|
-
return 0;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export {
|
|
28
|
-
capabilitiesListCommand
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=chunk-SJR2SACI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/commands/capabilities-list.ts"],"sourcesContent":["import { listCapabilities } from \"../../agent-interface/tools/list-capabilities-tool.js\"\n\nfunction parseArgs(argv: string[]): { asJson: boolean } {\n return {\n asJson: argv.includes(\"--json\")\n }\n}\n\nexport async function capabilitiesListCommand(argv: string[] = []): Promise<number> {\n const { asJson } = parseArgs(argv)\n const capabilities = listCapabilities()\n\n if (asJson) {\n process.stdout.write(`${JSON.stringify(capabilities)}\\n`)\n return 0\n }\n\n const lines = capabilities.map(\n (item) => `${item.capability_id} - ${item.description}`\n )\n process.stdout.write(`${lines.join(\"\\n\")}\\n`)\n return 0\n}\n"],"mappings":";;;;;AAEA,SAAS,UAAU,MAAqC;AACtD,SAAO;AAAA,IACL,QAAQ,KAAK,SAAS,QAAQ;AAAA,EAChC;AACF;AAEA,eAAsB,wBAAwB,OAAiB,CAAC,GAAoB;AAClF,QAAM,EAAE,OAAO,IAAI,UAAU,IAAI;AACjC,QAAM,eAAe,iBAAiB;AAEtC,MAAI,QAAQ;AACV,YAAQ,OAAO,MAAM,GAAG,KAAK,UAAU,YAAY,CAAC;AAAA,CAAI;AACxD,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,aAAa;AAAA,IACzB,CAAC,SAAS,GAAG,KAAK,aAAa,MAAM,KAAK,WAAW;AAAA,EACvD;AACA,UAAQ,OAAO,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;AAAA,CAAI;AAC5C,SAAO;AACT;","names":[]}
|
package/dist/chunk-TCLMLVUQ.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
// src/gql/operations/pr-list.generated.ts
|
|
2
|
-
var PrListDocument = `
|
|
3
|
-
query PrList($owner: String!, $name: String!, $first: Int!, $after: String) {
|
|
4
|
-
repository(owner: $owner, name: $name) {
|
|
5
|
-
pullRequests(
|
|
6
|
-
first: $first
|
|
7
|
-
after: $after
|
|
8
|
-
orderBy: {field: CREATED_AT, direction: DESC}
|
|
9
|
-
) {
|
|
10
|
-
nodes {
|
|
11
|
-
id
|
|
12
|
-
number
|
|
13
|
-
title
|
|
14
|
-
state
|
|
15
|
-
url
|
|
16
|
-
}
|
|
17
|
-
pageInfo {
|
|
18
|
-
endCursor
|
|
19
|
-
hasNextPage
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
`;
|
|
25
|
-
var defaultWrapper = (action, _operationName, _operationType, _variables) => action();
|
|
26
|
-
function getSdk(client, withWrapper = defaultWrapper) {
|
|
27
|
-
return {
|
|
28
|
-
PrList(variables, requestHeaders, signal) {
|
|
29
|
-
return withWrapper((wrappedRequestHeaders) => client.request({ document: PrListDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "PrList", "query", variables);
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export {
|
|
35
|
-
PrListDocument,
|
|
36
|
-
getSdk
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=chunk-TCLMLVUQ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/gql/operations/pr-list.generated.ts"],"sourcesContent":["import type * as Types from '../generated/common-types';\n\nimport type { GraphQLClient, RequestOptions } from 'graphql-request';\ntype GraphQLClientRequestHeaders = RequestOptions['requestHeaders'];\nexport type PrListQueryVariables = Types.Exact<{\n owner: Types.Scalars['String']['input'];\n name: Types.Scalars['String']['input'];\n first: Types.Scalars['Int']['input'];\n after?: Types.InputMaybe<Types.Scalars['String']['input']>;\n}>;\n\n\nexport type PrListQuery = { __typename?: 'Query', repository?: { __typename?: 'Repository', pullRequests: { __typename?: 'PullRequestConnection', nodes?: Array<{ __typename?: 'PullRequest', id: string, number: number, title: string, state: Types.PullRequestState, url: any } | null> | null, pageInfo: { __typename?: 'PageInfo', endCursor?: string | null, hasNextPage: boolean } } } | null };\n\n\nexport const PrListDocument = `\n query PrList($owner: String!, $name: String!, $first: Int!, $after: String) {\n repository(owner: $owner, name: $name) {\n pullRequests(\n first: $first\n after: $after\n orderBy: {field: CREATED_AT, direction: DESC}\n ) {\n nodes {\n id\n number\n title\n state\n url\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n }\n}\n `;\n\nexport type SdkFunctionWrapper = <T>(action: (requestHeaders?:Record<string, string>) => Promise<T>, operationName: string, operationType?: string, variables?: any) => Promise<T>;\n\n\nconst defaultWrapper: SdkFunctionWrapper = (action, _operationName, _operationType, _variables) => action();\n\nexport function getSdk(client: GraphQLClient, withWrapper: SdkFunctionWrapper = defaultWrapper) {\n return {\n PrList(variables: PrListQueryVariables, requestHeaders?: GraphQLClientRequestHeaders, signal?: RequestInit['signal']): Promise<PrListQuery> {\n return withWrapper((wrappedRequestHeaders) => client.request<PrListQuery>({ document: PrListDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), 'PrList', 'query', variables);\n }\n };\n}\nexport type Sdk = ReturnType<typeof getSdk>;"],"mappings":";AAeO,IAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2B9B,IAAM,iBAAqC,CAAC,QAAQ,gBAAgB,gBAAgB,eAAe,OAAO;AAEnG,SAAS,OAAO,QAAuB,cAAkC,gBAAgB;AAC9F,SAAO;AAAA,IACL,OAAO,WAAiC,gBAA8C,QAAsD;AAC1I,aAAO,YAAY,CAAC,0BAA0B,OAAO,QAAqB,EAAE,UAAU,gBAAgB,WAAW,gBAAgB,EAAE,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,OAAO,CAAC,GAAG,UAAU,SAAS,SAAS;AAAA,IAC3N;AAAA,EACF;AACF;","names":[]}
|
package/dist/chunk-TDTKOJKN.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
errorCodes
|
|
3
|
-
} from "./chunk-UOJWOHRM.js";
|
|
4
|
-
|
|
5
|
-
// src/core/execution/preflight.ts
|
|
6
|
-
function preflightCheck(input) {
|
|
7
|
-
if (input.route === "rest") {
|
|
8
|
-
return {
|
|
9
|
-
ok: false,
|
|
10
|
-
code: errorCodes.AdapterUnsupported,
|
|
11
|
-
message: "REST route is planned but not implemented in v1",
|
|
12
|
-
retryable: false,
|
|
13
|
-
details: { route: input.route }
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
if (input.route === "cli" && input.ghCliAvailable === false) {
|
|
17
|
-
return {
|
|
18
|
-
ok: false,
|
|
19
|
-
code: errorCodes.Validation,
|
|
20
|
-
message: "GitHub CLI is required for cli route",
|
|
21
|
-
retryable: false,
|
|
22
|
-
details: { route: input.route }
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
if (input.route === "cli" && input.ghAuthenticated === false) {
|
|
26
|
-
return {
|
|
27
|
-
ok: false,
|
|
28
|
-
code: errorCodes.Auth,
|
|
29
|
-
message: "GitHub CLI authentication is required for cli route",
|
|
30
|
-
retryable: false,
|
|
31
|
-
details: { route: input.route }
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
if (input.route === "graphql") {
|
|
35
|
-
const token = input.githubToken?.trim();
|
|
36
|
-
if (!token) {
|
|
37
|
-
return {
|
|
38
|
-
ok: false,
|
|
39
|
-
code: errorCodes.Auth,
|
|
40
|
-
message: "GitHub token is required for graphql route",
|
|
41
|
-
retryable: false,
|
|
42
|
-
details: { route: input.route }
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return { ok: true };
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export {
|
|
50
|
-
preflightCheck
|
|
51
|
-
};
|
|
52
|
-
//# sourceMappingURL=chunk-TDTKOJKN.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/execution/preflight.ts"],"sourcesContent":["import type { RouteSource } from \"../contracts/envelope.js\"\nimport type { ErrorCode } from \"../errors/codes.js\"\nimport { errorCodes } from \"../errors/codes.js\"\n\nexport type PreflightInput = {\n route: RouteSource\n githubToken?: string | null\n ghCliAvailable?: boolean\n ghAuthenticated?: boolean\n}\n\nexport type PreflightResult =\n | { ok: true }\n | {\n ok: false\n code: ErrorCode\n message: string\n retryable: boolean\n details: { route: RouteSource }\n }\n\nexport function preflightCheck(input: PreflightInput): PreflightResult {\n if (input.route === \"rest\") {\n return {\n ok: false,\n code: errorCodes.AdapterUnsupported,\n message: \"REST route is planned but not implemented in v1\",\n retryable: false,\n details: { route: input.route }\n }\n }\n\n if (input.route === \"cli\" && input.ghCliAvailable === false) {\n return {\n ok: false,\n code: errorCodes.Validation,\n message: \"GitHub CLI is required for cli route\",\n retryable: false,\n details: { route: input.route }\n }\n }\n\n if (input.route === \"cli\" && input.ghAuthenticated === false) {\n return {\n ok: false,\n code: errorCodes.Auth,\n message: \"GitHub CLI authentication is required for cli route\",\n retryable: false,\n details: { route: input.route }\n }\n }\n\n if (input.route === \"graphql\") {\n const token = input.githubToken?.trim()\n if (!token) {\n return {\n ok: false,\n code: errorCodes.Auth,\n message: \"GitHub token is required for graphql route\",\n retryable: false,\n details: { route: input.route }\n }\n }\n }\n\n return { ok: true }\n}\n"],"mappings":";;;;;AAqBO,SAAS,eAAe,OAAwC;AACrE,MAAI,MAAM,UAAU,QAAQ;AAC1B,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,MAAM,WAAW;AAAA,MACjB,SAAS;AAAA,MACT,WAAW;AAAA,MACX,SAAS,EAAE,OAAO,MAAM,MAAM;AAAA,IAChC;AAAA,EACF;AAEA,MAAI,MAAM,UAAU,SAAS,MAAM,mBAAmB,OAAO;AAC3D,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,MAAM,WAAW;AAAA,MACjB,SAAS;AAAA,MACT,WAAW;AAAA,MACX,SAAS,EAAE,OAAO,MAAM,MAAM;AAAA,IAChC;AAAA,EACF;AAEA,MAAI,MAAM,UAAU,SAAS,MAAM,oBAAoB,OAAO;AAC5D,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,MAAM,WAAW;AAAA,MACjB,SAAS;AAAA,MACT,WAAW;AAAA,MACX,SAAS,EAAE,OAAO,MAAM,MAAM;AAAA,IAChC;AAAA,EACF;AAEA,MAAI,MAAM,UAAU,WAAW;AAC7B,UAAM,QAAQ,MAAM,aAAa,KAAK;AACtC,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,MAAM,WAAW;AAAA,QACjB,SAAS;AAAA,QACT,WAAW;AAAA,QACX,SAAS,EAAE,OAAO,MAAM,MAAM;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,IAAI,KAAK;AACpB;","names":[]}
|
package/dist/chunk-UGWIZ3RI.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/routing/policy.ts"],"sourcesContent":["export const routePreferenceOrder = [\"cli\", \"graphql\"] as const\n"],"mappings":";AAAO,IAAM,uBAAuB,CAAC,OAAO,SAAS;","names":[]}
|
package/dist/chunk-UOJWOHRM.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// src/core/errors/codes.ts
|
|
2
|
-
var errorCodes = {
|
|
3
|
-
Auth: "AUTH",
|
|
4
|
-
NotFound: "NOT_FOUND",
|
|
5
|
-
Validation: "VALIDATION",
|
|
6
|
-
RateLimit: "RATE_LIMIT",
|
|
7
|
-
Network: "NETWORK",
|
|
8
|
-
Server: "SERVER",
|
|
9
|
-
AdapterUnsupported: "ADAPTER_UNSUPPORTED",
|
|
10
|
-
Unknown: "UNKNOWN"
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export {
|
|
14
|
-
errorCodes
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=chunk-UOJWOHRM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/errors/codes.ts"],"sourcesContent":["export const errorCodes = {\n Auth: \"AUTH\",\n NotFound: \"NOT_FOUND\",\n Validation: \"VALIDATION\",\n RateLimit: \"RATE_LIMIT\",\n Network: \"NETWORK\",\n Server: \"SERVER\",\n AdapterUnsupported: \"ADAPTER_UNSUPPORTED\",\n Unknown: \"UNKNOWN\"\n} as const\n\nexport type ErrorCode = (typeof errorCodes)[keyof typeof errorCodes]\n"],"mappings":";AAAO,IAAM,aAAa;AAAA,EACxB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,oBAAoB;AAAA,EACpB,SAAS;AACX;","names":[]}
|