@mcp-consultant-tools/powerplatform 32.0.0-beta.4 → 33.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.
Files changed (110) hide show
  1. package/build/cli/commands/metadata-commands.js +2 -2
  2. package/build/cli/commands/metadata-commands.js.map +1 -1
  3. package/build/cli.js +0 -0
  4. package/build/http-server.js +0 -0
  5. package/build/index.js +0 -0
  6. package/package.json +3 -3
  7. package/build/PowerPlatformService.d.ts +0 -201
  8. package/build/PowerPlatformService.js +0 -305
  9. package/build/PowerPlatformService.js.map +0 -1
  10. package/build/auth/index.d.ts +0 -64
  11. package/build/auth/index.d.ts.map +0 -1
  12. package/build/auth/index.js +0 -39
  13. package/build/auth/index.js.map +0 -1
  14. package/build/auth/interactive-auth.d.ts +0 -60
  15. package/build/auth/interactive-auth.d.ts.map +0 -1
  16. package/build/auth/interactive-auth.js +0 -429
  17. package/build/auth/interactive-auth.js.map +0 -1
  18. package/build/auth/service-principal-auth.d.ts +0 -26
  19. package/build/auth/service-principal-auth.d.ts.map +0 -1
  20. package/build/auth/service-principal-auth.js +0 -60
  21. package/build/auth/service-principal-auth.js.map +0 -1
  22. package/build/auth/token-cache.d.ts +0 -40
  23. package/build/auth/token-cache.d.ts.map +0 -1
  24. package/build/auth/token-cache.js +0 -108
  25. package/build/auth/token-cache.js.map +0 -1
  26. package/build/cli/commands/app-commands.d.ts +0 -7
  27. package/build/cli/commands/field-security-commands.d.ts +0 -8
  28. package/build/cli/commands/flow-commands.d.ts +0 -7
  29. package/build/cli/commands/form-commands.d.ts +0 -7
  30. package/build/cli/commands/index.d.ts +0 -16
  31. package/build/cli/commands/index.js +0 -33
  32. package/build/cli/commands/index.js.map +0 -1
  33. package/build/cli/commands/integration-commands.d.ts +0 -7
  34. package/build/cli/commands/metadata-commands.d.ts +0 -7
  35. package/build/cli/commands/plugin-commands.d.ts +0 -7
  36. package/build/cli/commands/security-commands.d.ts +0 -7
  37. package/build/cli/commands/solution-commands.d.ts +0 -7
  38. package/build/cli/output.d.ts +0 -11
  39. package/build/cli.d.ts +0 -9
  40. package/build/context-factory.d.ts +0 -11
  41. package/build/context-factory.js +0 -39
  42. package/build/context-factory.js.map +0 -1
  43. package/build/http-server.d.ts +0 -3
  44. package/build/index.d.ts +0 -18
  45. package/build/prompts/analysis-prompts.d.ts +0 -3
  46. package/build/prompts/analysis-prompts.js +0 -286
  47. package/build/prompts/analysis-prompts.js.map +0 -1
  48. package/build/prompts/entity-prompts.d.ts +0 -3
  49. package/build/prompts/entity-prompts.js +0 -304
  50. package/build/prompts/entity-prompts.js.map +0 -1
  51. package/build/prompts/index.d.ts +0 -8
  52. package/build/prompts/index.js +0 -11
  53. package/build/prompts/index.js.map +0 -1
  54. package/build/services/index.d.ts +0 -5
  55. package/build/services/index.js +0 -5
  56. package/build/services/index.js.map +0 -1
  57. package/build/tool-examples.d.ts +0 -48
  58. package/build/tools/app-tools.d.ts +0 -3
  59. package/build/tools/app-tools.js +0 -127
  60. package/build/tools/app-tools.js.map +0 -1
  61. package/build/tools/field-security-tools.d.ts +0 -3
  62. package/build/tools/field-security-tools.js +0 -84
  63. package/build/tools/field-security-tools.js.map +0 -1
  64. package/build/tools/flow-tools.d.ts +0 -3
  65. package/build/tools/flow-tools.js +0 -374
  66. package/build/tools/flow-tools.js.map +0 -1
  67. package/build/tools/form-view-tools.d.ts +0 -3
  68. package/build/tools/form-view-tools.js +0 -162
  69. package/build/tools/form-view-tools.js.map +0 -1
  70. package/build/tools/index.d.ts +0 -14
  71. package/build/tools/index.js +0 -31
  72. package/build/tools/index.js.map +0 -1
  73. package/build/tools/integration-tools.d.ts +0 -3
  74. package/build/tools/integration-tools.js +0 -325
  75. package/build/tools/integration-tools.js.map +0 -1
  76. package/build/tools/metadata-tools.d.ts +0 -3
  77. package/build/tools/metadata-tools.js +0 -166
  78. package/build/tools/metadata-tools.js.map +0 -1
  79. package/build/tools/plugin-tools.d.ts +0 -3
  80. package/build/tools/plugin-tools.js +0 -138
  81. package/build/tools/plugin-tools.js.map +0 -1
  82. package/build/tools/security-tools.d.ts +0 -3
  83. package/build/tools/security-tools.js +0 -188
  84. package/build/tools/security-tools.js.map +0 -1
  85. package/build/tools/solution-tools.d.ts +0 -3
  86. package/build/tools/solution-tools.js +0 -318
  87. package/build/tools/solution-tools.js.map +0 -1
  88. package/build/types.d.ts +0 -9
  89. package/build/types.js +0 -2
  90. package/build/types.js.map +0 -1
  91. package/build/utils/best-practices-formatters.d.ts +0 -26
  92. package/build/utils/best-practices-formatters.d.ts.map +0 -1
  93. package/build/utils/best-practices-formatters.js +0 -238
  94. package/build/utils/best-practices-formatters.js.map +0 -1
  95. package/build/utils/bestPractices.d.ts +0 -152
  96. package/build/utils/bestPractices.d.ts.map +0 -1
  97. package/build/utils/bestPractices.js +0 -338
  98. package/build/utils/bestPractices.js.map +0 -1
  99. package/build/utils/iconManager.d.ts +0 -84
  100. package/build/utils/iconManager.d.ts.map +0 -1
  101. package/build/utils/iconManager.js +0 -342
  102. package/build/utils/iconManager.js.map +0 -1
  103. package/build/utils/prompt-templates.d.ts +0 -9
  104. package/build/utils/prompt-templates.d.ts.map +0 -1
  105. package/build/utils/prompt-templates.js +0 -31
  106. package/build/utils/prompt-templates.js.map +0 -1
  107. package/build/utils/rate-limiter.d.ts +0 -108
  108. package/build/utils/rate-limiter.d.ts.map +0 -1
  109. package/build/utils/rate-limiter.js +0 -241
  110. package/build/utils/rate-limiter.js.map +0 -1
@@ -1,8 +0,0 @@
1
- /**
2
- * Prompts barrel export + combined registration
3
- */
4
- import type { ServiceContext } from '../types.js';
5
- export declare function registerAllPrompts(server: any, ctx: ServiceContext): void;
6
- export { registerEntityPrompts } from './entity-prompts.js';
7
- export { registerAnalysisPrompts } from './analysis-prompts.js';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1,11 +0,0 @@
1
- import { registerEntityPrompts } from './entity-prompts.js';
2
- import { registerAnalysisPrompts } from './analysis-prompts.js';
3
- export function registerAllPrompts(server, ctx) {
4
- registerEntityPrompts(server, ctx);
5
- registerAnalysisPrompts(server, ctx);
6
- // 6 entity + 6 analysis = 12
7
- console.error(`powerplatform prompts registered: 12 prompts`);
8
- }
9
- export { registerEntityPrompts } from './entity-prompts.js';
10
- export { registerAnalysisPrompts } from './analysis-prompts.js';
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,UAAU,kBAAkB,CAAC,MAAW,EAAE,GAAmB;IACjE,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAErC,6BAA6B;IAC7B,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAChE,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Services barrel export
3
- */
4
- export { PowerPlatformService } from '../PowerPlatformService.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1,5 +0,0 @@
1
- /**
2
- * Services barrel export
3
- */
4
- export { PowerPlatformService } from '../PowerPlatformService.js';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,48 +0,0 @@
1
- /**
2
- * Tool Examples for PowerPlatform Read-Only Tools
3
- * Provides examples to improve LLM accuracy when using these tools.
4
- *
5
- * Anthropic research shows 72% -> 90% accuracy improvement with examples.
6
- */
7
- export { descWithExamples } from '@mcp-consultant-tools/core';
8
- export declare const ENTITY_NAME_EXAMPLES: {
9
- label: string;
10
- value: string;
11
- }[];
12
- export declare const ATTRIBUTE_TYPE_EXAMPLES: {
13
- label: string;
14
- value: string;
15
- }[];
16
- export declare const FLOW_CATEGORY_EXAMPLES: {
17
- label: string;
18
- value: string;
19
- }[];
20
- export declare const STATECODE_EXAMPLES: {
21
- label: string;
22
- value: string;
23
- }[];
24
- export declare const FLOW_RUN_STATUS_EXAMPLES: {
25
- label: string;
26
- value: string;
27
- }[];
28
- export declare const MESSAGE_FILTER_EXAMPLES: {
29
- label: string;
30
- value: string;
31
- }[];
32
- export declare const HOURS_BACK_EXAMPLES: {
33
- label: string;
34
- value: string;
35
- }[];
36
- export declare const SOLUTION_NAME_EXAMPLES: {
37
- label: string;
38
- value: string;
39
- }[];
40
- export declare const COMPONENT_TYPE_EXAMPLES: {
41
- label: string;
42
- value: string;
43
- }[];
44
- export declare const OUTPUT_FORMAT_EXAMPLES: {
45
- label: string;
46
- value: string;
47
- }[];
48
- //# sourceMappingURL=tool-examples.d.ts.map
@@ -1,3 +0,0 @@
1
- import type { ServiceContext } from '../types.js';
2
- export declare function registerAppTools(server: any, ctx: ServiceContext): void;
3
- //# sourceMappingURL=app-tools.d.ts.map
@@ -1,127 +0,0 @@
1
- /**
2
- * App Tools - 4 tools for model-driven app inspection
3
- */
4
- import { z } from 'zod';
5
- import { descWithExamples, SOLUTION_NAME_EXAMPLES } from '../tool-examples.js';
6
- export function registerAppTools(server, ctx) {
7
- server.tool("get-apps", "Get all model-driven apps in the PowerPlatform environment. Returns app name, unique name, URL, published status, and solution association.", {
8
- activeOnly: z.boolean().optional().describe("Only return active apps (default: false)"),
9
- maxRecords: z.number().optional().describe("Maximum number of apps to return (default: 100)"),
10
- includeUnpublished: z.boolean().optional().describe("Include unpublished/draft apps (default: true)"),
11
- solutionUniqueName: z.string().optional().describe(descWithExamples("Filter apps by solution unique name", SOLUTION_NAME_EXAMPLES)),
12
- }, async ({ activeOnly, maxRecords, includeUnpublished, solutionUniqueName }) => {
13
- try {
14
- const service = ctx.pp;
15
- const result = await service.getApps(activeOnly || false, maxRecords || 100, includeUnpublished !== undefined ? includeUnpublished : true, solutionUniqueName);
16
- const resultStr = JSON.stringify(result, null, 2);
17
- return {
18
- content: [
19
- {
20
- type: "text",
21
- text: `Model-Driven Apps (found ${result.totalCount}):\n\n${resultStr}`,
22
- },
23
- ],
24
- };
25
- }
26
- catch (error) {
27
- console.error("Error getting apps:", error);
28
- return {
29
- content: [
30
- {
31
- type: "text",
32
- text: `Failed to get apps: ${error.message}`,
33
- },
34
- ],
35
- isError: true
36
- };
37
- }
38
- });
39
- server.tool("get-app", "Get detailed information about a specific model-driven app", {
40
- appId: z.string().describe("The GUID of the app (appmoduleid)"),
41
- }, async ({ appId }) => {
42
- try {
43
- const service = ctx.pp;
44
- const result = await service.getApp(appId);
45
- const resultStr = JSON.stringify(result, null, 2);
46
- return {
47
- content: [
48
- {
49
- type: "text",
50
- text: `Model-Driven App '${result.name}':\n\n${resultStr}`,
51
- },
52
- ],
53
- };
54
- }
55
- catch (error) {
56
- console.error("Error getting app:", error);
57
- return {
58
- content: [
59
- {
60
- type: "text",
61
- text: `Failed to get app: ${error.message}`,
62
- },
63
- ],
64
- isError: true
65
- };
66
- }
67
- });
68
- server.tool("get-app-components", "Get all components (entities, forms, views, sitemaps) in a model-driven app", {
69
- appId: z.string().describe("The GUID of the app (appmoduleid)"),
70
- }, async ({ appId }) => {
71
- try {
72
- const service = ctx.pp;
73
- const result = await service.getAppComponents(appId);
74
- const resultStr = JSON.stringify(result, null, 2);
75
- return {
76
- content: [
77
- {
78
- type: "text",
79
- text: `App Components (found ${result.totalCount}):\n\n${resultStr}`,
80
- },
81
- ],
82
- };
83
- }
84
- catch (error) {
85
- console.error("Error getting app components:", error);
86
- return {
87
- content: [
88
- {
89
- type: "text",
90
- text: `Failed to get app components: ${error.message}`,
91
- },
92
- ],
93
- isError: true
94
- };
95
- }
96
- });
97
- server.tool("get-app-sitemap", "Get the sitemap (navigation) configuration for a model-driven app", {
98
- appId: z.string().describe("The GUID of the app (appmoduleid)"),
99
- }, async ({ appId }) => {
100
- try {
101
- const service = ctx.pp;
102
- const result = await service.getAppSitemap(appId);
103
- const resultStr = JSON.stringify(result, null, 2);
104
- return {
105
- content: [
106
- {
107
- type: "text",
108
- text: `App Sitemap:\n\n${resultStr}`,
109
- },
110
- ],
111
- };
112
- }
113
- catch (error) {
114
- console.error("Error getting app sitemap:", error);
115
- return {
116
- content: [
117
- {
118
- type: "text",
119
- text: `Failed to get app sitemap: ${error.message}`,
120
- },
121
- ],
122
- isError: true
123
- };
124
- }
125
- });
126
- }
127
- //# sourceMappingURL=app-tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-tools.js","sourceRoot":"","sources":["../../src/tools/app-tools.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { ServiceContext } from '../types.js';
2
- export declare function registerFieldSecurityTools(server: any, ctx: ServiceContext): void;
3
- //# sourceMappingURL=field-security-tools.d.ts.map
@@ -1,84 +0,0 @@
1
- /**
2
- * Field Security Tools (read-only) - 3 tools
3
- *
4
- * Tools: list-field-security-profiles, get-field-security-profile, get-secured-columns
5
- */
6
- import { z } from 'zod';
7
- import { descWithExamples, ENTITY_NAME_EXAMPLES } from '../tool-examples.js';
8
- function ok(text) {
9
- return { content: [{ type: 'text', text }] };
10
- }
11
- function err(message) {
12
- return { content: [{ type: 'text', text: message }], isError: true };
13
- }
14
- export function registerFieldSecurityTools(server, ctx) {
15
- server.tool('list-field-security-profiles', 'List all Field Security Profiles in the environment, with optional name substring filter. Returns id, name, description, and managed flag for each.', {
16
- namePattern: z
17
- .string()
18
- .optional()
19
- .describe('Case-insensitive substring filter on FSP name'),
20
- }, async (params) => {
21
- try {
22
- const results = await ctx.pp.listFieldSecurityProfiles(params.namePattern);
23
- if (results.length === 0)
24
- return ok('No field security profiles found.');
25
- const lines = results.map((r) => `- ${r.name}${r.isManaged ? ' [managed]' : ''} (${r.fieldSecurityProfileId})${r.description ? ` — ${r.description}` : ''}`);
26
- return ok(`Found ${results.length} field security profile(s):\n${lines.join('\n')}`);
27
- }
28
- catch (error) {
29
- console.error('Error in list-field-security-profiles:', error);
30
- return err(`Failed to list FSPs: ${error.message}`);
31
- }
32
- });
33
- server.tool('get-field-security-profile', 'Get a single Field Security Profile with all its field permissions and team/user assignments — a one-call snapshot.', {
34
- fieldSecurityProfileId: z
35
- .string()
36
- .describe('GUID of the field security profile'),
37
- }, async (params) => {
38
- try {
39
- const r = await ctx.pp.getFieldSecurityProfile(params.fieldSecurityProfileId);
40
- const permLines = r.permissions.length
41
- ? r.permissions
42
- .map((p) => ` - ${p.entityName}.${p.attributeLogicalName}: C=${p.canCreate} R=${p.canRead} U=${p.canUpdate}`)
43
- .join('\n')
44
- : ' (none)';
45
- const teamLines = r.teams.length
46
- ? r.teams.map((t) => ` - ${t.name} (${t.teamId})`).join('\n')
47
- : ' (none)';
48
- const userLines = r.users.length
49
- ? r.users.map((u) => ` - ${u.fullName} (${u.systemUserId})`).join('\n')
50
- : ' (none)';
51
- return ok(`FSP "${r.name}"${r.isManaged ? ' [managed]' : ''}\nId: ${r.fieldSecurityProfileId}\n${r.description ? `Description: ${r.description}\n` : ''}\nPermissions (${r.permissions.length}):\n${permLines}\n\nTeams (${r.teams.length}):\n${teamLines}\n\nUsers (${r.users.length}):\n${userLines}`);
52
- }
53
- catch (error) {
54
- console.error('Error in get-field-security-profile:', error);
55
- return err(`Failed to get FSP: ${error.message}`);
56
- }
57
- });
58
- server.tool('get-secured-columns', 'List all secured columns on an entity (columns with IsSecured=true on metadata) plus the Field Security Profiles that grant access to each. Useful for auditing field security coverage.', {
59
- entityLogicalName: z
60
- .string()
61
- .describe(descWithExamples('Entity logical name', ENTITY_NAME_EXAMPLES)),
62
- }, async (params) => {
63
- try {
64
- const cols = await ctx.pp.getSecuredColumns(params.entityLogicalName);
65
- if (cols.length === 0) {
66
- return ok(`No secured columns on ${params.entityLogicalName}.`);
67
- }
68
- const lines = cols.map((c) => {
69
- const fspLines = c.fieldSecurityProfiles.length
70
- ? c.fieldSecurityProfiles
71
- .map((f) => ` · ${f.name} (${f.fieldSecurityProfileId}): C=${f.canCreate} R=${f.canRead} U=${f.canUpdate}`)
72
- .join('\n')
73
- : ' (no FSP grants access — column is fully locked down)';
74
- return `- ${c.attributeLogicalName} [${c.attributeType}]\n${fspLines}`;
75
- });
76
- return ok(`Secured columns on ${params.entityLogicalName} (${cols.length}):\n${lines.join('\n')}`);
77
- }
78
- catch (error) {
79
- console.error('Error in get-secured-columns:', error);
80
- return err(`Failed to get secured columns: ${error.message}`);
81
- }
82
- });
83
- }
84
- //# sourceMappingURL=field-security-tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-security-tools.js","sourceRoot":"","sources":["../../src/tools/field-security-tools.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { ServiceContext } from '../types.js';
2
- export declare function registerFlowTools(server: any, ctx: ServiceContext): void;
3
- //# sourceMappingURL=flow-tools.d.ts.map