dalvon-mcp 3.0.0
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/LICENSE +7 -0
- package/README.md +743 -0
- package/dist/clients/dalvon.d.ts +258 -0
- package/dist/clients/dalvon.d.ts.map +1 -0
- package/dist/clients/dalvon.js +1240 -0
- package/dist/clients/dalvon.js.map +1 -0
- package/dist/clients/knowledge.d.ts +59 -0
- package/dist/clients/knowledge.d.ts.map +1 -0
- package/dist/clients/knowledge.js +267 -0
- package/dist/clients/knowledge.js.map +1 -0
- package/dist/clients/telefonieren.d.ts +258 -0
- package/dist/clients/telefonieren.d.ts.map +1 -0
- package/dist/clients/telefonieren.js +1240 -0
- package/dist/clients/telefonieren.js.map +1 -0
- package/dist/config.d.ts +43 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +76 -0
- package/dist/config.js.map +1 -0
- package/dist/environment.d.ts +33 -0
- package/dist/environment.d.ts.map +1 -0
- package/dist/environment.js +63 -0
- package/dist/environment.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/agents.d.ts +8 -0
- package/dist/tools/agents.d.ts.map +1 -0
- package/dist/tools/agents.js +1880 -0
- package/dist/tools/agents.js.map +1 -0
- package/dist/tools/billing.d.ts +8 -0
- package/dist/tools/billing.d.ts.map +1 -0
- package/dist/tools/billing.js +205 -0
- package/dist/tools/billing.js.map +1 -0
- package/dist/tools/calendar.d.ts +8 -0
- package/dist/tools/calendar.d.ts.map +1 -0
- package/dist/tools/calendar.js +347 -0
- package/dist/tools/calendar.js.map +1 -0
- package/dist/tools/calls.d.ts +8 -0
- package/dist/tools/calls.d.ts.map +1 -0
- package/dist/tools/calls.js +508 -0
- package/dist/tools/calls.js.map +1 -0
- package/dist/tools/campaigns.d.ts +8 -0
- package/dist/tools/campaigns.d.ts.map +1 -0
- package/dist/tools/campaigns.js +531 -0
- package/dist/tools/campaigns.js.map +1 -0
- package/dist/tools/channels.d.ts +8 -0
- package/dist/tools/channels.d.ts.map +1 -0
- package/dist/tools/channels.js +165 -0
- package/dist/tools/channels.js.map +1 -0
- package/dist/tools/chats.d.ts +8 -0
- package/dist/tools/chats.d.ts.map +1 -0
- package/dist/tools/chats.js +142 -0
- package/dist/tools/chats.js.map +1 -0
- package/dist/tools/collections.d.ts +8 -0
- package/dist/tools/collections.d.ts.map +1 -0
- package/dist/tools/collections.js +389 -0
- package/dist/tools/collections.js.map +1 -0
- package/dist/tools/contacts.d.ts +8 -0
- package/dist/tools/contacts.d.ts.map +1 -0
- package/dist/tools/contacts.js +430 -0
- package/dist/tools/contacts.js.map +1 -0
- package/dist/tools/crawler.d.ts +8 -0
- package/dist/tools/crawler.d.ts.map +1 -0
- package/dist/tools/crawler.js +263 -0
- package/dist/tools/crawler.js.map +1 -0
- package/dist/tools/dnc.d.ts +8 -0
- package/dist/tools/dnc.d.ts.map +1 -0
- package/dist/tools/dnc.js +287 -0
- package/dist/tools/dnc.js.map +1 -0
- package/dist/tools/documents.d.ts +9 -0
- package/dist/tools/documents.d.ts.map +1 -0
- package/dist/tools/documents.js +518 -0
- package/dist/tools/documents.js.map +1 -0
- package/dist/tools/engines.d.ts +8 -0
- package/dist/tools/engines.d.ts.map +1 -0
- package/dist/tools/engines.js +271 -0
- package/dist/tools/engines.js.map +1 -0
- package/dist/tools/environment.d.ts +9 -0
- package/dist/tools/environment.d.ts.map +1 -0
- package/dist/tools/environment.js +59 -0
- package/dist/tools/environment.js.map +1 -0
- package/dist/tools/forwarding.d.ts +8 -0
- package/dist/tools/forwarding.d.ts.map +1 -0
- package/dist/tools/forwarding.js +30 -0
- package/dist/tools/forwarding.js.map +1 -0
- package/dist/tools/index.d.ts +58 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +158 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/integrations.d.ts +8 -0
- package/dist/tools/integrations.d.ts.map +1 -0
- package/dist/tools/integrations.js +234 -0
- package/dist/tools/integrations.js.map +1 -0
- package/dist/tools/mailbox.d.ts +8 -0
- package/dist/tools/mailbox.d.ts.map +1 -0
- package/dist/tools/mailbox.js +105 -0
- package/dist/tools/mailbox.js.map +1 -0
- package/dist/tools/media.d.ts +8 -0
- package/dist/tools/media.d.ts.map +1 -0
- package/dist/tools/media.js +223 -0
- package/dist/tools/media.js.map +1 -0
- package/dist/tools/numbers.d.ts +8 -0
- package/dist/tools/numbers.d.ts.map +1 -0
- package/dist/tools/numbers.js +560 -0
- package/dist/tools/numbers.js.map +1 -0
- package/dist/tools/organizations.d.ts +8 -0
- package/dist/tools/organizations.d.ts.map +1 -0
- package/dist/tools/organizations.js +234 -0
- package/dist/tools/organizations.js.map +1 -0
- package/dist/tools/postprocessing.d.ts +8 -0
- package/dist/tools/postprocessing.d.ts.map +1 -0
- package/dist/tools/postprocessing.js +383 -0
- package/dist/tools/postprocessing.js.map +1 -0
- package/dist/tools/pronunciations.d.ts +8 -0
- package/dist/tools/pronunciations.d.ts.map +1 -0
- package/dist/tools/pronunciations.js +236 -0
- package/dist/tools/pronunciations.js.map +1 -0
- package/dist/tools/rules.d.ts +8 -0
- package/dist/tools/rules.d.ts.map +1 -0
- package/dist/tools/rules.js +465 -0
- package/dist/tools/rules.js.map +1 -0
- package/dist/tools/statistics.d.ts +8 -0
- package/dist/tools/statistics.d.ts.map +1 -0
- package/dist/tools/statistics.js +120 -0
- package/dist/tools/statistics.js.map +1 -0
- package/dist/tools/templates.d.ts +8 -0
- package/dist/tools/templates.d.ts.map +1 -0
- package/dist/tools/templates.js +211 -0
- package/dist/tools/templates.js.map +1 -0
- package/dist/tools/tests.d.ts +8 -0
- package/dist/tools/tests.d.ts.map +1 -0
- package/dist/tools/tests.js +329 -0
- package/dist/tools/tests.js.map +1 -0
- package/dist/tools/users.d.ts +8 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +484 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/tools/voice-preview.d.ts +8 -0
- package/dist/tools/voice-preview.d.ts.map +1 -0
- package/dist/tools/voice-preview.js +100 -0
- package/dist/tools/voice-preview.js.map +1 -0
- package/dist/tools/voices.d.ts +8 -0
- package/dist/tools/voices.d.ts.map +1 -0
- package/dist/tools/voices.js +110 -0
- package/dist/tools/voices.js.map +1 -0
- package/dist/tools/whitelabels.d.ts +8 -0
- package/dist/tools/whitelabels.d.ts.map +1 -0
- package/dist/tools/whitelabels.js +199 -0
- package/dist/tools/whitelabels.js.map +1 -0
- package/dist/tools/widget-config.d.ts +8 -0
- package/dist/tools/widget-config.d.ts.map +1 -0
- package/dist/tools/widget-config.js +116 -0
- package/dist/tools/widget-config.js.map +1 -0
- package/dist/types/api.d.ts +303 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +6 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/tools.d.ts +41 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +6 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/utils/errors.d.ts +31 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +77 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +11 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +25 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/validation.d.ts +34 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +68 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,508 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Call Management Tools
|
|
3
|
+
* 10 tools for managing dalvon.ai calls (Phase 1: +3 new tools)
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { validateUUID } from '../utils/validation.js';
|
|
7
|
+
import { formatApiError, createError, createSuccess, isApiError } from '../utils/errors.js';
|
|
8
|
+
// Zod Schemas
|
|
9
|
+
const listCallsSchema = z.object({
|
|
10
|
+
target_user_id: z.string().uuid().optional().describe('Impersonate user to see their calls (requires admin/platform permissions)'),
|
|
11
|
+
scope: z.enum(['user', 'organization', 'whitelabel', 'platform']).optional().describe('Expand view scope (admin only)'),
|
|
12
|
+
visibility: z.array(z.enum(['user', 'organization', 'whitelabel', 'platform'])).optional().describe('Filter by visibility levels'),
|
|
13
|
+
agent_id: z.array(z.string()).optional(),
|
|
14
|
+
contact_id: z.array(z.string()).optional(),
|
|
15
|
+
status: z.array(z.string()).optional(),
|
|
16
|
+
call_type: z.array(z.string()).optional(),
|
|
17
|
+
recipient_number: z.string().optional(),
|
|
18
|
+
system_number: z.string().optional(),
|
|
19
|
+
start_time: z.string().optional(),
|
|
20
|
+
end_time: z.string().optional(),
|
|
21
|
+
min_duration: z.number().optional(),
|
|
22
|
+
max_duration: z.number().optional(),
|
|
23
|
+
search: z.string().optional(),
|
|
24
|
+
sort_by: z.enum(['agent_name', 'contact_name', 'duration', 'status', 'created_at']).default('created_at'),
|
|
25
|
+
sort_direction: z.enum(['ASC', 'DESC']).default('DESC'),
|
|
26
|
+
limit: z.number().min(1).max(100).default(30),
|
|
27
|
+
skip: z.number().min(0).default(0),
|
|
28
|
+
});
|
|
29
|
+
const initiateCallSchema = z.object({
|
|
30
|
+
// to: recipient definition
|
|
31
|
+
to_number: z.string().optional().describe('Phone number to call in E.164 format (+4916093290000)'),
|
|
32
|
+
to_contact_id: z.string().uuid().optional().describe('Existing contact ID to call'),
|
|
33
|
+
to_contact_details: z.object({
|
|
34
|
+
first_name: z.string().optional(),
|
|
35
|
+
last_name: z.string().optional(),
|
|
36
|
+
company: z.string().optional(),
|
|
37
|
+
email: z.string().optional(),
|
|
38
|
+
}).optional().describe('Contact details to upsert'),
|
|
39
|
+
// from: origination definition
|
|
40
|
+
from_agent_id: z.string().uuid().describe('Agent ID that will handle the call'),
|
|
41
|
+
from_number: z.string().optional().describe('Outbound phone number in E.164 format'),
|
|
42
|
+
from_number_id: z.string().uuid().optional().describe('ID of the outbound number to use'),
|
|
43
|
+
// call options
|
|
44
|
+
dynamic_variables: z.record(z.unknown()).optional(),
|
|
45
|
+
custom_data: z.record(z.unknown()).optional(),
|
|
46
|
+
tags: z.array(z.string()).optional(),
|
|
47
|
+
enable_mailbox_detection: z.boolean().optional().default(true),
|
|
48
|
+
prompt_override: z.string().optional().describe('Override agent prompt for this call (Pipecat only)'),
|
|
49
|
+
});
|
|
50
|
+
const getCallDetailsSchema = z.object({
|
|
51
|
+
call_id: z.string(),
|
|
52
|
+
target_user_id: z.string().uuid().optional().describe('Impersonate user (requires admin/platform permissions)'),
|
|
53
|
+
});
|
|
54
|
+
const deleteCallSchema = z.object({
|
|
55
|
+
call_id: z.string(),
|
|
56
|
+
memory_only: z.boolean().default(false),
|
|
57
|
+
});
|
|
58
|
+
const submitCallFeedbackSchema = z.object({
|
|
59
|
+
call_id: z.string(),
|
|
60
|
+
rating: z.enum(['like', 'dislike']),
|
|
61
|
+
note: z.string().optional(),
|
|
62
|
+
});
|
|
63
|
+
const getCallFeedbackSchema = z.object({
|
|
64
|
+
call_id: z.string(),
|
|
65
|
+
});
|
|
66
|
+
// Phase 1: New Schemas
|
|
67
|
+
const markCallsAsReadSchema = z.object({
|
|
68
|
+
call_ids: z.array(z.string()).min(1).max(100),
|
|
69
|
+
unread: z.boolean().default(false).describe('Set to true to mark as unread instead'),
|
|
70
|
+
});
|
|
71
|
+
const updateCallCategoriesSchema = z.object({
|
|
72
|
+
categories: z.array(z.string()).max(35),
|
|
73
|
+
});
|
|
74
|
+
const updateCallMetadataSchema = z.object({
|
|
75
|
+
call_id: z.string(),
|
|
76
|
+
category: z.string().max(255).optional().describe('Call category (max 255 chars)'),
|
|
77
|
+
tags: z.array(z.string()).optional().describe('Call tags'),
|
|
78
|
+
unread: z.boolean().optional().describe('Mark call as read (false) or unread (true)'),
|
|
79
|
+
});
|
|
80
|
+
export function createCallTools(client) {
|
|
81
|
+
return [
|
|
82
|
+
// list_calls
|
|
83
|
+
{
|
|
84
|
+
name: 'list_calls',
|
|
85
|
+
description: 'List all calls with comprehensive filtering options.\n\n**Cross-User Access:** Use `target_user_id` to impersonate another user (requires admin/platform permissions). Use `scope` to expand view beyond your own resources.',
|
|
86
|
+
inputSchema: {
|
|
87
|
+
type: 'object',
|
|
88
|
+
properties: {
|
|
89
|
+
target_user_id: { type: 'string', description: 'Impersonate user to see their calls (requires admin/platform permissions)' },
|
|
90
|
+
scope: { type: 'string', enum: ['user', 'organization', 'whitelabel', 'platform'], description: 'Expand view scope (admin only)' },
|
|
91
|
+
visibility: { type: 'array', items: { type: 'string', enum: ['user', 'organization', 'whitelabel', 'platform'] }, description: 'Filter by visibility levels' },
|
|
92
|
+
agent_id: { type: 'array', items: { type: 'string' }, description: 'Filter by agent IDs' },
|
|
93
|
+
contact_id: { type: 'array', items: { type: 'string' }, description: 'Filter by contact IDs' },
|
|
94
|
+
status: { type: 'array', items: { type: 'string' }, description: 'Filter by call status' },
|
|
95
|
+
call_type: { type: 'array', items: { type: 'string' }, description: 'Filter by call type' },
|
|
96
|
+
recipient_number: { type: 'string', description: 'Filter by recipient phone number' },
|
|
97
|
+
system_number: { type: 'string', description: 'Filter by system phone number' },
|
|
98
|
+
start_time: { type: 'string', description: 'Start of time range (ISO format)' },
|
|
99
|
+
end_time: { type: 'string', description: 'End of time range (ISO format)' },
|
|
100
|
+
min_duration: { type: 'integer', description: 'Minimum call duration in seconds' },
|
|
101
|
+
max_duration: { type: 'integer', description: 'Maximum call duration in seconds' },
|
|
102
|
+
search: { type: 'string', description: 'Search in phone numbers and contact names' },
|
|
103
|
+
sort_by: {
|
|
104
|
+
type: 'string',
|
|
105
|
+
enum: ['agent_name', 'contact_name', 'duration', 'status', 'created_at'],
|
|
106
|
+
default: 'created_at',
|
|
107
|
+
},
|
|
108
|
+
sort_direction: { type: 'string', enum: ['ASC', 'DESC'], default: 'DESC' },
|
|
109
|
+
limit: { type: 'integer', minimum: 1, maximum: 100, default: 30 },
|
|
110
|
+
skip: { type: 'integer', minimum: 0, default: 0 },
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
handler: async (args) => {
|
|
114
|
+
const parsed = listCallsSchema.safeParse(args);
|
|
115
|
+
if (!parsed.success) {
|
|
116
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
117
|
+
}
|
|
118
|
+
const result = await client.listCalls(parsed.data);
|
|
119
|
+
if (!result.success || isApiError(result)) {
|
|
120
|
+
return formatApiError(result, 'list_calls');
|
|
121
|
+
}
|
|
122
|
+
const calls = result.data || [];
|
|
123
|
+
return createSuccess({
|
|
124
|
+
count: calls.length,
|
|
125
|
+
calls,
|
|
126
|
+
filters_applied: parsed.data,
|
|
127
|
+
});
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
// initiate_call
|
|
131
|
+
{
|
|
132
|
+
name: 'initiate_call',
|
|
133
|
+
description: 'Initiate a new outbound call. Requires either to_number or to_contact_id for recipient, and either from_number or from_number_id for outbound line.',
|
|
134
|
+
inputSchema: {
|
|
135
|
+
type: 'object',
|
|
136
|
+
properties: {
|
|
137
|
+
// to: recipient
|
|
138
|
+
to_number: { type: 'string', description: 'Phone number to call in E.164 format (+4916093290000)' },
|
|
139
|
+
to_contact_id: { type: 'string', description: 'Existing contact ID to call (alternative to to_number)' },
|
|
140
|
+
to_contact_details: {
|
|
141
|
+
type: 'object',
|
|
142
|
+
description: 'Contact details to upsert when calling',
|
|
143
|
+
properties: {
|
|
144
|
+
first_name: { type: 'string' },
|
|
145
|
+
last_name: { type: 'string' },
|
|
146
|
+
company: { type: 'string' },
|
|
147
|
+
email: { type: 'string' },
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
// from: origination
|
|
151
|
+
from_agent_id: { type: 'string', description: 'Agent UUID that will handle the call' },
|
|
152
|
+
from_number: { type: 'string', description: 'Outbound phone number in E.164 format' },
|
|
153
|
+
from_number_id: { type: 'string', description: 'ID of the outbound number to use (alternative to from_number)' },
|
|
154
|
+
// call options
|
|
155
|
+
dynamic_variables: { type: 'object', description: 'Dynamic variables passed to agent and upserted to contact' },
|
|
156
|
+
custom_data: { type: 'object', description: 'Arbitrary JSON data stored with the call' },
|
|
157
|
+
tags: { type: 'array', items: { type: 'string' }, description: 'Tags for categorizing the call' },
|
|
158
|
+
enable_mailbox_detection: { type: 'boolean', description: 'Enable answering machine detection (default: true)', default: true },
|
|
159
|
+
prompt_override: { type: 'string', description: 'Override agent prompt for this call (Pipecat voice_backend only)' },
|
|
160
|
+
},
|
|
161
|
+
required: ['from_agent_id'],
|
|
162
|
+
},
|
|
163
|
+
handler: async (args) => {
|
|
164
|
+
const parsed = initiateCallSchema.safeParse(args);
|
|
165
|
+
if (!parsed.success) {
|
|
166
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
167
|
+
}
|
|
168
|
+
const validationError = validateUUID(parsed.data.from_agent_id, 'from_agent_id');
|
|
169
|
+
if (validationError)
|
|
170
|
+
return validationError;
|
|
171
|
+
// Validate to: either to_number or to_contact_id required
|
|
172
|
+
if (!parsed.data.to_number && !parsed.data.to_contact_id) {
|
|
173
|
+
return createError('Either to_number or to_contact_id must be provided');
|
|
174
|
+
}
|
|
175
|
+
// Validate from: either from_number or from_number_id required
|
|
176
|
+
if (!parsed.data.from_number && !parsed.data.from_number_id) {
|
|
177
|
+
return createError('Either from_number or from_number_id must be provided');
|
|
178
|
+
}
|
|
179
|
+
// Build nested structure for backend
|
|
180
|
+
const callData = {
|
|
181
|
+
to: {
|
|
182
|
+
...(parsed.data.to_number && { number: parsed.data.to_number }),
|
|
183
|
+
...(parsed.data.to_contact_id && { contact_id: parsed.data.to_contact_id }),
|
|
184
|
+
...(parsed.data.to_contact_details && { contact_details: parsed.data.to_contact_details }),
|
|
185
|
+
},
|
|
186
|
+
from: {
|
|
187
|
+
agent_id: parsed.data.from_agent_id,
|
|
188
|
+
...(parsed.data.from_number && { number: parsed.data.from_number }),
|
|
189
|
+
...(parsed.data.from_number_id && { number_id: parsed.data.from_number_id }),
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
if (parsed.data.dynamic_variables)
|
|
193
|
+
callData.dynamic_variables = parsed.data.dynamic_variables;
|
|
194
|
+
if (parsed.data.custom_data)
|
|
195
|
+
callData.custom_data = parsed.data.custom_data;
|
|
196
|
+
if (parsed.data.tags)
|
|
197
|
+
callData.tags = parsed.data.tags;
|
|
198
|
+
if (parsed.data.enable_mailbox_detection !== undefined)
|
|
199
|
+
callData.enable_mailbox_detection = parsed.data.enable_mailbox_detection;
|
|
200
|
+
if (parsed.data.prompt_override)
|
|
201
|
+
callData.prompt_override = parsed.data.prompt_override;
|
|
202
|
+
const result = await client.initiateCall(callData);
|
|
203
|
+
if (!result.success || isApiError(result)) {
|
|
204
|
+
return formatApiError(result, 'initiate_call', 'Check if agent_id is valid and agent is active');
|
|
205
|
+
}
|
|
206
|
+
return createSuccess({
|
|
207
|
+
call_id: result.data?.id,
|
|
208
|
+
status: result.data?.status,
|
|
209
|
+
initiated: true,
|
|
210
|
+
to_number: parsed.data.to_number,
|
|
211
|
+
});
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
// get_call_details
|
|
215
|
+
{
|
|
216
|
+
name: 'get_call_details',
|
|
217
|
+
description: 'Get detailed information about a specific call',
|
|
218
|
+
inputSchema: {
|
|
219
|
+
type: 'object',
|
|
220
|
+
properties: {
|
|
221
|
+
call_id: { type: 'string', description: 'UUID of the call' },
|
|
222
|
+
target_user_id: { type: 'string', description: 'Impersonate user (requires admin/platform permissions)' },
|
|
223
|
+
},
|
|
224
|
+
required: ['call_id'],
|
|
225
|
+
},
|
|
226
|
+
handler: async (args) => {
|
|
227
|
+
const parsed = getCallDetailsSchema.safeParse(args);
|
|
228
|
+
if (!parsed.success) {
|
|
229
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
230
|
+
}
|
|
231
|
+
const validationError = validateUUID(parsed.data.call_id, 'call_id');
|
|
232
|
+
if (validationError)
|
|
233
|
+
return validationError;
|
|
234
|
+
const result = await client.getCallDetails(parsed.data.call_id, parsed.data.target_user_id);
|
|
235
|
+
if (!result.success || isApiError(result)) {
|
|
236
|
+
return formatApiError(result, 'get_call_details', 'Check if call_id is correct using list_calls');
|
|
237
|
+
}
|
|
238
|
+
return result;
|
|
239
|
+
},
|
|
240
|
+
},
|
|
241
|
+
// delete_call
|
|
242
|
+
{
|
|
243
|
+
name: 'delete_call',
|
|
244
|
+
description: 'Delete a call or just its memory',
|
|
245
|
+
inputSchema: {
|
|
246
|
+
type: 'object',
|
|
247
|
+
properties: {
|
|
248
|
+
call_id: { type: 'string', description: 'UUID of the call' },
|
|
249
|
+
memory_only: {
|
|
250
|
+
type: 'boolean',
|
|
251
|
+
description: 'If true, only delete memory, keep the call',
|
|
252
|
+
default: false,
|
|
253
|
+
},
|
|
254
|
+
},
|
|
255
|
+
required: ['call_id'],
|
|
256
|
+
},
|
|
257
|
+
handler: async (args) => {
|
|
258
|
+
const parsed = deleteCallSchema.safeParse(args);
|
|
259
|
+
if (!parsed.success) {
|
|
260
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
261
|
+
}
|
|
262
|
+
const validationError = validateUUID(parsed.data.call_id, 'call_id');
|
|
263
|
+
if (validationError)
|
|
264
|
+
return validationError;
|
|
265
|
+
const result = await client.deleteCall(parsed.data.call_id, parsed.data.memory_only);
|
|
266
|
+
if (!result.success || isApiError(result)) {
|
|
267
|
+
return formatApiError(result, 'delete_call');
|
|
268
|
+
}
|
|
269
|
+
return createSuccess({
|
|
270
|
+
call_id: parsed.data.call_id,
|
|
271
|
+
deleted: true,
|
|
272
|
+
memory_only: parsed.data.memory_only,
|
|
273
|
+
});
|
|
274
|
+
},
|
|
275
|
+
},
|
|
276
|
+
// submit_call_feedback
|
|
277
|
+
{
|
|
278
|
+
name: 'submit_call_feedback',
|
|
279
|
+
description: 'Submit feedback for a call',
|
|
280
|
+
inputSchema: {
|
|
281
|
+
type: 'object',
|
|
282
|
+
properties: {
|
|
283
|
+
call_id: { type: 'string', description: 'UUID of the call' },
|
|
284
|
+
rating: { type: 'string', enum: ['like', 'dislike'], description: 'Rating for the call' },
|
|
285
|
+
note: { type: 'string', description: 'Optional feedback note' },
|
|
286
|
+
},
|
|
287
|
+
required: ['call_id', 'rating'],
|
|
288
|
+
},
|
|
289
|
+
handler: async (args) => {
|
|
290
|
+
const parsed = submitCallFeedbackSchema.safeParse(args);
|
|
291
|
+
if (!parsed.success) {
|
|
292
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
293
|
+
}
|
|
294
|
+
const validationError = validateUUID(parsed.data.call_id, 'call_id');
|
|
295
|
+
if (validationError)
|
|
296
|
+
return validationError;
|
|
297
|
+
const result = await client.submitCallFeedback(parsed.data.call_id, parsed.data.rating, parsed.data.note);
|
|
298
|
+
if (!result.success || isApiError(result)) {
|
|
299
|
+
return formatApiError(result, 'submit_call_feedback');
|
|
300
|
+
}
|
|
301
|
+
return createSuccess({
|
|
302
|
+
call_id: parsed.data.call_id,
|
|
303
|
+
rating: parsed.data.rating,
|
|
304
|
+
submitted: true,
|
|
305
|
+
});
|
|
306
|
+
},
|
|
307
|
+
},
|
|
308
|
+
// get_call_feedback
|
|
309
|
+
{
|
|
310
|
+
name: 'get_call_feedback',
|
|
311
|
+
description: 'Get feedback for a call',
|
|
312
|
+
inputSchema: {
|
|
313
|
+
type: 'object',
|
|
314
|
+
properties: {
|
|
315
|
+
call_id: { type: 'string', description: 'UUID of the call' },
|
|
316
|
+
},
|
|
317
|
+
required: ['call_id'],
|
|
318
|
+
},
|
|
319
|
+
handler: async (args) => {
|
|
320
|
+
const parsed = getCallFeedbackSchema.safeParse(args);
|
|
321
|
+
if (!parsed.success) {
|
|
322
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
323
|
+
}
|
|
324
|
+
const validationError = validateUUID(parsed.data.call_id, 'call_id');
|
|
325
|
+
if (validationError)
|
|
326
|
+
return validationError;
|
|
327
|
+
const result = await client.getCallFeedback(parsed.data.call_id);
|
|
328
|
+
if (!result.success || isApiError(result)) {
|
|
329
|
+
return formatApiError(result, 'get_call_feedback');
|
|
330
|
+
}
|
|
331
|
+
return result;
|
|
332
|
+
},
|
|
333
|
+
},
|
|
334
|
+
// cleanup_expired_calls
|
|
335
|
+
{
|
|
336
|
+
name: 'cleanup_expired_calls',
|
|
337
|
+
description: 'Cleanup expired calls (Admin operation)',
|
|
338
|
+
inputSchema: {
|
|
339
|
+
type: 'object',
|
|
340
|
+
properties: {},
|
|
341
|
+
},
|
|
342
|
+
handler: async () => {
|
|
343
|
+
const result = await client.cleanupExpiredCalls();
|
|
344
|
+
if (!result.success || isApiError(result)) {
|
|
345
|
+
return formatApiError(result, 'cleanup_expired_calls');
|
|
346
|
+
}
|
|
347
|
+
return createSuccess({
|
|
348
|
+
cleaned_up: true,
|
|
349
|
+
data: result.data,
|
|
350
|
+
});
|
|
351
|
+
},
|
|
352
|
+
},
|
|
353
|
+
// ==================== PHASE 1: NEW TOOLS ====================
|
|
354
|
+
// mark_calls_as_read
|
|
355
|
+
{
|
|
356
|
+
name: 'mark_calls_as_read',
|
|
357
|
+
description: 'Mark multiple calls as read (or unread) in bulk. Useful for managing unread call notifications.',
|
|
358
|
+
inputSchema: {
|
|
359
|
+
type: 'object',
|
|
360
|
+
properties: {
|
|
361
|
+
call_ids: {
|
|
362
|
+
type: 'array',
|
|
363
|
+
items: { type: 'string' },
|
|
364
|
+
description: 'Array of call UUIDs (max 100)',
|
|
365
|
+
minItems: 1,
|
|
366
|
+
maxItems: 100,
|
|
367
|
+
},
|
|
368
|
+
unread: {
|
|
369
|
+
type: 'boolean',
|
|
370
|
+
description: 'Set to true to mark as unread instead of read',
|
|
371
|
+
default: false,
|
|
372
|
+
},
|
|
373
|
+
},
|
|
374
|
+
required: ['call_ids'],
|
|
375
|
+
},
|
|
376
|
+
handler: async (args) => {
|
|
377
|
+
const parsed = markCallsAsReadSchema.safeParse(args);
|
|
378
|
+
if (!parsed.success) {
|
|
379
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
380
|
+
}
|
|
381
|
+
for (const call_id of parsed.data.call_ids) {
|
|
382
|
+
const validationError = validateUUID(call_id, 'call_id');
|
|
383
|
+
if (validationError)
|
|
384
|
+
return validationError;
|
|
385
|
+
}
|
|
386
|
+
const result = await client.markCallsAsRead(parsed.data.call_ids, parsed.data.unread);
|
|
387
|
+
if (!result.success || isApiError(result)) {
|
|
388
|
+
return formatApiError(result, 'mark_calls_as_read');
|
|
389
|
+
}
|
|
390
|
+
return createSuccess({
|
|
391
|
+
marked: true,
|
|
392
|
+
unread: parsed.data.unread,
|
|
393
|
+
count: parsed.data.call_ids.length,
|
|
394
|
+
result: result.data,
|
|
395
|
+
});
|
|
396
|
+
},
|
|
397
|
+
},
|
|
398
|
+
// list_call_categories
|
|
399
|
+
{
|
|
400
|
+
name: 'list_call_categories',
|
|
401
|
+
description: 'List all call categories defined for the organization.',
|
|
402
|
+
inputSchema: {
|
|
403
|
+
type: 'object',
|
|
404
|
+
properties: {},
|
|
405
|
+
},
|
|
406
|
+
handler: async () => {
|
|
407
|
+
const result = await client.listCallCategories();
|
|
408
|
+
if (!result.success || isApiError(result)) {
|
|
409
|
+
return formatApiError(result, 'list_call_categories');
|
|
410
|
+
}
|
|
411
|
+
return result;
|
|
412
|
+
},
|
|
413
|
+
},
|
|
414
|
+
// update_call_categories
|
|
415
|
+
{
|
|
416
|
+
name: 'update_call_categories',
|
|
417
|
+
description: 'Update the organization-level call categories list. Max 35 categories, each max 100 chars.',
|
|
418
|
+
inputSchema: {
|
|
419
|
+
type: 'object',
|
|
420
|
+
properties: {
|
|
421
|
+
categories: {
|
|
422
|
+
type: 'array',
|
|
423
|
+
items: { type: 'string', maxLength: 100 },
|
|
424
|
+
description: 'Complete list of categories (replaces existing)',
|
|
425
|
+
maxItems: 35,
|
|
426
|
+
},
|
|
427
|
+
},
|
|
428
|
+
required: ['categories'],
|
|
429
|
+
},
|
|
430
|
+
handler: async (args) => {
|
|
431
|
+
const parsed = updateCallCategoriesSchema.safeParse(args);
|
|
432
|
+
if (!parsed.success) {
|
|
433
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
434
|
+
}
|
|
435
|
+
const result = await client.updateCallCategories(parsed.data.categories);
|
|
436
|
+
if (!result.success || isApiError(result)) {
|
|
437
|
+
return formatApiError(result, 'update_call_categories');
|
|
438
|
+
}
|
|
439
|
+
return createSuccess({
|
|
440
|
+
categories_updated: true,
|
|
441
|
+
categories: parsed.data.categories,
|
|
442
|
+
result: result.data,
|
|
443
|
+
});
|
|
444
|
+
},
|
|
445
|
+
},
|
|
446
|
+
// update_call_metadata
|
|
447
|
+
{
|
|
448
|
+
name: 'update_call_metadata',
|
|
449
|
+
description: 'Update call metadata including category, tags, and read status. Provide only the fields you want to update.',
|
|
450
|
+
inputSchema: {
|
|
451
|
+
type: 'object',
|
|
452
|
+
properties: {
|
|
453
|
+
call_id: {
|
|
454
|
+
type: 'string',
|
|
455
|
+
description: 'UUID of the call',
|
|
456
|
+
pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$',
|
|
457
|
+
},
|
|
458
|
+
category: {
|
|
459
|
+
type: 'string',
|
|
460
|
+
maxLength: 255,
|
|
461
|
+
description: 'Call category (e.g., "Support", "Sales", "Rückruf")',
|
|
462
|
+
},
|
|
463
|
+
tags: {
|
|
464
|
+
type: 'array',
|
|
465
|
+
items: { type: 'string' },
|
|
466
|
+
description: 'Tags for categorizing the call',
|
|
467
|
+
},
|
|
468
|
+
unread: {
|
|
469
|
+
type: 'boolean',
|
|
470
|
+
description: 'Mark call as unread (true) or read (false)',
|
|
471
|
+
},
|
|
472
|
+
},
|
|
473
|
+
required: ['call_id'],
|
|
474
|
+
},
|
|
475
|
+
handler: async (args) => {
|
|
476
|
+
const parsed = updateCallMetadataSchema.safeParse(args);
|
|
477
|
+
if (!parsed.success) {
|
|
478
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
479
|
+
}
|
|
480
|
+
const validationError = validateUUID(parsed.data.call_id, 'call_id');
|
|
481
|
+
if (validationError)
|
|
482
|
+
return validationError;
|
|
483
|
+
// Build metadata object with only provided fields
|
|
484
|
+
const metadata = {};
|
|
485
|
+
if (parsed.data.category !== undefined)
|
|
486
|
+
metadata.category = parsed.data.category;
|
|
487
|
+
if (parsed.data.tags !== undefined)
|
|
488
|
+
metadata.tags = parsed.data.tags;
|
|
489
|
+
if (parsed.data.unread !== undefined)
|
|
490
|
+
metadata.unread = parsed.data.unread;
|
|
491
|
+
if (Object.keys(metadata).length === 0) {
|
|
492
|
+
return createError('No fields to update', 'Provide at least one of: category, tags, unread');
|
|
493
|
+
}
|
|
494
|
+
const result = await client.updateCallMetadata(parsed.data.call_id, metadata);
|
|
495
|
+
if (!result.success || isApiError(result)) {
|
|
496
|
+
return formatApiError(result, 'update_call_metadata');
|
|
497
|
+
}
|
|
498
|
+
return createSuccess({
|
|
499
|
+
call_id: parsed.data.call_id,
|
|
500
|
+
updated: true,
|
|
501
|
+
updated_fields: Object.keys(metadata),
|
|
502
|
+
result: result.data,
|
|
503
|
+
});
|
|
504
|
+
},
|
|
505
|
+
},
|
|
506
|
+
];
|
|
507
|
+
}
|
|
508
|
+
//# sourceMappingURL=calls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calls.js","sourceRoot":"","sources":["../../src/tools/calls.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Campaign Management Tools
|
|
3
|
+
* 10 tools for managing dalvon.ai outbound campaigns
|
|
4
|
+
*/
|
|
5
|
+
import type { DalvonClient } from '../clients/dalvon.js';
|
|
6
|
+
import type { McpTool } from '../types/index.js';
|
|
7
|
+
export declare function createCampaignTools(client: DalvonClient): McpTool[];
|
|
8
|
+
//# sourceMappingURL=campaigns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaigns.d.ts","sourceRoot":"","sources":["../../src/tools/campaigns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,mBAAmB,CAAC;AAwE/D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,EAAE,CAigBnE"}
|