autoproject-mcp 1.0.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/README.md +135 -0
- package/dist/client.d.ts +14 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +62 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +188 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/index.d.ts +14 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +128 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/resources/index.d.ts +21 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +81 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/tools/applicationTools.d.ts +24 -0
- package/dist/tools/applicationTools.d.ts.map +1 -0
- package/dist/tools/applicationTools.js +160 -0
- package/dist/tools/applicationTools.js.map +1 -0
- package/dist/tools/copilotTools.d.ts +8 -0
- package/dist/tools/copilotTools.d.ts.map +1 -0
- package/dist/tools/copilotTools.js +55 -0
- package/dist/tools/copilotTools.js.map +1 -0
- package/dist/tools/defectTools.d.ts +8 -0
- package/dist/tools/defectTools.d.ts.map +1 -0
- package/dist/tools/defectTools.js +144 -0
- package/dist/tools/defectTools.js.map +1 -0
- package/dist/tools/documentTools.d.ts +18 -0
- package/dist/tools/documentTools.d.ts.map +1 -0
- package/dist/tools/documentTools.js +146 -0
- package/dist/tools/documentTools.js.map +1 -0
- package/dist/tools/evidenceTools.d.ts +8 -0
- package/dist/tools/evidenceTools.d.ts.map +1 -0
- package/dist/tools/evidenceTools.js +63 -0
- package/dist/tools/evidenceTools.js.map +1 -0
- package/dist/tools/hierarchyTools.d.ts +8 -0
- package/dist/tools/hierarchyTools.d.ts.map +1 -0
- package/dist/tools/hierarchyTools.js +86 -0
- package/dist/tools/hierarchyTools.js.map +1 -0
- package/dist/tools/importTools.d.ts +22 -0
- package/dist/tools/importTools.d.ts.map +1 -0
- package/dist/tools/importTools.js +145 -0
- package/dist/tools/importTools.js.map +1 -0
- package/dist/tools/launchPlanTools.d.ts +19 -0
- package/dist/tools/launchPlanTools.d.ts.map +1 -0
- package/dist/tools/launchPlanTools.js +319 -0
- package/dist/tools/launchPlanTools.js.map +1 -0
- package/dist/tools/productTools.d.ts +8 -0
- package/dist/tools/productTools.d.ts.map +1 -0
- package/dist/tools/productTools.js +80 -0
- package/dist/tools/productTools.js.map +1 -0
- package/dist/tools/releaseCycleLinkTools.d.ts +24 -0
- package/dist/tools/releaseCycleLinkTools.d.ts.map +1 -0
- package/dist/tools/releaseCycleLinkTools.js +174 -0
- package/dist/tools/releaseCycleLinkTools.js.map +1 -0
- package/dist/tools/screenTools.d.ts +12 -0
- package/dist/tools/screenTools.d.ts.map +1 -0
- package/dist/tools/screenTools.js +125 -0
- package/dist/tools/screenTools.js.map +1 -0
- package/dist/tools/testTools.d.ts +8 -0
- package/dist/tools/testTools.d.ts.map +1 -0
- package/dist/tools/testTools.js +91 -0
- package/dist/tools/testTools.js.map +1 -0
- package/dist/tools/ticketTools.d.ts +18 -0
- package/dist/tools/ticketTools.d.ts.map +1 -0
- package/dist/tools/ticketTools.js +138 -0
- package/dist/tools/ticketTools.js.map +1 -0
- package/dist/tools/todoTools.d.ts +8 -0
- package/dist/tools/todoTools.d.ts.map +1 -0
- package/dist/tools/todoTools.js +104 -0
- package/dist/tools/todoTools.js.map +1 -0
- package/dist/tools/useCaseTools.d.ts +8 -0
- package/dist/tools/useCaseTools.d.ts.map +1 -0
- package/dist/tools/useCaseTools.js +238 -0
- package/dist/tools/useCaseTools.js.map +1 -0
- package/dist/tools/workTools.d.ts +8 -0
- package/dist/tools/workTools.d.ts.map +1 -0
- package/dist/tools/workTools.js +99 -0
- package/dist/tools/workTools.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"releaseCycleLinkTools.js","sourceRoot":"","sources":["../../src/tools/releaseCycleLinkTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tools: UI Blueprint screen management
|
|
3
|
+
* Tools: list_screens, get_screen, create_screen, update_screen, delete_screen
|
|
4
|
+
*
|
|
5
|
+
* Screens belong to an application's UI blueprint. A screen's "page URL" is the
|
|
6
|
+
* `pageUrl` field (the screen route). Agents address screens by applicationId;
|
|
7
|
+
* use list_applications first to discover application IDs.
|
|
8
|
+
*/
|
|
9
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
10
|
+
export declare const screenToolDefinitions: Tool[];
|
|
11
|
+
export declare function handleScreenTool(name: string, args: Record<string, unknown>): Promise<unknown>;
|
|
12
|
+
//# sourceMappingURL=screenTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenTools.d.ts","sourceRoot":"","sources":["../../src/tools/screenTools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG1D,eAAO,MAAM,qBAAqB,EAAE,IAAI,EA6EvC,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oBAiCjF"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Tools: UI Blueprint screen management
|
|
4
|
+
* Tools: list_screens, get_screen, create_screen, update_screen, delete_screen
|
|
5
|
+
*
|
|
6
|
+
* Screens belong to an application's UI blueprint. A screen's "page URL" is the
|
|
7
|
+
* `pageUrl` field (the screen route). Agents address screens by applicationId;
|
|
8
|
+
* use list_applications first to discover application IDs.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.screenToolDefinitions = void 0;
|
|
12
|
+
exports.handleScreenTool = handleScreenTool;
|
|
13
|
+
const client_js_1 = require("../client.js");
|
|
14
|
+
exports.screenToolDefinitions = [
|
|
15
|
+
{
|
|
16
|
+
name: 'list_screens',
|
|
17
|
+
description: "List all screens in an application's UI blueprint, including each screen's page URL (route), "
|
|
18
|
+
+ 'type, and status. Use list_applications first to get the applicationId.',
|
|
19
|
+
inputSchema: {
|
|
20
|
+
type: 'object',
|
|
21
|
+
properties: {
|
|
22
|
+
productId: { type: 'string', description: 'Product ID' },
|
|
23
|
+
applicationId: { type: 'string', description: 'Application ID (the app whose blueprint screens to list)' },
|
|
24
|
+
},
|
|
25
|
+
required: ['productId', 'applicationId'],
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'get_screen',
|
|
30
|
+
description: 'Get a single screen including its page URL (route), type, status, and description.',
|
|
31
|
+
inputSchema: {
|
|
32
|
+
type: 'object',
|
|
33
|
+
properties: {
|
|
34
|
+
productId: { type: 'string', description: 'Product ID' },
|
|
35
|
+
applicationId: { type: 'string', description: 'Application ID' },
|
|
36
|
+
screenId: { type: 'string', description: 'Screen ID' },
|
|
37
|
+
},
|
|
38
|
+
required: ['productId', 'applicationId', 'screenId'],
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'create_screen',
|
|
43
|
+
description: "Add a new screen to an application's UI blueprint, optionally with its page URL (route).",
|
|
44
|
+
inputSchema: {
|
|
45
|
+
type: 'object',
|
|
46
|
+
properties: {
|
|
47
|
+
productId: { type: 'string', description: 'Product ID' },
|
|
48
|
+
applicationId: { type: 'string', description: 'Application ID' },
|
|
49
|
+
name: { type: 'string', description: 'Screen name' },
|
|
50
|
+
pageUrl: { type: 'string', description: 'Page URL / route for the screen (e.g. /dashboard)' },
|
|
51
|
+
description: { type: 'string', description: 'Optional screen description' },
|
|
52
|
+
screenType: { type: 'string', description: 'Optional screen type (default CUSTOM)' },
|
|
53
|
+
status: { type: 'string', description: 'Optional initial status' },
|
|
54
|
+
parentScreenId: { type: 'string', description: 'Optional parent screen ID to nest under a container' },
|
|
55
|
+
},
|
|
56
|
+
required: ['productId', 'applicationId', 'name'],
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'update_screen',
|
|
61
|
+
description: 'Update an existing screen β most commonly to set or change its page URL (route). '
|
|
62
|
+
+ 'You can also update name, description, or status. Only provided fields are changed.',
|
|
63
|
+
inputSchema: {
|
|
64
|
+
type: 'object',
|
|
65
|
+
properties: {
|
|
66
|
+
productId: { type: 'string', description: 'Product ID' },
|
|
67
|
+
applicationId: { type: 'string', description: 'Application ID' },
|
|
68
|
+
screenId: { type: 'string', description: 'Screen ID' },
|
|
69
|
+
pageUrl: { type: 'string', description: 'New page URL / route for the screen' },
|
|
70
|
+
name: { type: 'string', description: 'New screen name' },
|
|
71
|
+
description: { type: 'string', description: 'New screen description' },
|
|
72
|
+
status: { type: 'string', description: 'New status' },
|
|
73
|
+
},
|
|
74
|
+
required: ['productId', 'applicationId', 'screenId'],
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: 'delete_screen',
|
|
79
|
+
description: 'Delete a screen from an application UI blueprint (soft delete; cascades to child screens).',
|
|
80
|
+
inputSchema: {
|
|
81
|
+
type: 'object',
|
|
82
|
+
properties: {
|
|
83
|
+
productId: { type: 'string', description: 'Product ID' },
|
|
84
|
+
applicationId: { type: 'string', description: 'Application ID' },
|
|
85
|
+
screenId: { type: 'string', description: 'Screen ID' },
|
|
86
|
+
},
|
|
87
|
+
required: ['productId', 'applicationId', 'screenId'],
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
];
|
|
91
|
+
async function handleScreenTool(name, args) {
|
|
92
|
+
const base = `/products/${args.productId}/applications/${args.applicationId}/screens`;
|
|
93
|
+
switch (name) {
|
|
94
|
+
case 'list_screens': {
|
|
95
|
+
return await (0, client_js_1.apiGet)(base);
|
|
96
|
+
}
|
|
97
|
+
case 'get_screen': {
|
|
98
|
+
return await (0, client_js_1.apiGet)(`${base}/${args.screenId}`);
|
|
99
|
+
}
|
|
100
|
+
case 'create_screen': {
|
|
101
|
+
return await (0, client_js_1.apiPost)(base, {
|
|
102
|
+
name: args.name,
|
|
103
|
+
pageUrl: args.pageUrl,
|
|
104
|
+
description: args.description,
|
|
105
|
+
screenType: args.screenType,
|
|
106
|
+
status: args.status,
|
|
107
|
+
parentScreenId: args.parentScreenId,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
case 'update_screen': {
|
|
111
|
+
return await (0, client_js_1.apiPatch)(`${base}/${args.screenId}`, {
|
|
112
|
+
pageUrl: args.pageUrl,
|
|
113
|
+
name: args.name,
|
|
114
|
+
description: args.description,
|
|
115
|
+
status: args.status,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
case 'delete_screen': {
|
|
119
|
+
return await (0, client_js_1.apiDelete)(`${base}/${args.screenId}`);
|
|
120
|
+
}
|
|
121
|
+
default:
|
|
122
|
+
throw new Error(`Unknown screen tool: ${name}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=screenTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenTools.js","sourceRoot":"","sources":["../../src/tools/screenTools.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAoFH,4CAiCC;AAlHD,4CAAoE;AAEvD,QAAA,qBAAqB,GAAW;IAC3C;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,+FAA+F;cAC7F,yEAAyE;QAC7E,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;gBACxD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0DAA0D,EAAE;aAC3G;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC;SACzC;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,oFAAoF;QACjG,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;gBACxD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;gBAChE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;aACvD;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC;SACrD;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,0FAA0F;QACvG,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;gBACxD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;gBAChE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE;gBACpD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mDAAmD,EAAE;gBAC7F,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;gBAC3E,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;gBACpF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBAClE,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qDAAqD,EAAE;aACvG;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,CAAC;SACjD;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,mFAAmF;cAC5F,qFAAqF;QACzF,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;gBACxD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;gBAChE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;gBACtD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;gBAC/E,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;gBACxD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBACtE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;aACtD;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC;SACrD;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,4FAA4F;QACzG,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;gBACxD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;gBAChE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;aACvD;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC;SACrD;KACF;CACF,CAAC;AAEK,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAA6B;IAChF,MAAM,IAAI,GAAG,aAAa,IAAI,CAAC,SAAS,iBAAiB,IAAI,CAAC,aAAa,UAAU,CAAC;IACtF,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,OAAO,MAAM,IAAA,kBAAM,EAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,OAAO,MAAM,IAAA,kBAAM,EAAC,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,OAAO,MAAM,IAAA,mBAAO,EAAC,IAAI,EAAE;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,cAAc,EAAE,IAAI,CAAC,cAAc;aACpC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,OAAO,MAAM,IAAA,oBAAQ,EAAC,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;gBAChD,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;QACL,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,OAAO,MAAM,IAAA,qBAAS,EAAC,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tools: Test management
|
|
3
|
+
* Tools: list_test_scripts, record_test_result, suggest_tests
|
|
4
|
+
*/
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
export declare const testToolDefinitions: Tool[];
|
|
7
|
+
export declare function handleTestTool(name: string, args: Record<string, unknown>): Promise<unknown>;
|
|
8
|
+
//# sourceMappingURL=testTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testTools.d.ts","sourceRoot":"","sources":["../../src/tools/testTools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG1D,eAAO,MAAM,mBAAmB,EAAE,IAAI,EAqDrC,CAAC;AAEF,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oBA0B/E"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Tools: Test management
|
|
4
|
+
* Tools: list_test_scripts, record_test_result, suggest_tests
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.testToolDefinitions = void 0;
|
|
8
|
+
exports.handleTestTool = handleTestTool;
|
|
9
|
+
const client_js_1 = require("../client.js");
|
|
10
|
+
exports.testToolDefinitions = [
|
|
11
|
+
{
|
|
12
|
+
name: 'list_test_scripts',
|
|
13
|
+
description: 'List test scripts for a product or feature.',
|
|
14
|
+
inputSchema: {
|
|
15
|
+
type: 'object',
|
|
16
|
+
properties: {
|
|
17
|
+
productId: { type: 'string', description: 'Product ID' },
|
|
18
|
+
featureId: { type: 'string', description: 'Filter by feature ID (optional)' },
|
|
19
|
+
status: { type: 'string', description: 'Filter by status' },
|
|
20
|
+
limit: { type: 'number', description: 'Max results' },
|
|
21
|
+
},
|
|
22
|
+
required: ['productId'],
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: 'record_test_result',
|
|
27
|
+
description: 'Record the result of a test execution (PASS, FAIL, or SKIP).',
|
|
28
|
+
inputSchema: {
|
|
29
|
+
type: 'object',
|
|
30
|
+
properties: {
|
|
31
|
+
productId: { type: 'string', description: 'Product ID' },
|
|
32
|
+
testScriptId: { type: 'string', description: 'Test script ID' },
|
|
33
|
+
status: { type: 'string', enum: ['PASS', 'FAIL', 'SKIP'], description: 'Test result' },
|
|
34
|
+
executionNote: { type: 'string', description: 'Notes about the test run' },
|
|
35
|
+
defectId: { type: 'string', description: 'Linked defect ID if FAIL (optional)' },
|
|
36
|
+
},
|
|
37
|
+
required: ['productId', 'testScriptId', 'status'],
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'suggest_tests',
|
|
42
|
+
description: 'Create draft test script suggestions based on feature analysis.',
|
|
43
|
+
inputSchema: {
|
|
44
|
+
type: 'object',
|
|
45
|
+
properties: {
|
|
46
|
+
productId: { type: 'string', description: 'Product ID' },
|
|
47
|
+
featureId: { type: 'string', description: 'Feature ID to create test suggestions for' },
|
|
48
|
+
suggestions: {
|
|
49
|
+
type: 'array',
|
|
50
|
+
description: 'Array of test suggestions',
|
|
51
|
+
items: {
|
|
52
|
+
type: 'object',
|
|
53
|
+
properties: {
|
|
54
|
+
name: { type: 'string' },
|
|
55
|
+
description: { type: 'string' },
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
required: ['productId', 'suggestions'],
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
async function handleTestTool(name, args) {
|
|
65
|
+
switch (name) {
|
|
66
|
+
case 'list_test_scripts': {
|
|
67
|
+
return await (0, client_js_1.apiGet)(`/products/${args.productId}/test-scripts`, {
|
|
68
|
+
featureId: args.featureId,
|
|
69
|
+
status: args.status,
|
|
70
|
+
limit: args.limit,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
case 'record_test_result': {
|
|
74
|
+
return await (0, client_js_1.apiPost)(`/products/${args.productId}/test-results`, {
|
|
75
|
+
testScriptId: args.testScriptId,
|
|
76
|
+
status: args.status,
|
|
77
|
+
executionNote: args.executionNote,
|
|
78
|
+
defectId: args.defectId,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
case 'suggest_tests': {
|
|
82
|
+
return await (0, client_js_1.apiPost)(`/products/${args.productId}/test-suggestions`, {
|
|
83
|
+
featureId: args.featureId,
|
|
84
|
+
suggestions: args.suggestions,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
default:
|
|
88
|
+
throw new Error(`Unknown test tool: ${name}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=testTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testTools.js","sourceRoot":"","sources":["../../src/tools/testTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tools: Support Ticket Management
|
|
3
|
+
*
|
|
4
|
+
* Provides 3 tools for reading and updating support tickets via the AutoProject Agent API.
|
|
5
|
+
*
|
|
6
|
+
* Statuses: OPEN β TRIAGED β IN_PROGRESS β WAITING_ON_REQUESTER | WAITING_ON_INTERNAL β RESOLVED β CLOSED | REOPENED
|
|
7
|
+
* Priorities: LOW, MEDIUM, HIGH, URGENT
|
|
8
|
+
* Categories: REQUEST, BUG, INCIDENT, QUESTION
|
|
9
|
+
*/
|
|
10
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
11
|
+
export declare const ticketToolDefinitions: Tool[];
|
|
12
|
+
export declare function handleTicketTool(toolName: string, args: Record<string, unknown>): Promise<{
|
|
13
|
+
content: {
|
|
14
|
+
type: string;
|
|
15
|
+
text: string;
|
|
16
|
+
}[];
|
|
17
|
+
}>;
|
|
18
|
+
//# sourceMappingURL=ticketTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ticketTools.d.ts","sourceRoot":"","sources":["../../src/tools/ticketTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAK1D,eAAO,MAAM,qBAAqB,EAAE,IAAI,EAgEvC,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;GA+DrF"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Tools: Support Ticket Management
|
|
4
|
+
*
|
|
5
|
+
* Provides 3 tools for reading and updating support tickets via the AutoProject Agent API.
|
|
6
|
+
*
|
|
7
|
+
* Statuses: OPEN β TRIAGED β IN_PROGRESS β WAITING_ON_REQUESTER | WAITING_ON_INTERNAL β RESOLVED β CLOSED | REOPENED
|
|
8
|
+
* Priorities: LOW, MEDIUM, HIGH, URGENT
|
|
9
|
+
* Categories: REQUEST, BUG, INCIDENT, QUESTION
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ticketToolDefinitions = void 0;
|
|
13
|
+
exports.handleTicketTool = handleTicketTool;
|
|
14
|
+
const client_js_1 = require("../client.js");
|
|
15
|
+
const DEFAULT_PRODUCT_ID = process.env.AUTOPROJECT_PRODUCT_ID ?? '';
|
|
16
|
+
exports.ticketToolDefinitions = [
|
|
17
|
+
{
|
|
18
|
+
name: 'list_tickets',
|
|
19
|
+
description: 'List support tickets for a product. Supports filtering by status, priority, category, and free-text search.',
|
|
20
|
+
inputSchema: {
|
|
21
|
+
type: 'object',
|
|
22
|
+
properties: {
|
|
23
|
+
productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
|
|
24
|
+
status: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
enum: ['OPEN', 'TRIAGED', 'IN_PROGRESS', 'WAITING_ON_REQUESTER', 'WAITING_ON_INTERNAL', 'RESOLVED', 'CLOSED', 'REOPENED'],
|
|
27
|
+
description: 'Filter by status.',
|
|
28
|
+
},
|
|
29
|
+
priority: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
enum: ['LOW', 'MEDIUM', 'HIGH', 'URGENT'],
|
|
32
|
+
description: 'Filter by priority.',
|
|
33
|
+
},
|
|
34
|
+
category: {
|
|
35
|
+
type: 'string',
|
|
36
|
+
enum: ['REQUEST', 'BUG', 'INCIDENT', 'QUESTION'],
|
|
37
|
+
description: 'Filter by category.',
|
|
38
|
+
},
|
|
39
|
+
search: { type: 'string', description: 'Full-text search on subject/description.' },
|
|
40
|
+
page: { type: 'number', description: 'Page number (1-based). Default: 1.' },
|
|
41
|
+
pageSize: { type: 'number', description: 'Results per page. Default: 20.' },
|
|
42
|
+
},
|
|
43
|
+
required: [],
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'get_ticket',
|
|
48
|
+
description: 'Get full detail of a support ticket including requester, assignee, and resolution note.',
|
|
49
|
+
inputSchema: {
|
|
50
|
+
type: 'object',
|
|
51
|
+
properties: {
|
|
52
|
+
productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
|
|
53
|
+
ticketId: { type: 'string', description: 'Ticket UUID.' },
|
|
54
|
+
},
|
|
55
|
+
required: ['ticketId'],
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'update_ticket_status',
|
|
60
|
+
description: 'Transition a support ticket to a new status. ' +
|
|
61
|
+
'Allowed flow: OPEN β TRIAGED β IN_PROGRESS β WAITING_ON_REQUESTER | WAITING_ON_INTERNAL β RESOLVED β CLOSED. ' +
|
|
62
|
+
'REOPENED is reachable from RESOLVED or CLOSED. Transitions are validated by the server.',
|
|
63
|
+
inputSchema: {
|
|
64
|
+
type: 'object',
|
|
65
|
+
properties: {
|
|
66
|
+
productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
|
|
67
|
+
ticketId: { type: 'string', description: 'Ticket UUID.' },
|
|
68
|
+
status: {
|
|
69
|
+
type: 'string',
|
|
70
|
+
enum: ['OPEN', 'TRIAGED', 'IN_PROGRESS', 'WAITING_ON_REQUESTER', 'WAITING_ON_INTERNAL', 'RESOLVED', 'CLOSED', 'REOPENED'],
|
|
71
|
+
description: 'Target status.',
|
|
72
|
+
},
|
|
73
|
+
resolutionNote: { type: 'string', description: 'Optional resolution note (recommended when moving to RESOLVED).' },
|
|
74
|
+
},
|
|
75
|
+
required: ['ticketId', 'status'],
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
];
|
|
79
|
+
async function handleTicketTool(toolName, args) {
|
|
80
|
+
const productId = args.productId || DEFAULT_PRODUCT_ID;
|
|
81
|
+
if (!productId) {
|
|
82
|
+
return { content: [{ type: 'text', text: 'Error: productId is required (or set AUTOPROJECT_PRODUCT_ID env).' }] };
|
|
83
|
+
}
|
|
84
|
+
const ticketId = args.ticketId;
|
|
85
|
+
switch (toolName) {
|
|
86
|
+
case 'list_tickets': {
|
|
87
|
+
const params = {};
|
|
88
|
+
if (args.status)
|
|
89
|
+
params.status = args.status;
|
|
90
|
+
if (args.priority)
|
|
91
|
+
params.priority = args.priority;
|
|
92
|
+
if (args.category)
|
|
93
|
+
params.category = args.category;
|
|
94
|
+
if (args.search)
|
|
95
|
+
params.search = args.search;
|
|
96
|
+
if (args.page)
|
|
97
|
+
params.page = args.page;
|
|
98
|
+
if (args.pageSize)
|
|
99
|
+
params.pageSize = args.pageSize;
|
|
100
|
+
const data = await (0, client_js_1.apiGet)(`/products/${productId}/tickets`, params);
|
|
101
|
+
const items = data?.items ?? [];
|
|
102
|
+
const total = data?.total ?? items.length;
|
|
103
|
+
if (items.length === 0) {
|
|
104
|
+
return { content: [{ type: 'text', text: 'No tickets found.' }] };
|
|
105
|
+
}
|
|
106
|
+
const lines = items.map((t) => `[${t.id}] ${t.ticketKey ?? 'SUP-?'} | ${t.priority} | ${t.status} | ${t.category}\n Subject: ${t.subject}`);
|
|
107
|
+
return { content: [{ type: 'text', text: `Tickets (${items.length} of ${total}):\n${lines.join('\n')}` }] };
|
|
108
|
+
}
|
|
109
|
+
case 'get_ticket': {
|
|
110
|
+
if (!ticketId)
|
|
111
|
+
return { content: [{ type: 'text', text: 'Error: ticketId is required.' }] };
|
|
112
|
+
const data = await (0, client_js_1.apiGet)(`/products/${productId}/tickets/${ticketId}`);
|
|
113
|
+
const t = data;
|
|
114
|
+
const text = `Ticket: ${t.ticketKey ?? 'SUP-?'} β ${t.subject}\n` +
|
|
115
|
+
`ID: ${t.id}\n` +
|
|
116
|
+
`Status: ${t.status} | Priority: ${t.priority} | Category: ${t.category}\n` +
|
|
117
|
+
`Requester: ${t.requesterName ?? 'N/A'} (${t.requesterEmail ?? 'N/A'})\n` +
|
|
118
|
+
`Assignee ID: ${t.assigneeId ?? 'unassigned'}\n` +
|
|
119
|
+
`Due: ${t.dueAt ?? 'N/A'}\n` +
|
|
120
|
+
`Description: ${t.description ?? 'N/A'}\n` +
|
|
121
|
+
`Resolution: ${t.resolutionNote ?? 'N/A'}`;
|
|
122
|
+
return { content: [{ type: 'text', text }] };
|
|
123
|
+
}
|
|
124
|
+
case 'update_ticket_status': {
|
|
125
|
+
if (!ticketId)
|
|
126
|
+
return { content: [{ type: 'text', text: 'Error: ticketId is required.' }] };
|
|
127
|
+
const body = { status: args.status };
|
|
128
|
+
if (args.resolutionNote !== undefined)
|
|
129
|
+
body.resolutionNote = args.resolutionNote;
|
|
130
|
+
const data = await (0, client_js_1.apiPatch)(`/products/${productId}/tickets/${ticketId}/status`, body);
|
|
131
|
+
const t = data;
|
|
132
|
+
return { content: [{ type: 'text', text: `Ticket status updated.\nID: ${t.id}\nNew status: ${t.status}` }] };
|
|
133
|
+
}
|
|
134
|
+
default:
|
|
135
|
+
return { content: [{ type: 'text', text: `Unknown ticket tool: ${toolName}` }] };
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=ticketTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ticketTools.js","sourceRoot":"","sources":["../../src/tools/ticketTools.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAyEH,4CA+DC;AArID,4CAAgD;AAEhD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;AAEvD,QAAA,qBAAqB,GAAW;IAC3C;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,6GAA6G;QAC/G,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uDAAuD,EAAE;gBACnG,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC;oBACzH,WAAW,EAAE,mBAAmB;iBACjC;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;oBACzC,WAAW,EAAE,qBAAqB;iBACnC;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC;oBAChD,WAAW,EAAE,qBAAqB;iBACnC;gBACD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;gBACnF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;gBAC3E,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;aAC5E;YACD,QAAQ,EAAE,EAAE;SACb;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,yFAAyF;QACtG,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uDAAuD,EAAE;gBACnG,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;aAC1D;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACT,+CAA+C;YAC/C,+GAA+G;YAC/G,yFAAyF;QAC3F,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uDAAuD,EAAE;gBACnG,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;gBACzD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC;oBACzH,WAAW,EAAE,gBAAgB;iBAC9B;gBACD,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iEAAiE,EAAE;aACnH;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;SACjC;KACF;CACF,CAAC;AAEK,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,IAA6B;IACpF,MAAM,SAAS,GAAI,IAAI,CAAC,SAAgC,IAAI,kBAAkB,CAAC;IAC/E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mEAAmE,EAAE,CAAC,EAAE,CAAC;IACpH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;IAErD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7C,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACnD,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACnD,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7C,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvC,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAEnD,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAM,EAAM,aAAa,SAAS,UAAU,EAAE,MAAM,CAAC,CAAC;YACzE,MAAM,KAAK,GAA8B,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAW,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;YAElD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;YACpE,CAAC;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5B,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,QAAQ,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAC7G,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,KAAK,CAAC,MAAM,OAAO,KAAK,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC9G,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC,EAAE,CAAC;YAE5F,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAM,EAAM,aAAa,SAAS,YAAY,QAAQ,EAAE,CAAC,CAAC;YAC7E,MAAM,CAAC,GAAG,IAAI,CAAC;YACf,MAAM,IAAI,GACR,WAAW,CAAC,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,CAAC,OAAO,IAAI;gBACpD,OAAO,CAAC,CAAC,EAAE,IAAI;gBACf,WAAW,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,QAAQ,gBAAgB,CAAC,CAAC,QAAQ,IAAI;gBAC3E,cAAc,CAAC,CAAC,aAAa,IAAI,KAAK,KAAK,CAAC,CAAC,cAAc,IAAI,KAAK,KAAK;gBACzE,gBAAgB,CAAC,CAAC,UAAU,IAAI,YAAY,IAAI;gBAChD,QAAQ,CAAC,CAAC,KAAK,IAAI,KAAK,IAAI;gBAC5B,gBAAgB,CAAC,CAAC,WAAW,IAAI,KAAK,IAAI;gBAC1C,eAAe,CAAC,CAAC,cAAc,IAAI,KAAK,EAAE,CAAC;YAC7C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/C,CAAC;QAED,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC,EAAE,CAAC;YAE5F,MAAM,IAAI,GAA4B,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9D,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;gBAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAEjF,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAQ,EAAM,aAAa,SAAS,YAAY,QAAQ,SAAS,EAAE,IAAI,CAAC,CAAC;YAC5F,MAAM,CAAC,GAAG,IAAI,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAC/G,CAAC;QAED;YACE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;IACrF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tools: Todo (UserTask) management
|
|
3
|
+
* Tools: list_todos, update_todo_status
|
|
4
|
+
*/
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
export declare const todoToolDefinitions: Tool[];
|
|
7
|
+
export declare function handleTodoTool(name: string, args: Record<string, unknown>): Promise<unknown>;
|
|
8
|
+
//# sourceMappingURL=todoTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todoTools.d.ts","sourceRoot":"","sources":["../../src/tools/todoTools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAS1D,eAAO,MAAM,mBAAmB,EAAE,IAAI,EA0CrC,CAAC;AAUF,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAiDlG"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Tools: Todo (UserTask) management
|
|
4
|
+
* Tools: list_todos, update_todo_status
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.todoToolDefinitions = void 0;
|
|
8
|
+
exports.handleTodoTool = handleTodoTool;
|
|
9
|
+
const client_js_1 = require("../client.js");
|
|
10
|
+
const PRODUCT_ID = process.env.AUTOPROJECT_PRODUCT_ID ?? '';
|
|
11
|
+
function resolveProductId(args) {
|
|
12
|
+
return args.productId || PRODUCT_ID;
|
|
13
|
+
}
|
|
14
|
+
exports.todoToolDefinitions = [
|
|
15
|
+
{
|
|
16
|
+
name: 'list_todos',
|
|
17
|
+
description: 'List todos (action items / user tasks) for a product. Supports filtering by status and priority. ' +
|
|
18
|
+
'Statuses: PENDING, IN_PROGRESS, COMPLETED, CANCELLED, ON_HOLD.',
|
|
19
|
+
inputSchema: {
|
|
20
|
+
type: 'object',
|
|
21
|
+
properties: {
|
|
22
|
+
productId: { type: 'string', description: 'Product ID (falls back to AUTOPROJECT_PRODUCT_ID env var)' },
|
|
23
|
+
status: {
|
|
24
|
+
type: 'string',
|
|
25
|
+
enum: ['PENDING', 'IN_PROGRESS', 'COMPLETED', 'CANCELLED', 'ON_HOLD'],
|
|
26
|
+
description: 'Filter by status',
|
|
27
|
+
},
|
|
28
|
+
priority: { type: 'string', description: 'Filter by priority (e.g. HIGH, NORMAL, LOW)' },
|
|
29
|
+
category: { type: 'string', description: 'Filter by category tag' },
|
|
30
|
+
limit: { type: 'number', description: 'Max results (default 50, max 200)' },
|
|
31
|
+
cursor: { type: 'string', description: 'Pagination cursor from previous response' },
|
|
32
|
+
},
|
|
33
|
+
required: [],
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'update_todo_status',
|
|
38
|
+
description: 'Update the status of a specific todo item for a product. ' +
|
|
39
|
+
'Valid statuses: PENDING, IN_PROGRESS, COMPLETED, CANCELLED, ON_HOLD.',
|
|
40
|
+
inputSchema: {
|
|
41
|
+
type: 'object',
|
|
42
|
+
properties: {
|
|
43
|
+
productId: { type: 'string', description: 'Product ID (falls back to AUTOPROJECT_PRODUCT_ID env var)' },
|
|
44
|
+
todoId: { type: 'string', description: 'Todo (UserTask) ID to update (required)' },
|
|
45
|
+
status: {
|
|
46
|
+
type: 'string',
|
|
47
|
+
enum: ['PENDING', 'IN_PROGRESS', 'COMPLETED', 'CANCELLED', 'ON_HOLD'],
|
|
48
|
+
description: 'New status (required)',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
required: ['todoId', 'status'],
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
const STATUS_EMOJI = {
|
|
56
|
+
PENDING: 'β³',
|
|
57
|
+
IN_PROGRESS: 'π',
|
|
58
|
+
COMPLETED: 'β
',
|
|
59
|
+
CANCELLED: 'β',
|
|
60
|
+
ON_HOLD: 'βΈοΈ',
|
|
61
|
+
};
|
|
62
|
+
async function handleTodoTool(name, args) {
|
|
63
|
+
const productId = resolveProductId(args);
|
|
64
|
+
switch (name) {
|
|
65
|
+
case 'list_todos': {
|
|
66
|
+
const params = {};
|
|
67
|
+
if (args.status)
|
|
68
|
+
params.status = args.status;
|
|
69
|
+
if (args.priority)
|
|
70
|
+
params.priority = args.priority;
|
|
71
|
+
if (args.category)
|
|
72
|
+
params.category = args.category;
|
|
73
|
+
if (args.limit)
|
|
74
|
+
params.limit = args.limit;
|
|
75
|
+
if (args.cursor)
|
|
76
|
+
params.cursor = args.cursor;
|
|
77
|
+
const result = await (0, client_js_1.apiGet)(`/products/${productId}/todos`, params);
|
|
78
|
+
const items = result.items ?? [];
|
|
79
|
+
if (!items.length) {
|
|
80
|
+
return 'No todos found for this product with the given filters.';
|
|
81
|
+
}
|
|
82
|
+
const lines = items.map((t, i) => {
|
|
83
|
+
const todo = t;
|
|
84
|
+
const emoji = STATUS_EMOJI[todo.status] ?? 'β’';
|
|
85
|
+
const due = todo.dueDate ? ` (due: ${String(todo.dueDate).split('T')[0]})` : '';
|
|
86
|
+
return `${i + 1}. ${emoji} [${todo.id}] **${todo.title}** β ${todo.status} | ${todo.priority}${due}`;
|
|
87
|
+
});
|
|
88
|
+
return [
|
|
89
|
+
`Found ${items.length} todo(s):`,
|
|
90
|
+
...lines,
|
|
91
|
+
result.nextCursor ? `\nNext cursor: ${result.nextCursor}` : '',
|
|
92
|
+
]
|
|
93
|
+
.filter(Boolean)
|
|
94
|
+
.join('\n');
|
|
95
|
+
}
|
|
96
|
+
case 'update_todo_status': {
|
|
97
|
+
const result = await (0, client_js_1.apiPatch)(`/products/${productId}/todos/${args.todoId}/status`, { status: args.status });
|
|
98
|
+
return `Todo ${result.id} status updated to ${result.status}.`;
|
|
99
|
+
}
|
|
100
|
+
default:
|
|
101
|
+
throw new Error(`Unknown todo tool: ${name}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=todoTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todoTools.js","sourceRoot":"","sources":["../../src/tools/todoTools.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA+DH,wCAiDC;AA7GD,4CAAgD;AAEhD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;AAE5D,SAAS,gBAAgB,CAAC,IAA6B;IACrD,OAAQ,IAAI,CAAC,SAAgC,IAAI,UAAU,CAAC;AAC9D,CAAC;AAEY,QAAA,mBAAmB,GAAW;IACzC;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,mGAAmG;YACnG,gEAAgE;QAClE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2DAA2D,EAAE;gBACvG,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC;oBACrE,WAAW,EAAE,kBAAkB;iBAChC;gBACD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE;gBACxF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBACnE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;gBAC3E,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;aACpF;YACD,QAAQ,EAAE,EAAE;SACb;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,2DAA2D;YAC3D,sEAAsE;QACxE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2DAA2D,EAAE;gBACvG,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;gBAClF,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC;oBACrE,WAAW,EAAE,uBAAuB;iBACrC;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;SAC/B;KACF;CACF,CAAC;AAEF,MAAM,YAAY,GAA2B;IAC3C,OAAO,EAAE,GAAG;IACZ,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,IAAI;CACd,CAAC;AAEK,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,IAA6B;IAC9E,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEzC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7C,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACnD,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACnD,IAAI,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1C,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAE7C,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAM,EACzB,aAAa,SAAS,QAAQ,EAC9B,MAAM,CACP,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YAEjC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,yDAAyD,CAAC;YACnE,CAAC;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,CAAS,EAAE,EAAE;gBAChD,MAAM,IAAI,GAAG,CAA4B,CAAC;gBAC1C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAgB,CAAC,IAAI,GAAG,CAAC;gBACzD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC;YACvG,CAAC,CAAC,CAAC;YAEH,OAAO;gBACL,SAAS,KAAK,CAAC,MAAM,WAAW;gBAChC,GAAG,KAAK;gBACR,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;aAC/D;iBACE,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAQ,EAC3B,aAAa,SAAS,UAAU,IAAI,CAAC,MAAM,SAAS,EACpD,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACxB,CAAC;YACF,OAAO,QAAQ,MAAM,CAAC,EAAE,sBAAsB,MAAM,CAAC,MAAM,GAAG,CAAC;QACjE,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tools: Use case management
|
|
3
|
+
* Tools: list_use_cases, get_use_case, create_use_case, update_use_case, change_use_case_status
|
|
4
|
+
*/
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
export declare const useCaseToolDefinitions: Tool[];
|
|
7
|
+
export declare function handleUseCaseTool(name: string, args: Record<string, unknown>): Promise<unknown>;
|
|
8
|
+
//# sourceMappingURL=useCaseTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCaseTools.d.ts","sourceRoot":"","sources":["../../src/tools/useCaseTools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAS1D,eAAO,MAAM,sBAAsB,EAAE,IAAI,EA2HxC,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAsGrG"}
|