@botozap/mcp 0.2.6 → 0.3.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.
@@ -0,0 +1,473 @@
1
+ import { z } from "zod";
2
+ import { AI_CONFIGURABLE_PURPOSES, AI_OPERATIONS, AI_PURPOSES, } from "@botozap/sdk";
3
+ import { emptyOperationResult } from "../register.js";
4
+ const uuid = z.string().uuid(), revision = z.string().regex(/^\d+$/), text = z.string(), provider = z.enum([
5
+ "anthropic",
6
+ "openai",
7
+ "google",
8
+ "openrouter",
9
+ "deepseek",
10
+ "xai",
11
+ ]), purpose = z.enum(AI_PURPOSES), binding = z
12
+ .object({ provider, model: text.min(1).max(200), credential_id: uuid })
13
+ .strict(), window = z
14
+ .object({
15
+ start: text.regex(/^([01]\d|2[0-3]):[0-5]\d$/),
16
+ end: text.regex(/^([01]\d|2[0-3]):[0-5]\d$/),
17
+ weekdays: z.array(z.number().int().min(0).max(6)).min(1).max(7),
18
+ })
19
+ .strict();
20
+ const tool = z.enum([
21
+ "contacts.read",
22
+ "contacts.update",
23
+ "conversations.read",
24
+ "conversations.note",
25
+ "crm.opportunities.read",
26
+ "crm.opportunities.write",
27
+ "crm.demands.read",
28
+ "crm.demands.write",
29
+ "crm.stages.read",
30
+ "crm.stages.write",
31
+ "agenda.availability",
32
+ "agenda.propose",
33
+ "agenda.appointments.read",
34
+ "agenda.appointments.reschedule",
35
+ "agenda.appointments.cancel",
36
+ "knowledge.search",
37
+ "memory.read",
38
+ "memory.propose",
39
+ "skills.read",
40
+ "followups.enroll",
41
+ "followups.pause",
42
+ "followups.cancel",
43
+ "cases.open",
44
+ "cases.update",
45
+ "followups.schedule",
46
+ "followups.list",
47
+ "handoff",
48
+ "alerts.create",
49
+ "contacts.search",
50
+ "contacts.get",
51
+ "contacts.propose_update",
52
+ "conversations.list",
53
+ "conversations.get",
54
+ "conversations.history",
55
+ "conversations.assign",
56
+ "team.members.read",
57
+ "inbox.queue.read",
58
+ "tags.read",
59
+ "tags.manage",
60
+ "saved_replies.read",
61
+ "saved_replies.render",
62
+ "automations.read",
63
+ "automations.runs.read",
64
+ "radar.read",
65
+ "radar.propose_reactivation",
66
+ "catalog.products.search",
67
+ "privacy.consent.read",
68
+ "knowledge.sources.read",
69
+ "proposals.read",
70
+ "cases.read",
71
+ "crm.search",
72
+ "agenda.schedule.read",
73
+ "agenda.appointments.confirm",
74
+ "cases.note",
75
+ "cases.close",
76
+ ]);
77
+ const toolLimit = tool.options.length;
78
+ const agentConfig = z
79
+ .object({
80
+ system_prompt: text.max(20000).optional(),
81
+ provider: provider.optional(),
82
+ model: text.max(200).optional(),
83
+ credential_id: uuid.nullable().optional(),
84
+ channel_account_id: uuid.nullable().optional(),
85
+ tool_ids: z.array(tool).max(toolLimit).optional(),
86
+ operator: z
87
+ .object({
88
+ enabled: z.boolean().optional(),
89
+ provider: provider.nullable().optional(),
90
+ model: text.nullable().optional(),
91
+ credential_id: uuid.nullable().optional(),
92
+ tool_ids: z.array(tool).max(toolLimit).optional(),
93
+ })
94
+ .strict()
95
+ .optional(),
96
+ trigger: z
97
+ .object({
98
+ keywords: z.array(text).max(40).optional(),
99
+ match: z.enum(["any", "all"]).optional(),
100
+ ignore_groups: z.literal(true).optional(),
101
+ ignore_self: z.literal(true).optional(),
102
+ })
103
+ .strict()
104
+ .optional(),
105
+ time_zone: text.optional(),
106
+ business_hours: window.nullable().optional(),
107
+ outside_hours: z.enum(["respond", "wait", "handoff"]).optional(),
108
+ max_steps: z.number().int().min(1).max(25).optional(),
109
+ token_budget: z.number().int().min(1000).max(500000).optional(),
110
+ estimated_cost_limit_usd: z
111
+ .number()
112
+ .positive()
113
+ .max(100)
114
+ .nullable()
115
+ .optional(),
116
+ history_message_window: z.number().int().min(0).max(200).optional(),
117
+ history_token_window: z.number().int().min(0).max(50000).optional(),
118
+ handoff_keywords: z.array(text).max(30).optional(),
119
+ handoff_enabled: z.boolean().optional(),
120
+ cases_enabled: z.boolean().optional(),
121
+ split_messages: z.boolean().optional(),
122
+ split_max_chars: z.number().int().min(80).max(4000).optional(),
123
+ crm_scopes: z
124
+ .array(z.enum(["contacts", "opportunities", "demands"]))
125
+ .max(3)
126
+ .optional(),
127
+ allowed_stage_ids: z.array(uuid).max(100).optional(),
128
+ knowledge_source_ids: z.array(uuid).max(100).optional(),
129
+ skill_ids: z.array(uuid).max(100).optional(),
130
+ platform_skills: z.enum(["none", "all"]).optional(),
131
+ memory_enabled: z.boolean().optional(),
132
+ data_access: z
133
+ .object({ other_contacts: z.boolean().optional() })
134
+ .strict()
135
+ .optional(),
136
+ accountability: z
137
+ .object({
138
+ enabled: z.boolean().optional(),
139
+ classification: z.boolean().optional(),
140
+ })
141
+ .strict()
142
+ .optional(),
143
+ media: z
144
+ .object({
145
+ images_enabled: z.boolean().optional(),
146
+ documents_enabled: z.boolean().optional(),
147
+ video_frames_enabled: z.boolean().optional(),
148
+ })
149
+ .strict()
150
+ .optional(),
151
+ followup: z
152
+ .object({
153
+ enabled: z.boolean().optional(),
154
+ flow_ids: z.array(uuid).max(100).optional(),
155
+ send_window: window.nullable().optional(),
156
+ })
157
+ .strict()
158
+ .optional(),
159
+ safety: z
160
+ .object({
161
+ disclose_ai: z.boolean().optional(),
162
+ prohibited_claims: z.array(text).max(50).optional(),
163
+ escalation_instructions: text.max(4000).optional(),
164
+ additional_rules: z.array(text.min(1).max(500)).max(30).optional(),
165
+ disclosure_text: text.max(300).optional(),
166
+ commercial_limits: z
167
+ .object({
168
+ min_price_brl: z.number().min(0).max(1000000000).nullable().optional(),
169
+ max_discount_percent: z.number().min(0).max(100).nullable().optional(),
170
+ max_installments: z.number().int().min(1).max(120).nullable().optional(),
171
+ })
172
+ .strict()
173
+ .optional(),
174
+ guard_sensitivity: z.enum(["standard", "strict"]).optional(),
175
+ semantic_evaluator: z.boolean().optional(),
176
+ })
177
+ .strict()
178
+ .optional(),
179
+ style: z
180
+ .object({
181
+ tone: z.enum(["professional", "friendly", "direct"]).optional(),
182
+ verbosity: z.enum(["concise", "balanced", "detailed"]).optional(),
183
+ use_emojis: z.boolean().optional(),
184
+ instructions: text.max(4000).optional(),
185
+ })
186
+ .strict()
187
+ .optional(),
188
+ })
189
+ .strict();
190
+ const routerConfig = z
191
+ .object({
192
+ name: text.min(1).max(80),
193
+ channel_account_id: uuid,
194
+ classifier: binding,
195
+ sticky: z.boolean().optional(),
196
+ min_confidence: z.number().min(0).max(1).optional(),
197
+ fallback_agent_id: uuid.nullable().optional(),
198
+ members: z
199
+ .array(z
200
+ .object({
201
+ agent_id: uuid,
202
+ intent_name: text.min(1).max(80),
203
+ intent_description: text.min(1).max(2000),
204
+ examples: z.array(text).max(20).optional(),
205
+ position: z.number().int().nonnegative().optional(),
206
+ })
207
+ .strict())
208
+ .min(1)
209
+ .max(30),
210
+ })
211
+ .strict();
212
+ const alertKind = z.string().regex(/^[a-z][a-z0-9_]{1,47}$/);
213
+ /** Same product contract as knowledge import (catalog kind products). */
214
+ const catalogProduct = z
215
+ .object({
216
+ id: z.string().min(1).max(100),
217
+ name: z.union([
218
+ z.string().min(1).max(300),
219
+ z.object({ pt: z.string().min(1).max(300) }).strict(),
220
+ ]),
221
+ description: z.string().max(10000).optional(),
222
+ price: z
223
+ .string()
224
+ .regex(/^\d{1,12}(?:[.,]\d{1,2})?$/)
225
+ .optional(),
226
+ sku: z.string().max(150).optional(),
227
+ permalink: z.string().url().max(2000).optional(),
228
+ variants: z
229
+ .array(z
230
+ .object({
231
+ price: z.string().optional(),
232
+ sku: z.string().optional(),
233
+ })
234
+ .strict())
235
+ .max(100)
236
+ .optional(),
237
+ categories: z
238
+ .array(z
239
+ .object({
240
+ name: z.union([
241
+ z.string(),
242
+ z.object({ pt: z.string() }).strict(),
243
+ ]),
244
+ })
245
+ .strict())
246
+ .max(30)
247
+ .optional(),
248
+ })
249
+ .strict();
250
+ const schemas = {
251
+ uuid,
252
+ revision,
253
+ provider,
254
+ purpose,
255
+ configurablePurpose: z.enum(AI_CONFIGURABLE_PURPOSES),
256
+ agentConfig,
257
+ revisionZero: z.string().regex(/^(0|[1-9]\d{0,18})$/),
258
+ sha256: z.string().regex(/^[a-f0-9]{64}$/),
259
+ caseBody: z.string().trim().min(1).max(4000),
260
+ caseQuestion: z.string().trim().min(3).max(1000),
261
+ catalogProducts: z.array(catalogProduct).min(1).max(1000),
262
+ catalogUpserts: z
263
+ .array(catalogProduct.extend({ updated_at: text.datetime({ offset: true }).optional() }))
264
+ .max(1000),
265
+ catalogRemovals: z
266
+ .array(z
267
+ .object({
268
+ id: z.string().trim().min(1).max(100),
269
+ updated_at: text.datetime({ offset: true }).optional(),
270
+ })
271
+ .strict())
272
+ .max(1000),
273
+ eventKey: z.string().trim().min(1).max(200),
274
+ integration: z.string().regex(/^[a-z][a-z0-9_]{1,39}$/),
275
+ requestKey: z.string().regex(/^[A-Za-z0-9_.:-]{1,200}$/),
276
+ testPhones: z.array(z.string().max(40)).max(200),
277
+ alertKind,
278
+ alertBulkFilters: z
279
+ .object({
280
+ kind: alertKind.optional(),
281
+ severity: z.enum(["info", "warning", "critical"]).optional(),
282
+ status: z.enum(["open", "acknowledged"]).optional(),
283
+ })
284
+ .strict(),
285
+ inferencePoint: z.string().regex(/^[a-z_]{1,64}$/),
286
+ uuidList: z.array(uuid).max(100),
287
+ evolutionDays: z.union([z.literal(7), z.literal(30), z.literal(90)]),
288
+ styleAdjustment: z.enum(["sem_travessao_longo"]),
289
+ queueStatus: z.string().regex(/^[a-z_]{1,40}$/),
290
+ queueSearch: z.string().trim().max(100),
291
+ queueCursor: z.string().max(400),
292
+ templateVariables: z.record(z.string().min(1).max(2000)),
293
+ toolIdList: z.array(z.string().max(80)).max(100),
294
+ routerConfig,
295
+ string: text,
296
+ number: z.number().finite(),
297
+ boolean: z.boolean(),
298
+ true: z.literal(true),
299
+ nullableUuid: uuid.nullable(),
300
+ nullableString: text.nullable(),
301
+ nullableNumber: z.number().finite().nullable(),
302
+ audioPricing: z
303
+ .discriminatedUnion("unit", [
304
+ z
305
+ .object({
306
+ unit: z.literal("tokens"),
307
+ input_audio_usd_per_million: z.number().finite().min(0).max(100000),
308
+ input_text_usd_per_million: z.number().finite().min(0).max(100000),
309
+ output_text_usd_per_million: z.number().finite().min(0).max(100000),
310
+ max_input_tokens: z.number().int().min(1).max(100000000),
311
+ max_output_tokens: z.number().int().min(1).max(100000000),
312
+ })
313
+ .strict(),
314
+ z
315
+ .object({
316
+ unit: z.literal("duration"),
317
+ usd_per_minute: z.number().finite().min(0).max(100000),
318
+ })
319
+ .strict(),
320
+ ])
321
+ .nullable(),
322
+ datetime: text.datetime({ offset: true }),
323
+ secret: text.min(8).max(4096),
324
+ evidence: text.trim().min(10).max(2000),
325
+ uuids: z.array(uuid).min(1).max(100),
326
+ binding: binding.nullable(),
327
+ messages: z
328
+ .array(z
329
+ .object({
330
+ role: z.enum(["user", "assistant"]),
331
+ content: text.min(1).max(20000),
332
+ })
333
+ .strict())
334
+ .min(1)
335
+ .max(200),
336
+ matcher: z
337
+ .object({
338
+ any_keywords: z.array(text.min(1).max(120)).min(1).max(50),
339
+ probe_keywords: z.array(text.min(1).max(120)).max(50).optional(),
340
+ })
341
+ .strict(),
342
+ noticeMap: z.record(text.regex(/^(body|header|button):\d+$/), z.enum([
343
+ "case_title",
344
+ "case_summary",
345
+ "case_url",
346
+ "contact_name",
347
+ "agent_name",
348
+ ])),
349
+ graph: z
350
+ .object({
351
+ nodes: z.array(z
352
+ .object({
353
+ id: text,
354
+ type: text,
355
+ label: text,
356
+ position: z.object({ x: z.number(), y: z.number() }),
357
+ config: z.record(z.unknown()),
358
+ })
359
+ .strict()),
360
+ edges: z.array(z
361
+ .object({
362
+ id: text,
363
+ source: text,
364
+ target: text,
365
+ priority: z.number(),
366
+ condition: z.record(z.unknown()),
367
+ })
368
+ .passthrough()),
369
+ })
370
+ .strict(),
371
+ flowSettings: z
372
+ .object({
373
+ trigger: z
374
+ .object({
375
+ kind: z.enum([
376
+ "manual",
377
+ "webhook",
378
+ "stage_change",
379
+ "silence",
380
+ "case_opened",
381
+ "appointment_no_show",
382
+ ]),
383
+ params: z.record(z.unknown()).optional(),
384
+ cancel_on_reply: z.boolean().optional(),
385
+ })
386
+ .strict(),
387
+ handoff_policy: z.enum(["pause", "cancel", "allow"]),
388
+ send_start_hour: z.number(),
389
+ send_end_hour: z.number(),
390
+ send_days: z.array(z.number()),
391
+ timezone: text,
392
+ purpose: z.enum(["utility", "marketing"]),
393
+ environment: z.enum(["live", "sandbox"]),
394
+ trigger_agent_id: uuid.nullable().optional(),
395
+ })
396
+ .strict(),
397
+ };
398
+ const snake = (s) => s.replace(/[A-Z]/g, (c) => `_${c.toLowerCase()}`);
399
+ export function registerAiTools(register) {
400
+ register("control_conversation_agent", "Pausa/retoma agente na conversa. agents:write; retomar pode gerar resposta automática e exige intenção do usuário.", { conversation_id: uuid, action: z.enum(["pause", "resume"]) }, z.object({
401
+ data: z.object({ conversation_id: uuid, paused: z.boolean() }),
402
+ }), async (client, args) => ({
403
+ data: await client.conversations.controlAgent(String(args.conversation_id), args.action),
404
+ }));
405
+ for (const op of AI_OPERATIONS) {
406
+ const input = {};
407
+ for (const [name, f] of Object.entries(op.fields)) {
408
+ if (name === "file")
409
+ continue;
410
+ let schema = schemas[f.type] ??
411
+ (f.type.includes("|")
412
+ ? z.enum(f.type.split("|"))
413
+ : undefined);
414
+ if (!schema)
415
+ throw new Error(`Tipo IA não registrado: ${f.type}`);
416
+ if (name === "page")
417
+ schema = z.number().int().positive();
418
+ if (name === "per_page")
419
+ schema = z.number().int().min(1).max(100);
420
+ input[name] = f.optional ? schema.optional() : schema;
421
+ }
422
+ if (op.shape === "multipart")
423
+ input.file_base64 = z
424
+ .string()
425
+ .min(1)
426
+ .max(op.group === "skills" ? 7 * 1024 * 1024 : 28 * 1024 * 1024)
427
+ .describe("Conteúdo base64 do arquivo autorizado; nunca um caminho do servidor MCP.");
428
+ const scope = op.scope ?? (op.method === "GET" ? "agents:read" : "agents:write");
429
+ const output = op.shape === "offset"
430
+ ? z.object({
431
+ data: z.array(z.unknown()),
432
+ // Passthrough keeps route extras such as inferences meta.summary.
433
+ meta: z
434
+ .object({
435
+ page: z.number(),
436
+ per_page: z.number(),
437
+ total_count: z.number(),
438
+ total_pages: z.number(),
439
+ })
440
+ .passthrough(),
441
+ })
442
+ : op.shape === "empty"
443
+ ? z.object({ success: z.literal(true) })
444
+ : z.object({ data: z.unknown() });
445
+ register(`ai_${snake(op.group)}_${snake(op.name)}`, `${op.method} ${op.path}. ${scope}; chave live. ${op.description || "Operação sobre o Cliente informado."} Use customer_id do cliente autorizado; não confunda com account_id.`, input, output, async (client, args) => {
446
+ const raw = { ...args };
447
+ if (op.shape === "multipart") {
448
+ const base64 = String(raw.file_base64);
449
+ if (!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(base64))
450
+ throw new Error("Base64 inválido.");
451
+ const bytes = Buffer.from(base64, "base64");
452
+ const limit = op.group === "skills" ? 5 * 1024 * 1024 : 20 * 1024 * 1024;
453
+ if (!bytes.length || bytes.length > limit)
454
+ throw new Error("Arquivo vazio ou excede o limite.");
455
+ raw.file = new Blob([bytes], {
456
+ type: op.group === "skills"
457
+ ? "application/zip"
458
+ : /\.pdf$/i.test(String(raw.file_name))
459
+ ? "application/pdf"
460
+ : "application/octet-stream",
461
+ });
462
+ delete raw.file_base64;
463
+ }
464
+ const value = await client.ai.invoke(op.group, op.name, raw);
465
+ return op.shape === "empty"
466
+ ? emptyOperationResult()
467
+ : op.shape === "offset"
468
+ ? value
469
+ : { data: value };
470
+ });
471
+ }
472
+ }
473
+ //# sourceMappingURL=ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/tools/ai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { z } from "zod";
2
+ import type { Register } from "../register.js";
3
+ export declare const inboxMutationSchema: z.ZodDiscriminatedUnion<"operation", [z.ZodObject<{
4
+ operation: z.ZodEnum<["archive", "unarchive", "unsnooze"]>;
5
+ expected_version: z.ZodNumber;
6
+ }, "strict", z.ZodTypeAny, {
7
+ operation: "archive" | "unarchive" | "unsnooze";
8
+ expected_version: number;
9
+ }, {
10
+ operation: "archive" | "unarchive" | "unsnooze";
11
+ expected_version: number;
12
+ }>, z.ZodObject<{
13
+ operation: z.ZodLiteral<"snooze">;
14
+ expected_version: z.ZodNumber;
15
+ until: z.ZodString;
16
+ }, "strict", z.ZodTypeAny, {
17
+ operation: "snooze";
18
+ expected_version: number;
19
+ until: string;
20
+ }, {
21
+ operation: "snooze";
22
+ expected_version: number;
23
+ until: string;
24
+ }>, z.ZodObject<{
25
+ operation: z.ZodLiteral<"note_create">;
26
+ body: z.ZodString;
27
+ }, "strict", z.ZodTypeAny, {
28
+ operation: "note_create";
29
+ body: string;
30
+ }, {
31
+ operation: "note_create";
32
+ body: string;
33
+ }>, z.ZodObject<{
34
+ operation: z.ZodLiteral<"note_update">;
35
+ id: z.ZodString;
36
+ expected_version: z.ZodNumber;
37
+ body: z.ZodString;
38
+ }, "strict", z.ZodTypeAny, {
39
+ id: string;
40
+ operation: "note_update";
41
+ expected_version: number;
42
+ body: string;
43
+ }, {
44
+ id: string;
45
+ operation: "note_update";
46
+ expected_version: number;
47
+ body: string;
48
+ }>, z.ZodObject<{
49
+ operation: z.ZodLiteral<"note_delete">;
50
+ id: z.ZodString;
51
+ expected_version: z.ZodNumber;
52
+ }, "strict", z.ZodTypeAny, {
53
+ id: string;
54
+ operation: "note_delete";
55
+ expected_version: number;
56
+ }, {
57
+ id: string;
58
+ operation: "note_delete";
59
+ expected_version: number;
60
+ }>, z.ZodObject<{
61
+ operation: z.ZodLiteral<"reminder_create">;
62
+ body: z.ZodString;
63
+ due_at: z.ZodString;
64
+ assigned_user_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
65
+ }, "strict", z.ZodTypeAny, {
66
+ operation: "reminder_create";
67
+ body: string;
68
+ due_at: string;
69
+ assigned_user_id?: string | null | undefined;
70
+ }, {
71
+ operation: "reminder_create";
72
+ body: string;
73
+ due_at: string;
74
+ assigned_user_id?: string | null | undefined;
75
+ }>, z.ZodObject<{
76
+ operation: z.ZodLiteral<"reminder_update">;
77
+ id: z.ZodString;
78
+ expected_version: z.ZodNumber;
79
+ body: z.ZodOptional<z.ZodString>;
80
+ due_at: z.ZodOptional<z.ZodString>;
81
+ assigned_user_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
82
+ status: z.ZodOptional<z.ZodEnum<["pending", "done", "cancelled"]>>;
83
+ }, "strict", z.ZodTypeAny, {
84
+ id: string;
85
+ operation: "reminder_update";
86
+ expected_version: number;
87
+ status?: "cancelled" | "pending" | "done" | undefined;
88
+ body?: string | undefined;
89
+ due_at?: string | undefined;
90
+ assigned_user_id?: string | null | undefined;
91
+ }, {
92
+ id: string;
93
+ operation: "reminder_update";
94
+ expected_version: number;
95
+ status?: "cancelled" | "pending" | "done" | undefined;
96
+ body?: string | undefined;
97
+ due_at?: string | undefined;
98
+ assigned_user_id?: string | null | undefined;
99
+ }>]>;
100
+ export declare function registerAttendanceTools(register: Register): void;