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.
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  /**
3
3
  * MCP Tools: Hierarchy read and status update
4
- * Tools: get_feature_detail, get_task_detail, list_features, update_status
4
+ * Tools: get_hierarchy, list_modules, list_feature_groups, list_features,
5
+ * get_feature_detail, get_task_detail, update_status
6
+ *
7
+ * Product hierarchy (UI terminology):
8
+ * Module → Feature Group → Feature
5
9
  */
6
10
  Object.defineProperty(exports, "__esModule", { value: true });
7
11
  exports.hierarchyToolDefinitions = void 0;
@@ -9,43 +13,86 @@ exports.handleHierarchyTool = handleHierarchyTool;
9
13
  const client_js_1 = require("../client.js");
10
14
  exports.hierarchyToolDefinitions = [
11
15
  {
12
- name: 'get_feature_detail',
13
- description: 'Get full details of a feature (SubFeature) by ID, including acceptance criteria.',
16
+ name: 'get_hierarchy',
17
+ description: 'Get the product hierarchy tree: modules with nested feature groups. ' +
18
+ 'Use this first to discover module IDs, then list_features with moduleId/status to pull work.',
14
19
  inputSchema: {
15
20
  type: 'object',
16
21
  properties: {
17
22
  productId: { type: 'string', description: 'Product ID' },
18
- featureId: { type: 'string', description: 'Feature ID' },
19
23
  },
20
- required: ['productId', 'featureId'],
24
+ required: ['productId'],
21
25
  },
22
26
  },
23
27
  {
24
- name: 'get_task_detail',
25
- description: 'Get details of a task, including description and current status.',
28
+ name: 'list_modules',
29
+ description: 'List modules (top level of the product hierarchy) with status and description. ' +
30
+ 'Optionally filter by module status.',
26
31
  inputSchema: {
27
32
  type: 'object',
28
33
  properties: {
29
34
  productId: { type: 'string', description: 'Product ID' },
30
- taskId: { type: 'string', description: 'Task ID' },
35
+ status: { type: 'string', description: 'Filter by module status (e.g. IN_PROGRESS, COMPLETED)' },
36
+ limit: { type: 'number', description: 'Max results (default 50, max 200)' },
31
37
  },
32
- required: ['productId', 'taskId'],
38
+ required: ['productId'],
39
+ },
40
+ },
41
+ {
42
+ name: 'list_feature_groups',
43
+ description: 'List feature groups (second hierarchy level). Filter by moduleId and/or status.',
44
+ inputSchema: {
45
+ type: 'object',
46
+ properties: {
47
+ productId: { type: 'string', description: 'Product ID' },
48
+ moduleId: { type: 'string', description: 'Filter by parent module ID' },
49
+ status: { type: 'string', description: 'Filter by feature-group status' },
50
+ limit: { type: 'number', description: 'Max results (default 50, max 200)' },
51
+ },
52
+ required: ['productId'],
33
53
  },
34
54
  },
35
55
  {
36
56
  name: 'list_features',
37
- description: 'List features (SubFeatures) within a product, with optional status/priority filter.',
57
+ description: 'List features (third hierarchy level) within a product. ' +
58
+ 'Filter by status, priority, moduleId, and/or featureGroupId to pull incomplete work for a module.',
38
59
  inputSchema: {
39
60
  type: 'object',
40
61
  properties: {
41
62
  productId: { type: 'string', description: 'Product ID' },
42
- status: { type: 'string', description: 'Filter by status (e.g. IN_PROGRESS)' },
63
+ status: { type: 'string', description: 'Filter by feature status (e.g. IN_PROGRESS, TODO)' },
43
64
  priority: { type: 'string', description: 'Filter by priority (e.g. HIGH)' },
44
- limit: { type: 'number', description: 'Max results' },
65
+ moduleId: { type: 'string', description: 'Filter by parent module ID' },
66
+ featureGroupId: { type: 'string', description: 'Filter by parent feature-group ID' },
67
+ limit: { type: 'number', description: 'Max results (default 50, max 200)' },
45
68
  },
46
69
  required: ['productId'],
47
70
  },
48
71
  },
72
+ {
73
+ name: 'get_feature_detail',
74
+ description: 'Get full details of a feature by ID, including acceptance criteria.',
75
+ inputSchema: {
76
+ type: 'object',
77
+ properties: {
78
+ productId: { type: 'string', description: 'Product ID' },
79
+ featureId: { type: 'string', description: 'Feature ID' },
80
+ },
81
+ required: ['productId', 'featureId'],
82
+ },
83
+ },
84
+ {
85
+ name: 'get_task_detail',
86
+ description: 'Get details of a task, including description and current status.',
87
+ inputSchema: {
88
+ type: 'object',
89
+ properties: {
90
+ productId: { type: 'string', description: 'Product ID' },
91
+ taskId: { type: 'string', description: 'Task ID' },
92
+ },
93
+ required: ['productId', 'taskId'],
94
+ },
95
+ },
49
96
  {
50
97
  name: 'update_status',
51
98
  description: 'Update the status of a feature, task, or micro-task. Status must follow valid workflow transitions.',
@@ -53,7 +100,11 @@ exports.hierarchyToolDefinitions = [
53
100
  type: 'object',
54
101
  properties: {
55
102
  productId: { type: 'string', description: 'Product ID' },
56
- entityType: { type: 'string', enum: ['feature', 'task', 'micro-task', 'feature-group'], description: 'Type of entity' },
103
+ entityType: {
104
+ type: 'string',
105
+ enum: ['feature', 'task', 'micro-task', 'feature-group'],
106
+ description: 'Type of entity',
107
+ },
57
108
  entityId: { type: 'string', description: 'Entity ID' },
58
109
  status: { type: 'string', description: 'New status value' },
59
110
  },
@@ -63,6 +114,22 @@ exports.hierarchyToolDefinitions = [
63
114
  ];
64
115
  async function handleHierarchyTool(name, args) {
65
116
  switch (name) {
117
+ case 'get_hierarchy': {
118
+ return await (0, client_js_1.apiGet)(`/products/${args.productId}/hierarchy`);
119
+ }
120
+ case 'list_modules': {
121
+ return await (0, client_js_1.apiGet)(`/products/${args.productId}/modules`, {
122
+ status: args.status,
123
+ limit: args.limit,
124
+ });
125
+ }
126
+ case 'list_feature_groups': {
127
+ return await (0, client_js_1.apiGet)(`/products/${args.productId}/feature-groups`, {
128
+ moduleId: args.moduleId,
129
+ status: args.status,
130
+ limit: args.limit,
131
+ });
132
+ }
66
133
  case 'get_feature_detail': {
67
134
  return await (0, client_js_1.apiGet)(`/products/${args.productId}/entities/feature/${args.featureId}`);
68
135
  }
@@ -73,6 +140,8 @@ async function handleHierarchyTool(name, args) {
73
140
  return await (0, client_js_1.apiGet)(`/products/${args.productId}/features`, {
74
141
  status: args.status,
75
142
  priority: args.priority,
143
+ moduleId: args.moduleId,
144
+ featureGroupId: args.featureGroupId,
76
145
  limit: args.limit,
77
146
  });
78
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hierarchyTools.js","sourceRoot":"","sources":["../../src/tools/hierarchyTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hierarchyTools.js","sourceRoot":"","sources":["../../src/tools/hierarchyTools.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  /**
2
- * MCP Tools: Release cycle linking for feature groups and sub-features.
2
+ * MCP Tools: Release cycle listing and linking for feature groups and features.
3
3
  *
4
4
  * Workflow for IDE agents:
5
- * 1. Call list_release_cycles (existing tool) to discover available cycles and their IDs.
5
+ * 1. Call list_release_cycles to discover available cycles and their IDs.
6
6
  * 2. Call get_feature_group_release_cycle / get_feature_release_cycle to check if already linked.
7
7
  * 3. If missing or wrong, call set_feature_group_release_cycle / set_feature_release_cycle.
8
8
  *
9
9
  * Terminology (aligned with AGENTS.md):
10
- * "feature group" = DB FeatureGroup / API "features" (Feature Group in UI)
11
- * "feature" = DB SubFeature / API "sub-features" (Feature in UI)
10
+ * "feature group" = DB FeatureGroup / API "feature-groups" (Feature Group in UI)
11
+ * "feature" = DB Feature / API "features" (Feature in UI)
12
12
  *
13
13
  * Cascade note: setting a release cycle on a feature group automatically cascades
14
14
  * to child features that previously inherited the old parent cycle.
@@ -1 +1 @@
1
- {"version":3,"file":"releaseCycleLinkTools.d.ts","sourceRoot":"","sources":["../../src/tools/releaseCycleLinkTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAK1D,eAAO,MAAM,+BAA+B,EAAE,IAAI,EAgEjD,CAAC;AAEF,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;GAqG/F"}
1
+ {"version":3,"file":"releaseCycleLinkTools.d.ts","sourceRoot":"","sources":["../../src/tools/releaseCycleLinkTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAK1D,eAAO,MAAM,+BAA+B,EAAE,IAAI,EA8EjD,CAAC;AAEF,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;GAmH/F"}
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  /**
3
- * MCP Tools: Release cycle linking for feature groups and sub-features.
3
+ * MCP Tools: Release cycle listing and linking for feature groups and features.
4
4
  *
5
5
  * Workflow for IDE agents:
6
- * 1. Call list_release_cycles (existing tool) to discover available cycles and their IDs.
6
+ * 1. Call list_release_cycles to discover available cycles and their IDs.
7
7
  * 2. Call get_feature_group_release_cycle / get_feature_release_cycle to check if already linked.
8
8
  * 3. If missing or wrong, call set_feature_group_release_cycle / set_feature_release_cycle.
9
9
  *
10
10
  * Terminology (aligned with AGENTS.md):
11
- * "feature group" = DB FeatureGroup / API "features" (Feature Group in UI)
12
- * "feature" = DB SubFeature / API "sub-features" (Feature in UI)
11
+ * "feature group" = DB FeatureGroup / API "feature-groups" (Feature Group in UI)
12
+ * "feature" = DB Feature / API "features" (Feature in UI)
13
13
  *
14
14
  * Cascade note: setting a release cycle on a feature group automatically cascades
15
15
  * to child features that previously inherited the old parent cycle.
@@ -20,9 +20,22 @@ exports.handleReleaseCycleLinkTool = handleReleaseCycleLinkTool;
20
20
  const client_js_1 = require("../client.js");
21
21
  const DEFAULT_PRODUCT_ID = process.env.AUTOPROJECT_PRODUCT_ID ?? '';
22
22
  exports.releaseCycleLinkToolDefinitions = [
23
+ {
24
+ name: 'list_release_cycles',
25
+ description: 'List release cycles for a product (id, name, status, start/end dates). ' +
26
+ 'Call this before set_feature_group_release_cycle or set_feature_release_cycle to get valid releaseCycleIds.',
27
+ inputSchema: {
28
+ type: 'object',
29
+ properties: {
30
+ productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
31
+ limit: { type: 'number', description: 'Max results (default 50, max 200).' },
32
+ },
33
+ required: [],
34
+ },
35
+ },
23
36
  {
24
37
  name: 'get_feature_group_release_cycle',
25
- description: 'Get the effective release cycle assigned to a feature group (Feature Group in UI). ' +
38
+ description: 'Get the effective release cycle assigned to a feature group. ' +
26
39
  'Returns the cycle details plus an "inherited" flag — true means the cycle comes from a parent (module), ' +
27
40
  'false means it is directly assigned. Returns null if no cycle is assigned at any level. ' +
28
41
  'Use this to detect missing release cycle links before calling set_feature_group_release_cycle.',
@@ -30,53 +43,53 @@ exports.releaseCycleLinkToolDefinitions = [
30
43
  type: 'object',
31
44
  properties: {
32
45
  productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
33
- featureId: { type: 'string', description: 'Feature group UUID (the "Feature Group" in the UI).' },
46
+ featureGroupId: { type: 'string', description: 'Feature group UUID.' },
34
47
  },
35
- required: ['featureId'],
48
+ required: ['featureGroupId'],
36
49
  },
37
50
  },
38
51
  {
39
52
  name: 'set_feature_group_release_cycle',
40
- description: 'Assign or update the release cycle for a feature group (Feature Group in UI). ' +
53
+ description: 'Assign or update the release cycle for a feature group. ' +
41
54
  'Replaces any existing assignment. Also cascades to child features that previously ' +
42
55
  'inherited the old parent cycle. Use list_release_cycles to get valid releaseCycleIds.',
43
56
  inputSchema: {
44
57
  type: 'object',
45
58
  properties: {
46
59
  productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
47
- featureId: { type: 'string', description: 'Feature group UUID.' },
60
+ featureGroupId: { type: 'string', description: 'Feature group UUID.' },
48
61
  releaseCycleId: { type: 'string', description: 'Release cycle UUID to assign.' },
49
62
  },
50
- required: ['featureId', 'releaseCycleId'],
63
+ required: ['featureGroupId', 'releaseCycleId'],
51
64
  },
52
65
  },
53
66
  {
54
67
  name: 'get_feature_release_cycle',
55
- description: 'Get the effective release cycle for a feature (Feature in UI, called sub-feature in the API). ' +
68
+ description: 'Get the effective release cycle for a feature. ' +
56
69
  'Returns cycle details plus "inherited" flag — if inherited=true, the cycle comes from the parent feature group. ' +
57
70
  'Returns null if no cycle is assigned at any level.',
58
71
  inputSchema: {
59
72
  type: 'object',
60
73
  properties: {
61
74
  productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
62
- subFeatureId: { type: 'string', description: 'Feature UUID (the "Feature" in the UI, sub-feature in the API).' },
75
+ featureId: { type: 'string', description: 'Feature UUID.' },
63
76
  },
64
- required: ['subFeatureId'],
77
+ required: ['featureId'],
65
78
  },
66
79
  },
67
80
  {
68
81
  name: 'set_feature_release_cycle',
69
- description: 'Assign or update the release cycle for a specific feature (Feature in UI, sub-feature in API). ' +
82
+ description: 'Assign or update the release cycle for a specific feature. ' +
70
83
  'This overrides any inherited cycle from the parent feature group with an explicit direct assignment. ' +
71
84
  'Use list_release_cycles to get valid releaseCycleIds.',
72
85
  inputSchema: {
73
86
  type: 'object',
74
87
  properties: {
75
88
  productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
76
- subFeatureId: { type: 'string', description: 'Feature UUID (sub-feature in the API).' },
89
+ featureId: { type: 'string', description: 'Feature UUID.' },
77
90
  releaseCycleId: { type: 'string', description: 'Release cycle UUID to assign.' },
78
91
  },
79
- required: ['subFeatureId', 'releaseCycleId'],
92
+ required: ['featureId', 'releaseCycleId'],
80
93
  },
81
94
  },
82
95
  ];
@@ -86,11 +99,22 @@ async function handleReleaseCycleLinkTool(toolName, args) {
86
99
  return { content: [{ type: 'text', text: 'Error: productId is required (or set AUTOPROJECT_PRODUCT_ID env).' }] };
87
100
  }
88
101
  switch (toolName) {
102
+ case 'list_release_cycles': {
103
+ const data = await (0, client_js_1.apiGet)(`/products/${productId}/release-cycles`, {
104
+ limit: args.limit,
105
+ });
106
+ const items = data?.items ?? [];
107
+ if (items.length === 0) {
108
+ return { content: [{ type: 'text', text: 'No release cycles found for this product.' }] };
109
+ }
110
+ const lines = items.map((c) => `[${c.id}] ${c.name}\n Status: ${c.status ?? 'N/A'} | ${c.startDate ?? '?'} → ${c.endDate ?? '?'}`);
111
+ return { content: [{ type: 'text', text: `Release cycles (${items.length}):\n\n${lines.join('\n\n')}` }] };
112
+ }
89
113
  case 'get_feature_group_release_cycle': {
90
- const featureId = args.featureId;
91
- if (!featureId)
92
- return { content: [{ type: 'text', text: 'Error: featureId is required.' }] };
93
- const data = await (0, client_js_1.apiGet)(`/products/${productId}/features/${featureId}/release-cycle`);
114
+ const featureGroupId = args.featureGroupId;
115
+ if (!featureGroupId)
116
+ return { content: [{ type: 'text', text: 'Error: featureGroupId is required.' }] };
117
+ const data = await (0, client_js_1.apiGet)(`/products/${productId}/feature-groups/${featureGroupId}/release-cycle`);
94
118
  if (data === null || data === undefined) {
95
119
  return { content: [{ type: 'text', text: 'No release cycle is assigned to this feature group.' }] };
96
120
  }
@@ -100,7 +124,7 @@ async function handleReleaseCycleLinkTool(toolName, args) {
100
124
  content: [
101
125
  {
102
126
  type: 'text',
103
- text: `Release cycle for feature group ${featureId}:\n` +
127
+ text: `Release cycle for feature group ${featureGroupId}:\n` +
104
128
  `[${cycle.id}] ${cycle.name}${inheritedNote}\n` +
105
129
  `Status: ${cycle.status ?? 'N/A'} | ${cycle.startDate ?? '?'} → ${cycle.endDate ?? '?'}`,
106
130
  },
@@ -108,19 +132,19 @@ async function handleReleaseCycleLinkTool(toolName, args) {
108
132
  };
109
133
  }
110
134
  case 'set_feature_group_release_cycle': {
111
- const featureId = args.featureId;
112
- if (!featureId)
113
- return { content: [{ type: 'text', text: 'Error: featureId is required.' }] };
135
+ const featureGroupId = args.featureGroupId;
136
+ if (!featureGroupId)
137
+ return { content: [{ type: 'text', text: 'Error: featureGroupId is required.' }] };
114
138
  const releaseCycleId = args.releaseCycleId;
115
139
  if (!releaseCycleId)
116
140
  return { content: [{ type: 'text', text: 'Error: releaseCycleId is required.' }] };
117
- const data = await (0, client_js_1.apiPut)(`/products/${productId}/features/${featureId}/release-cycle`, { releaseCycleId });
141
+ const data = await (0, client_js_1.apiPut)(`/products/${productId}/feature-groups/${featureGroupId}/release-cycle`, { releaseCycleId });
118
142
  return {
119
143
  content: [
120
144
  {
121
145
  type: 'text',
122
146
  text: `Release cycle assigned to feature group.\n` +
123
- `Feature group: ${featureId}\n` +
147
+ `Feature group: ${featureGroupId}\n` +
124
148
  `Cycle: [${data.releaseCycleId}] ${data.releaseCycleName}\n` +
125
149
  `(Child features that shared the previous cycle have been updated too.)`,
126
150
  },
@@ -128,10 +152,10 @@ async function handleReleaseCycleLinkTool(toolName, args) {
128
152
  };
129
153
  }
130
154
  case 'get_feature_release_cycle': {
131
- const subFeatureId = args.subFeatureId;
132
- if (!subFeatureId)
133
- return { content: [{ type: 'text', text: 'Error: subFeatureId is required.' }] };
134
- const data = await (0, client_js_1.apiGet)(`/products/${productId}/sub-features/${subFeatureId}/release-cycle`);
155
+ const featureId = args.featureId;
156
+ if (!featureId)
157
+ return { content: [{ type: 'text', text: 'Error: featureId is required.' }] };
158
+ const data = await (0, client_js_1.apiGet)(`/products/${productId}/features/${featureId}/release-cycle`);
135
159
  if (data === null || data === undefined) {
136
160
  return { content: [{ type: 'text', text: 'No release cycle is assigned to this feature (not even inherited).' }] };
137
161
  }
@@ -141,7 +165,7 @@ async function handleReleaseCycleLinkTool(toolName, args) {
141
165
  content: [
142
166
  {
143
167
  type: 'text',
144
- text: `Release cycle for feature ${subFeatureId}:\n` +
168
+ text: `Release cycle for feature ${featureId}:\n` +
145
169
  `[${cycle.id}] ${cycle.name}${inheritedNote}\n` +
146
170
  `Status: ${cycle.status ?? 'N/A'} | ${cycle.startDate ?? '?'} → ${cycle.endDate ?? '?'}`,
147
171
  },
@@ -149,19 +173,19 @@ async function handleReleaseCycleLinkTool(toolName, args) {
149
173
  };
150
174
  }
151
175
  case 'set_feature_release_cycle': {
152
- const subFeatureId = args.subFeatureId;
153
- if (!subFeatureId)
154
- return { content: [{ type: 'text', text: 'Error: subFeatureId is required.' }] };
176
+ const featureId = args.featureId;
177
+ if (!featureId)
178
+ return { content: [{ type: 'text', text: 'Error: featureId is required.' }] };
155
179
  const releaseCycleId = args.releaseCycleId;
156
180
  if (!releaseCycleId)
157
181
  return { content: [{ type: 'text', text: 'Error: releaseCycleId is required.' }] };
158
- const data = await (0, client_js_1.apiPut)(`/products/${productId}/sub-features/${subFeatureId}/release-cycle`, { releaseCycleId });
182
+ const data = await (0, client_js_1.apiPut)(`/products/${productId}/features/${featureId}/release-cycle`, { releaseCycleId });
159
183
  return {
160
184
  content: [
161
185
  {
162
186
  type: 'text',
163
187
  text: `Release cycle assigned to feature.\n` +
164
- `Feature: ${subFeatureId}\n` +
188
+ `Feature: ${featureId}\n` +
165
189
  `Cycle: [${data.releaseCycleId}] ${data.releaseCycleName}`,
166
190
  },
167
191
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"releaseCycleLinkTools.js","sourceRoot":"","sources":["../../src/tools/releaseCycleLinkTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"releaseCycleLinkTools.js","sourceRoot":"","sources":["../../src/tools/releaseCycleLinkTools.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,18 @@
1
1
  /**
2
2
  * MCP Tools: UI Blueprint screen management
3
- * Tools: list_screens, get_screen, create_screen, update_screen, delete_screen
3
+ * Tools: list_screens, get_screen, create_screen, bulk_create_screens,
4
+ * update_screen, delete_screen
4
5
  *
5
6
  * Screens belong to an application's UI blueprint. A screen's "page URL" is the
6
7
  * `pageUrl` field (the screen route). Agents address screens by applicationId;
7
8
  * use list_applications first to discover application IDs.
9
+ *
10
+ * Typical sync workflow (codebase → AutoProject UI Blueprint):
11
+ * 1. list_applications → pick applicationId
12
+ * 2. list_screens → existing blueprint screens
13
+ * 3. Traverse the app codebase for routes / screen names
14
+ * 4. create_screen or bulk_create_screens for missing screens
15
+ * 5. update_screen to rename or set pageUrl when names/routes changed
8
16
  */
9
17
  import { Tool } from '@modelcontextprotocol/sdk/types.js';
10
18
  export declare const screenToolDefinitions: Tool[];
@@ -1 +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"}
1
+ {"version":3,"file":"screenTools.d.ts","sourceRoot":"","sources":["../../src/tools/screenTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAK1D,eAAO,MAAM,qBAAqB,EAAE,IAAI,EA4HvC,CAAC;AAUF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oBA0CjF"}