@opencx/mcp 1.8.1 → 1.8.3

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 (86) hide show
  1. package/dist/server.d.ts.map +1 -1
  2. package/dist/server.js +8 -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 +4 -0
  64. package/dist/tools/sla.d.ts.map +1 -0
  65. package/dist/tools/sla.js +93 -0
  66. package/dist/tools/sla.js.map +1 -0
  67. package/dist/tools/tags.d.ts.map +1 -1
  68. package/dist/tools/tags.js +28 -13
  69. package/dist/tools/tags.js.map +1 -1
  70. package/dist/tools/teams.d.ts.map +1 -1
  71. package/dist/tools/teams.js +40 -17
  72. package/dist/tools/teams.js.map +1 -1
  73. package/dist/tools/training.d.ts.map +1 -1
  74. package/dist/tools/training.js +126 -81
  75. package/dist/tools/training.js.map +1 -1
  76. package/dist/tools/whatsapp.d.ts.map +1 -1
  77. package/dist/tools/whatsapp.js +21 -20
  78. package/dist/tools/whatsapp.js.map +1 -1
  79. package/dist/tools/widget.d.ts +4 -0
  80. package/dist/tools/widget.d.ts.map +1 -0
  81. package/dist/tools/widget.js +23 -0
  82. package/dist/tools/widget.js.map +1 -0
  83. package/dist/tools/workflows.d.ts.map +1 -1
  84. package/dist/tools/workflows.js +104 -65
  85. package/dist/tools/workflows.js.map +1 -1
  86. package/package.json +1 -1
@@ -1,47 +1,70 @@
1
1
  import { z } from 'zod';
2
2
  import { safePath } from '../api-client.js';
3
3
  export function registerTeamTools(server, client) {
4
- server.tool('list_teams', 'List all teams in your organization. Teams are used to group agents for routing, assignment, and reporting.', {}, async () => {
4
+ server.registerTool('list_teams', {
5
+ description: 'List all teams in your organization. Teams are used to group agents for routing, assignment, and reporting.',
6
+ }, async () => {
5
7
  const data = await client.get('/teams/');
6
8
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
7
9
  });
8
- server.tool('get_team', 'Get details of a specific team by ID, including its name and member count. Teams group agents for routing, assignment, and reporting.', { team_id: z.string().describe('The team ID') }, async ({ team_id }) => {
10
+ server.registerTool('get_team', {
11
+ description: 'Get details of a specific team by ID, including its name and member count. Teams group agents for routing, assignment, and reporting.',
12
+ inputSchema: { team_id: z.string().describe('The team ID') },
13
+ }, async ({ team_id }) => {
9
14
  const data = await client.get(`/teams/${safePath(team_id)}`);
10
15
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
11
16
  });
12
- server.tool('create_team', 'Create a new team in your organization.', {
13
- name: z.string().describe('The team name'),
14
- description: z.string().optional().describe('A description of the team'),
17
+ server.registerTool('create_team', {
18
+ description: 'Create a new team in your organization.',
19
+ inputSchema: {
20
+ name: z.string().describe('The team name'),
21
+ description: z.string().optional().describe('A description of the team'),
22
+ },
15
23
  }, async (params) => {
16
24
  const data = await client.post('/teams/', params);
17
25
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
18
26
  });
19
- server.tool('update_team', 'Update an existing team name or description.', {
20
- team_id: z.string().describe('The team ID to update'),
21
- name: z.string().describe('New team name'),
22
- description: z.string().optional().describe('New description'),
27
+ server.registerTool('update_team', {
28
+ description: 'Update an existing team name or description.',
29
+ inputSchema: {
30
+ team_id: z.string().describe('The team ID to update'),
31
+ name: z.string().describe('New team name'),
32
+ description: z.string().optional().describe('New description'),
33
+ },
23
34
  }, async ({ team_id, ...body }) => {
24
35
  const data = await client.put(`/teams/${safePath(team_id)}`, body);
25
36
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
26
37
  });
27
- server.tool('delete_team', 'Permanently delete a team by ID. This action cannot be undone. Members will be unassigned from the team.', { team_id: z.string().describe('The team ID to delete') }, async ({ team_id }) => {
38
+ server.registerTool('delete_team', {
39
+ description: 'Permanently delete a team by ID. This action cannot be undone. Members will be unassigned from the team.',
40
+ inputSchema: { team_id: z.string().describe('The team ID to delete') },
41
+ }, async ({ team_id }) => {
28
42
  await client.delete(`/teams/${safePath(team_id)}`);
29
43
  return { content: [{ type: 'text', text: `Team ${team_id} deleted successfully.` }] };
30
44
  });
31
- server.tool('list_team_members', 'List all users (agents) assigned to a specific team.', { team_id: z.string().describe('The team ID') }, async ({ team_id }) => {
45
+ server.registerTool('list_team_members', {
46
+ description: 'List all users (agents) assigned to a specific team.',
47
+ inputSchema: { team_id: z.string().describe('The team ID') },
48
+ }, async ({ team_id }) => {
32
49
  const data = await client.get(`/teams/${safePath(team_id)}/users`);
33
50
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
34
51
  });
35
- server.tool('add_team_member', 'Add a user (agent) to a team.', {
36
- team_id: z.string().describe('The team ID'),
37
- user_id: z.string().describe('The user ID to add to the team'),
52
+ server.registerTool('add_team_member', {
53
+ description: 'Add a user (agent) to a team.',
54
+ inputSchema: {
55
+ team_id: z.string().describe('The team ID'),
56
+ user_id: z.string().describe('The user ID to add to the team'),
57
+ },
38
58
  }, async ({ team_id, user_id }) => {
39
59
  const data = await client.post(`/teams/${safePath(team_id)}/users`, { userId: user_id });
40
60
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
41
61
  });
42
- server.tool('remove_team_member', 'Remove a user (agent) from a team.', {
43
- team_id: z.string().describe('The team ID'),
44
- user_id: z.string().describe('The user ID to remove from the team'),
62
+ server.registerTool('remove_team_member', {
63
+ description: 'Remove a user (agent) from a team.',
64
+ inputSchema: {
65
+ team_id: z.string().describe('The team ID'),
66
+ user_id: z.string().describe('The user ID to remove from the team'),
67
+ },
45
68
  }, async ({ team_id, user_id }) => {
46
69
  await client.delete(`/teams/${safePath(team_id)}/users/${safePath(user_id)}`);
47
70
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAgB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAoB;IACvE,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,WAAW,EACT,6GAA6G;KAChH,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,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,UAAU,EACV;QACE,WAAW,EACT,uIAAuI;QACzI,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;KAC7D,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACpB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7D,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,aAAa,EACb;QACE,WAAW,EAAE,yCAAyC;QACtD,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,2BAA2B,CAAC;SACzE;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,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,aAAa,EACb;QACE,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC1C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;SAC/D;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,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,aAAa,EACb;QACE,WAAW,EACT,0GAA0G;QAC5G,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE;KACvE,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACpB,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,OAAO,wBAAwB,EAAE,CAAC,EAAE,CAAC;IACxF,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EAAE,sDAAsD;QACnE,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;KAC7D,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACpB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnE,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,EAAE,+BAA+B;QAC5C,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;SAC/D;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACzF,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,oBAAoB,EACpB;QACE,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;SACpE;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7B,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,QAAQ,CAAC,OAAO,CAAC,UAAU,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9E,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,OAAO,sBAAsB,OAAO,GAAG,EAAE,CAAC;SACnF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"training.d.ts","sourceRoot":"","sources":["../../src/tools/training.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAE1D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA8O5E"}
1
+ {"version":3,"file":"training.d.ts","sourceRoot":"","sources":["../../src/tools/training.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAE1D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA8R5E"}
@@ -1,38 +1,46 @@
1
1
  import { z } from 'zod';
2
2
  import { safePath } from '../api-client.js';
3
3
  export function registerTrainingTools(server, client) {
4
- server.tool('list_training_scenarios', 'List all custom training scenarios for your AI agent. Training scenarios teach the AI how to handle specific customer situations. There are two types: BEHAVIORAL (always active, controls tone/style) and SCENARIO_SPECIFIC (activated when a matching question is asked).', {}, async () => {
4
+ server.registerTool('list_training_scenarios', {
5
+ description: 'List all custom training scenarios for your AI agent. Training scenarios teach the AI how to handle specific customer situations. There are two types: BEHAVIORAL (always active, controls tone/style) and SCENARIO_SPECIFIC (activated when a matching question is asked).',
6
+ }, async () => {
5
7
  const data = await client.get('/training/');
6
8
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
7
9
  });
8
- server.tool('get_training_scenario', 'Get a single training scenario by ID, including its type, draft status, directory, and channel/segment restrictions.', { id: z.string().describe('The training scenario ID') }, async ({ id }) => {
10
+ server.registerTool('get_training_scenario', {
11
+ description: 'Get a single training scenario by ID, including its type, draft status, directory, and channel/segment restrictions.',
12
+ inputSchema: { id: z.string().describe('The training scenario ID') },
13
+ }, async ({ id }) => {
9
14
  const data = await client.get(`/training/${safePath(id)}`);
10
15
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
11
16
  });
12
- server.tool('create_training_scenario', 'Create a new training scenario. Use type "BEHAVIORAL" for always-active instructions (tone, guardrails) or "SCENARIO_SPECIFIC" for question-triggered scenarios. New scenarios are published by default (is_draft=false).', {
13
- title: z.string().describe('The scenario title or trigger phrase'),
14
- content: z.string().describe('The instruction body — how the AI should respond'),
15
- type: z
16
- .enum(['BEHAVIORAL', 'SCENARIO_SPECIFIC'])
17
- .optional()
18
- .describe('Instruction type (default: SCENARIO_SPECIFIC)'),
19
- is_draft: z
20
- .boolean()
21
- .optional()
22
- .describe('If true, the scenario is saved as draft and not used by the AI'),
23
- directory_id: z
24
- .string()
25
- .nullable()
26
- .optional()
27
- .describe('Directory ID to organize this scenario into'),
28
- restricted_to_channels: z
29
- .array(z.string())
30
- .optional()
31
- .describe('Limit to specific channels (e.g. ["web", "email"]). Empty = all channels.'),
32
- restricted_to_segments: z
33
- .array(z.string())
34
- .optional()
35
- .describe('Limit to specific contact segments. Empty = all segments.'),
17
+ server.registerTool('create_training_scenario', {
18
+ description: 'Create a new training scenario. Use type "BEHAVIORAL" for always-active instructions (tone, guardrails) or "SCENARIO_SPECIFIC" for question-triggered scenarios. New scenarios are published by default (is_draft=false).',
19
+ inputSchema: {
20
+ title: z.string().describe('The scenario title or trigger phrase'),
21
+ content: z.string().describe('The instruction body — how the AI should respond'),
22
+ type: z
23
+ .enum(['BEHAVIORAL', 'SCENARIO_SPECIFIC'])
24
+ .optional()
25
+ .describe('Instruction type (default: SCENARIO_SPECIFIC)'),
26
+ is_draft: z
27
+ .boolean()
28
+ .optional()
29
+ .describe('If true, the scenario is saved as draft and not used by the AI'),
30
+ directory_id: z
31
+ .string()
32
+ .nullable()
33
+ .optional()
34
+ .describe('Directory ID to organize this scenario into'),
35
+ restricted_to_channels: z
36
+ .array(z.string())
37
+ .optional()
38
+ .describe('Limit to specific channels (e.g. ["web", "email"]). Empty = all channels.'),
39
+ restricted_to_segments: z
40
+ .array(z.string())
41
+ .optional()
42
+ .describe('Limit to specific contact segments. Empty = all segments.'),
43
+ },
36
44
  }, async (params) => {
37
45
  const data = await client.post('/training/', {
38
46
  title: params.title,
@@ -45,24 +53,38 @@ export function registerTrainingTools(server, client) {
45
53
  });
46
54
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
47
55
  });
48
- server.tool('update_training_scenario', 'Update an existing training scenario. Title and content are required on every update — fetch the scenario first with get_training_scenario if you only want to change one field.', {
49
- id: z.string().describe('The training scenario ID to update'),
50
- title: z.string().describe('Scenario title or trigger phrase (required — send current value if unchanged)'),
51
- content: z.string().describe('Instruction body (required send current value if unchanged)'),
52
- type: z
53
- .enum(['BEHAVIORAL', 'SCENARIO_SPECIFIC'])
54
- .optional()
55
- .describe('Instruction type: BEHAVIORAL (always active) or SCENARIO_SPECIFIC (semantic match)'),
56
- is_draft: z.boolean().optional().describe('Draft status — true means inactive, false means live'),
57
- directory_id: z.string().nullable().optional().describe('Directory ID to organize into, or null to uncategorize'),
58
- restricted_to_channels: z
59
- .array(z.string())
60
- .optional()
61
- .describe('Channels this applies to (e.g. ["web", "email"]). Empty array = all channels.'),
62
- restricted_to_segments: z
63
- .array(z.string())
64
- .optional()
65
- .describe('Contact segments this applies to. Empty array = all segments.'),
56
+ server.registerTool('update_training_scenario', {
57
+ description: 'Update an existing training scenario. Title and content are required on every update — fetch the scenario first with get_training_scenario if you only want to change one field.',
58
+ inputSchema: {
59
+ id: z.string().describe('The training scenario ID to update'),
60
+ title: z
61
+ .string()
62
+ .describe('Scenario title or trigger phrase (required — send current value if unchanged)'),
63
+ content: z
64
+ .string()
65
+ .describe('Instruction body (required send current value if unchanged)'),
66
+ type: z
67
+ .enum(['BEHAVIORAL', 'SCENARIO_SPECIFIC'])
68
+ .optional()
69
+ .describe('Instruction type: BEHAVIORAL (always active) or SCENARIO_SPECIFIC (semantic match)'),
70
+ is_draft: z
71
+ .boolean()
72
+ .optional()
73
+ .describe('Draft status true means inactive, false means live'),
74
+ directory_id: z
75
+ .string()
76
+ .nullable()
77
+ .optional()
78
+ .describe('Directory ID to organize into, or null to uncategorize'),
79
+ restricted_to_channels: z
80
+ .array(z.string())
81
+ .optional()
82
+ .describe('Channels this applies to (e.g. ["web", "email"]). Empty array = all channels.'),
83
+ restricted_to_segments: z
84
+ .array(z.string())
85
+ .optional()
86
+ .describe('Contact segments this applies to. Empty array = all segments.'),
87
+ },
66
88
  }, async ({ id, title, content, ...rest }) => {
67
89
  const data = await client.put(`/training/${safePath(id)}`, {
68
90
  title,
@@ -74,23 +96,32 @@ export function registerTrainingTools(server, client) {
74
96
  });
75
97
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
76
98
  });
77
- server.tool('delete_training_scenario', 'Permanently delete a training scenario by ID. This action cannot be undone.', { id: z.string().describe('The training scenario ID to delete') }, async ({ id }) => {
99
+ server.registerTool('delete_training_scenario', {
100
+ description: 'Permanently delete a training scenario by ID. This action cannot be undone.',
101
+ inputSchema: { id: z.string().describe('The training scenario ID to delete') },
102
+ }, async ({ id }) => {
78
103
  await client.delete(`/training/${safePath(id)}`);
79
104
  return { content: [{ type: 'text', text: `Training scenario ${id} deleted successfully.` }] };
80
105
  });
81
- server.tool('toggle_training_draft', 'Publish or unpublish a training scenario. Draft scenarios are saved but not used by the AI agent. Publishing makes them active.', {
82
- id: z.string().describe('The training scenario ID'),
83
- draft: z.boolean().describe('Set true to make draft (inactive), false to publish (active)'),
106
+ server.registerTool('toggle_training_draft', {
107
+ description: 'Publish or unpublish a training scenario. Draft scenarios are saved but not used by the AI agent. Publishing makes them active.',
108
+ inputSchema: {
109
+ id: z.string().describe('The training scenario ID'),
110
+ draft: z.boolean().describe('Set true to make draft (inactive), false to publish (active)'),
111
+ },
84
112
  }, async ({ id, draft }) => {
85
113
  const data = await client.put(`/training/${safePath(id)}/draft`, { draft });
86
114
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
87
115
  });
88
- server.tool('move_training_to_directory', 'Move a training scenario into a directory for organization, or set directory_id to null to uncategorize it.', {
89
- id: z.string().describe('The training scenario ID to move'),
90
- directory_id: z
91
- .string()
92
- .nullable()
93
- .describe('Target directory ID, or null to uncategorize'),
116
+ server.registerTool('move_training_to_directory', {
117
+ description: 'Move a training scenario into a directory for organization, or set directory_id to null to uncategorize it.',
118
+ inputSchema: {
119
+ id: z.string().describe('The training scenario ID to move'),
120
+ directory_id: z
121
+ .string()
122
+ .nullable()
123
+ .describe('Target directory ID, or null to uncategorize'),
124
+ },
94
125
  }, async ({ id, directory_id }) => {
95
126
  await client.post(`/training/${safePath(id)}/move`, { directory_id });
96
127
  return {
@@ -104,15 +135,18 @@ export function registerTrainingTools(server, client) {
104
135
  ],
105
136
  };
106
137
  });
107
- server.tool('get_training_directory_tree', 'Get all training directories with their items, plus uncategorized trainings. Gives a full overview of how trainings are organized.', {
108
- show_drafts: z
109
- .enum(['true', 'false'])
110
- .optional()
111
- .describe('Include draft trainings (default: true)'),
112
- show_published: z
113
- .enum(['true', 'false'])
114
- .optional()
115
- .describe('Include published trainings (default: true)'),
138
+ server.registerTool('get_training_directory_tree', {
139
+ description: 'Get all training directories with their items, plus uncategorized trainings. Gives a full overview of how trainings are organized.',
140
+ inputSchema: {
141
+ show_drafts: z
142
+ .enum(['true', 'false'])
143
+ .optional()
144
+ .describe('Include draft trainings (default: true)'),
145
+ show_published: z
146
+ .enum(['true', 'false'])
147
+ .optional()
148
+ .describe('Include published trainings (default: true)'),
149
+ },
116
150
  }, async ({ show_drafts, show_published }) => {
117
151
  const data = await client.get('/training/directories/tree', {
118
152
  show_drafts,
@@ -120,39 +154,50 @@ export function registerTrainingTools(server, client) {
120
154
  });
121
155
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
122
156
  });
123
- server.tool('list_training_directories', 'List all directories used to organize training scenarios.', {}, async () => {
157
+ server.registerTool('list_training_directories', {
158
+ description: 'List all directories used to organize training scenarios.',
159
+ }, async () => {
124
160
  const data = await client.get('/training/directories');
125
161
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
126
162
  });
127
- server.tool('create_training_directory', 'Create a new directory for organizing training scenarios.', { name: z.string().describe('The directory name') }, async ({ name }) => {
163
+ server.registerTool('create_training_directory', {
164
+ description: 'Create a new directory for organizing training scenarios.',
165
+ inputSchema: { name: z.string().describe('The directory name') },
166
+ }, async ({ name }) => {
128
167
  const data = await client.post('/training/directories', { name });
129
168
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
130
169
  });
131
- server.tool('update_training_directory', 'Rename a training directory.', {
132
- directory_id: z.string().describe('The directory ID to rename'),
133
- name: z.string().describe('The new directory name'),
170
+ server.registerTool('update_training_directory', {
171
+ description: 'Rename a training directory.',
172
+ inputSchema: {
173
+ directory_id: z.string().describe('The directory ID to rename'),
174
+ name: z.string().describe('The new directory name'),
175
+ },
134
176
  }, async ({ directory_id, name }) => {
135
177
  const data = await client.put(`/training/directories/${safePath(directory_id)}`, { name });
136
178
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
137
179
  });
138
- server.tool('delete_training_directory', 'Delete a training directory and ALL trainings inside it. This action cannot be undone.', { directory_id: z.string().describe('The directory ID to delete') }, async ({ directory_id }) => {
180
+ server.registerTool('delete_training_directory', {
181
+ description: 'Delete a training directory and ALL trainings inside it. This action cannot be undone.',
182
+ inputSchema: { directory_id: z.string().describe('The directory ID to delete') },
183
+ }, async ({ directory_id }) => {
139
184
  await client.delete(`/training/directories/${safePath(directory_id)}`);
140
185
  return {
141
186
  content: [{ type: 'text', text: `Directory ${directory_id} and its contents deleted.` }],
142
187
  };
143
188
  });
144
- server.tool('search_training_knowledge', 'Semantic search across all training scenarios and knowledge base items using natural language. Returns results ranked by relevance (0-100 score). Use this to find existing content before creating duplicate training scenarios.', {
145
- query: z
146
- .string()
147
- .describe('Natural language search query (e.g. "refund policy", "how to reset password")'),
148
- limit: z
149
- .number()
150
- .optional()
151
- .describe('Maximum results to return (1-50, default 20)'),
152
- source_types: z
153
- .array(z.enum(['integration', 'website', 'custom_training']))
154
- .optional()
155
- .describe('Filter by source type. Omit to search all.'),
189
+ server.registerTool('search_training_knowledge', {
190
+ description: 'Semantic search across all training scenarios and knowledge base items using natural language. Returns results ranked by relevance (0-100 score). Use this to find existing content before creating duplicate training scenarios.',
191
+ inputSchema: {
192
+ query: z
193
+ .string()
194
+ .describe('Natural language search query (e.g. "refund policy", "how to reset password")'),
195
+ limit: z.number().optional().describe('Maximum results to return (1-50, default 20)'),
196
+ source_types: z
197
+ .array(z.enum(['integration', 'website', 'custom_training']))
198
+ .optional()
199
+ .describe('Filter by source type. Omit to search all.'),
200
+ },
156
201
  }, async ({ query, limit, source_types }) => {
157
202
  const body = { query };
158
203
  if (limit !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"training.js","sourceRoot":"","sources":["../../src/tools/training.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"training.js","sourceRoot":"","sources":["../../src/tools/training.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../../src/tools/whatsapp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA8B5E"}
1
+ {"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../../src/tools/whatsapp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA+B5E"}
@@ -1,25 +1,26 @@
1
1
  import { z } from 'zod';
2
2
  export function registerWhatsAppTools(server, client) {
3
- server.tool('send_whatsapp_template', 'Send a WhatsApp template message to a contact. Templates must be pre-approved by WhatsApp. This creates or continues a chat session with the contact.', {
4
- template_id: z.string().describe('The WhatsApp template ID to send'),
5
- phone_number_id: z
6
- .string()
7
- .describe('The WhatsApp business phone number ID to send from'),
8
- contact: z
9
- .object({
10
- phone: z.string().describe('Contact phone number in E.164 format'),
11
- name: z.string().optional().describe('Contact display name'),
12
- email: z.string().optional().describe('Contact email'),
13
- })
14
- .describe('The contact to send the template to'),
15
- variables: z
16
- .record(z.string(), z.string())
17
- .optional()
18
- .describe('Template variable values keyed by variable name'),
19
- session_id: z
20
- .string()
21
- .optional()
22
- .describe('Existing session ID to associate the message with'),
3
+ server.registerTool('send_whatsapp_template', {
4
+ description: 'Send a WhatsApp template message to a contact. Templates must be pre-approved by WhatsApp. This creates or continues a chat session with the contact.',
5
+ inputSchema: {
6
+ template_id: z.string().describe('The WhatsApp template ID to send'),
7
+ phone_number_id: z.string().describe('The WhatsApp business phone number ID to send from'),
8
+ contact: z
9
+ .object({
10
+ phone: z.string().describe('Contact phone number in E.164 format'),
11
+ name: z.string().optional().describe('Contact display name'),
12
+ email: z.string().optional().describe('Contact email'),
13
+ })
14
+ .describe('The contact to send the template to'),
15
+ variables: z
16
+ .record(z.string(), z.string())
17
+ .optional()
18
+ .describe('Template variable values keyed by variable name'),
19
+ session_id: z
20
+ .string()
21
+ .optional()
22
+ .describe('Existing session ID to associate the message with'),
23
+ },
23
24
  }, async (params) => {
24
25
  const data = await client.post('/whatsapp/send-template', params);
25
26
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
@@ -1 +1 @@
1
- {"version":3,"file":"whatsapp.js","sourceRoot":"","sources":["../../src/tools/whatsapp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAoB;IAC3E,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,uJAAuJ,EACvJ;QACE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QACpE,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,CAAC,oDAAoD,CAAC;QACjE,OAAO,EAAE,CAAC;aACP,MAAM,CAAC;YACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YAClE,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,eAAe,CAAC;SACvD,CAAC;aACD,QAAQ,CAAC,qCAAqC,CAAC;QAClD,SAAS,EAAE,CAAC;aACT,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAC9B,QAAQ,EAAE;aACV,QAAQ,CAAC,iDAAiD,CAAC;QAC9D,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,mDAAmD,CAAC;KACjE,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;QAClE,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
+ {"version":3,"file":"whatsapp.js","sourceRoot":"","sources":["../../src/tools/whatsapp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAoB;IAC3E,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EACT,uJAAuJ;QACzJ,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YACpE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YAC1F,OAAO,EAAE,CAAC;iBACP,MAAM,CAAC;gBACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;gBAClE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;gBAC5D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;aACvD,CAAC;iBACD,QAAQ,CAAC,qCAAqC,CAAC;YAClD,SAAS,EAAE,CAAC;iBACT,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;iBAC9B,QAAQ,EAAE;iBACV,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;SACjE;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;QAClE,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,4 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { OpenCXClient } from '../api-client.js';
3
+ export declare function registerWidgetTools(server: McpServer, client: OpenCXClient): void;
4
+ //# sourceMappingURL=widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/tools/widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA2B1E"}
@@ -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;AAyF1D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAsO5E"}