@mcp-consultant-tools/powerplatform-data 27.0.0 → 28.0.0-beta.11

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 (61) hide show
  1. package/build/PowerPlatformService.d.ts +2 -0
  2. package/build/PowerPlatformService.d.ts.map +1 -1
  3. package/build/PowerPlatformService.js +6 -0
  4. package/build/PowerPlatformService.js.map +1 -1
  5. package/build/cli/commands/data-commands.d.ts +7 -0
  6. package/build/cli/commands/data-commands.d.ts.map +1 -0
  7. package/build/cli/commands/data-commands.js +185 -0
  8. package/build/cli/commands/data-commands.js.map +1 -0
  9. package/build/cli/commands/flow-commands.d.ts +7 -0
  10. package/build/cli/commands/flow-commands.d.ts.map +1 -0
  11. package/build/cli/commands/flow-commands.js +67 -0
  12. package/build/cli/commands/flow-commands.js.map +1 -0
  13. package/build/cli/commands/index.d.ts +10 -0
  14. package/build/cli/commands/index.d.ts.map +1 -0
  15. package/build/cli/commands/index.js +15 -0
  16. package/build/cli/commands/index.js.map +1 -0
  17. package/build/cli/commands/metadata-commands.d.ts +7 -0
  18. package/build/cli/commands/metadata-commands.d.ts.map +1 -0
  19. package/build/cli/commands/metadata-commands.js +94 -0
  20. package/build/cli/commands/metadata-commands.js.map +1 -0
  21. package/build/cli/output.d.ts +11 -0
  22. package/build/cli/output.d.ts.map +1 -0
  23. package/build/cli/output.js +10 -0
  24. package/build/cli/output.js.map +1 -0
  25. package/build/cli.d.ts +9 -0
  26. package/build/cli.d.ts.map +1 -0
  27. package/build/cli.js +27 -0
  28. package/build/cli.js.map +1 -0
  29. package/build/context-factory.d.ts +8 -0
  30. package/build/context-factory.d.ts.map +1 -0
  31. package/build/context-factory.js +52 -0
  32. package/build/context-factory.js.map +1 -0
  33. package/build/index.d.ts +11 -1
  34. package/build/index.d.ts.map +1 -1
  35. package/build/index.js +45 -557
  36. package/build/index.js.map +1 -1
  37. package/build/services/index.d.ts +5 -0
  38. package/build/services/index.d.ts.map +1 -0
  39. package/build/services/index.js +5 -0
  40. package/build/services/index.js.map +1 -0
  41. package/build/tool-examples.d.ts +34 -0
  42. package/build/tool-examples.d.ts.map +1 -0
  43. package/build/tool-examples.js +41 -0
  44. package/build/tool-examples.js.map +1 -0
  45. package/build/tools/index.d.ts +8 -0
  46. package/build/tools/index.d.ts.map +1 -0
  47. package/build/tools/index.js +11 -0
  48. package/build/tools/index.js.map +1 -0
  49. package/build/tools/read-tools.d.ts +3 -0
  50. package/build/tools/read-tools.d.ts.map +1 -0
  51. package/build/tools/read-tools.js +342 -0
  52. package/build/tools/read-tools.js.map +1 -0
  53. package/build/tools/write-tools.d.ts +3 -0
  54. package/build/tools/write-tools.d.ts.map +1 -0
  55. package/build/tools/write-tools.js +298 -0
  56. package/build/tools/write-tools.js.map +1 -0
  57. package/build/types.d.ts +13 -0
  58. package/build/types.d.ts.map +1 -0
  59. package/build/types.js +2 -0
  60. package/build/types.js.map +1 -0
  61. package/package.json +6 -4
@@ -46,6 +46,8 @@ export declare class PowerPlatformService {
46
46
  createRecord(entityNamePlural: string, data: Record<string, unknown>): Promise<unknown>;
47
47
  updateRecord(entityNamePlural: string, recordId: string, data: Record<string, unknown>): Promise<unknown>;
48
48
  deleteRecord(entityNamePlural: string, recordId: string): Promise<void>;
49
+ associateRecords(entityNamePlural: string, recordId: string, navigationProperty: string, targetEntityNamePlural: string, targetRecordId: string): Promise<void>;
50
+ disassociateRecords(entityNamePlural: string, recordId: string, navigationProperty: string, targetRecordId: string): Promise<void>;
49
51
  executeAction(actionName: string, parameters?: Record<string, unknown>, boundTo?: {
50
52
  entityNamePlural: string;
51
53
  recordId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PowerPlatformService.d.ts","sourceRoot":"","sources":["../src/PowerPlatformService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PowerPlatformService.d.ts","sourceRoot":"","sources":["../src/PowerPlatformService.ts"],"names":[],"mappings":"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"}
@@ -83,6 +83,12 @@ export class PowerPlatformService {
83
83
  async deleteRecord(entityNamePlural, recordId) {
84
84
  return this.data.deleteRecord(entityNamePlural, recordId);
85
85
  }
86
+ async associateRecords(entityNamePlural, recordId, navigationProperty, targetEntityNamePlural, targetRecordId) {
87
+ return this.data.associateRecords(entityNamePlural, recordId, navigationProperty, targetEntityNamePlural, targetRecordId);
88
+ }
89
+ async disassociateRecords(entityNamePlural, recordId, navigationProperty, targetRecordId) {
90
+ return this.data.disassociateRecords(entityNamePlural, recordId, navigationProperty, targetRecordId);
91
+ }
86
92
  async executeAction(actionName, parameters, boundTo) {
87
93
  return this.data.executeAction(actionName, parameters, boundTo);
88
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PowerPlatformService.js","sourceRoot":"","sources":["../src/PowerPlatformService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PowerPlatformService.js","sourceRoot":"","sources":["../src/PowerPlatformService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Data CRUD CLI Commands - 8 commands mapping to data MCP tools
3
+ */
4
+ import type { Command } from 'commander';
5
+ import type { ServiceContext } from '../../types.js';
6
+ export declare function registerDataCommands(program: Command, ctx: ServiceContext): void;
7
+ //# sourceMappingURL=data-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/data-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA6MhF"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * Data CRUD CLI Commands - 8 commands mapping to data MCP tools
3
+ */
4
+ import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
5
+ import { outputResult } from '../output.js';
6
+ export function registerDataCommands(program, ctx) {
7
+ const record = program.command('record').description('Dataverse record CRUD operations');
8
+ record
9
+ .command('query')
10
+ .description('Query records using an OData filter expression')
11
+ .argument('<entityNamePlural>', 'Plural entity name (e.g., accounts, contacts)')
12
+ .argument('<filter>', 'OData filter expression')
13
+ .option('-s, --select <columns...>', 'Columns to return')
14
+ .option('-m, --max-records <n>', 'Maximum records to retrieve', '50')
15
+ .action(async (entityNamePlural, filter, opts) => {
16
+ try {
17
+ const select = opts.select || undefined;
18
+ const maxRecords = parseInt(opts.maxRecords, 10);
19
+ const result = await ctx.pp.queryRecords(entityNamePlural, filter, maxRecords, select);
20
+ outputResult({
21
+ fileName: `query-${entityNamePlural}`,
22
+ data: result,
23
+ summary: `Retrieved ${result.returnedCount} records from '${entityNamePlural}'${result.hasMore ? ' (more available)' : ''}`,
24
+ }, getGlobalFlags(program));
25
+ }
26
+ catch (error) {
27
+ handleCliError(error, 'query records');
28
+ }
29
+ });
30
+ record
31
+ .command('get')
32
+ .description('Get a specific record by entity name and ID')
33
+ .argument('<entityNamePlural>', 'Plural entity name (e.g., accounts, contacts)')
34
+ .argument('<recordId>', 'Record GUID')
35
+ .action(async (entityNamePlural, recordId) => {
36
+ try {
37
+ const result = await ctx.pp.getRecord(entityNamePlural, recordId);
38
+ outputResult({
39
+ fileName: `record-${entityNamePlural}-${recordId}`,
40
+ data: result,
41
+ summary: `Record from '${entityNamePlural}' with ID '${recordId}'`,
42
+ }, getGlobalFlags(program));
43
+ }
44
+ catch (error) {
45
+ handleCliError(error, 'get record');
46
+ }
47
+ });
48
+ record
49
+ .command('create')
50
+ .description('Create a new record (requires POWERPLATFORM_ENABLE_CREATE=true)')
51
+ .argument('<entityNamePlural>', 'Plural entity name (e.g., accounts, contacts)')
52
+ .argument('<data>', 'Record data as JSON string')
53
+ .action(async (entityNamePlural, dataJson) => {
54
+ try {
55
+ ctx.checkCreateEnabled();
56
+ const data = JSON.parse(dataJson);
57
+ const result = await ctx.pp.createRecord(entityNamePlural, data);
58
+ outputResult({
59
+ fileName: `created-${entityNamePlural}`,
60
+ data: result,
61
+ summary: `Record created successfully in '${entityNamePlural}'`,
62
+ }, getGlobalFlags(program));
63
+ }
64
+ catch (error) {
65
+ handleCliError(error, 'create record');
66
+ }
67
+ });
68
+ record
69
+ .command('update')
70
+ .description('Update an existing record (requires POWERPLATFORM_ENABLE_UPDATE=true)')
71
+ .argument('<entityNamePlural>', 'Plural entity name (e.g., accounts, contacts)')
72
+ .argument('<recordId>', 'Record GUID')
73
+ .argument('<data>', 'Partial record data as JSON string')
74
+ .action(async (entityNamePlural, recordId, dataJson) => {
75
+ try {
76
+ ctx.checkUpdateEnabled();
77
+ const data = JSON.parse(dataJson);
78
+ const result = await ctx.pp.updateRecord(entityNamePlural, recordId, data);
79
+ outputResult({
80
+ fileName: `updated-${entityNamePlural}-${recordId}`,
81
+ data: result,
82
+ summary: `Record '${recordId}' updated successfully in '${entityNamePlural}'`,
83
+ }, getGlobalFlags(program));
84
+ }
85
+ catch (error) {
86
+ handleCliError(error, 'update record');
87
+ }
88
+ });
89
+ record
90
+ .command('delete')
91
+ .description('Delete a record (requires POWERPLATFORM_ENABLE_DELETE=true)')
92
+ .argument('<entityNamePlural>', 'Plural entity name (e.g., accounts, contacts)')
93
+ .argument('<recordId>', 'Record GUID')
94
+ .option('--confirm', 'Confirm deletion (required)', false)
95
+ .action(async (entityNamePlural, recordId, opts) => {
96
+ try {
97
+ ctx.checkDeleteEnabled();
98
+ if (!opts.confirm) {
99
+ process.stderr.write(`Delete operation requires --confirm flag.\n` +
100
+ `You are about to delete record '${recordId}' from '${entityNamePlural}'.\n` +
101
+ `This operation is permanent and cannot be undone.\n` +
102
+ `To proceed, run again with --confirm.\n`);
103
+ process.exit(1);
104
+ }
105
+ await ctx.pp.deleteRecord(entityNamePlural, recordId);
106
+ outputResult({
107
+ fileName: `deleted-${entityNamePlural}-${recordId}`,
108
+ data: { entity: entityNamePlural, recordId, deleted: true },
109
+ summary: `Record '${recordId}' deleted from '${entityNamePlural}'`,
110
+ }, getGlobalFlags(program));
111
+ }
112
+ catch (error) {
113
+ handleCliError(error, 'delete record');
114
+ }
115
+ });
116
+ record
117
+ .command('associate')
118
+ .description('Associate two records via a navigation property (requires POWERPLATFORM_ENABLE_CREATE=true)')
119
+ .argument('<entityNamePlural>', 'Source entity plural name (e.g., accounts)')
120
+ .argument('<recordId>', 'Source record GUID')
121
+ .argument('<navigationProperty>', 'Navigation property name for the relationship')
122
+ .argument('<targetEntityNamePlural>', 'Target entity plural name (e.g., contacts)')
123
+ .argument('<targetRecordId>', 'Target record GUID')
124
+ .action(async (entityNamePlural, recordId, navigationProperty, targetEntityNamePlural, targetRecordId) => {
125
+ try {
126
+ ctx.checkCreateEnabled();
127
+ await ctx.pp.associateRecords(entityNamePlural, recordId, navigationProperty, targetEntityNamePlural, targetRecordId);
128
+ outputResult({
129
+ fileName: `associate-${entityNamePlural}-${recordId}`,
130
+ data: { source: `${entityNamePlural}(${recordId})`, target: `${targetEntityNamePlural}(${targetRecordId})`, navigationProperty, associated: true },
131
+ summary: `Records associated: ${entityNamePlural}(${recordId}) -> ${targetEntityNamePlural}(${targetRecordId}) via ${navigationProperty}`,
132
+ }, getGlobalFlags(program));
133
+ }
134
+ catch (error) {
135
+ handleCliError(error, 'associate records');
136
+ }
137
+ });
138
+ record
139
+ .command('disassociate')
140
+ .description('Remove association between two records (requires POWERPLATFORM_ENABLE_DELETE=true)')
141
+ .argument('<entityNamePlural>', 'Source entity plural name (e.g., accounts)')
142
+ .argument('<recordId>', 'Source record GUID')
143
+ .argument('<navigationProperty>', 'Navigation property name for the relationship')
144
+ .argument('<targetRecordId>', 'Target record GUID')
145
+ .action(async (entityNamePlural, recordId, navigationProperty, targetRecordId) => {
146
+ try {
147
+ ctx.checkDeleteEnabled();
148
+ await ctx.pp.disassociateRecords(entityNamePlural, recordId, navigationProperty, targetRecordId);
149
+ outputResult({
150
+ fileName: `disassociate-${entityNamePlural}-${recordId}`,
151
+ data: { source: `${entityNamePlural}(${recordId})`, targetRecordId, navigationProperty, disassociated: true },
152
+ summary: `Records disassociated: ${entityNamePlural}(${recordId}) -> ${targetRecordId} via ${navigationProperty}`,
153
+ }, getGlobalFlags(program));
154
+ }
155
+ catch (error) {
156
+ handleCliError(error, 'disassociate records');
157
+ }
158
+ });
159
+ record
160
+ .command('execute-action')
161
+ .description('Execute a Custom API or Action (requires POWERPLATFORM_ENABLE_ACTIONS=true)')
162
+ .argument('<actionName>', 'Action unique name (e.g., WhoAmI, new_MyCustomAction)')
163
+ .option('-p, --parameters <json>', 'Input parameters as JSON string')
164
+ .option('--bound-entity <entityNamePlural>', 'Bound entity plural name')
165
+ .option('--bound-record <recordId>', 'Bound record GUID')
166
+ .action(async (actionName, opts) => {
167
+ try {
168
+ ctx.checkActionsEnabled();
169
+ const parameters = opts.parameters ? JSON.parse(opts.parameters) : undefined;
170
+ const boundTo = opts.boundEntity && opts.boundRecord
171
+ ? { entityNamePlural: opts.boundEntity, recordId: opts.boundRecord }
172
+ : undefined;
173
+ const result = await ctx.pp.executeAction(actionName, parameters, boundTo);
174
+ outputResult({
175
+ fileName: `action-${actionName}`,
176
+ data: result,
177
+ summary: `Action '${actionName}' executed successfully${boundTo ? ` (bound to ${boundTo.entityNamePlural}/${boundTo.recordId})` : ' (unbound)'}`,
178
+ }, getGlobalFlags(program));
179
+ }
180
+ catch (error) {
181
+ handleCliError(error, 'execute action');
182
+ }
183
+ });
184
+ }
185
+ //# sourceMappingURL=data-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/data-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Flow CLI Commands - 2 commands mapping to flow MCP tools
3
+ */
4
+ import type { Command } from 'commander';
5
+ import type { ServiceContext } from '../../types.js';
6
+ export declare function registerFlowCommands(program: Command, ctx: ServiceContext): void;
7
+ //# sourceMappingURL=flow-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/flow-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA+DhF"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Flow CLI Commands - 2 commands mapping to flow MCP tools
3
+ */
4
+ import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
5
+ import { outputResult } from '../output.js';
6
+ export function registerFlowCommands(program, ctx) {
7
+ const flow = program.command('flow').description('Power Automate flow operations');
8
+ flow
9
+ .command('runs')
10
+ .description('Get run history for a flow')
11
+ .argument('<flowId>', 'Flow GUID (workflowid)')
12
+ .option('-s, --status <status>', 'Filter by status: Succeeded, Failed, Running, Waiting, Cancelled')
13
+ .option('--started-after <date>', 'Only runs started after this date (ISO 8601)')
14
+ .option('--started-before <date>', 'Only runs started before this date (ISO 8601)')
15
+ .option('-m, --max-records <n>', 'Maximum runs to return', '50')
16
+ .action(async (flowId, opts) => {
17
+ try {
18
+ const result = await ctx.pp.getFlowRuns(flowId, {
19
+ status: opts.status,
20
+ startedAfter: opts.startedAfter,
21
+ startedBefore: opts.startedBefore,
22
+ maxRecords: parseInt(opts.maxRecords, 10),
23
+ });
24
+ const stats = (result.runs || []).reduce((acc, run) => {
25
+ if (run.status === 'Succeeded')
26
+ acc.succeeded++;
27
+ else if (run.status === 'Failed' || run.status === 'Faulted' || run.status === 'TimedOut')
28
+ acc.failed++;
29
+ else if (run.status === 'Running' || run.status === 'Waiting')
30
+ acc.inProgress++;
31
+ else if (run.status === 'Cancelled')
32
+ acc.cancelled++;
33
+ else
34
+ acc.other++;
35
+ return acc;
36
+ }, { succeeded: 0, failed: 0, inProgress: 0, cancelled: 0, other: 0 });
37
+ outputResult({
38
+ fileName: `flow-runs-${flowId}`,
39
+ data: result,
40
+ summary: `Flow ${flowId}: ${result.totalCount} runs (OK: ${stats.succeeded}, Failed: ${stats.failed}, Running: ${stats.inProgress})`,
41
+ }, getGlobalFlags(program));
42
+ }
43
+ catch (error) {
44
+ handleCliError(error, 'get flow runs');
45
+ }
46
+ });
47
+ flow
48
+ .command('run-details')
49
+ .description('Get detailed info about a specific flow run')
50
+ .argument('<flowId>', 'Flow GUID (workflowid)')
51
+ .argument('<runId>', 'Flow run GUID')
52
+ .action(async (flowId, runId) => {
53
+ try {
54
+ const result = await ctx.pp.getFlowRunDetails(flowId, runId);
55
+ const summary = result.actionsSummary || {};
56
+ outputResult({
57
+ fileName: `flow-run-${flowId}-${runId}`,
58
+ data: result,
59
+ summary: `Flow run ${runId}: ${result.status} (${summary.total || 0} actions, ${summary.failed || 0} failed)`,
60
+ }, getGlobalFlags(program));
61
+ }
62
+ catch (error) {
63
+ handleCliError(error, 'get flow run details');
64
+ }
65
+ });
66
+ }
67
+ //# sourceMappingURL=flow-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/flow-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * CLI Commands barrel export + combined registration
3
+ */
4
+ import type { Command } from 'commander';
5
+ import type { ServiceContext } from '../../types.js';
6
+ export declare function registerAllCommands(program: Command, ctx: ServiceContext): void;
7
+ export { registerDataCommands } from './data-commands.js';
8
+ export { registerMetadataCommands } from './metadata-commands.js';
9
+ export { registerFlowCommands } from './flow-commands.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKrD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAI/E;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * CLI Commands barrel export + combined registration
3
+ */
4
+ import { registerDataCommands } from './data-commands.js';
5
+ import { registerMetadataCommands } from './metadata-commands.js';
6
+ import { registerFlowCommands } from './flow-commands.js';
7
+ export function registerAllCommands(program, ctx) {
8
+ registerDataCommands(program, ctx);
9
+ registerMetadataCommands(program, ctx);
10
+ registerFlowCommands(program, ctx);
11
+ }
12
+ export { registerDataCommands } from './data-commands.js';
13
+ export { registerMetadataCommands } from './metadata-commands.js';
14
+ export { registerFlowCommands } from './flow-commands.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,GAAmB;IACvE,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnC,wBAAwB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Metadata CLI Commands - 2 commands mapping to metadata MCP tools
3
+ */
4
+ import type { Command } from 'commander';
5
+ import type { ServiceContext } from '../../types.js';
6
+ export declare function registerMetadataCommands(program: Command, ctx: ServiceContext): void;
7
+ //# sourceMappingURL=metadata-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/metadata-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAqGpF"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Metadata CLI Commands - 2 commands mapping to metadata MCP tools
3
+ */
4
+ import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
5
+ import { outputResult } from '../output.js';
6
+ export function registerMetadataCommands(program, ctx) {
7
+ const metadata = program.command('metadata').description('Dataverse entity metadata operations');
8
+ metadata
9
+ .command('get')
10
+ .description('Get entity metadata (EntitySetName, PrimaryIdAttribute, etc.)')
11
+ .argument('<entityLogicalName>', 'Logical name of the entity (e.g., account, contact)')
12
+ .action(async (entityLogicalName) => {
13
+ try {
14
+ const raw = await ctx.pp.getEntityMetadata(entityLogicalName);
15
+ const summary = {
16
+ LogicalName: raw.LogicalName,
17
+ EntitySetName: raw.EntitySetName,
18
+ PrimaryIdAttribute: raw.PrimaryIdAttribute,
19
+ PrimaryNameAttribute: raw.PrimaryNameAttribute,
20
+ DisplayName: raw.DisplayName?.UserLocalizedLabel?.Label,
21
+ DisplayCollectionName: raw.DisplayCollectionName?.UserLocalizedLabel?.Label,
22
+ SchemaName: raw.SchemaName,
23
+ LogicalCollectionName: raw.LogicalCollectionName,
24
+ IsCustomEntity: raw.IsCustomEntity,
25
+ MetadataId: raw.MetadataId,
26
+ };
27
+ outputResult({
28
+ fileName: `metadata-${entityLogicalName}`,
29
+ data: summary,
30
+ summary: `Entity '${entityLogicalName}': EntitySetName=${summary.EntitySetName}, PrimaryId=${summary.PrimaryIdAttribute}`,
31
+ }, getGlobalFlags(program));
32
+ }
33
+ catch (error) {
34
+ handleCliError(error, 'get entity metadata');
35
+ }
36
+ });
37
+ metadata
38
+ .command('lookup-target')
39
+ .description('Get lookup field target entity info (for @odata.bind syntax)')
40
+ .argument('<entityLogicalName>', 'Entity containing the lookup (e.g., ste_transaction)')
41
+ .argument('<lookupAttributeName>', 'Lookup attribute name (e.g., parentaccountid)')
42
+ .action(async (entityLogicalName, lookupAttributeName) => {
43
+ try {
44
+ const attribute = await ctx.pp.getEntityAttribute(entityLogicalName, lookupAttributeName);
45
+ if (!attribute.Targets || attribute.Targets.length === 0) {
46
+ process.stderr.write(`Attribute '${lookupAttributeName}' on entity '${entityLogicalName}' is not a lookup field or has no targets.\n`);
47
+ process.exit(1);
48
+ }
49
+ const lookupSchemaName = attribute.SchemaName;
50
+ const isPolymorphic = attribute.Targets.length > 1;
51
+ const targetResults = await Promise.all(attribute.Targets.map(async (targetEntity) => {
52
+ try {
53
+ const targetMetadata = await ctx.pp.getEntityMetadata(targetEntity);
54
+ const bindingPropertyName = isPolymorphic
55
+ ? `${lookupSchemaName}_${targetEntity}`
56
+ : lookupSchemaName;
57
+ return {
58
+ LogicalName: targetEntity,
59
+ EntitySetName: targetMetadata.EntitySetName,
60
+ PrimaryIdAttribute: targetMetadata.PrimaryIdAttribute,
61
+ DisplayName: targetMetadata.DisplayName?.UserLocalizedLabel?.Label,
62
+ BindingPropertyName: bindingPropertyName,
63
+ };
64
+ }
65
+ catch {
66
+ return {
67
+ LogicalName: targetEntity,
68
+ EntitySetName: `${targetEntity}s`,
69
+ BindingPropertyName: isPolymorphic ? `${lookupSchemaName}_${targetEntity}` : lookupSchemaName,
70
+ error: 'Could not fetch metadata',
71
+ };
72
+ }
73
+ }));
74
+ const result = {
75
+ lookupAttribute: {
76
+ SchemaName: lookupSchemaName,
77
+ LogicalName: lookupAttributeName,
78
+ IsPolymorphic: isPolymorphic,
79
+ },
80
+ targets: targetResults,
81
+ bindingSyntax: `${targetResults[0].BindingPropertyName}@odata.bind: /${targetResults[0].EntitySetName}(<guid>)`,
82
+ };
83
+ outputResult({
84
+ fileName: `lookup-${entityLogicalName}-${lookupAttributeName}`,
85
+ data: result,
86
+ summary: `Lookup '${lookupAttributeName}' on '${entityLogicalName}': bind via ${targetResults[0].BindingPropertyName}@odata.bind -> /${targetResults[0].EntitySetName}(<guid>)`,
87
+ }, getGlobalFlags(program));
88
+ }
89
+ catch (error) {
90
+ handleCliError(error, 'get lookup target');
91
+ }
92
+ });
93
+ }
94
+ //# sourceMappingURL=metadata-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/metadata-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * CLI output helper for powerplatform-data package.
3
+ * Thin wrapper setting the package-specific cache directory.
4
+ */
5
+ import { type GlobalFlags } from '@mcp-consultant-tools/core';
6
+ export declare function outputResult(opts: {
7
+ fileName: string;
8
+ data: unknown;
9
+ summary: string;
10
+ }, flags: GlobalFlags): void;
11
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAoC,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAIhG,wBAAgB,YAAY,CAC1B,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC1D,KAAK,EAAE,WAAW,GACjB,IAAI,CAEN"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * CLI output helper for powerplatform-data package.
3
+ * Thin wrapper setting the package-specific cache directory.
4
+ */
5
+ import { outputResult as coreOutputResult } from '@mcp-consultant-tools/core';
6
+ const CACHE_DIR = '.mcp-pp-data-cache';
7
+ export function outputResult(opts, flags) {
8
+ coreOutputResult({ ...opts, cacheDir: CACHE_DIR }, flags);
9
+ }
10
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAoB,MAAM,4BAA4B,CAAC;AAEhG,MAAM,SAAS,GAAG,oBAAoB,CAAC;AAEvC,MAAM,UAAU,YAAY,CAC1B,IAA0D,EAC1D,KAAkB;IAElB,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC"}
package/build/cli.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @mcp-consultant-tools/powerplatform-data CLI
4
+ *
5
+ * Command-line interface for PowerPlatform data CRUD operations.
6
+ * Reuses the same ServiceContext and services as the MCP server.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;GAKG"}
package/build/cli.js ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @mcp-consultant-tools/powerplatform-data CLI
4
+ *
5
+ * Command-line interface for PowerPlatform data CRUD operations.
6
+ * Reuses the same ServiceContext and services as the MCP server.
7
+ */
8
+ import { createCliProgram, loadEnvForCli } from '@mcp-consultant-tools/core';
9
+ import { createServiceContext } from './context-factory.js';
10
+ import { registerAllCommands } from './cli/commands/index.js';
11
+ const program = createCliProgram({
12
+ name: 'mcp-pp-data-cli',
13
+ description: 'PowerPlatform Data CLI - records, metadata, flows',
14
+ version: '28.0.0-beta.8',
15
+ });
16
+ // Load env before parsing (--env-file handled by commander hook)
17
+ program.hook('preAction', (thisCommand) => {
18
+ const opts = thisCommand.opts();
19
+ loadEnvForCli(opts.envFile);
20
+ });
21
+ const ctx = createServiceContext();
22
+ registerAllCommands(program, ctx);
23
+ program.parseAsync(process.argv).catch((error) => {
24
+ console.error('CLI error:', error instanceof Error ? error.message : String(error));
25
+ process.exit(1);
26
+ });
27
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,OAAO,GAAG,gBAAgB,CAAC;IAC/B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,mDAAmD;IAChE,OAAO,EAAE,eAAe;CACzB,CAAC,CAAC;AAEH,iEAAiE;AACjE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAoB,EAAE,EAAE;IACjD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAChC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;AACnC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAElC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxD,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Shared service context factory - used by both MCP server and CLI.
3
+ */
4
+ import { PowerPlatformService } from './PowerPlatformService.js';
5
+ import type { ServiceContext } from './types.js';
6
+ export type { ServiceContext } from './types.js';
7
+ export declare function createServiceContext(service?: PowerPlatformService): ServiceContext;
8
+ //# sourceMappingURL=context-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-factory.d.ts","sourceRoot":"","sources":["../src/context-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAuB,MAAM,2BAA2B,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,cAAc,CAkDnF"}