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,518 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Document Management Tools
|
|
3
|
+
* 9 tools for managing documents in knowledge collections
|
|
4
|
+
* Phase 5 additions: bulk_delete_documents, search_knowledge
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { validateUUID, validateUUIDs, validatePagination } from '../utils/validation.js';
|
|
8
|
+
import { formatApiError, createError, createSuccess, isApiError } from '../utils/errors.js';
|
|
9
|
+
import { logger } from '../utils/logger.js';
|
|
10
|
+
import * as fs from 'fs/promises';
|
|
11
|
+
import * as path from 'path';
|
|
12
|
+
// Zod Schemas
|
|
13
|
+
const listDocumentsSchema = z.object({
|
|
14
|
+
collection_id: z.string(),
|
|
15
|
+
page: z.number().min(1).default(1),
|
|
16
|
+
page_size: z.number().min(1).max(100).default(20),
|
|
17
|
+
name: z.string().optional(),
|
|
18
|
+
tags: z.array(z.string()).optional(),
|
|
19
|
+
});
|
|
20
|
+
const getDocumentSchema = z.object({
|
|
21
|
+
collection_id: z.string(),
|
|
22
|
+
document_id: z.string(),
|
|
23
|
+
});
|
|
24
|
+
const updateDocumentSchema = z.object({
|
|
25
|
+
collection_id: z.string(),
|
|
26
|
+
document_id: z.string(),
|
|
27
|
+
name: z.string().optional(),
|
|
28
|
+
description: z.string().optional(),
|
|
29
|
+
tags: z.array(z.string()).optional(),
|
|
30
|
+
});
|
|
31
|
+
const deleteDocumentSchema = z.object({
|
|
32
|
+
collection_id: z.string(),
|
|
33
|
+
document_id: z.string(),
|
|
34
|
+
});
|
|
35
|
+
const moveDocumentsSchema = z.object({
|
|
36
|
+
target_collection_id: z.string(),
|
|
37
|
+
document_ids: z.array(z.string()).min(1).max(100),
|
|
38
|
+
});
|
|
39
|
+
const refreshDocumentsSchema = z.object({
|
|
40
|
+
document_id: z.string().optional(),
|
|
41
|
+
platform_wide: z.boolean().default(false),
|
|
42
|
+
});
|
|
43
|
+
const bulkDeleteDocumentsSchema = z.object({
|
|
44
|
+
collection_id: z.string(),
|
|
45
|
+
document_ids: z.array(z.string()).min(1).max(100),
|
|
46
|
+
});
|
|
47
|
+
const searchKnowledgeSchema = z.object({
|
|
48
|
+
collection_id: z.string(),
|
|
49
|
+
query: z.string().min(1),
|
|
50
|
+
top_k: z.number().min(1).max(100).optional().default(10),
|
|
51
|
+
threshold: z.number().min(0).max(1).optional(),
|
|
52
|
+
filters: z.record(z.unknown()).optional(),
|
|
53
|
+
});
|
|
54
|
+
const createDocumentsSchema = z.object({
|
|
55
|
+
collection_id: z.string(),
|
|
56
|
+
file_paths: z.array(z.string()).min(1).max(50),
|
|
57
|
+
names: z.array(z.string()).optional(),
|
|
58
|
+
descriptions: z.array(z.string()).optional(),
|
|
59
|
+
tags: z.array(z.string()).optional(),
|
|
60
|
+
});
|
|
61
|
+
const ALLOWED_FILE_TYPES = new Set(['.pdf', '.txt', '.html', '.doc', '.docx']);
|
|
62
|
+
const MIME_TYPES = {
|
|
63
|
+
'.pdf': 'application/pdf',
|
|
64
|
+
'.txt': 'text/plain',
|
|
65
|
+
'.html': 'text/html',
|
|
66
|
+
'.doc': 'application/msword',
|
|
67
|
+
'.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
68
|
+
};
|
|
69
|
+
export function createDocumentTools(client) {
|
|
70
|
+
return [
|
|
71
|
+
// list_documents
|
|
72
|
+
{
|
|
73
|
+
name: 'list_documents',
|
|
74
|
+
description: 'List all documents in a collection with filtering and pagination',
|
|
75
|
+
inputSchema: {
|
|
76
|
+
type: 'object',
|
|
77
|
+
properties: {
|
|
78
|
+
collection_id: { type: 'string', description: 'Collection UUID' },
|
|
79
|
+
page: { type: 'integer', default: 1, minimum: 1, description: 'Page number (1-based)' },
|
|
80
|
+
page_size: { type: 'integer', default: 20, minimum: 1, maximum: 100, description: 'Items per page' },
|
|
81
|
+
name: { type: 'string', description: 'Filter by document name' },
|
|
82
|
+
tags: { type: 'array', items: { type: 'string' }, description: 'Filter by tags' },
|
|
83
|
+
},
|
|
84
|
+
required: ['collection_id'],
|
|
85
|
+
},
|
|
86
|
+
handler: async (args) => {
|
|
87
|
+
const parsed = listDocumentsSchema.safeParse(args);
|
|
88
|
+
if (!parsed.success) {
|
|
89
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
90
|
+
}
|
|
91
|
+
const validationError = validateUUID(parsed.data.collection_id, 'collection_id');
|
|
92
|
+
if (validationError)
|
|
93
|
+
return validationError;
|
|
94
|
+
const paginationError = validatePagination(parsed.data.page, parsed.data.page_size);
|
|
95
|
+
if (paginationError)
|
|
96
|
+
return createError(paginationError);
|
|
97
|
+
const params = {
|
|
98
|
+
page: parsed.data.page,
|
|
99
|
+
page_size: parsed.data.page_size,
|
|
100
|
+
};
|
|
101
|
+
if (parsed.data.name)
|
|
102
|
+
params.name = parsed.data.name;
|
|
103
|
+
if (parsed.data.tags)
|
|
104
|
+
params.tags = parsed.data.tags;
|
|
105
|
+
logger.info(`Listing documents in collection: ${parsed.data.collection_id}`);
|
|
106
|
+
const result = await client.listDocuments(parsed.data.collection_id, params);
|
|
107
|
+
if (!result.success || isApiError(result)) {
|
|
108
|
+
return formatApiError(result, 'list_documents');
|
|
109
|
+
}
|
|
110
|
+
const data = result.data;
|
|
111
|
+
logger.info(`Found ${data?.total || 0} documents`);
|
|
112
|
+
return createSuccess({
|
|
113
|
+
total: data?.total || 0,
|
|
114
|
+
page: data?.page || parsed.data.page,
|
|
115
|
+
page_size: data?.page_size || parsed.data.page_size,
|
|
116
|
+
document_count: data?.items?.length || 0,
|
|
117
|
+
documents: data?.items || [],
|
|
118
|
+
});
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
// get_document
|
|
122
|
+
{
|
|
123
|
+
name: 'get_document',
|
|
124
|
+
description: 'Get details of a specific document with download URL',
|
|
125
|
+
inputSchema: {
|
|
126
|
+
type: 'object',
|
|
127
|
+
properties: {
|
|
128
|
+
collection_id: { type: 'string', description: 'Collection UUID' },
|
|
129
|
+
document_id: { type: 'string', description: 'Document UUID' },
|
|
130
|
+
},
|
|
131
|
+
required: ['collection_id', 'document_id'],
|
|
132
|
+
},
|
|
133
|
+
handler: async (args) => {
|
|
134
|
+
const parsed = getDocumentSchema.safeParse(args);
|
|
135
|
+
if (!parsed.success) {
|
|
136
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
137
|
+
}
|
|
138
|
+
const collectionValidation = validateUUID(parsed.data.collection_id, 'collection_id');
|
|
139
|
+
if (collectionValidation)
|
|
140
|
+
return collectionValidation;
|
|
141
|
+
const documentValidation = validateUUID(parsed.data.document_id, 'document_id');
|
|
142
|
+
if (documentValidation)
|
|
143
|
+
return documentValidation;
|
|
144
|
+
logger.info(`Getting document: ${parsed.data.document_id} from collection: ${parsed.data.collection_id}`);
|
|
145
|
+
const result = await client.getDocument(parsed.data.collection_id, parsed.data.document_id);
|
|
146
|
+
if (!result.success || isApiError(result)) {
|
|
147
|
+
return formatApiError(result, 'get_document');
|
|
148
|
+
}
|
|
149
|
+
logger.info(`Document retrieved: ${result.data?.name}`);
|
|
150
|
+
return result;
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
// update_document
|
|
154
|
+
{
|
|
155
|
+
name: 'update_document',
|
|
156
|
+
description: 'Update document metadata (name, description, tags)',
|
|
157
|
+
inputSchema: {
|
|
158
|
+
type: 'object',
|
|
159
|
+
properties: {
|
|
160
|
+
collection_id: { type: 'string', description: 'Collection UUID' },
|
|
161
|
+
document_id: { type: 'string', description: 'Document UUID' },
|
|
162
|
+
name: { type: 'string', description: 'New document name' },
|
|
163
|
+
description: { type: 'string', description: 'New description' },
|
|
164
|
+
tags: { type: 'array', items: { type: 'string' }, description: 'New tags' },
|
|
165
|
+
},
|
|
166
|
+
required: ['collection_id', 'document_id'],
|
|
167
|
+
},
|
|
168
|
+
handler: async (args) => {
|
|
169
|
+
const parsed = updateDocumentSchema.safeParse(args);
|
|
170
|
+
if (!parsed.success) {
|
|
171
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
172
|
+
}
|
|
173
|
+
const collectionValidation = validateUUID(parsed.data.collection_id, 'collection_id');
|
|
174
|
+
if (collectionValidation)
|
|
175
|
+
return collectionValidation;
|
|
176
|
+
const documentValidation = validateUUID(parsed.data.document_id, 'document_id');
|
|
177
|
+
if (documentValidation)
|
|
178
|
+
return documentValidation;
|
|
179
|
+
const updateData = {};
|
|
180
|
+
if (parsed.data.name)
|
|
181
|
+
updateData.name = parsed.data.name;
|
|
182
|
+
if (parsed.data.description)
|
|
183
|
+
updateData.description = parsed.data.description;
|
|
184
|
+
if (parsed.data.tags)
|
|
185
|
+
updateData.tags = parsed.data.tags;
|
|
186
|
+
if (Object.keys(updateData).length === 0) {
|
|
187
|
+
return createError('No fields to update', 'Provide name, description, or tags to update');
|
|
188
|
+
}
|
|
189
|
+
logger.info(`Updating document: ${parsed.data.document_id}`);
|
|
190
|
+
const result = await client.updateDocument(parsed.data.collection_id, parsed.data.document_id, updateData);
|
|
191
|
+
if (!result.success || isApiError(result)) {
|
|
192
|
+
return formatApiError(result, 'update_document');
|
|
193
|
+
}
|
|
194
|
+
logger.info(`Document updated: ${parsed.data.document_id}`);
|
|
195
|
+
return createSuccess({
|
|
196
|
+
document_id: parsed.data.document_id,
|
|
197
|
+
updated_fields: Object.keys(updateData),
|
|
198
|
+
});
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
// delete_document
|
|
202
|
+
{
|
|
203
|
+
name: 'delete_document',
|
|
204
|
+
description: 'Delete a document from collection (permanent)',
|
|
205
|
+
inputSchema: {
|
|
206
|
+
type: 'object',
|
|
207
|
+
properties: {
|
|
208
|
+
collection_id: { type: 'string', description: 'Collection UUID' },
|
|
209
|
+
document_id: { type: 'string', description: 'Document UUID' },
|
|
210
|
+
},
|
|
211
|
+
required: ['collection_id', 'document_id'],
|
|
212
|
+
},
|
|
213
|
+
handler: async (args) => {
|
|
214
|
+
const parsed = deleteDocumentSchema.safeParse(args);
|
|
215
|
+
if (!parsed.success) {
|
|
216
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
217
|
+
}
|
|
218
|
+
const collectionValidation = validateUUID(parsed.data.collection_id, 'collection_id');
|
|
219
|
+
if (collectionValidation)
|
|
220
|
+
return collectionValidation;
|
|
221
|
+
const documentValidation = validateUUID(parsed.data.document_id, 'document_id');
|
|
222
|
+
if (documentValidation)
|
|
223
|
+
return documentValidation;
|
|
224
|
+
logger.warn(`DELETING document: ${parsed.data.document_id} from collection: ${parsed.data.collection_id}`);
|
|
225
|
+
const result = await client.deleteDocument(parsed.data.collection_id, parsed.data.document_id);
|
|
226
|
+
if (!result.success || isApiError(result)) {
|
|
227
|
+
return formatApiError(result, 'delete_document');
|
|
228
|
+
}
|
|
229
|
+
logger.warn(`Document permanently deleted: ${parsed.data.document_id}`);
|
|
230
|
+
return createSuccess({
|
|
231
|
+
document_id: parsed.data.document_id,
|
|
232
|
+
deleted: true,
|
|
233
|
+
warning: 'Document permanently deleted - cannot be restored',
|
|
234
|
+
});
|
|
235
|
+
},
|
|
236
|
+
},
|
|
237
|
+
// bulk_delete_documents (Phase 5)
|
|
238
|
+
{
|
|
239
|
+
name: 'bulk_delete_documents',
|
|
240
|
+
description: `Delete multiple documents from a collection at once.
|
|
241
|
+
|
|
242
|
+
**Warning:** This permanently deletes all specified documents and cannot be undone.
|
|
243
|
+
|
|
244
|
+
Use this for:
|
|
245
|
+
- Cleaning up old/unused documents
|
|
246
|
+
- Removing duplicates
|
|
247
|
+
- Batch cleanup operations
|
|
248
|
+
|
|
249
|
+
Maximum 100 documents per request.`,
|
|
250
|
+
inputSchema: {
|
|
251
|
+
type: 'object',
|
|
252
|
+
properties: {
|
|
253
|
+
collection_id: { type: 'string', description: 'Collection UUID' },
|
|
254
|
+
document_ids: {
|
|
255
|
+
type: 'array',
|
|
256
|
+
items: { type: 'string' },
|
|
257
|
+
description: 'Document UUIDs to delete (max 100)',
|
|
258
|
+
},
|
|
259
|
+
},
|
|
260
|
+
required: ['collection_id', 'document_ids'],
|
|
261
|
+
},
|
|
262
|
+
handler: async (args) => {
|
|
263
|
+
const parsed = bulkDeleteDocumentsSchema.safeParse(args);
|
|
264
|
+
if (!parsed.success) {
|
|
265
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
266
|
+
}
|
|
267
|
+
const collectionValidation = validateUUID(parsed.data.collection_id, 'collection_id');
|
|
268
|
+
if (collectionValidation)
|
|
269
|
+
return collectionValidation;
|
|
270
|
+
const documentsValidation = validateUUIDs(parsed.data.document_ids, 'document_id');
|
|
271
|
+
if (documentsValidation)
|
|
272
|
+
return documentsValidation;
|
|
273
|
+
logger.warn(`BULK DELETING ${parsed.data.document_ids.length} documents from collection: ${parsed.data.collection_id}`);
|
|
274
|
+
const result = await client.bulkDeleteDocuments(parsed.data.collection_id, parsed.data.document_ids);
|
|
275
|
+
if (!result.success || isApiError(result)) {
|
|
276
|
+
return formatApiError(result, 'bulk_delete_documents');
|
|
277
|
+
}
|
|
278
|
+
const data = result.data;
|
|
279
|
+
logger.warn(`Bulk delete complete: deleted=${data?.deleted || parsed.data.document_ids.length}`);
|
|
280
|
+
return createSuccess({
|
|
281
|
+
collection_id: parsed.data.collection_id,
|
|
282
|
+
documents_requested: parsed.data.document_ids.length,
|
|
283
|
+
documents_deleted: data?.deleted || parsed.data.document_ids.length,
|
|
284
|
+
failed: data?.failed || 0,
|
|
285
|
+
warning: 'Documents permanently deleted - cannot be restored',
|
|
286
|
+
});
|
|
287
|
+
},
|
|
288
|
+
},
|
|
289
|
+
// search_knowledge (Phase 5)
|
|
290
|
+
{
|
|
291
|
+
name: 'search_knowledge',
|
|
292
|
+
description: `Perform semantic search across documents in a collection.
|
|
293
|
+
|
|
294
|
+
This uses vector embeddings to find the most relevant content chunks based on meaning, not just keywords.
|
|
295
|
+
|
|
296
|
+
**Parameters:**
|
|
297
|
+
- query: The search query (natural language)
|
|
298
|
+
- top_k: Number of results to return (default: 10, max: 100)
|
|
299
|
+
- threshold: Minimum similarity score (0-1, optional)
|
|
300
|
+
- filters: Additional metadata filters
|
|
301
|
+
|
|
302
|
+
Returns ranked results with relevance scores and source documents.`,
|
|
303
|
+
inputSchema: {
|
|
304
|
+
type: 'object',
|
|
305
|
+
properties: {
|
|
306
|
+
collection_id: { type: 'string', description: 'Collection UUID to search' },
|
|
307
|
+
query: { type: 'string', description: 'Search query (natural language)' },
|
|
308
|
+
top_k: { type: 'number', description: 'Number of results (default: 10, max: 100)' },
|
|
309
|
+
threshold: { type: 'number', description: 'Minimum similarity score (0-1)' },
|
|
310
|
+
filters: { type: 'object', description: 'Metadata filters for narrowing results' },
|
|
311
|
+
},
|
|
312
|
+
required: ['collection_id', 'query'],
|
|
313
|
+
},
|
|
314
|
+
handler: async (args) => {
|
|
315
|
+
const parsed = searchKnowledgeSchema.safeParse(args);
|
|
316
|
+
if (!parsed.success) {
|
|
317
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
318
|
+
}
|
|
319
|
+
const collectionValidation = validateUUID(parsed.data.collection_id, 'collection_id');
|
|
320
|
+
if (collectionValidation)
|
|
321
|
+
return collectionValidation;
|
|
322
|
+
logger.info(`Searching collection ${parsed.data.collection_id} for: "${parsed.data.query}"`);
|
|
323
|
+
const result = await client.searchKnowledge(parsed.data.collection_id, {
|
|
324
|
+
query: parsed.data.query,
|
|
325
|
+
top_k: parsed.data.top_k,
|
|
326
|
+
threshold: parsed.data.threshold,
|
|
327
|
+
filters: parsed.data.filters,
|
|
328
|
+
});
|
|
329
|
+
if (!result.success || isApiError(result)) {
|
|
330
|
+
return formatApiError(result, 'search_knowledge');
|
|
331
|
+
}
|
|
332
|
+
const data = result.data;
|
|
333
|
+
const results = (data?.results || data?.matches || []);
|
|
334
|
+
logger.info(`Search returned ${results.length} results`);
|
|
335
|
+
return createSuccess({
|
|
336
|
+
collection_id: parsed.data.collection_id,
|
|
337
|
+
query: parsed.data.query,
|
|
338
|
+
result_count: results.length,
|
|
339
|
+
results,
|
|
340
|
+
});
|
|
341
|
+
},
|
|
342
|
+
},
|
|
343
|
+
// move_documents
|
|
344
|
+
{
|
|
345
|
+
name: 'move_documents',
|
|
346
|
+
description: 'Move multiple documents to another collection',
|
|
347
|
+
inputSchema: {
|
|
348
|
+
type: 'object',
|
|
349
|
+
properties: {
|
|
350
|
+
target_collection_id: { type: 'string', description: 'Target collection UUID' },
|
|
351
|
+
document_ids: {
|
|
352
|
+
type: 'array',
|
|
353
|
+
items: { type: 'string' },
|
|
354
|
+
description: 'Document UUIDs to move (max 100)',
|
|
355
|
+
},
|
|
356
|
+
},
|
|
357
|
+
required: ['target_collection_id', 'document_ids'],
|
|
358
|
+
},
|
|
359
|
+
handler: async (args) => {
|
|
360
|
+
const parsed = moveDocumentsSchema.safeParse(args);
|
|
361
|
+
if (!parsed.success) {
|
|
362
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
363
|
+
}
|
|
364
|
+
const collectionValidation = validateUUID(parsed.data.target_collection_id, 'target_collection_id');
|
|
365
|
+
if (collectionValidation)
|
|
366
|
+
return collectionValidation;
|
|
367
|
+
const documentsValidation = validateUUIDs(parsed.data.document_ids, 'document_id');
|
|
368
|
+
if (documentsValidation)
|
|
369
|
+
return documentsValidation;
|
|
370
|
+
logger.info(`Moving ${parsed.data.document_ids.length} documents to collection: ${parsed.data.target_collection_id}`);
|
|
371
|
+
const result = await client.moveDocuments(parsed.data.target_collection_id, parsed.data.document_ids);
|
|
372
|
+
if (!result.success || isApiError(result)) {
|
|
373
|
+
return formatApiError(result, 'move_documents');
|
|
374
|
+
}
|
|
375
|
+
const data = result.data;
|
|
376
|
+
logger.info(`Moved ${data?.successful_moves || 0} documents, failed: ${data?.failed_moves || 0}, skipped: ${data?.skipped_moves || 0}`);
|
|
377
|
+
return createSuccess({
|
|
378
|
+
target_collection_id: parsed.data.target_collection_id,
|
|
379
|
+
documents_requested: parsed.data.document_ids.length,
|
|
380
|
+
successful_moves: data?.successful_moves || 0,
|
|
381
|
+
failed_moves: data?.failed_moves || 0,
|
|
382
|
+
skipped_moves: data?.skipped_moves || 0,
|
|
383
|
+
});
|
|
384
|
+
},
|
|
385
|
+
},
|
|
386
|
+
// refresh_documents
|
|
387
|
+
{
|
|
388
|
+
name: 'refresh_documents',
|
|
389
|
+
description: 'Refresh documents - re-chunk and re-embed in Pinecone',
|
|
390
|
+
inputSchema: {
|
|
391
|
+
type: 'object',
|
|
392
|
+
properties: {
|
|
393
|
+
document_id: { type: 'string', description: 'Specific document to refresh (optional)' },
|
|
394
|
+
platform_wide: {
|
|
395
|
+
type: 'boolean',
|
|
396
|
+
description: 'Refresh all documents (admin only)',
|
|
397
|
+
default: false,
|
|
398
|
+
},
|
|
399
|
+
},
|
|
400
|
+
},
|
|
401
|
+
handler: async (args) => {
|
|
402
|
+
const parsed = refreshDocumentsSchema.safeParse(args);
|
|
403
|
+
if (!parsed.success) {
|
|
404
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
405
|
+
}
|
|
406
|
+
if (parsed.data.platform_wide) {
|
|
407
|
+
logger.warn('PLATFORM-WIDE document refresh initiated (admin operation)');
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
logger.info(`Refreshing document: ${parsed.data.document_id || 'all user documents'}`);
|
|
411
|
+
}
|
|
412
|
+
const params = {};
|
|
413
|
+
if (parsed.data.document_id)
|
|
414
|
+
params.document_id = parsed.data.document_id;
|
|
415
|
+
if (parsed.data.platform_wide)
|
|
416
|
+
params.platform_wide = true;
|
|
417
|
+
const result = await client.refreshDocuments(params);
|
|
418
|
+
if (!result.success || isApiError(result)) {
|
|
419
|
+
return formatApiError(result, 'refresh_documents');
|
|
420
|
+
}
|
|
421
|
+
const data = result.data;
|
|
422
|
+
logger.info(`Refresh complete: successful=${data?.successful_refreshes || 0}, failed=${data?.failed_refreshes || 0}`);
|
|
423
|
+
return createSuccess({
|
|
424
|
+
successful_refreshes: data?.successful_refreshes || 0,
|
|
425
|
+
failed_refreshes: data?.failed_refreshes || 0,
|
|
426
|
+
total_processing_time_seconds: data?.total_processing_time_seconds || 0,
|
|
427
|
+
});
|
|
428
|
+
},
|
|
429
|
+
},
|
|
430
|
+
// create_documents (upload)
|
|
431
|
+
{
|
|
432
|
+
name: 'create_documents',
|
|
433
|
+
description: 'Upload documents to collection (PDF, TXT, DOCX, HTML)',
|
|
434
|
+
inputSchema: {
|
|
435
|
+
type: 'object',
|
|
436
|
+
properties: {
|
|
437
|
+
collection_id: { type: 'string', description: 'Target collection UUID' },
|
|
438
|
+
file_paths: {
|
|
439
|
+
type: 'array',
|
|
440
|
+
items: { type: 'string' },
|
|
441
|
+
description: 'Local file paths to upload (max 50 files)',
|
|
442
|
+
},
|
|
443
|
+
names: {
|
|
444
|
+
type: 'array',
|
|
445
|
+
items: { type: 'string' },
|
|
446
|
+
description: 'Custom names for documents (optional)',
|
|
447
|
+
},
|
|
448
|
+
descriptions: {
|
|
449
|
+
type: 'array',
|
|
450
|
+
items: { type: 'string' },
|
|
451
|
+
description: 'Document descriptions (optional)',
|
|
452
|
+
},
|
|
453
|
+
tags: {
|
|
454
|
+
type: 'array',
|
|
455
|
+
items: { type: 'string' },
|
|
456
|
+
description: 'Tags to apply to all uploaded documents (optional)',
|
|
457
|
+
},
|
|
458
|
+
},
|
|
459
|
+
required: ['collection_id', 'file_paths'],
|
|
460
|
+
},
|
|
461
|
+
handler: async (args) => {
|
|
462
|
+
const parsed = createDocumentsSchema.safeParse(args);
|
|
463
|
+
if (!parsed.success) {
|
|
464
|
+
return createError(`Invalid arguments: ${parsed.error.message}`);
|
|
465
|
+
}
|
|
466
|
+
const collectionValidation = validateUUID(parsed.data.collection_id, 'collection_id');
|
|
467
|
+
if (collectionValidation)
|
|
468
|
+
return collectionValidation;
|
|
469
|
+
logger.info(`Starting document upload to collection: ${parsed.data.collection_id}`);
|
|
470
|
+
logger.info(`Files to upload: ${parsed.data.file_paths.length}`);
|
|
471
|
+
// Validate files exist and have correct types
|
|
472
|
+
const files = [];
|
|
473
|
+
for (const filePath of parsed.data.file_paths) {
|
|
474
|
+
try {
|
|
475
|
+
await fs.access(filePath);
|
|
476
|
+
}
|
|
477
|
+
catch {
|
|
478
|
+
logger.error(`File not found: ${filePath}`);
|
|
479
|
+
return createError(`File not found: ${filePath}`);
|
|
480
|
+
}
|
|
481
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
482
|
+
if (!ALLOWED_FILE_TYPES.has(ext)) {
|
|
483
|
+
logger.error(`Unsupported file type: ${ext}`);
|
|
484
|
+
return createError(`Unsupported file type: ${ext}. Allowed: ${Array.from(ALLOWED_FILE_TYPES).join(', ')}`);
|
|
485
|
+
}
|
|
486
|
+
const content = await fs.readFile(filePath);
|
|
487
|
+
const mimeType = MIME_TYPES[ext] || 'application/octet-stream';
|
|
488
|
+
files.push({
|
|
489
|
+
name: path.basename(filePath),
|
|
490
|
+
content,
|
|
491
|
+
mimeType,
|
|
492
|
+
});
|
|
493
|
+
logger.debug(`Added file: ${path.basename(filePath)} (${content.length} bytes)`);
|
|
494
|
+
}
|
|
495
|
+
const result = await client.uploadDocuments(parsed.data.collection_id, files, {
|
|
496
|
+
names: parsed.data.names,
|
|
497
|
+
descriptions: parsed.data.descriptions,
|
|
498
|
+
tags: parsed.data.tags,
|
|
499
|
+
});
|
|
500
|
+
if (!result.success || isApiError(result)) {
|
|
501
|
+
return formatApiError(result, 'create_documents', 'Check file formats and collection permissions');
|
|
502
|
+
}
|
|
503
|
+
const data = result.data;
|
|
504
|
+
const successful = data?.successful_uploads || 0;
|
|
505
|
+
const failed = data?.failed_uploads || 0;
|
|
506
|
+
logger.info(`Upload complete: successful=${successful}, failed=${failed}`);
|
|
507
|
+
return createSuccess({
|
|
508
|
+
collection_id: parsed.data.collection_id,
|
|
509
|
+
total_uploaded: successful,
|
|
510
|
+
total_failed: failed,
|
|
511
|
+
processing_time_seconds: data?.total_processing_time_seconds || 0,
|
|
512
|
+
results: data?.results || [],
|
|
513
|
+
});
|
|
514
|
+
},
|
|
515
|
+
},
|
|
516
|
+
];
|
|
517
|
+
}
|
|
518
|
+
//# sourceMappingURL=documents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine Tools
|
|
3
|
+
* Voice pipeline preset management (Dalvon Engines)
|
|
4
|
+
*/
|
|
5
|
+
import type { DalvonClient } from '../clients/dalvon.js';
|
|
6
|
+
import type { McpTool } from '../types/index.js';
|
|
7
|
+
export declare function createEngineTools(client: DalvonClient): McpTool[];
|
|
8
|
+
//# sourceMappingURL=engines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engines.d.ts","sourceRoot":"","sources":["../../src/tools/engines.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,mBAAmB,CAAC;AAoE/D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,EAAE,CAkNjE"}
|