@badgie/crm-cli 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -4,7 +4,7 @@ Este archivo es la guía canónica para que un agente (openclaw, Claude, Cursor,
4
4
 
5
5
  ## Qué es
6
6
 
7
- CLI oficial del Badgie CRM. La versión publicada `0.6.0` incluye 86 comandos; la rama actual expone 110 comandos sobre Supabase y endpoints de la app Next. Instalación: ver `cli/README.md`.
7
+ CLI oficial del Badgie CRM. La versión publicada `0.8.0` expone 120 comandos sobre Supabase y endpoints de la app Next, e incluye flujo completo para investigar y mantener federaciones (nacionales + regionales). Instalación: ver `cli/README.md`.
8
8
 
9
9
  ## Fuente de verdad (machine-readable)
10
10
 
@@ -88,6 +88,62 @@ badgie-crm finance closings close --year 2026 --month 4 --notes "Revisado"
88
88
  badgie-crm top-clients answer set --review-id <review-id> --question risk_level --value high
89
89
  ```
90
90
 
91
+ ## Federations para agentes (investigación + outreach)
92
+
93
+ El módulo `federations` cubre **dos catálogos** que comparten una sola capa CRM:
94
+
95
+ - **Nacionales**: catálogo estático de 66 federaciones en
96
+ `data/federaciones-deportivas-esp.json` (JSON inmutable). `federacion_numero`
97
+ es el id del JSON, p. ej. `"1"`, `"12"`.
98
+ - **Regionales/territoriales**: catálogo dinámico en `regional_federations`
99
+ (UUID). El `federacion_numero` que comparten `federation_crm`,
100
+ `federation_contacts` y `federation_contact_activities` es siempre
101
+ `reg-<uuid>` para estas filas.
102
+
103
+ Cuando investigues con un agente:
104
+
105
+ ```bash
106
+ # 1. ¿Existe ya en el catálogo nacional? (consulta el JSON estático)
107
+ badgie-crm federations list --pretty
108
+
109
+ # 2. ¿Es regional? Lista las que ya tenemos.
110
+ badgie-crm federations regional list --ccaa galicia --pretty
111
+
112
+ # 3. Si no está, creamos la regional y obtenemos el `federacion_numero`.
113
+ badgie-crm federations regional create \
114
+ --nombre "Federación Gallega de Pádel" \
115
+ --siglas FGP --ccaa Galicia --pretty
116
+ # → { id: "<uuid>", federacion_numero: "reg-<uuid>", ... }
117
+
118
+ # 4. Pipeline CRM: usa el `federacion_numero` devuelto para set/contacts/activities.
119
+ badgie-crm federations set reg-<uuid> --status researching --priority 4 --owner Greg
120
+ badgie-crm federations contacts add --federation reg-<uuid> \
121
+ --full-name "Marta Ruiz" --role Presidenta --email marta@fgp.es --primary --qualification warm
122
+ badgie-crm federations activities log --contact-id <uuid> --type email \
123
+ --outcome follow_up --title "Primer contacto" --description "Le envié deck Badgie"
124
+
125
+ # 5. Si verificas datos de una NACIONAL (web nueva, teléfono, dirección),
126
+ # persiste el override sin tocar el JSON:
127
+ badgie-crm federations catalog set 12 \
128
+ --telefono "+34 93 200 67 69" --web https://www.fedas.es
129
+
130
+ # 6. Marca un contacto como primario único de la federación:
131
+ badgie-crm federations contacts set-primary <uuid> --exclusive
132
+ ```
133
+
134
+ Reglas para el agente:
135
+
136
+ - **Antes de crear** una regional, ejecuta `federations regional list --search …`
137
+ o `query select regional_federations --where "nombre:ilike:%<texto>%"` para
138
+ evitar duplicados.
139
+ - **Nunca dupliques** una federación nacional como regional. Si ya está en el
140
+ JSON, usa `federations catalog set <numero>` para corregir datos.
141
+ - **`federations regional delete --cascade`** es destructivo: borra la fila del
142
+ catálogo y todos los CRM/contactos/timeline asociados a `reg-<uuid>`. Pide
143
+ confirmación humana.
144
+ - Para investigar contactos: usa `federations contacts list --federation <numero>`
145
+ (donde `<numero>` puede ser `"12"` o `reg-<uuid>` indistintamente).
146
+
91
147
  ## Finance OS para agentes
92
148
 
93
149
  Usa estos comandos nuevos antes de hacer queries manuales:
package/CHANGELOG.md CHANGED
@@ -1,5 +1,69 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.8.0 — 2026-05-06
4
+
5
+ ### Added — Federations workflow para agentes
6
+
7
+ Pensado para que un agente investigue federaciones (web pública, contactos
8
+ verificados, datos de contacto actualizados) y persista los hallazgos sin
9
+ tocar tablas ni archivos estáticos.
10
+
11
+ - **Catálogo nacional editable vía overrides JSONB**:
12
+ - `federations catalog set <numero>` — escribe en `federation_crm.catalog_datos`
13
+ los campos `--telefono`, `--email`, `--web`, `--direccion`, `--deportistas`,
14
+ `--notas-badgie`. Sustituyen al catálogo estático sin mutarlo. Acepta
15
+ `--clear-field <campo>` (repetible) para borrar overrides puntuales.
16
+ - `federations catalog clear <numero>` — resetea todos los overrides a `{}`.
17
+ - **Federaciones regionales** (tabla `regional_federations`, antes solo UI):
18
+ - `federations regional list [--ccaa <texto>] [--search <texto>]`.
19
+ - `federations regional get <id>` — fila + CRM + contactos + últimas 10
20
+ actividades, todo en un único response.
21
+ - `federations regional create --nombre … [--siglas] [--ccaa] [--notas]`
22
+ devuelve la fila más `federacion_numero = 'reg-<uuid>'` listo para
23
+ `federations set`, `federations contacts add`, etc.
24
+ - `federations regional update <id>` (nombre, siglas, CCAA, notas, con
25
+ `--clear-ccaa` / `--clear-notas`).
26
+ - `federations regional delete <id> [--cascade]`. Sin `--cascade` solo borra
27
+ la fila del catálogo regional; con `--cascade` limpia también el CRM,
28
+ contactos y timeline (`federacion_numero = 'reg-<uuid>'`).
29
+ - **Contactos**:
30
+ - `federations contacts update <id>` — full_name, role, email, phone,
31
+ linkedin, qualification, notes, `--primary` / `--no-primary`.
32
+ - `federations contacts remove <id>` (destructive; cascade en activities).
33
+ - `federations contacts set-primary <id> [--exclusive]` para garantizar un
34
+ único primario por federación.
35
+
36
+ ### Changed
37
+
38
+ - Las tablas `federation_crm`, `federation_contacts` y
39
+ `federation_contact_activities` se reutilizan ahora **tanto** para
40
+ nacionales como regionales. La convención compartida es
41
+ `federacion_numero = '<numero>'` para nacionales y `'reg-<uuid>'` para
42
+ regionales. No hay tablas CRM duplicadas.
43
+
44
+ ### Fixed
45
+
46
+ - `bin.ts`: import `ModuleSpec` faltante (provocaba `TS2304` en `tsc --noEmit`
47
+ desde el último refactor del registry).
48
+
49
+ ### Requires
50
+
51
+ - Migraciones aplicadas en Supabase: `supabase-federation-catalog-datos.sql` y
52
+ `supabase-regional-federations.sql` del repo del CRM.
53
+
54
+ ### Manual checks
55
+
56
+ ```bash
57
+ npm run typecheck
58
+ npm run clean && npm run build
59
+
60
+ node dist/bin.js docs --json | jq '[.commands[] | select(.module=="federations") | .command]'
61
+ node dist/bin.js federations regional create --nombre "Federación Gallega de Tenis" --siglas FGT --ccaa Galicia --pretty
62
+ node dist/bin.js federations regional list --pretty
63
+ node dist/bin.js federations catalog set 12 --web https://www.fedex.es --pretty
64
+ node dist/bin.js federations contacts update <uuid> --qualification warm
65
+ ```
66
+
3
67
  ## 0.7.0 — 2026-04-26
4
68
 
5
69
  ### Added
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @badgie/crm-cli (`badgie-crm`)
2
2
 
3
- **Versión publicada:** `0.7.0` — ver [`CHANGELOG.md`](./CHANGELOG.md).
3
+ **Versión publicada:** `0.8.0` — ver [`CHANGELOG.md`](./CHANGELOG.md).
4
4
 
5
5
  CLI para operar el Badgie CRM desde la terminal. Reemplaza los scripts sueltos de `/scripts/` y expone el CRM vía MCP a agentes IA (openclaw, Claude Desktop, Cursor...).
6
6
 
@@ -87,9 +87,9 @@ badgie-crm leads list
87
87
 
88
88
  ## Módulos
89
89
 
90
- La versión `0.7.0` expone 110 comandos. Módulos principales:
90
+ La versión `0.8.0` expone 120 comandos. Módulos principales:
91
91
 
92
- `leads`, `clients`, `contacts`, `tasks`, `development`, `finance`, `outbound`, `directory`, `marketing`, `intelligence`, `mission-control`, `top-clients`, `federations`, `web-design`, `team`, `sports`, `activities`, `demos`, `onboarding`, `webhooks`, `admin`, `search`, `query`, `docs`, `mcp`.
92
+ `leads`, `clients`, `contacts`, `tasks`, `development`, `finance`, `outbound`, `directory`, `marketing`, `intelligence`, `mission-control`, `top-clients`, `federations` (nacionales + regionales + overrides de catálogo), `web-design`, `team`, `sports`, `activities`, `demos`, `onboarding`, `webhooks`, `admin`, `search`, `query`, `docs`, `mcp`.
93
93
 
94
94
  Explora todo con:
95
95
 
package/dist/bin.js CHANGED
@@ -6,40 +6,9 @@ import { loginCommand } from './commands/login.js';
6
6
  import { logoutCommand } from './commands/logout.js';
7
7
  import { whoamiCommand } from './commands/whoami.js';
8
8
  import { welcomeCommand } from './commands/welcome.js';
9
- import { leadsModule } from './commands/leads.js';
10
- import { clientsModule } from './commands/clients.js';
11
- import { tasksModule } from './commands/tasks.js';
12
- import { financeModule } from './commands/finance.js';
13
- import { outboundModule } from './commands/outbound.js';
14
- import { marketingModule } from './commands/marketing.js';
15
- import { intelligenceModule } from './commands/intelligence.js';
16
- import { operationsModule } from './commands/operations.js';
17
- import { webhooksModule } from './commands/webhooks.js';
18
- import { adminModule } from './commands/admin.js';
19
- import { searchModule } from './commands/search.js';
20
- import { queryModule } from './commands/query.js';
21
- import { directoryModule } from './commands/directory.js';
22
- import { topClientsModule } from './commands/top-clients.js';
23
- import { federationsModule } from './commands/federations.js';
24
9
  import { createDocsModule } from './commands/docs.js';
25
10
  import { createMcpModule } from './commands/mcp.js';
26
- const MODULES = [
27
- leadsModule,
28
- clientsModule,
29
- tasksModule,
30
- financeModule,
31
- outboundModule,
32
- marketingModule,
33
- intelligenceModule,
34
- operationsModule,
35
- webhooksModule,
36
- adminModule,
37
- searchModule,
38
- queryModule,
39
- directoryModule,
40
- topClientsModule,
41
- federationsModule,
42
- ];
11
+ import { MODULES } from './modules.js';
43
12
  async function main() {
44
13
  const program = new Command();
45
14
  const docsModule = createDocsModule(() => [...MODULES, docsModule, mcpModule]);
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,OAAO,GAAiB;IAC5B,WAAW;IACX,aAAa;IACb,WAAW;IACX,aAAa;IACb,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,YAAY;IACZ,WAAW;IACX,eAAe;IACf,gBAAgB;IAChB,iBAAiB;CAClB,CAAA;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAC7B,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAA;IAC9E,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAA;IAC5E,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;IAEtD,OAAO;SACJ,IAAI,CAAC,YAAY,CAAC;SAClB,WAAW,CAAC,+EAA+E,CAAC;SAC5F,OAAO,CAAC,cAAc,EAAE,CAAC;SACzB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;IAE/B,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;IAE/B,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;IAE7B,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA;IAE9B,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,UAAU,EAAE,uBAAuB,CAAC;SAC3C,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA;IAE9B,KAAK,MAAM,CAAC,IAAI,UAAU;QAAE,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAEtD,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB,EAAE,MAAkB;IAC1D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAA;IACxC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAEtB,oEAAoE;IACpE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,MAAM,GAAY,OAAO,CAAA;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC/C,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACzB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,GAAG,MAAM;qBACV,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACrB,WAAW,CACV,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CACvE,CAAA;gBACH,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACtB,CAAC;YACD,MAAM,GAAG,IAAI,CAAA;QACf,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAA;QAC5C,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACxB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAa,EAAE,IAAiB;IAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAA;QACtD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;IACnC,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CACT,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,WAAW,EACb,CAAC,KAAa,EAAE,QAAkB,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,EAC3D,EAAc,CACf,CAAA;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAA;QAC5D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5F,CAAC;IACD,IAAI,IAAI,CAAC,WAAW;QAAE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAA;IACxE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,UAAqB,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAE3C,CAAA;QACD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,eAAe;YAC/B,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE;YACvB,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAA;QAC1C,MAAM,MAAM,GAAuC,EAAE,CACpD;QAAA,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAuB,CAAA;QACtD,CAAC,CAAC,CAAA;QACF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAU,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,IAAI,CAAI,EAA8B;IAC7C,OAAO,KAAK,EAAE,IAAO,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,IAAI,CAAC,CAAA;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAU,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,24 @@ const FEDERATION_STATUSES = [
14
14
  const FEDERATION_QUALIFICATIONS = ['hot', 'warm', 'cold', 'unqualified', 'dnc'];
15
15
  const FEDERATION_ACTIVITY_TYPES = ['call', 'email', 'meeting', 'note', 'task'];
16
16
  const FEDERATION_ACTIVITY_OUTCOMES = ['positive', 'neutral', 'negative', 'no_answer', 'follow_up'];
17
+ const CATALOG_FIELDS = [
18
+ 'telefono',
19
+ 'email',
20
+ 'web',
21
+ 'direccion',
22
+ 'deportistas_federados_aprox',
23
+ 'notas_badgie',
24
+ ];
25
+ /**
26
+ * Convención compartida con el web app: las federaciones territoriales viven en
27
+ * `regional_federations` (UUID) pero comparten `federation_crm` /
28
+ * `federation_contacts` / `federation_contact_activities` con las nacionales,
29
+ * identificadas por `federacion_numero = 'reg-<uuid>'`.
30
+ */
31
+ const REGIONAL_PREFIX = 'reg-';
32
+ function buildRegionalNumero(id) {
33
+ return `${REGIONAL_PREFIX}${id}`;
34
+ }
17
35
  function ensureEnum(allowed, value, label) {
18
36
  if (!allowed.includes(value)) {
19
37
  throw new Error(`Invalid ${label} "${value}". Allowed: ${allowed.join(', ')}`);
@@ -238,6 +256,307 @@ async function logFederationActivity(_a, opts) {
238
256
  throw error;
239
257
  output(data, { pretty: !!opts.pretty });
240
258
  }
259
+ // Federation contacts — update / remove / set-primary ─────────────────────
260
+ async function updateFederationContact(args, opts) {
261
+ const id = args.id;
262
+ if (!id)
263
+ throw new Error('Falta <id> de contacto');
264
+ const { client } = await getAuthedClient();
265
+ const patch = {};
266
+ if (typeof opts.fullName === 'string')
267
+ patch.full_name = opts.fullName;
268
+ if (typeof opts.role === 'string')
269
+ patch.role = opts.role;
270
+ if (typeof opts.email === 'string')
271
+ patch.email = opts.email;
272
+ if (typeof opts.phone === 'string')
273
+ patch.phone = opts.phone;
274
+ if (typeof opts.linkedin === 'string')
275
+ patch.linkedin = opts.linkedin;
276
+ if (typeof opts.notes === 'string')
277
+ patch.notes = opts.notes;
278
+ if (typeof opts.qualification === 'string') {
279
+ patch.qualification = ensureEnum(FEDERATION_QUALIFICATIONS, opts.qualification, 'qualification');
280
+ }
281
+ if (opts.primary === true)
282
+ patch.is_primary = true;
283
+ if (opts.primary === false)
284
+ patch.is_primary = false;
285
+ if (Object.keys(patch).length === 0) {
286
+ throw new Error('Pasa al menos un campo a actualizar (--full-name, --role, --email, --phone, --linkedin, --qualification, --notes, --primary, --no-primary)');
287
+ }
288
+ const { data, error } = await client
289
+ .from('federation_contacts')
290
+ .update(patch)
291
+ .eq('id', id)
292
+ .select('*')
293
+ .single();
294
+ if (error)
295
+ throw error;
296
+ output(data, { pretty: !!opts.pretty });
297
+ }
298
+ async function removeFederationContact(args, opts) {
299
+ const id = args.id;
300
+ if (!id)
301
+ throw new Error('Falta <id> de contacto');
302
+ const { client } = await getAuthedClient();
303
+ const { error } = await client.from('federation_contacts').delete().eq('id', id);
304
+ if (error)
305
+ throw error;
306
+ output({ deleted_contact_id: id }, { pretty: !!opts.pretty });
307
+ }
308
+ async function setPrimaryFederationContact(args, opts) {
309
+ const id = args.id;
310
+ if (!id)
311
+ throw new Error('Falta <id> de contacto');
312
+ const { client } = await getAuthedClient();
313
+ const target = await client
314
+ .from('federation_contacts')
315
+ .select('id, federacion_numero')
316
+ .eq('id', id)
317
+ .single();
318
+ if (target.error)
319
+ throw target.error;
320
+ if (opts.exclusive) {
321
+ const { error: clearErr } = await client
322
+ .from('federation_contacts')
323
+ .update({ is_primary: false })
324
+ .eq('federacion_numero', target.data.federacion_numero)
325
+ .neq('id', id);
326
+ if (clearErr)
327
+ throw clearErr;
328
+ }
329
+ const { data, error } = await client
330
+ .from('federation_contacts')
331
+ .update({ is_primary: true })
332
+ .eq('id', id)
333
+ .select('*')
334
+ .single();
335
+ if (error)
336
+ throw error;
337
+ output(data, { pretty: !!opts.pretty });
338
+ }
339
+ // National catalog overrides (federation_crm.catalog_datos) ───────────────
340
+ async function setFederationCatalog(args, opts) {
341
+ const numero = args.numero;
342
+ if (!numero)
343
+ throw new Error('Falta <numero> de federación');
344
+ if (numero.startsWith(REGIONAL_PREFIX)) {
345
+ throw new Error('Las federaciones regionales no usan catalog_datos; edita los campos directamente con `federations regional update <id>`.');
346
+ }
347
+ const { client } = await getAuthedClient();
348
+ const current = await client
349
+ .from('federation_crm')
350
+ .select('catalog_datos')
351
+ .eq('federacion_numero', numero)
352
+ .maybeSingle();
353
+ if (current.error)
354
+ throw current.error;
355
+ const base = {
356
+ ...(current.data?.catalog_datos ?? {}),
357
+ };
358
+ const clearList = [];
359
+ if (typeof opts.clearField === 'string')
360
+ clearList.push(opts.clearField);
361
+ if (Array.isArray(opts.clearField)) {
362
+ for (const k of opts.clearField) {
363
+ if (typeof k === 'string')
364
+ clearList.push(k);
365
+ }
366
+ }
367
+ for (const k of clearList) {
368
+ ensureEnum(CATALOG_FIELDS, k, 'clear-field');
369
+ delete base[k];
370
+ }
371
+ const fieldMap = [
372
+ ['telefono', opts.telefono],
373
+ ['email', opts.email],
374
+ ['web', opts.web],
375
+ ['direccion', opts.direccion],
376
+ ['deportistas_federados_aprox', opts.deportistas],
377
+ ['notas_badgie', opts.notasBadgie],
378
+ ];
379
+ let touched = clearList.length > 0;
380
+ for (const [key, value] of fieldMap) {
381
+ if (typeof value === 'string') {
382
+ base[key] = value;
383
+ touched = true;
384
+ }
385
+ }
386
+ if (!touched) {
387
+ throw new Error('Pasa al menos un override (--telefono, --email, --web, --direccion, --deportistas, --notas-badgie) o --clear-field <campo>.');
388
+ }
389
+ const { data, error } = await client
390
+ .from('federation_crm')
391
+ .upsert({ federacion_numero: numero, catalog_datos: base }, { onConflict: 'federacion_numero' })
392
+ .select('federacion_numero, catalog_datos, updated_at')
393
+ .single();
394
+ if (error) {
395
+ if (typeof error.message === 'string' && error.message.includes('catalog_datos')) {
396
+ throw new Error('La columna federation_crm.catalog_datos no existe todavía. Ejecuta supabase-federation-catalog-datos.sql en Supabase y reload del schema.');
397
+ }
398
+ throw error;
399
+ }
400
+ output(data, { pretty: !!opts.pretty });
401
+ }
402
+ async function clearFederationCatalog(args, opts) {
403
+ const numero = args.numero;
404
+ if (!numero)
405
+ throw new Error('Falta <numero> de federación');
406
+ const { client } = await getAuthedClient();
407
+ const { data, error } = await client
408
+ .from('federation_crm')
409
+ .upsert({ federacion_numero: numero, catalog_datos: {} }, { onConflict: 'federacion_numero' })
410
+ .select('federacion_numero, catalog_datos, updated_at')
411
+ .single();
412
+ if (error)
413
+ throw error;
414
+ output(data, { pretty: !!opts.pretty });
415
+ }
416
+ // Regional federations (regional_federations) ─────────────────────────────
417
+ async function listRegionalFederations(_a, opts) {
418
+ const { client } = await getAuthedClient();
419
+ let q = client
420
+ .from('regional_federations')
421
+ .select('id, nombre, siglas, comunidad_autonoma, notas, created_at, updated_at')
422
+ .order('nombre', { ascending: true })
423
+ .limit(parseLimit(opts));
424
+ if (typeof opts.ccaa === 'string')
425
+ q = q.ilike('comunidad_autonoma', `%${opts.ccaa}%`);
426
+ if (typeof opts.search === 'string') {
427
+ const s = opts.search;
428
+ q = q.or(`nombre.ilike.%${s}%,siglas.ilike.%${s}%,comunidad_autonoma.ilike.%${s}%,notas.ilike.%${s}%`);
429
+ }
430
+ const { data, error } = await q;
431
+ if (error)
432
+ throw error;
433
+ const rows = (data ?? []).map((r) => ({
434
+ ...r,
435
+ federacion_numero: buildRegionalNumero(r.id),
436
+ }));
437
+ output(rows, { pretty: !!opts.pretty, columns: parseColumns(opts) });
438
+ }
439
+ async function getRegionalFederation(args, opts) {
440
+ const id = args.id;
441
+ if (!id)
442
+ throw new Error('Falta <id> de federación regional');
443
+ const numero = buildRegionalNumero(id);
444
+ const { client } = await getAuthedClient();
445
+ const [regRes, crmRes, contactsRes, activitiesRes] = await Promise.all([
446
+ client.from('regional_federations').select('*').eq('id', id).maybeSingle(),
447
+ client.from('federation_crm').select('*').eq('federacion_numero', numero).maybeSingle(),
448
+ client
449
+ .from('federation_contacts')
450
+ .select('id, full_name, role, email, phone, linkedin, is_primary, qualification, notes, updated_at')
451
+ .eq('federacion_numero', numero)
452
+ .order('is_primary', { ascending: false })
453
+ .order('updated_at', { ascending: false }),
454
+ client
455
+ .from('federation_contact_activities')
456
+ .select('id, contact_id, type, outcome, title, description, occurred_at')
457
+ .eq('federacion_numero', numero)
458
+ .order('occurred_at', { ascending: false })
459
+ .limit(10),
460
+ ]);
461
+ if (regRes.error)
462
+ throw regRes.error;
463
+ if (!regRes.data)
464
+ throw new Error(`No existe la federación regional ${id}`);
465
+ if (crmRes.error)
466
+ throw crmRes.error;
467
+ if (contactsRes.error)
468
+ throw contactsRes.error;
469
+ if (activitiesRes.error)
470
+ throw activitiesRes.error;
471
+ output({
472
+ regional: regRes.data,
473
+ federacion_numero: numero,
474
+ crm: crmRes.data,
475
+ contacts: contactsRes.data ?? [],
476
+ recent_activities: activitiesRes.data ?? [],
477
+ }, { pretty: !!opts.pretty });
478
+ }
479
+ async function createRegionalFederation(_a, opts) {
480
+ if (typeof opts.nombre !== 'string' || !opts.nombre.trim()) {
481
+ throw new Error('--nombre is required');
482
+ }
483
+ const { client } = await getAuthedClient();
484
+ let createdBy = null;
485
+ const userRes = await client.auth.getUser();
486
+ const email = userRes.data?.user?.email;
487
+ if (email) {
488
+ const tm = await client.from('team_members').select('id').eq('email', email).maybeSingle();
489
+ createdBy = tm.data?.id ?? null;
490
+ }
491
+ const insert = {
492
+ nombre: opts.nombre.trim(),
493
+ siglas: typeof opts.siglas === 'string' ? opts.siglas.trim() : '',
494
+ comunidad_autonoma: typeof opts.ccaa === 'string' && opts.ccaa.trim() ? opts.ccaa.trim() : null,
495
+ notas: typeof opts.notas === 'string' && opts.notas.trim() ? opts.notas.trim() : null,
496
+ created_by: createdBy,
497
+ };
498
+ const { data, error } = await client
499
+ .from('regional_federations')
500
+ .insert(insert)
501
+ .select('*')
502
+ .single();
503
+ if (error)
504
+ throw error;
505
+ output({ ...data, federacion_numero: buildRegionalNumero(data.id) }, { pretty: !!opts.pretty });
506
+ }
507
+ async function updateRegionalFederation(args, opts) {
508
+ const id = args.id;
509
+ if (!id)
510
+ throw new Error('Falta <id> de federación regional');
511
+ const patch = {};
512
+ if (typeof opts.nombre === 'string')
513
+ patch.nombre = opts.nombre;
514
+ if (typeof opts.siglas === 'string')
515
+ patch.siglas = opts.siglas;
516
+ if (typeof opts.ccaa === 'string')
517
+ patch.comunidad_autonoma = opts.ccaa;
518
+ if (opts.clearCcaa)
519
+ patch.comunidad_autonoma = null;
520
+ if (typeof opts.notas === 'string')
521
+ patch.notas = opts.notas;
522
+ if (opts.clearNotas)
523
+ patch.notas = null;
524
+ if (Object.keys(patch).length === 0) {
525
+ throw new Error('Pasa al menos un campo (--nombre, --siglas, --ccaa, --clear-ccaa, --notas, --clear-notas)');
526
+ }
527
+ const { client } = await getAuthedClient();
528
+ const { data, error } = await client
529
+ .from('regional_federations')
530
+ .update(patch)
531
+ .eq('id', id)
532
+ .select('*')
533
+ .single();
534
+ if (error)
535
+ throw error;
536
+ output({ ...data, federacion_numero: buildRegionalNumero(id) }, { pretty: !!opts.pretty });
537
+ }
538
+ async function deleteRegionalFederation(args, opts) {
539
+ const id = args.id;
540
+ if (!id)
541
+ throw new Error('Falta <id> de federación regional');
542
+ const numero = buildRegionalNumero(id);
543
+ const { client } = await getAuthedClient();
544
+ if (opts.cascade) {
545
+ const a = await client.from('federation_contact_activities').delete().eq('federacion_numero', numero);
546
+ if (a.error)
547
+ throw a.error;
548
+ const c = await client.from('federation_contacts').delete().eq('federacion_numero', numero);
549
+ if (c.error)
550
+ throw c.error;
551
+ const k = await client.from('federation_crm').delete().eq('federacion_numero', numero);
552
+ if (k.error)
553
+ throw k.error;
554
+ }
555
+ const { error } = await client.from('regional_federations').delete().eq('id', id);
556
+ if (error)
557
+ throw error;
558
+ output({ deleted_regional_id: id, deleted_federacion_numero: numero, cascaded: !!opts.cascade }, { pretty: !!opts.pretty });
559
+ }
241
560
  export const federationsModule = {
242
561
  name: 'federations',
243
562
  summary: 'Spanish sport federations CRM — pipeline, contacts, activity timeline',
@@ -360,6 +679,153 @@ export const federationsModule = {
360
679
  ],
361
680
  handler: logFederationActivity,
362
681
  },
682
+ {
683
+ path: ['federations', 'contacts', 'update'],
684
+ summary: 'Update a federation contact (name, role, email, phone, LinkedIn, qualification, notes, primary flag)',
685
+ tags: ['write'],
686
+ args: [{ name: 'id', required: true, description: 'federation_contacts.id (uuid)' }],
687
+ options: [
688
+ { flag: '--full-name <text>', description: 'full name' },
689
+ { flag: '--role <text>', description: 'role / title' },
690
+ { flag: '--email <email>', description: 'email' },
691
+ { flag: '--phone <phone>', description: 'phone' },
692
+ { flag: '--linkedin <url>', description: 'linkedin url' },
693
+ { flag: '--qualification <q>', description: FEDERATION_QUALIFICATIONS.join('|') },
694
+ { flag: '--notes <text>', description: 'free-form notes (replaces existing)' },
695
+ { flag: '--primary', description: 'mark as primary' },
696
+ { flag: '--no-primary', description: 'unmark as primary' },
697
+ { flag: '--pretty', description: 'human output' },
698
+ ],
699
+ examples: [
700
+ 'badgie-crm federations contacts update <uuid> --email nueva@fed.es --qualification warm',
701
+ ],
702
+ handler: updateFederationContact,
703
+ },
704
+ {
705
+ path: ['federations', 'contacts', 'remove'],
706
+ summary: 'Delete a federation contact (cascades activities)',
707
+ description: 'Hard delete sobre federation_contacts. El trigger ON DELETE CASCADE en federation_contact_activities elimina su timeline.',
708
+ tags: ['destructive'],
709
+ args: [{ name: 'id', required: true, description: 'federation_contacts.id (uuid)' }],
710
+ options: [{ flag: '--pretty', description: 'human output' }],
711
+ handler: removeFederationContact,
712
+ },
713
+ {
714
+ path: ['federations', 'contacts', 'set-primary'],
715
+ summary: 'Mark a federation contact as primary (optionally exclusive within the federation)',
716
+ tags: ['write'],
717
+ args: [{ name: 'id', required: true, description: 'federation_contacts.id (uuid)' }],
718
+ options: [
719
+ { flag: '--exclusive', description: 'desmarca el resto de contactos primarios de esa federación' },
720
+ { flag: '--pretty', description: 'human output' },
721
+ ],
722
+ examples: [
723
+ 'badgie-crm federations contacts set-primary <uuid> --exclusive --pretty',
724
+ ],
725
+ handler: setPrimaryFederationContact,
726
+ },
727
+ {
728
+ path: ['federations', 'catalog', 'set'],
729
+ summary: 'Override catalog fields for a NATIONAL federation (federation_crm.catalog_datos JSONB)',
730
+ description: 'Solo aplica a federaciones del catálogo nacional ("1".."66"). Sobrescribe campos del JSON estático sin tocar el archivo. Pensado para que un agente investigue datos públicos (web, teléfono, email actualizado, descripción) y los persista en CRM.',
731
+ tags: ['write'],
732
+ args: [{ name: 'numero', required: true, description: 'federacion_numero del catálogo nacional' }],
733
+ options: [
734
+ { flag: '--telefono <text>', description: 'override teléfono' },
735
+ { flag: '--email <text>', description: 'override email' },
736
+ { flag: '--web <text>', description: 'override web url' },
737
+ { flag: '--direccion <text>', description: 'override dirección postal' },
738
+ { flag: '--deportistas <text>', description: 'override deportistas_federados_aprox' },
739
+ { flag: '--notas-badgie <text>', description: 'override notas internas (notas_badgie)' },
740
+ {
741
+ flag: '--clear-field <field>',
742
+ description: `borra un override (${CATALOG_FIELDS.join('|')}); flag repetible`,
743
+ collect: true,
744
+ },
745
+ { flag: '--pretty', description: 'human output' },
746
+ ],
747
+ examples: [
748
+ 'badgie-crm federations catalog set 12 --telefono "+34 91 555 12 34" --web https://www.fedex.es',
749
+ 'badgie-crm federations catalog set 7 --clear-field web --clear-field telefono',
750
+ ],
751
+ handler: setFederationCatalog,
752
+ },
753
+ {
754
+ path: ['federations', 'catalog', 'clear'],
755
+ summary: 'Clear ALL catalog overrides for a federation (resets catalog_datos to {})',
756
+ tags: ['write'],
757
+ args: [{ name: 'numero', required: true, description: 'federacion_numero del catálogo nacional' }],
758
+ options: [{ flag: '--pretty', description: 'human output' }],
759
+ handler: clearFederationCatalog,
760
+ },
761
+ {
762
+ path: ['federations', 'regional', 'list'],
763
+ summary: 'List regional/territorial federations (regional_federations table)',
764
+ description: 'Catálogo dinámico de federaciones territoriales. Cada fila tiene un UUID; el `federacion_numero` para CRM/contactos/timeline es `reg-<uuid>`.',
765
+ tags: ['read'],
766
+ options: [
767
+ { flag: '--ccaa <text>', description: 'ilike sobre comunidad_autonoma' },
768
+ { flag: '--search <text>', description: 'ilike global (nombre, siglas, CCAA, notas)' },
769
+ ...commonListOptions(),
770
+ ],
771
+ examples: [
772
+ 'badgie-crm federations regional list --ccaa galicia --pretty',
773
+ ],
774
+ handler: listRegionalFederations,
775
+ },
776
+ {
777
+ path: ['federations', 'regional', 'get'],
778
+ summary: 'Show regional federation row + CRM + contacts + last 10 activities',
779
+ tags: ['read'],
780
+ args: [{ name: 'id', required: true, description: 'regional_federations.id (uuid)' }],
781
+ options: [{ flag: '--pretty', description: 'human output' }],
782
+ handler: getRegionalFederation,
783
+ },
784
+ {
785
+ path: ['federations', 'regional', 'create'],
786
+ summary: 'Create a regional federation (territorial). Devuelve `federacion_numero` (reg-<uuid>) listo para CRM y contactos.',
787
+ description: 'Pensado para agentes haciendo investigación: crea la entrada en `regional_federations` y devuelve el `federacion_numero` que comparten federation_crm/contacts/activities.',
788
+ tags: ['write'],
789
+ options: [
790
+ { flag: '--nombre <text>', description: 'nombre completo (required)' },
791
+ { flag: '--siglas <text>', description: 'siglas' },
792
+ { flag: '--ccaa <text>', description: 'comunidad autónoma o territorio' },
793
+ { flag: '--notas <text>', description: 'notas iniciales' },
794
+ { flag: '--pretty', description: 'human output' },
795
+ ],
796
+ examples: [
797
+ 'badgie-crm federations regional create --nombre "Federación Gallega de Tenis" --siglas FGT --ccaa Galicia',
798
+ ],
799
+ handler: createRegionalFederation,
800
+ },
801
+ {
802
+ path: ['federations', 'regional', 'update'],
803
+ summary: 'Update a regional federation metadata (nombre, siglas, CCAA, notas)',
804
+ tags: ['write'],
805
+ args: [{ name: 'id', required: true, description: 'regional_federations.id (uuid)' }],
806
+ options: [
807
+ { flag: '--nombre <text>', description: 'nuevo nombre' },
808
+ { flag: '--siglas <text>', description: 'nuevas siglas' },
809
+ { flag: '--ccaa <text>', description: 'comunidad autónoma' },
810
+ { flag: '--clear-ccaa', description: 'borra comunidad_autonoma' },
811
+ { flag: '--notas <text>', description: 'notas (reemplaza)' },
812
+ { flag: '--clear-notas', description: 'borra notas' },
813
+ { flag: '--pretty', description: 'human output' },
814
+ ],
815
+ handler: updateRegionalFederation,
816
+ },
817
+ {
818
+ path: ['federations', 'regional', 'delete'],
819
+ summary: 'Delete a regional federation. Use --cascade to also remove its CRM row, contacts and activities.',
820
+ description: 'Sin `--cascade` solo borra la fila en `regional_federations`; las filas con `federacion_numero=reg-<uuid>` en federation_crm / contacts / activities quedan huérfanas. Con `--cascade` se borran también.',
821
+ tags: ['destructive'],
822
+ args: [{ name: 'id', required: true, description: 'regional_federations.id (uuid)' }],
823
+ options: [
824
+ { flag: '--cascade', description: 'borra también CRM + contactos + actividades vinculadas a reg-<uuid>' },
825
+ { flag: '--pretty', description: 'human output' },
826
+ ],
827
+ handler: deleteRegionalFederation,
828
+ },
363
829
  ],
364
830
  };
365
831
  //# sourceMappingURL=federations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"federations.js","sourceRoot":"","sources":["../../src/commands/federations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federations.js","sourceRoot":"","sources":["../../src/commands/federations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ /**
3
+ * Per-request authentication context for the CLI core.
4
+ *
5
+ * The CLI binary (stdio) does not use this — it falls through to the
6
+ * service-key / persisted-session paths in `getAuthedClient`. The remote MCP
7
+ * server hosted in the Next app uses `authContext.run({ jwt }, ...)` around
8
+ * each tool call so that handlers transparently get a Supabase client bound
9
+ * to the caller's JWT (RLS enforced per user).
10
+ */
11
+ export const authContext = new AsyncLocalStorage();
12
+ //# sourceMappingURL=auth-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-context.js","sourceRoot":"","sources":["../../src/core/auth-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAUpD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,iBAAiB,EAAoB,CAAA"}
@@ -1,15 +1,27 @@
1
1
  import { createClient } from '@supabase/supabase-js';
2
2
  import { readConfig, writeConfig } from './config.js';
3
3
  import { resolveEnv } from './env.js';
4
+ import { authContext } from './auth-context.js';
4
5
  /**
5
6
  * Build a Supabase client using the best available credentials.
6
7
  * Precedence:
7
- * 1. BADGIE_CRM_SERVICE_KEY / BADGIE_SERVICE_KEY / SUPABASE_SERVICE_ROLE_KEY (bypasses RLS — for CI/automation)
8
- * 2. Persisted user session from `badgie-crm login` (respects RLS)
9
- * Throws if neither is available.
8
+ * 1. JWT injected via authContext (remote MCP server, per-request respects RLS for that user)
9
+ * 2. BADGIE_CRM_SERVICE_KEY / BADGIE_SERVICE_KEY / SUPABASE_SERVICE_ROLE_KEY (bypasses RLS — CI/automation)
10
+ * 3. Persisted user session from `badgie-crm login` (respects RLS)
11
+ * Throws if none is available.
10
12
  */
11
13
  export async function getAuthedClient() {
12
14
  const env = await resolveEnv();
15
+ const ctx = authContext.getStore();
16
+ if (ctx?.jwt) {
17
+ const client = createClient(env.supabaseUrl, env.supabaseAnonKey, {
18
+ auth: { persistSession: false, autoRefreshToken: false },
19
+ global: {
20
+ headers: { Authorization: `Bearer ${ctx.jwt}` },
21
+ },
22
+ });
23
+ return { client, mode: 'user', userEmail: ctx.email };
24
+ }
13
25
  if (env.serviceKey) {
14
26
  const client = createClient(env.supabaseUrl, env.serviceKey, {
15
27
  auth: { autoRefreshToken: false, persistSession: false },
@@ -1 +1 @@
1
- {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../src/core/supabase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAUrC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAA;IAE9B,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE;YAC3D,IAAI,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE;SACzD,CAAC,CAAA;QACF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IACpC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAA;IAC9B,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,eAAe,EAAE;QAChE,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE;KACzD,CAAC,CAAA;IAEF,mCAAmC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IACzC,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QACxC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACvD,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa;SACzC,CAAC,CAAA;QACF,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,uCAAuC,KAAK,EAAE,OAAO,IAAI,SAAS,oCAAoC,CACvG,CAAA;QACH,CAAC;QACD,GAAG,CAAC,OAAO,GAAG;YACZ,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;YACvC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;YACzC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,GAAG,IAAI;YACjD,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU;SACvD,CAAA;QACD,MAAM,WAAW,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QAC3B,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY;QACtC,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa;KACzC,CAAC,CAAA;IAEF,OAAO;QACL,MAAM;QACN,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU;KAClC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../src/core/supabase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAU/C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAA;IAE9B,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAA;IAClC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,eAAe,EAAE;YAChE,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE;YACxD,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,GAAG,CAAC,GAAG,EAAE,EAAE;aAChD;SACF,CAAC,CAAA;QACF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,CAAA;IACvD,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE;YAC3D,IAAI,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE;SACzD,CAAC,CAAA;QACF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IACpC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAA;IAC9B,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,eAAe,EAAE;QAChE,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE;KACzD,CAAC,CAAA;IAEF,mCAAmC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IACzC,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QACxC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACvD,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa;SACzC,CAAC,CAAA;QACF,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,uCAAuC,KAAK,EAAE,OAAO,IAAI,SAAS,oCAAoC,CACvG,CAAA;QACH,CAAC;QACD,GAAG,CAAC,OAAO,GAAG;YACZ,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;YACvC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;YACzC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,GAAG,IAAI;YACjD,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU;SACvD,CAAA;QACD,MAAM,WAAW,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QAC3B,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY;QACtC,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa;KACzC,CAAC,CAAA;IAEF,OAAO;QACL,MAAM;QACN,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU;KAClC,CAAA;AACH,CAAC"}
@@ -2,116 +2,7 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
3
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
4
4
  import { packageVersion } from '../core/version.js';
5
- function parseFlag(flagSpec, collect) {
6
- // e.g. "--since <date>" or "--pretty"
7
- const m = /^--([\w-]+)(?:\s+<[^>]+>)?$/.exec(flagSpec.trim());
8
- if (!m)
9
- return null;
10
- const name = m[1];
11
- const takesValue = flagSpec.includes('<');
12
- const camel = name.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
13
- return { name, camel, takesValue, collect };
14
- }
15
- /** Turn a CommandSpec into an MCP Tool definition. */
16
- function toolFromSpec(spec) {
17
- const name = ['badgie_crm', ...spec.path.map((p) => p.replace(/-/g, '_'))].join('_');
18
- const properties = {};
19
- const required = [];
20
- const examples = spec.examples ?? [];
21
- for (const a of spec.args ?? []) {
22
- properties[a.name] = { type: 'string', description: a.description };
23
- if (a.required)
24
- required.push(a.name);
25
- }
26
- for (const o of spec.options ?? []) {
27
- const meta = parseFlag(o.flag, o.collect);
28
- if (!meta)
29
- continue;
30
- if (meta.collect) {
31
- properties[meta.camel] = {
32
- type: 'array',
33
- items: { type: 'string' },
34
- description: o.description,
35
- };
36
- }
37
- else if (meta.takesValue) {
38
- properties[meta.camel] = { type: 'string', description: o.description };
39
- }
40
- else {
41
- properties[meta.camel] = { type: 'boolean', description: o.description };
42
- }
43
- }
44
- const tagsLine = spec.tags && spec.tags.length ? ` [${spec.tags.join(',')}]` : '';
45
- const description = [
46
- spec.summary + tagsLine,
47
- spec.description,
48
- examples.length ? 'Examples:\n ' + examples.join('\n ') : '',
49
- ]
50
- .filter(Boolean)
51
- .join('\n\n');
52
- return {
53
- name,
54
- description,
55
- inputSchema: {
56
- type: 'object',
57
- properties,
58
- required,
59
- additionalProperties: false,
60
- },
61
- };
62
- }
63
- function runtimeArgsFromInput(spec, input) {
64
- const args = {};
65
- for (const a of spec.args ?? []) {
66
- const v = input[a.name];
67
- args[a.name] = v === undefined || v === null ? undefined : String(v);
68
- }
69
- const opts = {};
70
- for (const o of spec.options ?? []) {
71
- const meta = parseFlag(o.flag, o.collect);
72
- if (!meta)
73
- continue;
74
- const v = input[meta.camel];
75
- if (v === undefined || v === null)
76
- continue;
77
- if (meta.collect) {
78
- opts[meta.camel] = Array.isArray(v) ? v : [v];
79
- }
80
- else if (meta.takesValue) {
81
- opts[meta.camel] = String(v);
82
- }
83
- else {
84
- if (v === true || v === 'true' || v === 1 || v === '1')
85
- opts[meta.camel] = true;
86
- }
87
- }
88
- return { args, opts };
89
- }
90
- /** Run a command handler while capturing its stdout/stderr. */
91
- async function captureHandler(spec, input) {
92
- const { args, opts } = runtimeArgsFromInput(spec, input);
93
- const chunks = [];
94
- const origLog = console.log;
95
- const origErr = console.error;
96
- console.log = (...as) => {
97
- chunks.push(as.map((a) => (typeof a === 'string' ? a : JSON.stringify(a))).join(' '));
98
- };
99
- console.error = (...as) => {
100
- chunks.push(as.map((a) => (typeof a === 'string' ? a : JSON.stringify(a))).join(' '));
101
- };
102
- try {
103
- await spec.handler(args, opts);
104
- return { ok: true, output: chunks.join('\n') };
105
- }
106
- catch (err) {
107
- const msg = err instanceof Error ? err.message : String(err);
108
- return { ok: false, output: `Error: ${msg}\n${chunks.join('\n')}` };
109
- }
110
- finally {
111
- console.log = origLog;
112
- console.error = origErr;
113
- }
114
- }
5
+ import { toolFromSpec, captureHandler } from './shared.js';
115
6
  export async function startMcpServer(modules) {
116
7
  // Route any stray writes to stderr so stdout stays clean for MCP framing.
117
8
  const origStdoutWrite = process.stdout.write.bind(process.stdout);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ function parseFlag(flagSpec, collect) {
2
+ // e.g. "--since <date>" or "--pretty"
3
+ const m = /^--([\w-]+)(?:\s+<[^>]+>)?$/.exec(flagSpec.trim());
4
+ if (!m)
5
+ return null;
6
+ const name = m[1];
7
+ const takesValue = flagSpec.includes('<');
8
+ const camel = name.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
9
+ return { name, camel, takesValue, collect };
10
+ }
11
+ /** Turn a CommandSpec into an MCP Tool definition (name + description + JSON Schema). */
12
+ export function toolFromSpec(spec) {
13
+ const name = ['badgie_crm', ...spec.path.map((p) => p.replace(/-/g, '_'))].join('_');
14
+ const properties = {};
15
+ const required = [];
16
+ const examples = spec.examples ?? [];
17
+ for (const a of spec.args ?? []) {
18
+ properties[a.name] = { type: 'string', description: a.description };
19
+ if (a.required)
20
+ required.push(a.name);
21
+ }
22
+ for (const o of spec.options ?? []) {
23
+ const meta = parseFlag(o.flag, o.collect);
24
+ if (!meta)
25
+ continue;
26
+ if (meta.collect) {
27
+ properties[meta.camel] = {
28
+ type: 'array',
29
+ items: { type: 'string' },
30
+ description: o.description,
31
+ };
32
+ }
33
+ else if (meta.takesValue) {
34
+ properties[meta.camel] = { type: 'string', description: o.description };
35
+ }
36
+ else {
37
+ properties[meta.camel] = { type: 'boolean', description: o.description };
38
+ }
39
+ }
40
+ const tagsLine = spec.tags && spec.tags.length ? ` [${spec.tags.join(',')}]` : '';
41
+ const description = [
42
+ spec.summary + tagsLine,
43
+ spec.description,
44
+ examples.length ? 'Examples:\n ' + examples.join('\n ') : '',
45
+ ]
46
+ .filter(Boolean)
47
+ .join('\n\n');
48
+ return {
49
+ name,
50
+ description,
51
+ inputSchema: {
52
+ type: 'object',
53
+ properties,
54
+ required,
55
+ additionalProperties: false,
56
+ },
57
+ };
58
+ }
59
+ /** Translate raw tool input into the (args, opts) shape that handlers expect. */
60
+ export function runtimeArgsFromInput(spec, input) {
61
+ const args = {};
62
+ for (const a of spec.args ?? []) {
63
+ const v = input[a.name];
64
+ args[a.name] = v === undefined || v === null ? undefined : String(v);
65
+ }
66
+ const opts = {};
67
+ for (const o of spec.options ?? []) {
68
+ const meta = parseFlag(o.flag, o.collect);
69
+ if (!meta)
70
+ continue;
71
+ const v = input[meta.camel];
72
+ if (v === undefined || v === null)
73
+ continue;
74
+ if (meta.collect) {
75
+ opts[meta.camel] = Array.isArray(v) ? v : [v];
76
+ }
77
+ else if (meta.takesValue) {
78
+ opts[meta.camel] = String(v);
79
+ }
80
+ else {
81
+ if (v === true || v === 'true' || v === 1 || v === '1')
82
+ opts[meta.camel] = true;
83
+ }
84
+ }
85
+ return { args, opts };
86
+ }
87
+ /** Run a command handler while capturing its stdout/stderr. */
88
+ export async function captureHandler(spec, input) {
89
+ const { args, opts } = runtimeArgsFromInput(spec, input);
90
+ const chunks = [];
91
+ const origLog = console.log;
92
+ const origErr = console.error;
93
+ console.log = (...as) => {
94
+ chunks.push(as.map((a) => (typeof a === 'string' ? a : JSON.stringify(a))).join(' '));
95
+ };
96
+ console.error = (...as) => {
97
+ chunks.push(as.map((a) => (typeof a === 'string' ? a : JSON.stringify(a))).join(' '));
98
+ };
99
+ try {
100
+ await spec.handler(args, opts);
101
+ return { ok: true, output: chunks.join('\n') };
102
+ }
103
+ catch (err) {
104
+ const msg = err instanceof Error ? err.message : String(err);
105
+ return { ok: false, output: `Error: ${msg}\n${chunks.join('\n')}` };
106
+ }
107
+ finally {
108
+ console.log = origLog;
109
+ console.error = origErr;
110
+ }
111
+ }
112
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/mcp/shared.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { leadsModule } from './commands/leads.js';
2
+ import { clientsModule } from './commands/clients.js';
3
+ import { tasksModule } from './commands/tasks.js';
4
+ import { financeModule } from './commands/finance.js';
5
+ import { outboundModule } from './commands/outbound.js';
6
+ import { marketingModule } from './commands/marketing.js';
7
+ import { intelligenceModule } from './commands/intelligence.js';
8
+ import { operationsModule } from './commands/operations.js';
9
+ import { webhooksModule } from './commands/webhooks.js';
10
+ import { adminModule } from './commands/admin.js';
11
+ import { searchModule } from './commands/search.js';
12
+ import { queryModule } from './commands/query.js';
13
+ import { directoryModule } from './commands/directory.js';
14
+ import { topClientsModule } from './commands/top-clients.js';
15
+ import { federationsModule } from './commands/federations.js';
16
+ /**
17
+ * Source-of-truth list of CommandSpec modules. Both the CLI binary and the
18
+ * remote MCP server (Next app) build their tool catalog from this array.
19
+ *
20
+ * Excludes meta modules (`docs`, `mcp`) which are CLI-only conveniences and
21
+ * not meaningful to expose as tools to an external MCP client.
22
+ */
23
+ export const MODULES = [
24
+ leadsModule,
25
+ clientsModule,
26
+ tasksModule,
27
+ financeModule,
28
+ outboundModule,
29
+ marketingModule,
30
+ intelligenceModule,
31
+ operationsModule,
32
+ webhooksModule,
33
+ adminModule,
34
+ searchModule,
35
+ queryModule,
36
+ directoryModule,
37
+ topClientsModule,
38
+ federationsModule,
39
+ ];
40
+ //# sourceMappingURL=modules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAiB;IACnC,WAAW;IACX,aAAa;IACb,WAAW;IACX,aAAa;IACb,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,YAAY;IACZ,WAAW;IACX,eAAe;IACf,gBAAgB;IAChB,iBAAiB;CAClB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@badgie/crm-cli",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Badgie CRM CLI — terminal operations for the Badgie CRM (leads, clients, invoices, webhooks) plus MCP server for AI agents.",
5
5
  "type": "module",
6
6
  "bin": {