@servicialo/mcp-server 0.8.0 → 0.9.1

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/README.en.md CHANGED
@@ -29,26 +29,36 @@ Servicialo is an **open protocol**, not a platform. It defines how professional
29
29
 
30
30
  The relationship is like HTTP to Apache, or SMTP to Gmail: Servicialo defines the rules, implementations bring them to life.
31
31
 
32
- The protocol models every service across **8 orthogonal dimensions** (identity, provider, client, schedule, location, lifecycle, proof of delivery, billing) and defines **8 lifecycle states** that are universal across verticals — healthcare, legal, education, home services:
32
+ The protocol models every service across **8 dimensions**, **9 lifecycle states**, **6 exception flows**, and **7 core principles** that are universal across verticals — healthcare, legal, education, home services:
33
33
 
34
34
  ```
35
- Requested → Scheduled → Confirmed → In Progress → Delivered → Documented → Charged → Verified
35
+ Requested → Scheduled → Confirmed → In Progress → Completed → Documented → InvoicedCollected → Verified
36
36
  ```
37
37
 
38
38
  Any service, in any vertical, follows this sequence. Vertical-specific logic lives *within* each state, but the state machine is invariant.
39
39
 
40
40
  ## What This MCP Server Does
41
41
 
42
- This package exposes the Servicialo protocol as 20 MCP tools organized by the **6 phases** of a service lifecycle. An agent doesn't call endpoints by database entity — it follows the natural flow of coordinating a service.
42
+ This package exposes the Servicialo protocol as 34 MCP tools organized by the **7 lifecycle phases** (0–6, including DNS resolution), plus resource management and resolver administration tools. An agent doesn't call endpoints by database entity — it follows the natural flow of coordinating a service.
43
43
 
44
- ### Phase 1Discovery (4 public tools, no auth required)
44
+ ### Phase 0DNS Resolution (3 public tools, no auth required)
45
+
46
+ | Tool | Description |
47
+ |---|---|
48
+ | `resolve.lookup` | Resolve an orgSlug to its MCP/REST endpoint and trust level (equivalent to DNS lookup) |
49
+ | `resolve.search` | Search organizations registered in the global resolver by country and vertical |
50
+ | `trust.get_score` | Get trust score for an organization (score 0-100, level, last activity) |
51
+
52
+ ### Phase 1 — Discovery (6 public tools, no auth required)
45
53
 
46
54
  | Tool | Description |
47
55
  |---|---|
48
56
  | `registry.search` | Search organizations by vertical, location, country |
49
57
  | `registry.get_organization` | Get public details: services, providers, booking config |
58
+ | `registry.manifest` | Get server manifest: capabilities, protocol version, organization metadata |
50
59
  | `scheduling.check_availability` | Check available slots (3-variable: provider ∧ client ∧ resource) |
51
60
  | `services.list` | List the public service catalog of an organization |
61
+ | `a2a.get_agent_card` | Get an organization's A2A Agent Card for inter-agent discovery |
52
62
 
53
63
  ### Phase 2 — Understand (2 tools)
54
64
 
@@ -91,6 +101,25 @@ This package exposes the Servicialo protocol as 20 MCP tools organized by the **
91
101
  | `payments.record_payment` | Record payment received against a sale | `payment:write` |
92
102
  | `payments.get_status` | Get payment status for a sale or client account balance | `payment:read` |
93
103
 
104
+ ### Resource Management (6 tools)
105
+
106
+ | Tool | Description | Scopes |
107
+ |---|---|---|
108
+ | `resource.list` | List physical resources by organization | `resource:read` |
109
+ | `resource.get` | Get resource details with availability slots | `resource:read` |
110
+ | `resource.create` | Create a physical resource (room, box, equipment) | `resource:write` |
111
+ | `resource.update` | Update resource (patch semantics) | `resource:write` |
112
+ | `resource.delete` | Deactivate resource (soft delete: `is_active = false`) | `resource:write` |
113
+ | `resource.get_availability` | Check resource availability by date range | `resource:read` |
114
+
115
+ ### Resolver Administration (3 tools)
116
+
117
+ | Tool | Description | Scopes |
118
+ |---|---|---|
119
+ | `resolve.register` | Register organization in the global resolver with MCP/REST endpoints | `resolve:write` |
120
+ | `resolve.update_endpoint` | Update registered endpoints (portability between backends) | `resolve:write` |
121
+ | `telemetry.heartbeat` | Send heartbeat to the resolver indicating the node is active | `telemetry:write` |
122
+
94
123
  ## Installation & Quickstart
95
124
 
96
125
  ### Option 1: Discovery mode (zero config)
@@ -99,7 +128,7 @@ This package exposes the Servicialo protocol as 20 MCP tools organized by the **
99
128
  npx -y @servicialo/mcp-server
100
129
  ```
101
130
 
102
- No API key. No org ID. 4 public tools available immediately. Try it:
131
+ No API key. No org ID. 9 public tools available immediately (resolver + discovery). Try it:
103
132
 
104
133
  ```json
105
134
  {
@@ -117,7 +146,7 @@ No API key. No org ID. 4 public tools available immediately. Try it:
117
146
  SERVICIALO_API_KEY=your_key SERVICIALO_ORG_ID=your_org npx -y @servicialo/mcp-server
118
147
  ```
119
148
 
120
- All 20 tools unlocked.
149
+ All 34 tools unlocked.
121
150
 
122
151
  ### Claude Desktop / Cursor / any MCP client
123
152
 
@@ -148,6 +177,7 @@ Omit the `env` block for discovery-only mode.
148
177
  | `SERVICIALO_ORG_ID` | No | — | Organization slug. Enables authenticated mode |
149
178
  | `SERVICIALO_BASE_URL` | No | `http://localhost:3000` | API endpoint of the Servicialo-compatible platform |
150
179
  | `SERVICIALO_ADAPTER` | No | `coordinalo` | Backend adapter: `coordinalo` or `http` |
180
+ | `SERVICIALO_TELEMETRY` | No | `true` | Set to `false` to disable anonymous telemetry |
151
181
 
152
182
  Both `SERVICIALO_API_KEY` and `SERVICIALO_ORG_ID` must be set together. If only one is present, the server falls back to discovery mode with a warning.
153
183
 
@@ -357,7 +387,7 @@ The full Servicialo protocol specification is available at:
357
387
  - **Current stable version:** 0.7
358
388
  - **JSON Schemas:** [`service.schema.json`](https://github.com/servicialo/protocol/blob/main/schema/service.schema.json), [`service-order.schema.json`](https://github.com/servicialo/protocol/blob/main/schema/service-order.schema.json), [`service-mandate.schema.json`](https://github.com/servicialo/protocol/blob/main/schema/service-mandate.schema.json)
359
389
 
360
- The spec covers the 8 service dimensions, 8 lifecycle states, 5 exception flows (no-show, cancellation, dispute, reschedule, partial delivery), the two-entity architecture (atomic Service + Service Order), and the Delegated Agency Model.
390
+ The spec covers the 8 dimensions, 9 lifecycle states, 6 exception flows (no-show, cancellation, dispute, reschedule, partial delivery), 7 core principles, the two-entity architecture (atomic Service + Service Order), the Delegated Agency Model, DNS resolution, and A2A interoperability.
361
391
 
362
392
  ## Reference Implementation
363
393
 
@@ -387,6 +417,36 @@ Servicialo follows semantic versioning for the protocol specification:
387
417
  - Inter-node federation (how two Servicialo implementations interoperate)
388
418
  - Agent SDK patterns for Python and TypeScript
389
419
 
420
+ ## Telemetry
421
+
422
+ On startup, the MCP server sends a single anonymous POST to `https://servicialo.com/api/telemetry/ping` with:
423
+
424
+ ```json
425
+ {
426
+ "event": "node_initialized",
427
+ "version": "0.9.0",
428
+ "ts": 1711300000000
429
+ }
430
+ ```
431
+
432
+ **That is everything that gets sent.** No organization info, API keys, patient data, IPs, or personal identifiers are transmitted. The ping is fire-and-forget: if it fails, the error is silently discarded and never blocks server operation.
433
+
434
+ ### Disable telemetry
435
+
436
+ ```bash
437
+ SERVICIALO_TELEMETRY=false npx -y @servicialo/mcp-server
438
+ ```
439
+
440
+ Or in MCP configuration:
441
+
442
+ ```json
443
+ {
444
+ "env": {
445
+ "SERVICIALO_TELEMETRY": "false"
446
+ }
447
+ }
448
+ ```
449
+
390
450
  ## License
391
451
 
392
452
  Apache-2.0 — any implementation, commercial or otherwise, is welcome. See [LICENSE](./LICENSE).
package/README.md CHANGED
@@ -29,17 +29,17 @@ Servicialo es un **protocolo abierto**, no una plataforma. Define cómo los serv
29
29
 
30
30
  La relación es como HTTP con Apache, o SMTP con Gmail: Servicialo define las reglas, las implementaciones les dan vida.
31
31
 
32
- El protocolo modela cada servicio a través de **8 dimensiones ortogonales** (identidad, prestador, cliente, agenda, ubicación, ciclo de vida, prueba de entrega, facturación) y define **8 estados de ciclo de vida** universales entre verticales salud, legal, educación, servicios domiciliarios:
32
+ El protocolo modela cada servicio a través de **8 dimensiones**, **9 estados del ciclo de vida**, **6 flujos de excepción** y **7 principios fundamentales** universales entre verticales (salud, legal, educación, servicios domiciliarios):
33
33
 
34
34
  ```
35
- Solicitado → Agendado → Confirmado → En Curso → Entregado → Documentado → Cobrado → Verificado
35
+ Solicitado → Agendado → Confirmado → En Curso → Completado → Documentado → Facturado → Cobrado → Verificado
36
36
  ```
37
37
 
38
38
  Cualquier servicio, en cualquier vertical, sigue esta secuencia. La lógica específica del vertical vive *dentro* de cada estado, pero la máquina de estados es invariante.
39
39
 
40
40
  ## Qué Hace Este MCP Server
41
41
 
42
- Este paquete expone el protocolo Servicialo como 23 herramientas MCP organizadas por **7 fases** del ciclo de vida de un servicio (incluyendo resolución DNS). Un agente no llama endpoints por entidad de base de datos — sigue el flujo natural de coordinar un servicio.
42
+ Este paquete expone el protocolo Servicialo como 34 herramientas MCP organizadas por las **7 fases** del ciclo de vida de un servicio (0–6, incluyendo resolución DNS), más herramientas de gestión de recursos y administración del resolver. Un agente no llama endpoints por entidad de base de datos — sigue el flujo natural de coordinar un servicio.
43
43
 
44
44
  ### Fase 0 — Resolución DNS (3 herramientas públicas, sin autenticación)
45
45
 
@@ -49,14 +49,16 @@ Este paquete expone el protocolo Servicialo como 23 herramientas MCP organizadas
49
49
  | `resolve.search` | Buscar organizaciones registradas por país y vertical en el resolver global |
50
50
  | `trust.get_score` | Obtener puntaje de confianza de una organización (score 0-100, nivel, última actividad) |
51
51
 
52
- ### Fase 1 — Descubrimiento (4 herramientas públicas, sin autenticación)
52
+ ### Fase 1 — Descubrimiento (6 herramientas públicas, sin autenticación)
53
53
 
54
54
  | Herramienta | Descripción |
55
55
  |---|---|
56
56
  | `registry.search` | Buscar organizaciones por vertical, ubicación, país |
57
57
  | `registry.get_organization` | Obtener detalles públicos: servicios, prestadores, configuración de reservas |
58
+ | `registry.manifest` | Obtener manifiesto del servidor: capacidades, versión del protocolo, metadata de organización |
58
59
  | `scheduling.check_availability` | Consultar disponibilidad (3 variables: prestador ∧ cliente ∧ recurso) |
59
60
  | `services.list` | Listar el catálogo público de servicios de una organización |
61
+ | `a2a.get_agent_card` | Obtener la Agent Card A2A de una organización para descubrimiento inter-agente |
60
62
 
61
63
  ### Fase 2 — Entender (2 herramientas)
62
64
 
@@ -99,6 +101,25 @@ Este paquete expone el protocolo Servicialo como 23 herramientas MCP organizadas
99
101
  | `payments.record_payment` | Registrar pago recibido contra una venta | `payment:write` |
100
102
  | `payments.get_status` | Obtener estado de pago de una venta o saldo de cuenta del cliente | `payment:read` |
101
103
 
104
+ ### Gestión de Recursos (6 herramientas)
105
+
106
+ | Herramienta | Descripción | Scopes |
107
+ |---|---|---|
108
+ | `resource.list` | Listar recursos físicos de una organización | `resource:read` |
109
+ | `resource.get` | Obtener detalles de un recurso con sus slots de disponibilidad | `resource:read` |
110
+ | `resource.create` | Crear un nuevo recurso físico (sala, box, equipamiento) | `resource:write` |
111
+ | `resource.update` | Actualizar recurso (patch semántico) | `resource:write` |
112
+ | `resource.delete` | Desactivar recurso (soft delete: `is_active = false`) | `resource:write` |
113
+ | `resource.get_availability` | Consultar disponibilidad de un recurso por rango de fechas | `resource:read` |
114
+
115
+ ### Administración del Resolver (3 herramientas)
116
+
117
+ | Herramienta | Descripción | Scopes |
118
+ |---|---|---|
119
+ | `resolve.register` | Registrar organización en el resolver global con endpoints MCP/REST | `resolve:write` |
120
+ | `resolve.update_endpoint` | Actualizar endpoints registrados (portabilidad entre backends) | `resolve:write` |
121
+ | `telemetry.heartbeat` | Enviar heartbeat al resolver indicando que el nodo está activo | `telemetry:write` |
122
+
102
123
  ## Instalación y Quickstart
103
124
 
104
125
  ### Opción 1: Modo descubrimiento (zero config)
@@ -107,7 +128,7 @@ Este paquete expone el protocolo Servicialo como 23 herramientas MCP organizadas
107
128
  npx -y @servicialo/mcp-server
108
129
  ```
109
130
 
110
- Sin API key. Sin org ID. 4 herramientas públicas disponibles de inmediato. Pruébalo:
131
+ Sin API key. Sin org ID. Las 9 herramientas públicas disponibles de inmediato (resolver + descubrimiento). Pruébalo:
111
132
 
112
133
  ```json
113
134
  {
@@ -125,7 +146,7 @@ Sin API key. Sin org ID. 4 herramientas públicas disponibles de inmediato. Pru
125
146
  SERVICIALO_API_KEY=tu_key SERVICIALO_ORG_ID=tu_org npx -y @servicialo/mcp-server
126
147
  ```
127
148
 
128
- Las 20 herramientas habilitadas.
149
+ Las 34 herramientas habilitadas.
129
150
 
130
151
  ### Claude Desktop / Cursor / cualquier cliente MCP
131
152
 
@@ -156,6 +177,7 @@ Omitir el bloque `env` para modo solo-descubrimiento.
156
177
  | `SERVICIALO_ORG_ID` | No | — | Slug de organización. Habilita modo autenticado |
157
178
  | `SERVICIALO_BASE_URL` | No | `http://localhost:3000` | Endpoint del API de la plataforma compatible con Servicialo |
158
179
  | `SERVICIALO_ADAPTER` | No | `coordinalo` | Adapter de backend: `coordinalo` o `http` |
180
+ | `SERVICIALO_TELEMETRY` | No | `true` | Setear a `false` para desactivar telemetría anónima |
159
181
 
160
182
  `SERVICIALO_API_KEY` y `SERVICIALO_ORG_ID` deben configurarse juntas. Si solo una está presente, el servidor cae a modo descubrimiento con un warning.
161
183
 
@@ -362,10 +384,10 @@ La especificación completa del protocolo Servicialo está disponible en:
362
384
 
363
385
  - **Repositorio:** [github.com/servicialo/protocol](https://github.com/servicialo/protocol)
364
386
  - **Sitio web:** [servicialo.com](https://servicialo.com)
365
- - **Versión estable actual:** 0.7
366
- - **JSON Schemas:** [`service.schema.json`](https://github.com/servicialo/protocol/blob/main/schema/service.schema.json), [`service-order.schema.json`](https://github.com/servicialo/protocol/blob/main/schema/service-order.schema.json), [`service-mandate.schema.json`](https://github.com/servicialo/protocol/blob/main/schema/service-mandate.schema.json)
387
+ - **Versión estable actual:** 0.9
388
+ - **JSON Schemas:** [`service.schema.json`](https://github.com/servicialo/protocol/blob/main/schema/service.schema.json), [`service-order.schema.json`](https://github.com/servicialo/protocol/blob/main/schema/service-order.schema.json), [`service-mandate.schema.json`](https://github.com/servicialo/protocol/blob/main/schema/service-mandate.schema.json), [`resolution.schema.json`](https://github.com/servicialo/protocol/blob/main/schema/resolution.schema.json), [`servicialo-config.schema.json`](https://github.com/servicialo/protocol/blob/main/schema/servicialo-config.schema.json)
367
389
 
368
- La spec cubre las 8 dimensiones del servicio, 8 estados de ciclo de vida, 5 flujos de excepción (inasistencia, cancelación, disputa, reagendamiento, entrega parcial), la arquitectura de dos entidades (Servicio atómico + Orden de Servicio), y el Modelo de Agencia Delegada.
390
+ La spec cubre las 8 dimensiones del servicio, 9 estados de ciclo de vida, 6 flujos de excepción, 7 principios fundamentales, la arquitectura de dos entidades (Servicio atómico + Orden de Servicio), el Modelo de Agencia Delegada, resolución DNS, e interoperabilidad A2A.
369
391
 
370
392
  ## Implementación de Referencia
371
393
 
@@ -395,6 +417,36 @@ Servicialo sigue versionado semántico para la especificación del protocolo:
395
417
  - Federación inter-nodo (cómo dos implementaciones Servicialo interoperan)
396
418
  - Patrones de Agent SDK para Python y TypeScript
397
419
 
420
+ ## Telemetría
421
+
422
+ Al iniciar, el MCP server envía un único POST anónimo a `https://servicialo.com/api/telemetry/ping` con:
423
+
424
+ ```json
425
+ {
426
+ "event": "node_initialized",
427
+ "version": "0.9.0",
428
+ "ts": 1711300000000
429
+ }
430
+ ```
431
+
432
+ **Esto es todo lo que se envía.** No se transmite información de organización, API keys, datos de pacientes, IPs ni ningún identificador personal. El ping es fire-and-forget: si falla, el error se descarta silenciosamente y nunca bloquea la operación del servidor.
433
+
434
+ ### Desactivar telemetría
435
+
436
+ ```bash
437
+ SERVICIALO_TELEMETRY=false npx -y @servicialo/mcp-server
438
+ ```
439
+
440
+ O en la configuración MCP:
441
+
442
+ ```json
443
+ {
444
+ "env": {
445
+ "SERVICIALO_TELEMETRY": "false"
446
+ }
447
+ }
448
+ ```
449
+
398
450
  ## Licencia
399
451
 
400
452
  Apache-2.0 — cualquier implementación, comercial o no, es bienvenida. Ver [LICENSE](./LICENSE).
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA6HpE,wBAAgB,mBAAmB,cASlC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA+IpE,wBAAgB,mBAAmB,cASlC"}
package/dist/index.js CHANGED
@@ -1,8 +1,13 @@
1
1
  #!/usr/bin/env node
2
+ import { readFileSync } from 'node:fs';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { dirname, resolve } from 'node:path';
2
5
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
6
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
7
  import { createAdapter } from './adapter.js';
5
8
  import { detectMode } from './mode.js';
9
+ const __dirname = dirname(fileURLToPath(import.meta.url));
10
+ const pkg = JSON.parse(readFileSync(resolve(__dirname, '..', 'package.json'), 'utf-8'));
6
11
  // --- Public tools ---
7
12
  import { registryTools } from './tools/public/registry.js';
8
13
  import { publicAvailabilityTools } from './tools/public/availability.js';
@@ -89,9 +94,21 @@ async function main() {
89
94
  // Register authenticated tools only when credentials are present
90
95
  registerTools(authenticatedTools);
91
96
  }
92
- // Discovery mode: only the 4 public tools are exposed
97
+ // Discovery mode: only the 9 public tools are exposed
93
98
  const transport = new StdioServerTransport();
94
99
  await server.connect(transport);
100
+ // --- Anonymous telemetry (fire-and-forget) ---
101
+ if (process.env.SERVICIALO_TELEMETRY?.toLowerCase() !== 'false') {
102
+ fetch('https://servicialo.com/api/telemetry/ping', {
103
+ method: 'POST',
104
+ headers: { 'Content-Type': 'application/json' },
105
+ body: JSON.stringify({
106
+ event: 'node_initialized',
107
+ version: pkg.version,
108
+ ts: Date.now(),
109
+ }),
110
+ }).catch(() => { });
111
+ }
95
112
  }
96
113
  main().catch((error) => {
97
114
  console.error('Fatal error:', error);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/mandate.d.ts CHANGED
@@ -318,4 +318,9 @@ export interface MandateMiddlewareOptions {
318
318
  * through without mandate checks.
319
319
  */
320
320
  export declare function withMandateValidation<TArgs extends Record<string, unknown>>(toolName: string, handler: (client: ServicialoAdapter, args: TArgs) => Promise<unknown>, options?: MandateMiddlewareOptions): (client: ServicialoAdapter, args: TArgs) => Promise<unknown>;
321
+ /**
322
+ * Sanitizes an array of evidence objects. If any evidence item has
323
+ * `data_sensitivity: "restricted"`, its `data` payload is redacted.
324
+ */
325
+ export declare function sanitizeEvidence(evidence: unknown[]): unknown[];
321
326
  //# sourceMappingURL=mandate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mandate.d.ts","sourceRoot":"","sources":["../src/mandate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mandate.d.ts","sourceRoot":"","sources":["../src/mandate.ts"],"names":[],"mappings":"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"}
package/dist/mandate.js CHANGED
@@ -338,7 +338,17 @@ function sanitizeInput(args) {
338
338
  sanitized[key] = '[REDACTED]';
339
339
  }
340
340
  else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
341
- sanitized[key] = sanitizeInput(value);
341
+ // Check if this object is an evidence envelope with restricted sensitivity
342
+ const obj = value;
343
+ if (obj.data_sensitivity === 'restricted' && obj.data !== undefined) {
344
+ sanitized[key] = { ...sanitizeInput(obj), data: { redacted: true, reason: 'restricted_evidence' } };
345
+ }
346
+ else {
347
+ sanitized[key] = sanitizeInput(obj);
348
+ }
349
+ }
350
+ else if (Array.isArray(value)) {
351
+ sanitized[key] = sanitizeEvidence(value);
342
352
  }
343
353
  else {
344
354
  sanitized[key] = value;
@@ -346,4 +356,20 @@ function sanitizeInput(args) {
346
356
  }
347
357
  return sanitized;
348
358
  }
359
+ /**
360
+ * Sanitizes an array of evidence objects. If any evidence item has
361
+ * `data_sensitivity: "restricted"`, its `data` payload is redacted.
362
+ */
363
+ export function sanitizeEvidence(evidence) {
364
+ return evidence.map((item) => {
365
+ if (typeof item === 'object' && item !== null && !Array.isArray(item)) {
366
+ const obj = item;
367
+ if (obj.data_sensitivity === 'restricted' && obj.data !== undefined) {
368
+ return { ...sanitizeInput(obj), data: { redacted: true, reason: 'restricted_evidence' } };
369
+ }
370
+ return sanitizeInput(obj);
371
+ }
372
+ return item;
373
+ });
374
+ }
349
375
  //# sourceMappingURL=mandate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mandate.js","sourceRoot":"","sources":["../src/mandate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mandate.js","sourceRoot":"","sources":["../src/mandate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;AACxF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAEnF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3D,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;QACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC;QACpD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC;QAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;KACrB,CAAC,CAAC,QAAQ,EAAE;IACb,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,0BAA0B,EAAE,CAAC,CAAC,MAAM,CAAC;QACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;KACzC,CAAC,CAAC,QAAQ,EAAE;IACb,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEd,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC7B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,cAAc,EAAE,oBAAoB;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,WAAW,EAAE,wBAAwB;IACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,MAAM,EAAE,aAAa;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEpF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,wBAAwB;IAChE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAIH,mDAAmD;AACnD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAC7D,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;SACrC,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;KACf,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC;AAIH,8EAA8E;AAC9E,wDAAwD;AACxD,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAA6B;IACtD,6DAA6D;IAC7D,iBAAiB,EAAc,EAAE;IACjC,2BAA2B,EAAI,EAAE;IACjC,+BAA+B,EAAE,EAAE;IACnC,eAAe,EAAgB,EAAE;IAEjC,qBAAqB;IACrB,aAAa,EAAkB,CAAC,cAAc,CAAC;IAC/C,cAAc,EAAiB,CAAC,cAAc,EAAE,YAAY,CAAC;IAE7D,wBAAwB;IACxB,uBAAuB,EAAQ,CAAC,eAAe,CAAC;IAChD,iBAAiB,EAAc,CAAC,gBAAgB,CAAC;IACjD,oBAAoB,EAAW,CAAC,gBAAgB,CAAC;IAEjD,0BAA0B;IAC1B,qBAAqB,EAAU,CAAC,cAAc,CAAC;IAC/C,sBAAsB,EAAS,CAAC,eAAe,CAAC;IAChD,uBAAuB,EAAQ,CAAC,gBAAgB,CAAC;IACjD,mBAAmB,EAAY,CAAC,gBAAgB,CAAC;IAEjD,8BAA8B;IAC9B,kBAAkB,EAAa,CAAC,gBAAgB,CAAC;IACjD,mBAAmB,EAAY,CAAC,gBAAgB,CAAC;IACjD,0BAA0B,EAAK,CAAC,gBAAgB,CAAC;IAEjD,mBAAmB;IACnB,sBAAsB,EAAQ,CAAC,gBAAgB,CAAC;IAChD,sBAAsB,EAAQ,CAAC,eAAe,CAAC;IAC/C,yBAAyB,EAAK,CAAC,eAAe,CAAC;IAC/C,qBAAqB,EAAS,CAAC,cAAc,CAAC;IAE9C,iBAAiB;IACjB,qBAAqB,EAAS,CAAC,YAAY,CAAC;IAC5C,oBAAoB,EAAU,CAAC,YAAY,CAAC;IAC5C,uBAAuB,EAAO,CAAC,aAAa,CAAC;IAC7C,wBAAwB,EAAM,CAAC,aAAa,CAAC;IAC7C,yBAAyB,EAAK,CAAC,aAAa,CAAC;IAC7C,2BAA2B,EAAG,CAAC,YAAY,CAAC;IAE5C,qBAAqB;IACrB,eAAe,EAAe,CAAC,cAAc,CAAC;IAC9C,cAAc,EAAgB,CAAC,cAAc,CAAC;IAC9C,kBAAkB,EAAY,CAAC,eAAe,CAAC;CAChD,CAAC;AAEF,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAE7B;IAEA;IAHlB,YACkB,IAAY,EAC5B,OAAe,EACC,UAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAQ;QAEZ,eAAU,GAAV,UAAU,CAAS;QAGnC,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAiBD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAA6B;IAC3D,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IACtD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IAElC,kBAAkB;IAClB,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,sBAAsB,CAC9B,kBAAkB,EAClB,WAAW,OAAO,CAAC,UAAU,eAAe,OAAO,CAAC,MAAM,GAAG,EAC7D,OAAO,CAAC,UAAU,CACnB,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE/C,IAAI,GAAG,GAAG,QAAQ,EAAE,CAAC;QACnB,MAAM,IAAI,sBAAsB,CAC9B,uBAAuB,EACvB,WAAW,OAAO,CAAC,UAAU,iCAAiC,OAAO,CAAC,SAAS,GAAG,EAClF,OAAO,CAAC,UAAU,CACnB,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,sBAAsB,CAC9B,iBAAiB,EACjB,WAAW,OAAO,CAAC,UAAU,6BAA6B,OAAO,CAAC,UAAU,GAAG,EAC/E,OAAO,CAAC,UAAU,CACnB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,IAAI,sBAAsB,CAC9B,iBAAiB,EACjB,WAAW,OAAO,CAAC,UAAU,mBAAmB,OAAO,CAAC,UAAU,EAAE,EACpE,OAAO,CAAC,UAAU,CACnB,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,sBAAsB,CAC9B,gBAAgB,EAChB,UAAU,QAAQ,mCAAmC,OAAO,CAAC,QAAQ,GAAG,EACxE,OAAO,CAAC,UAAU,CACnB,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,MAAM,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,sBAAsB,CAC9B,cAAc,EACd,SAAS,SAAS,sCAAsC,EACxD,OAAO,CAAC,UAAU,CACnB,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,sBAAsB,CAC9B,oBAAoB,EACpB,oCAAoC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACvG,OAAO,CAAC,UAAU,CACnB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;QACzF,MAAM,IAAI,sBAAsB,CAC9B,kBAAkB,EAClB,YAAY,OAAO,qCAAqC,OAAO,CAAC,OAAO,GAAG,EAC1E,OAAO,CAAC,UAAU,CACnB,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,IAAI,GAAG,CAAC,uBAAuB,IAAI,GAAG,CAAC,uBAAuB,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC;QACtF,wDAAwD;QACxD,MAAM,IAAI,sBAAsB,CAC9B,sBAAsB,EACtB,yBAAyB,OAAO,CAAC,UAAU,4CAA4C,GAAG,CAAC,uBAAuB,GAAG,EACrH,OAAO,CAAC,UAAU,CACnB,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAuB,EAAE,GAAS;IAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,IAAI,CAAC,WAAW;QAAE,OAAO;IAEzB,gBAAgB;IAChB,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;QAC9B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,aAAa,CAAC;QAC3D,MAAM,WAAW,GAAG,GAAG,CAAC,kBAAkB,CAAC,OAAO,EAAE;YAClD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,IAAI,WAAW,GAAG,KAAK,IAAI,WAAW,IAAI,GAAG,EAAE,CAAC;YAC9C,MAAM,IAAI,sBAAsB,CAC9B,uBAAuB,EACvB,aAAa,WAAW,KAAK,QAAQ,8BAA8B,KAAK,IAAI,GAAG,EAAE,EACjF,OAAO,CAAC,UAAU,CACnB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,wCAAwC;AAC1C,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAyB,EACzB,KAAiD;IAEjD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;YACjD,GAAG,KAAK;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wDAAwD;QACxD,+DAA+D;QAC/D,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,MAAyB,EACzB,OAAuB;IAEvB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,mBAAmB;QAAE,OAAO;IAEtD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE;YAC5E,SAAS,EAAE,OAAO,CAAC,UAAU;SAC9B,CAAC,CAAC;QAEH,MAAM,KAAK,GAAI,MAAmC,EAAE,WAAW,IAAI,CAAC,CAAC;QACrE,IAAI,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC;YACpD,MAAM,IAAI,sBAAsB,CAC9B,sBAAsB,EACtB,uBAAuB,OAAO,CAAC,WAAW,CAAC,mBAAmB,0BAA0B,OAAO,CAAC,UAAU,EAAE,EAC5G,OAAO,CAAC,UAAU,CACnB,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,sBAAsB;YAAE,MAAM,GAAG,CAAC;QACrD,gEAAgE;QAChE,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAyB,EACzB,SAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,sBAAsB,CAC9B,iBAAiB,EACjB,WAAW,SAAS,8BAA8B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EACxE,SAAS,CACV,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAaD;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAgB,EAChB,OAAqE,EACrE,OAAkC;IAElC,OAAO,KAAK,EAAE,MAAyB,EAAE,IAAW,EAAE,EAAE;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAqC,CAAC;QAEzD,6CAA6C;QAC7C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,IAAI,sBAAsB,CAC9B,kBAAkB,EAClB,UAAU,KAAK,CAAC,EAAE,2CAA2C,QAAQ,GAAG,CACzE,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,OAAO,EAAE,cAAc,EAAE,CAAC,IAAI,CAAC;eACzC,MAAwC,CAAC,KAAK;YAClD,CAAC,CAAC,OAAQ,MAAwC,CAAC,KAAK,EAAE;YAC1D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAEpB,eAAe,CAAC;YACd,OAAO;YACP,QAAQ,EAAE,KAAK,CAAC,EAAE;YAClB,SAAS,EAAE,QAAQ;YACnB,OAAO;SACR,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,6BAA6B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAErD,iFAAiF;QACjF,MAAM,UAAU,GAAG,OAAO,EAAE,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAE3C,cAAc;YACd,MAAM,aAAa,CAAC,MAAM,EAAE;gBAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,QAAQ;gBAChB,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC;gBACjC,aAAa,EAAE,SAAS;gBACxB,WAAW,EAAE,UAAU;gBACvB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,cAAc;YACd,MAAM,aAAa,CAAC,MAAM,EAAE;gBAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,QAAQ;gBAChB,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC;gBACjC,aAAa,EAAE,GAAG,YAAY,sBAAsB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBAC7E,cAAc,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBAChE,WAAW,EAAE,UAAU;gBACvB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YAEH,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E;AAE9E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY;IACtD,gBAAgB,EAAE,WAAW,EAAE,iBAAiB;IAChD,KAAK,EAAE,KAAK,EAAE,aAAa;CAC5B,CAAC,CAAC;AAEH,SAAS,aAAa,CAAC,IAA6B;IAClD,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC5C,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;QAChC,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChF,2EAA2E;YAC3E,MAAM,GAAG,GAAG,KAAgC,CAAC;YAC7C,IAAI,GAAG,CAAC,gBAAgB,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACpE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,CAAC;YACtG,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,SAAS,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAmB;IAClD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtE,MAAM,GAAG,GAAG,IAA+B,CAAC;YAC5C,IAAI,GAAG,CAAC,gBAAgB,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACpE,OAAO,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,CAAC;YAC5F,CAAC;YACD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -170,6 +170,7 @@ export declare const deliveryTools: {
170
170
  session_id: z.ZodString;
171
171
  evidence_type: z.ZodEnum<["gps", "signature", "photo", "document", "duration", "notes"]>;
172
172
  data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
173
+ data_sensitivity: z.ZodOptional<z.ZodEnum<["public", "internal", "confidential", "restricted"]>>;
173
174
  actor: z.ZodObject<{
174
175
  type: z.ZodEnum<["client", "provider", "organization", "agent"]>;
175
176
  id: z.ZodString;
@@ -210,6 +211,7 @@ export declare const deliveryTools: {
210
211
  session_id: string;
211
212
  evidence_type: "gps" | "signature" | "photo" | "document" | "duration" | "notes";
212
213
  data: Record<string, unknown>;
214
+ data_sensitivity?: "public" | "internal" | "confidential" | "restricted" | undefined;
213
215
  }, {
214
216
  actor: {
215
217
  type: "client" | "provider" | "organization" | "agent";
@@ -222,11 +224,13 @@ export declare const deliveryTools: {
222
224
  session_id: string;
223
225
  evidence_type: "gps" | "signature" | "photo" | "document" | "duration" | "notes";
224
226
  data: Record<string, unknown>;
227
+ data_sensitivity?: "public" | "internal" | "confidential" | "restricted" | undefined;
225
228
  }>;
226
229
  handler: (client: ServicialoAdapter, args: {
227
230
  session_id: string;
228
231
  evidence_type: string;
229
232
  data: Record<string, unknown>;
233
+ data_sensitivity?: string;
230
234
  actor: z.infer<typeof ActorSchema>;
231
235
  }) => Promise<unknown>;
232
236
  };
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../../src/tools/authenticated/delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAUE,iBAAiB,QAAQ;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;YAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAkBlJ,iBAAiB,QAAQ;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;YAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAkBlJ,iBAAiB,QAAQ;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;SAAE;;CAQpK,CAAC"}
1
+ {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../../src/tools/authenticated/delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAUE,iBAAiB,QAAQ;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;YAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAkBlJ,iBAAiB,QAAQ;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;YAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAmBlJ,iBAAiB,QAAQ;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;SAAE;;CAmB/L,CAAC"}
@@ -39,14 +39,24 @@ export const deliveryTools = {
39
39
  session_id: z.string().describe('ID de la sesión'),
40
40
  evidence_type: z.enum(['gps', 'signature', 'photo', 'document', 'duration', 'notes']).describe('Tipo de evidencia'),
41
41
  data: z.record(z.unknown()).describe('Payload de la evidencia (estructura varía por tipo)'),
42
+ data_sensitivity: z.enum(['public', 'internal', 'confidential', 'restricted']).optional().describe('Clasificación de sensibilidad del payload. Default: internal. Ver PROTOCOL.md §9.8.'),
42
43
  actor: ActorSchema.describe('Quién registra la evidencia'),
43
44
  }),
44
45
  handler: async (client, args) => {
45
- return client.post(`/coordinalo/sessions/${args.session_id}/evidence`, {
46
+ const result = await client.post(`/coordinalo/sessions/${args.session_id}/evidence`, {
46
47
  evidenceType: args.evidence_type,
47
48
  data: args.data,
49
+ data_sensitivity: args.data_sensitivity,
48
50
  actor: args.actor,
49
51
  });
52
+ if (args.data_sensitivity === 'restricted') {
53
+ return {
54
+ ...result,
55
+ warning: 'RESTRICTED_EVIDENCE_STORED',
56
+ message: 'This evidence is classified as restricted. Ensure your implementation meets applicable regulatory requirements for storage, access logging, and retention.',
57
+ };
58
+ }
59
+ return result;
50
60
  },
51
61
  },
52
62
  };
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/tools/authenticated/delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,kBAAkB,EAAE;QAClB,WAAW,EACT,qLAAqL;QACvL,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAClD,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACtE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YACrF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SACxF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAyB,EAAE,IAA+H,EAAE,EAAE;YAC5K,OAAO,MAAM,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,UAAU,UAAU,EAAE;gBACpE,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CAAC;QACL,CAAC;KACF;IAED,mBAAmB,EAAE;QACnB,WAAW,EACT,gMAAgM;QAClM,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAClD,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACvE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACtF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;SACzF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAyB,EAAE,IAA+H,EAAE,EAAE;YAC5K,OAAO,MAAM,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,UAAU,WAAW,EAAE;gBACrE,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CAAC;QACL,CAAC;KACF;IAED,0BAA0B,EAAE;QAC1B,WAAW,EACT,0OAA0O;QAC5O,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAClD,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACnH,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC;YAC3F,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,6BAA6B,CAAC;SAC3D,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAyB,EAAE,IAAsH,EAAE,EAAE;YACnK,OAAO,MAAM,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,UAAU,WAAW,EAAE;gBACrE,YAAY,EAAE,IAAI,CAAC,aAAa;gBAChC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/tools/authenticated/delivery.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicialo/mcp-server",
3
- "version": "0.8.0",
3
+ "version": "0.9.1",
4
4
  "mcpName": "com.servicialo/mcp-server",
5
5
  "description": "Open protocol for professional service delivery — connects AI agents with scheduling, verification and settlement of professional services",
6
6
  "license": "Apache-2.0",
@@ -15,7 +15,8 @@
15
15
  },
16
16
  "main": "./dist/index.js",
17
17
  "files": [
18
- "dist"
18
+ "dist",
19
+ "!dist/__tests__"
19
20
  ],
20
21
  "scripts": {
21
22
  "build": "tsc",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=client.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/client.test.ts"],"names":[],"mappings":""}
@@ -1,136 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { CoordinaloClient } from '../client.js';
3
- describe('CoordinaloClient', () => {
4
- describe('constructor', () => {
5
- it('strips trailing slashes from baseUrl', () => {
6
- const client = new CoordinaloClient({ baseUrl: 'https://example.com///' });
7
- // Verify via isAuthenticated (which doesn't depend on URL)
8
- expect(client.isAuthenticated).toBe(false);
9
- });
10
- });
11
- describe('isAuthenticated', () => {
12
- it('returns false when no credentials', () => {
13
- const client = new CoordinaloClient({ baseUrl: 'https://example.com' });
14
- expect(client.isAuthenticated).toBe(false);
15
- });
16
- it('returns false when only apiKey', () => {
17
- const client = new CoordinaloClient({ baseUrl: 'https://example.com', apiKey: 'key' });
18
- expect(client.isAuthenticated).toBe(false);
19
- });
20
- it('returns false when only orgId', () => {
21
- const client = new CoordinaloClient({ baseUrl: 'https://example.com', orgId: 'org' });
22
- expect(client.isAuthenticated).toBe(false);
23
- });
24
- it('returns true when both apiKey and orgId', () => {
25
- const client = new CoordinaloClient({ baseUrl: 'https://example.com', apiKey: 'key', orgId: 'org' });
26
- expect(client.isAuthenticated).toBe(true);
27
- });
28
- });
29
- describe('public GET', () => {
30
- beforeEach(() => {
31
- vi.restoreAllMocks();
32
- });
33
- it('calls correct URL with query params', async () => {
34
- const mockResponse = { data: 'test' };
35
- const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValue(new Response(JSON.stringify(mockResponse), { status: 200 }));
36
- const client = new CoordinaloClient({ baseUrl: 'https://api.example.com' });
37
- const result = await client.pub.get('/api/servicialo/registry', {
38
- vertical: 'kinesiologia',
39
- location: 'Santiago',
40
- limit: 5,
41
- });
42
- expect(result).toEqual(mockResponse);
43
- expect(fetchSpy).toHaveBeenCalledOnce();
44
- const calledUrl = new URL(fetchSpy.mock.calls[0][0]);
45
- expect(calledUrl.origin).toBe('https://api.example.com');
46
- expect(calledUrl.pathname).toBe('/api/servicialo/registry');
47
- expect(calledUrl.searchParams.get('vertical')).toBe('kinesiologia');
48
- expect(calledUrl.searchParams.get('location')).toBe('Santiago');
49
- expect(calledUrl.searchParams.get('limit')).toBe('5');
50
- });
51
- it('omits undefined params', async () => {
52
- const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValue(new Response('{}', { status: 200 }));
53
- const client = new CoordinaloClient({ baseUrl: 'https://api.example.com' });
54
- await client.pub.get('/api/servicialo/registry', {
55
- vertical: 'dental',
56
- location: undefined,
57
- });
58
- const calledUrl = new URL(fetchSpy.mock.calls[0][0]);
59
- expect(calledUrl.searchParams.has('vertical')).toBe(true);
60
- expect(calledUrl.searchParams.has('location')).toBe(false);
61
- });
62
- it('retries with auth headers on 401 when apiKey is available', async () => {
63
- const fetchSpy = vi.spyOn(globalThis, 'fetch')
64
- .mockResolvedValueOnce(new Response('Unauthorized', { status: 401 }))
65
- .mockResolvedValueOnce(new Response('{"ok":true}', { status: 200 }));
66
- const client = new CoordinaloClient({
67
- baseUrl: 'https://api.example.com',
68
- apiKey: 'secret',
69
- orgId: 'org1',
70
- });
71
- const result = await client.pub.get('/api/servicialo/registry');
72
- expect(result).toEqual({ ok: true });
73
- expect(fetchSpy).toHaveBeenCalledTimes(2);
74
- // Second call should have auth header
75
- const secondCallHeaders = fetchSpy.mock.calls[1][1]?.headers;
76
- expect(secondCallHeaders['Authorization']).toBe('Bearer secret');
77
- });
78
- it('throws on 401 when no apiKey available', async () => {
79
- vi.spyOn(globalThis, 'fetch').mockResolvedValue(new Response('Unauthorized', { status: 401 }));
80
- const client = new CoordinaloClient({ baseUrl: 'https://api.example.com' });
81
- await expect(client.pub.get('/api/servicialo/registry')).rejects.toThrow('401 Unauthorized');
82
- });
83
- it('throws on non-OK responses', async () => {
84
- vi.spyOn(globalThis, 'fetch').mockResolvedValue(new Response('Not Found', { status: 404 }));
85
- const client = new CoordinaloClient({ baseUrl: 'https://api.example.com' });
86
- await expect(client.pub.get('/api/servicialo/missing')).rejects.toThrow('404');
87
- });
88
- });
89
- describe('authenticated requests', () => {
90
- beforeEach(() => {
91
- vi.restoreAllMocks();
92
- });
93
- const makeClient = () => new CoordinaloClient({
94
- baseUrl: 'https://api.example.com',
95
- apiKey: 'test_key',
96
- orgId: 'org_123',
97
- });
98
- it('GET builds org-scoped URL for relative paths', async () => {
99
- const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValue(new Response('{}', { status: 200 }));
100
- await makeClient().get('/coordinalo/services/srv_1');
101
- const calledUrl = fetchSpy.mock.calls[0][0];
102
- expect(calledUrl).toContain('/api/organizations/org_123/coordinalo/services/srv_1');
103
- });
104
- it('GET uses absolute path when starting with /api/', async () => {
105
- const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValue(new Response('{}', { status: 200 }));
106
- await makeClient().get('/api/servicialo/registry');
107
- const calledUrl = fetchSpy.mock.calls[0][0];
108
- expect(calledUrl).toBe('https://api.example.com/api/servicialo/registry');
109
- });
110
- it('POST sends JSON body with auth headers', async () => {
111
- const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValue(new Response('{"id":"ses_1"}', { status: 200 }));
112
- const body = { serviceId: 'srv_1', clientId: 'cli_1' };
113
- const result = await makeClient().post('/coordinalo/sessions', body);
114
- expect(result).toEqual({ id: 'ses_1' });
115
- const [url, options] = fetchSpy.mock.calls[0];
116
- expect(url).toContain('/api/organizations/org_123/coordinalo/sessions');
117
- expect(options?.method).toBe('POST');
118
- expect(options?.body).toBe(JSON.stringify(body));
119
- expect((options?.headers)['Authorization']).toBe('Bearer test_key');
120
- });
121
- it('PUT sends JSON body', async () => {
122
- const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValue(new Response('{}', { status: 200 }));
123
- await makeClient().put('/coordinalo/sessions/ses_1', { startTime: '2026-03-01T10:00:00Z' });
124
- expect(fetchSpy.mock.calls[0][1]?.method).toBe('PUT');
125
- });
126
- it('throws when calling authenticated endpoint without apiKey', async () => {
127
- const client = new CoordinaloClient({ baseUrl: 'https://api.example.com', orgId: 'org_1' });
128
- await expect(client.get('/coordinalo/services/srv_1')).rejects.toThrow('No SERVICIALO_API_KEY');
129
- });
130
- it('throws when calling org-scoped endpoint without orgId', async () => {
131
- const client = new CoordinaloClient({ baseUrl: 'https://api.example.com', apiKey: 'key' });
132
- await expect(client.get('/coordinalo/services/srv_1')).rejects.toThrow('No SERVICIALO_ORG_ID');
133
- });
134
- });
135
- });
136
- //# sourceMappingURL=client.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../src/__tests__/client.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=mode.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mode.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/mode.test.ts"],"names":[],"mappings":""}
@@ -1,25 +0,0 @@
1
- import { describe, it, expect, beforeEach } from 'vitest';
2
- import { detectMode } from '../mode.js';
3
- describe('detectMode', () => {
4
- beforeEach(() => {
5
- delete process.env.SERVICIALO_API_KEY;
6
- delete process.env.SERVICIALO_ORG_ID;
7
- });
8
- it('returns "discovery" when no credentials are set', () => {
9
- expect(detectMode()).toBe('discovery');
10
- });
11
- it('returns "authenticated" when both API_KEY and ORG_ID are set', () => {
12
- process.env.SERVICIALO_API_KEY = 'test_key';
13
- process.env.SERVICIALO_ORG_ID = 'test_org';
14
- expect(detectMode()).toBe('authenticated');
15
- });
16
- it('falls back to "discovery" when only API_KEY is set', () => {
17
- process.env.SERVICIALO_API_KEY = 'test_key';
18
- expect(detectMode()).toBe('discovery');
19
- });
20
- it('falls back to "discovery" when only ORG_ID is set', () => {
21
- process.env.SERVICIALO_ORG_ID = 'test_org';
22
- expect(detectMode()).toBe('discovery');
23
- });
24
- });
25
- //# sourceMappingURL=mode.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mode.test.js","sourceRoot":"","sources":["../../src/__tests__/mode.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,UAAU,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,UAAU,CAAC;QAC3C,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,UAAU,CAAC;QAC5C,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,UAAU,CAAC;QAC3C,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=schemas.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemas.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/schemas.test.ts"],"names":[],"mappings":""}
@@ -1,53 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { ActorSchema, LocationSchema } from '../tools/schemas.js';
3
- describe('ActorSchema', () => {
4
- it('accepts valid actor with all fields', () => {
5
- const result = ActorSchema.safeParse({
6
- type: 'agent',
7
- id: 'agent_claude',
8
- on_behalf_of: { type: 'client', id: 'cli_1' },
9
- });
10
- expect(result.success).toBe(true);
11
- });
12
- it('accepts actor without on_behalf_of', () => {
13
- const result = ActorSchema.safeParse({ type: 'provider', id: 'prov_1' });
14
- expect(result.success).toBe(true);
15
- });
16
- it('accepts all valid actor types', () => {
17
- for (const type of ['client', 'provider', 'organization', 'agent']) {
18
- const result = ActorSchema.safeParse({ type, id: 'test' });
19
- expect(result.success).toBe(true);
20
- }
21
- });
22
- it('rejects invalid actor type', () => {
23
- const result = ActorSchema.safeParse({ type: 'admin', id: 'test' });
24
- expect(result.success).toBe(false);
25
- });
26
- it('rejects missing id', () => {
27
- const result = ActorSchema.safeParse({ type: 'client' });
28
- expect(result.success).toBe(false);
29
- });
30
- it('rejects missing type', () => {
31
- const result = ActorSchema.safeParse({ id: 'test' });
32
- expect(result.success).toBe(false);
33
- });
34
- });
35
- describe('LocationSchema', () => {
36
- it('accepts valid coordinates', () => {
37
- const result = LocationSchema.safeParse({ lat: -33.4265, lng: -70.6155 });
38
- expect(result.success).toBe(true);
39
- });
40
- it('rejects missing lat', () => {
41
- const result = LocationSchema.safeParse({ lng: -70.6155 });
42
- expect(result.success).toBe(false);
43
- });
44
- it('rejects missing lng', () => {
45
- const result = LocationSchema.safeParse({ lat: -33.4265 });
46
- expect(result.success).toBe(false);
47
- });
48
- it('rejects non-numeric values', () => {
49
- const result = LocationSchema.safeParse({ lat: 'abc', lng: 'def' });
50
- expect(result.success).toBe(false);
51
- });
52
- });
53
- //# sourceMappingURL=schemas.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemas.test.js","sourceRoot":"","sources":["../../src/__tests__/schemas.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=tools.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/tools.test.ts"],"names":[],"mappings":""}
@@ -1,241 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { CoordinaloClient } from '../client.js';
3
- import { registryTools } from '../tools/public/registry.js';
4
- import { publicAvailabilityTools } from '../tools/public/availability.js';
5
- import { publicServicesTools } from '../tools/public/services.js';
6
- import { comprometerTools } from '../tools/authenticated/comprometer.js';
7
- import { deliveryTools } from '../tools/authenticated/delivery.js';
8
- import { cerrarTools } from '../tools/authenticated/cerrar.js';
9
- // Helper: mock fetch to return JSON
10
- function mockFetch(data = {}) {
11
- return vi.spyOn(globalThis, 'fetch').mockResolvedValue(new Response(JSON.stringify(data), { status: 200 }));
12
- }
13
- function publicClient() {
14
- return new CoordinaloClient({ baseUrl: 'https://api.test.com' });
15
- }
16
- function authClient() {
17
- return new CoordinaloClient({
18
- baseUrl: 'https://api.test.com',
19
- apiKey: 'key_123',
20
- orgId: 'org_456',
21
- });
22
- }
23
- describe('Public tools', () => {
24
- beforeEach(() => vi.restoreAllMocks());
25
- describe('registry.search', () => {
26
- it('has correct schema', () => {
27
- const result = registryTools['registry.search'].schema.safeParse({
28
- vertical: 'kinesiologia',
29
- });
30
- expect(result.success).toBe(true);
31
- });
32
- it('calls /api/servicialo/registry', async () => {
33
- const spy = mockFetch({ organizations: [] });
34
- await registryTools['registry.search'].handler(publicClient(), {
35
- vertical: 'kinesiologia',
36
- location: 'Santiago',
37
- limit: 5,
38
- });
39
- const url = new URL(spy.mock.calls[0][0]);
40
- expect(url.pathname).toBe('/api/servicialo/registry');
41
- expect(url.searchParams.get('vertical')).toBe('kinesiologia');
42
- });
43
- });
44
- describe('registry.get_organization', () => {
45
- it('calls /api/servicialo/{slug}/services', async () => {
46
- const spy = mockFetch({ services: [] });
47
- await registryTools['registry.get_organization'].handler(publicClient(), {
48
- org_slug: 'clinica-vital',
49
- });
50
- const url = spy.mock.calls[0][0];
51
- expect(url).toContain('/api/servicialo/clinica-vital/services');
52
- });
53
- });
54
- describe('scheduling.check_availability', () => {
55
- it('validates required fields', () => {
56
- const schema = publicAvailabilityTools['scheduling.check_availability'].schema;
57
- expect(schema.safeParse({}).success).toBe(false);
58
- expect(schema.safeParse({
59
- org_slug: 'test',
60
- date_from: '2026-03-01',
61
- date_to: '2026-03-07',
62
- }).success).toBe(true);
63
- });
64
- it('calls correct endpoint with query params', async () => {
65
- const spy = mockFetch({ slots: [] });
66
- await publicAvailabilityTools['scheduling.check_availability'].handler(publicClient(), {
67
- org_slug: 'clinica-vital',
68
- service_id: 'srv_1',
69
- date_from: '2026-03-01',
70
- date_to: '2026-03-07',
71
- });
72
- const url = new URL(spy.mock.calls[0][0]);
73
- expect(url.pathname).toBe('/api/servicialo/clinica-vital/availability');
74
- expect(url.searchParams.get('from')).toBe('2026-03-01');
75
- expect(url.searchParams.get('to')).toBe('2026-03-07');
76
- expect(url.searchParams.get('serviceId')).toBe('srv_1');
77
- });
78
- });
79
- describe('services.list', () => {
80
- it('calls correct endpoint', async () => {
81
- const spy = mockFetch({ services: [] });
82
- await publicServicesTools['services.list'].handler(publicClient(), {
83
- org_slug: 'clinica-vital',
84
- });
85
- const url = spy.mock.calls[0][0];
86
- expect(url).toContain('/api/servicialo/clinica-vital/services');
87
- });
88
- });
89
- });
90
- describe('Authenticated tools', () => {
91
- beforeEach(() => vi.restoreAllMocks());
92
- describe('clients.get_or_create', () => {
93
- it('validates actor is required', () => {
94
- const schema = comprometerTools['clients.get_or_create'].schema;
95
- expect(schema.safeParse({ email: 'test@test.com' }).success).toBe(false);
96
- expect(schema.safeParse({
97
- email: 'test@test.com',
98
- actor: { type: 'agent', id: 'a1' },
99
- }).success).toBe(true);
100
- });
101
- it('POSTs to /relacionalo/clients/upsert with mapped fields', async () => {
102
- const spy = mockFetch({ id: 'cli_1' });
103
- await comprometerTools['clients.get_or_create'].handler(authClient(), {
104
- email: 'maria@test.com',
105
- name: 'María',
106
- last_name: 'González',
107
- actor: { type: 'agent', id: 'agent_1' },
108
- });
109
- const [url, options] = spy.mock.calls[0];
110
- expect(url).toContain('/relacionalo/clients/upsert');
111
- const body = JSON.parse(options?.body);
112
- expect(body.email).toBe('maria@test.com');
113
- expect(body.lastName).toBe('González'); // mapped from last_name
114
- expect(body.actor.type).toBe('agent');
115
- });
116
- });
117
- describe('scheduling.book', () => {
118
- it('POSTs to /coordinalo/sessions with mapped fields', async () => {
119
- const spy = mockFetch({ session_id: 'ses_1', state: 'requested' });
120
- await comprometerTools['scheduling.book'].handler(authClient(), {
121
- service_id: 'srv_1',
122
- provider_id: 'prov_1',
123
- client_id: 'cli_1',
124
- starts_at: '2026-03-01T10:00:00Z',
125
- actor: { type: 'agent', id: 'a1' },
126
- });
127
- const body = JSON.parse(spy.mock.calls[0][1]?.body);
128
- expect(body.serviceId).toBe('srv_1'); // mapped from service_id
129
- expect(body.providerId).toBe('prov_1'); // mapped from provider_id
130
- expect(body.clientId).toBe('cli_1'); // mapped from client_id
131
- expect(body.startTime).toBe('2026-03-01T10:00:00Z'); // mapped from starts_at
132
- });
133
- });
134
- describe('scheduling.confirm', () => {
135
- it('POSTs to /coordinalo/sessions/{id}/confirm', async () => {
136
- const spy = mockFetch({ state: 'confirmed' });
137
- await comprometerTools['scheduling.confirm'].handler(authClient(), {
138
- session_id: 'ses_123',
139
- actor: { type: 'client', id: 'cli_1' },
140
- });
141
- const url = spy.mock.calls[0][0];
142
- expect(url).toContain('/coordinalo/sessions/ses_123/confirm');
143
- });
144
- });
145
- describe('delivery.checkin', () => {
146
- it('POSTs with location and timestamp', async () => {
147
- const spy = mockFetch({ state: 'in_progress' });
148
- await deliveryTools['delivery.checkin'].handler(authClient(), {
149
- session_id: 'ses_1',
150
- actor: { type: 'provider', id: 'prov_1' },
151
- location: { lat: -33.42, lng: -70.61 },
152
- timestamp: '2026-03-01T10:00:00Z',
153
- });
154
- const body = JSON.parse(spy.mock.calls[0][1]?.body);
155
- expect(body.location).toEqual({ lat: -33.42, lng: -70.61 });
156
- expect(body.timestamp).toBe('2026-03-01T10:00:00Z');
157
- });
158
- });
159
- describe('delivery.checkout', () => {
160
- it('POSTs to /coordinalo/sessions/{id}/checkout', async () => {
161
- const spy = mockFetch({ state: 'delivered' });
162
- await deliveryTools['delivery.checkout'].handler(authClient(), {
163
- session_id: 'ses_1',
164
- actor: { type: 'provider', id: 'prov_1' },
165
- });
166
- const url = spy.mock.calls[0][0];
167
- expect(url).toContain('/coordinalo/sessions/ses_1/checkout');
168
- });
169
- });
170
- describe('delivery.record_evidence', () => {
171
- it('validates evidence_type enum', () => {
172
- const schema = deliveryTools['delivery.record_evidence'].schema;
173
- expect(schema.safeParse({
174
- session_id: 's1',
175
- evidence_type: 'photo',
176
- data: { url: 'https://img.test/1.jpg' },
177
- actor: { type: 'provider', id: 'p1' },
178
- }).success).toBe(true);
179
- expect(schema.safeParse({
180
- session_id: 's1',
181
- evidence_type: 'invalid_type',
182
- data: {},
183
- actor: { type: 'provider', id: 'p1' },
184
- }).success).toBe(false);
185
- });
186
- it('POSTs with mapped evidenceType', async () => {
187
- const spy = mockFetch({ evidence_id: 'evi_1' });
188
- await deliveryTools['delivery.record_evidence'].handler(authClient(), {
189
- session_id: 'ses_1',
190
- evidence_type: 'document',
191
- data: { type: 'clinical_record', signed: true },
192
- actor: { type: 'provider', id: 'prov_1' },
193
- });
194
- const body = JSON.parse(spy.mock.calls[0][1]?.body);
195
- expect(body.evidenceType).toBe('document'); // mapped from evidence_type
196
- expect(body.data.signed).toBe(true);
197
- });
198
- });
199
- describe('payments.create_sale', () => {
200
- it('POSTs to /planificalo/sales with mapped fields', async () => {
201
- const spy = mockFetch({ sale_id: 'sale_1' });
202
- await cerrarTools['payments.create_sale'].handler(authClient(), {
203
- client_id: 'cli_1',
204
- service_id: 'srv_1',
205
- provider_id: 'prov_1',
206
- unit_price: 35000,
207
- });
208
- const body = JSON.parse(spy.mock.calls[0][1]?.body);
209
- expect(body.clientId).toBe('cli_1');
210
- expect(body.unitPrice).toBe(35000);
211
- });
212
- });
213
- describe('payments.record_payment', () => {
214
- it('validates payment method enum', () => {
215
- const schema = cerrarTools['payments.record_payment'].schema;
216
- expect(schema.safeParse({
217
- venta_id: 'v1',
218
- amount: 35000,
219
- method: 'transferencia',
220
- }).success).toBe(true);
221
- expect(schema.safeParse({
222
- venta_id: 'v1',
223
- amount: 35000,
224
- method: 'bitcoin',
225
- }).success).toBe(false);
226
- });
227
- it('POSTs to /planificalo/payments with mapped fields', async () => {
228
- const spy = mockFetch({ payment_id: 'pay_1' });
229
- await cerrarTools['payments.record_payment'].handler(authClient(), {
230
- venta_id: 'sale_1',
231
- amount: 35000,
232
- method: 'transferencia',
233
- reference: 'TRX-123',
234
- });
235
- const body = JSON.parse(spy.mock.calls[0][1]?.body);
236
- expect(body.ventaId).toBe('sale_1');
237
- expect(body.paymentMethod).toBe('transferencia');
238
- });
239
- });
240
- });
241
- //# sourceMappingURL=tools.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.test.js","sourceRoot":"","sources":["../../src/__tests__/tools.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,oCAAoC;AACpC,SAAS,SAAS,CAAC,OAAgB,EAAE;IACnC,OAAO,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,iBAAiB,CACpD,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CACpD,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,IAAI,gBAAgB,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,IAAI,gBAAgB,CAAC;QAC1B,OAAO,EAAE,sBAAsB;QAC/B,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;AACL,CAAC;AAED,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;IAEvC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC5B,MAAM,MAAM,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC/D,QAAQ,EAAE,cAAc;aACzB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7C,MAAM,aAAa,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE;gBAC7D,QAAQ,EAAE,cAAc;gBACxB,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC;YACpD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACtD,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,aAAa,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE;gBACvE,QAAQ,EAAE,eAAe;aAC1B,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,MAAM,GAAG,uBAAuB,CAAC,+BAA+B,CAAC,CAAC,MAAM,CAAC;YAC/E,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;gBACtB,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,YAAY;gBACvB,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,uBAAuB,CAAC,+BAA+B,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE;gBACrF,QAAQ,EAAE,eAAe;gBACzB,UAAU,EAAE,OAAO;gBACnB,SAAS,EAAE,YAAY;gBACvB,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC;YACpD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACxE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxD,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtD,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,mBAAmB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE;gBACjE,QAAQ,EAAE,eAAe;aAC1B,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;IAEvC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,MAAM,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;gBACtB,KAAK,EAAE,eAAe;gBACtB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;aACnC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACvC,MAAM,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;gBACpE,KAAK,EAAE,gBAAgB;gBACvB,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,UAAU;gBACrB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE;aACxC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAc,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAE,wBAAwB;YACjE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACnE,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;gBAC9D,UAAU,EAAE,OAAO;gBACnB,WAAW,EAAE,QAAQ;gBACrB,SAAS,EAAE,OAAO;gBAClB,SAAS,EAAE,sBAAsB;gBACjC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;aACnC,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAc,CAAC,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAM,yBAAyB;YACpE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAI,0BAA0B;YACrE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAO,wBAAwB;YACnE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAE,wBAAwB;QAChF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YAC9C,MAAM,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;gBACjE,UAAU,EAAE,SAAS;gBACrB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE;aACvC,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YAChD,MAAM,aAAa,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;gBAC5D,UAAU,EAAE,OAAO;gBACnB,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE;gBACzC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;gBACtC,SAAS,EAAE,sBAAsB;aAClC,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAc,CAAC,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YAC9C,MAAM,aAAa,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;gBAC7D,UAAU,EAAE,OAAO;gBACnB,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE;aAC1C,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,MAAM,GAAG,aAAa,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;gBACtB,UAAU,EAAE,IAAI;gBAChB,aAAa,EAAE,OAAO;gBACtB,IAAI,EAAE,EAAE,GAAG,EAAE,wBAAwB,EAAE;gBACvC,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE;aACtC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEvB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;gBACtB,UAAU,EAAE,IAAI;gBAChB,aAAa,EAAE,cAAc;gBAC7B,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE;aACtC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;YAChD,MAAM,aAAa,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;gBACpE,UAAU,EAAE,OAAO;gBACnB,aAAa,EAAE,UAAU;gBACzB,IAAI,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE;gBAC/C,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE;aAC1C,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAc,CAAC,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAE,4BAA4B;YACzE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7C,MAAM,WAAW,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;gBAC9D,SAAS,EAAE,OAAO;gBAClB,UAAU,EAAE,OAAO;gBACnB,WAAW,EAAE,QAAQ;gBACrB,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAc,CAAC,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,MAAM,GAAG,WAAW,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC;YAC7D,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;gBACtB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,eAAe;aACxB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEvB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;gBACtB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/C,MAAM,WAAW,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;gBACjE,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,eAAe;gBACvB,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAc,CAAC,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}