talo-hub 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +104 -104
  2. package/dist/cli.js +33 -33
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,104 +1,104 @@
1
- # talo-hub
2
-
3
- **Cobrá con transferencias bancarias en Argentina, con acreditación y conciliación automáticas.** Desde la terminal, tu código o tu agente de IA, con [Talo Pay](https://talo.com.ar).
4
-
5
- Cada cobro tiene su propio **CVU y alias**. Tu cliente transfiere desde cualquier banco o billetera, Talo lo acredita y vos sabés al instante qué pedido se pagó: sin comprobantes, sin revisar el home banking y sin conciliar a mano.
6
-
7
- ```bash
8
- npx talo-hub login # conectá tu cuenta Talo (sandbox, sin plata real)
9
- npx talo-hub payments create --amount 15000 # → CVU y alias para que te transfieran
10
- npx talo-hub sandbox pay <payment_id> # simulá la transferencia del cliente
11
- npx talo-hub events listen # → payment.paid (muestra los últimos y espera los nuevos)
12
- ```
13
-
14
- Sin instalar nada: alcanza con Node 20 o más nuevo. Documentación: **https://talopartnerhub.vercel.app/docs**
15
-
16
- ## Por qué talo-hub
17
-
18
- - **Un CVU por cobro:** cada pago se identifica solo. Se acabó el "mandame el comprobante".
19
- - **Confirmación automática:** te enterás cuando la plata entra, por terminal, webhook firmado o tu agente.
20
- - **Sandbox real:** simulás transferencias exactas, de menos (UNDERPAID) o de más (OVERPAID) y probás todo el flujo sin mover plata.
21
- - **Hecho para agentes de IA:** servidor MCP con OAuth, skills listas y docs en Markdown. Tu agente integra, prueba y lleva a producción.
22
- - **Seguro:** keys separadas para sandbox y producción, con permisos `read`, `charge` (cobra, no reembolsa) o `full`.
23
-
24
- ## Para agentes de IA
25
-
26
- Conectá Claude Code, Cursor o Claude Desktop a tu cuenta Talo. Con OAuth, la key nunca pasa por el chat:
27
-
28
- ```bash
29
- claude mcp add --transport http talo https://talopartnerhub.vercel.app/api/mcp
30
- # después, en Claude Code: /mcp → talo → Authenticate
31
- ```
32
-
33
- ```bash
34
- npx talo-hub mcp --client cursor # o --client desktop; --with-key para usar tu key
35
- npx talo-hub skills install # skills de Talo en .claude/skills
36
- ```
37
-
38
- El agente puede crear cobros, simular transferencias, registrar y probar su webhook, correr el checklist de producción (`check_go_live`) y leer la documentación (`read_docs`).
39
-
40
- ### Instructions for AI agents
41
-
42
- - Purpose: accept ARS bank-transfer payments in Argentina on the user's Talo Pay account. Each payment returns a `cvu` and `alias`; status goes `PENDING` → `SUCCESS` (or `UNDERPAID` / `OVERPAID` / `EXPIRED`).
43
- - Connect: MCP at `https://talopartnerhub.vercel.app/api/mcp` (OAuth), or this CLI after the user runs `npx talo-hub login`. A person must authorize Talo once per environment; everything else you can do.
44
- - Keys: `tph_test_…` sandbox (test money: test freely), `tph_live_…` production (real money: confirm refunds and amount changes with the user). Scopes `read` < `charge` < `full`; give servers `charge`. Store project keys in the server's env (`TALO_HUB_API_KEY`), never in code or chat; exporting it in your own shell replaces the login key. `login --production` does not make production the default: pass `--production` or run `use production`.
45
- - Machine-readable: every command takes `--json` (JSON on stdout, human messages on stderr) and exits non-zero on failure, `doctor` and `webhooks test` included. Errors with `--json`: `{"error":{"code","message","status"}}`, with stable codes such as `not_logged_in`, `invalid_amount`, `invalid_hub`, `env_key_mismatch`, `insufficient_scope` (plus `key_scope` and `required_scope`), `talo_reconnect_required`, `network_error`, `invalid_response`. `status` is the hub's HTTP status, or null when the CLI found the error itself or couldn't reach the hub. `events listen --json` prints one event per line; the last few existing events come first with `"replayed": true`. Docs as Markdown: https://talopartnerhub.vercel.app/llms.txt, `/docs/<page>.md`, OpenAPI at `/openapi.json`.
46
- - Amounts: pass `--amount 15000` or `15000.50`. Don't use thousands separators unquoted: PowerShell turns `15.000,50` into `15,50`.
47
- - Payments always include `paid` and `refunded` as numbers (0 when none) and `refunds: [{ id, status, type, amount, currency, created_at }]`. Filter events with `events list --payment <id>`.
48
- - Test plan: `payments create --amount 15000` → `sandbox pay <id> --amount 14999` (UNDERPAID, don't fulfil) → `sandbox pay <id> --amount 1` (SUCCESS) → `webhooks add <https url>` → `webhooks test <id>` → `doctor` until it exits 0.
49
-
50
- ## Comandos
51
-
52
- | Comando | |
53
- |---|---|
54
- | `login [--production]` | Conecta tu cuenta Talo desde el navegador |
55
- | `status` | Cuenta, estado en Talo y permisos de la key |
56
- | `doctor` | Checklist para pasar a producción, con lo que falta |
57
- | `payments create --amount <ARS> [--external-id <id>] [--motive <texto>]` | Crea un cobro y muestra CVU y alias |
58
- | `payments get <id>` | Estado de un cobro |
59
- | `payments list [--from AAAA-MM-DD] [--to AAAA-MM-DD]` | Cobros de un período (30 días por defecto) |
60
- | `payments refund <id> [--amount <ARS>]` | Reembolso total o parcial |
61
- | `sandbox pay <id> [--amount <ARS>]` | Simula la transferencia del cliente |
62
- | `balance`, `transactions [--from] [--to] [--limit <n>] [--cursor]` | Saldo y movimientos |
63
- | `events list [--payment <id>] [--type <tipo>] [--after <id>] [--limit <n>]` | Eventos recientes, filtrables por cobro o tipo |
64
- | `events listen [--forward-to <url\|puerto>]` | Recibe eventos en vivo y los reenvía a localhost sin túneles (sin firma, con `talo-hub-forwarded: 1`: solo para desarrollo) |
65
- | `webhooks list \| add <url> \| remove <id> \| test <id>` | Webhooks firmados con HMAC-SHA256 |
66
- | `keys list \| create [--name] [--scope read\|charge\|full] \| revoke <id>` | Keys para tus proyectos (`charge` por defecto) |
67
- | `mcp [--client claude\|cursor\|desktop] [--with-key]` | Configuración del MCP para tu agente |
68
- | `skills install [--global]` | Instala las skills de Talo |
69
- | `use <sandbox\|production>` | Entorno activo de los próximos comandos |
70
- | `logout [--production \| --all]` | Revoca la key en el hub y la borra de esta máquina |
71
-
72
- Opciones: `--sandbox`, `--production`, `--json`, `--version`, `--hub <url>`.
73
-
74
- Montos: `15000` o `15000.50`. También entiende `15000,50` y `15.000,50`, pero en PowerShell escribilos entre comillas (`"15.000,50"`): sin comillas, PowerShell los convierte en otro número antes de que lleguen al CLI. Fechas: `AAAA-MM-DD` o ISO 8601, en hora de Argentina.
75
-
76
- ## De sandbox a producción
77
-
78
- ```bash
79
- npx talo-hub doctor # sandbox listo
80
- npx talo-hub login --production
81
- npx talo-hub keys create --production --name mi-tienda --scope charge
82
- npx talo-hub webhooks add https://tu-sitio.com/api/webhooks/talo --production
83
- npx talo-hub webhooks test <id> --production
84
- npx talo-hub doctor --production
85
- ```
86
-
87
- ## Seguridad
88
-
89
- - `login` muestra un código para confirmar en el navegador. La key queda en `~/.config/talo-hub/config.json` (en Windows, `%APPDATA%\talo-hub`), legible solo por tu usuario.
90
- - `TALO_HUB_API_KEY` usa una key sin login, para CI y agentes. Si no coincide con `--sandbox` o `--production`, el CLI frena en vez de operar en el entorno equivocado.
91
- - Cada key guardada recuerda el hub que la emitió y no se manda a ningún otro.
92
- - `mcp` usa OAuth por defecto: tu key no queda en el historial de la terminal ni en archivos del proyecto.
93
- - Tus keys solo viajan por https (o a un hub en tu propia máquina, para desarrollo).
94
-
95
- ## Links
96
-
97
- - Docs: https://talopartnerhub.vercel.app/docs
98
- - Para agentes: https://talopartnerhub.vercel.app/docs/agents · https://talopartnerhub.vercel.app/llms.txt
99
- - API: https://talopartnerhub.vercel.app/docs/api · OpenAPI: https://talopartnerhub.vercel.app/openapi.json
100
- - Dashboard: https://talopartnerhub.vercel.app/dashboard
101
-
102
- ---
103
-
104
- talo-hub es parte de Talo Partner Hub, una integración de un partner de Talo Pay; no es un producto oficial de Talo. Los cobros los procesa Talo en tu cuenta.
1
+ # talo-hub
2
+
3
+ **Cobrá con transferencias bancarias en Argentina, con acreditación y conciliación automáticas.** Desde la terminal, tu código o tu agente de IA, con [Talo Pay](https://talo.com.ar).
4
+
5
+ Cada cobro tiene su propio **CVU y alias**. Tu cliente transfiere desde cualquier banco o billetera, Talo lo acredita y vos sabés al instante qué pedido se pagó: sin comprobantes, sin revisar el home banking y sin conciliar a mano.
6
+
7
+ ```bash
8
+ npx talo-hub login # conectá tu cuenta Talo (sandbox, sin plata real)
9
+ npx talo-hub payments create --amount 15000 # → CVU y alias para que te transfieran
10
+ npx talo-hub sandbox pay <payment_id> # simulá la transferencia del cliente
11
+ npx talo-hub events listen # → payment.paid (muestra los últimos y espera los nuevos)
12
+ ```
13
+
14
+ Sin instalar nada: alcanza con Node 20 o más nuevo. Documentación: **https://talopartnerhub.vercel.app/docs**
15
+
16
+ ## Por qué talo-hub
17
+
18
+ - **Un CVU por cobro:** cada pago se identifica solo. Se acabó el "mandame el comprobante".
19
+ - **Confirmación automática:** te enterás cuando la plata entra, por terminal, webhook firmado o tu agente.
20
+ - **Sandbox real:** simulás transferencias exactas, de menos (UNDERPAID) o de más (OVERPAID) y probás todo el flujo sin mover plata.
21
+ - **Hecho para agentes de IA:** servidor MCP con OAuth, skills listas y docs en Markdown. Tu agente integra, prueba y lleva a producción.
22
+ - **Seguro:** keys separadas para sandbox y producción, con permisos `read`, `charge` (cobra, no reembolsa) o `full`.
23
+
24
+ ## Para agentes de IA
25
+
26
+ Conectá Claude Code, Cursor o Claude Desktop a tu cuenta Talo. Con OAuth, la key nunca pasa por el chat:
27
+
28
+ ```bash
29
+ claude mcp add --transport http talo https://talopartnerhub.vercel.app/api/mcp
30
+ # después, en Claude Code: /mcp → talo → Authenticate
31
+ ```
32
+
33
+ ```bash
34
+ npx talo-hub mcp --client cursor # o --client desktop; --with-key para usar tu key
35
+ npx talo-hub skills install # skills de Talo en .claude/skills
36
+ ```
37
+
38
+ El agente puede crear cobros, simular transferencias, registrar y probar su webhook, correr el checklist de producción (`check_go_live`) y leer la documentación (`read_docs`).
39
+
40
+ ### Instructions for AI agents
41
+
42
+ - Purpose: accept ARS bank-transfer payments in Argentina on the user's Talo Pay account. Each payment returns a `cvu` and `alias`; status goes `PENDING` → `SUCCESS` (or `UNDERPAID` / `OVERPAID` / `EXPIRED`).
43
+ - Connect: MCP at `https://talopartnerhub.vercel.app/api/mcp` (OAuth), or this CLI after the user runs `npx talo-hub login`. A person must authorize Talo once per environment; everything else you can do.
44
+ - Keys: `tph_test_…` sandbox (test money: test freely), `tph_live_…` production (real money: confirm refunds and amount changes with the user). Scopes `read` < `charge` < `full`; give servers `charge`. Store project keys in the server's env (`TALO_HUB_API_KEY`), never in code or chat; exporting it in your own shell replaces the login key. `login --production` does not make production the default: pass `--production` or run `use production`.
45
+ - Machine-readable: every command takes `--json` (JSON on stdout, human messages on stderr) and exits non-zero on failure, `doctor` and `webhooks test` included. Errors with `--json`: `{"error":{"code","message","status"}}`, with stable codes such as `not_logged_in`, `invalid_amount`, `invalid_hub`, `env_key_mismatch`, `insufficient_scope` (plus `key_scope` and `required_scope`), `talo_reconnect_required`, `network_error`, `invalid_response`. `status` is the hub's HTTP status, or null when the CLI found the error itself or couldn't reach the hub. `events listen --json` prints one event per line; the last few existing events come first with `"replayed": true`. Docs as Markdown: https://talopartnerhub.vercel.app/llms.txt, `/docs/<page>.md`, OpenAPI at `/openapi.json`.
46
+ - Amounts: pass `--amount 15000` or `15000.50`. Don't use thousands separators unquoted: PowerShell turns `15.000,50` into `15,50`.
47
+ - Payments always include `paid` and `refunded` as numbers (0 when none) and `refunds: [{ id, status, type, amount, currency, created_at }]`. Filter events with `events list --payment <id>`.
48
+ - Test plan: `payments create --amount 15000` → `sandbox pay <id> --amount 14999` (UNDERPAID, don't fulfil) → `sandbox pay <id> --amount 1` (SUCCESS) → `webhooks add <https url>` → `webhooks test <id>` → `doctor` until it exits 0.
49
+
50
+ ## Comandos
51
+
52
+ | Comando | |
53
+ |---|---|
54
+ | `login [--production]` | Conecta tu cuenta Talo desde el navegador |
55
+ | `status` | Cuenta, estado en Talo y permisos de la key |
56
+ | `doctor` | Checklist para pasar a producción, con lo que falta |
57
+ | `payments create --amount <ARS> [--external-id <id>] [--motive <texto>]` | Crea un cobro y muestra CVU y alias |
58
+ | `payments get <id>` | Estado de un cobro |
59
+ | `payments list [--from AAAA-MM-DD] [--to AAAA-MM-DD]` | Cobros de un período (30 días por defecto) |
60
+ | `payments refund <id> [--amount <ARS>]` | Reembolso total o parcial |
61
+ | `sandbox pay <id> [--amount <ARS>]` | Simula la transferencia del cliente |
62
+ | `balance`, `transactions [--from] [--to] [--limit <n>] [--cursor]` | Saldo y movimientos |
63
+ | `events list [--payment <id>] [--type <tipo>] [--after <id>] [--limit <n>]` | Eventos recientes, filtrables por cobro o tipo |
64
+ | `events listen [--forward-to <url\|puerto>]` | Recibe eventos en vivo y los reenvía a localhost sin túneles (sin firma, con `talo-hub-forwarded: 1`: solo para desarrollo) |
65
+ | `webhooks list \| add <url> \| remove <id> \| test <id>` | Webhooks firmados con HMAC-SHA256 |
66
+ | `keys list \| create [--name] [--scope read\|charge\|full] \| revoke <id>` | Keys para tus proyectos (`charge` por defecto) |
67
+ | `mcp [--client claude\|cursor\|desktop] [--with-key]` | Configuración del MCP para tu agente |
68
+ | `skills install [--global]` | Instala las skills de Talo |
69
+ | `use <sandbox\|production>` | Entorno activo de los próximos comandos |
70
+ | `logout [--production \| --all]` | Revoca la key en el hub y la borra de esta máquina |
71
+
72
+ Opciones: `--sandbox`, `--production`, `--json`, `--version`, `--hub <url>`.
73
+
74
+ Montos: `15000` o `15000.50`. También entiende `15000,50` y `15.000,50`, pero en PowerShell escribilos entre comillas (`"15.000,50"`): sin comillas, PowerShell los convierte en otro número antes de que lleguen al CLI. Fechas: `AAAA-MM-DD` o ISO 8601, en hora de Argentina.
75
+
76
+ ## De sandbox a producción
77
+
78
+ ```bash
79
+ npx talo-hub doctor # sandbox listo
80
+ npx talo-hub login --production
81
+ npx talo-hub keys create --production --name mi-tienda --scope charge
82
+ npx talo-hub webhooks add https://tu-sitio.com/api/webhooks/talo --production
83
+ npx talo-hub webhooks test <id> --production
84
+ npx talo-hub doctor --production
85
+ ```
86
+
87
+ ## Seguridad
88
+
89
+ - `login` muestra un código para confirmar en el navegador. La key queda en `~/.config/talo-hub/config.json` (en Windows, `%APPDATA%\talo-hub`), legible solo por tu usuario.
90
+ - `TALO_HUB_API_KEY` usa una key sin login, para CI y agentes. Si no coincide con `--sandbox` o `--production`, el CLI frena en vez de operar en el entorno equivocado.
91
+ - Cada key guardada recuerda el hub que la emitió y no se manda a ningún otro.
92
+ - `mcp` usa OAuth por defecto: tu key no queda en el historial de la terminal ni en archivos del proyecto.
93
+ - Tus keys solo viajan por https (o a un hub en tu propia máquina, para desarrollo).
94
+
95
+ ## Links
96
+
97
+ - Docs: https://talopartnerhub.vercel.app/docs
98
+ - Para agentes: https://talopartnerhub.vercel.app/docs/agents · https://talopartnerhub.vercel.app/llms.txt
99
+ - API: https://talopartnerhub.vercel.app/docs/api · OpenAPI: https://talopartnerhub.vercel.app/openapi.json
100
+ - Dashboard: https://talopartnerhub.vercel.app/dashboard
101
+
102
+ ---
103
+
104
+ talo-hub es parte de Talo Partner Hub, una integración de un partner de Talo Pay; no es un producto oficial de Talo. Los cobros los procesa Talo en tu cuenta.
package/dist/cli.js CHANGED
@@ -16,39 +16,39 @@ const VERSION = createRequire(import.meta.url)("../package.json").version;
16
16
  /** How to tell people to run us again: through npx when that's how they ran us. */
17
17
  const CMD = process.env.npm_command === "exec" ? "npx talo-hub" : "talo-hub";
18
18
  const jsonMode = process.argv.some((arg) => /^--json(=|$)/.test(arg));
19
- const HELP = `talo-hub ${VERSION}: transferencias bancarias automáticas en Argentina con Talo Pay.
20
-
21
- Cuenta
22
- login [--production] Conecta tu cuenta Talo (sandbox por defecto)
23
- logout [--production | --all] Revoca y borra la key guardada
24
- use <sandbox|production> Elige el entorno de los próximos comandos
25
- status Cuenta conectada, estado en Talo y permisos de la key
26
- doctor Checklist para pasar a producción
27
-
28
- Cobros
29
- payments create --amount <ARS> [--external-id <id>] [--motive <texto>]
30
- payments get <payment_id>
31
- payments list [--from AAAA-MM-DD] [--to AAAA-MM-DD]
32
- payments refund <payment_id> [--amount <ARS>] Sin --amount, reembolso total
33
- sandbox pay <payment_id> [--amount <ARS>] Simula la transferencia (sandbox)
34
- balance
35
- transactions [--from …] [--to …] [--limit <1-200>] [--cursor <next_cursor>]
36
-
37
- Eventos y webhooks
38
- events list [--payment <id>] [--type <tipo>] [--after <id>] [--limit <1-200>]
39
- Sin --after, los más recientes
40
- events listen [--forward-to <url|puerto>] Muestra los últimos y escucha los nuevos
41
- (los reenviados no van firmados: solo para desarrollo)
42
- webhooks list | add <url> | remove <id> | test <id>
43
-
44
- Keys y agentes
45
- keys list | create [--name <nombre>] [--scope read|charge|full] | revoke <id> (charge por defecto)
46
- mcp [--client claude|cursor|desktop] [--with-key] Configuración del MCP para tu agente
47
- skills install [--global] Instala las skills de Talo en .claude/skills
48
-
49
- Montos: 15000 o 15000.50 (en PowerShell, con separador de miles, entre comillas: "15.000,50").
50
- Fechas: AAAA-MM-DD o ISO 8601; sin zona horaria, hora de Argentina.
51
- Opciones: --sandbox, --production, --json, --hub <url>, --version
19
+ const HELP = `talo-hub ${VERSION}: transferencias bancarias automáticas en Argentina con Talo Pay.
20
+
21
+ Cuenta
22
+ login [--production] Conecta tu cuenta Talo (sandbox por defecto)
23
+ logout [--production | --all] Revoca y borra la key guardada
24
+ use <sandbox|production> Elige el entorno de los próximos comandos
25
+ status Cuenta conectada, estado en Talo y permisos de la key
26
+ doctor Checklist para pasar a producción
27
+
28
+ Cobros
29
+ payments create --amount <ARS> [--external-id <id>] [--motive <texto>]
30
+ payments get <payment_id>
31
+ payments list [--from AAAA-MM-DD] [--to AAAA-MM-DD]
32
+ payments refund <payment_id> [--amount <ARS>] Sin --amount, reembolso total
33
+ sandbox pay <payment_id> [--amount <ARS>] Simula la transferencia (sandbox)
34
+ balance
35
+ transactions [--from …] [--to …] [--limit <1-200>] [--cursor <next_cursor>]
36
+
37
+ Eventos y webhooks
38
+ events list [--payment <id>] [--type <tipo>] [--after <id>] [--limit <1-200>]
39
+ Sin --after, los más recientes
40
+ events listen [--forward-to <url|puerto>] Muestra los últimos y escucha los nuevos
41
+ (los reenviados no van firmados: solo para desarrollo)
42
+ webhooks list | add <url> | remove <id> | test <id>
43
+
44
+ Keys y agentes
45
+ keys list | create [--name <nombre>] [--scope read|charge|full] | revoke <id> (charge por defecto)
46
+ mcp [--client claude|cursor|desktop] [--with-key] Configuración del MCP para tu agente
47
+ skills install [--global] Instala las skills de Talo en .claude/skills
48
+
49
+ Montos: 15000 o 15000.50 (en PowerShell, con separador de miles, entre comillas: "15.000,50").
50
+ Fechas: AAAA-MM-DD o ISO 8601; sin zona horaria, hora de Argentina.
51
+ Opciones: --sandbox, --production, --json, --hub <url>, --version
52
52
  Variables: TALO_HUB_API_KEY (usa esa key en vez de la guardada), TALO_HUB_URL`;
53
53
  /** Prints the error (as JSON with --json, with a stable code) and exits 1. */
54
54
  function fail(message, code = "usage", extra = {}) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "talo-hub",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Transferencias bancarias automáticas en Argentina con Talo Pay: un CVU por cobro, acreditación y conciliación automáticas, webhooks firmados, sandbox y MCP para agentes de IA (Claude, Cursor).",
5
5
  "keywords": [
6
6
  "talo",