@key0ai/key0 0.1.0 → 0.2.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/README.md +66 -21
- package/dist/__tests__/e2e.test.js +1 -1
- package/dist/__tests__/e2e.test.js.map +1 -1
- package/dist/__tests__/x402-http-middleware.test.js +4 -207
- package/dist/__tests__/x402-http-middleware.test.js.map +1 -1
- package/dist/core/__tests__/agent-card.test.js +14 -12
- package/dist/core/__tests__/agent-card.test.js.map +1 -1
- package/dist/core/__tests__/storage-postgres.test.js +0 -1
- package/dist/core/__tests__/storage-postgres.test.js.map +1 -1
- package/dist/core/agent-card.d.ts.map +1 -1
- package/dist/core/agent-card.js +25 -10
- package/dist/core/agent-card.js.map +1 -1
- package/dist/core/challenge-engine.js +1 -1
- package/dist/core/challenge-engine.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/integrations/express.d.ts +6 -4
- package/dist/integrations/express.d.ts.map +1 -1
- package/dist/integrations/express.js +27 -29
- package/dist/integrations/express.js.map +1 -1
- package/dist/integrations/fastify.d.ts +5 -1
- package/dist/integrations/fastify.d.ts.map +1 -1
- package/dist/integrations/fastify.js +117 -8
- package/dist/integrations/fastify.js.map +1 -1
- package/dist/integrations/hono.d.ts +8 -2
- package/dist/integrations/hono.d.ts.map +1 -1
- package/dist/integrations/hono.js +116 -12
- package/dist/integrations/hono.js.map +1 -1
- package/dist/integrations/settlement.d.ts.map +1 -1
- package/dist/integrations/settlement.js +1 -3
- package/dist/integrations/settlement.js.map +1 -1
- package/dist/types/agent-card.d.ts +16 -0
- package/dist/types/agent-card.d.ts.map +1 -1
- package/package.json +3 -1
- package/src/__tests__/e2e.test.ts +1 -1
- package/src/__tests__/x402-http-middleware.test.ts +4 -256
- package/src/core/__tests__/agent-card.test.ts +15 -12
- package/src/core/__tests__/storage-postgres.test.ts +0 -2
- package/src/core/agent-card.ts +26 -10
- package/src/core/challenge-engine.ts +1 -1
- package/src/core/index.ts +1 -1
- package/src/integrations/express.ts +221 -235
- package/src/integrations/fastify.ts +160 -8
- package/src/integrations/hono.ts +168 -12
- package/src/integrations/settlement.ts +1 -3
- package/src/types/agent-card.ts +13 -2
- package/src/types/config.ts +1 -1
- package/dist/integrations/x402-http-middleware.d.ts +0 -15
- package/dist/integrations/x402-http-middleware.d.ts.map +0 -1
- package/dist/integrations/x402-http-middleware.js +0 -171
- package/dist/integrations/x402-http-middleware.js.map +0 -1
- package/src/integrations/x402-http-middleware.ts +0 -246
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<img src="docs/logo.
|
|
1
|
+
<img src="docs/logo.png" alt="Key0" width="260" />
|
|
2
2
|
|
|
3
3
|
Sell anything to AI agents — APIs, data, goods or services — with built-in payments, zero proxying, and no architectural changes to your existing stack.
|
|
4
4
|
|
|
@@ -64,10 +64,20 @@ There are two ways to configure Standalone mode:
|
|
|
64
64
|
Just start the container with no environment variables — Key0 boots into **Setup Mode** and serves a browser-based configuration wizard:
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
|
-
docker compose -f docker/docker-compose.yml up
|
|
67
|
+
docker compose -f docker/docker-compose.yml --profile full up
|
|
68
68
|
# Open http://localhost:3000 → redirects to /setup
|
|
69
|
+
# Managed infra (Redis, Postgres) is auto-detected at startup — no extra env vars needed.
|
|
69
70
|
```
|
|
70
71
|
|
|
72
|
+
Docker Compose profiles control which infrastructure services are bundled:
|
|
73
|
+
|
|
74
|
+
| Profile | What starts |
|
|
75
|
+
|---|---|
|
|
76
|
+
| *(none)* | Key0 only — bring your own Redis + Postgres via env vars |
|
|
77
|
+
| `--profile redis` | Key0 + managed Redis |
|
|
78
|
+
| `--profile postgres` | Key0 + managed Postgres (still needs Redis externally) |
|
|
79
|
+
| `--profile full` | Key0 + managed Redis + managed Postgres (batteries included) |
|
|
80
|
+
|
|
71
81
|
The Setup UI lets you configure everything visually: wallet address, network, pricing plans, token issuance API, settlement, and refund settings. When you submit, the server writes the config and restarts automatically.
|
|
72
82
|
|
|
73
83
|
Configuration is persisted in a Docker volume (`key0-config`), so it survives `docker compose down` / `up` cycles.
|
|
@@ -96,7 +106,7 @@ docker run \
|
|
|
96
106
|
```bash
|
|
97
107
|
cp docker/.env.example docker/.env
|
|
98
108
|
# Edit docker/.env: set KEY0_WALLET_ADDRESS and ISSUE_TOKEN_API
|
|
99
|
-
docker compose -f docker/docker-compose.yml up
|
|
109
|
+
docker compose -f docker/docker-compose.yml --profile redis up
|
|
100
110
|
```
|
|
101
111
|
|
|
102
112
|
> Even with env vars pre-configured, the Setup UI is always available at `/setup` for reconfiguration.
|
|
@@ -128,11 +138,14 @@ Build from source: `docker build -t key0ai/key0 .`
|
|
|
128
138
|
| `PROVIDER_URL` | | `https://key0.ai` | Your organization URL shown in the agent card `provider` field |
|
|
129
139
|
| `PLANS` | | `[{"planId":"basic","unitAmount":"$0.10"}]` | JSON array of pricing plans — each with `planId`, `unitAmount`, and optional `description` |
|
|
130
140
|
| `CHALLENGE_TTL_SECONDS` | | `900` | How long a payment challenge remains valid before expiring (seconds) |
|
|
131
|
-
| `BASE_PATH` |
|
|
141
|
+
| `BASE_PATH` | | — | URL path prefix for endpoints (e.g. `/a2a` mounts `/a2a/.well-known/agent.json`). The `/x402/access` endpoint is always at the root. |
|
|
132
142
|
| `BACKEND_AUTH_STRATEGY` | | `none` | How Key0 authenticates with `ISSUE_TOKEN_API` — `none`, `shared-secret`, or `jwt` |
|
|
133
143
|
| `ISSUE_TOKEN_API_SECRET` | | — | Secret for `ISSUE_TOKEN_API` auth — Bearer token (shared-secret) or JWT signing key (jwt). Only used when `BACKEND_AUTH_STRATEGY` is not `none` |
|
|
134
144
|
| `MCP_ENABLED` | | `false` | When `true`, mounts MCP routes (`/.well-known/mcp.json` + `POST /mcp`) exposing `discover_plans` and `request_access` tools |
|
|
135
|
-
| `
|
|
145
|
+
| `STORAGE_BACKEND` | | `redis` | Storage backend — `redis` or `postgres` |
|
|
146
|
+
| `DATABASE_URL` | | — | PostgreSQL connection URL — required when `STORAGE_BACKEND=postgres` |
|
|
147
|
+
| `REDIS_URL` | ✅ | — | Redis connection URL — required for challenge state (or BullMQ refund cron when using Postgres) |
|
|
148
|
+
| `KEY0_MANAGED_INFRA` | | — | Optional comma-separated list of compose-managed infra (e.g. `redis,postgres`). Auto-detected at startup via DNS; only needed as an explicit override |
|
|
136
149
|
| `GAS_WALLET_PRIVATE_KEY` | | — | Private key of a wallet holding ETH on Base — enables self-contained settlement without a CDP facilitator |
|
|
137
150
|
| `KEY0_WALLET_PRIVATE_KEY` | | — | Private key of `KEY0_WALLET_ADDRESS` — required for the refund cron to send USDC back to payers |
|
|
138
151
|
| `REFUND_INTERVAL_MS` | | `60000` | How often the refund cron runs (ms) — only active when `KEY0_WALLET_PRIVATE_KEY` is set |
|
|
@@ -299,8 +312,6 @@ app.listen(3000);
|
|
|
299
312
|
|
|
300
313
|
### Hono
|
|
301
314
|
|
|
302
|
-
> A2A endpoints mount at `/a2a` by default (set `config.basePath` to override).
|
|
303
|
-
|
|
304
315
|
```typescript
|
|
305
316
|
import { Hono } from "hono";
|
|
306
317
|
import { key0App, honoValidateAccessToken } from "@key0ai/key0/hono";
|
|
@@ -329,8 +340,6 @@ export default { port: 3000, fetch: app.fetch };
|
|
|
329
340
|
|
|
330
341
|
### Fastify
|
|
331
342
|
|
|
332
|
-
> A2A endpoints mount at `/a2a` by default (set `config.basePath` to override).
|
|
333
|
-
|
|
334
343
|
```typescript
|
|
335
344
|
import Fastify from "fastify";
|
|
336
345
|
import { key0Plugin, fastifyValidateAccessToken } from "@key0ai/key0/fastify";
|
|
@@ -367,8 +376,11 @@ fastify.listen({ port: 3000 });
|
|
|
367
376
|
| `network` | `"testnet" \| "mainnet"` | ✅ | — | Base Sepolia or Base |
|
|
368
377
|
| `plans` | `Plan[]` | ✅ | — | Pricing plans |
|
|
369
378
|
| `fetchResourceCredentials` | `(params) => Promise<TokenIssuanceResult>` | ✅ | — | Issue the credential after payment |
|
|
379
|
+
| `tokenIssueTimeoutMs` | `number` | | `15000` | Timeout for `fetchResourceCredentials` callback (ms) |
|
|
380
|
+
| `tokenIssueRetries` | `number` | | `2` | Max retries for `fetchResourceCredentials` on transient failure |
|
|
370
381
|
| `challengeTTLSeconds` | `number` | | `900` | Challenge validity window |
|
|
371
|
-
| `
|
|
382
|
+
| `version` | `string` | | `"1.0.0"` | Agent version shown in agent card and MCP discovery |
|
|
383
|
+
| `basePath` | `string` | | `"/agent"` | Path prefix for resource endpoint URLs |
|
|
372
384
|
| `resourceEndpointTemplate` | `string` | | auto | URL template (use `{resourceId}`) |
|
|
373
385
|
| `gasWalletPrivateKey` | `0x${string}` | | — | Private key for self-contained settlement |
|
|
374
386
|
| `redis` | `IRedisLockClient` | | — | Redis client for distributed gas wallet settlement locking across replicas |
|
|
@@ -445,6 +457,17 @@ await queue.add("process", {}, { repeat: { every: 60_000 } });
|
|
|
445
457
|
> The `walletPrivateKey` must correspond to `walletAddress` — the wallet that received the USDC payments.
|
|
446
458
|
> Without Redis, a plain `setInterval` works for single-instance deployments (the atomic `PAID → REFUND_PENDING` CAS transition prevents double-refunds even with multiple overlapping ticks).
|
|
447
459
|
|
|
460
|
+
**Retrying failed refunds:**
|
|
461
|
+
|
|
462
|
+
If a refund fails (e.g. network error), the record moves to `REFUND_FAILED`. Use `retryFailedRefunds` to re-queue them:
|
|
463
|
+
|
|
464
|
+
```typescript
|
|
465
|
+
import { retryFailedRefunds } from "@key0ai/key0";
|
|
466
|
+
|
|
467
|
+
// Re-queue specific failed refunds — they'll be picked up by the next processRefunds run
|
|
468
|
+
const requeued = await retryFailedRefunds(store, ["challengeId-1", "challengeId-2"]);
|
|
469
|
+
```
|
|
470
|
+
|
|
448
471
|
### Environment Variables
|
|
449
472
|
|
|
450
473
|
```bash
|
|
@@ -467,6 +490,8 @@ Key0 supports two payment flows. Both follow the same `ChallengeRecord` lifecycl
|
|
|
467
490
|
|
|
468
491
|
### A2A Flow (Agent-to-Agent)
|
|
469
492
|
|
|
493
|
+
A2A-native clients send a `POST /x402/access` with the `X-A2A-Extensions` header, which delegates to the JSON-RPC handler. The payment flow uses the same `PENDING → PAID → DELIVERED` lifecycle.
|
|
494
|
+
|
|
470
495
|
```
|
|
471
496
|
Client Agent Seller Server
|
|
472
497
|
| |
|
|
@@ -474,7 +499,9 @@ Client Agent Seller Server
|
|
|
474
499
|
|------------------------------------->|
|
|
475
500
|
| <-- Agent card (skills, pricing) |
|
|
476
501
|
| |
|
|
477
|
-
| 2. POST /
|
|
502
|
+
| 2. POST /x402/access |
|
|
503
|
+
| + X-A2A-Extensions header |
|
|
504
|
+
| (JSON-RPC AccessRequest) |
|
|
478
505
|
|------------------------------------->|
|
|
479
506
|
| <-- X402Challenge (amount, chain, |
|
|
480
507
|
| destination, challengeId) |
|
|
@@ -483,7 +510,9 @@ Client Agent Seller Server
|
|
|
483
510
|
|----> Blockchain |
|
|
484
511
|
| <-- txHash |
|
|
485
512
|
| |
|
|
486
|
-
| 4. POST /
|
|
513
|
+
| 4. POST /x402/access |
|
|
514
|
+
| + X-A2A-Extensions header |
|
|
515
|
+
| (JSON-RPC PaymentProof) |
|
|
487
516
|
|------------------------------------->|
|
|
488
517
|
| Server verifies tx on-chain --> |
|
|
489
518
|
| <-- AccessGrant (JWT + endpoint) |
|
|
@@ -495,10 +524,10 @@ Client Agent Seller Server
|
|
|
495
524
|
```
|
|
496
525
|
|
|
497
526
|
1. **Discovery** — Client fetches the agent card at `/.well-known/agent.json` to learn about available plans and pricing
|
|
498
|
-
2. **Access Request** — Client sends
|
|
527
|
+
2. **Access Request** — Client sends a JSON-RPC `AccessRequest` to `/x402/access` with the `X-A2A-Extensions` header
|
|
499
528
|
3. **Challenge** — Server creates a `PENDING` record and returns an `X402Challenge` with payment details
|
|
500
529
|
4. **Payment** — Client pays on-chain USDC on Base — a standard ERC-20 transfer, no custom contracts
|
|
501
|
-
5. **Proof** — Client submits a `PaymentProof` with the transaction hash
|
|
530
|
+
5. **Proof** — Client submits a JSON-RPC `PaymentProof` with the transaction hash
|
|
502
531
|
6. **Verification** — Server verifies the payment on-chain (correct recipient, amount, not expired, not double-spent), transitions `PENDING → PAID`
|
|
503
532
|
7. **Grant** — Server calls `fetchResourceCredentials`, transitions `PAID → DELIVERED`, returns an `AccessGrant` with the token and resource endpoint URL
|
|
504
533
|
8. **Access** — Client uses the token as a Bearer header to access the protected resource
|
|
@@ -508,9 +537,9 @@ Client Agent Seller Server
|
|
|
508
537
|
```
|
|
509
538
|
Client Seller Server
|
|
510
539
|
| |
|
|
511
|
-
| 1.
|
|
540
|
+
| 1. GET /discovery |
|
|
512
541
|
|------------------------------------->|
|
|
513
|
-
| <--
|
|
542
|
+
| <-- 200 + all plans |
|
|
514
543
|
| (discovery, no PENDING record) |
|
|
515
544
|
| |
|
|
516
545
|
| 2. POST /x402/access |
|
|
@@ -536,7 +565,7 @@ Client Seller Server
|
|
|
536
565
|
| <-- Protected content |
|
|
537
566
|
```
|
|
538
567
|
|
|
539
|
-
1. **Discovery (optional)** — Client
|
|
568
|
+
1. **Discovery (optional)** — Client calls `GET /discovery` to receive a 200 response listing all available plans and pricing. No `PENDING` record is created. `POST /x402/access` without a `planId` returns 400 and directs clients to `GET /discovery`.
|
|
540
569
|
2. **Challenge** — Client POSTs `{ planId }` (and optionally `requestId`, `resourceId`). Server creates a `PENDING` record and returns HTTP 402 with x402 `PaymentRequirements` for that plan. `requestId` is auto-generated if omitted.
|
|
541
570
|
3. **Payment + Settlement** — Client resends with the same `{ planId, requestId }` plus a `PAYMENT-SIGNATURE` header containing a signed EIP-3009 authorization. The gas wallet or facilitator settles on-chain; server transitions `PENDING → PAID → DELIVERED` and returns an `AccessGrant`.
|
|
542
571
|
4. **Access** — Client uses the token as a Bearer header to access the protected resource.
|
|
@@ -667,6 +696,21 @@ fetchResourceCredentials: async (params) => {
|
|
|
667
696
|
const decoded = await issuer.verifyWithFallback(token, [process.env.PREVIOUS_SECRET!]);
|
|
668
697
|
```
|
|
669
698
|
|
|
699
|
+
### Lightweight Token Validator (Backend Services)
|
|
700
|
+
|
|
701
|
+
If your backend only needs to validate Key0 tokens without the full SDK, use `validateKey0Token`:
|
|
702
|
+
|
|
703
|
+
```typescript
|
|
704
|
+
import { validateKey0Token } from "@key0ai/key0";
|
|
705
|
+
|
|
706
|
+
const payload = await validateKey0Token(req.headers.authorization, {
|
|
707
|
+
secret: process.env.ACCESS_TOKEN_SECRET!,
|
|
708
|
+
});
|
|
709
|
+
// payload: { sub, jti, resourceId, planId, txHash, ... }
|
|
710
|
+
```
|
|
711
|
+
|
|
712
|
+
Supports both HS256 (shared secret) and RS256 (public key) algorithms. No blockchain connection needed.
|
|
713
|
+
|
|
670
714
|
### Settlement Strategies
|
|
671
715
|
|
|
672
716
|
**Facilitator (default)** — Coinbase CDP executes an EIP-3009 `transferWithAuthorization` on-chain:
|
|
@@ -686,10 +730,10 @@ The gas wallet must hold ETH on Base to pay transaction fees.
|
|
|
686
730
|
|
|
687
731
|
## Networks
|
|
688
732
|
|
|
689
|
-
| Network | Chain | Chain ID | USDC Contract | EIP-712 Domain Name |
|
|
690
|
-
|
|
691
|
-
| `testnet` | Base Sepolia | 84532 | `0x036CbD53842c5426634e7929541eC2318f3dCF7e` | `
|
|
692
|
-
| `mainnet` | Base | 8453 | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | `
|
|
733
|
+
| Network | Chain | Chain ID | USDC Contract | EIP-712 Domain Name | EIP-712 Version |
|
|
734
|
+
|---|---|---|---|---|---|
|
|
735
|
+
| `testnet` | Base Sepolia | 84532 | `0x036CbD53842c5426634e7929541eC2318f3dCF7e` | `USDC` | `2` |
|
|
736
|
+
| `mainnet` | Base | 8453 | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | `USDC` | `2` |
|
|
693
737
|
|
|
694
738
|
---
|
|
695
739
|
|
|
@@ -724,6 +768,7 @@ bun run start
|
|
|
724
768
|
| [`examples/refund-cron-example`](./examples/refund-cron-example) | BullMQ refund cron with Redis-backed storage |
|
|
725
769
|
| [`examples/backend-integration`](./examples/backend-integration) | Key0 service + backend API coordination |
|
|
726
770
|
| [`examples/client-agent`](./examples/client-agent) | Buyer agent with real on-chain USDC payments |
|
|
771
|
+
| [`examples/simple-x402-client.ts`](./examples/simple-x402-client.ts) | Minimal x402 HTTP client example (single file) |
|
|
727
772
|
|
|
728
773
|
---
|
|
729
774
|
|
|
@@ -131,7 +131,7 @@ describe("E2E: Full Key0 lifecycle (x402 Extension)", () => {
|
|
|
131
131
|
// Agent card check — two A2A spec-compliant skills
|
|
132
132
|
expect(agentCard.name).toBe("E2E Test Agent");
|
|
133
133
|
expect(agentCard.skills).toHaveLength(2);
|
|
134
|
-
expect(agentCard.skills[0].id).toBe("discover-
|
|
134
|
+
expect(agentCard.skills[0].id).toBe("discover-plans");
|
|
135
135
|
expect(agentCard.skills[1].id).toBe("request-access");
|
|
136
136
|
// Skills should NOT have pricing (A2A spec compliance)
|
|
137
137
|
expect(agentCard.skills[0].pricing).toBeUndefined();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e2e.test.js","sourceRoot":"","sources":["../../src/__tests__/e2e.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"e2e.test.js","sourceRoot":"","sources":["../../src/__tests__/e2e.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { beforeEach, describe, expect, test } from "bun:test";
|
|
2
2
|
import { AccessTokenIssuer } from "../core/access-token.js";
|
|
3
3
|
import { ChallengeEngine } from "../core/challenge-engine.js";
|
|
4
|
-
import { buildHttpPaymentRequirements,
|
|
4
|
+
import { buildHttpPaymentRequirements, decodePaymentSignature, settleViaFacilitator, } from "../integrations/settlement.js";
|
|
5
5
|
import { MockPaymentAdapter } from "../test-utils/index.js";
|
|
6
6
|
import { TestChallengeStore, TestSeenTxStore } from "../test-utils/stores.js";
|
|
7
7
|
import { CHAIN_CONFIGS } from "../types/config-shared.js";
|
|
@@ -34,51 +34,7 @@ function makeConfig() {
|
|
|
34
34
|
},
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
return {
|
|
39
|
-
body,
|
|
40
|
-
headers: headers,
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
function createMockResponse() {
|
|
44
|
-
let statusCode = 200;
|
|
45
|
-
let jsonData = null;
|
|
46
|
-
const nextCalled = false;
|
|
47
|
-
const headers = {};
|
|
48
|
-
const res = {
|
|
49
|
-
status: function (code) {
|
|
50
|
-
statusCode = code;
|
|
51
|
-
return this;
|
|
52
|
-
},
|
|
53
|
-
json: function (data) {
|
|
54
|
-
jsonData = data;
|
|
55
|
-
return this;
|
|
56
|
-
},
|
|
57
|
-
send: function (_data) {
|
|
58
|
-
return this;
|
|
59
|
-
},
|
|
60
|
-
setHeader: function (name, value) {
|
|
61
|
-
headers[name] = value;
|
|
62
|
-
return this;
|
|
63
|
-
},
|
|
64
|
-
};
|
|
65
|
-
return {
|
|
66
|
-
res: res,
|
|
67
|
-
get statusCode() {
|
|
68
|
-
return statusCode;
|
|
69
|
-
},
|
|
70
|
-
get jsonData() {
|
|
71
|
-
return jsonData;
|
|
72
|
-
},
|
|
73
|
-
get headers() {
|
|
74
|
-
return headers;
|
|
75
|
-
},
|
|
76
|
-
get nextCalled() {
|
|
77
|
-
return nextCalled;
|
|
78
|
-
},
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
describe("x402-http-middleware", () => {
|
|
37
|
+
describe("x402 settlement helpers", () => {
|
|
82
38
|
describe("buildHttpPaymentRequirements", () => {
|
|
83
39
|
test("should build correct payment requirements", () => {
|
|
84
40
|
const config = makeConfig();
|
|
@@ -87,7 +43,7 @@ describe("x402-http-middleware", () => {
|
|
|
87
43
|
// v2 response structure
|
|
88
44
|
expect(requirements.x402Version).toBe(2);
|
|
89
45
|
expect(requirements.resource).toBeDefined();
|
|
90
|
-
expect(requirements.resource.url).toBe("https://agent.example.com/
|
|
46
|
+
expect(requirements.resource.url).toBe("https://agent.example.com/x402/access");
|
|
91
47
|
expect(requirements.resource.method).toBe("POST");
|
|
92
48
|
// Payment requirements
|
|
93
49
|
expect(requirements.accepts).toHaveLength(1);
|
|
@@ -109,172 +65,13 @@ describe("x402-http-middleware", () => {
|
|
|
109
65
|
expect(() => buildHttpPaymentRequirements("invalid-tier", "default", config, networkConfig)).toThrow('Plan "invalid-tier" not found');
|
|
110
66
|
});
|
|
111
67
|
});
|
|
112
|
-
describe("createX402HttpMiddleware", () => {
|
|
113
|
-
let engine;
|
|
114
|
-
let config;
|
|
115
|
-
let middleware;
|
|
116
|
-
beforeEach(() => {
|
|
117
|
-
config = makeConfig();
|
|
118
|
-
const store = new TestChallengeStore();
|
|
119
|
-
const seenTxStore = new TestSeenTxStore();
|
|
120
|
-
const adapter = new MockPaymentAdapter();
|
|
121
|
-
engine = new ChallengeEngine({
|
|
122
|
-
config,
|
|
123
|
-
store,
|
|
124
|
-
seenTxStore,
|
|
125
|
-
adapter,
|
|
126
|
-
});
|
|
127
|
-
middleware = createX402HttpMiddleware(engine, config);
|
|
128
|
-
});
|
|
129
|
-
test("should pass through if X-A2A-Extensions header is present", async () => {
|
|
130
|
-
const req = createMockRequest({
|
|
131
|
-
method: "message/send",
|
|
132
|
-
params: {
|
|
133
|
-
message: {
|
|
134
|
-
parts: [
|
|
135
|
-
{
|
|
136
|
-
kind: "data",
|
|
137
|
-
data: { type: "AccessRequest", requestId: "test", planId: "basic" },
|
|
138
|
-
},
|
|
139
|
-
],
|
|
140
|
-
},
|
|
141
|
-
},
|
|
142
|
-
}, {
|
|
143
|
-
"x-a2a-extensions": "https://github.com/google-agentic-commerce/a2a-x402/blob/main/spec/v0.2",
|
|
144
|
-
});
|
|
145
|
-
let nextCalled = false;
|
|
146
|
-
const next = (() => {
|
|
147
|
-
nextCalled = true;
|
|
148
|
-
});
|
|
149
|
-
const mockRes = createMockResponse();
|
|
150
|
-
await middleware(req, mockRes.res, next);
|
|
151
|
-
expect(nextCalled).toBe(true);
|
|
152
|
-
});
|
|
153
|
-
test("should pass through if not message/send", async () => {
|
|
154
|
-
const req = createMockRequest({
|
|
155
|
-
method: "task/get",
|
|
156
|
-
params: {},
|
|
157
|
-
});
|
|
158
|
-
let nextCalled = false;
|
|
159
|
-
const next = (() => {
|
|
160
|
-
nextCalled = true;
|
|
161
|
-
});
|
|
162
|
-
const mockRes = createMockResponse();
|
|
163
|
-
await middleware(req, mockRes.res, next);
|
|
164
|
-
expect(nextCalled).toBe(true);
|
|
165
|
-
});
|
|
166
|
-
test("should pass through if no AccessRequest in message parts", async () => {
|
|
167
|
-
const req = createMockRequest({
|
|
168
|
-
method: "message/send",
|
|
169
|
-
params: {
|
|
170
|
-
message: {
|
|
171
|
-
parts: [{ kind: "data", data: { type: "SomethingElse" } }],
|
|
172
|
-
},
|
|
173
|
-
},
|
|
174
|
-
});
|
|
175
|
-
let nextCalled = false;
|
|
176
|
-
const next = (() => {
|
|
177
|
-
nextCalled = true;
|
|
178
|
-
});
|
|
179
|
-
const mockRes = createMockResponse();
|
|
180
|
-
await middleware(req, mockRes.res, next);
|
|
181
|
-
expect(nextCalled).toBe(true);
|
|
182
|
-
});
|
|
183
|
-
test("should return HTTP 402 for AccessRequest without X-Payment", async () => {
|
|
184
|
-
const req = createMockRequest({
|
|
185
|
-
method: "message/send",
|
|
186
|
-
params: {
|
|
187
|
-
message: {
|
|
188
|
-
parts: [
|
|
189
|
-
{
|
|
190
|
-
kind: "data",
|
|
191
|
-
data: {
|
|
192
|
-
type: "AccessRequest",
|
|
193
|
-
requestId: "req-123",
|
|
194
|
-
planId: "basic",
|
|
195
|
-
resourceId: "default",
|
|
196
|
-
},
|
|
197
|
-
},
|
|
198
|
-
],
|
|
199
|
-
},
|
|
200
|
-
},
|
|
201
|
-
});
|
|
202
|
-
const next = (() => { });
|
|
203
|
-
const mockRes = createMockResponse();
|
|
204
|
-
await middleware(req, mockRes.res, next);
|
|
205
|
-
expect(mockRes.statusCode).toBe(402);
|
|
206
|
-
expect(mockRes.jsonData.x402Version).toBe(2);
|
|
207
|
-
expect(mockRes.jsonData.resource).toBeDefined();
|
|
208
|
-
expect(mockRes.jsonData.accepts).toHaveLength(1);
|
|
209
|
-
expect(mockRes.jsonData.accepts[0].amount).toBe("990000");
|
|
210
|
-
// challengeId from PENDING record should be in the response
|
|
211
|
-
expect(mockRes.jsonData.challengeId).toBeDefined();
|
|
212
|
-
expect(mockRes.jsonData.challengeId).toMatch(/^http-/);
|
|
213
|
-
// Check PAYMENT-REQUIRED header is set
|
|
214
|
-
expect(mockRes.headers["payment-required"]).toBeDefined();
|
|
215
|
-
const decodedHeader = JSON.parse(Buffer.from(mockRes.headers["payment-required"], "base64").toString());
|
|
216
|
-
expect(decodedHeader.x402Version).toBe(2);
|
|
217
|
-
});
|
|
218
|
-
test("should return 400 for invalid tier", async () => {
|
|
219
|
-
const req = createMockRequest({
|
|
220
|
-
method: "message/send",
|
|
221
|
-
params: {
|
|
222
|
-
message: {
|
|
223
|
-
parts: [
|
|
224
|
-
{
|
|
225
|
-
kind: "data",
|
|
226
|
-
data: {
|
|
227
|
-
type: "AccessRequest",
|
|
228
|
-
requestId: "req-123",
|
|
229
|
-
planId: "invalid-tier",
|
|
230
|
-
resourceId: "default",
|
|
231
|
-
},
|
|
232
|
-
},
|
|
233
|
-
],
|
|
234
|
-
},
|
|
235
|
-
},
|
|
236
|
-
});
|
|
237
|
-
const next = (() => { });
|
|
238
|
-
const mockRes = createMockResponse();
|
|
239
|
-
await middleware(req, mockRes.res, next);
|
|
240
|
-
expect(mockRes.statusCode).toBe(400);
|
|
241
|
-
expect(mockRes.jsonData.code).toBe("TIER_NOT_FOUND");
|
|
242
|
-
});
|
|
243
|
-
test("should parse AccessRequest from text part", async () => {
|
|
244
|
-
const req = createMockRequest({
|
|
245
|
-
method: "message/send",
|
|
246
|
-
params: {
|
|
247
|
-
message: {
|
|
248
|
-
parts: [
|
|
249
|
-
{
|
|
250
|
-
kind: "text",
|
|
251
|
-
text: JSON.stringify({
|
|
252
|
-
type: "AccessRequest",
|
|
253
|
-
requestId: "req-123",
|
|
254
|
-
planId: "basic",
|
|
255
|
-
resourceId: "default",
|
|
256
|
-
}),
|
|
257
|
-
},
|
|
258
|
-
],
|
|
259
|
-
},
|
|
260
|
-
},
|
|
261
|
-
});
|
|
262
|
-
const next = (() => { });
|
|
263
|
-
const mockRes = createMockResponse();
|
|
264
|
-
await middleware(req, mockRes.res, next);
|
|
265
|
-
expect(mockRes.statusCode).toBe(402);
|
|
266
|
-
expect(mockRes.jsonData.x402Version).toBe(2);
|
|
267
|
-
// Check PAYMENT-REQUIRED header is set
|
|
268
|
-
expect(mockRes.headers["payment-required"]).toBeDefined();
|
|
269
|
-
});
|
|
270
|
-
});
|
|
271
68
|
describe("settleViaFacilitator", () => {
|
|
272
69
|
const mockPaymentPayload = {
|
|
273
70
|
x402Version: 2,
|
|
274
71
|
network: "eip155:84532",
|
|
275
72
|
scheme: "exact",
|
|
276
73
|
resource: {
|
|
277
|
-
url: "https://agent.example.com/
|
|
74
|
+
url: "https://agent.example.com/x402/access",
|
|
278
75
|
method: "POST",
|
|
279
76
|
description: "Access to default",
|
|
280
77
|
mimeType: "application/json",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402-http-middleware.test.js","sourceRoot":"","sources":["../../src/__tests__/x402-http-middleware.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"x402-http-middleware.test.js","sourceRoot":"","sources":["../../src/__tests__/x402-http-middleware.test.ts"],"names":[],"mappings":"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"}
|