wolfpack-mcp 1.0.91 → 1.0.92
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/client.js +3 -0
- package/dist/index.js +52 -1
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -252,6 +252,9 @@ export class WolfpackClient {
|
|
|
252
252
|
const query = params.toString();
|
|
253
253
|
return this.api.get(this.withTeamSlug(`/work-item-checks${query ? `?${query}` : ''}`, teamSlug));
|
|
254
254
|
}
|
|
255
|
+
async addWorkItemCheck(workItemId, body, teamSlug) {
|
|
256
|
+
return this.api.post(this.withTeamSlug(`/work-items/${workItemId}/checks`, teamSlug), body);
|
|
257
|
+
}
|
|
255
258
|
async claimWorkItemCheck(workItemId, checkId, teamSlug) {
|
|
256
259
|
return this.api.post(this.withTeamSlug(`/work-items/${workItemId}/checks/${checkId}/claim`, teamSlug), {});
|
|
257
260
|
}
|
package/dist/index.js
CHANGED
|
@@ -234,6 +234,18 @@ const ListWorkItemChecksSchema = z.object({
|
|
|
234
234
|
.optional()
|
|
235
235
|
.describe('Project slug (required for multi-project users, use list_projects to get slugs)'),
|
|
236
236
|
});
|
|
237
|
+
const AddWorkItemCheckSchema = z.object({
|
|
238
|
+
work_item_id: refIdString().describe('The refId of the work item'),
|
|
239
|
+
kind: z.string().describe('The check kind to add, e.g. security-review'),
|
|
240
|
+
comment: z
|
|
241
|
+
.string()
|
|
242
|
+
.optional()
|
|
243
|
+
.describe('Why the check is being requested — posted as a comment on the item'),
|
|
244
|
+
project_slug: z
|
|
245
|
+
.string()
|
|
246
|
+
.optional()
|
|
247
|
+
.describe('Project slug (required for multi-project users, use list_projects to get slugs)'),
|
|
248
|
+
});
|
|
237
249
|
const ClaimWorkItemCheckSchema = z.object({
|
|
238
250
|
work_item_id: refIdString().describe('The refId of the work item'),
|
|
239
251
|
check_id: z.string().describe('The check ID (from list_work_item_checks)'),
|
|
@@ -1096,7 +1108,8 @@ class WolfpackMCPServer {
|
|
|
1096
1108
|
'Checks on blocked items are left out — blocked work is not picked up, and claiming one is refused. ' +
|
|
1097
1109
|
'REVIEW WORKFLOW: claim a check with claim_work_item_check, get_work_item to read the work, review it, ' +
|
|
1098
1110
|
'then complete_work_item_check with "passed" or "failed" and a short summary. ' +
|
|
1099
|
-
'A failed check sends the item back to its developer with your summary as feedback; do not change the item status yourself.'
|
|
1111
|
+
'A failed check sends the item back to its developer with your summary as feedback; do not change the item status yourself. ' +
|
|
1112
|
+
'To request a further review of another kind on an item (e.g. security-review), use add_work_item_check.',
|
|
1100
1113
|
inputSchema: {
|
|
1101
1114
|
type: 'object',
|
|
1102
1115
|
properties: {
|
|
@@ -1120,6 +1133,31 @@ class WolfpackMCPServer {
|
|
|
1120
1133
|
},
|
|
1121
1134
|
},
|
|
1122
1135
|
},
|
|
1136
|
+
{
|
|
1137
|
+
name: 'add_work_item_check',
|
|
1138
|
+
description: 'Add a pending review check of a kind (e.g. security-review) to a work item you do not lead, so the reviewer that answers that kind picks it up from its inbox. ' +
|
|
1139
|
+
"Use it when a change touches a sensitive path and needs a second, specialised review. A case waiting on the item's checks keeps waiting until the new check is resolved. " +
|
|
1140
|
+
'Refused for a kind already pending on the item, for person-only kinds, and on your own work.',
|
|
1141
|
+
inputSchema: {
|
|
1142
|
+
type: 'object',
|
|
1143
|
+
properties: {
|
|
1144
|
+
work_item_id: { type: 'string', description: 'The refId of the work item' },
|
|
1145
|
+
kind: {
|
|
1146
|
+
type: 'string',
|
|
1147
|
+
description: 'The check kind to add, e.g. security-review',
|
|
1148
|
+
},
|
|
1149
|
+
comment: {
|
|
1150
|
+
type: 'string',
|
|
1151
|
+
description: 'Why the check is being requested — posted as a comment on the item',
|
|
1152
|
+
},
|
|
1153
|
+
project_slug: {
|
|
1154
|
+
type: 'string',
|
|
1155
|
+
description: 'Project slug (required for multi-project users, use list_projects to get slugs)',
|
|
1156
|
+
},
|
|
1157
|
+
},
|
|
1158
|
+
required: ['work_item_id', 'kind'],
|
|
1159
|
+
},
|
|
1160
|
+
},
|
|
1123
1161
|
{
|
|
1124
1162
|
name: 'claim_work_item_check',
|
|
1125
1163
|
description: 'Claim a pending, unclaimed review check on a work item so other reviewers know it is being handled. ' +
|
|
@@ -2506,6 +2544,19 @@ class WolfpackMCPServer {
|
|
|
2506
2544
|
: JSON.stringify(checks.map(formatWorkItemCheck), null, 2);
|
|
2507
2545
|
return { content: [{ type: 'text', text }] };
|
|
2508
2546
|
}
|
|
2547
|
+
case 'add_work_item_check': {
|
|
2548
|
+
const parsed = AddWorkItemCheckSchema.parse(args);
|
|
2549
|
+
const teamSlug = parsed.project_slug || this.client.getProjectSlug() || undefined;
|
|
2550
|
+
const check = await this.client.addWorkItemCheck(parsed.work_item_id, { kind: parsed.kind, comment: parsed.comment }, teamSlug);
|
|
2551
|
+
return {
|
|
2552
|
+
content: [
|
|
2553
|
+
{
|
|
2554
|
+
type: 'text',
|
|
2555
|
+
text: `Added ${check.kind} check to #${check.workItemRefId} "${check.workItemTitle}"\n\n${JSON.stringify(formatWorkItemCheck(check), null, 2)}`,
|
|
2556
|
+
},
|
|
2557
|
+
],
|
|
2558
|
+
};
|
|
2559
|
+
}
|
|
2509
2560
|
case 'claim_work_item_check': {
|
|
2510
2561
|
const parsed = ClaimWorkItemCheckSchema.parse(args);
|
|
2511
2562
|
const teamSlug = parsed.project_slug || this.client.getProjectSlug() || undefined;
|