@key0ai/key0 0.1.1 → 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 CHANGED
@@ -376,8 +376,11 @@ fastify.listen({ port: 3000 });
376
376
  | `network` | `"testnet" \| "mainnet"` | ✅ | — | Base Sepolia or Base |
377
377
  | `plans` | `Plan[]` | ✅ | — | Pricing plans |
378
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 |
379
381
  | `challengeTTLSeconds` | `number` | | `900` | Challenge validity window |
380
- | `basePath` | `string` | | `"/a2a"` | Path prefix for agent card and A2A routes |
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 |
381
384
  | `resourceEndpointTemplate` | `string` | | auto | URL template (use `{resourceId}`) |
382
385
  | `gasWalletPrivateKey` | `0x${string}` | | — | Private key for self-contained settlement |
383
386
  | `redis` | `IRedisLockClient` | | — | Redis client for distributed gas wallet settlement locking across replicas |
@@ -454,6 +457,17 @@ await queue.add("process", {}, { repeat: { every: 60_000 } });
454
457
  > The `walletPrivateKey` must correspond to `walletAddress` — the wallet that received the USDC payments.
455
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).
456
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
+
457
471
  ### Environment Variables
458
472
 
459
473
  ```bash
@@ -523,9 +537,9 @@ Client Agent Seller Server
523
537
  ```
524
538
  Client Seller Server
525
539
  | |
526
- | 1. POST /x402/access {} |
540
+ | 1. GET /discovery |
527
541
  |------------------------------------->|
528
- | <-- HTTP 402 + all plans |
542
+ | <-- 200 + all plans |
529
543
  | (discovery, no PENDING record) |
530
544
  | |
531
545
  | 2. POST /x402/access |
@@ -551,7 +565,7 @@ Client Seller Server
551
565
  | <-- Protected content |
552
566
  ```
553
567
 
554
- 1. **Discovery (optional)** — Client POSTs to `/x402/access` with no body to receive a 402 listing all available plans and pricing. No `PENDING` record is created.
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`.
555
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.
556
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`.
557
571
  4. **Access** — Client uses the token as a Bearer header to access the protected resource.
@@ -682,6 +696,21 @@ fetchResourceCredentials: async (params) => {
682
696
  const decoded = await issuer.verifyWithFallback(token, [process.env.PREVIOUS_SECRET!]);
683
697
  ```
684
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
+
685
714
  ### Settlement Strategies
686
715
 
687
716
  **Facilitator (default)** — Coinbase CDP executes an EIP-3009 `transferWithAuthorization` on-chain:
@@ -701,10 +730,10 @@ The gas wallet must hold ETH on Base to pay transaction fees.
701
730
 
702
731
  ## Networks
703
732
 
704
- | Network | Chain | Chain ID | USDC Contract | EIP-712 Domain Name |
705
- |---|---|---|---|---|
706
- | `testnet` | Base Sepolia | 84532 | `0x036CbD53842c5426634e7929541eC2318f3dCF7e` | `USD Coin` |
707
- | `mainnet` | Base | 8453 | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | `USD Coin` |
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` |
708
737
 
709
738
  ---
710
739
 
@@ -739,6 +768,7 @@ bun run start
739
768
  | [`examples/refund-cron-example`](./examples/refund-cron-example) | BullMQ refund cron with Redis-backed storage |
740
769
  | [`examples/backend-integration`](./examples/backend-integration) | Key0 service + backend API coordination |
741
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) |
742
772
 
743
773
  ---
744
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-products");
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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"}
@@ -52,23 +52,22 @@ describe("buildAgentCard", () => {
52
52
  test("has two A2A spec-compliant skills", () => {
53
53
  const card = buildAgentCard(makeConfig());
54
54
  expect(card.skills).toHaveLength(2);
55
- expect(card.skills[0].id).toBe("discover-products");
55
+ expect(card.skills[0].id).toBe("discover-plans");
56
56
  expect(card.skills[1].id).toBe("request-access");
57
57
  });
58
- test("discover-products skill has correct structure", () => {
58
+ test("discover-plans skill has correct structure", () => {
59
59
  const card = buildAgentCard(makeConfig());
60
60
  const skill = card.skills[0];
61
- expect(skill.id).toBe("discover-products");
62
- expect(skill.name).toBe("Discover Products");
63
- expect(skill.description).toContain("Browse available products");
64
- expect(skill.description).toContain("/x402/access");
61
+ expect(skill.id).toBe("discover-plans");
62
+ expect(skill.name).toBe("Discover Plans");
63
+ expect(skill.description).toContain("Browse available");
64
+ expect(skill.description).toContain("/discovery");
65
65
  expect(skill.tags).toContain("discovery");
66
66
  expect(skill.tags).toContain("catalog");
67
67
  expect(skill.examples).toBeDefined();
68
68
  expect(skill.examples.length).toBeGreaterThan(0);
69
- // A2A spec: skills should NOT have pricing, inputSchema, outputSchema, url
69
+ // A2A spec: skills should NOT have pricing, outputSchema, url
70
70
  expect(skill.pricing).toBeUndefined();
71
- expect(skill.inputSchema).toBeUndefined();
72
71
  expect(skill.outputSchema).toBeUndefined();
73
72
  expect(skill.url).toBeUndefined();
74
73
  });
@@ -84,9 +83,12 @@ describe("buildAgentCard", () => {
84
83
  expect(skill.tags).toContain("purchase");
85
84
  expect(skill.examples).toBeDefined();
86
85
  expect(skill.examples.length).toBeGreaterThan(0);
87
- // A2A spec: skills should NOT have pricing, inputSchema, outputSchema, url
86
+ // inputSchema is present for machine-readable validation
87
+ expect(skill.inputSchema).toBeDefined();
88
+ expect(skill.inputSchema.required).toContain("planId");
89
+ expect(skill.inputSchema.required).toContain("requestId");
90
+ // A2A spec: skills should NOT have pricing, outputSchema, url
88
91
  expect(skill.pricing).toBeUndefined();
89
- expect(skill.inputSchema).toBeUndefined();
90
92
  expect(skill.outputSchema).toBeUndefined();
91
93
  expect(skill.url).toBeUndefined();
92
94
  });
@@ -95,7 +97,7 @@ describe("buildAgentCard", () => {
95
97
  const discoverSkill = card.skills[0];
96
98
  expect(discoverSkill.examples).toBeDefined();
97
99
  expect(discoverSkill.examples.length).toBeGreaterThan(0);
98
- expect(discoverSkill.examples.some((ex) => ex.includes("/x402/access"))).toBe(true);
100
+ expect(discoverSkill.examples.some((ex) => ex.includes("/discovery"))).toBe(true);
99
101
  const requestSkill = card.skills[1];
100
102
  expect(requestSkill.examples).toBeDefined();
101
103
  expect(requestSkill.examples.length).toBeGreaterThan(0);
@@ -126,7 +128,7 @@ describe("buildAgentCard", () => {
126
128
  const card = buildAgentCard(config);
127
129
  // Still just two skills regardless of tier count
128
130
  expect(card.skills).toHaveLength(2);
129
- expect(card.skills[0].id).toBe("discover-products");
131
+ expect(card.skills[0].id).toBe("discover-plans");
130
132
  expect(card.skills[1].id).toBe("request-access");
131
133
  });
132
134
  test("mainnet configuration works", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"agent-card.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/agent-card.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-card.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/agent-card.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-card.d.ts","sourceRoot":"","sources":["../../src/core/agent-card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAA8B,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG7F,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAuE9D"}
1
+ {"version":3,"file":"agent-card.d.ts","sourceRoot":"","sources":["../../src/core/agent-card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAA8B,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG7F,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAuF9D"}
@@ -3,30 +3,29 @@ export function buildAgentCard(config) {
3
3
  const networkConfig = CHAIN_CONFIGS[config.network];
4
4
  const networkName = CHAIN_ID_TO_NETWORK[networkConfig.chainId] ?? `chain-${networkConfig.chainId}`;
5
5
  const baseUrl = config.agentUrl.replace(/\/$/, "");
6
- // Two A2A spec-compliant skills (no pricing, no inputSchema, no outputSchema, no url)
6
+ const planIds = config.plans.map((p) => p.planId);
7
+ // Two A2A spec-compliant skills
7
8
  // Skill 1: Discovery (free) — browse the product catalog
8
9
  // Skill 2: Purchase (x402-gated) — buy an access token
9
10
  const skills = [
10
11
  {
11
- id: "discover-products",
12
- name: "Discover Products",
12
+ id: "discover-plans",
13
+ name: "Discover Plans",
13
14
  description: [
14
- `Browse available products and pricing for ${config.agentName}.`,
15
+ `Browse available plans and pricing for ${config.agentName}.`,
15
16
  `Returns the product catalog with plan IDs, prices (USDC on ${networkName}), wallet address, and chain ID.`,
16
- `POST to ${baseUrl}/x402/access with an empty body or without planId to discover products.`,
17
+ `GET to ${baseUrl}/discovery to discover plans.`,
17
18
  ].join(" "),
18
19
  tags: ["discovery", "catalog", "x402"],
19
- examples: [
20
- `POST ${baseUrl}/x402/access with empty body {}`,
21
- `Or call without planId to get 402 response with product catalog`,
22
- ],
20
+ examples: [`GET ${baseUrl}/discovery`],
21
+ endpoint: { url: `${baseUrl}/discovery`, method: "GET" },
23
22
  },
24
23
  {
25
24
  id: "request-access",
26
25
  name: "Request Access",
27
26
  description: [
28
27
  `Purchase access to a ${config.agentName} product plan via x402 payment on ${networkName}.`,
29
- `First call discover-products to get available plans.`,
28
+ `First call discover-plans to get available plans.`,
30
29
  `Then POST to ${baseUrl}/x402/access with planId and requestId to initiate purchase.`,
31
30
  `Server responds with x402 payment challenge.`,
32
31
  `Complete payment on-chain and include PAYMENT-SIGNATURE header to receive access token.`,
@@ -38,6 +37,22 @@ export function buildAgentCard(config) {
38
37
  `Pay USDC on-chain, retry same request with PAYMENT-SIGNATURE header`,
39
38
  `Receive 200 with access token`,
40
39
  ],
40
+ endpoint: { url: `${baseUrl}/x402/access`, method: "POST" },
41
+ inputSchema: {
42
+ type: "object",
43
+ required: ["planId", "requestId"],
44
+ properties: {
45
+ planId: { type: "string", enum: planIds },
46
+ requestId: { type: "string", format: "uuid" },
47
+ },
48
+ },
49
+ workflow: [
50
+ "POST body with planId + requestId to endpoint.url — expect 402",
51
+ "Extract payment requirements from 402 response body",
52
+ `Sign and broadcast USDC transfer on ${networkName}`,
53
+ "Retry same POST with PAYMENT-SIGNATURE header containing the transaction hash",
54
+ "Receive 200 with accessToken",
55
+ ],
41
56
  },
42
57
  ];
43
58
  const x402Extension = {
@@ -1 +1 @@
1
- {"version":3,"file":"agent-card.js","sourceRoot":"","sources":["../../src/core/agent-card.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE3F,MAAM,UAAU,cAAc,CAAC,MAAoB;IAClD,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,WAAW,GAChB,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,SAAS,aAAa,CAAC,OAAO,EAAE,CAAC;IAEhF,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEnD,sFAAsF;IACtF,yDAAyD;IACzD,uDAAuD;IACvD,MAAM,MAAM,GAAiB;QAC5B;YACC,EAAE,EAAE,mBAAmB;YACvB,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE;gBACZ,6CAA6C,MAAM,CAAC,SAAS,GAAG;gBAChE,8DAA8D,WAAW,kCAAkC;gBAC3G,WAAW,OAAO,yEAAyE;aAC3F,CAAC,IAAI,CAAC,GAAG,CAAC;YACX,IAAI,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC;YACtC,QAAQ,EAAE;gBACT,QAAQ,OAAO,iCAAiC;gBAChD,iEAAiE;aACjE;SACD;QACD;YACC,EAAE,EAAE,gBAAgB;YACpB,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE;gBACZ,wBAAwB,MAAM,CAAC,SAAS,qCAAqC,WAAW,GAAG;gBAC3F,sDAAsD;gBACtD,gBAAgB,OAAO,8DAA8D;gBACrF,8CAA8C;gBAC9C,yFAAyF;aACzF,CAAC,IAAI,CAAC,GAAG,CAAC;YACX,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;YACrC,QAAQ,EAAE;gBACT,QAAQ,OAAO,uFAAuF;gBACtG,oCAAoC;gBACpC,qEAAqE;gBACrE,+BAA+B;aAC/B;SACD;KACD,CAAC;IAEF,MAAM,aAAa,GAAmB;QACrC,GAAG,EAAE,kBAAkB;QACvB,WAAW,EAAE,uCAAuC,WAAW,GAAG;QAClE,QAAQ,EAAE,IAAI;KACd,CAAC;IAEF,OAAO;QACN,IAAI,EAAE,MAAM,CAAC,SAAS;QACtB,WAAW,EAAE,MAAM,CAAC,gBAAgB;QACpC,GAAG,EAAE,GAAG,OAAO,cAAc;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO;QAClC,eAAe,EAAE,OAAO;QACxB,YAAY,EAAE;YACb,UAAU,EAAE,CAAC,aAAa,CAAC;YAC3B,iBAAiB,EAAE,KAAK;YACxB,SAAS,EAAE,KAAK;YAChB,sBAAsB,EAAE,KAAK;SAC7B;QACD,iBAAiB,EAAE,CAAC,MAAM,CAAC;QAC3B,kBAAkB,EAAE,CAAC,kBAAkB,CAAC;QACxC,MAAM;QACN,QAAQ,EAAE;YACT,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,GAAG,EAAE,MAAM,CAAC,WAAW;SACvB;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"agent-card.js","sourceRoot":"","sources":["../../src/core/agent-card.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export type { ChallengeEngineConfig } from "./challenge-engine.js";
5
5
  export { ChallengeEngine } from "./challenge-engine.js";
6
6
  export { validateSellerConfig } from "./config-validation.js";
7
7
  export type { RefundConfig, RefundResult } from "./refund.js";
8
- export { processRefunds } from "./refund.js";
8
+ export { processRefunds, retryFailedRefunds } from "./refund.js";
9
9
  export type { PostgresStoreConfig } from "./storage/postgres.js";
10
10
  export { PostgresAuditStore, PostgresChallengeStore, PostgresSeenTxStore, } from "./storage/postgres.js";
11
11
  export type { RedisStoreConfig } from "./storage/redis.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EACN,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,YAAY,GACZ,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EACN,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,YAAY,GACZ,MAAM,iBAAiB,CAAC"}
@@ -8,7 +8,7 @@ export { ChallengeEngine } from "./challenge-engine.js";
8
8
  // Config Validation
9
9
  export { validateSellerConfig } from "./config-validation.js";
10
10
  // Refund Utility
11
- export { processRefunds } from "./refund.js";
11
+ export { processRefunds, retryFailedRefunds } from "./refund.js";
12
12
  // Storage — Postgres
13
13
  export { PostgresAuditStore, PostgresChallengeStore, PostgresSeenTxStore, } from "./storage/postgres.js";
14
14
  // Storage — Redis
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,aAAa;AAGb,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,oBAAoB;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,iBAAiB;AACjB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,qBAAqB;AACrB,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,kBAAkB;AAClB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EACN,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,YAAY,GACZ,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,aAAa;AAGb,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,oBAAoB;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,iBAAiB;AACjB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjE,qBAAqB;AACrB,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,kBAAkB;AAClB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EACN,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,YAAY,GACZ,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/integrations/express.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAYlE;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CA+QnD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,IACtD,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,mBAc7D;AAED,YAAY,EAAE,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/integrations/express.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAYlE;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAgQnD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,IACtD,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,mBAc7D;AAED,YAAY,EAAE,yBAAyB,EAAE,CAAC"}
@@ -67,23 +67,10 @@ export function key0Router(opts) {
67
67
  // Fall through to discovery — the signature might be malformed
68
68
  }
69
69
  }
70
- // ===== CASE 1: No planId → Discovery (402 with all tiers, no PENDING record) =====
70
+ // ===== CASE 1: No planId → 400 pointing to GET /discovery =====
71
71
  if (!planId) {
72
- console.log("[x402-access] → CASE 1: No planId provided, returning discovery 402");
73
- const discoveryResponse = buildDiscoveryResponse(opts.config, networkConfig);
74
- console.log("[x402-access] Discovery response:", JSON.stringify(discoveryResponse, null, 2));
75
- // Encode as base64 for PAYMENT-REQUIRED header
76
- const encoded = Buffer.from(JSON.stringify(discoveryResponse)).toString("base64");
77
- res.setHeader("payment-required", encoded);
78
- // Add www-authenticate header for HTTP spec compliance
79
- const authHeader = `Payment realm="${opts.config.agentUrl}", accept="exact"`;
80
- res.setHeader("www-authenticate", authHeader);
81
- console.log(`[x402-access] payment-required header set (${encoded.length} bytes)`);
82
- console.log(`[x402-access] www-authenticate header set`);
83
- console.log("[x402-access] → Returning HTTP 402 Payment Required (Discovery)");
84
- return res.status(402).json({
85
- ...discoveryResponse,
86
- error: "Payment required",
72
+ return res.status(400).json({
73
+ error: "Please select a plan from the discovery API response to purchase access. Endpoint: GET /discovery",
87
74
  });
88
75
  }
89
76
  // Auto-generate requestId if not provided (for simplicity)
@@ -216,6 +203,10 @@ export function key0Router(opts) {
216
203
  },
217
204
  // A2A JSON-RPC fallback: reached when X-A2A-Extensions header is present
218
205
  jsonRpcHandler({ requestHandler, userBuilder: UserBuilder.noAuthentication }));
206
+ router.get("/discovery", (_req, res) => {
207
+ const discoveryResponse = buildDiscoveryResponse(opts.config, networkConfig);
208
+ return res.status(200).json({ discoveryResponse });
209
+ });
219
210
  // MCP routes (when mcp: true)
220
211
  if (opts.config.mcp) {
221
212
  mountMcpRoutes(router, engine, opts.config);
@@ -1 +1 @@
1
- {"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/integrations/express.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/integrations/express.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAkD,MAAM,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,EAAE,UAAU,EAAmB,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EACN,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACtB,aAAa,GACb,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,UAAU,CAAC,IAAgB;IAC1C,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzD,aAAa;IACb,MAAM,CAAC,GAAG,CAAC,IAAI,eAAe,EAAE,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IAC3F,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IAE/F,mDAAmD;IACnD,2EAA2E;IAC3E,gFAAgF;IAChF,MAAM,CAAC,IAAI,CACV,cAAc,EACd,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACzD,+DAA+D;QAC/D,IAAI,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CACV,iFAAiF,CACjF,CAAC;YACF,OAAO,IAAI,EAAE,CAAC;QACf,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAE5E,yCAAyC;YACzC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;YAC9C,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YAEzB,qCAAqC;YACrC,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAuB,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAE9E,kFAAkF;YAClF,+EAA+E;YAC/E,6EAA6E;YAC7E,IAAI,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACJ,MAAM,OAAO,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;oBACzD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAuB,CAAC;oBAC5E,IAAI,SAAS,EAAE,CAAC;wBACf,OAAO,CAAC,GAAG,CACV,qCAAqC,SAAS,wCAAwC,CACtF,CAAC;wBACF,MAAM,GAAG,SAAS,CAAC;oBACpB,CAAC;gBACF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CACV,6EAA6E,GAAG,EAAE,CAClF,CAAC;oBACF,+DAA+D;gBAChE,CAAC;YACF,CAAC;YAED,iEAAiE;YACjE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC3B,KAAK,EACJ,mGAAmG;iBACpG,CAAC,CAAC;YACJ,CAAC;YAED,2DAA2D;YAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,SAAS,GAAG,QAAQ,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,2CAA2C,SAAS,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,CAAC,GAAG,CACV,0CAA0C,MAAM,gBAAgB,SAAS,iBAAiB,UAAU,EAAE,CACtG,CAAC;YAEF,8FAA8F;YAC9F,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CACV,sFAAsF,CACtF,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,wDAAwD,SAAS,EAAE,CAAC,CAAC;gBAEjF,sFAAsF;gBACtF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;gBACtF,OAAO,CAAC,GAAG,CAAC,uDAAuD,WAAW,EAAE,CAAC,CAAC;gBAElF,yCAAyC;gBACzC,OAAO,CAAC,GAAG,CAAC,yDAAyD,MAAM,EAAE,CAAC,CAAC;gBAC/E,MAAM,YAAY,GAAgC,4BAA4B,CAC7E,MAAM,EACN,UAAU,EACV,IAAI,CAAC,MAAM,EACX,aAAa,EACb;oBACC,WAAW,EAAE;wBACZ,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACX,MAAM,EAAE;gCACP,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,8BAA8B,MAAM,GAAG;6BACpD;4BACD,SAAS,EAAE;gCACV,IAAI,EAAE,QAAQ;gCACd,WAAW,EACV,mEAAmE;6BACpE;4BACD,UAAU,EAAE;gCACX,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,gEAAgE;6BAC7E;yBACD;wBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;qBACpB;oBACD,YAAY,EAAE;wBACb,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACX,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;4BACxE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;4BAC3E,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;4BAC3E,gBAAgB,EAAE;gCACjB,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,sCAAsC;6BACnD;4BACD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;4BACpE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;yBACvE;qBACD;oBACD,WAAW,EAAE,aAAa,UAAU,QAAQ,MAAM,OAAO;iBACzD,CACD,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAE1F,+CAA+C;gBAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC7E,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;gBAE3C,8BAA8B;gBAC9B,MAAM,UAAU,GAAG,kBAAkB,IAAI,CAAC,MAAM,CAAC,QAAQ,iCAAiC,WAAW,GAAG,CAAC;gBACzG,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;gBAE9C,OAAO,CAAC,GAAG,CAAC,8CAA8C,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC;gBACnF,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;gBAE/E,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC3B,GAAG,YAAY;oBACf,WAAW;oBACX,SAAS;oBACT,KAAK,EAAE,kBAAkB;iBACzB,CAAC,CAAC;YACJ,CAAC;YAED,kFAAkF;YAClF,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CACV,oDAAoD,gBAAgB,CAAC,MAAM,SAAS,CACpF,CAAC;YAEF,kFAAkF;YAClF,OAAO,CAAC,GAAG,CAAC,mDAAmD,EAAE,SAAS,CAAC,CAAC;YAC5E,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACjE,IAAI,aAAa,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;gBACzE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5C,CAAC;YAED,wDAAwD;YACxD,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAC3D,MAAM,cAAc,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CACV,wCAAwC,EACxC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CACvC,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC1D,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,MAAM,aAAa,CAC5D,cAAc,EACd,IAAI,CAAC,MAAM,EACX,aAAa,CACb,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,uCAAuC,MAAM,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAE3F,4EAA4E;YAC5E,OAAO,CAAC,GAAG,CAAC,mDAAmD,SAAS,EAAE,CAAC,CAAC;YAC5E,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAC5C,SAAS,EACT,MAAM,EACN,UAAU,EACV,MAAM,EACN,KAAkC,CAClC,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAE5E,8BAA8B;YAC9B,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACvF,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,8CAA8C,eAAe,CAAC,MAAM,SAAS,CAAC,CAAC;YAE3F,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;YACvE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,wCAAwC,OAAO,IAAI,CAAC,CAAC;YACnE,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;YACjF,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;YAEnD,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC3D,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACxD,CAAC;YAED,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;gBAC9B,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;gBAChF,oEAAoE;gBACpE,IAAI,GAAG,CAAC,IAAI,KAAK,wBAAwB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;oBACrE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnD,CAAC;gBACD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACtD,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACnE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC3B,KAAK,EAAE,gBAAgB;gBACvB,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB;aACrE,CAAC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACV,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,sCAAsC,OAAO,IAAI,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACvE,CAAC;IACF,CAAC;IACD,yEAAyE;IACzE,cAAc,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAC7E,CAAC;IAEF,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QACzD,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC7E,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACrB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiC;IACpE,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QAChE,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACvE,0DAA0D;YACzD,GAAyC,CAAC,SAAS,GAAG,OAAO,CAAC;YAC/D,IAAI,EAAE,CAAC;QACR,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACvB,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;gBAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAC5F,CAAC;QACF,CAAC;IACF,CAAC,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../../src/integrations/fastify.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAWlE;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0J1F;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,yBAAyB,IAC7D,SAAS,cAAc,EAAE,OAAO,YAAY,wBAa1D"}
1
+ {"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../../src/integrations/fastify.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAWlE;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA2J1F;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,yBAAyB,IAC7D,SAAS,cAAc,EAAE,OAAO,YAAY,wBAa1D"}
@@ -47,14 +47,11 @@ export async function key0Plugin(fastify, opts) {
47
47
  // Fall through to discovery
48
48
  }
49
49
  }
50
- // CASE 1: No planId → Discovery
50
+ // CASE 1: No planId → 400 pointing to GET /discovery
51
51
  if (!planId) {
52
- console.log("[x402-access/fastify] → CASE 1: Discovery 402");
53
- const discoveryResponse = buildDiscoveryResponse(opts.config, networkConfig);
54
- const encoded = Buffer.from(JSON.stringify(discoveryResponse)).toString("base64");
55
- reply.header("payment-required", encoded);
56
- reply.header("www-authenticate", `Payment realm="${opts.config.agentUrl}", accept="exact"`);
57
- return reply.code(402).send({ ...discoveryResponse, error: "Payment required" });
52
+ return reply.code(400).send({
53
+ error: "Please select a plan from the discovery API response to purchase access. Endpoint: GET /discovery",
54
+ });
58
55
  }
59
56
  // Auto-generate requestId
60
57
  if (!requestId) {
@@ -128,6 +125,10 @@ export async function key0Plugin(fastify, opts) {
128
125
  console.log(`[x402-access/fastify] Request completed in ${Date.now() - startTime}ms`);
129
126
  }
130
127
  });
128
+ fastify.get("/discovery", async (_request, reply) => {
129
+ const discoveryResponse = buildDiscoveryResponse(opts.config, networkConfig);
130
+ return reply.send({ discoveryResponse });
131
+ });
131
132
  }
132
133
  /**
133
134
  * Fastify onRequest hook to validate access tokens.
@@ -1 +1 @@
1
- {"version":3,"file":"fastify.js","sourceRoot":"","sources":["../../src/integrations/fastify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fastify.js","sourceRoot":"","sources":["../../src/integrations/fastify.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hono.d.ts","sourceRoot":"","sources":["../../src/integrations/hono.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAWlE;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CA4J9C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,yBAAyB,IAEvE,GAAG;IACF,GAAG,EAAE;QAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACtD,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC;CAClD,EACD,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,mCAa1B"}
1
+ {"version":3,"file":"hono.d.ts","sourceRoot":"","sources":["../../src/integrations/hono.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAWlE;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAgK9C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,yBAAyB,IAEvE,GAAG;IACF,GAAG,EAAE;QAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACtD,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC;CAClD,EACD,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,mCAa1B"}
@@ -44,14 +44,11 @@ export function key0App(opts) {
44
44
  // Fall through to discovery
45
45
  }
46
46
  }
47
- // CASE 1: No planId → Discovery
47
+ // CASE 1: No planId → 400 pointing to GET /discovery
48
48
  if (!planId) {
49
- console.log("[x402-access/hono] → CASE 1: Discovery 402");
50
- const discoveryResponse = buildDiscoveryResponse(opts.config, networkConfig);
51
- const encoded = Buffer.from(JSON.stringify(discoveryResponse)).toString("base64");
52
- c.header("payment-required", encoded);
53
- c.header("www-authenticate", `Payment realm="${opts.config.agentUrl}", accept="exact"`);
54
- return c.json({ ...discoveryResponse, error: "Payment required" }, 402);
49
+ return c.json({
50
+ error: "Please select a plan from the discovery API response to purchase access. Endpoint: GET /discovery",
51
+ }, 400);
55
52
  }
56
53
  // Auto-generate requestId
57
54
  if (!requestId) {
@@ -123,6 +120,10 @@ export function key0App(opts) {
123
120
  console.log(`[x402-access/hono] Request completed in ${Date.now() - startTime}ms`);
124
121
  }
125
122
  });
123
+ app.get("/discovery", (c) => {
124
+ const discoveryResponse = buildDiscoveryResponse(opts.config, networkConfig);
125
+ return c.json({ discoveryResponse });
126
+ });
126
127
  return app;
127
128
  }
128
129
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"hono.js","sourceRoot":"","sources":["../../src/integrations/hono.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hono.js","sourceRoot":"","sources":["../../src/integrations/hono.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,11 @@
1
1
  export type PaymentProtocol = "x402" | "stripe" | "lightning";
2
+ /**
3
+ * A2A AgentSkill with Key0 extensions.
4
+ *
5
+ * Standard A2A fields: id, name, description, tags, examples, inputModes, outputModes, security.
6
+ * Key0 extensions: endpoint, inputSchema, workflow — these provide machine-readable
7
+ * metadata for automated agent clients.
8
+ */
2
9
  export type AgentSkill = {
3
10
  readonly id: string;
4
11
  readonly name: string;
@@ -8,6 +15,15 @@ export type AgentSkill = {
8
15
  readonly inputModes?: readonly string[];
9
16
  readonly outputModes?: readonly string[];
10
17
  readonly security?: Record<string, string[]>;
18
+ /** @key0 Direct endpoint URL and HTTP method for this skill. */
19
+ readonly endpoint?: {
20
+ readonly url: string;
21
+ readonly method: "GET" | "POST";
22
+ };
23
+ /** @key0 JSON Schema for the skill's input parameters. */
24
+ readonly inputSchema?: Record<string, unknown>;
25
+ /** @key0 Step-by-step workflow instructions for automated clients. */
26
+ readonly workflow?: readonly string[];
11
27
  };
12
28
  export type AgentInterface = {
13
29
  readonly url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-card.d.ts","sourceRoot":"","sources":["../../src/types/agent-card.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AAI9D,MAAM,MAAM,UAAU,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE;QACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;QAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;QACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;KAC1C,CAAC;IACF,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACnB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CAC1D,CAAC"}
1
+ {"version":3,"file":"agent-card.d.ts","sourceRoot":"","sources":["../../src/types/agent-card.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAC9E,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE;QACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;QAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;QACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;KAC1C,CAAC;IACF,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACnB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CAC1D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@key0ai/key0",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -69,6 +69,7 @@
69
69
  "fastify": "^5.0.0",
70
70
  "hono": "^4.6.0",
71
71
  "ioredis": "^5.0.0",
72
+ "mintlify": "^3.0.98",
72
73
  "postgres": "^3.4.8",
73
74
  "typescript": "^5.7.0"
74
75
  }
@@ -158,7 +158,7 @@ describe("E2E: Full Key0 lifecycle (x402 Extension)", () => {
158
158
  // Agent card check — two A2A spec-compliant skills
159
159
  expect(agentCard.name).toBe("E2E Test Agent");
160
160
  expect(agentCard.skills).toHaveLength(2);
161
- expect(agentCard.skills[0]!.id).toBe("discover-products");
161
+ expect(agentCard.skills[0]!.id).toBe("discover-plans");
162
162
  expect(agentCard.skills[1]!.id).toBe("request-access");
163
163
 
164
164
  // Skills should NOT have pricing (A2A spec compliance)
@@ -62,26 +62,25 @@ describe("buildAgentCard", () => {
62
62
  test("has two A2A spec-compliant skills", () => {
63
63
  const card = buildAgentCard(makeConfig());
64
64
  expect(card.skills).toHaveLength(2);
65
- expect(card.skills[0]!.id).toBe("discover-products");
65
+ expect(card.skills[0]!.id).toBe("discover-plans");
66
66
  expect(card.skills[1]!.id).toBe("request-access");
67
67
  });
68
68
 
69
- test("discover-products skill has correct structure", () => {
69
+ test("discover-plans skill has correct structure", () => {
70
70
  const card = buildAgentCard(makeConfig());
71
71
  const skill = card.skills[0]!;
72
72
 
73
- expect(skill.id).toBe("discover-products");
74
- expect(skill.name).toBe("Discover Products");
75
- expect(skill.description).toContain("Browse available products");
76
- expect(skill.description).toContain("/x402/access");
73
+ expect(skill.id).toBe("discover-plans");
74
+ expect(skill.name).toBe("Discover Plans");
75
+ expect(skill.description).toContain("Browse available");
76
+ expect(skill.description).toContain("/discovery");
77
77
  expect(skill.tags).toContain("discovery");
78
78
  expect(skill.tags).toContain("catalog");
79
79
  expect(skill.examples).toBeDefined();
80
80
  expect(skill.examples!.length).toBeGreaterThan(0);
81
81
 
82
- // A2A spec: skills should NOT have pricing, inputSchema, outputSchema, url
82
+ // A2A spec: skills should NOT have pricing, outputSchema, url
83
83
  expect((skill as any).pricing).toBeUndefined();
84
- expect((skill as any).inputSchema).toBeUndefined();
85
84
  expect((skill as any).outputSchema).toBeUndefined();
86
85
  expect((skill as any).url).toBeUndefined();
87
86
  });
@@ -100,9 +99,13 @@ describe("buildAgentCard", () => {
100
99
  expect(skill.examples).toBeDefined();
101
100
  expect(skill.examples!.length).toBeGreaterThan(0);
102
101
 
103
- // A2A spec: skills should NOT have pricing, inputSchema, outputSchema, url
102
+ // inputSchema is present for machine-readable validation
103
+ expect((skill as any).inputSchema).toBeDefined();
104
+ expect((skill as any).inputSchema.required).toContain("planId");
105
+ expect((skill as any).inputSchema.required).toContain("requestId");
106
+
107
+ // A2A spec: skills should NOT have pricing, outputSchema, url
104
108
  expect((skill as any).pricing).toBeUndefined();
105
- expect((skill as any).inputSchema).toBeUndefined();
106
109
  expect((skill as any).outputSchema).toBeUndefined();
107
110
  expect((skill as any).url).toBeUndefined();
108
111
  });
@@ -113,7 +116,7 @@ describe("buildAgentCard", () => {
113
116
  const discoverSkill = card.skills[0]!;
114
117
  expect(discoverSkill.examples).toBeDefined();
115
118
  expect(discoverSkill.examples!.length).toBeGreaterThan(0);
116
- expect(discoverSkill.examples!.some((ex) => ex.includes("/x402/access"))).toBe(true);
119
+ expect(discoverSkill.examples!.some((ex) => ex.includes("/discovery"))).toBe(true);
117
120
 
118
121
  const requestSkill = card.skills[1]!;
119
122
  expect(requestSkill.examples).toBeDefined();
@@ -150,7 +153,7 @@ describe("buildAgentCard", () => {
150
153
 
151
154
  // Still just two skills regardless of tier count
152
155
  expect(card.skills).toHaveLength(2);
153
- expect(card.skills[0]!.id).toBe("discover-products");
156
+ expect(card.skills[0]!.id).toBe("discover-plans");
154
157
  expect(card.skills[1]!.id).toBe("request-access");
155
158
  });
156
159
 
@@ -8,30 +8,30 @@ export function buildAgentCard(config: SellerConfig): AgentCard {
8
8
 
9
9
  const baseUrl = config.agentUrl.replace(/\/$/, "");
10
10
 
11
- // Two A2A spec-compliant skills (no pricing, no inputSchema, no outputSchema, no url)
11
+ const planIds = config.plans.map((p) => p.planId);
12
+
13
+ // Two A2A spec-compliant skills
12
14
  // Skill 1: Discovery (free) — browse the product catalog
13
15
  // Skill 2: Purchase (x402-gated) — buy an access token
14
16
  const skills: AgentSkill[] = [
15
17
  {
16
- id: "discover-products",
17
- name: "Discover Products",
18
+ id: "discover-plans",
19
+ name: "Discover Plans",
18
20
  description: [
19
- `Browse available products and pricing for ${config.agentName}.`,
21
+ `Browse available plans and pricing for ${config.agentName}.`,
20
22
  `Returns the product catalog with plan IDs, prices (USDC on ${networkName}), wallet address, and chain ID.`,
21
- `POST to ${baseUrl}/x402/access with an empty body or without planId to discover products.`,
23
+ `GET to ${baseUrl}/discovery to discover plans.`,
22
24
  ].join(" "),
23
25
  tags: ["discovery", "catalog", "x402"],
24
- examples: [
25
- `POST ${baseUrl}/x402/access with empty body {}`,
26
- `Or call without planId to get 402 response with product catalog`,
27
- ],
26
+ examples: [`GET ${baseUrl}/discovery`],
27
+ endpoint: { url: `${baseUrl}/discovery`, method: "GET" },
28
28
  },
29
29
  {
30
30
  id: "request-access",
31
31
  name: "Request Access",
32
32
  description: [
33
33
  `Purchase access to a ${config.agentName} product plan via x402 payment on ${networkName}.`,
34
- `First call discover-products to get available plans.`,
34
+ `First call discover-plans to get available plans.`,
35
35
  `Then POST to ${baseUrl}/x402/access with planId and requestId to initiate purchase.`,
36
36
  `Server responds with x402 payment challenge.`,
37
37
  `Complete payment on-chain and include PAYMENT-SIGNATURE header to receive access token.`,
@@ -43,6 +43,22 @@ export function buildAgentCard(config: SellerConfig): AgentCard {
43
43
  `Pay USDC on-chain, retry same request with PAYMENT-SIGNATURE header`,
44
44
  `Receive 200 with access token`,
45
45
  ],
46
+ endpoint: { url: `${baseUrl}/x402/access`, method: "POST" },
47
+ inputSchema: {
48
+ type: "object",
49
+ required: ["planId", "requestId"],
50
+ properties: {
51
+ planId: { type: "string", enum: planIds },
52
+ requestId: { type: "string", format: "uuid" },
53
+ },
54
+ },
55
+ workflow: [
56
+ "POST body with planId + requestId to endpoint.url — expect 402",
57
+ "Extract payment requirements from 402 response body",
58
+ `Sign and broadcast USDC transfer on ${networkName}`,
59
+ "Retry same POST with PAYMENT-SIGNATURE header containing the transaction hash",
60
+ "Receive 200 with accessToken",
61
+ ],
46
62
  },
47
63
  ];
48
64
 
package/src/core/index.ts CHANGED
@@ -12,7 +12,7 @@ export { ChallengeEngine } from "./challenge-engine.js";
12
12
  export { validateSellerConfig } from "./config-validation.js";
13
13
  export type { RefundConfig, RefundResult } from "./refund.js";
14
14
  // Refund Utility
15
- export { processRefunds } from "./refund.js";
15
+ export { processRefunds, retryFailedRefunds } from "./refund.js";
16
16
  export type { PostgresStoreConfig } from "./storage/postgres.js";
17
17
  // Storage — Postgres
18
18
  export {
@@ -89,31 +89,11 @@ export function key0Router(opts: Key0Config): Router {
89
89
  }
90
90
  }
91
91
 
92
- // ===== CASE 1: No planId → Discovery (402 with all tiers, no PENDING record) =====
92
+ // ===== CASE 1: No planId → 400 pointing to GET /discovery =====
93
93
  if (!planId) {
94
- console.log("[x402-access] → CASE 1: No planId provided, returning discovery 402");
95
-
96
- const discoveryResponse = buildDiscoveryResponse(opts.config, networkConfig);
97
- console.log(
98
- "[x402-access] Discovery response:",
99
- JSON.stringify(discoveryResponse, null, 2),
100
- );
101
-
102
- // Encode as base64 for PAYMENT-REQUIRED header
103
- const encoded = Buffer.from(JSON.stringify(discoveryResponse)).toString("base64");
104
- res.setHeader("payment-required", encoded);
105
-
106
- // Add www-authenticate header for HTTP spec compliance
107
- const authHeader = `Payment realm="${opts.config.agentUrl}", accept="exact"`;
108
- res.setHeader("www-authenticate", authHeader);
109
-
110
- console.log(`[x402-access] payment-required header set (${encoded.length} bytes)`);
111
- console.log(`[x402-access] www-authenticate header set`);
112
- console.log("[x402-access] → Returning HTTP 402 Payment Required (Discovery)");
113
-
114
- return res.status(402).json({
115
- ...discoveryResponse,
116
- error: "Payment required",
94
+ return res.status(400).json({
95
+ error:
96
+ "Please select a plan from the discovery API response to purchase access. Endpoint: GET /discovery",
117
97
  });
118
98
  }
119
99
 
@@ -292,6 +272,11 @@ export function key0Router(opts: Key0Config): Router {
292
272
  jsonRpcHandler({ requestHandler, userBuilder: UserBuilder.noAuthentication }),
293
273
  );
294
274
 
275
+ router.get("/discovery", (_req: Request, res: Response) => {
276
+ const discoveryResponse = buildDiscoveryResponse(opts.config, networkConfig);
277
+ return res.status(200).json({ discoveryResponse });
278
+ });
279
+
295
280
  // MCP routes (when mcp: true)
296
281
  if (opts.config.mcp) {
297
282
  mountMcpRoutes(router, engine, opts.config);
@@ -63,16 +63,12 @@ export async function key0Plugin(fastify: FastifyInstance, opts: Key0Config): Pr
63
63
  }
64
64
  }
65
65
 
66
- // CASE 1: No planId → Discovery
66
+ // CASE 1: No planId → 400 pointing to GET /discovery
67
67
  if (!planId) {
68
- console.log("[x402-access/fastify] → CASE 1: Discovery 402");
69
- const discoveryResponse = buildDiscoveryResponse(opts.config, networkConfig);
70
- const encoded = Buffer.from(JSON.stringify(discoveryResponse)).toString("base64");
71
-
72
- reply.header("payment-required", encoded);
73
- reply.header("www-authenticate", `Payment realm="${opts.config.agentUrl}", accept="exact"`);
74
-
75
- return reply.code(402).send({ ...discoveryResponse, error: "Payment required" });
68
+ return reply.code(400).send({
69
+ error:
70
+ "Please select a plan from the discovery API response to purchase access. Endpoint: GET /discovery",
71
+ });
76
72
  }
77
73
 
78
74
  // Auto-generate requestId
@@ -176,6 +172,11 @@ export async function key0Plugin(fastify: FastifyInstance, opts: Key0Config): Pr
176
172
  console.log(`[x402-access/fastify] Request completed in ${Date.now() - startTime}ms`);
177
173
  }
178
174
  });
175
+
176
+ fastify.get("/discovery", async (_request: FastifyRequest, reply: FastifyReply) => {
177
+ const discoveryResponse = buildDiscoveryResponse(opts.config, networkConfig);
178
+ return reply.send({ discoveryResponse });
179
+ });
179
180
  }
180
181
 
181
182
  /**
@@ -62,16 +62,15 @@ export function key0App(opts: Key0Config): Hono {
62
62
  }
63
63
  }
64
64
 
65
- // CASE 1: No planId → Discovery
65
+ // CASE 1: No planId → 400 pointing to GET /discovery
66
66
  if (!planId) {
67
- console.log("[x402-access/hono] → CASE 1: Discovery 402");
68
- const discoveryResponse = buildDiscoveryResponse(opts.config, networkConfig);
69
- const encoded = Buffer.from(JSON.stringify(discoveryResponse)).toString("base64");
70
-
71
- c.header("payment-required", encoded);
72
- c.header("www-authenticate", `Payment realm="${opts.config.agentUrl}", accept="exact"`);
73
-
74
- return c.json({ ...discoveryResponse, error: "Payment required" }, 402);
67
+ return c.json(
68
+ {
69
+ error:
70
+ "Please select a plan from the discovery API response to purchase access. Endpoint: GET /discovery",
71
+ },
72
+ 400,
73
+ );
75
74
  }
76
75
 
77
76
  // Auto-generate requestId
@@ -177,6 +176,11 @@ export function key0App(opts: Key0Config): Hono {
177
176
  }
178
177
  });
179
178
 
179
+ app.get("/discovery", (c) => {
180
+ const discoveryResponse = buildDiscoveryResponse(opts.config, networkConfig);
181
+ return c.json({ discoveryResponse });
182
+ });
183
+
180
184
  return app;
181
185
  }
182
186
 
@@ -1,7 +1,12 @@
1
1
  export type PaymentProtocol = "x402" | "stripe" | "lightning";
2
2
 
3
- // A2A spec-compliant AgentSkill type
4
- // See: https://a2a-protocol.org/latest/specification/#44-agent-discovery-objects
3
+ /**
4
+ * A2A AgentSkill with Key0 extensions.
5
+ *
6
+ * Standard A2A fields: id, name, description, tags, examples, inputModes, outputModes, security.
7
+ * Key0 extensions: endpoint, inputSchema, workflow — these provide machine-readable
8
+ * metadata for automated agent clients.
9
+ */
5
10
  export type AgentSkill = {
6
11
  readonly id: string;
7
12
  readonly name: string;
@@ -11,6 +16,12 @@ export type AgentSkill = {
11
16
  readonly inputModes?: readonly string[];
12
17
  readonly outputModes?: readonly string[];
13
18
  readonly security?: Record<string, string[]>;
19
+ /** @key0 Direct endpoint URL and HTTP method for this skill. */
20
+ readonly endpoint?: { readonly url: string; readonly method: "GET" | "POST" };
21
+ /** @key0 JSON Schema for the skill's input parameters. */
22
+ readonly inputSchema?: Record<string, unknown>;
23
+ /** @key0 Step-by-step workflow instructions for automated clients. */
24
+ readonly workflow?: readonly string[];
14
25
  };
15
26
 
16
27
  export type AgentInterface = {
@@ -83,7 +83,7 @@ export type SellerConfig = {
83
83
  readonly mcp?: boolean | undefined;
84
84
 
85
85
  // Customization
86
- readonly basePath?: string; // defaults to "/a2a"
86
+ readonly basePath?: string; // defaults to "/agent"
87
87
  readonly resourceEndpointTemplate?: string; // e.g. "https://api.example.com/photos/{resourceId}"
88
88
 
89
89
  // Settlement strategy (optional — defaults to facilitatorUrl mode)