@opencx/mcp 1.11.16 → 1.11.33
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.
- package/dist/api-client.d.ts +17 -12
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +35 -56
- package/dist/api-client.js.map +1 -1
- package/dist/api-client.spec.js +51 -89
- package/dist/api-client.spec.js.map +1 -1
- package/dist/schema.d.ts +12706 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +6 -0
- package/dist/schema.js.map +1 -0
- package/dist/server.js +2 -2
- package/dist/server.js.map +1 -1
- package/dist/server.spec.js +54 -51
- package/dist/server.spec.js.map +1 -1
- package/dist/tools/actions.d.ts +1 -1
- package/dist/tools/actions.d.ts.map +1 -1
- package/dist/tools/actions.js +26 -16
- package/dist/tools/actions.js.map +1 -1
- package/dist/tools/audit-logs.d.ts +1 -1
- package/dist/tools/audit-logs.d.ts.map +1 -1
- package/dist/tools/audit-logs.js +50 -42
- package/dist/tools/audit-logs.js.map +1 -1
- package/dist/tools/autopilot.d.ts +1 -1
- package/dist/tools/autopilot.d.ts.map +1 -1
- package/dist/tools/autopilot.js +5 -4
- package/dist/tools/autopilot.js.map +1 -1
- package/dist/tools/blocklist.d.ts +1 -1
- package/dist/tools/blocklist.d.ts.map +1 -1
- package/dist/tools/blocklist.js +20 -20
- package/dist/tools/blocklist.js.map +1 -1
- package/dist/tools/contact-segments.d.ts +1 -1
- package/dist/tools/contact-segments.d.ts.map +1 -1
- package/dist/tools/contact-segments.js +15 -12
- package/dist/tools/contact-segments.js.map +1 -1
- package/dist/tools/contacts.d.ts +1 -1
- package/dist/tools/contacts.d.ts.map +1 -1
- package/dist/tools/contacts.js +23 -11
- package/dist/tools/contacts.js.map +1 -1
- package/dist/tools/coworker.d.ts +1 -1
- package/dist/tools/coworker.d.ts.map +1 -1
- package/dist/tools/coworker.js +54 -43
- package/dist/tools/coworker.js.map +1 -1
- package/dist/tools/crawl.d.ts +1 -1
- package/dist/tools/crawl.d.ts.map +1 -1
- package/dist/tools/crawl.js +43 -14
- package/dist/tools/crawl.js.map +1 -1
- package/dist/tools/csat.d.ts +1 -1
- package/dist/tools/csat.d.ts.map +1 -1
- package/dist/tools/csat.js +16 -10
- package/dist/tools/csat.js.map +1 -1
- package/dist/tools/email.d.ts +1 -1
- package/dist/tools/email.d.ts.map +1 -1
- package/dist/tools/email.js +23 -9
- package/dist/tools/email.js.map +1 -1
- package/dist/tools/firecrawl.d.ts.map +1 -1
- package/dist/tools/firecrawl.js +31 -24
- package/dist/tools/firecrawl.js.map +1 -1
- package/dist/tools/handoff-analytics.d.ts +1 -1
- package/dist/tools/handoff-analytics.d.ts.map +1 -1
- package/dist/tools/handoff-analytics.js +5 -6
- package/dist/tools/handoff-analytics.js.map +1 -1
- package/dist/tools/help-center.d.ts +1 -1
- package/dist/tools/help-center.d.ts.map +1 -1
- package/dist/tools/help-center.js +41 -11
- package/dist/tools/help-center.js.map +1 -1
- package/dist/tools/impact-report.d.ts +1 -1
- package/dist/tools/impact-report.d.ts.map +1 -1
- package/dist/tools/impact-report.js +15 -11
- package/dist/tools/impact-report.js.map +1 -1
- package/dist/tools/insights.d.ts +1 -1
- package/dist/tools/insights.d.ts.map +1 -1
- package/dist/tools/insights.js +104 -15
- package/dist/tools/insights.js.map +1 -1
- package/dist/tools/media.d.ts +1 -1
- package/dist/tools/media.d.ts.map +1 -1
- package/dist/tools/media.js +2 -3
- package/dist/tools/media.js.map +1 -1
- package/dist/tools/office-hours.d.ts +1 -1
- package/dist/tools/office-hours.d.ts.map +1 -1
- package/dist/tools/office-hours.js +42 -10
- package/dist/tools/office-hours.js.map +1 -1
- package/dist/tools/onboarding.d.ts.map +1 -1
- package/dist/tools/onboarding.js +8 -5
- package/dist/tools/onboarding.js.map +1 -1
- package/dist/tools/org.d.ts +1 -1
- package/dist/tools/org.d.ts.map +1 -1
- package/dist/tools/org.js +5 -4
- package/dist/tools/org.js.map +1 -1
- package/dist/tools/phone.d.ts +1 -1
- package/dist/tools/phone.d.ts.map +1 -1
- package/dist/tools/phone.js +66 -48
- package/dist/tools/phone.js.map +1 -1
- package/dist/tools/redaction.d.ts +1 -1
- package/dist/tools/redaction.d.ts.map +1 -1
- package/dist/tools/redaction.js +5 -4
- package/dist/tools/redaction.js.map +1 -1
- package/dist/tools/search.d.ts +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +3 -2
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/sequences.d.ts +1 -1
- package/dist/tools/sequences.d.ts.map +1 -1
- package/dist/tools/sequences.js +26 -14
- package/dist/tools/sequences.js.map +1 -1
- package/dist/tools/sessions.d.ts +1 -1
- package/dist/tools/sessions.d.ts.map +1 -1
- package/dist/tools/sessions.js +150 -123
- package/dist/tools/sessions.js.map +1 -1
- package/dist/tools/sla-analytics.d.ts +1 -1
- package/dist/tools/sla-analytics.d.ts.map +1 -1
- package/dist/tools/sla-analytics.js +31 -45
- package/dist/tools/sla-analytics.js.map +1 -1
- package/dist/tools/sla.d.ts +1 -1
- package/dist/tools/sla.d.ts.map +1 -1
- package/dist/tools/sla.js +18 -16
- package/dist/tools/sla.js.map +1 -1
- package/dist/tools/tags.d.ts +1 -1
- package/dist/tools/tags.d.ts.map +1 -1
- package/dist/tools/tags.js +11 -11
- package/dist/tools/tags.js.map +1 -1
- package/dist/tools/teams.d.ts +1 -1
- package/dist/tools/teams.d.ts.map +1 -1
- package/dist/tools/teams.js +24 -17
- package/dist/tools/teams.js.map +1 -1
- package/dist/tools/todos.d.ts +1 -1
- package/dist/tools/todos.d.ts.map +1 -1
- package/dist/tools/todos.js +30 -21
- package/dist/tools/todos.js.map +1 -1
- package/dist/tools/training.d.ts +1 -1
- package/dist/tools/training.d.ts.map +1 -1
- package/dist/tools/training.js +110 -64
- package/dist/tools/training.js.map +1 -1
- package/dist/tools/users.d.ts +1 -1
- package/dist/tools/users.d.ts.map +1 -1
- package/dist/tools/users.js +35 -23
- package/dist/tools/users.js.map +1 -1
- package/dist/tools/whatsapp.d.ts +1 -1
- package/dist/tools/whatsapp.d.ts.map +1 -1
- package/dist/tools/whatsapp.js +11 -2
- package/dist/tools/whatsapp.js.map +1 -1
- package/dist/tools/widget.d.ts +1 -1
- package/dist/tools/widget.d.ts.map +1 -1
- package/dist/tools/widget.js +3 -2
- package/dist/tools/widget.js.map +1 -1
- package/dist/tools/workflows.d.ts +1 -1
- package/dist/tools/workflows.d.ts.map +1 -1
- package/dist/tools/workflows.js +164 -93
- package/dist/tools/workflows.js.map +1 -1
- package/dist/utils/json.d.ts +9 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +10 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/session-channel.d.ts +4 -0
- package/dist/utils/session-channel.d.ts.map +1 -0
- package/dist/utils/session-channel.js +15 -0
- package/dist/utils/session-channel.js.map +1 -0
- package/dist/workflow-editor-state.d.ts +12 -2
- package/dist/workflow-editor-state.d.ts.map +1 -1
- package/dist/workflow-editor-state.js.map +1 -1
- package/dist/workflows.spec.d.ts +2 -0
- package/dist/workflows.spec.d.ts.map +1 -0
- package/dist/workflows.spec.js +109 -0
- package/dist/workflows.spec.js.map +1 -0
- package/package.json +5 -2
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { jsonContent } from '../api-client.js';
|
|
3
|
+
import { sessionChannelSchema } from '../utils/session-channel.js';
|
|
2
4
|
const slaFilters = {
|
|
3
5
|
from: z.string().describe('Start date in ISO 8601 format (e.g. "2025-01-01")'),
|
|
4
6
|
to: z.string().describe('End date in ISO 8601 format (e.g. "2025-01-31")'),
|
|
@@ -8,27 +10,29 @@ const slaFilters = {
|
|
|
8
10
|
.describe('IANA timezone for date boundaries (e.g. "America/New_York"). Defaults to UTC.'),
|
|
9
11
|
policy_id: z.string().optional().describe('Filter by SLA policy ID'),
|
|
10
12
|
team_id: z.string().optional().describe('Filter by team ID'),
|
|
11
|
-
channel:
|
|
12
|
-
.string()
|
|
13
|
+
channel: sessionChannelSchema
|
|
13
14
|
.optional()
|
|
14
|
-
.describe('Filter by channel (e.g. "web", "whatsapp", "email", "
|
|
15
|
+
.describe('Filter by channel (e.g. "web", "whatsapp", "email", "phone_voice")'),
|
|
15
16
|
agent_id: z.string().optional().describe('Filter by agent ID'),
|
|
16
17
|
};
|
|
18
|
+
function buildSlaQuery(params) {
|
|
19
|
+
return {
|
|
20
|
+
from: params.from,
|
|
21
|
+
to: params.to,
|
|
22
|
+
timezone: params.timezone,
|
|
23
|
+
policy_id: params.policy_id,
|
|
24
|
+
team_id: params.team_id,
|
|
25
|
+
channel: params.channel,
|
|
26
|
+
agent_id: params.agent_id ? Number(params.agent_id) : undefined,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
17
29
|
export function registerSlaAnalyticsTools(server, client) {
|
|
18
30
|
server.registerTool('get_sla_analytics_overview', {
|
|
19
31
|
description: 'Get SLA analytics overview including compliance rates (overall, first reply, next reply, resolution), coverage rate, and response/resolution time percentiles (p50, p90, p95) for a date range.',
|
|
20
32
|
inputSchema: slaFilters,
|
|
21
33
|
}, async (params) => {
|
|
22
|
-
const data = await client.
|
|
23
|
-
|
|
24
|
-
to: params.to,
|
|
25
|
-
timezone: params.timezone,
|
|
26
|
-
policy_id: params.policy_id,
|
|
27
|
-
team_id: params.team_id,
|
|
28
|
-
channel: params.channel,
|
|
29
|
-
agent_id: params.agent_id,
|
|
30
|
-
});
|
|
31
|
-
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
34
|
+
const data = (await client.GET('/sla/analytics', { params: { query: buildSlaQuery(params) } })).data;
|
|
35
|
+
return jsonContent(data);
|
|
32
36
|
});
|
|
33
37
|
server.registerTool('get_sla_analytics_breakdown', {
|
|
34
38
|
description: 'Get SLA compliance rates grouped by policy, team, agent, or channel. Each group includes session count, compliance metrics, and time percentiles.',
|
|
@@ -39,17 +43,11 @@ export function registerSlaAnalyticsTools(server, client) {
|
|
|
39
43
|
.describe('Dimension to group results by'),
|
|
40
44
|
},
|
|
41
45
|
}, async (params) => {
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
team_id: params.team_id,
|
|
48
|
-
channel: params.channel,
|
|
49
|
-
agent_id: params.agent_id,
|
|
50
|
-
group_by: params.group_by,
|
|
51
|
-
});
|
|
52
|
-
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
46
|
+
const query = { ...buildSlaQuery(params), group_by: params.group_by };
|
|
47
|
+
const data = (await client.GET('/sla/analytics/breakdown', {
|
|
48
|
+
params: { query },
|
|
49
|
+
})).data;
|
|
50
|
+
return jsonContent(data);
|
|
53
51
|
});
|
|
54
52
|
server.registerTool('get_sla_analytics_trend', {
|
|
55
53
|
description: 'Get SLA compliance rates over time, grouped by day or week. Returns a time series of compliance metrics and percentiles for each period.',
|
|
@@ -61,32 +59,20 @@ export function registerSlaAnalyticsTools(server, client) {
|
|
|
61
59
|
.describe('Time granularity for the trend data. Defaults to "day".'),
|
|
62
60
|
},
|
|
63
61
|
}, async (params) => {
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
team_id: params.team_id,
|
|
70
|
-
channel: params.channel,
|
|
71
|
-
agent_id: params.agent_id,
|
|
72
|
-
granularity: params.granularity,
|
|
73
|
-
});
|
|
74
|
-
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
62
|
+
const query = { ...buildSlaQuery(params), granularity: params.granularity };
|
|
63
|
+
const data = (await client.GET('/sla/analytics/trend', {
|
|
64
|
+
params: { query },
|
|
65
|
+
})).data;
|
|
66
|
+
return jsonContent(data);
|
|
75
67
|
});
|
|
76
68
|
server.registerTool('get_sla_breach_heatmap', {
|
|
77
69
|
description: 'Get a heatmap of SLA breaches by hour of day (0-23) and day of week (0=Sunday to 6=Saturday). Useful for identifying patterns in when SLA breaches occur.',
|
|
78
70
|
inputSchema: slaFilters,
|
|
79
71
|
}, async (params) => {
|
|
80
|
-
const data = await client.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
policy_id: params.policy_id,
|
|
85
|
-
team_id: params.team_id,
|
|
86
|
-
channel: params.channel,
|
|
87
|
-
agent_id: params.agent_id,
|
|
88
|
-
});
|
|
89
|
-
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
72
|
+
const data = (await client.GET('/sla/analytics/breach-heatmap', {
|
|
73
|
+
params: { query: buildSlaQuery(params) },
|
|
74
|
+
})).data;
|
|
75
|
+
return jsonContent(data);
|
|
90
76
|
});
|
|
91
77
|
}
|
|
92
78
|
//# sourceMappingURL=sla-analytics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sla-analytics.js","sourceRoot":"","sources":["../../src/tools/sla-analytics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"sla-analytics.js","sourceRoot":"","sources":["../../src/tools/sla-analytics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AASnE,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IAC9E,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IAC1E,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+EAA+E,CAAC;IAC5F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACpE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC5D,OAAO,EAAE,oBAAoB;SAC1B,QAAQ,EAAE;SACV,QAAQ,CAAC,oEAAoE,CAAC;IACjF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;CAC/D,CAAC;AAEF,SAAS,aAAa,CAAC,MAQtB;IACC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;KAChE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAoB;IAC/E,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,WAAW,EACT,iMAAiM;QACnM,WAAW,EAAE,UAAU;KACxB,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CACjF,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,6BAA6B,EAC7B;QACE,WAAW,EACT,mJAAmJ;QACrJ,WAAW,EAAE;YACX,GAAG,UAAU;YACb,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;iBAC5C,QAAQ,CAAC,+BAA+B,CAAC;SAC7C;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,KAAK,GAAsB,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzF,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE;YAC3C,MAAM,EAAE,EAAE,KAAK,EAAE;SAClB,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,WAAW,EACT,0IAA0I;QAC5I,WAAW,EAAE;YACX,GAAG,UAAU;YACb,WAAW,EAAE,CAAC;iBACX,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;iBACrB,QAAQ,EAAE;iBACV,QAAQ,CAAC,yDAAyD,CAAC;SACvE;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,KAAK,GAAkB,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;QAC3F,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE;YACvC,MAAM,EAAE,EAAE,KAAK,EAAE;SAClB,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,2JAA2J;QAC7J,WAAW,EAAE,UAAU;KACxB,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE;YAChD,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE;SACzC,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/sla.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import { OpenCXClient } from '../api-client.js';
|
|
2
|
+
import type { OpenCXClient } from '../api-client.js';
|
|
3
3
|
export declare function registerSlaTools(server: McpServer, client: OpenCXClient): void;
|
|
4
4
|
//# sourceMappingURL=sla.d.ts.map
|
package/dist/tools/sla.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sla.d.ts","sourceRoot":"","sources":["../../src/tools/sla.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"sla.d.ts","sourceRoot":"","sources":["../../src/tools/sla.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA2HvE"}
|
package/dist/tools/sla.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { jsonContent } from '../api-client.js';
|
|
3
3
|
export function registerSlaTools(server, client) {
|
|
4
4
|
server.registerTool('list_sla_policies', {
|
|
5
5
|
description: 'List all SLA policies for your organization. Each policy defines target response and resolution times.',
|
|
6
6
|
}, async () => {
|
|
7
|
-
const data = await client.
|
|
8
|
-
return
|
|
7
|
+
const data = (await client.GET('/sla/policies')).data;
|
|
8
|
+
return jsonContent(data);
|
|
9
9
|
});
|
|
10
10
|
server.registerTool('get_sla_policy', {
|
|
11
11
|
description: 'Get a single SLA policy by ID.',
|
|
12
12
|
inputSchema: { id: z.string().describe('The SLA policy ID') },
|
|
13
13
|
}, async ({ id }) => {
|
|
14
|
-
const data = await client.
|
|
15
|
-
return
|
|
14
|
+
const data = (await client.GET('/sla/policies/{id}', { params: { path: { id } } })).data;
|
|
15
|
+
return jsonContent(data);
|
|
16
16
|
});
|
|
17
17
|
server.registerTool('create_sla_policy', {
|
|
18
18
|
description: 'Create a new SLA policy with target times for first reply, next reply, and/or resolution. At least one target must be set. All times are in seconds.',
|
|
@@ -40,14 +40,16 @@ export function registerSlaTools(server, client) {
|
|
|
40
40
|
.describe('Target seconds for full resolution (min 300). Must be greater than reply targets.'),
|
|
41
41
|
},
|
|
42
42
|
}, async (params) => {
|
|
43
|
-
const data = await client.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
43
|
+
const data = (await client.POST('/sla/policies', {
|
|
44
|
+
body: {
|
|
45
|
+
name: params.name,
|
|
46
|
+
office_hours_id: params.office_hours_id ?? null,
|
|
47
|
+
first_reply_target_seconds: params.first_reply_target_seconds ?? null,
|
|
48
|
+
next_reply_target_seconds: params.next_reply_target_seconds ?? null,
|
|
49
|
+
resolution_target_seconds: params.resolution_target_seconds ?? null,
|
|
50
|
+
},
|
|
51
|
+
})).data;
|
|
52
|
+
return jsonContent(data);
|
|
51
53
|
});
|
|
52
54
|
server.registerTool('update_sla_policy', {
|
|
53
55
|
description: 'Update an existing SLA policy. Only provided fields are changed.',
|
|
@@ -79,14 +81,14 @@ export function registerSlaTools(server, client) {
|
|
|
79
81
|
.describe('Target seconds for resolution, or null to remove'),
|
|
80
82
|
},
|
|
81
83
|
}, async ({ id, ...rest }) => {
|
|
82
|
-
const data = await client.
|
|
83
|
-
return
|
|
84
|
+
const data = (await client.PUT('/sla/policies/{id}', { params: { path: { id } }, body: rest })).data;
|
|
85
|
+
return jsonContent(data);
|
|
84
86
|
});
|
|
85
87
|
server.registerTool('delete_sla_policy', {
|
|
86
88
|
description: 'Delete an SLA policy by ID. This action cannot be undone.',
|
|
87
89
|
inputSchema: { id: z.string().describe('The SLA policy ID to delete') },
|
|
88
90
|
}, async ({ id }) => {
|
|
89
|
-
await client.
|
|
91
|
+
await client.DELETE('/sla/policies/{id}', { params: { path: { id } } });
|
|
90
92
|
return { content: [{ type: 'text', text: `SLA policy ${id} deleted.` }] };
|
|
91
93
|
});
|
|
92
94
|
}
|
package/dist/tools/sla.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sla.js","sourceRoot":"","sources":["../../src/tools/sla.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"sla.js","sourceRoot":"","sources":["../../src/tools/sla.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/tags.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import { OpenCXClient } from '../api-client.js';
|
|
2
|
+
import type { OpenCXClient } from '../api-client.js';
|
|
3
3
|
export declare function registerTagTools(server: McpServer, client: OpenCXClient): void;
|
|
4
4
|
//# sourceMappingURL=tags.d.ts.map
|
package/dist/tools/tags.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/tools/tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/tools/tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA2FvE"}
|
package/dist/tools/tags.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { jsonContent } from '../api-client.js';
|
|
3
3
|
export function registerTagTools(server, client) {
|
|
4
4
|
server.registerTool('list_tags', {
|
|
5
5
|
description: 'List all tags in your organization. Tags are labels like "billing", "refund", "feature-request" that categorize chat sessions. The AI can auto-tag sessions based on these.',
|
|
6
6
|
}, async () => {
|
|
7
|
-
const data = await client.
|
|
8
|
-
return
|
|
7
|
+
const data = (await client.GET('/tags')).data;
|
|
8
|
+
return jsonContent(data);
|
|
9
9
|
});
|
|
10
10
|
server.registerTool('list_tags_in_use', {
|
|
11
11
|
description: 'List all tag names that are actually applied to sessions right now. Useful to see which tags are being used vs. sitting unused.',
|
|
12
12
|
}, async () => {
|
|
13
|
-
const data = await client.
|
|
14
|
-
return
|
|
13
|
+
const data = (await client.GET('/tags/in-use')).data;
|
|
14
|
+
return jsonContent(data);
|
|
15
15
|
});
|
|
16
16
|
server.registerTool('upsert_tag', {
|
|
17
17
|
description: 'Create a new tag or update an existing one. Tags categorize chat sessions. Provide a description to give the AI taxonomy guidance for auto-tagging. Set exclude_from_auto_tagging to true to prevent the AI from applying this tag automatically.',
|
|
@@ -29,7 +29,7 @@ export function registerTagTools(server, client) {
|
|
|
29
29
|
.describe('If true, the AI will never auto-apply this tag (default: false)'),
|
|
30
30
|
},
|
|
31
31
|
}, async (params) => {
|
|
32
|
-
await client.
|
|
32
|
+
await client.PUT('/tags', { body: params });
|
|
33
33
|
return { content: [{ type: 'text', text: `Tag "${params.tag_name}" saved.` }] };
|
|
34
34
|
});
|
|
35
35
|
server.registerTool('delete_tag', {
|
|
@@ -38,14 +38,14 @@ export function registerTagTools(server, client) {
|
|
|
38
38
|
tag_name: z.string().describe('The tag name to remove'),
|
|
39
39
|
},
|
|
40
40
|
}, async ({ tag_name }) => {
|
|
41
|
-
await client.
|
|
41
|
+
await client.DELETE('/tags/{tag_name}', { params: { path: { tag_name } } });
|
|
42
42
|
return { content: [{ type: 'text', text: `Tag "${tag_name}" removed.` }] };
|
|
43
43
|
});
|
|
44
44
|
server.registerTool('get_auto_tagging_status', {
|
|
45
45
|
description: 'Check whether AI auto-tagging is enabled. When enabled, the AI automatically applies relevant tags to chat sessions based on conversation content.',
|
|
46
46
|
}, async () => {
|
|
47
|
-
const data = await client.
|
|
48
|
-
return
|
|
47
|
+
const data = (await client.GET('/tags/auto-tagging')).data;
|
|
48
|
+
return jsonContent(data);
|
|
49
49
|
});
|
|
50
50
|
server.registerTool('set_auto_tagging', {
|
|
51
51
|
description: 'Enable or disable AI auto-tagging. When enabled, the AI automatically applies relevant tags to chat sessions.',
|
|
@@ -53,8 +53,8 @@ export function registerTagTools(server, client) {
|
|
|
53
53
|
enabled: z.boolean().describe('Set true to enable auto-tagging, false to disable'),
|
|
54
54
|
},
|
|
55
55
|
}, async ({ enabled }) => {
|
|
56
|
-
const data = await client.
|
|
57
|
-
return
|
|
56
|
+
const data = (await client.PUT('/tags/auto-tagging', { body: { enabled } })).data;
|
|
57
|
+
return jsonContent(data);
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
60
|
//# sourceMappingURL=tags.js.map
|
package/dist/tools/tags.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/tools/tags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/tools/tags.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/teams.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import { OpenCXClient } from '../api-client.js';
|
|
2
|
+
import type { OpenCXClient } from '../api-client.js';
|
|
3
3
|
export declare function registerTeamTools(server: McpServer, client: OpenCXClient): void;
|
|
4
4
|
//# sourceMappingURL=teams.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAgJxE"}
|
package/dist/tools/teams.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { jsonContent } from '../api-client.js';
|
|
3
3
|
export function registerTeamTools(server, client) {
|
|
4
4
|
server.registerTool('list_teams', {
|
|
5
5
|
description: 'List all teams in your organization. Teams are used to group agents for routing, assignment, and reporting.',
|
|
6
6
|
}, async () => {
|
|
7
|
-
const data = await client.
|
|
8
|
-
return
|
|
7
|
+
const data = (await client.GET('/teams')).data;
|
|
8
|
+
return jsonContent(data);
|
|
9
9
|
});
|
|
10
10
|
server.registerTool('get_team', {
|
|
11
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
12
|
inputSchema: { team_id: z.string().describe('The team ID') },
|
|
13
13
|
}, async ({ team_id }) => {
|
|
14
|
-
const data = await client.
|
|
15
|
-
return
|
|
14
|
+
const data = (await client.GET('/teams/{teamId}', { params: { path: { teamId: team_id } } })).data;
|
|
15
|
+
return jsonContent(data);
|
|
16
16
|
});
|
|
17
17
|
server.registerTool('create_team', {
|
|
18
18
|
description: 'Create a new team in your organization.',
|
|
@@ -21,8 +21,8 @@ export function registerTeamTools(server, client) {
|
|
|
21
21
|
description: z.string().optional().describe('A description of the team'),
|
|
22
22
|
},
|
|
23
23
|
}, async (params) => {
|
|
24
|
-
const data = await client.
|
|
25
|
-
return
|
|
24
|
+
const data = (await client.POST('/teams', { body: params })).data;
|
|
25
|
+
return jsonContent(data);
|
|
26
26
|
});
|
|
27
27
|
server.registerTool('update_team', {
|
|
28
28
|
description: 'Update an existing team name or description.',
|
|
@@ -32,29 +32,31 @@ export function registerTeamTools(server, client) {
|
|
|
32
32
|
description: z.string().optional().describe('New description'),
|
|
33
33
|
},
|
|
34
34
|
}, async ({ team_id, ...body }) => {
|
|
35
|
-
const data = await client.
|
|
36
|
-
return
|
|
35
|
+
const data = (await client.PUT('/teams/{teamId}', { params: { path: { teamId: team_id } }, body })).data;
|
|
36
|
+
return jsonContent(data);
|
|
37
37
|
});
|
|
38
38
|
server.registerTool('delete_team', {
|
|
39
39
|
description: 'Permanently delete a team by ID. This action cannot be undone. Members will be unassigned from the team.',
|
|
40
40
|
inputSchema: { team_id: z.string().describe('The team ID to delete') },
|
|
41
41
|
}, async ({ team_id }) => {
|
|
42
|
-
await client.
|
|
42
|
+
await client.DELETE('/teams/{teamId}', { params: { path: { teamId: team_id } } });
|
|
43
43
|
return { content: [{ type: 'text', text: `Team ${team_id} deleted successfully.` }] };
|
|
44
44
|
});
|
|
45
45
|
server.registerTool('list_team_members', {
|
|
46
46
|
description: 'List all users (agents) assigned to a specific team, including their current availability and chat capacity.',
|
|
47
47
|
inputSchema: { team_id: z.string().describe('The team ID') },
|
|
48
48
|
}, async ({ team_id }) => {
|
|
49
|
-
const data = await client.
|
|
50
|
-
return
|
|
49
|
+
const data = (await client.GET('/teams/{teamId}/users', { params: { path: { teamId: team_id } } })).data;
|
|
50
|
+
return jsonContent(data);
|
|
51
51
|
});
|
|
52
52
|
server.registerTool('list_available_team_members', {
|
|
53
53
|
description: 'List only currently available users in a team, including their availability and chat capacity. Use this before assigning or transferring sessions when you need a likely assignee.',
|
|
54
54
|
inputSchema: { team_id: z.string().describe('The team ID') },
|
|
55
55
|
}, async ({ team_id }) => {
|
|
56
|
-
const data = await client.
|
|
57
|
-
|
|
56
|
+
const data = (await client.GET('/teams/{teamId}/users/available', {
|
|
57
|
+
params: { path: { teamId: team_id } },
|
|
58
|
+
})).data;
|
|
59
|
+
return jsonContent(data);
|
|
58
60
|
});
|
|
59
61
|
server.registerTool('add_team_member', {
|
|
60
62
|
description: 'Add a user (agent) to a team.',
|
|
@@ -63,8 +65,11 @@ export function registerTeamTools(server, client) {
|
|
|
63
65
|
user_id: z.number().int().describe('The user ID to add to the team'),
|
|
64
66
|
},
|
|
65
67
|
}, async ({ team_id, user_id }) => {
|
|
66
|
-
const data = await client.
|
|
67
|
-
|
|
68
|
+
const data = (await client.POST('/teams/{teamId}/users', {
|
|
69
|
+
params: { path: { teamId: team_id } },
|
|
70
|
+
body: { userId: user_id },
|
|
71
|
+
})).data;
|
|
72
|
+
return jsonContent(data);
|
|
68
73
|
});
|
|
69
74
|
server.registerTool('remove_team_member', {
|
|
70
75
|
description: 'Remove a user (agent) from a team.',
|
|
@@ -73,7 +78,9 @@ export function registerTeamTools(server, client) {
|
|
|
73
78
|
user_id: z.number().int().describe('The user ID to remove from the team'),
|
|
74
79
|
},
|
|
75
80
|
}, async ({ team_id, user_id }) => {
|
|
76
|
-
await client.
|
|
81
|
+
await client.DELETE('/teams/{teamId}/users/{userId}', {
|
|
82
|
+
params: { path: { teamId: team_id, userId: user_id } },
|
|
83
|
+
});
|
|
77
84
|
return {
|
|
78
85
|
content: [{ type: 'text', text: `User ${user_id} removed from team ${team_id}.` }],
|
|
79
86
|
};
|
package/dist/tools/teams.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/todos.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import {
|
|
2
|
+
import type { OpenCXClient } from '../api-client.js';
|
|
3
3
|
export declare function registerTodoTools(server: McpServer, client: OpenCXClient): void;
|
|
4
4
|
//# sourceMappingURL=todos.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todos.d.ts","sourceRoot":"","sources":["../../src/tools/todos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"todos.d.ts","sourceRoot":"","sources":["../../src/tools/todos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAYrD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA+DxE"}
|
package/dist/tools/todos.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { jsonContent } from '../api-client.js';
|
|
3
3
|
const SET_TODOS_DESCRIPTION = `Create or replace the todo list for the current coworker session. Use at the start of any multi-step task to show the user your plan. All items start as pending. The user sees a live progress bar in the dashboard.
|
|
4
4
|
|
|
5
5
|
Call this BEFORE you start working on a multi-step task. Example:
|
|
@@ -9,16 +9,19 @@ const UPDATE_TODO_DESCRIPTION = `Update a todo item's status. Call with "in_prog
|
|
|
9
9
|
|
|
10
10
|
Always update status as you work — don't batch updates at the end.`;
|
|
11
11
|
export function registerTodoTools(server, client) {
|
|
12
|
-
server.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
12
|
+
server.registerTool('set_session_todos', {
|
|
13
|
+
description: SET_TODOS_DESCRIPTION,
|
|
14
|
+
inputSchema: {
|
|
15
|
+
items: z
|
|
16
|
+
.array(z.object({
|
|
17
|
+
label: z
|
|
18
|
+
.string()
|
|
19
|
+
.describe('Short description of the task (e.g. "Crawl open.cx for training data")'),
|
|
20
|
+
}))
|
|
21
|
+
.min(1)
|
|
22
|
+
.max(50)
|
|
23
|
+
.describe('The ordered list of tasks you plan to complete'),
|
|
24
|
+
},
|
|
22
25
|
}, async ({ items }) => {
|
|
23
26
|
const sessionId = client.coworkerSessionId;
|
|
24
27
|
if (!sessionId) {
|
|
@@ -27,12 +30,18 @@ export function registerTodoTools(server, client) {
|
|
|
27
30
|
isError: true,
|
|
28
31
|
};
|
|
29
32
|
}
|
|
30
|
-
const data = await client.
|
|
31
|
-
|
|
33
|
+
const data = (await client.PUT('/companion/sessions/{sessionId}/todos', {
|
|
34
|
+
params: { path: { sessionId } },
|
|
35
|
+
body: { items },
|
|
36
|
+
})).data;
|
|
37
|
+
return jsonContent(data);
|
|
32
38
|
});
|
|
33
|
-
server.
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
server.registerTool('update_session_todo', {
|
|
40
|
+
description: UPDATE_TODO_DESCRIPTION,
|
|
41
|
+
inputSchema: {
|
|
42
|
+
index: z.number().int().min(0).describe('Zero-based index of the todo item'),
|
|
43
|
+
status: z.enum(['in_progress', 'completed']).describe('New status for the todo item'),
|
|
44
|
+
},
|
|
36
45
|
}, async ({ index, status }) => {
|
|
37
46
|
const sessionId = client.coworkerSessionId;
|
|
38
47
|
if (!sessionId) {
|
|
@@ -41,11 +50,11 @@ export function registerTodoTools(server, client) {
|
|
|
41
50
|
isError: true,
|
|
42
51
|
};
|
|
43
52
|
}
|
|
44
|
-
const data = await client.
|
|
45
|
-
|
|
46
|
-
status,
|
|
47
|
-
});
|
|
48
|
-
return
|
|
53
|
+
const data = (await client.PATCH('/companion/sessions/{sessionId}/todos', {
|
|
54
|
+
params: { path: { sessionId } },
|
|
55
|
+
body: { index, status },
|
|
56
|
+
})).data;
|
|
57
|
+
return jsonContent(data);
|
|
49
58
|
});
|
|
50
59
|
}
|
|
51
60
|
//# sourceMappingURL=todos.js.map
|
package/dist/tools/todos.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todos.js","sourceRoot":"","sources":["../../src/tools/todos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"todos.js","sourceRoot":"","sources":["../../src/tools/todos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,qBAAqB,GAAG;;;;+HAIiG,CAAC;AAEhI,MAAM,uBAAuB,GAAG;;mEAEmC,CAAC;AAEpE,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAoB;IACvE,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACb,KAAK,EAAE,CAAC;iBACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,KAAK,EAAE,CAAC;qBACL,MAAM,EAAE;qBACR,QAAQ,CAAC,wEAAwE,CAAC;aACtF,CAAC,CACH;iBACA,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,CAAC,gDAAgD,CAAC;SAC5D;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,EAAE,CAAC;gBACtE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,uCAAuC,EAAE;YACxD,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE;YAC/B,IAAI,EAAE,EAAE,KAAK,EAAE;SAChB,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,uBAAuB;QACpC,WAAW,EAAE;YACb,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAC5E,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;SACpF;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,EAAE,CAAC;gBACtE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE;YAC1D,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE;YAC/B,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;SACxB,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/training.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import { OpenCXClient } from '../api-client.js';
|
|
2
|
+
import type { OpenCXClient } from '../api-client.js';
|
|
3
3
|
export declare function registerTrainingTools(server: McpServer, client: OpenCXClient): void;
|
|
4
4
|
//# sourceMappingURL=training.d.ts.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"training.d.ts","sourceRoot":"","sources":["../../src/tools/training.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAQrD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAikB5E"}
|