autoproject-mcp 1.1.0 → 1.3.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 +56 -3
- package/dist/client.d.ts +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +19 -10
- package/dist/client.js.map +1 -1
- package/dist/index.js +53 -3
- package/dist/index.js.map +1 -1
- package/dist/prompts/index.d.ts +4 -1
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +76 -1
- package/dist/prompts/index.js.map +1 -1
- package/dist/tools/applicationTools.d.ts +5 -5
- package/dist/tools/applicationTools.js +43 -43
- package/dist/tools/applicationTools.js.map +1 -1
- package/dist/tools/documentTools.d.ts +9 -10
- package/dist/tools/documentTools.d.ts.map +1 -1
- package/dist/tools/documentTools.js +124 -66
- package/dist/tools/documentTools.js.map +1 -1
- package/dist/tools/hierarchyTools.d.ts +5 -1
- package/dist/tools/hierarchyTools.d.ts.map +1 -1
- package/dist/tools/hierarchyTools.js +82 -13
- package/dist/tools/hierarchyTools.js.map +1 -1
- package/dist/tools/releaseCycleLinkTools.d.ts +4 -4
- package/dist/tools/releaseCycleLinkTools.d.ts.map +1 -1
- package/dist/tools/releaseCycleLinkTools.js +60 -36
- package/dist/tools/releaseCycleLinkTools.js.map +1 -1
- package/dist/tools/screenTools.d.ts +9 -1
- package/dist/tools/screenTools.d.ts.map +1 -1
- package/dist/tools/screenTools.js +90 -21
- package/dist/tools/screenTools.js.map +1 -1
- package/dist/tools/useCaseTools.js +2 -2
- package/dist/tools/useCaseTools.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,8 @@ AutoProject MCP server for IDE agent integration.
|
|
|
6
6
|
|
|
7
7
|
### Option A — npm (once published)
|
|
8
8
|
```sh
|
|
9
|
-
npx autoproject-mcp
|
|
9
|
+
npx autoproject-mcp # starts MCP server (stdio — idle in terminal is normal)
|
|
10
|
+
npx autoproject-mcp --help # usage and environment variables
|
|
10
11
|
```
|
|
11
12
|
|
|
12
13
|
### Option B — local file (pre-built tarball)
|
|
@@ -94,7 +95,7 @@ node dist/index.js
|
|
|
94
95
|
|
|
95
96
|
Go to **Settings → AgentConnect** in AutoProject and create a new API key.
|
|
96
97
|
|
|
97
|
-
## Available Tools
|
|
98
|
+
## Available Tools
|
|
98
99
|
|
|
99
100
|
| Tool | Description |
|
|
100
101
|
|------|-------------|
|
|
@@ -102,9 +103,12 @@ Go to **Settings → AgentConnect** in AutoProject and create a new API key.
|
|
|
102
103
|
| `list_products` | List accessible products |
|
|
103
104
|
| `get_product_context` | Load LLM context bundle |
|
|
104
105
|
| `search_product` | Full-text search |
|
|
106
|
+
| `get_hierarchy` | Module → feature-group tree |
|
|
107
|
+
| `list_modules` | List modules (optional status filter) |
|
|
108
|
+
| `list_feature_groups` | List feature groups (filter by moduleId/status) |
|
|
105
109
|
| `get_feature_detail` | Feature details + acceptance criteria |
|
|
106
110
|
| `get_task_detail` | Task details |
|
|
107
|
-
| `list_features` | List features
|
|
111
|
+
| `list_features` | List features (filter by status/moduleId/featureGroupId) |
|
|
108
112
|
| `update_status` | Update entity status |
|
|
109
113
|
| `list_work_items` | Available work items |
|
|
110
114
|
| `claim_work` | Claim exclusive work item |
|
|
@@ -123,6 +127,55 @@ Go to **Settings → AgentConnect** in AutoProject and create a new API key.
|
|
|
123
127
|
| `suggest_tests` | Create draft test suggestions |
|
|
124
128
|
| `submit_copilot_task` | Submit code generation task |
|
|
125
129
|
| `poll_operation` | Poll async operation status |
|
|
130
|
+
| `list_applications` | List product applications (needed before screen / link tools) |
|
|
131
|
+
| `get_feature_group_applications` | Applications linked to a feature group |
|
|
132
|
+
| `set_feature_group_applications` | Replace application links for a feature group |
|
|
133
|
+
| `get_feature_applications` | Applications linked to a feature |
|
|
134
|
+
| `set_feature_applications` | Replace application links for a feature |
|
|
135
|
+
| `list_release_cycles` | List product release cycles |
|
|
136
|
+
| `get_feature_group_release_cycle` | Effective release cycle for a feature group |
|
|
137
|
+
| `set_feature_group_release_cycle` | Assign release cycle to a feature group |
|
|
138
|
+
| `get_feature_release_cycle` | Effective release cycle for a feature |
|
|
139
|
+
| `set_feature_release_cycle` | Assign release cycle to a feature |
|
|
140
|
+
| `list_screens` | List UI Blueprint screens for an application |
|
|
141
|
+
| `get_screen` | Get one screen (name, pageUrl, status) |
|
|
142
|
+
| `create_screen` | Create a screen (auto-creates empty blueprint if needed) |
|
|
143
|
+
| `bulk_create_screens` | Create many screens from codebase discovery |
|
|
144
|
+
| `update_screen` | Update screen name, pageUrl, description, or status |
|
|
145
|
+
| `delete_screen` | Soft-delete a screen |
|
|
146
|
+
| `list_documents` | List documents (filter by type / name search) |
|
|
147
|
+
| `get_document` | Get full document (fullText + sections) |
|
|
148
|
+
| `get_document_sections` | List sections for section-wise edits |
|
|
149
|
+
| `search_documents` | Search document section content |
|
|
150
|
+
| `update_document` | Update document metadata and/or full text |
|
|
151
|
+
| `update_document_section` | Update or create one document section |
|
|
152
|
+
|
|
153
|
+
## Document align workflow
|
|
154
|
+
|
|
155
|
+
Agents can keep product documents (PRD, architecture, etc.) aligned with the codebase:
|
|
156
|
+
|
|
157
|
+
1. `list_documents` with `search`/`name` — find the document
|
|
158
|
+
2. `get_document` or `get_document_sections` — read current content
|
|
159
|
+
3. Compare with the local implementation
|
|
160
|
+
4. `update_document_section` for section-wise fixes, or `update_document` for full-text / metadata
|
|
161
|
+
|
|
162
|
+
Use MCP prompt **`align_document_with_implementation`** (args: `productId`, `documentName`).
|
|
163
|
+
|
|
164
|
+
Requires API key scopes: `read:documents`, `write:documents`.
|
|
165
|
+
|
|
166
|
+
## UI Blueprint screen sync workflow
|
|
167
|
+
|
|
168
|
+
Agents can keep AutoProject UI Blueprint screens aligned with the app codebase:
|
|
169
|
+
|
|
170
|
+
1. `list_applications` — pick the target `applicationId`
|
|
171
|
+
2. `list_screens` — existing blueprint screens
|
|
172
|
+
3. Traverse local code for screen/route names (Flutter routes, Next.js pages, RN navigators, etc.)
|
|
173
|
+
4. `bulk_create_screens` (or `create_screen`) for screens missing from the blueprint
|
|
174
|
+
5. `update_screen` when a name or `pageUrl` changed in code
|
|
175
|
+
|
|
176
|
+
Use MCP prompt **`sync_ui_blueprint_screens`** (args: `productId`, `applicationId`) for the full workflow.
|
|
177
|
+
|
|
178
|
+
Requires API key scopes: `read:applications`, `read:screens`, `write:screens`.
|
|
126
179
|
|
|
127
180
|
## Defect AI Insight workflow
|
|
128
181
|
|
package/dist/client.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Reads AUTOPROJECT_API_URL and AUTOPROJECT_API_KEY from environment.
|
|
4
4
|
*/
|
|
5
5
|
import { AxiosInstance } from 'axios';
|
|
6
|
+
/** @deprecated Use getClient() — kept for modules that reference `client` directly. */
|
|
6
7
|
export declare const client: AxiosInstance;
|
|
7
8
|
/** Human-readable product slug for display purposes (e.g. 'my-product'). Falls back to empty string. */
|
|
8
9
|
export declare const PRODUCT_SLUG: string;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAsC7C,uFAAuF;AACvF,eAAO,MAAM,MAAM,eAIjB,CAAC;AAEH,wGAAwG;AACxG,eAAO,MAAM,YAAY,QAA6C,CAAC;AAEvE,wBAAsB,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAGpG;AAED,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAGnF;AAED,wBAAsB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAGpF;AAED,wBAAsB,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAGlF;AAED,wBAAsB,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAGrE"}
|
package/dist/client.js
CHANGED
|
@@ -14,13 +14,17 @@ exports.apiPatch = apiPatch;
|
|
|
14
14
|
exports.apiPut = apiPut;
|
|
15
15
|
exports.apiDelete = apiDelete;
|
|
16
16
|
const axios_1 = __importDefault(require("axios"));
|
|
17
|
-
|
|
17
|
+
let clientInstance = null;
|
|
18
|
+
function getClient() {
|
|
19
|
+
if (clientInstance) {
|
|
20
|
+
return clientInstance;
|
|
21
|
+
}
|
|
18
22
|
const apiUrl = process.env.AUTOPROJECT_API_URL || process.env.AUTOPROJECT_BASE_URL || 'http://localhost:3001/api';
|
|
19
23
|
const apiKey = process.env.AUTOPROJECT_API_KEY || '';
|
|
20
24
|
if (!apiKey) {
|
|
21
25
|
console.error('[autoproject-mcp] Warning: AUTOPROJECT_API_KEY is not set.');
|
|
22
26
|
}
|
|
23
|
-
|
|
27
|
+
clientInstance = axios_1.default.create({
|
|
24
28
|
baseURL: `${apiUrl}/agent/v1`,
|
|
25
29
|
timeout: 30000,
|
|
26
30
|
headers: {
|
|
@@ -29,34 +33,39 @@ function createClient() {
|
|
|
29
33
|
'X-Agent-ID': process.env.AUTOPROJECT_AGENT_ID || 'autoproject-mcp',
|
|
30
34
|
},
|
|
31
35
|
});
|
|
32
|
-
|
|
36
|
+
clientInstance.interceptors.response.use((res) => res, (err) => {
|
|
33
37
|
const msg = err.response?.data?.error?.message ?? err.message ?? 'Unknown error';
|
|
34
38
|
const status = err.response?.status ?? 0;
|
|
35
39
|
throw new Error(`[${status}] ${msg}`);
|
|
36
40
|
});
|
|
37
|
-
return
|
|
41
|
+
return clientInstance;
|
|
38
42
|
}
|
|
39
|
-
|
|
43
|
+
/** @deprecated Use getClient() — kept for modules that reference `client` directly. */
|
|
44
|
+
exports.client = new Proxy({}, {
|
|
45
|
+
get(_target, prop, receiver) {
|
|
46
|
+
return Reflect.get(getClient(), prop, receiver);
|
|
47
|
+
},
|
|
48
|
+
});
|
|
40
49
|
/** Human-readable product slug for display purposes (e.g. 'my-product'). Falls back to empty string. */
|
|
41
50
|
exports.PRODUCT_SLUG = process.env.AUTOPROJECT_PRODUCT_SLUG ?? '';
|
|
42
51
|
async function apiGet(path, params) {
|
|
43
|
-
const res = await
|
|
52
|
+
const res = await getClient().get(path, { params });
|
|
44
53
|
return res.data.data;
|
|
45
54
|
}
|
|
46
55
|
async function apiPost(path, body) {
|
|
47
|
-
const res = await
|
|
56
|
+
const res = await getClient().post(path, body);
|
|
48
57
|
return res.data.data;
|
|
49
58
|
}
|
|
50
59
|
async function apiPatch(path, body) {
|
|
51
|
-
const res = await
|
|
60
|
+
const res = await getClient().patch(path, body);
|
|
52
61
|
return res.data.data;
|
|
53
62
|
}
|
|
54
63
|
async function apiPut(path, body) {
|
|
55
|
-
const res = await
|
|
64
|
+
const res = await getClient().put(path, body);
|
|
56
65
|
return res.data.data;
|
|
57
66
|
}
|
|
58
67
|
async function apiDelete(path) {
|
|
59
|
-
const res = await
|
|
68
|
+
const res = await getClient().delete(path);
|
|
60
69
|
return res.data.data;
|
|
61
70
|
}
|
|
62
71
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
* AUTOPROJECT_API_KEY — Agent API key (required, format: ap_live_...)
|
|
15
15
|
* AUTOPROJECT_AGENT_ID — Agent identifier for audit logs (default: autoproject-mcp)
|
|
16
16
|
*/
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
17
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
21
|
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
19
22
|
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
@@ -36,6 +39,43 @@ const releaseCycleLinkTools_js_1 = require("./tools/releaseCycleLinkTools.js");
|
|
|
36
39
|
const screenTools_js_1 = require("./tools/screenTools.js");
|
|
37
40
|
const index_js_2 = require("./resources/index.js");
|
|
38
41
|
const index_js_3 = require("./prompts/index.js");
|
|
42
|
+
const package_json_1 = __importDefault(require("../package.json"));
|
|
43
|
+
const VERSION = package_json_1.default.version;
|
|
44
|
+
function printHelp() {
|
|
45
|
+
console.log(`autoproject-mcp ${VERSION}
|
|
46
|
+
|
|
47
|
+
AutoProject MCP server for IDE agent integration (Cursor, VS Code, Claude Dev).
|
|
48
|
+
|
|
49
|
+
Usage:
|
|
50
|
+
npx autoproject-mcp Start MCP server on stdio (for IDE clients)
|
|
51
|
+
npx autoproject-mcp --help Show this help
|
|
52
|
+
npx autoproject-mcp --version Show version
|
|
53
|
+
|
|
54
|
+
When started without --help, the server listens for MCP JSON-RPC on stdin/stdout.
|
|
55
|
+
It will appear idle in a terminal — that is expected. Connect via your IDE MCP config.
|
|
56
|
+
|
|
57
|
+
Environment variables:
|
|
58
|
+
AUTOPROJECT_API_KEY Agent API key (required, format: ap_live_...)
|
|
59
|
+
AUTOPROJECT_API_URL API base URL (default: http://localhost:3001/api)
|
|
60
|
+
AUTOPROJECT_BASE_URL Alias for AUTOPROJECT_API_URL
|
|
61
|
+
AUTOPROJECT_AGENT_ID Agent identifier for audit logs (default: autoproject-mcp)
|
|
62
|
+
AUTOPROJECT_PRODUCT_SLUG Default product slug for resource URIs
|
|
63
|
+
|
|
64
|
+
Docs: https://github.com/autoproject/autoproject-mcp
|
|
65
|
+
`);
|
|
66
|
+
}
|
|
67
|
+
function handleCliArgs() {
|
|
68
|
+
const args = process.argv.slice(2);
|
|
69
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
70
|
+
printHelp();
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
if (args.includes('--version') || args.includes('-v')) {
|
|
74
|
+
console.log(VERSION);
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
39
79
|
const ALL_TOOLS = [
|
|
40
80
|
...productTools_js_1.productToolDefinitions,
|
|
41
81
|
...hierarchyTools_js_1.hierarchyToolDefinitions,
|
|
@@ -60,6 +100,9 @@ const TOOL_HANDLER_MAP = {
|
|
|
60
100
|
list_products: productTools_js_1.handleProductTool,
|
|
61
101
|
get_product_context: productTools_js_1.handleProductTool,
|
|
62
102
|
search_product: productTools_js_1.handleProductTool,
|
|
103
|
+
get_hierarchy: hierarchyTools_js_1.handleHierarchyTool,
|
|
104
|
+
list_modules: hierarchyTools_js_1.handleHierarchyTool,
|
|
105
|
+
list_feature_groups: hierarchyTools_js_1.handleHierarchyTool,
|
|
63
106
|
get_feature_detail: hierarchyTools_js_1.handleHierarchyTool,
|
|
64
107
|
get_task_detail: hierarchyTools_js_1.handleHierarchyTool,
|
|
65
108
|
list_features: hierarchyTools_js_1.handleHierarchyTool,
|
|
@@ -107,11 +150,14 @@ const TOOL_HANDLER_MAP = {
|
|
|
107
150
|
get_document: documentTools_js_1.handleDocumentTool,
|
|
108
151
|
get_document_sections: documentTools_js_1.handleDocumentTool,
|
|
109
152
|
search_documents: documentTools_js_1.handleDocumentTool,
|
|
153
|
+
update_document: documentTools_js_1.handleDocumentTool,
|
|
154
|
+
update_document_section: documentTools_js_1.handleDocumentTool,
|
|
110
155
|
list_applications: applicationTools_js_1.handleApplicationTool,
|
|
156
|
+
get_feature_group_applications: applicationTools_js_1.handleApplicationTool,
|
|
157
|
+
set_feature_group_applications: applicationTools_js_1.handleApplicationTool,
|
|
111
158
|
get_feature_applications: applicationTools_js_1.handleApplicationTool,
|
|
112
159
|
set_feature_applications: applicationTools_js_1.handleApplicationTool,
|
|
113
|
-
|
|
114
|
-
set_subfeature_applications: applicationTools_js_1.handleApplicationTool,
|
|
160
|
+
list_release_cycles: releaseCycleLinkTools_js_1.handleReleaseCycleLinkTool,
|
|
115
161
|
get_feature_group_release_cycle: releaseCycleLinkTools_js_1.handleReleaseCycleLinkTool,
|
|
116
162
|
set_feature_group_release_cycle: releaseCycleLinkTools_js_1.handleReleaseCycleLinkTool,
|
|
117
163
|
get_feature_release_cycle: releaseCycleLinkTools_js_1.handleReleaseCycleLinkTool,
|
|
@@ -119,11 +165,15 @@ const TOOL_HANDLER_MAP = {
|
|
|
119
165
|
list_screens: screenTools_js_1.handleScreenTool,
|
|
120
166
|
get_screen: screenTools_js_1.handleScreenTool,
|
|
121
167
|
create_screen: screenTools_js_1.handleScreenTool,
|
|
168
|
+
bulk_create_screens: screenTools_js_1.handleScreenTool,
|
|
122
169
|
update_screen: screenTools_js_1.handleScreenTool,
|
|
123
170
|
delete_screen: screenTools_js_1.handleScreenTool,
|
|
124
171
|
};
|
|
125
172
|
async function main() {
|
|
126
|
-
|
|
173
|
+
if (handleCliArgs()) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const server = new index_js_1.Server({ name: 'autoproject-mcp', version: VERSION }, {
|
|
127
177
|
capabilities: {
|
|
128
178
|
tools: {},
|
|
129
179
|
resources: {},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;;GAaG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts/index.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP Prompts: Pre-built prompt templates for common agent workflows.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Prompts:
|
|
5
5
|
* 1. start_session — Prime agent context at session start
|
|
6
6
|
* 2. implement_feature — Complete feature implementation workflow
|
|
7
7
|
* 3. review_and_fix — Code review → defect creation workflow
|
|
8
8
|
* 4. write_tests — Test script suggestion workflow
|
|
9
9
|
* 5. daily_standup — Summarise project status
|
|
10
|
+
* 6. analyze_defect_ai_insight — Publish structured AI Insight on a defect
|
|
11
|
+
* 7. sync_ui_blueprint_screens — Sync codebase screens into UI Blueprint
|
|
12
|
+
* 8. align_document_with_implementation — Update docs to match code
|
|
10
13
|
*/
|
|
11
14
|
import { Prompt, GetPromptResult } from '@modelcontextprotocol/sdk/types.js';
|
|
12
15
|
export declare const promptDefinitions: Prompt[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAI7E,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAkErC,CAAC;AAEF,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAyJ1G"}
|
package/dist/prompts/index.js
CHANGED
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* MCP Prompts: Pre-built prompt templates for common agent workflows.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Prompts:
|
|
6
6
|
* 1. start_session — Prime agent context at session start
|
|
7
7
|
* 2. implement_feature — Complete feature implementation workflow
|
|
8
8
|
* 3. review_and_fix — Code review → defect creation workflow
|
|
9
9
|
* 4. write_tests — Test script suggestion workflow
|
|
10
10
|
* 5. daily_standup — Summarise project status
|
|
11
|
+
* 6. analyze_defect_ai_insight — Publish structured AI Insight on a defect
|
|
12
|
+
* 7. sync_ui_blueprint_screens — Sync codebase screens into UI Blueprint
|
|
13
|
+
* 8. align_document_with_implementation — Update docs to match code
|
|
11
14
|
*/
|
|
12
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
16
|
exports.promptDefinitions = void 0;
|
|
@@ -60,6 +63,24 @@ exports.promptDefinitions = [
|
|
|
60
63
|
{ name: 'defectId', description: 'Defect ID to analyze', required: true },
|
|
61
64
|
],
|
|
62
65
|
},
|
|
66
|
+
{
|
|
67
|
+
name: 'sync_ui_blueprint_screens',
|
|
68
|
+
description: 'Sync app screens from the local codebase into the AutoProject UI Blueprint: '
|
|
69
|
+
+ 'list existing screens, discover routes/screens in code, create missing ones, update renamed ones.',
|
|
70
|
+
arguments: [
|
|
71
|
+
{ name: 'productId', description: 'Product ID', required: true },
|
|
72
|
+
{ name: 'applicationId', description: 'Application ID whose UI blueprint to sync', required: true },
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: 'align_document_with_implementation',
|
|
77
|
+
description: 'Find a product document by name, read it (full or section-wise), and update sections/content '
|
|
78
|
+
+ 'so the document matches the current codebase implementation.',
|
|
79
|
+
arguments: [
|
|
80
|
+
{ name: 'productId', description: 'Product ID', required: true },
|
|
81
|
+
{ name: 'documentName', description: 'Document name (or search fragment) to find', required: true },
|
|
82
|
+
],
|
|
83
|
+
},
|
|
63
84
|
];
|
|
64
85
|
async function handleGetPrompt(name, args) {
|
|
65
86
|
switch (name) {
|
|
@@ -157,6 +178,60 @@ async function handleGetPrompt(name, args) {
|
|
|
157
178
|
],
|
|
158
179
|
};
|
|
159
180
|
}
|
|
181
|
+
case 'sync_ui_blueprint_screens': {
|
|
182
|
+
return {
|
|
183
|
+
messages: [
|
|
184
|
+
{
|
|
185
|
+
role: 'user',
|
|
186
|
+
content: {
|
|
187
|
+
type: 'text',
|
|
188
|
+
text: [
|
|
189
|
+
`Sync UI Blueprint screens for application ${args.applicationId} in product ${args.productId}.`,
|
|
190
|
+
'',
|
|
191
|
+
'Goal: keep AutoProject UI Blueprint screens aligned with screens/routes in the local app codebase.',
|
|
192
|
+
'',
|
|
193
|
+
'Steps:',
|
|
194
|
+
`1. list_screens(productId="${args.productId}", applicationId="${args.applicationId}") — capture existing blueprint screens (id, name, pageUrl).`,
|
|
195
|
+
'2. Traverse the local codebase for device/app screens and routes, for example:',
|
|
196
|
+
' - Flutter: *Screen widgets, GoRouter/routes, MaterialPageRoute names',
|
|
197
|
+
' - React/Next: app/ or pages/ routes, Screen/Page components',
|
|
198
|
+
' - React Native: navigation stack screen names',
|
|
199
|
+
' Collect a list of { name, pageUrl } candidates.',
|
|
200
|
+
'3. Diff: screens in code but missing from blueprint → create; screens renamed/route-changed → update.',
|
|
201
|
+
`4. For many new screens: bulk_create_screens(productId="${args.productId}", applicationId="${args.applicationId}", screens=[...]).`,
|
|
202
|
+
' For one-off: create_screen with name + pageUrl.',
|
|
203
|
+
'5. For renamed or route-changed screens: update_screen(screenId, name and/or pageUrl).',
|
|
204
|
+
'6. Do not delete screens unless the user explicitly asks.',
|
|
205
|
+
'7. Summarize: created / updated / skipped (already present).',
|
|
206
|
+
].join('\n'),
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
],
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
case 'align_document_with_implementation': {
|
|
213
|
+
return {
|
|
214
|
+
messages: [
|
|
215
|
+
{
|
|
216
|
+
role: 'user',
|
|
217
|
+
content: {
|
|
218
|
+
type: 'text',
|
|
219
|
+
text: [
|
|
220
|
+
`Align document "${args.documentName}" in product ${args.productId} with the current implementation.`,
|
|
221
|
+
'',
|
|
222
|
+
'Steps:',
|
|
223
|
+
`1. list_documents(productId="${args.productId}", search="${args.documentName}") — find matching documents by name.`,
|
|
224
|
+
'2. Pick the best match and call get_document (full) and/or get_document_sections (section-wise).',
|
|
225
|
+
'3. Inspect the local codebase for what is actually implemented.',
|
|
226
|
+
'4. For each outdated section: update_document_section(documentId, sectionId or sectionKey, content=...).',
|
|
227
|
+
'5. If the whole doc needs a rewrite: update_document(documentId, fullText=..., changeSummary="Aligned with implementation").',
|
|
228
|
+
'6. Summarize which sections/documents were updated.',
|
|
229
|
+
].join('\n'),
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
],
|
|
233
|
+
};
|
|
234
|
+
}
|
|
160
235
|
default:
|
|
161
236
|
throw new Error(`Unknown prompt: ${name}`);
|
|
162
237
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* MCP Tools: Application listing and feature/
|
|
2
|
+
* MCP Tools: Application listing and feature-group / feature application-link management.
|
|
3
3
|
*
|
|
4
4
|
* IDE agents use these tools to:
|
|
5
5
|
* 1. Discover what applications exist in a product.
|
|
6
|
-
* 2. Read which applications a feature or
|
|
7
|
-
* 3. Replace the application links for a feature or
|
|
6
|
+
* 2. Read which applications a feature group or feature is currently linked to.
|
|
7
|
+
* 3. Replace the application links for a feature group or feature.
|
|
8
8
|
*
|
|
9
9
|
* Terminology (aligned with AGENTS.md):
|
|
10
|
-
* "feature"
|
|
11
|
-
* "
|
|
10
|
+
* "feature group" = FeatureGroup (Feature Group in UI)
|
|
11
|
+
* "feature" = Feature (Feature in UI)
|
|
12
12
|
*
|
|
13
13
|
* Link operations are replace-semantics (idempotent PUT):
|
|
14
14
|
* Providing an empty applicationIds array removes all links.
|