wolfpack-mcp 1.0.16 → 1.0.18
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 +26 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -223,6 +223,18 @@ const CreateIssueCommentSchema = z.object({
|
|
|
223
223
|
issue_id: z.string().describe('The issue UUID'),
|
|
224
224
|
content: z.string().describe('Comment content (markdown)'),
|
|
225
225
|
});
|
|
226
|
+
// Helper to detect if a work item description contains a plan
|
|
227
|
+
function hasPlan(description) {
|
|
228
|
+
if (!description)
|
|
229
|
+
return false;
|
|
230
|
+
// Check for markdown checklist items (plan indicators)
|
|
231
|
+
if (/- \[[ x]\]/.test(description))
|
|
232
|
+
return true;
|
|
233
|
+
// Check for --- separator with content after (agent-added section)
|
|
234
|
+
if (/\n---\n/.test(description))
|
|
235
|
+
return true;
|
|
236
|
+
return false;
|
|
237
|
+
}
|
|
226
238
|
class WolfpackMCPServer {
|
|
227
239
|
server;
|
|
228
240
|
client;
|
|
@@ -246,12 +258,13 @@ class WolfpackMCPServer {
|
|
|
246
258
|
{
|
|
247
259
|
name: 'list_teams',
|
|
248
260
|
description: 'List all teams (projects) you have access to. ' +
|
|
261
|
+
'TERMINOLOGY: In this software, "team" and "project" are synonymous and interchangeable. All tool names and parameters use "team" (e.g., team_id), but the concepts are identical. ' +
|
|
249
262
|
'IMPORTANT - PROJECT FOCUS RULES: ' +
|
|
250
|
-
'1) Call this FIRST to identify which project you are working in. ' +
|
|
251
|
-
'2) Once you identify a
|
|
252
|
-
'3) NEVER perform bulk actions across multiple
|
|
253
|
-
'4) If the user mentions a specific project, use that
|
|
254
|
-
'5) If unclear which
|
|
263
|
+
'1) Call this FIRST to identify which team/project you are working in. ' +
|
|
264
|
+
'2) Once you identify a team, STAY WITHIN that team for all operations unless the user explicitly asks to switch. ' +
|
|
265
|
+
'3) NEVER perform bulk actions across multiple teams - always work in one team at a time. ' +
|
|
266
|
+
'4) If the user mentions a specific team or project, use that for all subsequent operations. ' +
|
|
267
|
+
'5) If unclear which team to use, ASK the user before proceeding. ' +
|
|
255
268
|
'Returns team IDs, slugs, and names. Single-team users have their team auto-selected; multi-team users must specify team_id in other tool calls.',
|
|
256
269
|
inputSchema: {
|
|
257
270
|
type: 'object',
|
|
@@ -790,8 +803,15 @@ class WolfpackMCPServer {
|
|
|
790
803
|
const parsed = GetWorkItemSchema.parse(args);
|
|
791
804
|
const workItem = await this.client.getWorkItem(parsed.work_item_id, parsed.team_id || this.client.getTeamId() || undefined);
|
|
792
805
|
if (workItem) {
|
|
806
|
+
let text = JSON.stringify(workItem, null, 2);
|
|
807
|
+
// Add hint if no plan detected in description
|
|
808
|
+
if (!hasPlan(workItem.description)) {
|
|
809
|
+
text =
|
|
810
|
+
'REMINDER: This work item has no plan. Before starting work, use update_work_progress to add a plan below a "---" separator. Preserve the original description and append your plan with markdown checkboxes (- [ ] task).\n\n' +
|
|
811
|
+
text;
|
|
812
|
+
}
|
|
793
813
|
return {
|
|
794
|
-
content: [{ type: 'text', text
|
|
814
|
+
content: [{ type: 'text', text }],
|
|
795
815
|
};
|
|
796
816
|
}
|
|
797
817
|
return {
|