@opencx/mcp 1.8.4 → 1.8.5
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.map +1 -1
- package/dist/api-client.js +4 -0
- package/dist/api-client.js.map +1 -1
- package/dist/index.js +62 -8
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +8 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/actions.js +5 -5
- package/dist/tools/actions.js.map +1 -1
- package/dist/tools/audit-logs.d.ts +4 -0
- package/dist/tools/audit-logs.d.ts.map +1 -0
- package/dist/tools/audit-logs.js +61 -0
- package/dist/tools/audit-logs.js.map +1 -0
- package/dist/tools/autopilot.js +4 -4
- package/dist/tools/autopilot.js.map +1 -1
- package/dist/tools/blocklist.d.ts.map +1 -1
- package/dist/tools/blocklist.js +29 -9
- package/dist/tools/blocklist.js.map +1 -1
- package/dist/tools/contacts.js +3 -3
- package/dist/tools/contacts.js.map +1 -1
- package/dist/tools/coworker.d.ts +4 -0
- package/dist/tools/coworker.d.ts.map +1 -0
- package/dist/tools/coworker.js +53 -0
- package/dist/tools/coworker.js.map +1 -0
- package/dist/tools/crawl.js +6 -6
- package/dist/tools/crawl.js.map +1 -1
- package/dist/tools/csat.js +3 -3
- package/dist/tools/csat.js.map +1 -1
- package/dist/tools/email.js +4 -4
- package/dist/tools/email.js.map +1 -1
- package/dist/tools/handoff-analytics.d.ts.map +1 -1
- package/dist/tools/handoff-analytics.js +12 -4
- package/dist/tools/handoff-analytics.js.map +1 -1
- package/dist/tools/help-center.js +6 -6
- package/dist/tools/help-center.js.map +1 -1
- package/dist/tools/impact-report.d.ts +4 -0
- package/dist/tools/impact-report.d.ts.map +1 -0
- package/dist/tools/impact-report.js +17 -0
- package/dist/tools/impact-report.js.map +1 -0
- package/dist/tools/insights.js +5 -5
- package/dist/tools/insights.js.map +1 -1
- package/dist/tools/media.js +1 -1
- package/dist/tools/media.js.map +1 -1
- package/dist/tools/office-hours.js +3 -3
- package/dist/tools/office-hours.js.map +1 -1
- package/dist/tools/org.js +2 -2
- package/dist/tools/org.js.map +1 -1
- package/dist/tools/phone.d.ts +6 -0
- package/dist/tools/phone.d.ts.map +1 -1
- package/dist/tools/phone.js +97 -16
- package/dist/tools/phone.js.map +1 -1
- package/dist/tools/redaction.js +6 -6
- package/dist/tools/redaction.js.map +1 -1
- package/dist/tools/search.js +1 -1
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/sequences.d.ts.map +1 -1
- package/dist/tools/sequences.js +12 -7
- package/dist/tools/sequences.js.map +1 -1
- package/dist/tools/sessions.d.ts.map +1 -1
- package/dist/tools/sessions.js +281 -22
- package/dist/tools/sessions.js.map +1 -1
- package/dist/tools/sla-analytics.js +4 -4
- package/dist/tools/sla-analytics.js.map +1 -1
- package/dist/tools/sla.js +4 -4
- package/dist/tools/sla.js.map +1 -1
- package/dist/tools/tags.js +4 -4
- package/dist/tools/tags.js.map +1 -1
- package/dist/tools/teams.d.ts.map +1 -1
- package/dist/tools/teams.js +17 -10
- package/dist/tools/teams.js.map +1 -1
- package/dist/tools/training.d.ts.map +1 -1
- package/dist/tools/training.js +182 -52
- package/dist/tools/training.js.map +1 -1
- package/dist/tools/users.d.ts +4 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +20 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/tools/whatsapp.js +1 -1
- package/dist/tools/whatsapp.js.map +1 -1
- package/dist/tools/widget.js +3 -3
- package/dist/tools/widget.js.map +1 -1
- package/dist/tools/workflows.d.ts.map +1 -1
- package/dist/tools/workflows.js +27 -16
- package/dist/tools/workflows.js.map +1 -1
- package/dist/workflow-editor-state.d.ts +0 -5
- package/dist/workflow-editor-state.d.ts.map +1 -1
- package/dist/workflow-editor-state.js +14 -14
- package/dist/workflow-editor-state.js.map +1 -1
- package/package.json +2 -1
package/dist/tools/sessions.js
CHANGED
|
@@ -1,14 +1,81 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { safePath } from '../api-client.js';
|
|
2
|
+
import { ApiError, safePath } from '../api-client.js';
|
|
3
|
+
const sessionStatusSchema = z.enum(['open', 'closed_resolved', 'closed_unresolved']);
|
|
4
|
+
const ticketNumberInputSchema = z
|
|
5
|
+
.union([z.number().int().positive(), z.string().min(1)])
|
|
6
|
+
.describe('Exact ticket number, e.g. 4521 or "#4521"');
|
|
7
|
+
function asRecord(value) {
|
|
8
|
+
return value !== null && typeof value === 'object'
|
|
9
|
+
? value
|
|
10
|
+
: undefined;
|
|
11
|
+
}
|
|
12
|
+
function getString(value) {
|
|
13
|
+
return typeof value === 'string' ? value : undefined;
|
|
14
|
+
}
|
|
15
|
+
function getNumber(value) {
|
|
16
|
+
return typeof value === 'number' ? value : undefined;
|
|
17
|
+
}
|
|
18
|
+
function parseTicketNumber(ticketNumber) {
|
|
19
|
+
const raw = typeof ticketNumber === 'string' ? ticketNumber.trim() : ticketNumber;
|
|
20
|
+
const normalized = typeof raw === 'string' && raw.startsWith('#') ? raw.slice(1) : raw;
|
|
21
|
+
const parsed = typeof normalized === 'number' ? normalized : Number(normalized);
|
|
22
|
+
if (!Number.isInteger(parsed) || parsed <= 0) {
|
|
23
|
+
throw new Error(`Invalid ticket number: ${ticketNumber}`);
|
|
24
|
+
}
|
|
25
|
+
return parsed;
|
|
26
|
+
}
|
|
27
|
+
async function lookupSessionByTicket(client, ticketNumberInput) {
|
|
28
|
+
const ticketNumber = parseTicketNumber(ticketNumberInput);
|
|
29
|
+
try {
|
|
30
|
+
const session = await client.get(`/chat/sessions/ticket/${safePath(String(ticketNumber))}`);
|
|
31
|
+
return { ticketNumber, session };
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
if (error instanceof ApiError && error.status === 404) {
|
|
35
|
+
return { ticketNumber, session: undefined };
|
|
36
|
+
}
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function extractSessionSummary(session) {
|
|
41
|
+
const record = asRecord(session) ?? {};
|
|
42
|
+
const channel = asRecord(record.channel);
|
|
43
|
+
const contact = asRecord(record.contact);
|
|
44
|
+
const team = asRecord(record.team);
|
|
45
|
+
return {
|
|
46
|
+
id: getString(record.id),
|
|
47
|
+
ticket_number: getNumber(record.ticket_number),
|
|
48
|
+
status: getString(record.status),
|
|
49
|
+
ai_closure_type: getString(record.ai_closure_type),
|
|
50
|
+
channel_type: getString(channel?.type),
|
|
51
|
+
sentiment: getString(record.sentiment),
|
|
52
|
+
updated_at: getString(record.updated_at),
|
|
53
|
+
created_at: getString(record.created_at),
|
|
54
|
+
assist_mode: typeof record.assist_mode === 'boolean' ? record.assist_mode : undefined,
|
|
55
|
+
contact: contact
|
|
56
|
+
? {
|
|
57
|
+
id: getString(contact.id),
|
|
58
|
+
name: getString(contact.name),
|
|
59
|
+
email: getString(contact.email),
|
|
60
|
+
phone_number: getString(contact.phone_number),
|
|
61
|
+
}
|
|
62
|
+
: undefined,
|
|
63
|
+
team: team
|
|
64
|
+
? {
|
|
65
|
+
id: getString(team.id),
|
|
66
|
+
name: getString(team.name),
|
|
67
|
+
}
|
|
68
|
+
: undefined,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
3
71
|
export function registerSessionTools(server, client) {
|
|
4
72
|
server.registerTool('list_sessions', {
|
|
5
73
|
description: 'List chat sessions with optional filters. Returns paginated results with session metadata including status, channel, contact info, and timestamps.',
|
|
6
74
|
inputSchema: {
|
|
7
75
|
cursor: z.string().optional().describe('Pagination cursor from a previous response'),
|
|
8
|
-
status:
|
|
9
|
-
.enum(['open', 'closed', 'handoff'])
|
|
76
|
+
status: sessionStatusSchema
|
|
10
77
|
.optional()
|
|
11
|
-
.describe('Filter by session status'),
|
|
78
|
+
.describe('Filter by session status: "open", "closed_resolved", or "closed_unresolved"'),
|
|
12
79
|
channel_type: z
|
|
13
80
|
.string()
|
|
14
81
|
.optional()
|
|
@@ -45,14 +112,41 @@ export function registerSessionTools(server, client) {
|
|
|
45
112
|
updated_after: params.updated_after,
|
|
46
113
|
updated_before: params.updated_before,
|
|
47
114
|
});
|
|
48
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
115
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
49
116
|
});
|
|
50
117
|
server.registerTool('get_session', {
|
|
51
118
|
description: 'Get full details of a single chat session by its ID, including status, channel, contact, assignee, team, custom data, and timestamps.',
|
|
52
119
|
inputSchema: { session_id: z.string().describe('The session ID to retrieve') },
|
|
53
120
|
}, async ({ session_id }) => {
|
|
54
121
|
const data = await client.get(`/chat/sessions/${safePath(session_id)}`);
|
|
55
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
122
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
123
|
+
});
|
|
124
|
+
server.registerTool('get_session_by_ticket', {
|
|
125
|
+
description: 'Look up a chat session by exact ticket number. Use this whenever the user gives a ticket like 4521 or #4521. Returns the matched session, a compact summary, and session tags.',
|
|
126
|
+
inputSchema: { ticket_number: ticketNumberInputSchema },
|
|
127
|
+
}, async ({ ticket_number }) => {
|
|
128
|
+
const { ticketNumber, session } = await lookupSessionByTicket(client, ticket_number);
|
|
129
|
+
if (!session) {
|
|
130
|
+
return {
|
|
131
|
+
content: [{ type: 'text', text: `No session found for ticket #${ticketNumber}.` }],
|
|
132
|
+
isError: true,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
const sessionId = getString(asRecord(session)?.id);
|
|
136
|
+
const tags = sessionId ? await client.get(`/chat/sessions/${safePath(sessionId)}/tags`) : [];
|
|
137
|
+
return {
|
|
138
|
+
content: [
|
|
139
|
+
{
|
|
140
|
+
type: 'text',
|
|
141
|
+
text: JSON.stringify({
|
|
142
|
+
ticket_number: ticketNumber,
|
|
143
|
+
summary: extractSessionSummary(session),
|
|
144
|
+
tags,
|
|
145
|
+
session,
|
|
146
|
+
}, null, 2),
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
};
|
|
56
150
|
});
|
|
57
151
|
server.registerTool('create_session', {
|
|
58
152
|
description: 'Create a new chat session for an existing contact. The session starts in an open state and can receive messages.',
|
|
@@ -65,17 +159,45 @@ export function registerSessionTools(server, client) {
|
|
|
65
159
|
contact_id: params.contact_id,
|
|
66
160
|
channel: params.channel,
|
|
67
161
|
});
|
|
68
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
162
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
69
163
|
});
|
|
70
164
|
server.registerTool('update_session', {
|
|
71
165
|
description: 'Update a chat session status. Use this to resolve, close, or reopen sessions.',
|
|
72
166
|
inputSchema: {
|
|
73
167
|
session_id: z.string().describe('The session ID to update'),
|
|
74
|
-
status:
|
|
168
|
+
status: sessionStatusSchema.describe('The new status for the session: "open", "closed_resolved", or "closed_unresolved"'),
|
|
75
169
|
},
|
|
76
170
|
}, async ({ session_id, status }) => {
|
|
77
171
|
const data = await client.patch(`/chat/sessions/${safePath(session_id)}`, { status });
|
|
78
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
172
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
173
|
+
});
|
|
174
|
+
server.registerTool('assign_session', {
|
|
175
|
+
description: 'Assign or unassign a chat session to a human agent. Use list_available_team_members or list_org_users first if you need valid agent user IDs. Set agent_id to null to unassign the session.',
|
|
176
|
+
inputSchema: {
|
|
177
|
+
session_id: z.string().describe('The session ID to update'),
|
|
178
|
+
agent_id: z
|
|
179
|
+
.number()
|
|
180
|
+
.int()
|
|
181
|
+
.nullable()
|
|
182
|
+
.describe('Agent user ID to assign, or null to unassign'),
|
|
183
|
+
},
|
|
184
|
+
}, async ({ session_id, agent_id }) => {
|
|
185
|
+
const data = await client.post(`/chat/sessions/${safePath(session_id)}/assignee`, {
|
|
186
|
+
assignee_id: agent_id,
|
|
187
|
+
});
|
|
188
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
189
|
+
});
|
|
190
|
+
server.registerTool('transfer_session_to_team', {
|
|
191
|
+
description: 'Transfer a chat session to a support team. Use list_teams first to find the target team_id, and list_available_team_members if you want to inspect who is available there. The backend may also auto-assign an available agent in that team.',
|
|
192
|
+
inputSchema: {
|
|
193
|
+
session_id: z.string().describe('The session ID to transfer'),
|
|
194
|
+
team_id: z.string().describe('Target team ID'),
|
|
195
|
+
},
|
|
196
|
+
}, async ({ session_id, team_id }) => {
|
|
197
|
+
const data = await client.post(`/chat/sessions/${safePath(session_id)}/team`, {
|
|
198
|
+
team_id,
|
|
199
|
+
});
|
|
200
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
79
201
|
});
|
|
80
202
|
server.registerTool('send_message', {
|
|
81
203
|
description: 'Send a message in an existing chat session. Messages can be sent as either a contact or an agent. Supports text content and optional attachments.',
|
|
@@ -88,27 +210,57 @@ export function registerSessionTools(server, client) {
|
|
|
88
210
|
contact: z
|
|
89
211
|
.object({
|
|
90
212
|
email: z.string().optional(),
|
|
91
|
-
|
|
213
|
+
phone_number: z.string().optional(),
|
|
214
|
+
phone: z.string().optional().describe('Alias for phone_number'),
|
|
92
215
|
name: z.string().optional(),
|
|
93
216
|
})
|
|
94
217
|
.optional()
|
|
95
218
|
.describe('Contact identity when sender is "contact"'),
|
|
96
219
|
agent: z
|
|
97
|
-
.object({
|
|
220
|
+
.object({
|
|
221
|
+
id: z.coerce.number().int().positive().optional().describe('Agent user ID (string or number)'),
|
|
222
|
+
name: z.string().optional(),
|
|
223
|
+
email: z.string().optional(),
|
|
224
|
+
})
|
|
98
225
|
.optional()
|
|
99
|
-
.describe('Agent identity when sender is "agent"'),
|
|
226
|
+
.describe('Agent identity when sender is "agent". `id` and `name` are forwarded to the API.'),
|
|
100
227
|
},
|
|
101
228
|
}, async ({ session_id, sender, text, contact, agent }) => {
|
|
102
229
|
const body = {
|
|
103
230
|
sender,
|
|
104
231
|
message: { text },
|
|
105
232
|
};
|
|
106
|
-
if (sender === 'contact' && contact)
|
|
107
|
-
body.contact =
|
|
108
|
-
|
|
109
|
-
|
|
233
|
+
if (sender === 'contact' && contact) {
|
|
234
|
+
body.contact = {
|
|
235
|
+
email: contact.email,
|
|
236
|
+
phone_number: contact.phone_number ?? contact.phone,
|
|
237
|
+
name: contact.name,
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
if (sender === 'agent' && agent) {
|
|
241
|
+
body.agent = {
|
|
242
|
+
id: agent.id,
|
|
243
|
+
name: agent.name,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
110
246
|
const data = await client.post(`/chat/sessions/${safePath(session_id)}/send`, body);
|
|
111
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
247
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
248
|
+
});
|
|
249
|
+
server.registerTool('add_session_comment', {
|
|
250
|
+
description: 'Add an internal human-agent comment to an existing message thread in a chat session. Use get_session_history first to obtain a valid thread_id (message UUID), and use list_org_users if you need a valid agent_id.',
|
|
251
|
+
inputSchema: {
|
|
252
|
+
session_id: z.string().describe('The session ID'),
|
|
253
|
+
thread_id: z.string().uuid().describe('Message UUID to comment on'),
|
|
254
|
+
content: z.string().min(1).describe('Comment text content'),
|
|
255
|
+
agent_id: z.number().int().positive().describe('Agent user ID that authors the comment'),
|
|
256
|
+
},
|
|
257
|
+
}, async ({ session_id, thread_id, content, agent_id }) => {
|
|
258
|
+
const data = await client.post(`/chat/sessions/${safePath(session_id)}/comments`, {
|
|
259
|
+
thread_id,
|
|
260
|
+
content,
|
|
261
|
+
agent_id,
|
|
262
|
+
});
|
|
263
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
112
264
|
});
|
|
113
265
|
server.registerTool('filter_sessions', {
|
|
114
266
|
description: 'Advanced search and filter for chat sessions. Supports filtering by date range, channels, status, sentiment, tags, assignees, teams, contacts, language, custom data, and more. Use this instead of list_sessions when you need precise filtering.',
|
|
@@ -138,7 +290,11 @@ export function registerSessionTools(server, client) {
|
|
|
138
290
|
.optional()
|
|
139
291
|
.describe('Filter by assignee user IDs (empty array = unassigned)'),
|
|
140
292
|
language: z.array(z.string()).optional().describe('Filter by session language codes'),
|
|
141
|
-
ticket_number: z.
|
|
293
|
+
ticket_number: z.coerce
|
|
294
|
+
.number()
|
|
295
|
+
.int()
|
|
296
|
+
.optional()
|
|
297
|
+
.describe('Filter by exact ticket number (string or number)'),
|
|
142
298
|
waiting_on: z
|
|
143
299
|
.enum(['customers', 'human_agents'])
|
|
144
300
|
.optional()
|
|
@@ -148,8 +304,19 @@ export function registerSessionTools(server, client) {
|
|
|
148
304
|
.optional()
|
|
149
305
|
.describe('Sort field (default: last_message_at)'),
|
|
150
306
|
sort_order: z.enum(['asc', 'desc']).optional().describe('Sort direction (default: desc)'),
|
|
151
|
-
page: z.
|
|
152
|
-
|
|
307
|
+
page: z.coerce
|
|
308
|
+
.number()
|
|
309
|
+
.int()
|
|
310
|
+
.min(1)
|
|
311
|
+
.optional()
|
|
312
|
+
.describe('Page number (default: 1). String or number.'),
|
|
313
|
+
limit: z.coerce
|
|
314
|
+
.number()
|
|
315
|
+
.int()
|
|
316
|
+
.min(1)
|
|
317
|
+
.max(100)
|
|
318
|
+
.optional()
|
|
319
|
+
.describe('Results per page (default: 25, max: 100). String or number.'),
|
|
153
320
|
},
|
|
154
321
|
}, async ({ date_from, date_to, sort_by, sort_order, page, limit, ...filters }) => {
|
|
155
322
|
const body = {
|
|
@@ -167,7 +334,7 @@ export function registerSessionTools(server, client) {
|
|
|
167
334
|
if (limit)
|
|
168
335
|
body.limit = limit;
|
|
169
336
|
const data = await client.post('/chat/sessions/filter', body);
|
|
170
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
337
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
171
338
|
});
|
|
172
339
|
server.registerTool('get_session_history', {
|
|
173
340
|
description: 'Get the message history for a chat session. Returns paginated messages, events, and status changes in chronological order.',
|
|
@@ -177,7 +344,99 @@ export function registerSessionTools(server, client) {
|
|
|
177
344
|
},
|
|
178
345
|
}, async ({ session_id, cursor }) => {
|
|
179
346
|
const data = await client.get(`/chat/sessions/${safePath(session_id)}/history`, { cursor });
|
|
180
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
347
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
348
|
+
});
|
|
349
|
+
server.registerTool('get_session_handoffs', {
|
|
350
|
+
description: 'Get the handoff event for a session — why the AI handed off, referenced resources, and sentiment.',
|
|
351
|
+
inputSchema: {
|
|
352
|
+
session_id: z.string().describe('The session ID'),
|
|
353
|
+
},
|
|
354
|
+
}, async ({ session_id }) => {
|
|
355
|
+
const data = await client.get(`/chat/sessions/${safePath(session_id)}/handoffs`);
|
|
356
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
357
|
+
});
|
|
358
|
+
server.registerTool('get_session_tags', {
|
|
359
|
+
description: 'Get all tags applied to a chat session.',
|
|
360
|
+
inputSchema: {
|
|
361
|
+
session_id: z.string().describe('The session ID'),
|
|
362
|
+
},
|
|
363
|
+
}, async ({ session_id }) => {
|
|
364
|
+
const data = await client.get(`/chat/sessions/${safePath(session_id)}/tags`);
|
|
365
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
366
|
+
});
|
|
367
|
+
server.registerTool('tag_session', {
|
|
368
|
+
description: 'Add a tag to a chat session. Use this for categorization and routing signals like billing, refund, vip, or urgent.',
|
|
369
|
+
inputSchema: {
|
|
370
|
+
session_id: z.string().describe('The session ID'),
|
|
371
|
+
tag_name: z.string().describe('Tag to add to the session'),
|
|
372
|
+
},
|
|
373
|
+
}, async ({ session_id, tag_name }) => {
|
|
374
|
+
const data = await client.post(`/chat/sessions/${safePath(session_id)}/tags`, { tag_name });
|
|
375
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
376
|
+
});
|
|
377
|
+
server.registerTool('untag_session', {
|
|
378
|
+
description: 'Remove a tag from a chat session.',
|
|
379
|
+
inputSchema: {
|
|
380
|
+
session_id: z.string().describe('The session ID'),
|
|
381
|
+
tag_name: z.string().describe('Tag to remove from the session'),
|
|
382
|
+
},
|
|
383
|
+
}, async ({ session_id, tag_name }) => {
|
|
384
|
+
const data = await client.delete(`/chat/sessions/${safePath(session_id)}/tags/${safePath(tag_name)}`);
|
|
385
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
386
|
+
});
|
|
387
|
+
server.registerTool('search_sessions', {
|
|
388
|
+
description: 'Full-text search across contacts (name, email, phone) and chat messages. Returns matching contacts and messages with their session IDs.',
|
|
389
|
+
inputSchema: {
|
|
390
|
+
query: z.string().describe('Search query (a name, email, phone, or keyword)'),
|
|
391
|
+
},
|
|
392
|
+
}, async ({ query }) => {
|
|
393
|
+
const data = await client.get('/chat/sessions/search', { q: query });
|
|
394
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
395
|
+
});
|
|
396
|
+
server.registerTool('investigate_session', {
|
|
397
|
+
description: 'Deep investigation of a session — fetches session details, message history, handoff event, and tags in parallel. Returns a structured summary optimized for AI reasoning.',
|
|
398
|
+
inputSchema: {
|
|
399
|
+
session_id: z.string().describe('The session ID to investigate'),
|
|
400
|
+
},
|
|
401
|
+
}, async ({ session_id }) => {
|
|
402
|
+
const path = safePath(session_id);
|
|
403
|
+
const [session, history, handoffs, tags] = await Promise.all([
|
|
404
|
+
client.get(`/chat/sessions/${path}`),
|
|
405
|
+
client.get(`/chat/sessions/${path}/history`),
|
|
406
|
+
client.get(`/chat/sessions/${path}/handoffs`),
|
|
407
|
+
client.get(`/chat/sessions/${path}/tags`),
|
|
408
|
+
]);
|
|
409
|
+
const result = {
|
|
410
|
+
session,
|
|
411
|
+
history,
|
|
412
|
+
handoffs,
|
|
413
|
+
tags,
|
|
414
|
+
};
|
|
415
|
+
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
416
|
+
});
|
|
417
|
+
server.registerTool('investigate_ticket', {
|
|
418
|
+
description: 'Investigate a conversation by exact ticket number. This is the fastest high-signal tool for debugging why the AI resolved, handed off, or behaved unexpectedly. Returns a backend-generated investigation bundle with session summary, recent history, handoff evidence, tags, CSAT, and diagnostics.',
|
|
419
|
+
inputSchema: { ticket_number: ticketNumberInputSchema },
|
|
420
|
+
}, async ({ ticket_number }) => {
|
|
421
|
+
const ticketNumberValue = parseTicketNumber(ticket_number);
|
|
422
|
+
try {
|
|
423
|
+
const result = await client.get(`/chat/sessions/ticket/${safePath(String(ticketNumberValue))}/investigation`);
|
|
424
|
+
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
425
|
+
}
|
|
426
|
+
catch (error) {
|
|
427
|
+
if (error instanceof ApiError && error.status === 404) {
|
|
428
|
+
return {
|
|
429
|
+
content: [
|
|
430
|
+
{
|
|
431
|
+
type: 'text',
|
|
432
|
+
text: `No investigation data found for ticket #${ticketNumberValue}.`,
|
|
433
|
+
},
|
|
434
|
+
],
|
|
435
|
+
isError: true,
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
throw error;
|
|
439
|
+
}
|
|
181
440
|
});
|
|
182
441
|
}
|
|
183
442
|
//# sourceMappingURL=sessions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/tools/sessions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/tools/sessions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAgB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEpE,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC;AACrF,MAAM,uBAAuB,GAAG,CAAC;KAC9B,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACvD,QAAQ,CAAC,2CAA2C,CAAC,CAAC;AAEzD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAChD,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,iBAAiB,CAAC,YAA6B;IACtD,MAAM,GAAG,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;IAClF,MAAM,UAAU,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACvF,MAAM,MAAM,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEhF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,MAAoB,EAAE,iBAAkC;IAC3F,MAAM,YAAY,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,yBAAyB,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5F,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACtD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAC9C,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB;IAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO;QACL,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;QAC9C,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAChC,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC;QAClD,YAAY,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC;QACtC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QACtC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;QACxC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;QACxC,WAAW,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QACrF,OAAO,EAAE,OAAO;YACd,CAAC,CAAC;gBACE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC7B,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC/B,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;aAC9C;YACH,CAAC,CAAC,SAAS;QACb,IAAI,EAAE,IAAI;YACR,CAAC,CAAC;gBACE,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;aAC3B;YACH,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAoB;IAC1E,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,oJAAoJ;QACtJ,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACpF,MAAM,EAAE,mBAAmB;iBACxB,QAAQ,EAAE;iBACV,QAAQ,CAAC,6EAA6E,CAAC;YAC1F,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0DAA0D,CAAC;YACvE,UAAU,EAAE,CAAC;iBACV,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iBACvB,QAAQ,EAAE;iBACV,QAAQ,CAAC,0DAA0D,CAAC;YACvE,aAAa,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,8DAA8D,CAAC;YAC3E,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,+DAA+D,CAAC;YAC5E,aAAa,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,8DAA8D,CAAC;YAC3E,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,+DAA+D,CAAC;SAC7E;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE;YAC/C,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,cAAc,EAAE,MAAM,CAAC,cAAc;SACtC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EACT,uIAAuI;QACzI,WAAW,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE;KAC/E,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACxE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,gLAAgL;QAClL,WAAW,EAAE,EAAE,aAAa,EAAE,uBAAuB,EAAE;KACxD,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC1B,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAErF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,YAAY,GAAG,EAAE,CAAC;gBAClF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7F,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,aAAa,EAAE,YAAY;wBAC3B,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAAC;wBACvC,IAAI;wBACJ,OAAO;qBACR,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,kHAAkH;QACpH,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACzE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;SAC5F;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAChD,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,+EAA+E;QAC5F,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAC3D,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAClC,mFAAmF,CACpF;SACF;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,kBAAkB,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACtF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,6LAA6L;QAC/L,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAC3D,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,8CAA8C,CAAC;SAC5D;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE;YAChF,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,WAAW,EACT,8OAA8O;QAChP,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YAC7D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SAC/C;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE;YAC5E,OAAO;SACR,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,mJAAmJ;QACrJ,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YACxE,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;iBAC1B,QAAQ,CAAC,mDAAmD,CAAC;YAChE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACrD,OAAO,EAAE,CAAC;iBACP,MAAM,CAAC;gBACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC5B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;gBAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC5B,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,2CAA2C,CAAC;YACxD,KAAK,EAAE,CAAC;iBACL,MAAM,CAAC;gBACN,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;gBAC9F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC7B,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CACP,kFAAkF,CACnF;SACJ;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QACrD,MAAM,IAAI,GAA4B;YACpC,MAAM;YACN,OAAO,EAAE,EAAE,IAAI,EAAE;SAClB,CAAC;QACF,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,GAAG;gBACb,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,KAAK;gBACnD,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,OAAO,IAAI,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG;gBACX,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACpF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,qNAAqN;QACvN,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACnE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC3D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;SACzF;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE;YAChF,SAAS;YACT,OAAO;YACP,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,oPAAoP;QACtP,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAClE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC9D,QAAQ,EAAE,CAAC;iBACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CACP,+EAA+E,CAChF;YACH,MAAM,EAAE,CAAC;iBACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,wEAAwE,CAAC;YACrF,SAAS,EAAE,CAAC;iBACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,kDAAkD,CAAC;YAC/D,IAAI,EAAE,CAAC;iBACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,wDAAwD,CAAC;YACrE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAC7E,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAC7E,SAAS,EAAE,CAAC;iBACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,wDAAwD,CAAC;YACrE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YACrF,aAAa,EAAE,CAAC,CAAC,MAAM;iBACpB,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,kDAAkD,CAAC;YAC/D,UAAU,EAAE,CAAC;iBACV,IAAI,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;iBACnC,QAAQ,EAAE;iBACV,QAAQ,CAAC,yCAAyC,CAAC;YACtD,OAAO,EAAE,CAAC;iBACP,IAAI,CAAC,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;iBACvC,QAAQ,EAAE;iBACV,QAAQ,CAAC,uCAAuC,CAAC;YACpD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YACzF,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,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,6DAA6D,CAAC;SAC3E;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE;QAC7E,MAAM,IAAI,GAA4B;YACpC,OAAO,EAAE;gBACP,GAAG,OAAO;gBACV,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5E;SACF,CAAC;QACF,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACpC,IAAI,UAAU;YAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7C,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAE9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;QAC9D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,4HAA4H;QAC9H,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACpE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SACrF;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EACT,mGAAmG;QACrG,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SAClD;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACjF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SAClD;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EACT,oHAAoH;QACtH,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACjD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SAC3D;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EAAE,mCAAmC;QAChD,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACjD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;SAChE;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAC9B,kBAAkB,QAAQ,CAAC,UAAU,CAAC,SAAS,QAAQ,CAAC,QAAQ,CAAC,EAAE,CACpE,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,yIAAyI;QAC3I,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;SAC9E;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,2KAA2K;QAC7K,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;SACjE;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3D,MAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,UAAU,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,WAAW,CAAC;YAC7C,MAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC;SAC1C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG;YACb,OAAO;YACP,OAAO;YACP,QAAQ;YACR,IAAI;SACL,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IACvE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,uSAAuS;QACzS,WAAW,EAAE,EAAE,aAAa,EAAE,uBAAuB,EAAE;KACxD,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC1B,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAC7B,yBAAyB,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,CAC7E,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACtD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,2CAA2C,iBAAiB,GAAG;yBACtE;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -28,7 +28,7 @@ export function registerSlaAnalyticsTools(server, client) {
|
|
|
28
28
|
channel: params.channel,
|
|
29
29
|
agent_id: params.agent_id,
|
|
30
30
|
});
|
|
31
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
31
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
32
32
|
});
|
|
33
33
|
server.registerTool('get_sla_analytics_breakdown', {
|
|
34
34
|
description: 'Get SLA compliance rates grouped by policy, team, agent, or channel. Each group includes session count, compliance metrics, and time percentiles.',
|
|
@@ -49,7 +49,7 @@ export function registerSlaAnalyticsTools(server, client) {
|
|
|
49
49
|
agent_id: params.agent_id,
|
|
50
50
|
group_by: params.group_by,
|
|
51
51
|
});
|
|
52
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
52
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
53
53
|
});
|
|
54
54
|
server.registerTool('get_sla_analytics_trend', {
|
|
55
55
|
description: 'Get SLA compliance rates over time, grouped by day or week. Returns a time series of compliance metrics and percentiles for each period.',
|
|
@@ -71,7 +71,7 @@ export function registerSlaAnalyticsTools(server, client) {
|
|
|
71
71
|
agent_id: params.agent_id,
|
|
72
72
|
granularity: params.granularity,
|
|
73
73
|
});
|
|
74
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
74
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
75
75
|
});
|
|
76
76
|
server.registerTool('get_sla_breach_heatmap', {
|
|
77
77
|
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.',
|
|
@@ -86,7 +86,7 @@ export function registerSlaAnalyticsTools(server, client) {
|
|
|
86
86
|
channel: params.channel,
|
|
87
87
|
agent_id: params.agent_id,
|
|
88
88
|
});
|
|
89
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
89
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
92
|
//# 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;AAGxB,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,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;IAC3E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;CAC/D,CAAC;AAEF,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,MAAM,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE;YAC9C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"sla-analytics.js","sourceRoot":"","sources":["../../src/tools/sla-analytics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,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,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;IAC3E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;CAC/D,CAAC;AAEF,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,MAAM,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE;YAC9C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,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,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE;YACxD,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,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,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE;YACpD,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,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,MAAM,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE;YAC7D,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/sla.js
CHANGED
|
@@ -5,14 +5,14 @@ export function registerSlaTools(server, client) {
|
|
|
5
5
|
description: 'List all SLA policies for your organization. Each policy defines target response and resolution times.',
|
|
6
6
|
}, async () => {
|
|
7
7
|
const data = await client.get('/sla/policies');
|
|
8
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
8
|
+
return { content: [{ type: 'text', text: JSON.stringify(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
14
|
const data = await client.get(`/sla/policies/${safePath(id)}`);
|
|
15
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
15
|
+
return { content: [{ type: 'text', text: JSON.stringify(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.',
|
|
@@ -47,7 +47,7 @@ export function registerSlaTools(server, client) {
|
|
|
47
47
|
next_reply_target_seconds: params.next_reply_target_seconds ?? null,
|
|
48
48
|
resolution_target_seconds: params.resolution_target_seconds ?? null,
|
|
49
49
|
});
|
|
50
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
50
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
51
51
|
});
|
|
52
52
|
server.registerTool('update_sla_policy', {
|
|
53
53
|
description: 'Update an existing SLA policy. Only provided fields are changed.',
|
|
@@ -80,7 +80,7 @@ export function registerSlaTools(server, client) {
|
|
|
80
80
|
},
|
|
81
81
|
}, async ({ id, ...rest }) => {
|
|
82
82
|
const data = await client.put(`/sla/policies/${safePath(id)}`, rest);
|
|
83
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
83
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
84
84
|
});
|
|
85
85
|
server.registerTool('delete_sla_policy', {
|
|
86
86
|
description: 'Delete an SLA policy by ID. This action cannot be undone.',
|
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,EAAgB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,MAAoB;IACtE,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,wGAAwG;KAC3G,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC/C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"sla.js","sourceRoot":"","sources":["../../src/tools/sla.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/tags.js
CHANGED
|
@@ -5,13 +5,13 @@ export function registerTagTools(server, client) {
|
|
|
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
7
|
const data = await client.get('/tags/');
|
|
8
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
8
|
+
return { content: [{ type: 'text', text: JSON.stringify(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
13
|
const data = await client.get('/tags/in-use');
|
|
14
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
14
|
+
return { content: [{ type: 'text', text: JSON.stringify(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. Set exclude_from_auto_tagging to true to prevent the AI from applying this tag automatically.',
|
|
@@ -39,7 +39,7 @@ export function registerTagTools(server, client) {
|
|
|
39
39
|
description: 'Check whether AI auto-tagging is enabled. When enabled, the AI automatically applies relevant tags to chat sessions based on conversation content.',
|
|
40
40
|
}, async () => {
|
|
41
41
|
const data = await client.get('/tags/auto-tagging');
|
|
42
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
42
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
43
43
|
});
|
|
44
44
|
server.registerTool('set_auto_tagging', {
|
|
45
45
|
description: 'Enable or disable AI auto-tagging. When enabled, the AI automatically applies relevant tags to chat sessions.',
|
|
@@ -48,7 +48,7 @@ export function registerTagTools(server, client) {
|
|
|
48
48
|
},
|
|
49
49
|
}, async ({ enabled }) => {
|
|
50
50
|
const data = await client.put('/tags/auto-tagging', { enabled });
|
|
51
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
51
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
//# 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,EAAgB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,MAAoB;IACtE,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,WAAW,EACT,6KAA6K;KAChL,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/tools/tags.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AAEpE,OAAO,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAE1D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAE1D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA+HxE"}
|