@paretools/github 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/formatters.d.ts +10 -2
- package/dist/lib/formatters.d.ts.map +1 -1
- package/dist/lib/formatters.js +32 -0
- package/dist/lib/formatters.js.map +1 -1
- package/dist/lib/gh-runner.d.ts.map +1 -1
- package/dist/lib/gh-runner.js +2 -1
- package/dist/lib/gh-runner.js.map +1 -1
- package/dist/lib/parsers.d.ts +21 -7
- package/dist/lib/parsers.d.ts.map +1 -1
- package/dist/lib/parsers.js +119 -16
- package/dist/lib/parsers.js.map +1 -1
- package/dist/schemas/index.d.ts +142 -2
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +79 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/tools/api.d.ts.map +1 -1
- package/dist/tools/api.js +2 -6
- package/dist/tools/api.js.map +1 -1
- package/dist/tools/gist-create.d.ts.map +1 -1
- package/dist/tools/gist-create.js +23 -7
- package/dist/tools/gist-create.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/issue-close.d.ts.map +1 -1
- package/dist/tools/issue-close.js +29 -8
- package/dist/tools/issue-close.js.map +1 -1
- package/dist/tools/issue-comment.d.ts.map +1 -1
- package/dist/tools/issue-comment.js +22 -8
- package/dist/tools/issue-comment.js.map +1 -1
- package/dist/tools/issue-create.d.ts.map +1 -1
- package/dist/tools/issue-create.js +29 -7
- package/dist/tools/issue-create.js.map +1 -1
- package/dist/tools/issue-list.d.ts.map +1 -1
- package/dist/tools/issue-list.js +65 -13
- package/dist/tools/issue-list.js.map +1 -1
- package/dist/tools/issue-update.d.ts.map +1 -1
- package/dist/tools/issue-update.js +44 -8
- package/dist/tools/issue-update.js.map +1 -1
- package/dist/tools/issue-view.d.ts.map +1 -1
- package/dist/tools/issue-view.js +3 -11
- package/dist/tools/issue-view.js.map +1 -1
- package/dist/tools/label-create.d.ts +4 -0
- package/dist/tools/label-create.d.ts.map +1 -0
- package/dist/tools/label-create.js +73 -0
- package/dist/tools/label-create.js.map +1 -0
- package/dist/tools/label-list.d.ts +4 -0
- package/dist/tools/label-list.d.ts.map +1 -0
- package/dist/tools/label-list.js +71 -0
- package/dist/tools/label-list.js.map +1 -0
- package/dist/tools/pr-checks.d.ts.map +1 -1
- package/dist/tools/pr-checks.js +34 -8
- package/dist/tools/pr-checks.js.map +1 -1
- package/dist/tools/pr-comment.d.ts.map +1 -1
- package/dist/tools/pr-comment.js +22 -8
- package/dist/tools/pr-comment.js.map +1 -1
- package/dist/tools/pr-create.d.ts.map +1 -1
- package/dist/tools/pr-create.js +31 -8
- package/dist/tools/pr-create.js.map +1 -1
- package/dist/tools/pr-diff.d.ts.map +1 -1
- package/dist/tools/pr-diff.js +27 -12
- package/dist/tools/pr-diff.js.map +1 -1
- package/dist/tools/pr-list.d.ts.map +1 -1
- package/dist/tools/pr-list.js +36 -12
- package/dist/tools/pr-list.js.map +1 -1
- package/dist/tools/pr-merge.d.ts.map +1 -1
- package/dist/tools/pr-merge.js +33 -15
- package/dist/tools/pr-merge.js.map +1 -1
- package/dist/tools/pr-review.d.ts.map +1 -1
- package/dist/tools/pr-review.js +2 -6
- package/dist/tools/pr-review.js.map +1 -1
- package/dist/tools/pr-update.d.ts.map +1 -1
- package/dist/tools/pr-update.js +50 -8
- package/dist/tools/pr-update.js.map +1 -1
- package/dist/tools/pr-view.d.ts.map +1 -1
- package/dist/tools/pr-view.js +4 -12
- package/dist/tools/pr-view.js.map +1 -1
- package/dist/tools/release-create.d.ts.map +1 -1
- package/dist/tools/release-create.js +31 -10
- package/dist/tools/release-create.js.map +1 -1
- package/dist/tools/release-list.d.ts.map +1 -1
- package/dist/tools/release-list.js +20 -12
- package/dist/tools/release-list.js.map +1 -1
- package/dist/tools/run-list.d.ts.map +1 -1
- package/dist/tools/run-list.js +30 -12
- package/dist/tools/run-list.js.map +1 -1
- package/dist/tools/run-rerun.d.ts.map +1 -1
- package/dist/tools/run-rerun.js +22 -8
- package/dist/tools/run-rerun.js.map +1 -1
- package/dist/tools/run-view.d.ts.map +1 -1
- package/dist/tools/run-view.js +26 -15
- package/dist/tools/run-view.js.map +1 -1
- package/package.json +2 -2
package/dist/tools/issue-list.js
CHANGED
|
@@ -10,7 +10,7 @@ const ISSUE_LIST_FIELDS = "number,state,title,url,labels,assignees,author,create
|
|
|
10
10
|
export function registerIssueListTool(server) {
|
|
11
11
|
server.registerTool("issue-list", {
|
|
12
12
|
title: "Issue List",
|
|
13
|
-
description: "Lists issues with optional filters. Returns structured list with issue number, state, title, labels, assignees, author, creation date, and milestone.
|
|
13
|
+
description: "Lists issues with optional filters. Returns structured list with issue number, state, title, labels, assignees, author, creation date, and milestone.",
|
|
14
14
|
inputSchema: {
|
|
15
15
|
state: z
|
|
16
16
|
.enum(["open", "closed", "all"])
|
|
@@ -22,6 +22,11 @@ export function registerIssueListTool(server) {
|
|
|
22
22
|
.optional()
|
|
23
23
|
.default(30)
|
|
24
24
|
.describe("Maximum number of issues to return (default: 30)"),
|
|
25
|
+
paginate: z
|
|
26
|
+
.boolean()
|
|
27
|
+
.optional()
|
|
28
|
+
.default(false)
|
|
29
|
+
.describe("Fetch a larger paginated set (up to 1000 issues)"),
|
|
25
30
|
label: z.string().max(INPUT_LIMITS.SHORT_STRING_MAX).optional().describe("Filter by label"),
|
|
26
31
|
labels: z
|
|
27
32
|
.array(z.string().max(INPUT_LIMITS.SHORT_STRING_MAX))
|
|
@@ -69,19 +74,11 @@ export function registerIssueListTool(server) {
|
|
|
69
74
|
.max(INPUT_LIMITS.SHORT_STRING_MAX)
|
|
70
75
|
.optional()
|
|
71
76
|
.describe("Repository in OWNER/REPO format (--repo). Default: current repo."),
|
|
72
|
-
path: z
|
|
73
|
-
|
|
74
|
-
.max(INPUT_LIMITS.PATH_MAX)
|
|
75
|
-
.optional()
|
|
76
|
-
.describe("Repository path (default: cwd)"),
|
|
77
|
-
compact: z
|
|
78
|
-
.boolean()
|
|
79
|
-
.optional()
|
|
80
|
-
.default(true)
|
|
81
|
-
.describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
|
|
77
|
+
path: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Repository path"),
|
|
78
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
82
79
|
},
|
|
83
80
|
outputSchema: IssueListResultSchema,
|
|
84
|
-
}, async ({ state, limit, label, labels, assignee, search, author, milestone, mention, app, repo, path, compact, }) => {
|
|
81
|
+
}, async ({ state, limit, paginate, label, labels, assignee, search, author, milestone, mention, app, repo, path, compact, }) => {
|
|
85
82
|
const cwd = path || process.cwd();
|
|
86
83
|
if (label)
|
|
87
84
|
assertNoFlagInjection(label, "label");
|
|
@@ -104,7 +101,15 @@ export function registerIssueListTool(server) {
|
|
|
104
101
|
assertNoFlagInjection(app, "app");
|
|
105
102
|
if (repo)
|
|
106
103
|
assertNoFlagInjection(repo, "repo");
|
|
107
|
-
const
|
|
104
|
+
const requestedLimit = paginate ? 1000 : limit;
|
|
105
|
+
const args = [
|
|
106
|
+
"issue",
|
|
107
|
+
"list",
|
|
108
|
+
"--json",
|
|
109
|
+
ISSUE_LIST_FIELDS,
|
|
110
|
+
"--limit",
|
|
111
|
+
String(requestedLimit),
|
|
112
|
+
];
|
|
108
113
|
if (state)
|
|
109
114
|
args.push("--state", state);
|
|
110
115
|
if (label)
|
|
@@ -133,6 +138,53 @@ export function registerIssueListTool(server) {
|
|
|
133
138
|
throw new Error(`gh issue list failed: ${result.stderr}`);
|
|
134
139
|
}
|
|
135
140
|
const data = parseIssueList(result.stdout);
|
|
141
|
+
if (!paginate) {
|
|
142
|
+
const probeArgs = [
|
|
143
|
+
"issue",
|
|
144
|
+
"list",
|
|
145
|
+
"--json",
|
|
146
|
+
ISSUE_LIST_FIELDS,
|
|
147
|
+
"--limit",
|
|
148
|
+
String(limit + 1),
|
|
149
|
+
];
|
|
150
|
+
if (state)
|
|
151
|
+
probeArgs.push("--state", state);
|
|
152
|
+
if (label)
|
|
153
|
+
probeArgs.push("--label", label);
|
|
154
|
+
if (labels && labels.length > 0) {
|
|
155
|
+
for (const l of labels)
|
|
156
|
+
probeArgs.push("--label", l);
|
|
157
|
+
}
|
|
158
|
+
if (assignee)
|
|
159
|
+
probeArgs.push("--assignee", assignee);
|
|
160
|
+
if (search)
|
|
161
|
+
probeArgs.push("--search", search);
|
|
162
|
+
if (author)
|
|
163
|
+
probeArgs.push("--author", author);
|
|
164
|
+
if (milestone)
|
|
165
|
+
probeArgs.push("--milestone", milestone);
|
|
166
|
+
if (mention)
|
|
167
|
+
probeArgs.push("--mention", mention);
|
|
168
|
+
if (app)
|
|
169
|
+
probeArgs.push("--app", app);
|
|
170
|
+
if (repo)
|
|
171
|
+
probeArgs.push("--repo", repo);
|
|
172
|
+
const probeResult = await ghCmd(probeArgs, cwd);
|
|
173
|
+
if (probeResult.exitCode === 0) {
|
|
174
|
+
const probe = parseIssueList(probeResult.stdout);
|
|
175
|
+
const hasMore = probe.total > limit;
|
|
176
|
+
data.hasMore = hasMore;
|
|
177
|
+
data.totalAvailable = hasMore ? limit + 1 : data.total;
|
|
178
|
+
if (hasMore) {
|
|
179
|
+
data.issues = data.issues.slice(0, limit);
|
|
180
|
+
data.total = data.issues.length;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
data.hasMore = false;
|
|
186
|
+
data.totalAvailable = data.total;
|
|
187
|
+
}
|
|
136
188
|
return compactDualOutput(data, result.stdout, formatIssueList, compactIssueListMap, formatIssueListCompact, compact === false);
|
|
137
189
|
});
|
|
138
190
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-list.js","sourceRoot":"","sources":["../../src/tools/issue-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,4DAA4D;AAC5D,MAAM,iBAAiB,GAAG,oEAAoE,CAAC;AAE/F,+DAA+D;AAC/D,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EACT
|
|
1
|
+
{"version":3,"file":"issue-list.js","sourceRoot":"","sources":["../../src/tools/issue-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,4DAA4D;AAC5D,MAAM,iBAAiB,GAAG,oEAAoE,CAAC;AAE/F,+DAA+D;AAC/D,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EACT,uJAAuJ;QACzJ,WAAW,EAAE;YACX,KAAK,EAAE,CAAC;iBACL,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;iBAC/B,QAAQ,EAAE;iBACV,OAAO,CAAC,MAAM,CAAC;iBACf,QAAQ,CAAC,uCAAuC,CAAC;YACpD,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,OAAO,CAAC,EAAE,CAAC;iBACX,QAAQ,CAAC,kDAAkD,CAAC;YAC/D,QAAQ,EAAE,CAAC;iBACR,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,kDAAkD,CAAC;YAC/D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC3F,MAAM,EAAE,CAAC;iBACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;iBACpD,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;iBAC3B,QAAQ,EAAE;iBACV,QAAQ,CAAC,kDAAkD,CAAC;YAC/D,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC;iBAClC,QAAQ,EAAE;iBACV,QAAQ,CAAC,6BAA6B,CAAC;YAC1C,6BAA6B;YAC7B,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC;iBAC5B,QAAQ,EAAE;iBACV,QAAQ,CAAC,oCAAoC,CAAC;YACjD,8BAA8B;YAC9B,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC;iBAClC,QAAQ,EAAE;iBACV,QAAQ,CAAC,yCAAyC,CAAC;YACtD,iCAAiC;YACjC,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC;iBAClC,QAAQ,EAAE;iBACV,QAAQ,CAAC,qDAAqD,CAAC;YAClE,+BAA+B;YAC/B,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC;iBAClC,QAAQ,EAAE;iBACV,QAAQ,CAAC,sCAAsC,CAAC;YACnD,2BAA2B;YAC3B,GAAG,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC;iBAClC,QAAQ,EAAE;iBACV,QAAQ,CAAC,8BAA8B,CAAC;YAC3C,4CAA4C;YAC5C,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC;iBAClC,QAAQ,EAAE;iBACV,QAAQ,CAAC,kEAAkE,CAAC;YAC/E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAClF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAChF;QACD,YAAY,EAAE,qBAAqB;KACpC,EACD,KAAK,EAAE,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,MAAM,EACN,SAAS,EACT,OAAO,EACP,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,OAAO,GACR,EAAE,EAAE;QACH,MAAM,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAElC,IAAI,KAAK;YAAE,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,qBAAqB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QACD,IAAI,QAAQ;YAAE,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC1D,IAAI,MAAM;YAAE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,MAAM;YAAE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,SAAS;YAAE,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7D,IAAI,OAAO;YAAE,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,GAAG;YAAE,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,IAAI;YAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE9C,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/C,MAAM,IAAI,GAAG;YACX,OAAO;YACP,MAAM;YACN,QAAQ;YACR,iBAAiB;YACjB,SAAS;YACT,MAAM,CAAC,cAAc,CAAC;SACvB,CAAC;QACF,IAAI,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACvC,IAAI,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACvC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,IAAI,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACjC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEtC,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,SAAS,GAAG;gBAChB,OAAO;gBACP,MAAM;gBACN,QAAQ;gBACR,iBAAiB;gBACjB,SAAS;gBACT,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;aAClB,CAAC;YACF,IAAI,KAAK;gBAAE,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,KAAK;gBAAE,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,KAAK,MAAM,CAAC,IAAI,MAAM;oBAAE,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,QAAQ;gBAAE,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACrD,IAAI,MAAM;gBAAE,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,MAAM;gBAAE,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,SAAS;gBAAE,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YACxD,IAAI,OAAO;gBAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,GAAG;gBAAE,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACtC,IAAI,IAAI;gBAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACzC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAChD,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACjD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACvB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBACvD,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;QACnC,CAAC;QACD,OAAO,iBAAiB,CACtB,IAAI,EACJ,MAAM,CAAC,MAAM,EACb,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,OAAO,KAAK,KAAK,CAClB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-update.d.ts","sourceRoot":"","sources":["../../src/tools/issue-update.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"issue-update.d.ts","sourceRoot":"","sources":["../../src/tools/issue-update.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBzE,iEAAiE;AACjE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,QAmPxD"}
|
|
@@ -4,6 +4,16 @@ import { ghCmd } from "../lib/gh-runner.js";
|
|
|
4
4
|
import { parseIssueUpdate } from "../lib/parsers.js";
|
|
5
5
|
import { formatIssueUpdate } from "../lib/formatters.js";
|
|
6
6
|
import { EditResultSchema } from "../schemas/index.js";
|
|
7
|
+
function classifyIssueUpdateError(stderr) {
|
|
8
|
+
const lower = stderr.toLowerCase();
|
|
9
|
+
if (/not found|could not resolve|no issue/.test(lower))
|
|
10
|
+
return "not-found";
|
|
11
|
+
if (/forbidden|permission|403/.test(lower))
|
|
12
|
+
return "permission-denied";
|
|
13
|
+
if (/validation|invalid|required|unprocessable/.test(lower))
|
|
14
|
+
return "validation";
|
|
15
|
+
return "unknown";
|
|
16
|
+
}
|
|
7
17
|
/** Registers the `issue-update` tool on the given MCP server. */
|
|
8
18
|
export function registerIssueUpdateTool(server) {
|
|
9
19
|
server.registerTool("issue-update", {
|
|
@@ -12,7 +22,7 @@ export function registerIssueUpdateTool(server) {
|
|
|
12
22
|
"All fields except `number` are optional — only supply the fields you want to change. " +
|
|
13
23
|
"For list fields (labels, assignees, projects), use `add*` to append and `remove*` to " +
|
|
14
24
|
"delete specific items without affecting others. " +
|
|
15
|
-
"Returns structured data with issue number and URL.
|
|
25
|
+
"Returns structured data with issue number and URL.",
|
|
16
26
|
inputSchema: {
|
|
17
27
|
// ── Target ──────────────────────────────────────────────────
|
|
18
28
|
/** Issue number (integer) or full GitHub issue URL. */
|
|
@@ -21,11 +31,7 @@ export function registerIssueUpdateTool(server) {
|
|
|
21
31
|
.max(INPUT_LIMITS.STRING_MAX)
|
|
22
32
|
.describe("Issue number or full GitHub issue URL to update"),
|
|
23
33
|
/** Repository path on disk. Defaults to cwd. */
|
|
24
|
-
path: z
|
|
25
|
-
.string()
|
|
26
|
-
.max(INPUT_LIMITS.PATH_MAX)
|
|
27
|
-
.optional()
|
|
28
|
-
.describe("Repository path (default: cwd)"),
|
|
34
|
+
path: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Repository path"),
|
|
29
35
|
// ── Content fields ──────────────────────────────────────────
|
|
30
36
|
/** Replace the issue title entirely. */
|
|
31
37
|
title: z
|
|
@@ -141,6 +147,28 @@ export function registerIssueUpdateTool(server) {
|
|
|
141
147
|
}
|
|
142
148
|
const selector = String(number);
|
|
143
149
|
const issueNum = typeof number === "number" ? number : 0;
|
|
150
|
+
const updatedFields = [
|
|
151
|
+
title ? "title" : undefined,
|
|
152
|
+
body ? "body" : undefined,
|
|
153
|
+
addLabels && addLabels.length > 0 ? "labels" : undefined,
|
|
154
|
+
removeLabels && removeLabels.length > 0 ? "labels" : undefined,
|
|
155
|
+
addAssignees && addAssignees.length > 0 ? "assignees" : undefined,
|
|
156
|
+
removeAssignees && removeAssignees.length > 0 ? "assignees" : undefined,
|
|
157
|
+
milestone ? "milestone" : undefined,
|
|
158
|
+
removeMilestone ? "milestone" : undefined,
|
|
159
|
+
addProjects && addProjects.length > 0 ? "projects" : undefined,
|
|
160
|
+
removeProjects && removeProjects.length > 0 ? "projects" : undefined,
|
|
161
|
+
].filter(Boolean);
|
|
162
|
+
const operations = [
|
|
163
|
+
addLabels && addLabels.length > 0 ? "add-label" : undefined,
|
|
164
|
+
removeLabels && removeLabels.length > 0 ? "remove-label" : undefined,
|
|
165
|
+
addAssignees && addAssignees.length > 0 ? "add-assignee" : undefined,
|
|
166
|
+
removeAssignees && removeAssignees.length > 0 ? "remove-assignee" : undefined,
|
|
167
|
+
addProjects && addProjects.length > 0 ? "add-project" : undefined,
|
|
168
|
+
removeProjects && removeProjects.length > 0 ? "remove-project" : undefined,
|
|
169
|
+
milestone ? "set-milestone" : undefined,
|
|
170
|
+
removeMilestone ? "remove-milestone" : undefined,
|
|
171
|
+
].filter(Boolean);
|
|
144
172
|
const args = ["issue", "edit", selector];
|
|
145
173
|
if (title)
|
|
146
174
|
args.push("--title", title);
|
|
@@ -187,9 +215,17 @@ export function registerIssueUpdateTool(server) {
|
|
|
187
215
|
}
|
|
188
216
|
const result = await ghCmd(args, body ? { cwd, stdin: body } : { cwd });
|
|
189
217
|
if (result.exitCode !== 0) {
|
|
190
|
-
|
|
218
|
+
const combined = `${result.stdout}\n${result.stderr}`.trim();
|
|
219
|
+
return dualOutput({
|
|
220
|
+
number: issueNum,
|
|
221
|
+
url: "",
|
|
222
|
+
updatedFields,
|
|
223
|
+
operations,
|
|
224
|
+
errorType: classifyIssueUpdateError(combined),
|
|
225
|
+
errorMessage: combined || "gh issue edit failed",
|
|
226
|
+
}, formatIssueUpdate);
|
|
191
227
|
}
|
|
192
|
-
const data = parseIssueUpdate(result.stdout, issueNum);
|
|
228
|
+
const data = parseIssueUpdate(result.stdout, issueNum, updatedFields, operations);
|
|
193
229
|
return dualOutput(data, formatIssueUpdate);
|
|
194
230
|
});
|
|
195
231
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-update.js","sourceRoot":"","sources":["../../src/tools/issue-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,iEAAiE;AACjE,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,gFAAgF;YAChF,uFAAuF;YACvF,uFAAuF;YACvF,kDAAkD;YAClD,
|
|
1
|
+
{"version":3,"file":"issue-update.js","sourceRoot":"","sources":["../../src/tools/issue-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-view.d.ts","sourceRoot":"","sources":["../../src/tools/issue-view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,+DAA+D;AAC/D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"issue-view.d.ts","sourceRoot":"","sources":["../../src/tools/issue-view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,+DAA+D;AAC/D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QAoDtD"}
|
package/dist/tools/issue-view.js
CHANGED
|
@@ -10,7 +10,7 @@ const ISSUE_VIEW_FIELDS = "number,state,title,body,labels,assignees,url,createdA
|
|
|
10
10
|
export function registerIssueViewTool(server) {
|
|
11
11
|
server.registerTool("issue-view", {
|
|
12
12
|
title: "Issue View",
|
|
13
|
-
description: "Views an issue by number or URL. Returns structured data with state, labels, assignees, author, milestone, close reason, and body.
|
|
13
|
+
description: "Views an issue by number or URL. Returns structured data with state, labels, assignees, author, milestone, close reason, and body.",
|
|
14
14
|
inputSchema: {
|
|
15
15
|
number: z.string().max(INPUT_LIMITS.STRING_MAX).describe("Issue number or URL"),
|
|
16
16
|
comments: z
|
|
@@ -23,16 +23,8 @@ export function registerIssueViewTool(server) {
|
|
|
23
23
|
.max(INPUT_LIMITS.SHORT_STRING_MAX)
|
|
24
24
|
.optional()
|
|
25
25
|
.describe("Repository in OWNER/REPO format (--repo). Default: current repo."),
|
|
26
|
-
path: z
|
|
27
|
-
|
|
28
|
-
.max(INPUT_LIMITS.PATH_MAX)
|
|
29
|
-
.optional()
|
|
30
|
-
.describe("Repository path (default: cwd)"),
|
|
31
|
-
compact: z
|
|
32
|
-
.boolean()
|
|
33
|
-
.optional()
|
|
34
|
-
.default(true)
|
|
35
|
-
.describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
|
|
26
|
+
path: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Repository path"),
|
|
27
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
36
28
|
},
|
|
37
29
|
outputSchema: IssueViewResultSchema,
|
|
38
30
|
}, async ({ number, comments, repo, path, compact }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-view.js","sourceRoot":"","sources":["../../src/tools/issue-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,yFAAyF;AACzF,MAAM,iBAAiB,GACrB,8HAA8H,CAAC;AAEjI,+DAA+D;AAC/D,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"issue-view.js","sourceRoot":"","sources":["../../src/tools/issue-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,yFAAyF;AACzF,MAAM,iBAAiB,GACrB,8HAA8H,CAAC;AAEjI,+DAA+D;AAC/D,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EACT,oIAAoI;QACtI,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC/E,QAAQ,EAAE,CAAC;iBACR,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,kDAAkD,CAAC;YAC/D,4CAA4C;YAC5C,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC;iBAClC,QAAQ,EAAE;iBACV,QAAQ,CAAC,kEAAkE,CAAC;YAC/E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAClF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAChF;QACD,YAAY,EAAE,qBAAqB;KACpC,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QAClD,MAAM,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAElC,IAAI,IAAI;YAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAExE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACtE,IAAI,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEtC,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,iBAAiB,CACtB,IAAI,EACJ,MAAM,CAAC,MAAM,EACb,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,OAAO,KAAK,KAAK,CAClB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label-create.d.ts","sourceRoot":"","sources":["../../src/tools/label-create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBzE,iEAAiE;AACjE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,QA6DxD"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { dualOutput, assertNoFlagInjection, INPUT_LIMITS } from "@paretools/shared";
|
|
3
|
+
import { ghCmd } from "../lib/gh-runner.js";
|
|
4
|
+
import { parseLabelCreate } from "../lib/parsers.js";
|
|
5
|
+
import { formatLabelCreate } from "../lib/formatters.js";
|
|
6
|
+
import { LabelCreateResultSchema } from "../schemas/index.js";
|
|
7
|
+
function classifyLabelCreateError(text) {
|
|
8
|
+
const lower = text.toLowerCase();
|
|
9
|
+
if (/already exists|label .* already/.test(lower))
|
|
10
|
+
return "already-exists";
|
|
11
|
+
if (/forbidden|permission|403/.test(lower))
|
|
12
|
+
return "permission-denied";
|
|
13
|
+
if (/validation|invalid|required|unprocessable/.test(lower))
|
|
14
|
+
return "validation";
|
|
15
|
+
return "unknown";
|
|
16
|
+
}
|
|
17
|
+
/** Registers the `label-create` tool on the given MCP server. */
|
|
18
|
+
export function registerLabelCreateTool(server) {
|
|
19
|
+
server.registerTool("label-create", {
|
|
20
|
+
title: "Label Create",
|
|
21
|
+
description: "Creates a new repository label. Returns structured data with label name, description, color, and URL.",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
name: z.string().max(INPUT_LIMITS.SHORT_STRING_MAX).describe("Label name"),
|
|
24
|
+
description: z
|
|
25
|
+
.string()
|
|
26
|
+
.max(INPUT_LIMITS.STRING_MAX)
|
|
27
|
+
.optional()
|
|
28
|
+
.describe("Label description"),
|
|
29
|
+
color: z
|
|
30
|
+
.string()
|
|
31
|
+
.max(INPUT_LIMITS.SHORT_STRING_MAX)
|
|
32
|
+
.optional()
|
|
33
|
+
.describe("Label color as hex (e.g., 'ff0000' without #)"),
|
|
34
|
+
repo: z
|
|
35
|
+
.string()
|
|
36
|
+
.max(INPUT_LIMITS.SHORT_STRING_MAX)
|
|
37
|
+
.optional()
|
|
38
|
+
.describe("Repository in OWNER/REPO format (default: current repo)"),
|
|
39
|
+
path: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Repository path"),
|
|
40
|
+
},
|
|
41
|
+
outputSchema: LabelCreateResultSchema,
|
|
42
|
+
}, async ({ name, description, color, repo, path }) => {
|
|
43
|
+
const cwd = path || process.cwd();
|
|
44
|
+
assertNoFlagInjection(name, "name");
|
|
45
|
+
if (description)
|
|
46
|
+
assertNoFlagInjection(description, "description");
|
|
47
|
+
if (color)
|
|
48
|
+
assertNoFlagInjection(color, "color");
|
|
49
|
+
if (repo)
|
|
50
|
+
assertNoFlagInjection(repo, "repo");
|
|
51
|
+
const args = ["label", "create", name];
|
|
52
|
+
if (description)
|
|
53
|
+
args.push("--description", description);
|
|
54
|
+
if (color)
|
|
55
|
+
args.push("--color", color);
|
|
56
|
+
if (repo)
|
|
57
|
+
args.push("--repo", repo);
|
|
58
|
+
const result = await ghCmd(args, cwd);
|
|
59
|
+
if (result.exitCode !== 0) {
|
|
60
|
+
const combined = `${result.stdout}\n${result.stderr}`.trim();
|
|
61
|
+
return dualOutput({
|
|
62
|
+
name,
|
|
63
|
+
description: description ?? undefined,
|
|
64
|
+
color: color ?? undefined,
|
|
65
|
+
errorType: classifyLabelCreateError(combined),
|
|
66
|
+
errorMessage: combined || "gh label create failed",
|
|
67
|
+
}, formatLabelCreate);
|
|
68
|
+
}
|
|
69
|
+
const data = parseLabelCreate(result.stdout, result.stderr, name, description, color);
|
|
70
|
+
return dualOutput(data, formatLabelCreate);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=label-create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label-create.js","sourceRoot":"","sources":["../../src/tools/label-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label-list.d.ts","sourceRoot":"","sources":["../../src/tools/label-list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAczE,+DAA+D;AAC/D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QA+DtD"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { dualOutput, assertNoFlagInjection, INPUT_LIMITS } from "@paretools/shared";
|
|
3
|
+
import { ghCmd } from "../lib/gh-runner.js";
|
|
4
|
+
import { parseLabelList } from "../lib/parsers.js";
|
|
5
|
+
import { formatLabelList } from "../lib/formatters.js";
|
|
6
|
+
import { LabelListResultSchema } from "../schemas/index.js";
|
|
7
|
+
function classifyLabelListError(text) {
|
|
8
|
+
const lower = text.toLowerCase();
|
|
9
|
+
if (/not found|could not resolve|no repository/.test(lower))
|
|
10
|
+
return "not-found";
|
|
11
|
+
if (/forbidden|permission|403/.test(lower))
|
|
12
|
+
return "permission-denied";
|
|
13
|
+
return "unknown";
|
|
14
|
+
}
|
|
15
|
+
/** Registers the `label-list` tool on the given MCP server. */
|
|
16
|
+
export function registerLabelListTool(server) {
|
|
17
|
+
server.registerTool("label-list", {
|
|
18
|
+
title: "Label List",
|
|
19
|
+
description: "Lists repository labels. Returns structured data with label name, description, color, and default status.",
|
|
20
|
+
inputSchema: {
|
|
21
|
+
limit: z
|
|
22
|
+
.number()
|
|
23
|
+
.optional()
|
|
24
|
+
.default(30)
|
|
25
|
+
.describe("Maximum number of labels to return (default: 30)"),
|
|
26
|
+
search: z
|
|
27
|
+
.string()
|
|
28
|
+
.max(INPUT_LIMITS.SHORT_STRING_MAX)
|
|
29
|
+
.optional()
|
|
30
|
+
.describe("Filter labels by search term"),
|
|
31
|
+
repo: z
|
|
32
|
+
.string()
|
|
33
|
+
.max(INPUT_LIMITS.SHORT_STRING_MAX)
|
|
34
|
+
.optional()
|
|
35
|
+
.describe("Repository in OWNER/REPO format (default: current repo)"),
|
|
36
|
+
path: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Repository path"),
|
|
37
|
+
},
|
|
38
|
+
outputSchema: LabelListResultSchema,
|
|
39
|
+
}, async ({ limit, search, repo, path }) => {
|
|
40
|
+
const cwd = path || process.cwd();
|
|
41
|
+
if (search)
|
|
42
|
+
assertNoFlagInjection(search, "search");
|
|
43
|
+
if (repo)
|
|
44
|
+
assertNoFlagInjection(repo, "repo");
|
|
45
|
+
const args = [
|
|
46
|
+
"label",
|
|
47
|
+
"list",
|
|
48
|
+
"--json",
|
|
49
|
+
"name,description,color,isDefault",
|
|
50
|
+
"--limit",
|
|
51
|
+
String(limit ?? 30),
|
|
52
|
+
];
|
|
53
|
+
if (search)
|
|
54
|
+
args.push("--search", search);
|
|
55
|
+
if (repo)
|
|
56
|
+
args.push("--repo", repo);
|
|
57
|
+
const result = await ghCmd(args, cwd);
|
|
58
|
+
if (result.exitCode !== 0) {
|
|
59
|
+
const combined = `${result.stdout}\n${result.stderr}`.trim();
|
|
60
|
+
return dualOutput({
|
|
61
|
+
labels: [],
|
|
62
|
+
total: 0,
|
|
63
|
+
errorType: classifyLabelListError(combined),
|
|
64
|
+
errorMessage: combined || "gh label list failed",
|
|
65
|
+
}, formatLabelList);
|
|
66
|
+
}
|
|
67
|
+
const data = parseLabelList(result.stdout);
|
|
68
|
+
return dualOutput(data, formatLabelList);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=label-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label-list.js","sourceRoot":"","sources":["../../src/tools/label-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-checks.d.ts","sourceRoot":"","sources":["../../src/tools/pr-checks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"pr-checks.d.ts","sourceRoot":"","sources":["../../src/tools/pr-checks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBzE,8DAA8D;AAC9D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,QA2FrD"}
|
package/dist/tools/pr-checks.js
CHANGED
|
@@ -5,11 +5,21 @@ import { parsePrChecks } from "../lib/parsers.js";
|
|
|
5
5
|
import { formatPrChecks, compactPrChecksMap, formatPrChecksCompact } from "../lib/formatters.js";
|
|
6
6
|
import { PrChecksResultSchema } from "../schemas/index.js";
|
|
7
7
|
const PR_CHECKS_FIELDS = "name,state,bucket,description,event,workflow,link,startedAt,completedAt";
|
|
8
|
+
function classifyPrChecksError(stderr) {
|
|
9
|
+
const lower = stderr.toLowerCase();
|
|
10
|
+
if (/not found|could not resolve|no pull request/.test(lower))
|
|
11
|
+
return "not-found";
|
|
12
|
+
if (/forbidden|permission|403/.test(lower))
|
|
13
|
+
return "permission-denied";
|
|
14
|
+
if (/pending|in progress|checks are still running/.test(lower))
|
|
15
|
+
return "in-progress";
|
|
16
|
+
return "unknown";
|
|
17
|
+
}
|
|
8
18
|
/** Registers the `pr-checks` tool on the given MCP server. */
|
|
9
19
|
export function registerPrChecksTool(server) {
|
|
10
20
|
server.registerTool("pr-checks", {
|
|
11
21
|
title: "PR Checks",
|
|
12
|
-
description: "Lists check/status results for a pull request. Returns structured data with check names, states, URLs, and summary counts (passed, failed, pending).
|
|
22
|
+
description: "Lists check/status results for a pull request. Returns structured data with check names, states, URLs, and summary counts (passed, failed, pending).",
|
|
13
23
|
inputSchema: {
|
|
14
24
|
number: z
|
|
15
25
|
.string()
|
|
@@ -26,11 +36,7 @@ export function registerPrChecksTool(server) {
|
|
|
26
36
|
.boolean()
|
|
27
37
|
.optional()
|
|
28
38
|
.describe("Filter to show only required checks (--required)"),
|
|
29
|
-
compact: z
|
|
30
|
-
.boolean()
|
|
31
|
-
.optional()
|
|
32
|
-
.default(true)
|
|
33
|
-
.describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
|
|
39
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
34
40
|
},
|
|
35
41
|
outputSchema: PrChecksResultSchema,
|
|
36
42
|
}, async ({ number, repo, watch, required, compact }) => {
|
|
@@ -51,9 +57,29 @@ export function registerPrChecksTool(server) {
|
|
|
51
57
|
const result = await ghCmd(args);
|
|
52
58
|
// Exit code 8 means checks are still pending — gh still returns valid JSON
|
|
53
59
|
if (result.exitCode !== 0 && result.exitCode !== 8) {
|
|
54
|
-
|
|
60
|
+
const combined = `${result.stdout}\n${result.stderr}`.trim();
|
|
61
|
+
return compactDualOutput({
|
|
62
|
+
pr: prNum,
|
|
63
|
+
checks: [],
|
|
64
|
+
summary: { total: 0, passed: 0, failed: 0, pending: 0, skipped: 0, cancelled: 0 },
|
|
65
|
+
errorType: classifyPrChecksError(combined),
|
|
66
|
+
errorMessage: combined || "gh pr checks failed",
|
|
67
|
+
}, result.stdout, formatPrChecks, compactPrChecksMap, formatPrChecksCompact, compact === false);
|
|
68
|
+
}
|
|
69
|
+
let data;
|
|
70
|
+
try {
|
|
71
|
+
data = parsePrChecks(result.stdout, prNum);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
const combined = `${result.stdout}\n${result.stderr}`.trim();
|
|
75
|
+
return compactDualOutput({
|
|
76
|
+
pr: prNum,
|
|
77
|
+
checks: [],
|
|
78
|
+
summary: { total: 0, passed: 0, failed: 0, pending: 0, skipped: 0, cancelled: 0 },
|
|
79
|
+
errorType: "unknown",
|
|
80
|
+
errorMessage: combined || "Failed to parse pr checks output",
|
|
81
|
+
}, result.stdout, formatPrChecks, compactPrChecksMap, formatPrChecksCompact, compact === false);
|
|
55
82
|
}
|
|
56
|
-
const data = parsePrChecks(result.stdout, prNum);
|
|
57
83
|
return compactDualOutput(data, result.stdout, formatPrChecks, compactPrChecksMap, formatPrChecksCompact, compact === false);
|
|
58
84
|
});
|
|
59
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-checks.js","sourceRoot":"","sources":["../../src/tools/pr-checks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,gBAAgB,GAAG,yEAAyE,CAAC;AAEnG,8DAA8D;AAC9D,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,WAAW;QAClB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"pr-checks.js","sourceRoot":"","sources":["../../src/tools/pr-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-comment.d.ts","sourceRoot":"","sources":["../../src/tools/pr-comment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"pr-comment.d.ts","sourceRoot":"","sources":["../../src/tools/pr-comment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBzE,+DAA+D;AAC/D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QAyEtD"}
|