@opencx/mcp 1.8.2 → 1.8.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.
Files changed (89) hide show
  1. package/dist/server.d.ts.map +1 -1
  2. package/dist/server.js +6 -0
  3. package/dist/server.js.map +1 -1
  4. package/dist/tools/actions.d.ts.map +1 -1
  5. package/dist/tools/actions.js +67 -51
  6. package/dist/tools/actions.js.map +1 -1
  7. package/dist/tools/autopilot.d.ts.map +1 -1
  8. package/dist/tools/autopilot.js +26 -6
  9. package/dist/tools/autopilot.js.map +1 -1
  10. package/dist/tools/blocklist.d.ts.map +1 -1
  11. package/dist/tools/blocklist.js +40 -16
  12. package/dist/tools/blocklist.js.map +1 -1
  13. package/dist/tools/contacts.d.ts.map +1 -1
  14. package/dist/tools/contacts.js +35 -19
  15. package/dist/tools/contacts.js.map +1 -1
  16. package/dist/tools/crawl.d.ts.map +1 -1
  17. package/dist/tools/crawl.js +35 -17
  18. package/dist/tools/crawl.js.map +1 -1
  19. package/dist/tools/csat.d.ts.map +1 -1
  20. package/dist/tools/csat.js +18 -5
  21. package/dist/tools/csat.js.map +1 -1
  22. package/dist/tools/email.d.ts.map +1 -1
  23. package/dist/tools/email.js +43 -29
  24. package/dist/tools/email.js.map +1 -1
  25. package/dist/tools/handoff-analytics.d.ts.map +1 -1
  26. package/dist/tools/handoff-analytics.js +12 -9
  27. package/dist/tools/handoff-analytics.js.map +1 -1
  28. package/dist/tools/help-center.d.ts +4 -0
  29. package/dist/tools/help-center.d.ts.map +1 -0
  30. package/dist/tools/help-center.js +84 -0
  31. package/dist/tools/help-center.js.map +1 -0
  32. package/dist/tools/insights.d.ts.map +1 -1
  33. package/dist/tools/insights.js +24 -9
  34. package/dist/tools/insights.js.map +1 -1
  35. package/dist/tools/media.d.ts.map +1 -1
  36. package/dist/tools/media.js +5 -4
  37. package/dist/tools/media.js.map +1 -1
  38. package/dist/tools/office-hours.d.ts.map +1 -1
  39. package/dist/tools/office-hours.js +30 -18
  40. package/dist/tools/office-hours.js.map +1 -1
  41. package/dist/tools/org.d.ts.map +1 -1
  42. package/dist/tools/org.js +9 -2
  43. package/dist/tools/org.js.map +1 -1
  44. package/dist/tools/phone.d.ts.map +1 -1
  45. package/dist/tools/phone.js +75 -56
  46. package/dist/tools/phone.js.map +1 -1
  47. package/dist/tools/redaction.d.ts +4 -0
  48. package/dist/tools/redaction.d.ts.map +1 -0
  49. package/dist/tools/redaction.js +30 -0
  50. package/dist/tools/redaction.js.map +1 -0
  51. package/dist/tools/search.d.ts.map +1 -1
  52. package/dist/tools/search.js +7 -4
  53. package/dist/tools/search.js.map +1 -1
  54. package/dist/tools/sequences.d.ts.map +1 -1
  55. package/dist/tools/sequences.js +46 -28
  56. package/dist/tools/sequences.js.map +1 -1
  57. package/dist/tools/sessions.d.ts.map +1 -1
  58. package/dist/tools/sessions.js +117 -80
  59. package/dist/tools/sessions.js.map +1 -1
  60. package/dist/tools/sla-analytics.d.ts.map +1 -1
  61. package/dist/tools/sla-analytics.js +25 -13
  62. package/dist/tools/sla-analytics.js.map +1 -1
  63. package/dist/tools/sla.d.ts.map +1 -1
  64. package/dist/tools/sla.js +65 -51
  65. package/dist/tools/sla.js.map +1 -1
  66. package/dist/tools/tags.d.ts.map +1 -1
  67. package/dist/tools/tags.js +28 -13
  68. package/dist/tools/tags.js.map +1 -1
  69. package/dist/tools/teams.d.ts.map +1 -1
  70. package/dist/tools/teams.js +40 -17
  71. package/dist/tools/teams.js.map +1 -1
  72. package/dist/tools/training.d.ts.map +1 -1
  73. package/dist/tools/training.js +126 -81
  74. package/dist/tools/training.js.map +1 -1
  75. package/dist/tools/whatsapp.d.ts.map +1 -1
  76. package/dist/tools/whatsapp.js +21 -20
  77. package/dist/tools/whatsapp.js.map +1 -1
  78. package/dist/tools/widget.d.ts +4 -0
  79. package/dist/tools/widget.d.ts.map +1 -0
  80. package/dist/tools/widget.js +23 -0
  81. package/dist/tools/widget.js.map +1 -0
  82. package/dist/tools/workflows.d.ts.map +1 -1
  83. package/dist/tools/workflows.js +118 -66
  84. package/dist/tools/workflows.js.map +1 -1
  85. package/dist/workflow-editor-state.d.ts +34 -0
  86. package/dist/workflow-editor-state.d.ts.map +1 -0
  87. package/dist/workflow-editor-state.js +74 -0
  88. package/dist/workflow-editor-state.js.map +1 -0
  89. package/package.json +1 -1
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ export function registerWidgetTools(server, client) {
3
+ server.registerTool('authenticate_widget_user', {
4
+ description: 'Generate a JWT token for an authenticated chat widget user. Creates or updates the contact and returns a token for embedding the widget with verified identity. Use this to enable authenticated chat experiences.',
5
+ inputSchema: {
6
+ email: z.string().describe('Contact email address (used as unique identifier)'),
7
+ name: z.string().optional().describe('Contact display name'),
8
+ phone: z.string().optional().describe('Contact phone number'),
9
+ customData: z
10
+ .record(z.string(), z.union([z.string(), z.number(), z.boolean()]))
11
+ .optional()
12
+ .describe('Custom key-value data to attach to the contact'),
13
+ chat_context: z
14
+ .string()
15
+ .optional()
16
+ .describe('Additional context for the AI agent about this user (e.g. "VIP customer, premium plan")'),
17
+ },
18
+ }, async (params) => {
19
+ const data = await client.post('/widget/authenticate-user', params);
20
+ return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
21
+ });
22
+ }
23
+ //# sourceMappingURL=widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.js","sourceRoot":"","sources":["../../src/tools/widget.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAoB;IACzE,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,WAAW,EACT,oNAAoN;QACtN,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YAC/E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC5D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC7D,UAAU,EAAE,CAAC;iBACV,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAClE,QAAQ,EAAE;iBACV,QAAQ,CAAC,gDAAgD,CAAC;YAC7D,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,yFAAyF,CAC1F;SACJ;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;QACpE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/tools/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAgF1D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAgM5E"}
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/tools/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AA0F1D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA+P5E"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { safePath } from '../api-client.js';
3
+ import { blocksToEditorState } from '../workflow-editor-state.js';
3
4
  const TRIGGER_TYPES = [
4
5
  'manual-trigger',
5
6
  'ai-trigger',
@@ -31,7 +32,9 @@ const triggerTypeSchema = z
31
32
  const actionStepSchema = z
32
33
  .object({
33
34
  $kind: z.literal('Action'),
34
- id: z.string().describe('Unique step ID (e.g. "step_1"). Used in references like {{step_1.output.field}}'),
35
+ id: z
36
+ .string()
37
+ .describe('Unique step ID (e.g. "step_1"). Used in references like {{step_1.output.field}}'),
35
38
  type: z
36
39
  .string()
37
40
  .describe('Action type from list_workflow_definitions (e.g. "ask-ai", "hold-value", "send-webhook", "tag-ticket")'),
@@ -47,7 +50,10 @@ const conditionSchema = z
47
50
  .string()
48
51
  .describe('Comparison operator: "equals", "not_equals", "contains", "not_contains", "greater_than", "less_than", "is_empty", "is_not_empty", "and", "or"'),
49
52
  left: z.unknown().describe('Left operand — static value or {{step_id.output.field}} reference'),
50
- right: z.unknown().optional().describe('Right operand (not needed for unary operators like is_empty)'),
53
+ right: z
54
+ .unknown()
55
+ .optional()
56
+ .describe('Right operand (not needed for unary operators like is_empty)'),
51
57
  })
52
58
  .describe('A condition for if-else/switch blocks');
53
59
  const blockStepSchema = z
@@ -67,16 +73,21 @@ const workflowBlockSchema = z
67
73
  .union([actionStepSchema, blockStepSchema])
68
74
  .describe('A workflow step: either an Action or a Block');
69
75
  export function registerWorkflowTools(server, client) {
70
- server.tool('list_workflow_definitions', 'List all available workflow action types (with their input/output field schemas), trigger types, and block types. ' +
71
- 'ALWAYS call this first before creating a workflow it tells you exactly what action types exist, ' +
72
- 'what input fields each action expects, and what output fields you can reference with {{step_id.output.field}}.', {}, async () => {
76
+ server.registerTool('list_workflow_definitions', {
77
+ description: 'List all available workflow action types (with their input/output field schemas), trigger types, and block types. ' +
78
+ 'ALWAYS call this first before creating a workflow it tells you exactly what action types exist, ' +
79
+ 'what input fields each action expects, and what output fields you can reference with {{step_id.output.field}}.',
80
+ }, async () => {
73
81
  const data = await client.get('/workflows/definitions');
74
82
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
75
83
  });
76
- server.tool('validate_workflow', 'Validate workflow blocks without creating a workflow. Returns issues and action types used. ' +
77
- 'Use before create_workflow to catch errors early.', {
78
- trigger_type: triggerTypeSchema,
79
- workflow_blocks: z.array(workflowBlockSchema).describe('Workflow blocks to validate'),
84
+ server.registerTool('validate_workflow', {
85
+ description: 'Validate workflow blocks without creating a workflow. Returns issues and action types used. ' +
86
+ 'Use before create_workflow to catch errors early.',
87
+ inputSchema: {
88
+ trigger_type: triggerTypeSchema,
89
+ workflow_blocks: z.array(workflowBlockSchema).describe('Workflow blocks to validate'),
90
+ },
80
91
  }, async ({ trigger_type, workflow_blocks }) => {
81
92
  const data = await client.post('/workflows/validate', {
82
93
  trigger_type,
@@ -84,23 +95,27 @@ export function registerWorkflowTools(server, client) {
84
95
  });
85
96
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
86
97
  });
87
- server.tool('create_workflow', 'Create a new workflow. Created as an inactive draft — use activate_workflow to make it live. ' +
88
- 'IMPORTANT: Call list_workflow_definitions first to see available action types and their input fields.', {
89
- name: z.string().describe('Workflow name'),
90
- description: z.string().optional().describe('Workflow description'),
91
- trigger_type: triggerTypeSchema,
92
- trigger_configuration: z
93
- .record(z.string(), z.unknown())
94
- .optional()
95
- .describe('Trigger-specific config (e.g. cron expression for cron-trigger)'),
96
- trigger_constraints: z
97
- .record(z.string(), z.unknown())
98
- .optional()
99
- .describe('JSON Logic constraints that must be satisfied for the trigger to fire'),
100
- workflow_blocks: z
101
- .array(workflowBlockSchema)
102
- .describe('Workflow steps and blocks. Use {{step_id.output.field}} to reference earlier step outputs.'),
103
- }, async ({ name, description, trigger_type, trigger_configuration, trigger_constraints, workflow_blocks }) => {
98
+ server.registerTool('create_workflow', {
99
+ description: 'Create a new workflow. Created as an inactive draft use activate_workflow to make it live. ' +
100
+ 'IMPORTANT: Call list_workflow_definitions first to see available action types and their input fields.',
101
+ inputSchema: {
102
+ name: z.string().describe('Workflow name'),
103
+ description: z.string().optional().describe('Workflow description'),
104
+ trigger_type: triggerTypeSchema,
105
+ trigger_configuration: z
106
+ .record(z.string(), z.unknown())
107
+ .optional()
108
+ .describe('Trigger-specific config (e.g. cron expression for cron-trigger)'),
109
+ trigger_constraints: z
110
+ .record(z.string(), z.unknown())
111
+ .optional()
112
+ .describe('JSON Logic constraints that must be satisfied for the trigger to fire'),
113
+ workflow_blocks: z
114
+ .array(workflowBlockSchema)
115
+ .describe('Workflow steps and blocks. Use {{step_id.output.field}} to reference earlier step outputs.'),
116
+ },
117
+ }, async ({ name, description, trigger_type, trigger_configuration, trigger_constraints, workflow_blocks, }) => {
118
+ const editorState = blocksToEditorState(trigger_type, workflow_blocks, trigger_configuration, trigger_constraints);
104
119
  const data = await client.post('/workflows/', {
105
120
  name,
106
121
  description,
@@ -108,67 +123,101 @@ export function registerWorkflowTools(server, client) {
108
123
  trigger_configuration: trigger_configuration ?? null,
109
124
  trigger_constraints: trigger_constraints ?? null,
110
125
  workflow_blocks,
126
+ workflow_editor_state: editorState,
111
127
  });
112
128
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
113
129
  });
114
- server.tool('list_workflows', 'List all workflows in your organization. Returns the latest version of each with name, trigger type, and active status.', {}, async () => {
130
+ server.registerTool('list_workflows', {
131
+ description: 'List all workflows in your organization. Returns the latest version of each with name, trigger type, and active status.',
132
+ }, async () => {
115
133
  const data = await client.get('/workflows/');
116
134
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
117
135
  });
118
- server.tool('get_workflow', 'Get a specific workflow by UUID, including its blocks, trigger configuration, active status, and version number.', { workflow_id: z.string().describe('The workflow UUID') }, async ({ workflow_id }) => {
136
+ server.registerTool('get_workflow', {
137
+ description: 'Get a specific workflow by UUID, including its blocks, trigger configuration, active status, and version number.',
138
+ inputSchema: { workflow_id: z.string().describe('The workflow UUID') },
139
+ }, async ({ workflow_id }) => {
119
140
  const data = await client.get(`/workflows/${safePath(workflow_id)}`);
120
141
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
121
142
  });
122
- server.tool('update_workflow', 'Update a workflow by creating a new version. Only provided fields change; omitted fields carry over. ' +
123
- 'New version is inactive use activate_workflow to make it live.', {
124
- workflow_id: z.string().describe('The workflow UUID to update'),
125
- name: z.string().optional().describe('New workflow name'),
126
- description: z.string().optional().describe('New workflow description'),
127
- trigger_type: triggerTypeSchema.optional(),
128
- trigger_configuration: z
129
- .record(z.string(), z.unknown())
130
- .optional()
131
- .describe('New trigger configuration'),
132
- trigger_constraints: z
133
- .record(z.string(), z.unknown())
134
- .optional()
135
- .describe('New trigger constraints'),
136
- workflow_blocks: z
137
- .array(workflowBlockSchema)
138
- .optional()
139
- .describe('New workflow blocks (replaces existing)'),
143
+ server.registerTool('update_workflow', {
144
+ description: 'Update a workflow by creating a new version. Only provided fields change; omitted fields carry over. ' +
145
+ 'New version is inactive — use activate_workflow to make it live.',
146
+ inputSchema: {
147
+ workflow_id: z.string().describe('The workflow UUID to update'),
148
+ name: z.string().optional().describe('New workflow name'),
149
+ description: z.string().optional().describe('New workflow description'),
150
+ trigger_type: triggerTypeSchema.optional(),
151
+ trigger_configuration: z
152
+ .record(z.string(), z.unknown())
153
+ .optional()
154
+ .describe('New trigger configuration'),
155
+ trigger_constraints: z
156
+ .record(z.string(), z.unknown())
157
+ .optional()
158
+ .describe('New trigger constraints'),
159
+ workflow_blocks: z
160
+ .array(workflowBlockSchema)
161
+ .optional()
162
+ .describe('New workflow blocks (replaces existing)'),
163
+ },
140
164
  }, async ({ workflow_id, ...body }) => {
141
- const data = await client.patch(`/workflows/${safePath(workflow_id)}`, body);
165
+ // Fetch existing to merge blocks/trigger for editor state generation
166
+ const existing = await client.get(`/workflows/${safePath(workflow_id)}`);
167
+ const blocks = body.workflow_blocks ?? existing.workflow_blocks ?? [];
168
+ const triggerType = body.trigger_type ?? existing.trigger_type;
169
+ const triggerConfig = body.trigger_configuration ?? existing.trigger_configuration;
170
+ const triggerConstraints = body.trigger_constraints ?? existing.trigger_constraints;
171
+ const editorState = blocksToEditorState(triggerType, blocks, triggerConfig, triggerConstraints);
172
+ const data = await client.patch(`/workflows/${safePath(workflow_id)}`, {
173
+ ...body,
174
+ workflow_editor_state: editorState,
175
+ });
142
176
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
143
177
  });
144
- server.tool('delete_workflow', 'Delete a workflow and all its versions. Active versions are deactivated first. Cannot be undone.', { workflow_id: z.string().describe('The workflow UUID to delete') }, async ({ workflow_id }) => {
178
+ server.registerTool('delete_workflow', {
179
+ description: 'Delete a workflow and all its versions. Active versions are deactivated first. Cannot be undone.',
180
+ inputSchema: { workflow_id: z.string().describe('The workflow UUID to delete') },
181
+ }, async ({ workflow_id }) => {
145
182
  const data = await client.delete(`/workflows/${safePath(workflow_id)}`);
146
183
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
147
184
  });
148
- server.tool('activate_workflow', 'Activate the latest version of a workflow. Any previously active version is deactivated.', { workflow_id: z.string().describe('The workflow UUID to activate') }, async ({ workflow_id }) => {
185
+ server.registerTool('activate_workflow', {
186
+ description: 'Activate the latest version of a workflow. Any previously active version is deactivated.',
187
+ inputSchema: { workflow_id: z.string().describe('The workflow UUID to activate') },
188
+ }, async ({ workflow_id }) => {
149
189
  const data = await client.post(`/workflows/${safePath(workflow_id)}/activate`);
150
190
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
151
191
  });
152
- server.tool('deactivate_workflow', 'Deactivate the currently active version of a workflow.', { workflow_id: z.string().describe('The workflow UUID to deactivate') }, async ({ workflow_id }) => {
192
+ server.registerTool('deactivate_workflow', {
193
+ description: 'Deactivate the currently active version of a workflow.',
194
+ inputSchema: { workflow_id: z.string().describe('The workflow UUID to deactivate') },
195
+ }, async ({ workflow_id }) => {
153
196
  const data = await client.post(`/workflows/${safePath(workflow_id)}/deactivate`);
154
197
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
155
198
  });
156
- server.tool('trigger_workflow', 'Manually trigger a workflow. Must be "manual-trigger" type and active. Runs in background.', { workflow_id: z.string().describe('The workflow UUID to trigger') }, async ({ workflow_id }) => {
199
+ server.registerTool('trigger_workflow', {
200
+ description: 'Manually trigger a workflow. Must be "manual-trigger" type and active. Runs in background.',
201
+ inputSchema: { workflow_id: z.string().describe('The workflow UUID to trigger') },
202
+ }, async ({ workflow_id }) => {
157
203
  await client.post(`/workflows/${safePath(workflow_id)}/trigger`);
158
204
  return { content: [{ type: 'text', text: `Workflow ${workflow_id} triggered.` }] };
159
205
  });
160
- server.tool('list_workflow_runs', 'List execution runs for a workflow with optional filters.', {
161
- workflow_id: z.string().describe('The workflow UUID'),
162
- page: z.number().optional().describe('Page number (default: 1)'),
163
- limit: z.number().optional().describe('Results per page (default: 20, max: 50)'),
164
- status: z
165
- .string()
166
- .optional()
167
- .describe('Comma-separated: completed, failed, in_progress, canceled, idle'),
168
- trigger_cause: z
169
- .string()
170
- .optional()
171
- .describe('Comma-separated: manual, automatic, scheduled'),
206
+ server.registerTool('list_workflow_runs', {
207
+ description: 'List execution runs for a workflow with optional filters.',
208
+ inputSchema: {
209
+ workflow_id: z.string().describe('The workflow UUID'),
210
+ page: z.number().optional().describe('Page number (default: 1)'),
211
+ limit: z.number().optional().describe('Results per page (default: 20, max: 50)'),
212
+ status: z
213
+ .string()
214
+ .optional()
215
+ .describe('Comma-separated: completed, failed, in_progress, canceled, idle'),
216
+ trigger_cause: z
217
+ .string()
218
+ .optional()
219
+ .describe('Comma-separated: manual, automatic, scheduled'),
220
+ },
172
221
  }, async ({ workflow_id, page, limit, status, trigger_cause }) => {
173
222
  const data = await client.get(`/workflows/${safePath(workflow_id)}/runs`, {
174
223
  page: page?.toString(),
@@ -178,9 +227,12 @@ export function registerWorkflowTools(server, client) {
178
227
  });
179
228
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
180
229
  });
181
- server.tool('get_workflow_run', 'Get details of a specific workflow run.', {
182
- workflow_id: z.string().describe('The workflow UUID'),
183
- run_id: z.string().describe('The run UUID'),
230
+ server.registerTool('get_workflow_run', {
231
+ description: 'Get details of a specific workflow run.',
232
+ inputSchema: {
233
+ workflow_id: z.string().describe('The workflow UUID'),
234
+ run_id: z.string().describe('The run UUID'),
235
+ },
184
236
  }, async ({ workflow_id, run_id }) => {
185
237
  const data = await client.get(`/workflows/${safePath(workflow_id)}/runs/${safePath(run_id)}`);
186
238
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/tools/workflows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/tools/workflows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAgB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,aAAa,GAAG;IACpB,gBAAgB;IAChB,YAAY;IACZ,cAAc;IACd,cAAc;IACd,SAAS;IACT,iBAAiB;IACjB,oBAAoB;IACpB,qBAAqB;IACrB,gBAAgB;IAChB,mBAAmB;IACnB,iBAAiB;IACjB,gBAAgB;IAChB,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,oBAAoB;IACpB,mBAAmB;IACnB,2BAA2B;IAC3B,0BAA0B;IAC1B,yBAAyB;IACzB,yBAAyB;CACjB,CAAC;AAEX,MAAM,iBAAiB,GAAG,CAAC;KACxB,IAAI,CAAC,aAAa,CAAC;KACnB,QAAQ,CACP,+FAA+F;IAC7F,uGAAuG;IACvG,4DAA4D,CAC/D,CAAC;AAEJ,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC1B,EAAE,EAAE,CAAC;SACF,MAAM,EAAE;SACR,QAAQ,CAAC,iFAAiF,CAAC;IAC9F,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,CACP,wGAAwG,CACzG;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACvD,KAAK,EAAE,CAAC;SACL,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,CACP,qGAAqG,CACtG;CACJ,CAAC;KACD,QAAQ,CAAC,iDAAiD,CAAC,CAAC;AAE/D,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,CAAC;IACN,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,CACP,+IAA+I,CAChJ;IACH,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IAC/F,KAAK,EAAE,CAAC;SACL,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,CAAC;KACD,QAAQ,CAAC,uCAAuC,CAAC,CAAC;AAErD,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACzB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC1D,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,SAAS,EAAE,eAAe;KAC3B,CAAC;IACF,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;SAC9D,QAAQ,CACP,8GAA8G,CAC/G;CACJ,CAAC;KACD,QAAQ,CAAC,kEAAkE,CAAC,CAAC;AAEhF,MAAM,mBAAmB,GAAG,CAAC;KAC1B,KAAK,CAAC,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;KAC1C,QAAQ,CAAC,8CAA8C,CAAC,CAAC;AAE5D,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAoB;IAC3E,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,WAAW,EACT,oHAAoH;YACpH,oGAAoG;YACpG,gHAAgH;KACnH,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACxD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,8FAA8F;YAC9F,mDAAmD;QACrD,WAAW,EAAE;YACX,YAAY,EAAE,iBAAiB;YAC/B,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;SACtF;KACF,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACpD,YAAY;YACZ,eAAe;SAChB,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,+FAA+F;YAC/F,uGAAuG;QACzG,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC1C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACnE,YAAY,EAAE,iBAAiB;YAC/B,qBAAqB,EAAE,CAAC;iBACrB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;iBAC/B,QAAQ,EAAE;iBACV,QAAQ,CAAC,iEAAiE,CAAC;YAC9E,mBAAmB,EAAE,CAAC;iBACnB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;iBAC/B,QAAQ,EAAE;iBACV,QAAQ,CAAC,uEAAuE,CAAC;YACpF,eAAe,EAAE,CAAC;iBACf,KAAK,CAAC,mBAAmB,CAAC;iBAC1B,QAAQ,CACP,4FAA4F,CAC7F;SACJ;KACF,EACD,KAAK,EAAE,EACL,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,GAChB,EAAE,EAAE;QACH,MAAM,WAAW,GAAG,mBAAmB,CACrC,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,mBAAmB,CACpB,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;YAC5C,IAAI;YACJ,WAAW;YACX,YAAY;YACZ,qBAAqB,EAAE,qBAAqB,IAAI,IAAI;YACpD,mBAAmB,EAAE,mBAAmB,IAAI,IAAI;YAChD,eAAe;YACf,qBAAqB,EAAE,WAAW;SACnC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,yHAAyH;KAC5H,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,kHAAkH;QACpH,WAAW,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;KACvE,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACxB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,uGAAuG;YACvG,kEAAkE;QACpE,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACzD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACvE,YAAY,EAAE,iBAAiB,CAAC,QAAQ,EAAE;YAC1C,qBAAqB,EAAE,CAAC;iBACrB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;iBAC/B,QAAQ,EAAE;iBACV,QAAQ,CAAC,2BAA2B,CAAC;YACxC,mBAAmB,EAAE,CAAC;iBACnB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;iBAC/B,QAAQ,EAAE;iBACV,QAAQ,CAAC,yBAAyB,CAAC;YACtC,eAAe,EAAE,CAAC;iBACf,KAAK,CAAC,mBAAmB,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CAAC,yCAAyC,CAAC;SACvD;KACF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;QACjC,qEAAqE;QACrE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAK9B,cAAc,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC;QAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,IAAI,QAAQ,CAAC,qBAAqB,CAAC;QACnF,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,IAAI,QAAQ,CAAC,mBAAmB,CAAC;QAEpF,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC;QAEhG,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE;YACrE,GAAG,IAAI;YACP,qBAAqB,EAAE,WAAW;SACnC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,kGAAkG;QACpG,WAAW,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE;KACjF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACxB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACxE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,0FAA0F;QAC5F,WAAW,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAAE;KACnF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACxB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC/E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC,EAAE;KACrF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACxB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACjF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,4FAA4F;QAC9F,WAAW,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE;KAClF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACxB,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACjE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,WAAW,aAAa,EAAE,CAAC,EAAE,CAAC;IACrF,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EAAE,2DAA2D;QACxE,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAChE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAChF,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,iEAAiE,CAAC;YAC9E,aAAa,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,+CAA+C,CAAC;SAC7D;KACF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE;QAC5D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE;YACxE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtB,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;YACxB,MAAM;YACN,aAAa;SACd,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACrD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SAC5C;KACF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,WAAW,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Generates a React Flow editor state (nodes, edges, viewport) from workflow blocks
3
+ * and trigger type. This allows workflows created via MCP to render correctly
4
+ * in the dashboard visual editor without requiring a backend deployment.
5
+ */
6
+ interface Position {
7
+ x: number;
8
+ y: number;
9
+ }
10
+ interface FlowNode {
11
+ id: string;
12
+ type: string;
13
+ position: Position;
14
+ data: Record<string, unknown>;
15
+ }
16
+ interface FlowEdge {
17
+ id: string;
18
+ source: string;
19
+ target: string;
20
+ sourceHandle: string;
21
+ targetHandle: string;
22
+ }
23
+ export interface EditorState {
24
+ nodes: FlowNode[];
25
+ edges: FlowEdge[];
26
+ viewport: {
27
+ x: number;
28
+ y: number;
29
+ zoom: number;
30
+ };
31
+ }
32
+ export declare function blocksToEditorState(triggerType: string, blocks: unknown[], triggerConfiguration?: unknown, triggerConstraints?: unknown): EditorState;
33
+ export {};
34
+ //# sourceMappingURL=workflow-editor-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-editor-state.d.ts","sourceRoot":"","sources":["../src/workflow-editor-state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,UAAU,QAAQ;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAYD,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAClD;AA0ED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,EAAE,EACjB,oBAAoB,CAAC,EAAE,OAAO,EAC9B,kBAAkB,CAAC,EAAE,OAAO,GAC3B,WAAW,CA4Bb"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Generates a React Flow editor state (nodes, edges, viewport) from workflow blocks
3
+ * and trigger type. This allows workflows created via MCP to render correctly
4
+ * in the dashboard visual editor without requiring a backend deployment.
5
+ */
6
+ const NODE_X_START = 200;
7
+ const NODE_Y_CENTER = 200;
8
+ const NODE_X_OFFSET = 300;
9
+ const BRANCH_Y_OFFSET = 200;
10
+ function createEdge(source, target, sourceHandle, targetHandle) {
11
+ return { id: `${source}-${target}`, source, target, sourceHandle, targetHandle };
12
+ }
13
+ function processBlocks(blocks, startX, yCenter, parentId, parentHandle, nodes, edges) {
14
+ let currentX = startX;
15
+ let prevId = parentId;
16
+ let prevHandle = parentHandle;
17
+ for (const block of blocks) {
18
+ const position = { x: currentX, y: yCenter };
19
+ if (block.$kind === 'Block' && block.type === 'if-else') {
20
+ nodes.push({
21
+ id: block.id,
22
+ type: 'ifBlock',
23
+ position,
24
+ data: { $kind: 'Block', id: block.id, type: block.type, inputs: block.inputs ?? {} },
25
+ });
26
+ edges.push(createEdge(prevId, block.id, prevHandle, 'ifBlockInput'));
27
+ const thenBlocks = (block.branches?.then ?? []);
28
+ const elseBlocks = (block.branches?.else ?? []);
29
+ let maxX = currentX + NODE_X_OFFSET;
30
+ if (thenBlocks.length > 0) {
31
+ maxX = Math.max(maxX, processBlocks(thenBlocks, currentX + NODE_X_OFFSET, yCenter - BRANCH_Y_OFFSET, block.id, 'ifBlockThen', nodes, edges));
32
+ }
33
+ if (elseBlocks.length > 0) {
34
+ maxX = Math.max(maxX, processBlocks(elseBlocks, currentX + NODE_X_OFFSET, yCenter + BRANCH_Y_OFFSET, block.id, 'ifBlockElse', nodes, edges));
35
+ }
36
+ currentX = maxX;
37
+ prevId = block.id;
38
+ prevHandle = 'actionOutput';
39
+ }
40
+ else {
41
+ nodes.push({
42
+ id: block.id,
43
+ type: 'action',
44
+ position,
45
+ data: { $kind: 'Action', id: block.id, type: block.type, name: block.name ?? block.type, input: block.input ?? {} },
46
+ });
47
+ edges.push(createEdge(prevId, block.id, prevHandle, 'actionInput'));
48
+ currentX += NODE_X_OFFSET;
49
+ prevId = block.id;
50
+ prevHandle = 'actionOutput';
51
+ }
52
+ }
53
+ return currentX;
54
+ }
55
+ export function blocksToEditorState(triggerType, blocks, triggerConfiguration, triggerConstraints) {
56
+ const nodes = [];
57
+ const edges = [];
58
+ const triggerData = {
59
+ $kind: 'Trigger',
60
+ type: triggerType,
61
+ id: 'trigger',
62
+ payload: {},
63
+ };
64
+ if (triggerConfiguration != null)
65
+ triggerData.configuration = triggerConfiguration;
66
+ if (triggerConstraints != null)
67
+ triggerData.constraints = triggerConstraints;
68
+ nodes.push({ id: 'trigger', type: 'trigger', position: { x: NODE_X_START, y: NODE_Y_CENTER }, data: triggerData });
69
+ if (blocks.length > 0) {
70
+ processBlocks(blocks, NODE_X_START + NODE_X_OFFSET, NODE_Y_CENTER, 'trigger', 'triggerOutput', nodes, edges);
71
+ }
72
+ return { nodes, edges, viewport: { x: 0, y: 0, zoom: 1 } };
73
+ }
74
+ //# sourceMappingURL=workflow-editor-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-editor-state.js","sourceRoot":"","sources":["../src/workflow-editor-state.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opencx/mcp",
3
- "version": "1.8.2",
3
+ "version": "1.8.4",
4
4
  "private": false,
5
5
  "description": "MCP server for OpenCX — manage contacts, sessions, training, and more from Claude Desktop, Cursor, or any MCP client.",
6
6
  "type": "module",