@mcp-consultant-tools/powerplatform 27.0.0 → 28.0.0-beta.4
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/build/PowerPlatformService.d.ts +23 -2
- package/build/PowerPlatformService.d.ts.map +1 -1
- package/build/PowerPlatformService.js +23 -1
- package/build/PowerPlatformService.js.map +1 -1
- package/build/index.d.ts +10 -2
- package/build/index.d.ts.map +1 -1
- package/build/index.js +26 -2394
- package/build/index.js.map +1 -1
- package/build/prompts/analysis-prompts.d.ts +3 -0
- package/build/prompts/analysis-prompts.d.ts.map +1 -0
- package/build/prompts/analysis-prompts.js +286 -0
- package/build/prompts/analysis-prompts.js.map +1 -0
- package/build/prompts/entity-prompts.d.ts +3 -0
- package/build/prompts/entity-prompts.d.ts.map +1 -0
- package/build/prompts/entity-prompts.js +304 -0
- package/build/prompts/entity-prompts.js.map +1 -0
- package/build/prompts/index.d.ts +8 -0
- package/build/prompts/index.d.ts.map +1 -0
- package/build/prompts/index.js +11 -0
- package/build/prompts/index.js.map +1 -0
- package/build/services/index.d.ts +5 -0
- package/build/services/index.d.ts.map +1 -0
- package/build/services/index.js +5 -0
- package/build/services/index.js.map +1 -0
- package/build/tools/app-tools.d.ts +3 -0
- package/build/tools/app-tools.d.ts.map +1 -0
- package/build/tools/app-tools.js +126 -0
- package/build/tools/app-tools.js.map +1 -0
- package/build/tools/flow-tools.d.ts +3 -0
- package/build/tools/flow-tools.d.ts.map +1 -0
- package/build/tools/flow-tools.js +373 -0
- package/build/tools/flow-tools.js.map +1 -0
- package/build/tools/form-view-tools.d.ts +3 -0
- package/build/tools/form-view-tools.d.ts.map +1 -0
- package/build/tools/form-view-tools.js +161 -0
- package/build/tools/form-view-tools.js.map +1 -0
- package/build/tools/index.d.ts +14 -0
- package/build/tools/index.d.ts.map +1 -0
- package/build/tools/index.js +29 -0
- package/build/tools/index.js.map +1 -0
- package/build/tools/integration-tools.d.ts +3 -0
- package/build/tools/integration-tools.d.ts.map +1 -0
- package/build/tools/integration-tools.js +324 -0
- package/build/tools/integration-tools.js.map +1 -0
- package/build/tools/metadata-tools.d.ts +3 -0
- package/build/tools/metadata-tools.d.ts.map +1 -0
- package/build/tools/metadata-tools.js +165 -0
- package/build/tools/metadata-tools.js.map +1 -0
- package/build/tools/plugin-tools.d.ts +3 -0
- package/build/tools/plugin-tools.d.ts.map +1 -0
- package/build/tools/plugin-tools.js +137 -0
- package/build/tools/plugin-tools.js.map +1 -0
- package/build/tools/security-tools.d.ts +3 -0
- package/build/tools/security-tools.d.ts.map +1 -0
- package/build/tools/security-tools.js +187 -0
- package/build/tools/security-tools.js.map +1 -0
- package/build/tools/solution-tools.d.ts +3 -0
- package/build/tools/solution-tools.d.ts.map +1 -0
- package/build/tools/solution-tools.js +283 -0
- package/build/tools/solution-tools.js.map +1 -0
- package/build/types.d.ts +9 -0
- package/build/types.d.ts.map +1 -0
- package/build/types.js +2 -0
- package/build/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flow Tools - 9 tools for flow/workflow/business rule inspection
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export function registerFlowTools(server, ctx) {
|
|
6
|
+
server.tool("get-flows", "Get Power Automate cloud flows. By default excludes non-custom flows (Customer Insights CXP_, SYSTEM, Copilot for Sales) to show only custom flows. Use exclude* parameters to override. Returns summary info only - use get-flow-definition for full flow details.", {
|
|
7
|
+
activeOnly: z.boolean().optional().describe("Only return activated flows (default: false)"),
|
|
8
|
+
maxRecords: z.number().optional().describe("Maximum number of flows to return (default: 25)"),
|
|
9
|
+
excludeCustomerInsights: z.boolean().optional().describe("Exclude Customer Insights flows (CXP_ prefix) (default: true)"),
|
|
10
|
+
excludeSystem: z.boolean().optional().describe("Exclude SYSTEM-modified flows (default: true)"),
|
|
11
|
+
excludeCopilotSales: z.boolean().optional().describe("Exclude Copilot for Sales flows (default: true)"),
|
|
12
|
+
nameContains: z.string().optional().describe("Filter flows by name (case-insensitive contains)"),
|
|
13
|
+
}, async ({ activeOnly, maxRecords, excludeCustomerInsights, excludeSystem, excludeCopilotSales, nameContains }) => {
|
|
14
|
+
try {
|
|
15
|
+
const service = ctx.pp;
|
|
16
|
+
const result = await service.getFlows({
|
|
17
|
+
activeOnly: activeOnly ?? false,
|
|
18
|
+
maxRecords: maxRecords ?? 25,
|
|
19
|
+
excludeCustomerInsights: excludeCustomerInsights ?? true,
|
|
20
|
+
excludeSystem: excludeSystem ?? true,
|
|
21
|
+
excludeCopilotSales: excludeCopilotSales ?? true,
|
|
22
|
+
nameContains,
|
|
23
|
+
});
|
|
24
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
25
|
+
let message = `Found ${result.totalCount} Power Automate flows`;
|
|
26
|
+
if (result.excluded.total > 0) {
|
|
27
|
+
const exclusions = [];
|
|
28
|
+
if (result.excluded.system > 0) {
|
|
29
|
+
exclusions.push(`${result.excluded.system} SYSTEM`);
|
|
30
|
+
}
|
|
31
|
+
if (result.excluded.copilotSales > 0) {
|
|
32
|
+
exclusions.push(`${result.excluded.copilotSales} Copilot for Sales`);
|
|
33
|
+
}
|
|
34
|
+
message += ` (excluded: ${exclusions.join(', ')})`;
|
|
35
|
+
}
|
|
36
|
+
if (result.filterApplied.excludeCustomerInsights) {
|
|
37
|
+
message += '\nNote: Customer Insights (CXP_) flows filtered server-side';
|
|
38
|
+
}
|
|
39
|
+
if (result.hasMore) {
|
|
40
|
+
message += `\n⚠️ More flows available - increase maxRecords (currently ${result.requestedMax}) to retrieve more`;
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
content: [
|
|
44
|
+
{
|
|
45
|
+
type: "text",
|
|
46
|
+
text: `${message}:\n\n${resultStr}`,
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
console.error("Error getting flows:", error);
|
|
53
|
+
return {
|
|
54
|
+
content: [
|
|
55
|
+
{
|
|
56
|
+
type: "text",
|
|
57
|
+
text: `Failed to get flows: ${error.message}`,
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
server.tool("search-workflows", "Search workflows (both classic workflows and Power Automate flows) with flexible filtering. Supports searching by name, entity, description, category, and state. Useful for finding documented workflows (search description for 'AUTO-DOCS'), finding workflows by entity, or locating specific workflows by name.", {
|
|
64
|
+
name: z.string().optional().describe("Filter by workflow name (case-insensitive partial match)"),
|
|
65
|
+
primaryEntity: z.string().optional().describe("Filter by primary entity logical name (e.g., 'sic_contactpractitionertype')"),
|
|
66
|
+
description: z.string().optional().describe("Search in description field (e.g., 'AUTO-DOCS:v1' for documented workflows)"),
|
|
67
|
+
category: z.number().optional().describe("Filter by category: 0=Classic Workflow, 5=Power Automate Flow"),
|
|
68
|
+
statecode: z.number().optional().describe("Filter by state: 0=Draft, 1=Activated, 2=Suspended"),
|
|
69
|
+
includeDescription: z.boolean().optional().describe("Include full description field in results (default: true)"),
|
|
70
|
+
maxResults: z.number().optional().describe("Maximum number of workflows to return (default: 50, max: 1000)"),
|
|
71
|
+
}, async ({ name, primaryEntity, description, category, statecode, includeDescription, maxResults }) => {
|
|
72
|
+
try {
|
|
73
|
+
const service = ctx.pp;
|
|
74
|
+
const validatedMaxResults = maxResults ? Math.min(maxResults, 1000) : 50;
|
|
75
|
+
const result = await service.searchWorkflows({
|
|
76
|
+
name,
|
|
77
|
+
primaryEntity,
|
|
78
|
+
description,
|
|
79
|
+
category,
|
|
80
|
+
statecode,
|
|
81
|
+
includeDescription: includeDescription ?? true,
|
|
82
|
+
maxResults: validatedMaxResults,
|
|
83
|
+
});
|
|
84
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
85
|
+
let message = `Found ${result.totalCount} workflow(s)`;
|
|
86
|
+
const filters = [];
|
|
87
|
+
if (name)
|
|
88
|
+
filters.push(`name contains '${name}'`);
|
|
89
|
+
if (primaryEntity)
|
|
90
|
+
filters.push(`entity = '${primaryEntity}'`);
|
|
91
|
+
if (description)
|
|
92
|
+
filters.push(`description contains '${description}'`);
|
|
93
|
+
if (category !== undefined)
|
|
94
|
+
filters.push(`category = ${category}`);
|
|
95
|
+
if (statecode !== undefined)
|
|
96
|
+
filters.push(`state = ${statecode}`);
|
|
97
|
+
if (filters.length > 0) {
|
|
98
|
+
message += ` matching: ${filters.join(', ')}`;
|
|
99
|
+
}
|
|
100
|
+
if (result.hasMore) {
|
|
101
|
+
message += `\n⚠️ More workflows available - increase maxResults (currently ${result.requestedMax}) to retrieve more`;
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
content: [
|
|
105
|
+
{
|
|
106
|
+
type: "text",
|
|
107
|
+
text: `${message}:\n\n${resultStr}`,
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
console.error("Error searching workflows:", error);
|
|
114
|
+
return {
|
|
115
|
+
content: [
|
|
116
|
+
{
|
|
117
|
+
type: "text",
|
|
118
|
+
text: `Failed to search workflows: ${error.message}`,
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
isError: true
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
server.tool("get-flow-definition", "Get the definition of a specific Power Automate flow. Use summary=true to get a parsed summary (trigger, actions, connectors) instead of the full JSON definition.", {
|
|
126
|
+
flowId: z.string().describe("The GUID of the flow (workflowid)"),
|
|
127
|
+
summary: z.boolean().optional().describe("Return parsed summary instead of full definition (default: false). Recommended for initial analysis to reduce response size."),
|
|
128
|
+
}, async ({ flowId, summary }) => {
|
|
129
|
+
try {
|
|
130
|
+
const service = ctx.pp;
|
|
131
|
+
const result = await service.getFlowDefinition(flowId, summary || false);
|
|
132
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
133
|
+
let message = `Flow definition for '${result.name}'`;
|
|
134
|
+
if (summary) {
|
|
135
|
+
message += ' (summary mode)';
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
content: [
|
|
139
|
+
{
|
|
140
|
+
type: "text",
|
|
141
|
+
text: `${message}:\n\n${resultStr}`,
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
console.error("Error getting flow definition:", error);
|
|
148
|
+
return {
|
|
149
|
+
content: [
|
|
150
|
+
{
|
|
151
|
+
type: "text",
|
|
152
|
+
text: `Failed to get flow definition: ${error.message}`,
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
server.tool("get-flow-runs", "Get the run history for a specific Power Automate flow using the Management API. Returns run status, timestamps, trigger info, and error details for failed runs. Use this to investigate flow failures during incident triage.", {
|
|
159
|
+
flowId: z.string().describe("The GUID of the flow (workflowid)"),
|
|
160
|
+
status: z.string().optional().describe("Filter by status: Succeeded, Failed, Running, Waiting, Cancelled"),
|
|
161
|
+
startedAfter: z.string().optional().describe("Only return runs started after this date (ISO 8601 format, e.g., '2026-01-21T00:00:00Z')"),
|
|
162
|
+
startedBefore: z.string().optional().describe("Only return runs started before this date (ISO 8601 format)"),
|
|
163
|
+
maxRecords: z.number().optional().describe("Maximum number of runs to return (default: 50, max: 250)"),
|
|
164
|
+
}, async ({ flowId, status, startedAfter, startedBefore, maxRecords }) => {
|
|
165
|
+
try {
|
|
166
|
+
const service = ctx.pp;
|
|
167
|
+
const result = await service.getFlowRuns(flowId, {
|
|
168
|
+
status,
|
|
169
|
+
startedAfter,
|
|
170
|
+
startedBefore,
|
|
171
|
+
maxRecords: maxRecords || 50,
|
|
172
|
+
});
|
|
173
|
+
const stats = (result.runs || []).reduce((acc, run) => {
|
|
174
|
+
if (run.status === 'Succeeded')
|
|
175
|
+
acc.succeeded++;
|
|
176
|
+
else if (run.status === 'Failed' || run.status === 'Faulted' || run.status === 'TimedOut')
|
|
177
|
+
acc.failed++;
|
|
178
|
+
else if (run.status === 'Running' || run.status === 'Waiting')
|
|
179
|
+
acc.inProgress++;
|
|
180
|
+
else if (run.status === 'Cancelled')
|
|
181
|
+
acc.cancelled++;
|
|
182
|
+
else
|
|
183
|
+
acc.other++;
|
|
184
|
+
return acc;
|
|
185
|
+
}, { succeeded: 0, failed: 0, inProgress: 0, cancelled: 0, other: 0 });
|
|
186
|
+
const failedRuns = result.runs.filter((r) => r.status === 'Failed' || r.error);
|
|
187
|
+
const failedSummary = failedRuns.length > 0
|
|
188
|
+
? `\n\nFailed Runs (${failedRuns.length}):\n` + failedRuns.map((r) => ` - ${r.runId}: ${r.error?.message || 'Unknown error'} (${r.startTime})`).join('\n')
|
|
189
|
+
: '';
|
|
190
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
191
|
+
return {
|
|
192
|
+
content: [
|
|
193
|
+
{
|
|
194
|
+
type: "text",
|
|
195
|
+
text: `Found ${result.totalCount} flow runs for flow ${flowId}${result.hasMore ? ' (more available)' : ''}:\n\nStats:\n- Succeeded: ${stats.succeeded}\n- Failed: ${stats.failed}\n- In Progress: ${stats.inProgress}\n- Cancelled: ${stats.cancelled}\n- Other: ${stats.other}${failedSummary}\n\nFilters Applied: ${JSON.stringify(result.filterApplied)}\n\n${resultStr}`,
|
|
196
|
+
},
|
|
197
|
+
],
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
console.error("Error getting flow runs:", error);
|
|
202
|
+
return {
|
|
203
|
+
content: [
|
|
204
|
+
{
|
|
205
|
+
type: "text",
|
|
206
|
+
text: `Failed to get flow runs: ${error.message}`,
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
isError: true,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
server.tool("get-flow-run-details", "Get detailed action-level execution information for a specific Power Automate flow run to verify which business logic steps were executed", {
|
|
214
|
+
flowId: z.string().describe("The GUID of the flow (workflowid)"),
|
|
215
|
+
runId: z.string().describe("The GUID of the flow run (flowrunid) - get this from get-flow-runs tool"),
|
|
216
|
+
}, async ({ flowId, runId }) => {
|
|
217
|
+
try {
|
|
218
|
+
const service = ctx.pp;
|
|
219
|
+
const result = await service.getFlowRunDetails(flowId, runId);
|
|
220
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
221
|
+
const r = result;
|
|
222
|
+
const actionsList = Object.entries(r.actions || {})
|
|
223
|
+
.map(([name, action]) => {
|
|
224
|
+
const statusIcon = action.status === 'Succeeded' ? '✓' : action.status === 'Failed' ? '✗' : action.status === 'Skipped' ? '⊘' : '?';
|
|
225
|
+
return ` ${statusIcon} ${name}: ${action.status}${action.error ? ' - ' + JSON.stringify(action.error) : ''}`;
|
|
226
|
+
})
|
|
227
|
+
.join('\n');
|
|
228
|
+
return {
|
|
229
|
+
content: [
|
|
230
|
+
{
|
|
231
|
+
type: "text",
|
|
232
|
+
text: `Flow Run Details for ${flowId}/${runId}:\n\nOverall Status: ${r.status}\nStart Time: ${r.startTime}\nEnd Time: ${r.endTime}\n\nTrigger:\n Name: ${r.trigger?.name}\n Status: ${r.trigger?.status}\n\nActions Summary:\n- Total: ${r.actionsSummary?.total}\n- Succeeded: ${r.actionsSummary?.succeeded}\n- Failed: ${r.actionsSummary?.failed}\n- Skipped: ${r.actionsSummary?.skipped}\n- Other: ${r.actionsSummary?.other}\n\nAction Execution Details:\n${actionsList}\n\nFull JSON Response:\n${resultStr}`,
|
|
233
|
+
},
|
|
234
|
+
],
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
catch (error) {
|
|
238
|
+
console.error("Error getting flow run details:", error);
|
|
239
|
+
return {
|
|
240
|
+
content: [
|
|
241
|
+
{
|
|
242
|
+
type: "text",
|
|
243
|
+
text: `Failed to get flow run details: ${error.message}`,
|
|
244
|
+
},
|
|
245
|
+
],
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
server.tool("get-workflows", "Get a list of classic Dynamics workflows in the environment. Returns summary info only - use get-workflow-definition for full XAML.", {
|
|
250
|
+
activeOnly: z.boolean().optional().describe("Only return activated workflows (default: false)"),
|
|
251
|
+
maxRecords: z.number().optional().describe("Maximum number of workflows to return (default: 25)"),
|
|
252
|
+
}, async ({ activeOnly, maxRecords }) => {
|
|
253
|
+
try {
|
|
254
|
+
const service = ctx.pp;
|
|
255
|
+
const result = await service.getWorkflows(activeOnly || false, maxRecords || 25);
|
|
256
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
257
|
+
let message = `Found ${result.totalCount} classic Dynamics workflows`;
|
|
258
|
+
if (result.hasMore) {
|
|
259
|
+
message += `\n⚠️ More workflows available - increase maxRecords (currently ${result.requestedMax}) to retrieve more`;
|
|
260
|
+
}
|
|
261
|
+
return {
|
|
262
|
+
content: [
|
|
263
|
+
{
|
|
264
|
+
type: "text",
|
|
265
|
+
text: `${message}:\n\n${resultStr}`,
|
|
266
|
+
},
|
|
267
|
+
],
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
catch (error) {
|
|
271
|
+
console.error("Error getting workflows:", error);
|
|
272
|
+
return {
|
|
273
|
+
content: [
|
|
274
|
+
{
|
|
275
|
+
type: "text",
|
|
276
|
+
text: `Failed to get workflows: ${error.message}`,
|
|
277
|
+
},
|
|
278
|
+
],
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
server.tool("get-workflow-definition", "Get the definition of a specific classic Dynamics workflow. Use summary=true to get a parsed summary (activities, conditions, email sends) instead of raw XAML.", {
|
|
283
|
+
workflowId: z.string().describe("The GUID of the workflow (workflowid)"),
|
|
284
|
+
summary: z.boolean().optional().describe("Return parsed summary instead of full XAML (default: false). Recommended for initial analysis to reduce response size."),
|
|
285
|
+
}, async ({ workflowId, summary }) => {
|
|
286
|
+
try {
|
|
287
|
+
const service = ctx.pp;
|
|
288
|
+
const result = await service.getWorkflowDefinition(workflowId, summary || false);
|
|
289
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
290
|
+
let message = `Workflow definition for '${result.name}'`;
|
|
291
|
+
if (summary) {
|
|
292
|
+
message += ' (summary mode)';
|
|
293
|
+
}
|
|
294
|
+
return {
|
|
295
|
+
content: [
|
|
296
|
+
{
|
|
297
|
+
type: "text",
|
|
298
|
+
text: `${message}:\n\n${resultStr}`,
|
|
299
|
+
},
|
|
300
|
+
],
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
catch (error) {
|
|
304
|
+
console.error("Error getting workflow definition:", error);
|
|
305
|
+
return {
|
|
306
|
+
content: [
|
|
307
|
+
{
|
|
308
|
+
type: "text",
|
|
309
|
+
text: `Failed to get workflow definition: ${error.message}`,
|
|
310
|
+
},
|
|
311
|
+
],
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
});
|
|
315
|
+
server.tool("get-business-rules", "Get a list of all business rules in the environment (read-only for troubleshooting)", {
|
|
316
|
+
activeOnly: z.boolean().optional().describe("Only return activated business rules (default: false)"),
|
|
317
|
+
maxRecords: z.number().optional().describe("Maximum number of business rules to return (default: 100)"),
|
|
318
|
+
}, async ({ activeOnly, maxRecords }) => {
|
|
319
|
+
try {
|
|
320
|
+
const service = ctx.pp;
|
|
321
|
+
const result = await service.getBusinessRules(activeOnly || false, maxRecords || 100);
|
|
322
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
323
|
+
return {
|
|
324
|
+
content: [
|
|
325
|
+
{
|
|
326
|
+
type: "text",
|
|
327
|
+
text: `Found ${result.totalCount} business rules:\n\n${resultStr}`,
|
|
328
|
+
},
|
|
329
|
+
],
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
catch (error) {
|
|
333
|
+
console.error("Error getting business rules:", error);
|
|
334
|
+
return {
|
|
335
|
+
content: [
|
|
336
|
+
{
|
|
337
|
+
type: "text",
|
|
338
|
+
text: `Failed to get business rules: ${error.message}`,
|
|
339
|
+
},
|
|
340
|
+
],
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
});
|
|
344
|
+
server.tool("get-business-rule", "Get the complete definition of a specific business rule including its XAML (read-only for troubleshooting)", {
|
|
345
|
+
workflowId: z.string().describe("The GUID of the business rule (workflowid)"),
|
|
346
|
+
}, async ({ workflowId }) => {
|
|
347
|
+
try {
|
|
348
|
+
const service = ctx.pp;
|
|
349
|
+
const result = await service.getBusinessRule(workflowId);
|
|
350
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
351
|
+
return {
|
|
352
|
+
content: [
|
|
353
|
+
{
|
|
354
|
+
type: "text",
|
|
355
|
+
text: `Business rule definition for '${result.name}':\n\n${resultStr}`,
|
|
356
|
+
},
|
|
357
|
+
],
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
catch (error) {
|
|
361
|
+
console.error("Error getting business rule:", error);
|
|
362
|
+
return {
|
|
363
|
+
content: [
|
|
364
|
+
{
|
|
365
|
+
type: "text",
|
|
366
|
+
text: `Failed to get business rule: ${error.message}`,
|
|
367
|
+
},
|
|
368
|
+
],
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
//# sourceMappingURL=flow-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-tools.js","sourceRoot":"","sources":["../../src/tools/flow-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-view-tools.d.ts","sourceRoot":"","sources":["../../src/tools/form-view-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA6M5E"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Form/View Tools - 7 tools for forms, views, and web resources
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export function registerFormViewTools(server, ctx) {
|
|
6
|
+
server.tool("get-webres-deps", "Get all dependencies for a web resource", {
|
|
7
|
+
webResourceId: z.string().describe("Web resource ID (GUID)")
|
|
8
|
+
}, async ({ webResourceId }) => {
|
|
9
|
+
try {
|
|
10
|
+
const service = ctx.pp;
|
|
11
|
+
const dependencies = await service.getWebResourceDependencies(webResourceId);
|
|
12
|
+
return {
|
|
13
|
+
content: [{ type: "text", text: `Web Resource Dependencies:\n${JSON.stringify(dependencies, null, 2)}` }]
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
console.error("Error getting web resource dependencies:", error);
|
|
18
|
+
return { content: [{ type: "text", text: `Failed to get web resource dependencies: ${error.message}` }], isError: true };
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
server.tool("preview-unpublished", "Preview all components with unpublished customizations", {}, async () => {
|
|
22
|
+
try {
|
|
23
|
+
const service = ctx.pp;
|
|
24
|
+
const unpublished = await service.previewUnpublishedChanges();
|
|
25
|
+
return {
|
|
26
|
+
content: [{ type: "text", text: `Unpublished Changes:\n${JSON.stringify(unpublished, null, 2)}` }]
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
console.error("Error previewing unpublished changes:", error);
|
|
31
|
+
return { content: [{ type: "text", text: `Failed to preview unpublished changes: ${error.message}` }], isError: true };
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
server.tool("get-forms", "Get all forms for an entity", {
|
|
35
|
+
entityLogicalName: z.string().describe("Entity logical name")
|
|
36
|
+
}, async ({ entityLogicalName }) => {
|
|
37
|
+
try {
|
|
38
|
+
const service = ctx.pp;
|
|
39
|
+
const result = await service.getForms(entityLogicalName);
|
|
40
|
+
const forms = result.value || [];
|
|
41
|
+
const typeNames = { 2: "Main", 7: "QuickCreate", 8: "QuickView", 10: "Card" };
|
|
42
|
+
return {
|
|
43
|
+
content: [
|
|
44
|
+
{
|
|
45
|
+
type: "text",
|
|
46
|
+
text: `Found ${forms.length} form(s) for entity '${entityLogicalName}':\n\n` +
|
|
47
|
+
forms.map((f) => `- ${f.name} (${typeNames[f.type] || f.type})\n ID: ${f.formid}`).join('\n')
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
console.error("Error getting forms:", error);
|
|
54
|
+
return {
|
|
55
|
+
content: [{ type: "text", text: `Failed to get forms: ${error.message}` }],
|
|
56
|
+
isError: true
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
server.tool("get-views", "Get all views for an entity", {
|
|
61
|
+
entityLogicalName: z.string().describe("Entity logical name")
|
|
62
|
+
}, async ({ entityLogicalName }) => {
|
|
63
|
+
try {
|
|
64
|
+
const service = ctx.pp;
|
|
65
|
+
const result = await service.getViews(entityLogicalName);
|
|
66
|
+
const views = result.value || [];
|
|
67
|
+
return {
|
|
68
|
+
content: [
|
|
69
|
+
{
|
|
70
|
+
type: "text",
|
|
71
|
+
text: `Found ${views.length} view(s) for entity '${entityLogicalName}':\n\n` +
|
|
72
|
+
views.map((v) => `- ${v.name}${v.isdefault ? ' [DEFAULT]' : ''}\n ID: ${v.savedqueryid}\n Query Type: ${v.querytype}`).join('\n')
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
console.error("Error getting views:", error);
|
|
79
|
+
return {
|
|
80
|
+
content: [{ type: "text", text: `Failed to get views: ${error.message}` }],
|
|
81
|
+
isError: true
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
server.tool("get-view-fetchxml", "Get the FetchXML query from a view", {
|
|
86
|
+
viewId: z.string().describe("View ID (GUID)")
|
|
87
|
+
}, async ({ viewId }) => {
|
|
88
|
+
try {
|
|
89
|
+
const service = ctx.pp;
|
|
90
|
+
const view = await service.getViewFetchXml(viewId);
|
|
91
|
+
return {
|
|
92
|
+
content: [
|
|
93
|
+
{
|
|
94
|
+
type: "text",
|
|
95
|
+
text: `View: ${view.name}\nEntity: ${view.returnedtypecode}\nQuery Type: ${view.querytype}\n\nFetchXML:\n${view.fetchxml}`
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
console.error("Error getting view FetchXML:", error);
|
|
102
|
+
return {
|
|
103
|
+
content: [{ type: "text", text: `Failed to get view FetchXML: ${error.message}` }],
|
|
104
|
+
isError: true
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
server.tool("get-web-resource", "Get a web resource by ID", {
|
|
109
|
+
webResourceId: z.string().describe("Web resource ID (GUID)")
|
|
110
|
+
}, async ({ webResourceId }) => {
|
|
111
|
+
try {
|
|
112
|
+
const service = ctx.pp;
|
|
113
|
+
const result = await service.getWebResource(webResourceId);
|
|
114
|
+
return {
|
|
115
|
+
content: [
|
|
116
|
+
{
|
|
117
|
+
type: "text",
|
|
118
|
+
text: `Web Resource: ${result.name}\n` +
|
|
119
|
+
`Display Name: ${result.displayname}\n` +
|
|
120
|
+
`Type: ${result.webresourcetype}\n` +
|
|
121
|
+
`Description: ${result.description || 'N/A'}\n` +
|
|
122
|
+
`Modified: ${result.modifiedon}`
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
console.error("Error getting web resource:", error);
|
|
129
|
+
return {
|
|
130
|
+
content: [{ type: "text", text: `Failed to get web resource: ${error.message}` }],
|
|
131
|
+
isError: true
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
server.tool("get-web-resources", "Get web resources by name pattern (optional)", {
|
|
136
|
+
nameFilter: z.string().optional().describe("Name filter (contains)")
|
|
137
|
+
}, async ({ nameFilter }) => {
|
|
138
|
+
try {
|
|
139
|
+
const service = ctx.pp;
|
|
140
|
+
const result = await service.getWebResources(nameFilter);
|
|
141
|
+
const webResources = result.value || [];
|
|
142
|
+
return {
|
|
143
|
+
content: [
|
|
144
|
+
{
|
|
145
|
+
type: "text",
|
|
146
|
+
text: `Found ${webResources.length} web resource(s):\n\n` +
|
|
147
|
+
webResources.map((wr) => `- ${wr.name}\n Type: ${wr.webresourcetype}\n ID: ${wr.webresourceid}`).join('\n')
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
console.error("Error getting web resources:", error);
|
|
154
|
+
return {
|
|
155
|
+
content: [{ type: "text", text: `Failed to get web resources: ${error.message}` }],
|
|
156
|
+
isError: true
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=form-view-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-view-tools.js","sourceRoot":"","sources":["../../src/tools/form-view-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,qBAAqB,CAAC,MAAW,EAAE,GAAmB;IACpE,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,yCAAyC,EACzC;QACE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KAC7D,EACD,KAAK,EAAE,EAAE,aAAa,EAAO,EAAE,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;YAE7E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;aAC1G,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;YACjE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4CAA4C,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3H,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,wDAAwD,EACxD,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,yBAAyB,EAAE,CAAC;YAE9D,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;aACnG,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;YAC9D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0CAA0C,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzH,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,WAAW,EACX,6BAA6B,EAC7B;QACE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KAC9D,EACD,KAAK,EAAE,EAAE,iBAAiB,EAAO,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAQ,CAAC;YAEhE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,SAAS,GAA8B,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;YAEzG,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,SAAS,KAAK,CAAC,MAAM,wBAAwB,iBAAiB,QAAQ;4BACtE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CACnB,KAAK,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,MAAM,EAAE,CAClE,CAAC,IAAI,CAAC,IAAI,CAAC;qBACnB;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC7C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1E,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,WAAW,EACX,6BAA6B,EAC7B;QACE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KAC9D,EACD,KAAK,EAAE,EAAE,iBAAiB,EAAO,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAQ,CAAC;YAEhE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YAEjC,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,SAAS,KAAK,CAAC,MAAM,wBAAwB,iBAAiB,QAAQ;4BACtE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CACnB,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,YAAY,mBAAmB,CAAC,CAAC,SAAS,EAAE,CACvG,CAAC,IAAI,CAAC,IAAI,CAAC;qBACnB;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC7C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1E,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,oCAAoC,EACpC;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KAC9C,EACD,KAAK,EAAE,EAAE,MAAM,EAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,MAAM,CAAQ,CAAC;YAE1D,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,SAAS,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,gBAAgB,iBAAiB,IAAI,CAAC,SAAS,kBAAkB,IAAI,CAAC,QAAQ,EAAE;qBAC3H;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAClF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,0BAA0B,EAC1B;QACE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KAC7D,EACD,KAAK,EAAE,EAAE,aAAa,EAAO,EAAE,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,aAAa,CAAQ,CAAC;YAElE,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,iBAAiB,MAAM,CAAC,IAAI,IAAI;4BAChC,iBAAiB,MAAM,CAAC,WAAW,IAAI;4BACvC,SAAS,MAAM,CAAC,eAAe,IAAI;4BACnC,gBAAgB,MAAM,CAAC,WAAW,IAAI,KAAK,IAAI;4BAC/C,aAAa,MAAM,CAAC,UAAU,EAAE;qBACvC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACpD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACjF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,8CAA8C,EAC9C;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KACrE,EACD,KAAK,EAAE,EAAE,UAAU,EAAO,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,UAAU,CAAQ,CAAC;YAEhE,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YAExC,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,SAAS,YAAY,CAAC,MAAM,uBAAuB;4BACnD,YAAY,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAC3B,KAAK,EAAE,CAAC,IAAI,aAAa,EAAE,CAAC,eAAe,WAAW,EAAE,CAAC,aAAa,EAAE,CACzE,CAAC,IAAI,CAAC,IAAI,CAAC;qBACnB;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAClF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools barrel export + combined registration
|
|
3
|
+
*/
|
|
4
|
+
import type { ServiceContext } from '../types.js';
|
|
5
|
+
export declare function registerAllTools(server: any, ctx: ServiceContext): void;
|
|
6
|
+
export { registerMetadataTools } from './metadata-tools.js';
|
|
7
|
+
export { registerPluginTools } from './plugin-tools.js';
|
|
8
|
+
export { registerFlowTools } from './flow-tools.js';
|
|
9
|
+
export { registerAppTools } from './app-tools.js';
|
|
10
|
+
export { registerFormViewTools } from './form-view-tools.js';
|
|
11
|
+
export { registerSolutionTools } from './solution-tools.js';
|
|
12
|
+
export { registerIntegrationTools } from './integration-tools.js';
|
|
13
|
+
export { registerSecurityTools } from './security-tools.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAUlD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAYvE;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { registerMetadataTools } from './metadata-tools.js';
|
|
2
|
+
import { registerPluginTools } from './plugin-tools.js';
|
|
3
|
+
import { registerFlowTools } from './flow-tools.js';
|
|
4
|
+
import { registerAppTools } from './app-tools.js';
|
|
5
|
+
import { registerFormViewTools } from './form-view-tools.js';
|
|
6
|
+
import { registerSolutionTools } from './solution-tools.js';
|
|
7
|
+
import { registerIntegrationTools } from './integration-tools.js';
|
|
8
|
+
import { registerSecurityTools } from './security-tools.js';
|
|
9
|
+
export function registerAllTools(server, ctx) {
|
|
10
|
+
registerMetadataTools(server, ctx);
|
|
11
|
+
registerPluginTools(server, ctx);
|
|
12
|
+
registerFlowTools(server, ctx);
|
|
13
|
+
registerAppTools(server, ctx);
|
|
14
|
+
registerFormViewTools(server, ctx);
|
|
15
|
+
registerSolutionTools(server, ctx);
|
|
16
|
+
registerIntegrationTools(server, ctx);
|
|
17
|
+
registerSecurityTools(server, ctx);
|
|
18
|
+
// 5 metadata + 4 plugin + 9 flow + 4 app + 7 form-view + 8 solution + 5 integration + 4 security = 46
|
|
19
|
+
console.error(`powerplatform tools registered: 46 tools`);
|
|
20
|
+
}
|
|
21
|
+
export { registerMetadataTools } from './metadata-tools.js';
|
|
22
|
+
export { registerPluginTools } from './plugin-tools.js';
|
|
23
|
+
export { registerFlowTools } from './flow-tools.js';
|
|
24
|
+
export { registerAppTools } from './app-tools.js';
|
|
25
|
+
export { registerFormViewTools } from './form-view-tools.js';
|
|
26
|
+
export { registerSolutionTools } from './solution-tools.js';
|
|
27
|
+
export { registerIntegrationTools } from './integration-tools.js';
|
|
28
|
+
export { registerSecurityTools } from './security-tools.js';
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,UAAU,gBAAgB,CAAC,MAAW,EAAE,GAAmB;IAC/D,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEnC,sGAAsG;IACtG,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC5D,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration-tools.d.ts","sourceRoot":"","sources":["../../src/tools/integration-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAmX/E"}
|