@botozap/mcp 0.2.5 → 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,412 @@
1
+ import { z } from "zod";
2
+ import { emptyOperationResult } from "../register.js";
3
+ const uuid = z.string().uuid(), instant = z.string().datetime({ offset: true }), version = z.number().int().positive();
4
+ const nullableUuid = uuid.nullable().optional(), optionalText = (max) => z.string().max(max).nullable().optional();
5
+ const offset = {
6
+ page: z.number().int().positive().optional(),
7
+ per_page: z.number().int().min(1).max(100).optional(),
8
+ };
9
+ const row = z.object({ id: z.string() }).passthrough();
10
+ const item = z.object({ data: row });
11
+ const page = z.object({
12
+ data: z.array(row),
13
+ meta: z
14
+ .object({
15
+ page: z.number(),
16
+ per_page: z.number(),
17
+ total_count: z.number(),
18
+ total_pages: z.number(),
19
+ })
20
+ .passthrough(),
21
+ });
22
+ const cursor = z.object({
23
+ data: z.array(row),
24
+ paging: z.object({
25
+ cursors: z.object({
26
+ before: z.string().nullable(),
27
+ after: z.string().nullable(),
28
+ }),
29
+ next: z.string().nullable(),
30
+ previous: z.string().nullable(),
31
+ }),
32
+ });
33
+ const saved = {
34
+ title: z.string().min(1).max(80),
35
+ body: z.string().min(1).max(4096),
36
+ shortcut: z.string().max(40).nullable().optional(),
37
+ customer_id: nullableUuid,
38
+ };
39
+ const common = {
40
+ title: z.string().min(1).max(200),
41
+ owner_user_id: nullableUuid,
42
+ next_step: optionalText(1000),
43
+ next_step_at: instant.nullable().optional(),
44
+ notes: optionalText(10000),
45
+ metadata: z
46
+ .record(z.union([z.string(), z.number(), z.boolean(), z.null()]))
47
+ .optional(),
48
+ };
49
+ const opportunity = {
50
+ ...common,
51
+ stage_id: nullableUuid,
52
+ status: z.enum(["open", "won", "lost"]).optional(),
53
+ value_cents: z.number().int().min(0).max(Number.MAX_SAFE_INTEGER).optional(),
54
+ currency: z
55
+ .string()
56
+ .regex(/^[A-Z]{3}$/)
57
+ .optional(),
58
+ outcome_reason: optionalText(2000),
59
+ };
60
+ const demand = {
61
+ ...common,
62
+ opportunity_id: nullableUuid,
63
+ status: z
64
+ .enum(["open", "in_progress", "waiting_customer", "resolved", "closed"])
65
+ .optional(),
66
+ due_at: instant.nullable().optional(),
67
+ outcome: z
68
+ .enum([
69
+ "resolved",
70
+ "converted",
71
+ "not_applicable",
72
+ "customer_cancelled",
73
+ "lost",
74
+ "no_response",
75
+ ])
76
+ .nullable()
77
+ .optional(),
78
+ };
79
+ const note = z.string().trim().min(1).max(10000);
80
+ export const inboxMutationSchema = z.discriminatedUnion("operation", [
81
+ z
82
+ .object({
83
+ operation: z.enum(["archive", "unarchive", "unsnooze"]),
84
+ expected_version: version,
85
+ })
86
+ .strict(),
87
+ z
88
+ .object({
89
+ operation: z.literal("snooze"),
90
+ expected_version: version,
91
+ until: instant,
92
+ })
93
+ .strict(),
94
+ z.object({ operation: z.literal("note_create"), body: note }).strict(),
95
+ z
96
+ .object({
97
+ operation: z.literal("note_update"),
98
+ id: uuid,
99
+ expected_version: version,
100
+ body: note,
101
+ })
102
+ .strict(),
103
+ z
104
+ .object({
105
+ operation: z.literal("note_delete"),
106
+ id: uuid,
107
+ expected_version: version,
108
+ })
109
+ .strict(),
110
+ z
111
+ .object({
112
+ operation: z.literal("reminder_create"),
113
+ body: z.string().min(1).max(1000),
114
+ due_at: instant,
115
+ assigned_user_id: nullableUuid,
116
+ })
117
+ .strict(),
118
+ z
119
+ .object({
120
+ operation: z.literal("reminder_update"),
121
+ id: uuid,
122
+ expected_version: version,
123
+ body: z.string().min(1).max(1000).optional(),
124
+ due_at: instant.optional(),
125
+ assigned_user_id: nullableUuid,
126
+ status: z.enum(["pending", "done", "cancelled"]).optional(),
127
+ })
128
+ .strict(),
129
+ ]);
130
+ const journey = {
131
+ customer_id: uuid,
132
+ name: z.string().min(1).max(160),
133
+ status: z.enum(["active", "paused"]).optional(),
134
+ target_kind: z.enum(["contact", "opportunity", "demand"]).optional(),
135
+ trigger_kind: z
136
+ .enum(["contact_date", "stage_entered", "appointment", "demand_status"])
137
+ .optional(),
138
+ date_field_key: optionalText(200),
139
+ stage_id: nullableUuid,
140
+ demand_status: z
141
+ .enum(["open", "in_progress", "waiting_customer"])
142
+ .nullable()
143
+ .optional(),
144
+ offset_days: z.number().int().min(-3660).max(3660).optional(),
145
+ offset_hours: z.number().int().min(-87840).max(87840).optional(),
146
+ yearly: z.boolean().optional(),
147
+ stop_on_reply: z.boolean().optional(),
148
+ stop_on_exit: z.boolean().optional(),
149
+ send_start_hour: z.number().int().min(0).max(23).optional(),
150
+ send_end_hour: z.number().int().min(1).max(24).optional(),
151
+ steps: z
152
+ .array(z
153
+ .object({
154
+ template_id: uuid,
155
+ delay_minutes: z.number().int().min(0).max(525600),
156
+ variable_map: z.record(z.string().max(200)).optional(),
157
+ })
158
+ .strict())
159
+ .min(1)
160
+ .max(50),
161
+ };
162
+ const journeyQuery = {
163
+ customer_id: uuid.optional(),
164
+ limit: z.number().int().min(1).max(100).optional(),
165
+ after: z.string().optional(),
166
+ };
167
+ export function registerAttendanceTools(register) {
168
+ register("list_saved_replies", "Lista respostas compartilhadas. Exige saved_replies:read. Respostas pessoais só existem na sessão do Painel.", {
169
+ ...offset,
170
+ query: z.string().trim().max(100).optional(),
171
+ customer_id: z.union([uuid, z.literal("account")]).optional(),
172
+ include_account: z.boolean().optional(),
173
+ }, page, (c, a) => c.savedReplies.list(a));
174
+ register("get_saved_reply", "Lê resposta compartilhada e updated_at exato para CAS. saved_replies:read.", { id: uuid }, item, async (c, a) => ({ data: await c.savedReplies.get(String(a.id)) }));
175
+ register("create_saved_reply", "Cria resposta compartilhada. Variáveis permitidas: {{nome}}, {{primeiro_nome}}. saved_replies:write.", saved, item, async (c, a) => ({
176
+ data: await c.savedReplies.create(a),
177
+ }));
178
+ register("update_saved_reply", "Edita resposta com CAS; copie expected_updated_at integral da última leitura. saved_replies:write.", {
179
+ id: uuid,
180
+ ...z.object(saved).partial().shape,
181
+ expected_updated_at: instant,
182
+ }, item, async (c, a) => {
183
+ const { id, ...p } = a;
184
+ return {
185
+ data: await c.savedReplies.update(String(id), p),
186
+ };
187
+ });
188
+ register("delete_saved_reply", "Exclui resposta compartilhada com CAS. saved_replies:write.", { id: uuid, expected_updated_at: instant }, z.object({ success: z.literal(true) }), async (c, a) => {
189
+ await c.savedReplies.delete(String(a.id), {
190
+ expected_updated_at: String(a.expected_updated_at),
191
+ });
192
+ return emptyOperationResult();
193
+ });
194
+ register("get_inbox_tools", "Lê notas internas, retornos e estado operacional da conversa. inbox:read. Não contém rascunhos pessoais.", { conversation_id: uuid, ...offset }, z.object({
195
+ data: z.object({
196
+ state: z.object({
197
+ id: uuid,
198
+ operator_version: version,
199
+ archived_at: instant.nullable(),
200
+ snoozed_until: instant.nullable(),
201
+ }),
202
+ notes: z.array(row),
203
+ reminders: z.array(row),
204
+ page: z.number(),
205
+ per_page: z.number(),
206
+ notes_total: z.number(),
207
+ reminders_total: z.number(),
208
+ }),
209
+ }), async (c, a) => ({
210
+ data: await c.inbox.get(String(a.conversation_id), {
211
+ page: a.page,
212
+ per_page: a.per_page,
213
+ }),
214
+ }));
215
+ register("mutate_inbox_tools", "Arquivo, adiamento, nota interna ou retorno. inbox:write. Notas nunca são enviadas ao contato. expected_version evita sobrescrita; leia antes de editar.", { conversation_id: uuid, input: inboxMutationSchema }, z.object({
216
+ data: z.union([
217
+ row,
218
+ z.object({
219
+ operator_version: version,
220
+ archived_at: instant.nullable(),
221
+ snoozed_until: instant.nullable(),
222
+ }),
223
+ ]),
224
+ }), async (c, a) => ({
225
+ data: await c.inbox.mutate(String(a.conversation_id), a.input),
226
+ }));
227
+ for (const [plural, singular, fields] of [
228
+ ["opportunities", "opportunity", opportunity],
229
+ ["demands", "demand", demand],
230
+ ]) {
231
+ register(`list_${plural}`, `Lista ${plural} por Cliente; crm:read.`, {
232
+ ...offset,
233
+ customer_id: uuid,
234
+ contact_id: uuid.optional(),
235
+ owner_user_id: z.union([uuid, z.literal("unassigned")]).optional(),
236
+ stage_id: z.union([uuid, z.literal("none")]).optional(),
237
+ status: z.string().optional(),
238
+ q: z.string().max(200).optional(),
239
+ }, page, (c, a) => c[plural].list(a));
240
+ register(`get_${singular}`, `Detalha ${singular}, incluindo versão; crm:read.`, { id: uuid }, item, async (c, a) => ({ data: await c[plural].get(String(a.id)) }));
241
+ register(`create_${singular}`, `Cria ${singular} vinculado ao Cliente e Contato; crm:write.`, { ...fields, customer_id: uuid, contact_id: uuid }, item, async (c, a) => ({
242
+ data: plural === "opportunities"
243
+ ? await c.opportunities.create(a)
244
+ : await c.demands.create(a),
245
+ }));
246
+ register(`update_${singular}`, `Atualiza ${singular} com CAS, incluindo responsável, resultado e próximo passo; crm:write.`, {
247
+ id: uuid,
248
+ ...z.object(fields).partial().shape,
249
+ expected_version: version,
250
+ }, item, async (c, a) => {
251
+ const { id, ...p } = a;
252
+ return {
253
+ data: await c[plural].update(String(id), p),
254
+ };
255
+ });
256
+ register(`list_${singular}_activities`, `Histórico paginado de ${singular}, 20 por página; crm:read.`, { id: uuid, page: offset.page }, page, (c, a) => c[plural].activities(String(a.id), {
257
+ page: a.page,
258
+ }));
259
+ register(`list_${singular}_conversations`, `Conversas vinculadas a ${singular}, 20 por página; crm:read.`, { id: uuid, page: offset.page }, z.object({
260
+ data: z.array(z.object({ conversation_id: uuid, created_at: instant })),
261
+ meta: page.shape.meta,
262
+ }), (c, a) => c[plural].conversations(String(a.id), {
263
+ page: a.page,
264
+ }));
265
+ for (const link of [true, false])
266
+ register(`${link ? "link" : "unlink"}_${singular}_conversation`, `${link ? "Vincula" : "Desvincula"} conversa do mesmo contato; crm:write.`, { id: uuid, conversation_id: uuid }, z.object({
267
+ data: z.object({ conversation_id: uuid, linked: z.boolean() }),
268
+ }), async (c, a) => ({
269
+ data: await c[plural][link ? "linkConversation" : "unlinkConversation"](String(a.id), String(a.conversation_id)),
270
+ }));
271
+ }
272
+ register("list_radar", "Lista pendências e contagens críticas/atenção/programadas; crm:read.", {
273
+ ...offset,
274
+ customer_id: uuid,
275
+ bucket: z.enum(["critical", "at_risk", "scheduled"]).optional(),
276
+ entity_type: z
277
+ .enum(["opportunity", "demand", "return", "appointment"])
278
+ .optional(),
279
+ owner_user_id: z.union([uuid, z.literal("unassigned")]).optional(),
280
+ reason: z
281
+ .enum([
282
+ "unassigned",
283
+ "missing_next_step",
284
+ "overdue",
285
+ "stalled_stage",
286
+ "inactive",
287
+ "automation_failed",
288
+ "automation_overdue",
289
+ "automation_paused",
290
+ "automation_stopped",
291
+ "confirmation_pending",
292
+ "appointment_outcome_missing",
293
+ "calendar_conflict",
294
+ "calendar_sync_failed",
295
+ ])
296
+ .optional(),
297
+ }, page.extend({
298
+ meta: page.shape.meta.extend({
299
+ counts: z.object({
300
+ critical: z.number(),
301
+ at_risk: z.number(),
302
+ scheduled: z.number(),
303
+ }),
304
+ }),
305
+ }), (c, a) => c.radar.list(a));
306
+ register("list_radar_stage_rules", "Critérios por etapa do Cliente; crm:read.", { customer_id: uuid }, z.object({
307
+ data: z.array(z.object({ stage_id: uuid, version: version }).passthrough()),
308
+ }), async (c, a) => ({ data: await c.radar.stageRules(String(a.customer_id)) }));
309
+ register("configure_radar_stage_rule", "Configura critério; expected_version=0 para novo, versão lida para alteração. crm:write.", {
310
+ stage_id: uuid,
311
+ customer_id: uuid,
312
+ expected_version: z.number().int().nonnegative(),
313
+ cold_hours: z.number().int().min(1).max(8760),
314
+ critical_hours: z.number().int().min(1).max(26280),
315
+ require_owner: z.boolean(),
316
+ require_next_step: z.boolean(),
317
+ }, z.object({
318
+ data: z.object({ stage_id: uuid, version: version }).passthrough(),
319
+ }), async (c, a) => {
320
+ const { stage_id, ...p } = a;
321
+ return {
322
+ data: await c.radar.configureStageRule(String(stage_id), p),
323
+ };
324
+ });
325
+ register("list_journeys", "Lista réguas live, paginação cursor; journeys:read.", journeyQuery, cursor, (c, a) => c.journeys.list(a));
326
+ register("get_journey", "Lê configuração completa, passos e version; journeys:read.", { id: uuid, customer_id: uuid.optional() }, item, async (c, a) => ({
327
+ data: await c.journeys.get(String(a.id), {
328
+ customer_id: a.customer_id,
329
+ }),
330
+ }));
331
+ register("create_journey", "Cria régua; status active permite disparos automáticos. Configure somente quando solicitado. journeys:write.", journey, item, async (c, a) => ({
332
+ data: await c.journeys.create(a),
333
+ }));
334
+ register("update_journey", "Substitui configuração completa com version atual; journeys:write.", { id: uuid, ...journey, version }, item, async (c, a) => {
335
+ const { id, ...p } = a;
336
+ return {
337
+ data: await c.journeys.update(String(id), p),
338
+ };
339
+ });
340
+ register("archive_journey", "Arquiva régua preservando histórico, com CAS; journeys:write.", { id: uuid, version }, item, async (c, a) => ({
341
+ data: await c.journeys.delete(String(a.id), Number(a.version)),
342
+ }));
343
+ register("control_journey", "Pausa, retoma ou arquiva régua com CAS; resume pode gerar envios. journeys:write.", { id: uuid, action: z.enum(["pause", "resume", "archive"]), version }, item, async (c, a) => ({
344
+ data: await c.journeys.control(String(a.id), {
345
+ action: a.action,
346
+ version: Number(a.version),
347
+ }),
348
+ }));
349
+ register("list_journey_runs", "Execuções da régua, cursor; journeys:read.", { id: uuid, ...journeyQuery }, cursor, (c, a) => {
350
+ const { id, ...p } = a;
351
+ return c.journeys.runs(String(id), p);
352
+ });
353
+ register("enroll_journey", "Programa ocorrência única; pode disparar mensagens ao contato. Exige solicitação do usuário. journeys:write.", {
354
+ id: uuid,
355
+ contact_id: uuid,
356
+ occurrence_key: z.string().min(1).max(200),
357
+ due_at: instant.optional(),
358
+ opportunity_id: nullableUuid,
359
+ demand_id: nullableUuid,
360
+ appointment_id: nullableUuid,
361
+ }, item, async (c, a) => {
362
+ const { id, ...p } = a;
363
+ return {
364
+ data: await c.journeys.enroll(String(id), p),
365
+ };
366
+ });
367
+ register("get_journey_run", "Detalha execução, etapas, falhas e recibos; journeys:read.", { id: uuid }, item, async (c, a) => ({ data: await c.journeys.getRun(String(a.id)) }));
368
+ register("control_journey_run", "Interrompe execução ou reconhece falha com nota. Não repete envios ambíguos. journeys:write.", {
369
+ id: uuid,
370
+ input: z.discriminatedUnion("action", [
371
+ z.object({ action: z.literal("stop") }).strict(),
372
+ z
373
+ .object({
374
+ action: z.literal("acknowledge"),
375
+ note: z.string().min(1).max(2000),
376
+ })
377
+ .strict(),
378
+ ]),
379
+ }, item, async (c, a) => ({
380
+ data: await c.journeys.controlRun(String(a.id), a.input),
381
+ }));
382
+ register("list_conversation_assignments", "Lista atribuições da conversa; conversations:read.", { conversation_id: uuid, ...offset }, page, (c, a) => c.conversations.listAssignments(String(a.conversation_id), {
383
+ page: a.page,
384
+ per_page: a.per_page,
385
+ }));
386
+ register("create_conversation_assignment", "Atribui conversa a membro existente da Conta. Obtenha user_id em list_users; conversations:write.", {
387
+ conversation_id: uuid,
388
+ user_id: uuid,
389
+ notes: z.string().max(16000).optional(),
390
+ }, item, async (c, a) => ({
391
+ data: await c.conversations.createAssignment(String(a.conversation_id), {
392
+ user_id: String(a.user_id),
393
+ notes: a.notes,
394
+ }),
395
+ }));
396
+ register("get_conversation_assignment", "Lê uma atribuição da conversa; conversations:read.", { conversation_id: uuid, assignment_id: uuid }, item, async (c, a) => ({
397
+ data: await c.conversations.getAssignment(String(a.conversation_id), String(a.assignment_id)),
398
+ }));
399
+ register("update_conversation_assignment", "Altera membro, observação ou active=false para desatribuir; conversations:write.", {
400
+ conversation_id: uuid,
401
+ assignment_id: uuid,
402
+ user_id: uuid.optional(),
403
+ notes: optionalText(16000),
404
+ active: z.boolean().optional(),
405
+ }, item, async (c, a) => {
406
+ const { conversation_id, assignment_id, ...p } = a;
407
+ return {
408
+ data: await c.conversations.updateAssignment(String(conversation_id), String(assignment_id), p),
409
+ };
410
+ });
411
+ }
412
+ //# sourceMappingURL=attendance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attendance.js","sourceRoot":"","sources":["../../src/tools/attendance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type Register } from "../register.js";
2
+ export declare function registerCalendarTools(register: Register): void;
@@ -0,0 +1,51 @@
1
+ import { z } from "zod";
2
+ import { emptyOperationResult } from "../register.js";
3
+ const uuid = z.string().uuid(), version = z.number().int().positive(), row = z.object({ id: uuid }).passthrough(), item = z.object({ data: row }), list = z.object({ data: z.array(row) }), page = list.extend({
4
+ meta: z.object({
5
+ page: z.number(),
6
+ per_page: z.number(),
7
+ total_count: z.number(),
8
+ total_pages: z.number(),
9
+ }),
10
+ }), offset = {
11
+ page: z.number().int().positive().optional(),
12
+ per_page: z.number().int().min(1).max(100).optional(),
13
+ };
14
+ export function registerCalendarTools(register) {
15
+ register("list_calendar_connections", "Lista conexões autorizadas por pessoas em /calendarios no Painel. API key não representa pessoa para OAuth. calendar:read.", offset, page, (c, a) => c.calendar.connections(a));
16
+ register("disconnect_calendar", "Desconecta conta Google e interrompe sua sincronização. calendar:write.", { id: uuid }, z.object({ success: z.literal(true) }), async (c, a) => {
17
+ await c.calendar.disconnect(String(a.id));
18
+ return emptyOperationResult();
19
+ });
20
+ register("list_connection_calendars", "Calendários disponíveis e seleções da conexão. calendar:read.", { connection_id: uuid }, list, async (c, a) => ({
21
+ data: await c.calendar.calendars(String(a.connection_id)),
22
+ }));
23
+ register("refresh_connection_calendars", "Atualiza catálogo no Google. calendar:write.", { connection_id: uuid }, list, async (c, a) => ({
24
+ data: await c.calendar.refresh(String(a.connection_id)),
25
+ }));
26
+ register("select_calendar", "Seleciona calendário de destino e se ocupação bloqueia horários; CAS revision. calendar:write.", {
27
+ id: uuid,
28
+ destination: z.boolean(),
29
+ include_busy: z.boolean(),
30
+ expected_revision: version,
31
+ }, z.object({ data: z.object({ updated: z.literal(true) }) }), async (c, a) => ({
32
+ data: await c.calendar.select(String(a.id), {
33
+ destination: Boolean(a.destination),
34
+ include_busy: Boolean(a.include_busy),
35
+ expected_revision: Number(a.expected_revision),
36
+ }),
37
+ }));
38
+ register("list_calendar_jobs", "Lista sincronizações, falhas e tentativas. calendar:read.", { ...offset, connection_id: uuid.optional() }, page, (c, a) => c.calendar.jobs(a));
39
+ register("retry_calendar_job", "Reagenda sincronização com falha. calendar:write.", { id: uuid }, z.object({ data: z.object({ queued: z.literal(true) }) }), async (c, a) => ({ data: await c.calendar.retryJob(String(a.id)) }));
40
+ register("resolve_calendar_conflict", "Resolve conflito do compromisso (appointment_id), escolhendo local ou Google. Leia ambas as versões antes; calendar:write.", {
41
+ appointment_id: uuid,
42
+ expected_revision: version,
43
+ choice: z.enum(["local", "remote"]),
44
+ }, item, async (c, a) => ({
45
+ data: await c.calendar.resolveConflict(String(a.appointment_id), {
46
+ expected_revision: Number(a.expected_revision),
47
+ choice: a.choice,
48
+ }),
49
+ }));
50
+ }
51
+ //# sourceMappingURL=calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/tools/calendar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type Register } from "../register.js";
2
+ export declare function registerContactConfigurationTools(register: Register): void;
@@ -0,0 +1,56 @@
1
+ import { z } from "zod";
2
+ import { emptyOperationResult } from "../register.js";
3
+ const uuid = z.string().uuid(), customer_id = uuid.optional(), label = z.string().min(1).max(60), color = z.enum(["zinc", "green", "amber", "pink"]), row = z
4
+ .object({
5
+ id: uuid,
6
+ key: z.string(),
7
+ label: z.string(),
8
+ position: z.number(),
9
+ })
10
+ .passthrough(), item = z.object({ data: row }), list = z.object({ data: z.array(row) }), success = z.object({ success: z.literal(true) });
11
+ export function registerContactConfigurationTools(register) {
12
+ register("list_contact_stages", "Descobre etapas do funil por Cliente. Omitir customer_id só em Conta com exatamente um Cliente; contacts:read.", { customer_id }, list, async (c, a) => ({ data: await c.contactStages.list(a) }));
13
+ register("create_contact_stage", "Cria etapa do funil; contacts:write.", { customer_id, label, color }, item, async (c, a) => ({
14
+ data: await c.contactStages.create(a),
15
+ }));
16
+ register("update_contact_stage", "Edita etapa do Cliente; contacts:write.", {
17
+ id: uuid,
18
+ customer_id,
19
+ label: label.optional(),
20
+ color: color.optional(),
21
+ position: z.number().int().positive().optional(),
22
+ }, item, async (c, a) => {
23
+ const { id, ...p } = a;
24
+ return { data: await c.contactStages.update(String(id), p) };
25
+ });
26
+ register("delete_contact_stage", "Exclui etapa do Cliente; contacts:write.", { id: uuid, customer_id }, success, async (c, a) => {
27
+ await c.contactStages.delete(String(a.id), {
28
+ customer_id: a.customer_id,
29
+ });
30
+ return emptyOperationResult();
31
+ });
32
+ register("reorder_contact_stages", "Reordena todas as etapas do Cliente uma única vez; contacts:write.", { customer_id, stage_ids: z.array(uuid).min(1).max(50) }, list, async (c, a) => ({
33
+ data: await c.contactStages.reorder(a),
34
+ }));
35
+ register("list_contact_fields", "Descobre campos personalizados e tipos (inclui datas usadas nas réguas); contacts:read.", {}, list, async (c) => ({ data: await c.contactFields.list() }));
36
+ register("create_contact_field", "Cria definição de campo personalizado da Conta; contacts:write.", {
37
+ label,
38
+ type: z.enum(["text", "number", "boolean", "date"]).optional(),
39
+ key: z.string().optional(),
40
+ }, item, async (c, a) => ({
41
+ data: await c.contactFields.create(a),
42
+ }));
43
+ register("update_contact_field", "Altera rótulo/ordem; chave e tipo permanecem imutáveis. contacts:write.", {
44
+ id: uuid,
45
+ label: label.optional(),
46
+ position: z.number().int().positive().optional(),
47
+ }, item, async (c, a) => {
48
+ const { id, ...p } = a;
49
+ return { data: await c.contactFields.update(String(id), p) };
50
+ });
51
+ register("delete_contact_field", "Exclui definição de campo personalizado; contacts:write.", { id: uuid }, success, async (c, a) => {
52
+ await c.contactFields.delete(String(a.id));
53
+ return emptyOperationResult();
54
+ });
55
+ }
56
+ //# sourceMappingURL=contact-configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact-configuration.js","sourceRoot":"","sources":["../../src/tools/contact-configuration.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@
2
2
  import { z } from "zod";
3
3
  import { emptyOperationResult } from "../register.js";
4
4
  import { contactResultSchema, emptyOperationResultSchema, listContactsResultSchema, } from "../schemas.js";
5
+ /** Limites finais (20 × 40) são validados pelo servidor após aparar e remover repetidas. */
6
+ const tagList = z.array(z.string().max(200)).max(200);
5
7
  export function registerContactTools(register) {
6
8
  register("list_contacts", "Lista contatos da conta (paginação por cursor: { data, paging }). Filtros opcionais por cliente, presença de cliente, busca parcial em nome/wa_id e janela de criação.", {
7
9
  customer_id: z.string().optional().describe("Filtra pelos números do cliente (derivado)."),
@@ -27,13 +29,17 @@ export function registerContactTools(register) {
27
29
  user_id: z.string().optional().describe("BSUID do usuário."),
28
30
  username: z.string().optional(),
29
31
  parent_user_id: z.string().optional(),
32
+ tags: tagList.optional().describe("Até 20 tags de 1–40 caracteres; repetidas (sem diferenciar maiúsculas) são removidas."),
30
33
  }, contactResultSchema, async (client, args) => ({
31
34
  data: await client.contacts.create(args),
32
35
  }));
33
- register("update_contact", "Atualiza um contato (campos editáveis: profile_name, username). Retorna { data }.", {
36
+ register("update_contact", "Atualiza um contato (campos editáveis: profile_name, username, tags). `tags` substitui a lista inteira; `add_tags`/`remove_tags` alteram a lista atual. Não combine `tags` com `add_tags`/`remove_tags`. Retorna { data }.", {
34
37
  id: z.string().describe("ID do contato (uuid interno)."),
35
38
  profile_name: z.string().optional(),
36
39
  username: z.string().optional(),
40
+ tags: tagList.optional().describe("Substitui todas as tags (até 20 × 40 caracteres)."),
41
+ add_tags: tagList.optional().describe("Acrescenta tags à lista atual."),
42
+ remove_tags: tagList.optional().describe("Remove tags da lista atual (sem diferenciar maiúsculas)."),
37
43
  }, contactResultSchema, async (client, args) => {
38
44
  const { id, ...body } = args;
39
45
  return { data: await client.contacts.update(String(id), body) };
@@ -1 +1 @@
1
- {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/tools/contacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/tools/contacts.ts"],"names":[],"mappings":"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"}