thebuyside-x402-agent 0.2.0 → 0.3.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/dist/gateway.d.ts +2 -0
- package/dist/gateway.d.ts.map +1 -1
- package/dist/gateway.js +2 -0
- package/dist/gateway.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/policy/confirm.d.ts +7 -0
- package/dist/policy/confirm.d.ts.map +1 -1
- package/dist/policy/confirm.js +38 -2
- package/dist/policy/confirm.js.map +1 -1
- package/dist/registry/federation.d.ts +99 -0
- package/dist/registry/federation.d.ts.map +1 -0
- package/dist/registry/federation.js +421 -0
- package/dist/registry/federation.js.map +1 -0
- package/dist/registry/types.d.ts +7 -0
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/tools/discover.d.ts +10 -4
- package/dist/tools/discover.d.ts.map +1 -1
- package/dist/tools/discover.js +59 -9
- package/dist/tools/discover.js.map +1 -1
- package/dist/tools/fetch.d.ts.map +1 -1
- package/dist/tools/fetch.js +1 -0
- package/dist/tools/fetch.js.map +1 -1
- package/dist/x402/client.d.ts.map +1 -1
- package/dist/x402/client.js +9 -1
- package/dist/x402/client.js.map +1 -1
- package/dist/x402/types.d.ts +12 -0
- package/dist/x402/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/gateway.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { Allowlist } from './policy/allowlist.js';
|
|
|
11
11
|
import { CapPolicy } from './policy/caps.js';
|
|
12
12
|
import { ConfirmPolicy } from './policy/confirm.js';
|
|
13
13
|
import { Receipts } from './policy/receipts.js';
|
|
14
|
+
import { Federation } from './registry/federation.js';
|
|
14
15
|
import { Registry } from './registry/lookup.js';
|
|
15
16
|
import type { Signer } from './signer/signer.js';
|
|
16
17
|
export type Gateway = {
|
|
@@ -21,6 +22,7 @@ export type Gateway = {
|
|
|
21
22
|
caps: CapPolicy;
|
|
22
23
|
confirm: ConfirmPolicy;
|
|
23
24
|
registry: Registry;
|
|
25
|
+
federation: Federation;
|
|
24
26
|
};
|
|
25
27
|
export declare function buildGateway(config: Config): Promise<Gateway>;
|
|
26
28
|
//# sourceMappingURL=gateway.d.ts.map
|
package/dist/gateway.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAcnE"}
|
package/dist/gateway.js
CHANGED
|
@@ -10,6 +10,7 @@ import { Allowlist } from './policy/allowlist.js';
|
|
|
10
10
|
import { CapPolicy } from './policy/caps.js';
|
|
11
11
|
import { ConfirmPolicy } from './policy/confirm.js';
|
|
12
12
|
import { Receipts } from './policy/receipts.js';
|
|
13
|
+
import { Federation } from './registry/federation.js';
|
|
13
14
|
import { Registry } from './registry/lookup.js';
|
|
14
15
|
import { EnvKeySigner } from './signer/env-key.js';
|
|
15
16
|
export async function buildGateway(config) {
|
|
@@ -23,6 +24,7 @@ export async function buildGateway(config) {
|
|
|
23
24
|
caps: CapPolicy.fromEnv(receipts),
|
|
24
25
|
confirm: ConfirmPolicy.fromEnv(),
|
|
25
26
|
registry,
|
|
27
|
+
federation: Federation.fromEnv(),
|
|
26
28
|
};
|
|
27
29
|
}
|
|
28
30
|
//# sourceMappingURL=gateway.js.map
|
package/dist/gateway.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAcnD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAC/C,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEvC,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI;QAChF,MAAM,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC;QAC/B,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QAChE,QAAQ;QACR,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;QACjC,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE;QAChC,QAAQ;QACR,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE;KACjC,CAAC;AACJ,CAAC"}
|
package/dist/index.js
CHANGED
|
File without changes
|
package/dist/policy/confirm.d.ts
CHANGED
|
@@ -38,6 +38,13 @@ export type ConfirmAskArgs = {
|
|
|
38
38
|
url: string;
|
|
39
39
|
todaySpentAtomic: bigint;
|
|
40
40
|
dailyCapAtomic: bigint;
|
|
41
|
+
/**
|
|
42
|
+
* Optional `extensions.*` metadata from the 402 challenge. When the seller
|
|
43
|
+
* (or an index like CDP Bazaar) embeds listing metadata in the challenge,
|
|
44
|
+
* we surface a short summary in the prompt so the user has a trust signal
|
|
45
|
+
* beyond the bare URL.
|
|
46
|
+
*/
|
|
47
|
+
extensions?: Record<string, unknown>;
|
|
41
48
|
};
|
|
42
49
|
export declare class ConfirmPolicy {
|
|
43
50
|
readonly config: ConfirmConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirm.d.ts","sourceRoot":"","sources":["../../src/policy/confirm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,WAAgC,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"confirm.d.ts","sourceRoot":"","sources":["../../src/policy/confirm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,WAAgC,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF,qBAAa,aAAa;aAGI,MAAM,EAAE,aAAa;IAFjD,OAAO,CAAC,mBAAmB,CAAS;gBAER,MAAM,EAAE,aAAa;IAEjD,MAAM,CAAC,OAAO,IAAI,aAAa;IAqB/B,mEAAmE;IACnE,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAW5C;;;;;OAKG;IACG,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;CAyD7E"}
|
package/dist/policy/confirm.js
CHANGED
|
@@ -121,11 +121,47 @@ function formatPrompt(args) {
|
|
|
121
121
|
return args.url;
|
|
122
122
|
}
|
|
123
123
|
})();
|
|
124
|
-
|
|
124
|
+
const lines = [
|
|
125
125
|
`Confirm payment to ${args.host}`,
|
|
126
126
|
` Amount: $${formatUsdcAtomic(args.amountAtomic)} USDC (Base mainnet)`,
|
|
127
127
|
` Resource: ${args.method} ${path}`,
|
|
128
128
|
` Today: $${formatUsdcAtomic(args.todaySpentAtomic)} of $${formatUsdcAtomic(args.dailyCapAtomic)} daily cap`,
|
|
129
|
-
]
|
|
129
|
+
];
|
|
130
|
+
const meta = formatExtensions(args.extensions);
|
|
131
|
+
if (meta)
|
|
132
|
+
lines.push(meta);
|
|
133
|
+
return lines.join('\n');
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Render `extensions.*` metadata for the prompt. Currently knows the
|
|
137
|
+
* `bazaar` namespace (CDP Bazaar listings); other namespaces fall through
|
|
138
|
+
* to a generic key-list. Returns null when there's nothing useful to show.
|
|
139
|
+
*
|
|
140
|
+
* Only surfaces string/number values to keep the prompt readable and
|
|
141
|
+
* resistant to nested-object spam from a hostile seller.
|
|
142
|
+
*/
|
|
143
|
+
function formatExtensions(extensions) {
|
|
144
|
+
if (!extensions || Object.keys(extensions).length === 0)
|
|
145
|
+
return null;
|
|
146
|
+
const bazaar = extensions.bazaar;
|
|
147
|
+
if (bazaar && typeof bazaar === 'object') {
|
|
148
|
+
const b = bazaar;
|
|
149
|
+
const parts = [];
|
|
150
|
+
if (typeof b.name === 'string')
|
|
151
|
+
parts.push(b.name);
|
|
152
|
+
if (typeof b.category === 'string')
|
|
153
|
+
parts.push(`category: ${b.category}`);
|
|
154
|
+
if (typeof b.listingId === 'string')
|
|
155
|
+
parts.push(`listing: ${b.listingId}`);
|
|
156
|
+
if (parts.length > 0)
|
|
157
|
+
return ` Bazaar: ${parts.join(' • ')}`;
|
|
158
|
+
}
|
|
159
|
+
const flat = Object.entries(extensions)
|
|
160
|
+
.filter(([, v]) => typeof v === 'string' || typeof v === 'number')
|
|
161
|
+
.slice(0, 3)
|
|
162
|
+
.map(([k, v]) => `${k}=${v}`);
|
|
163
|
+
if (flat.length === 0)
|
|
164
|
+
return null;
|
|
165
|
+
return ` Meta: ${flat.join(', ')}`;
|
|
130
166
|
}
|
|
131
167
|
//# sourceMappingURL=confirm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../src/policy/confirm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAY/D,MAAM,CAAC,MAAM,oBAAoB,GAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../src/policy/confirm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Federation — query external x402 indexes (CDP Bazaar, agentic.market,
|
|
3
|
+
* x402watch) in parallel and merge results into the local seed.json corpus.
|
|
4
|
+
*
|
|
5
|
+
* Why federate at runtime: the x402 ecosystem is growing faster than a
|
|
6
|
+
* hand-curated `seed.json` can keep up with. External indexes already
|
|
7
|
+
* crawl/list thousands of endpoints. We let the user opt in to live
|
|
8
|
+
* federation and tag every returned entry with its `source` so the agent
|
|
9
|
+
* (and the user, via the discover output) can weigh trust accordingly.
|
|
10
|
+
*
|
|
11
|
+
* Robustness: every external source is wrapped in a per-source timeout +
|
|
12
|
+
* try/catch. A slow, broken, or 404-ing source produces zero entries and
|
|
13
|
+
* a logged warning — never a thrown error and never a blocked discover
|
|
14
|
+
* call. If all three sources are down the user still gets seed.json hits.
|
|
15
|
+
*
|
|
16
|
+
* URL defaults below were verified against live endpoints on 2026-05-10.
|
|
17
|
+
* They can be overridden per-source via `X402_BAZAAR_URL` /
|
|
18
|
+
* `X402_AGENTIC_URL` / `X402_X402WATCH_URL`. A source with an unset URL
|
|
19
|
+
* is silently disabled.
|
|
20
|
+
*/
|
|
21
|
+
import type { RegistryEntry } from './types.js';
|
|
22
|
+
export type ExternalSourceId = 'cdp-bazaar' | 'agentic-market' | 'x402watch';
|
|
23
|
+
export type FetchContext = {
|
|
24
|
+
signal: AbortSignal;
|
|
25
|
+
fetchFn: typeof fetch;
|
|
26
|
+
};
|
|
27
|
+
export interface ExternalSource {
|
|
28
|
+
id: ExternalSourceId;
|
|
29
|
+
name: string;
|
|
30
|
+
fetch(query: string, ctx: FetchContext): Promise<RegistryEntry[]>;
|
|
31
|
+
}
|
|
32
|
+
export type FederationConfig = {
|
|
33
|
+
enabled: boolean;
|
|
34
|
+
timeoutMs: number;
|
|
35
|
+
sources: ExternalSource[];
|
|
36
|
+
};
|
|
37
|
+
export declare class Federation {
|
|
38
|
+
readonly config: FederationConfig;
|
|
39
|
+
constructor(config: FederationConfig);
|
|
40
|
+
static fromEnv(): Federation;
|
|
41
|
+
/**
|
|
42
|
+
* Fan out to every enabled source in parallel. Always resolves —
|
|
43
|
+
* individual source failures are logged + swallowed. Returns entries
|
|
44
|
+
* tagged with their `source` field.
|
|
45
|
+
*/
|
|
46
|
+
search(query: string, opts?: {
|
|
47
|
+
fetchFn?: typeof fetch;
|
|
48
|
+
}): Promise<RegistryEntry[]>;
|
|
49
|
+
private runSource;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* CDP Bazaar — Coinbase's semantic-search index. Verified shape (2026-05-10):
|
|
53
|
+
* GET /platform/v2/x402/discovery/search?query=...&limit=20
|
|
54
|
+
* → { partialResults, resources: [{
|
|
55
|
+
* resource: "https://...", // endpoint URL
|
|
56
|
+
* description: "...",
|
|
57
|
+
* accepts: [{
|
|
58
|
+
* scheme, network, asset, payTo,
|
|
59
|
+
* amount | maxAmountRequired, // both shapes seen in the wild
|
|
60
|
+
* extra: { name, version },
|
|
61
|
+
* ...
|
|
62
|
+
* }],
|
|
63
|
+
* lastUpdated: "...",
|
|
64
|
+
* extensions: { ... }
|
|
65
|
+
* }] }
|
|
66
|
+
*/
|
|
67
|
+
export declare function makeCdpBazaarSource(baseUrl: string): ExternalSource;
|
|
68
|
+
/**
|
|
69
|
+
* agentic.market — third-party x402 marketplace. Verified shape (2026-05-10):
|
|
70
|
+
* GET /v1/services/search?q=...
|
|
71
|
+
* → { services: [{
|
|
72
|
+
* id, name, description, category,
|
|
73
|
+
* networks: ["Base", "Solana", ...],
|
|
74
|
+
* endpoints: [{
|
|
75
|
+
* url, method, description,
|
|
76
|
+
* pricing: { amount, currency, network, scheme }
|
|
77
|
+
* }]
|
|
78
|
+
* }] }
|
|
79
|
+
*
|
|
80
|
+
* One service can expose multiple endpoints; we flatten to one
|
|
81
|
+
* RegistryEntry per (service, endpoint) pair.
|
|
82
|
+
*/
|
|
83
|
+
export declare function makeAgenticMarketSource(baseUrl: string): ExternalSource;
|
|
84
|
+
/**
|
|
85
|
+
* x402watch — wash-filtered intelligence published as daily CC0 snapshots
|
|
86
|
+
* on GitHub. Not a live API: each call fetches a ~2MB gzipped JSON file
|
|
87
|
+
* (today's snapshot) and filters client-side. Cached in-process by date
|
|
88
|
+
* so we hit GitHub at most once per UTC day per process lifetime.
|
|
89
|
+
*
|
|
90
|
+
* Snapshot shape (verified 2026-05-10):
|
|
91
|
+
* { snapshot_date, schema_version, service_count, services: [{
|
|
92
|
+
* id, chain, resource_url, name, description, category,
|
|
93
|
+
* price_amount, // float USDC, NOT atomic
|
|
94
|
+
* organic_traffic_pct,
|
|
95
|
+
* suspected_wash_pct
|
|
96
|
+
* }] }
|
|
97
|
+
*/
|
|
98
|
+
export declare function makeX402WatchSource(baseUrl: string): ExternalSource;
|
|
99
|
+
//# sourceMappingURL=federation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/registry/federation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAE7E,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,KAAK,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,gBAAgB,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CACnE;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B,CAAC;AAIF,qBAAa,UAAU;aACO,MAAM,EAAE,gBAAgB;gBAAxB,MAAM,EAAE,gBAAgB;IAEpD,MAAM,CAAC,OAAO,IAAI,UAAU;IAqB5B;;;;OAIG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;KAAO,GACpC,OAAO,CAAC,aAAa,EAAE,CAAC;YAUb,SAAS;CAoBxB;AA4BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAgBnE;AA4CD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAcvE;AAmDD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAsCnE"}
|
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Federation — query external x402 indexes (CDP Bazaar, agentic.market,
|
|
3
|
+
* x402watch) in parallel and merge results into the local seed.json corpus.
|
|
4
|
+
*
|
|
5
|
+
* Why federate at runtime: the x402 ecosystem is growing faster than a
|
|
6
|
+
* hand-curated `seed.json` can keep up with. External indexes already
|
|
7
|
+
* crawl/list thousands of endpoints. We let the user opt in to live
|
|
8
|
+
* federation and tag every returned entry with its `source` so the agent
|
|
9
|
+
* (and the user, via the discover output) can weigh trust accordingly.
|
|
10
|
+
*
|
|
11
|
+
* Robustness: every external source is wrapped in a per-source timeout +
|
|
12
|
+
* try/catch. A slow, broken, or 404-ing source produces zero entries and
|
|
13
|
+
* a logged warning — never a thrown error and never a blocked discover
|
|
14
|
+
* call. If all three sources are down the user still gets seed.json hits.
|
|
15
|
+
*
|
|
16
|
+
* URL defaults below were verified against live endpoints on 2026-05-10.
|
|
17
|
+
* They can be overridden per-source via `X402_BAZAAR_URL` /
|
|
18
|
+
* `X402_AGENTIC_URL` / `X402_X402WATCH_URL`. A source with an unset URL
|
|
19
|
+
* is silently disabled.
|
|
20
|
+
*/
|
|
21
|
+
import { gunzipSync } from 'node:zlib';
|
|
22
|
+
import { logger } from '../log.js';
|
|
23
|
+
const DEFAULT_TIMEOUT_MS = 1500;
|
|
24
|
+
export class Federation {
|
|
25
|
+
config;
|
|
26
|
+
constructor(config) {
|
|
27
|
+
this.config = config;
|
|
28
|
+
}
|
|
29
|
+
static fromEnv() {
|
|
30
|
+
const enabled = (process.env.X402_FEDERATION ?? 'on').toLowerCase() !== 'off';
|
|
31
|
+
const timeoutMs = parseTimeout(process.env.X402_FEDERATION_TIMEOUT_MS);
|
|
32
|
+
const sources = [];
|
|
33
|
+
if (process.env.X402_DISABLE_BAZAAR !== '1') {
|
|
34
|
+
const url = process.env.X402_BAZAAR_URL ?? DEFAULT_BAZAAR_URL;
|
|
35
|
+
if (url)
|
|
36
|
+
sources.push(makeCdpBazaarSource(url));
|
|
37
|
+
}
|
|
38
|
+
if (process.env.X402_DISABLE_AGENTIC !== '1') {
|
|
39
|
+
const url = process.env.X402_AGENTIC_URL ?? DEFAULT_AGENTIC_URL;
|
|
40
|
+
if (url)
|
|
41
|
+
sources.push(makeAgenticMarketSource(url));
|
|
42
|
+
}
|
|
43
|
+
if (process.env.X402_DISABLE_X402WATCH !== '1') {
|
|
44
|
+
const url = process.env.X402_X402WATCH_URL ?? DEFAULT_X402WATCH_URL;
|
|
45
|
+
if (url)
|
|
46
|
+
sources.push(makeX402WatchSource(url));
|
|
47
|
+
}
|
|
48
|
+
return new Federation({ enabled, timeoutMs, sources });
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Fan out to every enabled source in parallel. Always resolves —
|
|
52
|
+
* individual source failures are logged + swallowed. Returns entries
|
|
53
|
+
* tagged with their `source` field.
|
|
54
|
+
*/
|
|
55
|
+
async search(query, opts = {}) {
|
|
56
|
+
if (!this.config.enabled || this.config.sources.length === 0)
|
|
57
|
+
return [];
|
|
58
|
+
const fetchFn = opts.fetchFn ?? fetch;
|
|
59
|
+
const results = await Promise.all(this.config.sources.map((source) => this.runSource(source, query, fetchFn)));
|
|
60
|
+
return results.flat();
|
|
61
|
+
}
|
|
62
|
+
async runSource(source, query, fetchFn) {
|
|
63
|
+
const ctrl = new AbortController();
|
|
64
|
+
const timer = setTimeout(() => ctrl.abort(), this.config.timeoutMs);
|
|
65
|
+
try {
|
|
66
|
+
const entries = await source.fetch(query, { signal: ctrl.signal, fetchFn });
|
|
67
|
+
return entries.map((e) => ({ ...e, source: e.source ?? source.id }));
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
logger.warn('federation source failed', {
|
|
71
|
+
source: source.id,
|
|
72
|
+
err: err instanceof Error ? err.message : String(err),
|
|
73
|
+
});
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
clearTimeout(timer);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function parseTimeout(raw) {
|
|
82
|
+
if (!raw)
|
|
83
|
+
return DEFAULT_TIMEOUT_MS;
|
|
84
|
+
const n = Number(raw);
|
|
85
|
+
if (!Number.isFinite(n) || n <= 0)
|
|
86
|
+
return DEFAULT_TIMEOUT_MS;
|
|
87
|
+
return Math.floor(n);
|
|
88
|
+
}
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
// Source adapters.
|
|
91
|
+
//
|
|
92
|
+
// URL defaults verified against live endpoints on 2026-05-10. Each adapter
|
|
93
|
+
// degrades gracefully on shape changes (returns [] rather than throwing);
|
|
94
|
+
// the orchestrator's try/catch is the final safety net.
|
|
95
|
+
// ---------------------------------------------------------------------------
|
|
96
|
+
const DEFAULT_BAZAAR_URL = 'https://api.cdp.coinbase.com/platform/v2/x402/discovery/search';
|
|
97
|
+
const DEFAULT_AGENTIC_URL = 'https://api.agentic.market/v1/services/search';
|
|
98
|
+
/**
|
|
99
|
+
* x402watch publishes daily snapshots to GitHub under CC0. The `{date}`
|
|
100
|
+
* placeholder is replaced with today's UTC date at fetch time, with a
|
|
101
|
+
* one-day fallback if today's snapshot hasn't been published yet.
|
|
102
|
+
*/
|
|
103
|
+
const DEFAULT_X402WATCH_URL = 'https://raw.githubusercontent.com/printmoneylab/x402watch-data/main/data/services-{date}.json.gz';
|
|
104
|
+
/**
|
|
105
|
+
* CDP Bazaar — Coinbase's semantic-search index. Verified shape (2026-05-10):
|
|
106
|
+
* GET /platform/v2/x402/discovery/search?query=...&limit=20
|
|
107
|
+
* → { partialResults, resources: [{
|
|
108
|
+
* resource: "https://...", // endpoint URL
|
|
109
|
+
* description: "...",
|
|
110
|
+
* accepts: [{
|
|
111
|
+
* scheme, network, asset, payTo,
|
|
112
|
+
* amount | maxAmountRequired, // both shapes seen in the wild
|
|
113
|
+
* extra: { name, version },
|
|
114
|
+
* ...
|
|
115
|
+
* }],
|
|
116
|
+
* lastUpdated: "...",
|
|
117
|
+
* extensions: { ... }
|
|
118
|
+
* }] }
|
|
119
|
+
*/
|
|
120
|
+
export function makeCdpBazaarSource(baseUrl) {
|
|
121
|
+
return {
|
|
122
|
+
id: 'cdp-bazaar',
|
|
123
|
+
name: 'CDP Bazaar',
|
|
124
|
+
async fetch(query, { signal, fetchFn }) {
|
|
125
|
+
const url = appendQuery(baseUrl, { query, limit: '20' });
|
|
126
|
+
const r = await fetchFn(url, { signal });
|
|
127
|
+
if (!r.ok)
|
|
128
|
+
return [];
|
|
129
|
+
const json = await r.json().catch(() => null);
|
|
130
|
+
const list = json?.resources;
|
|
131
|
+
if (!Array.isArray(list))
|
|
132
|
+
return [];
|
|
133
|
+
return list
|
|
134
|
+
.map((item) => bazaarItemToEntry(item))
|
|
135
|
+
.filter((e) => e !== null);
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function bazaarItemToEntry(item) {
|
|
140
|
+
const o = (item ?? {});
|
|
141
|
+
const resource = typeof o.resource === 'string' ? o.resource : null;
|
|
142
|
+
if (!resource)
|
|
143
|
+
return null;
|
|
144
|
+
const accepts = Array.isArray(o.accepts) ? o.accepts : [];
|
|
145
|
+
// Prefer Base; CDP responses commonly carry both Solana and Base options
|
|
146
|
+
// and v0 only signs Base. We still surface the entry if only non-Base
|
|
147
|
+
// options exist — `verified: false` flags it for the user.
|
|
148
|
+
const accept = accepts.find((a) => a.network === 'base' || a.network === 'eip155:8453') ??
|
|
149
|
+
accepts[0];
|
|
150
|
+
if (!accept)
|
|
151
|
+
return null;
|
|
152
|
+
const amountStr = (typeof accept.amount === 'string' && accept.amount) ||
|
|
153
|
+
(typeof accept.maxAmountRequired === 'string' && accept.maxAmountRequired) ||
|
|
154
|
+
'0';
|
|
155
|
+
const atomic = Number(amountStr);
|
|
156
|
+
const network = typeof accept.network === 'string' ? accept.network : '';
|
|
157
|
+
const description = (typeof o.description === 'string' && o.description) ||
|
|
158
|
+
(typeof accept.description === 'string' && accept.description) ||
|
|
159
|
+
'';
|
|
160
|
+
return {
|
|
161
|
+
id: `bazaar-${stableId(resource)}`,
|
|
162
|
+
name: safeHostname(resource) ?? resource,
|
|
163
|
+
description,
|
|
164
|
+
endpoint: resource,
|
|
165
|
+
method: 'GET',
|
|
166
|
+
price_usdc: atomic / 1_000_000,
|
|
167
|
+
price_atomic: atomic,
|
|
168
|
+
chain: shortChain(network),
|
|
169
|
+
network,
|
|
170
|
+
category: 'unknown',
|
|
171
|
+
tags: [],
|
|
172
|
+
verified: false,
|
|
173
|
+
verified_at: '',
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* agentic.market — third-party x402 marketplace. Verified shape (2026-05-10):
|
|
178
|
+
* GET /v1/services/search?q=...
|
|
179
|
+
* → { services: [{
|
|
180
|
+
* id, name, description, category,
|
|
181
|
+
* networks: ["Base", "Solana", ...],
|
|
182
|
+
* endpoints: [{
|
|
183
|
+
* url, method, description,
|
|
184
|
+
* pricing: { amount, currency, network, scheme }
|
|
185
|
+
* }]
|
|
186
|
+
* }] }
|
|
187
|
+
*
|
|
188
|
+
* One service can expose multiple endpoints; we flatten to one
|
|
189
|
+
* RegistryEntry per (service, endpoint) pair.
|
|
190
|
+
*/
|
|
191
|
+
export function makeAgenticMarketSource(baseUrl) {
|
|
192
|
+
return {
|
|
193
|
+
id: 'agentic-market',
|
|
194
|
+
name: 'agentic.market',
|
|
195
|
+
async fetch(query, { signal, fetchFn }) {
|
|
196
|
+
const url = appendQuery(baseUrl, { q: query });
|
|
197
|
+
const r = await fetchFn(url, { signal });
|
|
198
|
+
if (!r.ok)
|
|
199
|
+
return [];
|
|
200
|
+
const json = await r.json().catch(() => null);
|
|
201
|
+
const list = json?.services;
|
|
202
|
+
if (!Array.isArray(list))
|
|
203
|
+
return [];
|
|
204
|
+
return list.flatMap((item) => agenticServiceToEntries(item));
|
|
205
|
+
},
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
function agenticServiceToEntries(service) {
|
|
209
|
+
const s = (service ?? {});
|
|
210
|
+
const endpoints = Array.isArray(s.endpoints)
|
|
211
|
+
? s.endpoints
|
|
212
|
+
: [];
|
|
213
|
+
const serviceName = typeof s.name === 'string' ? s.name : '';
|
|
214
|
+
const serviceCategory = typeof s.category === 'string' ? s.category : 'unknown';
|
|
215
|
+
const networks = Array.isArray(s.networks) ? s.networks : [];
|
|
216
|
+
return endpoints
|
|
217
|
+
.map((ep) => {
|
|
218
|
+
const url = typeof ep.url === 'string' ? ep.url : null;
|
|
219
|
+
if (!url)
|
|
220
|
+
return null;
|
|
221
|
+
const pricing = (ep.pricing ?? {});
|
|
222
|
+
const priceStr = typeof pricing.amount === 'string' ? pricing.amount : '0';
|
|
223
|
+
const price = Number(priceStr);
|
|
224
|
+
const epNetwork = typeof pricing.network === 'string' ? pricing.network : networks[0] ?? 'Base';
|
|
225
|
+
const network = normalizeAgenticNetwork(epNetwork);
|
|
226
|
+
return {
|
|
227
|
+
id: `agentic-${stableId(url)}`,
|
|
228
|
+
name: serviceName ? `${serviceName} — ${safeHostname(url) ?? ''}` : (safeHostname(url) ?? url),
|
|
229
|
+
description: typeof ep.description === 'string' ? ep.description : '',
|
|
230
|
+
endpoint: url,
|
|
231
|
+
method: humanMethod(ep.method),
|
|
232
|
+
price_usdc: Number.isFinite(price) ? price : 0,
|
|
233
|
+
price_atomic: Number.isFinite(price) ? Math.round(price * 1_000_000) : 0,
|
|
234
|
+
chain: shortChain(network),
|
|
235
|
+
network,
|
|
236
|
+
category: serviceCategory,
|
|
237
|
+
tags: [serviceName.toLowerCase()].filter((t) => t.length > 0),
|
|
238
|
+
verified: false,
|
|
239
|
+
verified_at: '',
|
|
240
|
+
};
|
|
241
|
+
})
|
|
242
|
+
.filter((e) => e !== null);
|
|
243
|
+
}
|
|
244
|
+
function normalizeAgenticNetwork(name) {
|
|
245
|
+
const n = name.toLowerCase();
|
|
246
|
+
if (n === 'base')
|
|
247
|
+
return 'eip155:8453';
|
|
248
|
+
if (n === 'base sepolia' || n === 'base-sepolia')
|
|
249
|
+
return 'eip155:84532';
|
|
250
|
+
if (n === 'solana')
|
|
251
|
+
return 'solana';
|
|
252
|
+
if (n === 'polygon')
|
|
253
|
+
return 'eip155:137';
|
|
254
|
+
if (n === 'arbitrum')
|
|
255
|
+
return 'eip155:42161';
|
|
256
|
+
return name;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* x402watch — wash-filtered intelligence published as daily CC0 snapshots
|
|
260
|
+
* on GitHub. Not a live API: each call fetches a ~2MB gzipped JSON file
|
|
261
|
+
* (today's snapshot) and filters client-side. Cached in-process by date
|
|
262
|
+
* so we hit GitHub at most once per UTC day per process lifetime.
|
|
263
|
+
*
|
|
264
|
+
* Snapshot shape (verified 2026-05-10):
|
|
265
|
+
* { snapshot_date, schema_version, service_count, services: [{
|
|
266
|
+
* id, chain, resource_url, name, description, category,
|
|
267
|
+
* price_amount, // float USDC, NOT atomic
|
|
268
|
+
* organic_traffic_pct,
|
|
269
|
+
* suspected_wash_pct
|
|
270
|
+
* }] }
|
|
271
|
+
*/
|
|
272
|
+
export function makeX402WatchSource(baseUrl) {
|
|
273
|
+
const cache = new Map();
|
|
274
|
+
return {
|
|
275
|
+
id: 'x402watch',
|
|
276
|
+
name: 'x402watch',
|
|
277
|
+
async fetch(query, { signal, fetchFn }) {
|
|
278
|
+
const dates = candidateDates();
|
|
279
|
+
let entries = null;
|
|
280
|
+
for (const date of dates) {
|
|
281
|
+
const cached = cache.get(date);
|
|
282
|
+
if (cached) {
|
|
283
|
+
entries = cached;
|
|
284
|
+
break;
|
|
285
|
+
}
|
|
286
|
+
const url = baseUrl.replace('{date}', date);
|
|
287
|
+
const r = await fetchFn(url, { signal });
|
|
288
|
+
if (!r.ok)
|
|
289
|
+
continue;
|
|
290
|
+
const buf = Buffer.from(await r.arrayBuffer());
|
|
291
|
+
let parsed;
|
|
292
|
+
try {
|
|
293
|
+
parsed = JSON.parse(gunzipSync(buf).toString('utf8'));
|
|
294
|
+
}
|
|
295
|
+
catch {
|
|
296
|
+
continue;
|
|
297
|
+
}
|
|
298
|
+
const list = parsed?.services;
|
|
299
|
+
if (!Array.isArray(list))
|
|
300
|
+
continue;
|
|
301
|
+
const mapped = list
|
|
302
|
+
.map((item) => x402watchItemToEntry(item))
|
|
303
|
+
.filter((e) => e !== null);
|
|
304
|
+
cache.set(date, mapped);
|
|
305
|
+
entries = mapped;
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
308
|
+
if (!entries)
|
|
309
|
+
return [];
|
|
310
|
+
return entries.filter((e) => matchesQuery(e, query));
|
|
311
|
+
},
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
function x402watchItemToEntry(item) {
|
|
315
|
+
const o = (item ?? {});
|
|
316
|
+
const endpoint = typeof o.resource_url === 'string' ? o.resource_url : null;
|
|
317
|
+
if (!endpoint)
|
|
318
|
+
return null;
|
|
319
|
+
const price = typeof o.price_amount === 'number' && Number.isFinite(o.price_amount)
|
|
320
|
+
? o.price_amount
|
|
321
|
+
: 0;
|
|
322
|
+
const chain = typeof o.chain === 'string' ? o.chain : '';
|
|
323
|
+
return {
|
|
324
|
+
id: `x402watch-${stableId(endpoint)}`,
|
|
325
|
+
name: (typeof o.name === 'string' && o.name) || safeHostname(endpoint) || endpoint,
|
|
326
|
+
description: typeof o.description === 'string' ? o.description : '',
|
|
327
|
+
endpoint,
|
|
328
|
+
method: 'GET',
|
|
329
|
+
price_usdc: price,
|
|
330
|
+
price_atomic: Math.round(price * 1_000_000),
|
|
331
|
+
chain: shortChain(chain),
|
|
332
|
+
network: chain,
|
|
333
|
+
category: typeof o.category === 'string' ? o.category : 'unknown',
|
|
334
|
+
tags: [],
|
|
335
|
+
verified: false,
|
|
336
|
+
verified_at: '',
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Try today's UTC date first, then yesterday. Snapshots are committed
|
|
341
|
+
* once per UTC day, but the commit lands at an unknown time — early in
|
|
342
|
+
* the UTC day, today's snapshot may not exist yet.
|
|
343
|
+
*/
|
|
344
|
+
function candidateDates(now = new Date()) {
|
|
345
|
+
const today = isoDate(now);
|
|
346
|
+
const yesterday = isoDate(new Date(now.getTime() - 24 * 60 * 60 * 1000));
|
|
347
|
+
return [today, yesterday];
|
|
348
|
+
}
|
|
349
|
+
function isoDate(d) {
|
|
350
|
+
return d.toISOString().slice(0, 10);
|
|
351
|
+
}
|
|
352
|
+
// ---------- shared adapter helpers ----------
|
|
353
|
+
function appendQuery(baseUrl, params) {
|
|
354
|
+
try {
|
|
355
|
+
const u = new URL(baseUrl);
|
|
356
|
+
for (const [k, v] of Object.entries(params)) {
|
|
357
|
+
if (v && v.length > 0)
|
|
358
|
+
u.searchParams.set(k, v);
|
|
359
|
+
}
|
|
360
|
+
return u.toString();
|
|
361
|
+
}
|
|
362
|
+
catch {
|
|
363
|
+
return baseUrl;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
function safeHostname(url) {
|
|
367
|
+
try {
|
|
368
|
+
return new URL(url).hostname;
|
|
369
|
+
}
|
|
370
|
+
catch {
|
|
371
|
+
return null;
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
function humanMethod(raw) {
|
|
375
|
+
if (typeof raw === 'string' && raw.toUpperCase() === 'POST')
|
|
376
|
+
return 'POST';
|
|
377
|
+
return 'GET';
|
|
378
|
+
}
|
|
379
|
+
function shortChain(network) {
|
|
380
|
+
if (network === 'eip155:8453' || network === 'base')
|
|
381
|
+
return 'base';
|
|
382
|
+
if (network === 'eip155:84532' || network === 'base-sepolia')
|
|
383
|
+
return 'base-sepolia';
|
|
384
|
+
if (network.startsWith('solana'))
|
|
385
|
+
return 'solana';
|
|
386
|
+
if (network.startsWith('eip155:137') || network === 'polygon')
|
|
387
|
+
return 'polygon';
|
|
388
|
+
if (network.startsWith('eip155:42161') || network === 'arbitrum')
|
|
389
|
+
return 'arbitrum';
|
|
390
|
+
return network;
|
|
391
|
+
}
|
|
392
|
+
function stableId(url) {
|
|
393
|
+
return url
|
|
394
|
+
.replace(/^https?:\/\//, '')
|
|
395
|
+
.replace(/[^a-z0-9]+/gi, '-')
|
|
396
|
+
.replace(/^-+|-+$/g, '')
|
|
397
|
+
.toLowerCase()
|
|
398
|
+
.slice(0, 64);
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Client-side query filter for sources that don't support server-side
|
|
402
|
+
* search (currently only x402watch, since it's a static daily snapshot).
|
|
403
|
+
*/
|
|
404
|
+
function matchesQuery(entry, query) {
|
|
405
|
+
const terms = query
|
|
406
|
+
.toLowerCase()
|
|
407
|
+
.split(/\s+/)
|
|
408
|
+
.map((t) => t.trim())
|
|
409
|
+
.filter((t) => t.length > 0);
|
|
410
|
+
if (terms.length === 0)
|
|
411
|
+
return true;
|
|
412
|
+
const haystack = (entry.name +
|
|
413
|
+
' ' +
|
|
414
|
+
entry.description +
|
|
415
|
+
' ' +
|
|
416
|
+
entry.tags.join(' ') +
|
|
417
|
+
' ' +
|
|
418
|
+
entry.category).toLowerCase();
|
|
419
|
+
return terms.some((t) => haystack.includes(t));
|
|
420
|
+
}
|
|
421
|
+
//# sourceMappingURL=federation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/registry/federation.ts"],"names":[],"mappings":"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"}
|
package/dist/registry/types.d.ts
CHANGED
|
@@ -35,6 +35,13 @@ export type RegistryEntry = {
|
|
|
35
35
|
verified: boolean;
|
|
36
36
|
/** ISO date (YYYY-MM-DD) of last successful verification. */
|
|
37
37
|
verified_at: string;
|
|
38
|
+
/**
|
|
39
|
+
* Where this entry came from. `verified` for hand-curated `seed.json`,
|
|
40
|
+
* `candidate` for `seed.candidates.json`, or an external-source id for
|
|
41
|
+
* federated entries. Surfaced in `x402.discover` results so the agent
|
|
42
|
+
* (and the user) can weigh trust accordingly.
|
|
43
|
+
*/
|
|
44
|
+
source?: 'verified' | 'candidate' | 'cdp-bazaar' | 'agentic-market' | 'x402watch';
|
|
38
45
|
};
|
|
39
46
|
export type RegistryFile = {
|
|
40
47
|
version: 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/registry/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,aAAa,GAAG;IAC1B,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,gGAAgG;IAChG,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,QAAQ,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/registry/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,aAAa,GAAG;IAC1B,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,gGAAgG;IAChG,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,QAAQ,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,gBAAgB,GAAG,WAAW,CAAC;CACnF,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,CAAC,CAAC;IACX,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B,CAAC"}
|
package/dist/tools/discover.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* x402.discover — search
|
|
2
|
+
* x402.discover — search for x402-priced APIs.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Two corpora are queried in parallel:
|
|
5
|
+
* 1. Local seed.json (curated, verified) via the Registry class.
|
|
6
|
+
* 2. External federated indexes (CDP Bazaar, agentic.market, x402watch)
|
|
7
|
+
* via the Federation class.
|
|
8
|
+
*
|
|
9
|
+
* Results are merged and deduplicated by endpoint URL — local entries win
|
|
10
|
+
* on collision because they're verified. Each returned match carries a
|
|
11
|
+
* `source` field so the agent can weigh trust ('verified' vs an external
|
|
12
|
+
* source id). External federation can be disabled with X402_FEDERATION=off.
|
|
7
13
|
*/
|
|
8
14
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
9
15
|
import type { Gateway } from '../gateway.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/tools/discover.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/tools/discover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAsE1E"}
|
package/dist/tools/discover.js
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* x402.discover — search
|
|
2
|
+
* x402.discover — search for x402-priced APIs.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Two corpora are queried in parallel:
|
|
5
|
+
* 1. Local seed.json (curated, verified) via the Registry class.
|
|
6
|
+
* 2. External federated indexes (CDP Bazaar, agentic.market, x402watch)
|
|
7
|
+
* via the Federation class.
|
|
8
|
+
*
|
|
9
|
+
* Results are merged and deduplicated by endpoint URL — local entries win
|
|
10
|
+
* on collision because they're verified. Each returned match carries a
|
|
11
|
+
* `source` field so the agent can weigh trust ('verified' vs an external
|
|
12
|
+
* source id). External federation can be disabled with X402_FEDERATION=off.
|
|
7
13
|
*/
|
|
8
14
|
import { z } from 'zod';
|
|
9
15
|
import { logger } from '../log.js';
|
|
@@ -11,8 +17,11 @@ export function registerDiscover(server, gateway) {
|
|
|
11
17
|
server.registerTool('x402.discover', {
|
|
12
18
|
title: 'Discover x402-priced APIs',
|
|
13
19
|
description: 'Search the registry of x402-priced APIs by free-text query. ' +
|
|
14
|
-
'
|
|
15
|
-
'
|
|
20
|
+
'Queries the local curated registry plus external indexes (CDP ' +
|
|
21
|
+
'Bazaar, agentic.market, x402watch) when federation is enabled. ' +
|
|
22
|
+
'Each match carries a `source` field — `verified` means the entry ' +
|
|
23
|
+
'is in our curated seed; other values are external indexes that ' +
|
|
24
|
+
'have not been independently verified.',
|
|
16
25
|
inputSchema: {
|
|
17
26
|
query: z
|
|
18
27
|
.string()
|
|
@@ -28,14 +37,18 @@ export function registerDiscover(server, gateway) {
|
|
|
28
37
|
},
|
|
29
38
|
}, async ({ query, limit }) => {
|
|
30
39
|
logger.info('discover called', { query, limit });
|
|
31
|
-
const
|
|
40
|
+
const cap = limit ?? 10;
|
|
41
|
+
const localOnly = gateway.registry.search(query);
|
|
42
|
+
const local = localOnly.map((e) => ({ ...e, source: e.source ?? 'verified' }));
|
|
43
|
+
const external = await gateway.federation.search(query);
|
|
44
|
+
const merged = mergeByEndpoint(local, external).slice(0, cap);
|
|
32
45
|
return {
|
|
33
46
|
content: [
|
|
34
47
|
{
|
|
35
48
|
type: 'text',
|
|
36
49
|
text: JSON.stringify({
|
|
37
50
|
query,
|
|
38
|
-
matches:
|
|
51
|
+
matches: merged.map((e) => ({
|
|
39
52
|
id: e.id,
|
|
40
53
|
name: e.name,
|
|
41
54
|
description: e.description,
|
|
@@ -47,12 +60,49 @@ export function registerDiscover(server, gateway) {
|
|
|
47
60
|
tags: e.tags,
|
|
48
61
|
example: e.example,
|
|
49
62
|
verified: e.verified,
|
|
63
|
+
source: e.source,
|
|
50
64
|
})),
|
|
51
|
-
|
|
65
|
+
total_in_local_registry: gateway.registry.entries.length,
|
|
66
|
+
external_sources: gateway.federation.config.sources.map((s) => s.id),
|
|
52
67
|
}, null, 2),
|
|
53
68
|
},
|
|
54
69
|
],
|
|
55
70
|
};
|
|
56
71
|
});
|
|
57
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Merge local + external entries, deduplicating by canonical endpoint URL.
|
|
75
|
+
* Local entries (which are `verified`) always win on collision so trust
|
|
76
|
+
* doesn't get diluted by an external index that mirrors the same endpoint.
|
|
77
|
+
* Order: locals first (preserving Registry.search's score order), then
|
|
78
|
+
* external entries in the order their sources fired.
|
|
79
|
+
*/
|
|
80
|
+
function mergeByEndpoint(local, external) {
|
|
81
|
+
const seen = new Set();
|
|
82
|
+
const out = [];
|
|
83
|
+
for (const e of local) {
|
|
84
|
+
const k = canonicalEndpoint(e.endpoint);
|
|
85
|
+
if (seen.has(k))
|
|
86
|
+
continue;
|
|
87
|
+
seen.add(k);
|
|
88
|
+
out.push(e);
|
|
89
|
+
}
|
|
90
|
+
for (const e of external) {
|
|
91
|
+
const k = canonicalEndpoint(e.endpoint);
|
|
92
|
+
if (seen.has(k))
|
|
93
|
+
continue;
|
|
94
|
+
seen.add(k);
|
|
95
|
+
out.push(e);
|
|
96
|
+
}
|
|
97
|
+
return out;
|
|
98
|
+
}
|
|
99
|
+
function canonicalEndpoint(url) {
|
|
100
|
+
try {
|
|
101
|
+
const u = new URL(url);
|
|
102
|
+
return `${u.hostname.toLowerCase()}${u.pathname.replace(/\/$/, '')}`;
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return url.toLowerCase();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
58
108
|
//# sourceMappingURL=discover.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/tools/discover.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/tools/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/tools/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAK7C,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/tools/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAK7C,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAkGvE"}
|
package/dist/tools/fetch.js
CHANGED
|
@@ -60,6 +60,7 @@ export function registerFetch(server, gateway) {
|
|
|
60
60
|
url,
|
|
61
61
|
todaySpentAtomic: await gateway.caps.spentTodayAtomic(),
|
|
62
62
|
dailyCapAtomic: gateway.caps.config.dailyLimitAtomic,
|
|
63
|
+
extensions: reqs.extensions,
|
|
63
64
|
});
|
|
64
65
|
if (!confirmDecision.ok)
|
|
65
66
|
throw new Error(confirmDecision.reason);
|
package/dist/tools/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/tools/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,OAAgB;IAC/D,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,+CAA+C;QACtD,WAAW,EACT,yEAAyE;YACzE,mEAAmE;YACnE,yEAAyE;YACzE,yEAAyE;QAC3E,WAAW,EAAE;YACX,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YACtE,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;iBACrB,QAAQ,EAAE;iBACV,QAAQ,CAAC,2BAA2B,CAAC;SACzC;KACF,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;QACxB,MAAM,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAEhD,+DAA+D;QAC/D,qFAAqF;QACrF,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAED,mDAAmD;QACnD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,aAAa,CAClB,qFAAqF,CACtF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAC/B,GAAG;gBACH,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;oBACxB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBACpD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAC3D,IAAI,CAAC,WAAW,CAAC,EAAE;wBAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBAEzD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;wBACxD,YAAY;wBACZ,IAAI,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ;wBAC3B,MAAM,EAAE,CAAC;wBACT,GAAG;wBACH,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE;wBACvD,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/tools/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/x402/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAkB,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChE;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,mBAAmB,CAAC;QAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChG,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,2EAA2E;IAC3E,IAAI,EAAE,OAAO,CAAC;IACd,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,mEAAmE;IACnE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/x402/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAkB,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChE;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,mBAAmB,CAAC;QAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChG,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,2EAA2E;IAC3E,IAAI,EAAE,OAAO,CAAC;IACd,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,mEAAmE;IACnE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2JtF;AAgCD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAqB3E"}
|
package/dist/x402/client.js
CHANGED
|
@@ -50,7 +50,13 @@ export async function payAndFetch(opts) {
|
|
|
50
50
|
`X402_PAYER_PRIVATE_KEY (a wallet you control that is NOT the ` +
|
|
51
51
|
`seller's receiving wallet).`);
|
|
52
52
|
}
|
|
53
|
-
// 2.5)
|
|
53
|
+
// 2.5) Merge top-level challenge extensions into the picked reqs so
|
|
54
|
+
// consumers (caps, confirm prompt) see a single combined extension
|
|
55
|
+
// bag. Per-accept extensions take precedence on key collision.
|
|
56
|
+
if (challenge.extensions || reqs.extensions) {
|
|
57
|
+
reqs.extensions = { ...(challenge.extensions ?? {}), ...(reqs.extensions ?? {}) };
|
|
58
|
+
}
|
|
59
|
+
// 2.6) Pre-pay hook (caps, ad-hoc policies). Errors abort.
|
|
54
60
|
if (opts.beforePay) {
|
|
55
61
|
await opts.beforePay(reqs);
|
|
56
62
|
}
|
|
@@ -221,11 +227,13 @@ function normalizeChallenge(raw) {
|
|
|
221
227
|
maxTimeoutSeconds: a.maxTimeoutSeconds ?? 60,
|
|
222
228
|
asset: (a.asset ?? '0x0000000000000000000000000000000000000000'),
|
|
223
229
|
extra: a.extra ?? { name: '', version: '' },
|
|
230
|
+
extensions: a.extensions,
|
|
224
231
|
}));
|
|
225
232
|
return {
|
|
226
233
|
x402Version: r.x402Version ?? 1,
|
|
227
234
|
error: r.error,
|
|
228
235
|
accepts,
|
|
236
|
+
extensions: r.extensions,
|
|
229
237
|
};
|
|
230
238
|
}
|
|
231
239
|
async function tryJson(r) {
|
package/dist/x402/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/x402/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/x402/client.ts"],"names":[],"mappings":"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"}
|
package/dist/x402/types.d.ts
CHANGED
|
@@ -31,12 +31,24 @@ export type PaymentRequirements = {
|
|
|
31
31
|
name: string;
|
|
32
32
|
version: string;
|
|
33
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* Per-accept extension metadata. Sellers (and indexes like CDP Bazaar) bake
|
|
36
|
+
* arbitrary metadata into v2 challenges under `extensions.*` — e.g.
|
|
37
|
+
* `extensions.bazaar.{listingId, category, name}`. Opaque to the protocol;
|
|
38
|
+
* surfaced to the user via the M5 confirm prompt.
|
|
39
|
+
*/
|
|
40
|
+
extensions?: Record<string, unknown>;
|
|
34
41
|
};
|
|
35
42
|
/** Body of a 402 response. */
|
|
36
43
|
export type Challenge = {
|
|
37
44
|
x402Version: number;
|
|
38
45
|
error?: string;
|
|
39
46
|
accepts: PaymentRequirements[];
|
|
47
|
+
/**
|
|
48
|
+
* Top-level challenge extensions. v2 challenges may carry metadata at the
|
|
49
|
+
* envelope level (applies to all `accepts` options) rather than per-option.
|
|
50
|
+
*/
|
|
51
|
+
extensions?: Record<string, unknown>;
|
|
40
52
|
};
|
|
41
53
|
/** EIP-3009 authorization, in the wire shape (decimal strings). */
|
|
42
54
|
export type Authorization = {
|
package/dist/x402/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/x402/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEzC,4DAA4D;AAC5D,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,KAAK,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/x402/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEzC,4DAA4D;AAC5D,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,KAAK,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF,8BAA8B;AAC9B,MAAM,MAAM,SAAS,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,SAAS,EAAE,GAAG,CAAC;QACf,aAAa,EAAE,aAAa,CAAC;KAC9B,CAAC;CACH,CAAC"}
|
package/package.json
CHANGED