@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 +67 -7
- package/README.md +61 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -1
- package/dist/index.js.map +1 -1
- package/dist/mandate.d.ts +5 -0
- package/dist/mandate.d.ts.map +1 -1
- package/dist/mandate.js +27 -1
- package/dist/mandate.js.map +1 -1
- package/dist/tools/authenticated/delivery.d.ts +4 -0
- package/dist/tools/authenticated/delivery.d.ts.map +1 -1
- package/dist/tools/authenticated/delivery.js +11 -1
- package/dist/tools/authenticated/delivery.js.map +1 -1
- package/package.json +3 -2
- package/dist/__tests__/client.test.d.ts +0 -2
- package/dist/__tests__/client.test.d.ts.map +0 -1
- package/dist/__tests__/client.test.js +0 -136
- package/dist/__tests__/client.test.js.map +0 -1
- package/dist/__tests__/mode.test.d.ts +0 -2
- package/dist/__tests__/mode.test.d.ts.map +0 -1
- package/dist/__tests__/mode.test.js +0 -25
- package/dist/__tests__/mode.test.js.map +0 -1
- package/dist/__tests__/schemas.test.d.ts +0 -2
- package/dist/__tests__/schemas.test.d.ts.map +0 -1
- package/dist/__tests__/schemas.test.js +0 -53
- package/dist/__tests__/schemas.test.js.map +0 -1
- package/dist/__tests__/tools.test.d.ts +0 -2
- package/dist/__tests__/tools.test.d.ts.map +0 -1
- package/dist/__tests__/tools.test.js +0 -241
- package/dist/__tests__/tools.test.js.map +0 -1
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
|
|
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 →
|
|
35
|
+
Requested → Scheduled → Confirmed → In Progress → Completed → Documented → Invoiced → Collected → 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
|
|
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
|
|
44
|
+
### Phase 0 — DNS 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.
|
|
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
|
|
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
|
|
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
|
|
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 →
|
|
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
|
|
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 (
|
|
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.
|
|
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
|
|
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.
|
|
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,
|
|
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).
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
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
|
|
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
|
package/dist/mandate.d.ts.map
CHANGED
|
@@ -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
|
-
|
|
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
|
package/dist/mandate.js.map
CHANGED
|
@@ -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":"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"}
|
|
@@ -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
|
|
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
|
-
|
|
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,
|
|
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.
|
|
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 +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 +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 +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 +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":"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"}
|