@opencx/mcp 1.11.9 → 1.11.25

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 (145) hide show
  1. package/dist/api-client.d.ts +16 -11
  2. package/dist/api-client.d.ts.map +1 -1
  3. package/dist/api-client.js +41 -47
  4. package/dist/api-client.js.map +1 -1
  5. package/dist/api-client.spec.js +51 -89
  6. package/dist/api-client.spec.js.map +1 -1
  7. package/dist/schema.d.ts +12706 -0
  8. package/dist/schema.d.ts.map +1 -0
  9. package/dist/schema.js +6 -0
  10. package/dist/schema.js.map +1 -0
  11. package/dist/server.js +2 -2
  12. package/dist/server.js.map +1 -1
  13. package/dist/server.spec.js +54 -51
  14. package/dist/server.spec.js.map +1 -1
  15. package/dist/tools/actions.d.ts +1 -1
  16. package/dist/tools/actions.d.ts.map +1 -1
  17. package/dist/tools/actions.js +26 -12
  18. package/dist/tools/actions.js.map +1 -1
  19. package/dist/tools/audit-logs.d.ts +1 -1
  20. package/dist/tools/audit-logs.d.ts.map +1 -1
  21. package/dist/tools/audit-logs.js +14 -9
  22. package/dist/tools/audit-logs.js.map +1 -1
  23. package/dist/tools/autopilot.d.ts +1 -1
  24. package/dist/tools/autopilot.d.ts.map +1 -1
  25. package/dist/tools/autopilot.js +5 -4
  26. package/dist/tools/autopilot.js.map +1 -1
  27. package/dist/tools/blocklist.d.ts +1 -1
  28. package/dist/tools/blocklist.d.ts.map +1 -1
  29. package/dist/tools/blocklist.js +20 -20
  30. package/dist/tools/blocklist.js.map +1 -1
  31. package/dist/tools/contact-segments.d.ts +1 -1
  32. package/dist/tools/contact-segments.d.ts.map +1 -1
  33. package/dist/tools/contact-segments.js +15 -12
  34. package/dist/tools/contact-segments.js.map +1 -1
  35. package/dist/tools/contacts.d.ts +1 -1
  36. package/dist/tools/contacts.d.ts.map +1 -1
  37. package/dist/tools/contacts.js +24 -14
  38. package/dist/tools/contacts.js.map +1 -1
  39. package/dist/tools/coworker.d.ts +1 -1
  40. package/dist/tools/coworker.d.ts.map +1 -1
  41. package/dist/tools/coworker.js +8 -6
  42. package/dist/tools/coworker.js.map +1 -1
  43. package/dist/tools/crawl.d.ts +1 -1
  44. package/dist/tools/crawl.d.ts.map +1 -1
  45. package/dist/tools/crawl.js +43 -14
  46. package/dist/tools/crawl.js.map +1 -1
  47. package/dist/tools/csat.d.ts +1 -1
  48. package/dist/tools/csat.d.ts.map +1 -1
  49. package/dist/tools/csat.js +16 -10
  50. package/dist/tools/csat.js.map +1 -1
  51. package/dist/tools/email.d.ts +1 -1
  52. package/dist/tools/email.d.ts.map +1 -1
  53. package/dist/tools/email.js +23 -9
  54. package/dist/tools/email.js.map +1 -1
  55. package/dist/tools/handoff-analytics.d.ts +1 -1
  56. package/dist/tools/handoff-analytics.d.ts.map +1 -1
  57. package/dist/tools/handoff-analytics.js +5 -6
  58. package/dist/tools/handoff-analytics.js.map +1 -1
  59. package/dist/tools/help-center.d.ts +1 -1
  60. package/dist/tools/help-center.d.ts.map +1 -1
  61. package/dist/tools/help-center.js +41 -11
  62. package/dist/tools/help-center.js.map +1 -1
  63. package/dist/tools/impact-report.d.ts +1 -1
  64. package/dist/tools/impact-report.d.ts.map +1 -1
  65. package/dist/tools/impact-report.js +3 -2
  66. package/dist/tools/impact-report.js.map +1 -1
  67. package/dist/tools/insights.d.ts +1 -1
  68. package/dist/tools/insights.d.ts.map +1 -1
  69. package/dist/tools/insights.js +19 -11
  70. package/dist/tools/insights.js.map +1 -1
  71. package/dist/tools/media.d.ts +1 -1
  72. package/dist/tools/media.d.ts.map +1 -1
  73. package/dist/tools/media.js +2 -3
  74. package/dist/tools/media.js.map +1 -1
  75. package/dist/tools/office-hours.d.ts +1 -1
  76. package/dist/tools/office-hours.d.ts.map +1 -1
  77. package/dist/tools/office-hours.js +42 -10
  78. package/dist/tools/office-hours.js.map +1 -1
  79. package/dist/tools/onboarding.js +1 -1
  80. package/dist/tools/onboarding.js.map +1 -1
  81. package/dist/tools/org.d.ts +1 -1
  82. package/dist/tools/org.d.ts.map +1 -1
  83. package/dist/tools/org.js +5 -4
  84. package/dist/tools/org.js.map +1 -1
  85. package/dist/tools/phone.d.ts +1 -1
  86. package/dist/tools/phone.d.ts.map +1 -1
  87. package/dist/tools/phone.js +59 -40
  88. package/dist/tools/phone.js.map +1 -1
  89. package/dist/tools/redaction.d.ts +1 -1
  90. package/dist/tools/redaction.d.ts.map +1 -1
  91. package/dist/tools/redaction.js +5 -4
  92. package/dist/tools/redaction.js.map +1 -1
  93. package/dist/tools/search.d.ts +1 -1
  94. package/dist/tools/search.d.ts.map +1 -1
  95. package/dist/tools/search.js +3 -2
  96. package/dist/tools/search.js.map +1 -1
  97. package/dist/tools/sequences.d.ts +1 -1
  98. package/dist/tools/sequences.d.ts.map +1 -1
  99. package/dist/tools/sequences.js +24 -13
  100. package/dist/tools/sequences.js.map +1 -1
  101. package/dist/tools/sessions.d.ts +1 -1
  102. package/dist/tools/sessions.d.ts.map +1 -1
  103. package/dist/tools/sessions.js +118 -80
  104. package/dist/tools/sessions.js.map +1 -1
  105. package/dist/tools/sla-analytics.d.ts +1 -1
  106. package/dist/tools/sla-analytics.d.ts.map +1 -1
  107. package/dist/tools/sla-analytics.js +26 -42
  108. package/dist/tools/sla-analytics.js.map +1 -1
  109. package/dist/tools/sla.d.ts +1 -1
  110. package/dist/tools/sla.d.ts.map +1 -1
  111. package/dist/tools/sla.js +18 -16
  112. package/dist/tools/sla.js.map +1 -1
  113. package/dist/tools/tags.d.ts +1 -1
  114. package/dist/tools/tags.d.ts.map +1 -1
  115. package/dist/tools/tags.js +11 -11
  116. package/dist/tools/tags.js.map +1 -1
  117. package/dist/tools/teams.d.ts +1 -1
  118. package/dist/tools/teams.d.ts.map +1 -1
  119. package/dist/tools/teams.js +24 -17
  120. package/dist/tools/teams.js.map +1 -1
  121. package/dist/tools/todos.d.ts +1 -1
  122. package/dist/tools/todos.d.ts.map +1 -1
  123. package/dist/tools/todos.js +11 -8
  124. package/dist/tools/todos.js.map +1 -1
  125. package/dist/tools/training.d.ts +1 -1
  126. package/dist/tools/training.d.ts.map +1 -1
  127. package/dist/tools/training.js +116 -73
  128. package/dist/tools/training.js.map +1 -1
  129. package/dist/tools/users.d.ts +1 -1
  130. package/dist/tools/users.d.ts.map +1 -1
  131. package/dist/tools/users.js +8 -8
  132. package/dist/tools/users.js.map +1 -1
  133. package/dist/tools/whatsapp.d.ts +1 -1
  134. package/dist/tools/whatsapp.d.ts.map +1 -1
  135. package/dist/tools/whatsapp.js +11 -2
  136. package/dist/tools/whatsapp.js.map +1 -1
  137. package/dist/tools/widget.d.ts +1 -1
  138. package/dist/tools/widget.d.ts.map +1 -1
  139. package/dist/tools/widget.js +3 -2
  140. package/dist/tools/widget.js.map +1 -1
  141. package/dist/tools/workflows.d.ts +1 -1
  142. package/dist/tools/workflows.d.ts.map +1 -1
  143. package/dist/tools/workflows.js +173 -74
  144. package/dist/tools/workflows.js.map +1 -1
  145. package/package.json +5 -2
@@ -1,34 +1,17 @@
1
1
  import { z } from 'zod';
2
- import { safePath } from '../api-client.js';
2
+ import { jsonContent } from '../api-client.js';
3
3
  import { blocksToEditorState } from '../workflow-editor-state.js';
4
- const TRIGGER_TYPES = [
5
- 'manual-trigger',
6
- 'ai-trigger',
7
- 'cron-trigger',
8
- 'form-trigger',
9
- 'webhook',
10
- 'contact-created',
11
- 'phone-call-started',
12
- 'phone-call-finished',
13
- 'ticket-created',
14
- 'ticket-reassigned',
15
- 'ticket-resolved',
16
- 'ticket-handoff',
17
- 'pre-ticket-handoff',
18
- 'ticket-tag-added',
19
- 'ticket-inactive',
20
- 'sequence-completed',
21
- 'csat-score-submit',
22
- 'prohibited-topic-detected',
23
- 'sla-first-reply-breached',
24
- 'sla-next-reply-breached',
25
- 'sla-resolution-breached',
26
- ];
4
+ // Trigger types are NOT enumerated here — the authoritative list lives in
5
+ // `backend/src/workflow/enums/workflow-trigger.enum.ts` and is exposed at
6
+ // runtime via `list_workflow_definitions`. Keep this as `z.string()` and let
7
+ // the backend reject unknown types; otherwise the enum drifts every time a
8
+ // new trigger ships.
27
9
  const triggerTypeSchema = z
28
- .enum(TRIGGER_TYPES)
10
+ .string()
29
11
  .describe('What starts the workflow. Common: "manual-trigger" (on-demand), "ai-trigger" (AI-initiated), ' +
30
12
  '"webhook" (HTTP), "cron-trigger" (scheduled). Event-based: "ticket-created", "contact-created", etc. ' +
31
- 'Call list_workflow_definitions to see all available types.');
13
+ 'ALWAYS call list_workflow_definitions first to see the live list of valid types — the backend ' +
14
+ 'rejects unknown values.');
32
15
  const actionStepSchema = z
33
16
  .object({
34
17
  $kind: z.literal('Action'),
@@ -82,10 +65,11 @@ export function registerWorkflowTools(server, client) {
82
65
  server.registerTool('list_workflow_definitions', {
83
66
  description: 'List all available workflow action types (with their input/output field schemas), trigger types, and block types. ' +
84
67
  'ALWAYS call this first before creating a workflow — it tells you exactly what action types exist, ' +
85
- 'what input fields each action expects, and what output fields you can reference with {{step_id.output.field}}.',
68
+ 'what input fields each action expects, and what output fields you can reference with {{step_id.output.field}}. ' +
69
+ 'NOTE: For ai-trigger, form-trigger, and manual-ticket-trigger the static payloadDef is intentionally empty — the per-workflow payload contract lives in trigger_configuration (aiPayloadShape / formSchema). Fetch a specific workflow via get_workflow to read it.',
86
70
  }, async () => {
87
- const data = await client.get('/workflows/definitions');
88
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
71
+ const data = (await client.GET('/workflows/definitions')).data;
72
+ return jsonContent(data);
89
73
  });
90
74
  server.registerTool('validate_workflow', {
91
75
  description: 'Validate workflow blocks without creating a workflow. Returns issues and action types used. ' +
@@ -95,15 +79,18 @@ export function registerWorkflowTools(server, client) {
95
79
  workflow_blocks: z.array(workflowBlockSchema).describe('Workflow blocks to validate'),
96
80
  },
97
81
  }, async ({ trigger_type, workflow_blocks }) => {
98
- const data = await client.post('/workflows/validate', {
99
- trigger_type,
100
- workflow_blocks,
101
- });
102
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
82
+ const data = (await client.POST('/workflows/validate', {
83
+ body: { trigger_type: trigger_type, workflow_blocks },
84
+ })).data;
85
+ return jsonContent(data);
103
86
  });
104
87
  server.registerTool('create_workflow', {
105
88
  description: 'Create a new workflow. Created as an inactive draft — use activate_workflow to make it live. ' +
106
- 'IMPORTANT: Call list_workflow_definitions first to see available action types and their input fields.',
89
+ 'IMPORTANT: Call list_workflow_definitions first to see available action types and their input fields. ' +
90
+ 'trigger_configuration is required whenever the chosen trigger has non-empty `configurationDef` in list_workflow_definitions. Walk that schema and set every required property. Common cases: cron-trigger → cronExpression; webhook → accessControl; ticket-inactive / agent-inactive → inactiveFor + unit; macro-called → macroId; ticket-handoff → enabled_on_emergency_handoff. ' +
91
+ 'ai-trigger needs BOTH `theGoalOfTheWorkflow` (string, when-to-invoke description the AI router reads) AND `aiPayloadShape` (JSON Schema for fields the agent passes). form-trigger and manual-ticket-trigger need `formSchema` (JSON Schema). ' +
92
+ 'JSON Schema shape: `{ type: "object", properties: { <field>: { type, description, enum?, ... } }, required: [...] }`. `description` on every property is load-bearing — for ai-trigger it IS the contract the router fills in; for forms it becomes the field help text. ' +
93
+ 'Without theGoalOfTheWorkflow the ai-trigger workflow never fires. Without aiPayloadShape / formSchema, refs like {{trigger.aiPayload.*}} silently resolve to undefined.',
107
94
  inputSchema: {
108
95
  name: z.string().describe('Workflow name'),
109
96
  description: z.string().optional().describe('Workflow description'),
@@ -111,7 +98,7 @@ export function registerWorkflowTools(server, client) {
111
98
  trigger_configuration: z
112
99
  .record(z.string(), z.unknown())
113
100
  .optional()
114
- .describe('Trigger-specific config (e.g. cron expression for cron-trigger)'),
101
+ .describe('Trigger-specific config. REQUIRED for ai-trigger (set `aiPayloadShape`: JSON Schema), form-trigger and manual-ticket-trigger (set `formSchema`: JSON Schema), and cron-trigger (set `cronExpression`: cron string). Omitted for triggers whose payload is fixed (ticket-*, contact-*, sla-*, voice-*).'),
115
102
  trigger_constraints: z
116
103
  .record(z.string(), z.unknown())
117
104
  .optional()
@@ -122,33 +109,38 @@ export function registerWorkflowTools(server, client) {
122
109
  },
123
110
  }, async ({ name, description, trigger_type, trigger_configuration, trigger_constraints, workflow_blocks, }) => {
124
111
  const editorState = blocksToEditorState(trigger_type, workflow_blocks, trigger_configuration, trigger_constraints);
125
- const data = await client.post('/workflows/', {
126
- name,
127
- description,
128
- trigger_type,
129
- trigger_configuration: trigger_configuration ?? null,
130
- trigger_constraints: trigger_constraints ?? null,
131
- workflow_blocks,
132
- workflow_editor_state: editorState,
133
- });
134
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
112
+ const data = (await client.POST('/workflows', {
113
+ body: {
114
+ name,
115
+ description,
116
+ trigger_type: trigger_type,
117
+ trigger_configuration: trigger_configuration ?? null,
118
+ trigger_constraints: trigger_constraints ?? null,
119
+ workflow_blocks,
120
+ workflow_editor_state: editorState,
121
+ },
122
+ })).data;
123
+ return jsonContent(data);
135
124
  });
136
125
  server.registerTool('list_workflows', {
137
126
  description: 'List all workflows in your organization. Returns the latest version of each with name, trigger type, and active status.',
138
127
  }, async () => {
139
- const data = await client.get('/workflows/');
140
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
128
+ const data = (await client.GET('/workflows')).data;
129
+ return jsonContent(data);
141
130
  });
142
131
  server.registerTool('get_workflow', {
143
132
  description: 'Get a specific workflow by UUID, including its blocks, trigger configuration, active status, and version number.',
144
133
  inputSchema: { workflow_id: z.string().describe('The workflow UUID') },
145
134
  }, async ({ workflow_id }) => {
146
- const data = await client.get(`/workflows/${safePath(workflow_id)}`);
147
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
135
+ const data = (await client.GET('/workflows/{workflow_id}', {
136
+ params: { path: { workflow_id } },
137
+ })).data;
138
+ return jsonContent(data);
148
139
  });
149
140
  server.registerTool('update_workflow', {
150
141
  description: 'Update the draft of a workflow. Only provided fields change; omitted fields carry over. ' +
151
- 'Changes are saved to the draft — use activate_workflow to publish.',
142
+ 'Changes are saved to the draft — use activate_workflow to publish. ' +
143
+ 'If you switch trigger_type to ai-trigger, form-trigger, or manual-ticket-trigger, also pass trigger_configuration with the per-workflow schema (`aiPayloadShape` or `formSchema`) — switching trigger type without setting the schema leaves the workflow without a payload contract.',
152
144
  inputSchema: {
153
145
  workflow_id: z.string().describe('The workflow UUID to update'),
154
146
  name: z.string().optional().describe('New workflow name'),
@@ -157,7 +149,7 @@ export function registerWorkflowTools(server, client) {
157
149
  trigger_configuration: z
158
150
  .record(z.string(), z.unknown())
159
151
  .optional()
160
- .describe('New trigger configuration'),
152
+ .describe('New trigger configuration. For ai-trigger set `aiPayloadShape` (JSON Schema); for form-trigger/manual-ticket-trigger set `formSchema` (JSON Schema); for cron-trigger set `cronExpression`.'),
161
153
  trigger_constraints: z
162
154
  .record(z.string(), z.unknown())
163
155
  .optional()
@@ -169,44 +161,58 @@ export function registerWorkflowTools(server, client) {
169
161
  },
170
162
  }, async ({ workflow_id, ...body }) => {
171
163
  // Fetch existing to merge blocks/trigger for editor state generation
172
- const existing = workflowFetchResponseSchema.parse(await client.get(`/workflows/${safePath(workflow_id)}`));
164
+ const existing = workflowFetchResponseSchema.parse((await client.GET('/workflows/{workflow_id}', {
165
+ params: { path: { workflow_id } },
166
+ })).data);
173
167
  const blocks = body.workflow_blocks ?? existing.workflow_blocks ?? [];
174
168
  const triggerType = body.trigger_type ?? existing.trigger_type;
175
169
  const triggerConfig = body.trigger_configuration ?? existing.trigger_configuration;
176
170
  const triggerConstraints = body.trigger_constraints ?? existing.trigger_constraints;
177
171
  const editorState = blocksToEditorState(triggerType, blocks, triggerConfig, triggerConstraints);
178
- const data = await client.patch(`/workflows/${safePath(workflow_id)}/draft`, {
179
- ...body,
180
- workflow_editor_state: editorState,
181
- });
182
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
172
+ const data = (await client.PATCH('/workflows/{workflow_id}/draft', {
173
+ params: { path: { workflow_id } },
174
+ body: {
175
+ ...body,
176
+ trigger_type: body.trigger_type,
177
+ workflow_editor_state: editorState,
178
+ },
179
+ })).data;
180
+ return jsonContent(data);
183
181
  });
184
182
  server.registerTool('delete_workflow', {
185
183
  description: 'Delete a workflow and all its versions. Active versions are deactivated first. Cannot be undone.',
186
184
  inputSchema: { workflow_id: z.string().describe('The workflow UUID to delete') },
187
185
  }, async ({ workflow_id }) => {
188
- const data = await client.delete(`/workflows/${safePath(workflow_id)}`);
189
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
186
+ const data = (await client.DELETE('/workflows/{workflow_id}', {
187
+ params: { path: { workflow_id } },
188
+ })).data;
189
+ return jsonContent(data);
190
190
  });
191
191
  server.registerTool('activate_workflow', {
192
192
  description: 'Activate the latest version of a workflow. Any previously active version is deactivated.',
193
193
  inputSchema: { workflow_id: z.string().describe('The workflow UUID to activate') },
194
194
  }, async ({ workflow_id }) => {
195
- const data = await client.post(`/workflows/${safePath(workflow_id)}/activate`);
196
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
195
+ const data = (await client.POST('/workflows/{workflow_id}/activate', {
196
+ params: { path: { workflow_id } },
197
+ })).data;
198
+ return jsonContent(data);
197
199
  });
198
200
  server.registerTool('deactivate_workflow', {
199
201
  description: 'Deactivate the currently active version of a workflow.',
200
202
  inputSchema: { workflow_id: z.string().describe('The workflow UUID to deactivate') },
201
203
  }, async ({ workflow_id }) => {
202
- const data = await client.post(`/workflows/${safePath(workflow_id)}/deactivate`);
203
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
204
+ const data = (await client.POST('/workflows/{workflow_id}/deactivate', {
205
+ params: { path: { workflow_id } },
206
+ })).data;
207
+ return jsonContent(data);
204
208
  });
205
209
  server.registerTool('trigger_workflow', {
206
210
  description: 'Manually trigger a workflow. Must be "manual-trigger" type and active. Runs in background.',
207
211
  inputSchema: { workflow_id: z.string().describe('The workflow UUID to trigger') },
208
212
  }, async ({ workflow_id }) => {
209
- await client.post(`/workflows/${safePath(workflow_id)}/trigger`);
213
+ await client.POST('/workflows/{workflow_id}/trigger', {
214
+ params: { path: { workflow_id } },
215
+ });
210
216
  return { content: [{ type: 'text', text: `Workflow ${workflow_id} triggered.` }] };
211
217
  });
212
218
  server.registerTool('list_workflow_runs', {
@@ -236,13 +242,18 @@ export function registerWorkflowTools(server, client) {
236
242
  .describe('Comma-separated: manual, automatic, scheduled'),
237
243
  },
238
244
  }, async ({ workflow_id, page, limit, status, trigger_cause }) => {
239
- const data = await client.get(`/workflows/${safePath(workflow_id)}/runs`, {
240
- page: page?.toString(),
241
- limit: limit?.toString(),
242
- status,
243
- trigger_cause,
244
- });
245
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
245
+ const data = (await client.GET('/workflows/{workflow_id}/runs', {
246
+ params: {
247
+ path: { workflow_id },
248
+ query: {
249
+ page,
250
+ limit,
251
+ status,
252
+ trigger_cause,
253
+ },
254
+ },
255
+ })).data;
256
+ return jsonContent(data);
246
257
  });
247
258
  server.registerTool('get_workflow_run', {
248
259
  description: 'Get details of a specific workflow run.',
@@ -251,8 +262,96 @@ export function registerWorkflowTools(server, client) {
251
262
  run_id: z.string().describe('The run UUID'),
252
263
  },
253
264
  }, async ({ workflow_id, run_id }) => {
254
- const data = await client.get(`/workflows/${safePath(workflow_id)}/runs/${safePath(run_id)}`);
255
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
265
+ const data = (await client.GET('/workflows/{workflow_id}/runs/{run_id}', {
266
+ params: { path: { workflow_id, run_id } },
267
+ })).data;
268
+ return jsonContent(data);
269
+ });
270
+ server.registerTool('get_workflow_run_steps', {
271
+ description: 'Return per-step inputs, outputs, status, and timing for a single workflow run, in execution order. ' +
272
+ 'Call this after `get_workflow_run` to drill into exactly which step failed and what value it saw — the most useful single tool for diagnosing a broken run.',
273
+ inputSchema: {
274
+ workflow_id: z.string().describe('The workflow UUID'),
275
+ run_id: z.string().describe('The run UUID'),
276
+ },
277
+ }, async ({ workflow_id, run_id }) => {
278
+ const data = (await client.GET('/workflows/{workflow_id}/runs/{run_id}/run-steps', {
279
+ params: { path: { workflow_id, run_id } },
280
+ })).data;
281
+ return jsonContent(data);
282
+ });
283
+ server.registerTool('get_workflow_run_logs', {
284
+ description: 'Return chronological log entries for a workflow run, including block/branch context. ' +
285
+ 'Use this when `get_workflow_run_steps` is not enough — typically when branching or scope resolution went sideways and step-level inputs/outputs alone do not explain the behavior.',
286
+ inputSchema: {
287
+ workflow_id: z.string().describe('The workflow UUID'),
288
+ run_id: z.string().describe('The run UUID'),
289
+ },
290
+ }, async ({ workflow_id, run_id }) => {
291
+ const data = (await client.GET('/workflows/{workflow_id}/runs/{run_id}/logs', {
292
+ params: { path: { workflow_id, run_id } },
293
+ })).data;
294
+ return jsonContent(data);
295
+ });
296
+ server.registerTool('rerun_workflow_run', {
297
+ description: 'Re-fire a failed workflow run with the same trigger payload. ' +
298
+ 'Only valid for runs whose status is `failed`. Replays against the SAME workflow version the original run executed (not the latest) — useful for reproducing flakes or retrying a transient infra failure after the underlying issue was fixed in the surrounding system. ' +
299
+ 'For validating a NEW workflow definition, call `test_workflow` (or `update_workflow` + `test_workflow` + `activate_workflow`) instead.',
300
+ inputSchema: {
301
+ workflow_id: z.string().describe('The workflow UUID'),
302
+ run_id: z.string().describe('The UUID of the failed run to re-fire'),
303
+ },
304
+ }, async ({ workflow_id, run_id }) => {
305
+ const data = (await client.POST('/workflows/{workflow_id}/runs/{run_id}/rerun', {
306
+ params: { path: { workflow_id, run_id } },
307
+ })).data;
308
+ return jsonContent(data);
309
+ });
310
+ server.registerTool('test_workflow', {
311
+ description: 'Dry-run an EXISTING workflow against a synthetic trigger payload. ' +
312
+ 'Lifecycle: `validate_workflow` → `create_workflow` → `test_workflow` → `activate_workflow`. The workflow must already exist (this calls by `workflow_id`); for a brand-new workflow, create it first (as an inactive draft), then test, then activate. ' +
313
+ "Build the `trigger_payload.payload` to match the trigger's `payloadDef` (from `list_workflow_definitions`). Returns the new run id — feed it into `get_workflow_run` / `get_workflow_run_steps` to inspect the result. " +
314
+ 'For `manual-trigger` workflows there is no synthetic payload to test — use `trigger_workflow` after activation instead. ' +
315
+ 'WARNING: "test" means synthetic payload, not "no side effects" — actions that send webhooks, post Slack messages, write to integrations, or mutate tickets WILL fire for real. Warn the user before invoking on a workflow with destructive or externally-visible steps.',
316
+ inputSchema: {
317
+ workflow_id: z.string().describe('The workflow UUID to test'),
318
+ trigger_payload: z
319
+ .object({
320
+ type: triggerTypeSchema,
321
+ payload: z
322
+ .unknown()
323
+ .describe("Synthetic event payload matching the trigger's `payloadDef` (or the per-workflow `aiPayloadShape` / `formSchema`). Usually an object, but the backend accepts any JSON. Use realistic-looking IDs and strings, not placeholder values."),
324
+ })
325
+ .describe('Synthetic trigger event to dry-run the workflow against'),
326
+ ignore_constraints: z
327
+ .boolean()
328
+ .optional()
329
+ .describe('When true, skip the workflow\'s trigger_constraints for this test run'),
330
+ },
331
+ }, async ({ workflow_id, trigger_payload, ignore_constraints }) => {
332
+ const data = (await client.POST('/workflows/{workflow_id}/test', {
333
+ params: { path: { workflow_id } },
334
+ body: {
335
+ trigger_payload: {
336
+ type: trigger_payload.type,
337
+ payload: trigger_payload.payload,
338
+ },
339
+ ignore_constraints: ignore_constraints ?? false,
340
+ },
341
+ })).data;
342
+ return jsonContent(data);
343
+ });
344
+ server.registerTool('clone_workflow', {
345
+ description: 'Clone a workflow into a new inactive draft. The clone copies the latest version of the source workflow (blocks, trigger, editor state) into a new workflow with its own UUID. ' +
346
+ 'Use this for templating ("like the X workflow but for Y") — clone, then call `update_workflow` for the Y-specific changes. The clone starts inactive; call `activate_workflow` when ready.',
347
+ inputSchema: {
348
+ workflow_id: z.string().describe('The source workflow UUID to clone from'),
349
+ },
350
+ }, async ({ workflow_id }) => {
351
+ const data = (await client.POST('/workflows/{workflow_id}/clone', {
352
+ params: { path: { workflow_id } },
353
+ })).data;
354
+ return jsonContent(data);
256
355
  });
257
356
  }
258
357
  //# sourceMappingURL=workflows.js.map
@@ -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,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAIlE,0EAA0E;AAC1E,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,qBAAqB;AACrB,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,QAAQ,CACP,+FAA+F;IAC7F,uGAAuG;IACvG,gGAAgG;IAChG,yBAAyB,CAC5B,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,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChD,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7C,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAoB;IAC3E,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,WAAW,EACT,oHAAoH;YACpH,oGAAoG;YACpG,iHAAiH;YACjH,qQAAqQ;KACxQ,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,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,CACX,MAAM,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACvC,IAAI,EAAE,EAAE,YAAY,EAAE,YAA2B,EAAE,eAAe,EAAE;SACrE,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,+FAA+F;YAC/F,wGAAwG;YACxG,qXAAqX;YACrX,gPAAgP;YAChP,2QAA2Q;YAC3Q,yKAAyK;QAC3K,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,CACP,wSAAwS,CACzS;YACH,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,CACX,MAAM,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE;YAC9B,IAAI,EAAE;gBACJ,IAAI;gBACJ,WAAW;gBACX,YAAY,EAAE,YAA2B;gBACzC,qBAAqB,EAAE,qBAAqB,IAAI,IAAI;gBACpD,mBAAmB,EAAE,mBAAmB,IAAI,IAAI;gBAChD,eAAe;gBACf,qBAAqB,EAAE,WAAW;aACnC;SACF,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,yHAAyH;KAC5H,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,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,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE;YAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE;SAClC,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,0FAA0F;YAC1F,qEAAqE;YACrE,uRAAuR;QACzR,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,CACP,6LAA6L,CAC9L;YACH,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,2BAA2B,CAAC,KAAK,CAChD,CACE,MAAM,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE;YAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE;SAClC,CAAC,CACH,CAAC,IAAI,CACP,CAAC;QAEF,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,CACrC,WAAW,EACX,MAAM,EACN,aAAa,EACb,kBAAkB,CACnB,CAAC;QAEF,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;YACnD,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE;YACjC,IAAI,EAAE;gBACJ,GAAG,IAAI;gBACP,YAAY,EAAE,IAAI,CAAC,YAAuC;gBAC1D,qBAAqB,EAAE,WAAW;aACnC;SACF,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,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,CACX,MAAM,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE;YAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE;SAClC,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,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,CACX,MAAM,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;YACrD,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE;SAClC,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,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,CACX,MAAM,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;YACvD,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE;SAClC,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,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,kCAAkC,EAAE;YACpD,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE;SAClC,CAAC,CAAC;QACH,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;iBACX,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,EAAE;iBACV,QAAQ,CAAC,6CAA6C,CAAC;YAC1D,KAAK,EAAE,CAAC,CAAC,MAAM;iBACZ,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,EAAE;iBACV,QAAQ,CAAC,4DAA4D,CAAC;YACzE,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,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE;YAChD,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,WAAW,EAAE;gBACrB,KAAK,EAAE;oBACL,IAAI;oBACJ,KAAK;oBACL,MAAM;oBACN,aAAa;iBACd;aACF;SACF,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,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,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,wCAAwC,EAAE;YACzD,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;SAC1C,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EACT,qGAAqG;YACrG,6JAA6J;QAC/J,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,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,kDAAkD,EAAE;YACnE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;SAC1C,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,uFAAuF;YACvF,oLAAoL;QACtL,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,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,6CAA6C,EAAE;YAC9D,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;SAC1C,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,+DAA+D;YAC/D,2QAA2Q;YAC3Q,wIAAwI;QAC1I,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACrD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;SACrE;KACF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;YAChE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;SAC1C,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,oEAAoE;YACpE,yPAAyP;YACzP,yNAAyN;YACzN,0HAA0H;YAC1H,0QAA0Q;QAC5Q,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC7D,eAAe,EAAE,CAAC;iBACf,MAAM,CAAC;gBACN,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,CAAC;qBACP,OAAO,EAAE;qBACT,QAAQ,CACP,wOAAwO,CACzO;aACJ,CAAC;iBACD,QAAQ,CAAC,yDAAyD,CAAC;YACtE,kBAAkB,EAAE,CAAC;iBAClB,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,uEAAuE,CAAC;SACrF;KACF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,EAAE,EAAE;QAC7D,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;YACjD,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE;YACjC,IAAI,EAAE;gBACJ,eAAe,EAAE;oBACf,IAAI,EAAE,eAAe,CAAC,IAAmB;oBACzC,OAAO,EAAE,eAAe,CAAC,OAAO;iBACjC;gBACD,kBAAkB,EAAE,kBAAkB,IAAI,KAAK;aAChD;SACF,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,gLAAgL;YAChL,4LAA4L;QAC9L,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;SAC3E;KACF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACxB,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;YAClD,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE;SAClC,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opencx/mcp",
3
- "version": "1.11.9",
3
+ "version": "1.11.25",
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",
@@ -27,10 +27,12 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@modelcontextprotocol/sdk": "^1.27.0",
30
+ "openapi-fetch": "0.14.0",
30
31
  "zod": "^3.25.0"
31
32
  },
32
33
  "devDependencies": {
33
34
  "@types/node": "^25.3.0",
35
+ "openapi-typescript": "^7.9.1",
34
36
  "typescript": "^5.9.3",
35
37
  "vitest": "^4.0.17"
36
38
  },
@@ -39,6 +41,7 @@
39
41
  "bundle": "pnpm build && pnpx esbuild dist/index.js --bundle --format=cjs --platform=node --target=node18 --outfile=dist/bundle.cjs",
40
42
  "dev": "tsc --watch",
41
43
  "start": "node dist/index.js",
42
- "test": "vitest run"
44
+ "test": "vitest run",
45
+ "gen:types": "openapi-typescript $SERVER_BASE_URL/api-json -o src/schema.ts"
43
46
  }
44
47
  }