@servicialo/mcp-server 0.7.0 → 0.8.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.
Files changed (67) hide show
  1. package/README.en.md +392 -0
  2. package/README.md +315 -147
  3. package/dist/adapter-http.d.ts +51 -0
  4. package/dist/adapter-http.d.ts.map +1 -0
  5. package/dist/adapter-http.js +187 -0
  6. package/dist/adapter-http.js.map +1 -0
  7. package/dist/adapter.d.ts +42 -0
  8. package/dist/adapter.d.ts.map +1 -0
  9. package/dist/adapter.js +42 -0
  10. package/dist/adapter.js.map +1 -0
  11. package/dist/client.d.ts +5 -1
  12. package/dist/client.d.ts.map +1 -1
  13. package/dist/client.js +3 -0
  14. package/dist/client.js.map +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +63 -59
  17. package/dist/index.js.map +1 -1
  18. package/dist/mandate.d.ts +321 -0
  19. package/dist/mandate.d.ts.map +1 -0
  20. package/dist/mandate.js +349 -0
  21. package/dist/mandate.js.map +1 -0
  22. package/dist/provider-profile.d.ts +985 -0
  23. package/dist/provider-profile.d.ts.map +1 -0
  24. package/dist/provider-profile.js +210 -0
  25. package/dist/provider-profile.js.map +1 -0
  26. package/dist/tools/authenticated/cerrar.d.ts +5 -5
  27. package/dist/tools/authenticated/cerrar.d.ts.map +1 -1
  28. package/dist/tools/authenticated/cerrar.js.map +1 -1
  29. package/dist/tools/authenticated/comprometer.d.ts +4 -4
  30. package/dist/tools/authenticated/comprometer.d.ts.map +1 -1
  31. package/dist/tools/authenticated/comprometer.js.map +1 -1
  32. package/dist/tools/authenticated/delivery.d.ts +4 -4
  33. package/dist/tools/authenticated/delivery.d.ts.map +1 -1
  34. package/dist/tools/authenticated/delivery.js.map +1 -1
  35. package/dist/tools/authenticated/entender.d.ts +3 -3
  36. package/dist/tools/authenticated/entender.d.ts.map +1 -1
  37. package/dist/tools/authenticated/entender.js.map +1 -1
  38. package/dist/tools/authenticated/lifecycle.d.ts +5 -5
  39. package/dist/tools/authenticated/lifecycle.d.ts.map +1 -1
  40. package/dist/tools/authenticated/lifecycle.js.map +1 -1
  41. package/dist/tools/authenticated/resolve-auth.d.ts +118 -0
  42. package/dist/tools/authenticated/resolve-auth.d.ts.map +1 -0
  43. package/dist/tools/authenticated/resolve-auth.js +62 -0
  44. package/dist/tools/authenticated/resolve-auth.js.map +1 -0
  45. package/dist/tools/authenticated/resource.d.ts +295 -0
  46. package/dist/tools/authenticated/resource.d.ts.map +1 -0
  47. package/dist/tools/authenticated/resource.js +125 -0
  48. package/dist/tools/authenticated/resource.js.map +1 -0
  49. package/dist/tools/public/a2a.d.ts +18 -0
  50. package/dist/tools/public/a2a.d.ts.map +1 -0
  51. package/dist/tools/public/a2a.js +15 -0
  52. package/dist/tools/public/a2a.js.map +1 -0
  53. package/dist/tools/public/availability.d.ts +2 -2
  54. package/dist/tools/public/availability.d.ts.map +1 -1
  55. package/dist/tools/public/availability.js.map +1 -1
  56. package/dist/tools/public/registry.d.ts +8 -3
  57. package/dist/tools/public/registry.d.ts.map +1 -1
  58. package/dist/tools/public/registry.js +8 -0
  59. package/dist/tools/public/registry.js.map +1 -1
  60. package/dist/tools/public/resolve.d.ts +60 -0
  61. package/dist/tools/public/resolve.d.ts.map +1 -0
  62. package/dist/tools/public/resolve.js +60 -0
  63. package/dist/tools/public/resolve.js.map +1 -0
  64. package/dist/tools/public/services.d.ts +2 -2
  65. package/dist/tools/public/services.d.ts.map +1 -1
  66. package/dist/tools/public/services.js.map +1 -1
  67. package/package.json +2 -1
@@ -0,0 +1,62 @@
1
+ import { z } from 'zod';
2
+ export const resolveAuthTools = {
3
+ 'resolve.register': {
4
+ description: 'Registra una nueva organización en el resolver Servicialo con un orgSlug único global. ' +
5
+ 'Requiere al menos un endpoint (MCP o REST). El slug es portable: si la org migra de ' +
6
+ 'plataforma, conserva su slug y solo actualiza los endpoints.',
7
+ schema: z.object({
8
+ slug: z.string().describe('Identificador único (ej: clinica-dental-sur). 3-48 chars, lowercase, hyphens.'),
9
+ country: z.string().describe('País ISO 3166-1 alpha-2 (ej: cl, mx, ar)'),
10
+ name: z.string().describe('Nombre de la organización'),
11
+ mcp_url: z.string().optional().describe('URL del servidor MCP de la organización'),
12
+ rest_url: z.string().optional().describe('URL de la API REST de la organización'),
13
+ health_url: z.string().optional().describe('URL del health-check endpoint'),
14
+ legal_name: z.string().optional().describe('Nombre legal (si difiere del nombre comercial)'),
15
+ verticals: z.array(z.string()).optional().describe('Verticales de servicio (ej: ["salud", "dental"])'),
16
+ contact_email: z.string().optional().describe('Email de contacto'),
17
+ }),
18
+ handler: async (client, args) => {
19
+ return client.post('/api/servicialo/resolve/register', args);
20
+ },
21
+ },
22
+ 'resolve.update_endpoint': {
23
+ description: 'Actualiza los endpoints de una organización en el resolver. Esta es la operación de ' +
24
+ 'portabilidad: si la org migra de Coordinalo a otro CRM, actualiza sus URLs aquí y todos ' +
25
+ 'los agentes la encuentran automáticamente en la nueva ubicación.',
26
+ schema: z.object({
27
+ org_slug: z.string().describe('Slug de la organización'),
28
+ country: z.string().default('cl').describe('País ISO 3166-1 alpha-2. Default: cl'),
29
+ mcp_url: z.string().optional().describe('Nueva URL del servidor MCP'),
30
+ rest_url: z.string().optional().describe('Nueva URL de la API REST'),
31
+ health_url: z.string().optional().describe('Nueva URL del health-check'),
32
+ }),
33
+ handler: async (client, args) => {
34
+ const country = args.country ?? 'cl';
35
+ const { org_slug: _slug, country: _country, ...body } = args;
36
+ return client.patch(`/api/servicialo/resolve/${country}/${args.org_slug}/endpoint`, body);
37
+ },
38
+ },
39
+ 'telemetry.heartbeat': {
40
+ description: 'Envía un heartbeat al resolver Servicialo indicando que el nodo sigue activo. ' +
41
+ 'Opcionalmente incluye métricas de uso. Los nodos sin heartbeat por 7+ días se marcan inactivos.',
42
+ schema: z.object({
43
+ org_slug: z.string().describe('Slug de la organización'),
44
+ country: z.string().default('cl').describe('País ISO 3166-1 alpha-2. Default: cl'),
45
+ metrics: z
46
+ .object({
47
+ services_active: z.number().optional().describe('Servicios activos actualmente'),
48
+ appointments_30d: z.number().optional().describe('Citas en los últimos 30 días'),
49
+ })
50
+ .optional()
51
+ .describe('Métricas opcionales de uso'),
52
+ }),
53
+ handler: async (client, args) => {
54
+ const country = args.country ?? 'cl';
55
+ return client.patch(`/api/servicialo/resolve/${country}/${args.org_slug}/endpoint`, {
56
+ heartbeat: true,
57
+ metrics: args.metrics,
58
+ });
59
+ },
60
+ },
61
+ };
62
+ //# sourceMappingURL=resolve-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-auth.js","sourceRoot":"","sources":["../../../src/tools/authenticated/resolve-auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,295 @@
1
+ import { z } from 'zod';
2
+ import type { ServicialoAdapter } from '../../adapter.js';
3
+ import { ActorSchema } from '../schemas.js';
4
+ export declare const resourceTools: {
5
+ 'resource.list': {
6
+ description: string;
7
+ schema: z.ZodObject<{
8
+ organization_id: z.ZodString;
9
+ type: z.ZodOptional<z.ZodEnum<["room", "box", "chair", "equipment"]>>;
10
+ is_active: z.ZodOptional<z.ZodBoolean>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ organization_id: string;
13
+ type?: "room" | "box" | "chair" | "equipment" | undefined;
14
+ is_active?: boolean | undefined;
15
+ }, {
16
+ organization_id: string;
17
+ type?: "room" | "box" | "chair" | "equipment" | undefined;
18
+ is_active?: boolean | undefined;
19
+ }>;
20
+ handler: (client: ServicialoAdapter, args: {
21
+ organization_id: string;
22
+ type?: string;
23
+ is_active?: boolean;
24
+ }) => Promise<unknown>;
25
+ };
26
+ 'resource.get': {
27
+ description: string;
28
+ schema: z.ZodObject<{
29
+ resource_id: z.ZodString;
30
+ }, "strip", z.ZodTypeAny, {
31
+ resource_id: string;
32
+ }, {
33
+ resource_id: string;
34
+ }>;
35
+ handler: (client: ServicialoAdapter, args: {
36
+ resource_id: string;
37
+ }) => Promise<unknown>;
38
+ };
39
+ 'resource.create': {
40
+ description: string;
41
+ schema: z.ZodObject<{
42
+ organization_id: z.ZodString;
43
+ name: z.ZodString;
44
+ type: z.ZodOptional<z.ZodEnum<["room", "box", "chair", "equipment"]>>;
45
+ capacity: z.ZodDefault<z.ZodNumber>;
46
+ buffer_minutes: z.ZodDefault<z.ZodNumber>;
47
+ equipment: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
48
+ location: z.ZodOptional<z.ZodString>;
49
+ rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
50
+ actor: z.ZodObject<{
51
+ type: z.ZodEnum<["client", "provider", "organization", "agent"]>;
52
+ id: z.ZodString;
53
+ on_behalf_of: z.ZodOptional<z.ZodObject<{
54
+ type: z.ZodString;
55
+ id: z.ZodString;
56
+ }, "strip", z.ZodTypeAny, {
57
+ type: string;
58
+ id: string;
59
+ }, {
60
+ type: string;
61
+ id: string;
62
+ }>>;
63
+ }, "strip", z.ZodTypeAny, {
64
+ type: "client" | "provider" | "organization" | "agent";
65
+ id: string;
66
+ on_behalf_of?: {
67
+ type: string;
68
+ id: string;
69
+ } | undefined;
70
+ }, {
71
+ type: "client" | "provider" | "organization" | "agent";
72
+ id: string;
73
+ on_behalf_of?: {
74
+ type: string;
75
+ id: string;
76
+ } | undefined;
77
+ }>;
78
+ }, "strip", z.ZodTypeAny, {
79
+ organization_id: string;
80
+ name: string;
81
+ capacity: number;
82
+ buffer_minutes: number;
83
+ actor: {
84
+ type: "client" | "provider" | "organization" | "agent";
85
+ id: string;
86
+ on_behalf_of?: {
87
+ type: string;
88
+ id: string;
89
+ } | undefined;
90
+ };
91
+ location?: string | undefined;
92
+ type?: "room" | "box" | "chair" | "equipment" | undefined;
93
+ equipment?: string[] | undefined;
94
+ rules?: Record<string, unknown> | undefined;
95
+ }, {
96
+ organization_id: string;
97
+ name: string;
98
+ actor: {
99
+ type: "client" | "provider" | "organization" | "agent";
100
+ id: string;
101
+ on_behalf_of?: {
102
+ type: string;
103
+ id: string;
104
+ } | undefined;
105
+ };
106
+ location?: string | undefined;
107
+ type?: "room" | "box" | "chair" | "equipment" | undefined;
108
+ equipment?: string[] | undefined;
109
+ capacity?: number | undefined;
110
+ buffer_minutes?: number | undefined;
111
+ rules?: Record<string, unknown> | undefined;
112
+ }>;
113
+ handler: (client: ServicialoAdapter, args: {
114
+ organization_id: string;
115
+ name: string;
116
+ type?: string;
117
+ capacity?: number;
118
+ buffer_minutes?: number;
119
+ equipment?: string[];
120
+ location?: string;
121
+ rules?: Record<string, unknown>;
122
+ actor: z.infer<typeof ActorSchema>;
123
+ }) => Promise<unknown>;
124
+ };
125
+ 'resource.update': {
126
+ description: string;
127
+ schema: z.ZodObject<{
128
+ resource_id: z.ZodString;
129
+ name: z.ZodOptional<z.ZodString>;
130
+ type: z.ZodOptional<z.ZodEnum<["room", "box", "chair", "equipment"]>>;
131
+ capacity: z.ZodOptional<z.ZodNumber>;
132
+ buffer_minutes: z.ZodOptional<z.ZodNumber>;
133
+ equipment: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
134
+ location: z.ZodOptional<z.ZodString>;
135
+ rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
136
+ actor: z.ZodObject<{
137
+ type: z.ZodEnum<["client", "provider", "organization", "agent"]>;
138
+ id: z.ZodString;
139
+ on_behalf_of: z.ZodOptional<z.ZodObject<{
140
+ type: z.ZodString;
141
+ id: z.ZodString;
142
+ }, "strip", z.ZodTypeAny, {
143
+ type: string;
144
+ id: string;
145
+ }, {
146
+ type: string;
147
+ id: string;
148
+ }>>;
149
+ }, "strip", z.ZodTypeAny, {
150
+ type: "client" | "provider" | "organization" | "agent";
151
+ id: string;
152
+ on_behalf_of?: {
153
+ type: string;
154
+ id: string;
155
+ } | undefined;
156
+ }, {
157
+ type: "client" | "provider" | "organization" | "agent";
158
+ id: string;
159
+ on_behalf_of?: {
160
+ type: string;
161
+ id: string;
162
+ } | undefined;
163
+ }>;
164
+ }, "strip", z.ZodTypeAny, {
165
+ resource_id: string;
166
+ actor: {
167
+ type: "client" | "provider" | "organization" | "agent";
168
+ id: string;
169
+ on_behalf_of?: {
170
+ type: string;
171
+ id: string;
172
+ } | undefined;
173
+ };
174
+ location?: string | undefined;
175
+ type?: "room" | "box" | "chair" | "equipment" | undefined;
176
+ name?: string | undefined;
177
+ equipment?: string[] | undefined;
178
+ capacity?: number | undefined;
179
+ buffer_minutes?: number | undefined;
180
+ rules?: Record<string, unknown> | undefined;
181
+ }, {
182
+ resource_id: string;
183
+ actor: {
184
+ type: "client" | "provider" | "organization" | "agent";
185
+ id: string;
186
+ on_behalf_of?: {
187
+ type: string;
188
+ id: string;
189
+ } | undefined;
190
+ };
191
+ location?: string | undefined;
192
+ type?: "room" | "box" | "chair" | "equipment" | undefined;
193
+ name?: string | undefined;
194
+ equipment?: string[] | undefined;
195
+ capacity?: number | undefined;
196
+ buffer_minutes?: number | undefined;
197
+ rules?: Record<string, unknown> | undefined;
198
+ }>;
199
+ handler: (client: ServicialoAdapter, args: {
200
+ resource_id: string;
201
+ name?: string;
202
+ type?: string;
203
+ capacity?: number;
204
+ buffer_minutes?: number;
205
+ equipment?: string[];
206
+ location?: string;
207
+ rules?: Record<string, unknown>;
208
+ actor: z.infer<typeof ActorSchema>;
209
+ }) => Promise<unknown>;
210
+ };
211
+ 'resource.delete': {
212
+ description: string;
213
+ schema: z.ZodObject<{
214
+ resource_id: z.ZodString;
215
+ actor: z.ZodObject<{
216
+ type: z.ZodEnum<["client", "provider", "organization", "agent"]>;
217
+ id: z.ZodString;
218
+ on_behalf_of: z.ZodOptional<z.ZodObject<{
219
+ type: z.ZodString;
220
+ id: z.ZodString;
221
+ }, "strip", z.ZodTypeAny, {
222
+ type: string;
223
+ id: string;
224
+ }, {
225
+ type: string;
226
+ id: string;
227
+ }>>;
228
+ }, "strip", z.ZodTypeAny, {
229
+ type: "client" | "provider" | "organization" | "agent";
230
+ id: string;
231
+ on_behalf_of?: {
232
+ type: string;
233
+ id: string;
234
+ } | undefined;
235
+ }, {
236
+ type: "client" | "provider" | "organization" | "agent";
237
+ id: string;
238
+ on_behalf_of?: {
239
+ type: string;
240
+ id: string;
241
+ } | undefined;
242
+ }>;
243
+ }, "strip", z.ZodTypeAny, {
244
+ resource_id: string;
245
+ actor: {
246
+ type: "client" | "provider" | "organization" | "agent";
247
+ id: string;
248
+ on_behalf_of?: {
249
+ type: string;
250
+ id: string;
251
+ } | undefined;
252
+ };
253
+ }, {
254
+ resource_id: string;
255
+ actor: {
256
+ type: "client" | "provider" | "organization" | "agent";
257
+ id: string;
258
+ on_behalf_of?: {
259
+ type: string;
260
+ id: string;
261
+ } | undefined;
262
+ };
263
+ }>;
264
+ handler: (client: ServicialoAdapter, args: {
265
+ resource_id: string;
266
+ actor: z.infer<typeof ActorSchema>;
267
+ }) => Promise<unknown>;
268
+ };
269
+ 'resource.get_availability': {
270
+ description: string;
271
+ schema: z.ZodObject<{
272
+ resource_id: z.ZodString;
273
+ date_from: z.ZodString;
274
+ date_to: z.ZodString;
275
+ timezone: z.ZodOptional<z.ZodString>;
276
+ }, "strip", z.ZodTypeAny, {
277
+ resource_id: string;
278
+ date_from: string;
279
+ date_to: string;
280
+ timezone?: string | undefined;
281
+ }, {
282
+ resource_id: string;
283
+ date_from: string;
284
+ date_to: string;
285
+ timezone?: string | undefined;
286
+ }>;
287
+ handler: (client: ServicialoAdapter, args: {
288
+ resource_id: string;
289
+ date_from: string;
290
+ date_to: string;
291
+ timezone?: string;
292
+ }) => Promise<unknown>;
293
+ };
294
+ };
295
+ //# sourceMappingURL=resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/tools/authenticated/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAA8C,MAAM,eAAe,CAAC;AAExF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;0BAWE,iBAAiB,QAAQ;YAAE,eAAe,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,OAAO,CAAA;SAAE;;;;;;;;;;;0BAexF,iBAAiB,QAAQ;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAyBhD,iBAAiB,QAAQ;YAC/C,eAAe,EAAE,MAAM,CAAC;YACxB,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAChC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;SACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAmCuB,iBAAiB,QAAQ;YAC/C,WAAW,EAAE,MAAM,CAAC;YACpB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAChC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;SACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAqBuB,iBAAiB,QAAQ;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;0BAiBpF,iBAAiB,QAAQ;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE;;CAQlI,CAAC"}
@@ -0,0 +1,125 @@
1
+ import { z } from 'zod';
2
+ import { ActorSchema } from '../schemas.js';
3
+ export const resourceTools = {
4
+ 'resource.list': {
5
+ description: '[Gestión de Recursos] Lista los recursos físicos de una organización (salas, boxes, sillas, equipamiento). Soporta filtros opcionales por tipo y estado activo.',
6
+ schema: z.object({
7
+ organization_id: z.string().describe('ID de la organización'),
8
+ type: z.enum(['room', 'box', 'chair', 'equipment']).optional()
9
+ .describe('Filtrar por tipo de recurso'),
10
+ is_active: z.boolean().optional()
11
+ .describe('Filtrar por estado activo/inactivo'),
12
+ }),
13
+ handler: async (client, args) => {
14
+ return client.get('/coordinalo/resources', {
15
+ organizationId: args.organization_id,
16
+ type: args.type,
17
+ isActive: args.is_active !== undefined ? String(args.is_active) : undefined,
18
+ });
19
+ },
20
+ },
21
+ 'resource.get': {
22
+ description: '[Gestión de Recursos] Obtiene los detalles completos de un recurso físico, incluyendo sus bloques de disponibilidad recurrente (ResourceAvailability).',
23
+ schema: z.object({
24
+ resource_id: z.string().describe('ID del recurso'),
25
+ }),
26
+ handler: async (client, args) => {
27
+ return client.get(`/coordinalo/resources/${args.resource_id}`);
28
+ },
29
+ },
30
+ 'resource.create': {
31
+ description: '[Gestión de Recursos] Crea un nuevo recurso físico para una organización. El recurso se crea activo por defecto. Valida todos los campos según el schema Resource (Dimensión 3.5b del protocolo).',
32
+ schema: z.object({
33
+ organization_id: z.string().describe('ID de la organización propietaria'),
34
+ name: z.string().describe('Nombre del recurso (ej: "Box 3", "Sala Principal")'),
35
+ type: z.enum(['room', 'box', 'chair', 'equipment']).optional()
36
+ .describe('Tipo de recurso físico'),
37
+ capacity: z.number().default(1)
38
+ .describe('Capacidad simultánea del recurso'),
39
+ buffer_minutes: z.number().default(0)
40
+ .describe('Minutos de preparación entre sesiones'),
41
+ equipment: z.array(z.string()).optional()
42
+ .describe('Equipamiento disponible en el recurso'),
43
+ location: z.string().optional()
44
+ .describe('Ubicación física del recurso dentro de la organización'),
45
+ rules: z.record(z.unknown()).optional()
46
+ .describe('Reglas específicas del recurso'),
47
+ actor: ActorSchema.describe('Quién realiza la acción'),
48
+ }),
49
+ handler: async (client, args) => {
50
+ return client.post('/coordinalo/resources', {
51
+ organizationId: args.organization_id,
52
+ name: args.name,
53
+ type: args.type,
54
+ capacity: args.capacity,
55
+ bufferMinutes: args.buffer_minutes,
56
+ equipment: args.equipment,
57
+ location: args.location,
58
+ rules: args.rules,
59
+ actor: args.actor,
60
+ });
61
+ },
62
+ },
63
+ 'resource.update': {
64
+ description: '[Gestión de Recursos] Actualiza parcialmente un recurso físico existente (patch semantics). Solo se modifican los campos proporcionados; los demás permanecen sin cambio.',
65
+ schema: z.object({
66
+ resource_id: z.string().describe('ID del recurso a actualizar'),
67
+ name: z.string().optional().describe('Nuevo nombre del recurso'),
68
+ type: z.enum(['room', 'box', 'chair', 'equipment']).optional()
69
+ .describe('Nuevo tipo de recurso'),
70
+ capacity: z.number().optional()
71
+ .describe('Nueva capacidad simultánea'),
72
+ buffer_minutes: z.number().optional()
73
+ .describe('Nuevos minutos de preparación entre sesiones'),
74
+ equipment: z.array(z.string()).optional()
75
+ .describe('Nuevo equipamiento disponible'),
76
+ location: z.string().optional()
77
+ .describe('Nueva ubicación física'),
78
+ rules: z.record(z.unknown()).optional()
79
+ .describe('Nuevas reglas específicas'),
80
+ actor: ActorSchema.describe('Quién realiza la acción'),
81
+ }),
82
+ handler: async (client, args) => {
83
+ return client.patch(`/coordinalo/resources/${args.resource_id}`, {
84
+ name: args.name,
85
+ type: args.type,
86
+ capacity: args.capacity,
87
+ bufferMinutes: args.buffer_minutes,
88
+ equipment: args.equipment,
89
+ location: args.location,
90
+ rules: args.rules,
91
+ actor: args.actor,
92
+ });
93
+ },
94
+ },
95
+ 'resource.delete': {
96
+ description: '[Gestión de Recursos] Desactiva un recurso físico (soft delete — establece is_active = false). El recurso nunca se elimina físicamente; solo se marca como inactivo y deja de aparecer en búsquedas y disponibilidad.',
97
+ schema: z.object({
98
+ resource_id: z.string().describe('ID del recurso a desactivar'),
99
+ actor: ActorSchema.describe('Quién realiza la acción'),
100
+ }),
101
+ handler: async (client, args) => {
102
+ return client.patch(`/coordinalo/resources/${args.resource_id}`, {
103
+ isActive: false,
104
+ actor: args.actor,
105
+ });
106
+ },
107
+ },
108
+ 'resource.get_availability': {
109
+ description: '[Gestión de Recursos] Consulta la disponibilidad de un recurso físico en un rango de fechas. Retorna los slots disponibles del recurso independiente de cualquier servicio — es una consulta pura al calendario del recurso. Útil para planificación de capacidad y verificación de conflictos.',
110
+ schema: z.object({
111
+ resource_id: z.string().describe('ID del recurso'),
112
+ date_from: z.string().describe('Fecha de inicio del rango (ISO date, ej: 2026-03-15)'),
113
+ date_to: z.string().describe('Fecha de fin del rango (ISO date, ej: 2026-03-22)'),
114
+ timezone: z.string().optional().describe('Zona horaria IANA (ej: America/Santiago). Por defecto usa la del recurso.'),
115
+ }),
116
+ handler: async (client, args) => {
117
+ return client.get(`/coordinalo/resources/${args.resource_id}/availability`, {
118
+ dateFrom: args.date_from,
119
+ dateTo: args.date_to,
120
+ timezone: args.timezone,
121
+ });
122
+ },
123
+ },
124
+ };
125
+ //# sourceMappingURL=resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/tools/authenticated/resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import type { ServicialoAdapter } from '../../adapter.js';
3
+ export declare const a2aTools: {
4
+ 'a2a.get_agent_card': {
5
+ description: string;
6
+ schema: z.ZodObject<{
7
+ org_slug: z.ZodString;
8
+ }, "strip", z.ZodTypeAny, {
9
+ org_slug: string;
10
+ }, {
11
+ org_slug: string;
12
+ }>;
13
+ handler: (client: ServicialoAdapter, args: {
14
+ org_slug: string;
15
+ }) => Promise<unknown>;
16
+ };
17
+ };
18
+ //# sourceMappingURL=a2a.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../../../src/tools/public/a2a.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,eAAO,MAAM,QAAQ;;;;;;;;;;0BAQO,iBAAiB,QAAQ;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE;;CAOxE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ export const a2aTools = {
3
+ 'a2a.get_agent_card': {
4
+ description: 'Get the A2A Agent Card for a Servicialo-compatible organization. ' +
5
+ 'Use this to discover booking capabilities before attempting to book.',
6
+ schema: z.object({
7
+ org_slug: z.string().describe('Organization slug (e.g. "clinica-dental-sur")'),
8
+ }),
9
+ handler: async (client, args) => {
10
+ const result = await client.pub.get(`/api/${args.org_slug}/.well-known/agent.json`);
11
+ return result;
12
+ },
13
+ },
14
+ };
15
+ //# sourceMappingURL=a2a.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a.js","sourceRoot":"","sources":["../../../src/tools/public/a2a.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,oBAAoB,EAAE;QACpB,WAAW,EACT,mEAAmE;YACnE,sEAAsE;QACxE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;SAC/E,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAyB,EAAE,IAA0B,EAAE,EAAE;YACvE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CACjC,QAAQ,IAAI,CAAC,QAAQ,yBAAyB,CAC/C,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;CACF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import type { CoordinaloClient } from '../../client.js';
2
+ import type { ServicialoAdapter } from '../../adapter.js';
3
3
  export declare const publicAvailabilityTools: {
4
4
  'scheduling.check_availability': {
5
5
  description: string;
@@ -25,7 +25,7 @@ export declare const publicAvailabilityTools: {
25
25
  provider_id?: string | undefined;
26
26
  resource_id?: string | undefined;
27
27
  }>;
28
- handler: (client: CoordinaloClient, args: {
28
+ handler: (client: ServicialoAdapter, args: {
29
29
  org_slug: string;
30
30
  service_id?: string;
31
31
  provider_id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"availability.d.ts","sourceRoot":"","sources":["../../../src/tools/public/availability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;0BAWR,gBAAgB,QAAQ;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE;;CAU5K,CAAC"}
1
+ {"version":3,"file":"availability.d.ts","sourceRoot":"","sources":["../../../src/tools/public/availability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;0BAWR,iBAAiB,QAAQ;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE;;CAU7K,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"availability.js","sourceRoot":"","sources":["../../../src/tools/public/availability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,+BAA+B,EAAE;QAC/B,WAAW,EAAE,oSAAoS;QACjT,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACxE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC1E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iFAAiF,CAAC;YAC9H,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACzE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;SACrE,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,IAA+H,EAAE,EAAE;YAC3K,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,QAAQ,eAAe,EAAE;gBACrE,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,UAAU,EAAE,IAAI,CAAC,WAAW;gBAC5B,UAAU,EAAE,IAAI,CAAC,WAAW;gBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS;gBACpB,EAAE,EAAE,IAAI,CAAC,OAAO;aACjB,CAAC,CAAC;QACL,CAAC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"availability.js","sourceRoot":"","sources":["../../../src/tools/public/availability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,+BAA+B,EAAE;QAC/B,WAAW,EAAE,oSAAoS;QACjT,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACxE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC1E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iFAAiF,CAAC;YAC9H,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACzE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;SACrE,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAyB,EAAE,IAA+H,EAAE,EAAE;YAC5K,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,QAAQ,eAAe,EAAE;gBACrE,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,UAAU,EAAE,IAAI,CAAC,WAAW;gBAC5B,UAAU,EAAE,IAAI,CAAC,WAAW;gBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS;gBACpB,EAAE,EAAE,IAAI,CAAC,OAAO;aACjB,CAAC,CAAC;QACL,CAAC;KACF;CACF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import type { CoordinaloClient } from '../../client.js';
2
+ import type { ServicialoAdapter } from '../../adapter.js';
3
3
  export declare const registryTools: {
4
4
  'registry.search': {
5
5
  description: string;
@@ -19,13 +19,18 @@ export declare const registryTools: {
19
19
  country?: string | undefined;
20
20
  limit?: number | undefined;
21
21
  }>;
22
- handler: (client: CoordinaloClient, args: {
22
+ handler: (client: ServicialoAdapter, args: {
23
23
  vertical: string;
24
24
  location?: string;
25
25
  country?: string;
26
26
  limit?: number;
27
27
  }) => Promise<unknown>;
28
28
  };
29
+ 'registry.manifest': {
30
+ description: string;
31
+ schema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
32
+ handler: (client: ServicialoAdapter) => Promise<unknown>;
33
+ };
29
34
  'registry.get_organization': {
30
35
  description: string;
31
36
  schema: z.ZodObject<{
@@ -38,7 +43,7 @@ export declare const registryTools: {
38
43
  org_slug: string;
39
44
  country?: string | undefined;
40
45
  }>;
41
- handler: (client: CoordinaloClient, args: {
46
+ handler: (client: ServicialoAdapter, args: {
42
47
  org_slug: string;
43
48
  country?: string;
44
49
  }) => Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/tools/public/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;0BASE,gBAAgB,QAAQ;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;0BAiBjG,gBAAgB,QAAQ;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE;;CAOzF,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/tools/public/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;0BASE,iBAAiB,QAAQ;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;0BAclG,iBAAiB;;;;;;;;;;;;;;0BAYjB,iBAAiB,QAAQ;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE;;CAO1F,CAAC"}
@@ -18,6 +18,14 @@ export const registryTools = {
18
18
  return result;
19
19
  },
20
20
  },
21
+ 'registry.manifest': {
22
+ description: 'Obtiene el manifiesto del servidor Servicialo: versión del protocolo, nombre, descripción y endpoints disponibles',
23
+ schema: z.object({}),
24
+ handler: async (client) => {
25
+ const result = await client.pub.get('/api/servicialo/manifest');
26
+ return result;
27
+ },
28
+ },
21
29
  'registry.get_organization': {
22
30
  description: 'Obtiene el detalle público de una organización: servicios, profesionales y configuración de booking',
23
31
  schema: z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/tools/public/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,iBAAiB,EAAE;QACjB,WAAW,EAAE,sFAAsF;QACnG,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;YAC7F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YACxE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YACnG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;SACxE,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,IAA+E,EAAE,EAAE;YAC3H,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE;gBAC9D,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;gBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;IAED,2BAA2B,EAAE;QAC3B,WAAW,EAAE,qGAAqG;QAClH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACjF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC;SACpG,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,IAA4C,EAAE,EAAE;YACxF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,QAAQ,WAAW,EAAE;gBAC/E,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;aAC9B,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/tools/public/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,iBAAiB,EAAE;QACjB,WAAW,EAAE,sFAAsF;QACnG,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;YAC7F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YACxE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YACnG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;SACxE,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAyB,EAAE,IAA+E,EAAE,EAAE;YAC5H,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE;gBAC9D,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;gBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;IAED,mBAAmB,EAAE;QACnB,WAAW,EAAE,mHAAmH;QAChI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,KAAK,EAAE,MAAyB,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YAChE,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;IAED,2BAA2B,EAAE;QAC3B,WAAW,EAAE,qGAAqG;QAClH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACjF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC;SACpG,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAyB,EAAE,IAA4C,EAAE,EAAE;YACzF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,QAAQ,WAAW,EAAE;gBAC/E,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;aAC9B,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;CACF,CAAC"}