402-mcp 4.3.0 → 4.4.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 +25 -1
- package/build/tools/fetch.d.ts +1 -0
- package/build/tools/fetch.js +4 -0
- package/build/tools/fetch.js.map +1 -1
- package/build/tools/nostr-subscribe.d.ts +5 -2
- package/build/tools/nostr-subscribe.js +4 -14
- package/build/tools/nostr-subscribe.js.map +1 -1
- package/build/tools/pay.d.ts +1 -0
- package/build/tools/pay.js +4 -0
- package/build/tools/pay.js.map +1 -1
- package/build/tools/search.d.ts +2 -0
- package/build/tools/search.js +34 -15
- package/build/tools/search.js.map +1 -1
- package/build/tools/storage-discovery.d.ts +13 -0
- package/build/tools/storage-discovery.js +41 -0
- package/build/tools/storage-discovery.js.map +1 -0
- package/build/widgets/index.js +2 -1
- package/build/widgets/index.js.map +1 -1
- package/build/widgets/paths.d.ts +7 -0
- package/build/widgets/paths.js +11 -0
- package/build/widgets/paths.js.map +1 -0
- package/llms-full.txt +26 -2
- package/llms.txt +26 -2
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -200,7 +200,7 @@ Browse live L402 services at [402.pub](https://402.pub) — the decentralised ma
|
|
|
200
200
|
| Project | Role |
|
|
201
201
|
|---------|------|
|
|
202
202
|
| [toll-booth](https://github.com/forgesworn/toll-booth) | Payment-backend agnostic HTTP 402 middleware |
|
|
203
|
-
| [satgate](https://github.com/
|
|
203
|
+
| [satgate](https://github.com/TheCryptoDonkey/satgate) | Pay-per-token AI inference proxy (built on toll-booth) |
|
|
204
204
|
| **[402-mcp](https://github.com/forgesworn/402-mcp)** | **MCP client: AI agents discover, pay for and consume L402 APIs** |
|
|
205
205
|
| [402-announce](https://github.com/forgesworn/402-announce) | Publish L402 services on Nostr for decentralised discovery |
|
|
206
206
|
|
|
@@ -253,3 +253,27 @@ Built by [@forgesworn](https://github.com/forgesworn).
|
|
|
253
253
|
## Licence
|
|
254
254
|
|
|
255
255
|
[MIT](LICENSE)
|
|
256
|
+
|
|
257
|
+
## Wildbloom storage discovery
|
|
258
|
+
|
|
259
|
+
`l402-search` also recognises the signed `forgesworn-storage-service-v1` profile
|
|
260
|
+
(kind 31402, shared `402-announce/storage` 2.3.0). Paid results identify
|
|
261
|
+
`storage.paymentFlow: "wildbloom-checkout-v1"` and `autoPaySupported: false`.
|
|
262
|
+
Free shelter accepts authorised mirrors with best-effort evictable retention,
|
|
263
|
+
not unknown-user direct uploads. The tool contacts only the requested relays;
|
|
264
|
+
service terms are untrusted operator claims, not recommendations or uptime proof.
|
|
265
|
+
|
|
266
|
+
Latest valid signed records are selected before expiry/withdrawal/query filtering;
|
|
267
|
+
equal timestamps use the lowest event ID. Up to 2,000 watermarks are retained
|
|
268
|
+
in memory per registered search handler across calls, without silently evicting
|
|
269
|
+
withdrawals. A new handler/process has no memory of records omitted by a relay.
|
|
270
|
+
Full/paused current listings remain descriptive results; expired/withdrawn ones
|
|
271
|
+
remain watermarks but are not returned as current offers. No browser, ledger or
|
|
272
|
+
credential persistence is added by discovery.
|
|
273
|
+
|
|
274
|
+
Pass the result payment flow to `l402-fetch` or `l402-pay`: Wildbloom checkout
|
|
275
|
+
is explicitly refused before dependency, network, credential or wallet access.
|
|
276
|
+
`l402-fetch` also refuses `/checkout/v1` paths. Review current `/services/v1`
|
|
277
|
+
separately and use Wildbloom for a bound private NIP-98 quote and explicit payment.
|
|
278
|
+
The automatic paid-API tools do not implement Wildbloom checkout, free mirroring
|
|
279
|
+
or an upload allowance. Signature validation does not authorise a purchase.
|
package/build/tools/fetch.d.ts
CHANGED
package/build/tools/fetch.js
CHANGED
|
@@ -2,6 +2,7 @@ import { z } from 'zod';
|
|
|
2
2
|
import { safeErrorMessage } from './safe-error.js';
|
|
3
3
|
import { filterResponseHeaders } from './safe-headers.js';
|
|
4
4
|
import { untrusted } from './untrusted.js';
|
|
5
|
+
import { unsupportedStorageCheckout } from './storage-discovery.js';
|
|
5
6
|
const HEX_RE = /^[0-9a-fA-F]+$/;
|
|
6
7
|
const MACAROON_RE = /^[A-Za-z0-9+/_\-=]+$/;
|
|
7
8
|
/** Headers that must not be set by the caller (hop-by-hop). */
|
|
@@ -73,6 +74,8 @@ function isOrigin(value) {
|
|
|
73
74
|
}
|
|
74
75
|
/** Makes an HTTP request with automatic L402/x402 payment and credential reuse. Pays the invoice if within budget, stores the credential, and retries. */
|
|
75
76
|
export async function handleFetch(args, deps) {
|
|
77
|
+
if (args.paymentFlow === 'wildbloom-checkout-v1' || (args.urls?.length ? args.urls : [args.url]).some(url => /^\/checkout\/v1(?:\/|$)/.test(new URL(url).pathname)))
|
|
78
|
+
return unsupportedStorageCheckout();
|
|
76
79
|
// When multiple URLs are provided (from l402-search results), use transport fallback.
|
|
77
80
|
// The first URL in `urls` is also the primary URL for identity, origin, and payment.
|
|
78
81
|
const primaryUrl = args.urls?.length ? args.urls[0] : args.url;
|
|
@@ -618,6 +621,7 @@ export function registerFetchTool(server, deps) {
|
|
|
618
621
|
description: 'Fetch a URL, paying its HTTP 402 challenge (L402, IETF Payment, Cashu or LNURLcash) when autoPay is true and the price is within MAX_AUTO_PAY_SATS, maxCostSats and the spend limits. Reuses stored credentials. Without autoPay, a 402 comes back with its price and paymentHash so the user can decide; l402-pay can then pay it. For x402 services, which this server supports only in an experimental custom format, returns the payment details for the user to pay in their own wallet. Response bodies are marked as untrusted content. With widget hosts, call l402-fetch-preview first to show the price.',
|
|
619
622
|
annotations: { destructiveHint: true, openWorldHint: true },
|
|
620
623
|
inputSchema: {
|
|
624
|
+
paymentFlow: z.literal('wildbloom-checkout-v1').optional().describe('Pass the storage paymentFlow from search results; this unsupported flow is refused before network or wallet access.'),
|
|
621
625
|
url: z.url().describe('The primary URL to request. When using search results, pass the first URL here and all URLs in the urls field.'),
|
|
622
626
|
urls: z.array(z.url()).max(10).optional().describe('All transport URLs from l402-search results (clearnet, onion, HNS). When present, transports are tried in preference order with automatic fallback on connection failure.'),
|
|
623
627
|
method: z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS']).optional().default('GET').describe('HTTP method'),
|
package/build/tools/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/tools/fetch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/tools/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { SearchDeps } from './search.js';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Optional tag filters to pass to relays, reducing bandwidth by filtering
|
|
4
|
+
* server-side. Relays index single-letter tags only; a multi-letter tag
|
|
5
|
+
* filter such as #pmi is rejected, so filter those after the query.
|
|
6
|
+
*/
|
|
3
7
|
export interface SubscribeFilters {
|
|
4
8
|
'#t'?: string[];
|
|
5
|
-
'#pmi'?: string[];
|
|
6
9
|
}
|
|
7
10
|
/** Creates a Nostr relay subscriber that connects, subscribes to event kinds, and collects events within a timeout. */
|
|
8
11
|
export declare function createNostrSubscriber(ssrfAllowPrivate?: boolean): SearchDeps['subscribeEvents'];
|
|
@@ -43,8 +43,6 @@ export function createNostrSubscriber(ssrfAllowPrivate = false) {
|
|
|
43
43
|
const filter = { kinds };
|
|
44
44
|
if (filters?.['#t']?.length)
|
|
45
45
|
filter['#t'] = filters['#t'];
|
|
46
|
-
if (filters?.['#pmi']?.length)
|
|
47
|
-
filter['#pmi'] = filters['#pmi'];
|
|
48
46
|
const sub = relay.subscribe([filter], {
|
|
49
47
|
onevent: (event) => {
|
|
50
48
|
if (events.length < MAX_EVENTS && verifyEvent(event)) {
|
|
@@ -76,8 +74,9 @@ export function createNostrSubscriber(ssrfAllowPrivate = false) {
|
|
|
76
74
|
// Ignore close errors
|
|
77
75
|
}
|
|
78
76
|
}
|
|
79
|
-
//
|
|
80
|
-
//
|
|
77
|
+
// Return bounded unique events. The search consumer validates a claimed
|
|
78
|
+
// storage schema before replacement, so malformed newer content cannot
|
|
79
|
+
// discard an older valid listing here.
|
|
81
80
|
const seen = new Set();
|
|
82
81
|
const unique = events.filter((e) => {
|
|
83
82
|
if (seen.has(e.id))
|
|
@@ -85,16 +84,7 @@ export function createNostrSubscriber(ssrfAllowPrivate = false) {
|
|
|
85
84
|
seen.add(e.id);
|
|
86
85
|
return true;
|
|
87
86
|
});
|
|
88
|
-
|
|
89
|
-
for (const e of unique) {
|
|
90
|
-
const dTag = e.tags.find(t => t[0] === 'd')?.[1] ?? '';
|
|
91
|
-
const key = `${e.pubkey}:${dTag}`;
|
|
92
|
-
const existing = replaceableMap.get(key);
|
|
93
|
-
if (!existing || e.created_at > existing.created_at) {
|
|
94
|
-
replaceableMap.set(key, e);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return [...replaceableMap.values()];
|
|
87
|
+
return unique;
|
|
98
88
|
};
|
|
99
89
|
}
|
|
100
90
|
//# sourceMappingURL=nostr-subscribe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nostr-subscribe.js","sourceRoot":"","sources":["../../src/tools/nostr-subscribe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,MAAM,UAAU,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"nostr-subscribe.js","sourceRoot":"","sources":["../../src/tools/nostr-subscribe.ts"],"names":[],"mappings":"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"}
|
package/build/tools/pay.d.ts
CHANGED
package/build/tools/pay.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { unsupportedStorageCheckout } from './storage-discovery.js';
|
|
2
3
|
import { safeErrorMessage } from './safe-error.js';
|
|
3
4
|
const RECONCILE_HINT = 'Call l402-reconcile with this paymentHash before paying this service again.';
|
|
4
5
|
/** Pays a Lightning invoice using the configured wallet priority (NWC, Cashu, human). */
|
|
5
6
|
export async function handlePay(args, deps) {
|
|
7
|
+
if (args.paymentFlow === 'wildbloom-checkout-v1')
|
|
8
|
+
return unsupportedStorageCheckout();
|
|
6
9
|
// Resolve invoice and macaroon from cache if paymentHash provided
|
|
7
10
|
let invoice = args.invoice;
|
|
8
11
|
let macaroon = args.macaroon;
|
|
@@ -257,6 +260,7 @@ export function registerPayTool(server, deps) {
|
|
|
257
260
|
description: 'Pay a challenge that l402-fetch or l402-discover returned, by its paymentHash, and store the credential so the next l402-fetch succeeds. For human wallets, polls the payment page for settlement for up to 120s; call it straight after showing the payment URL to the user. An invoice that did not come from such a challenge is paid only if the human approves it in the client.',
|
|
258
261
|
annotations: { destructiveHint: true, openWorldHint: true },
|
|
259
262
|
inputSchema: {
|
|
263
|
+
paymentFlow: z.literal('wildbloom-checkout-v1').optional().describe('Pass the storage paymentFlow from search results. Wildbloom checkout is refused before wallet access.'),
|
|
260
264
|
invoice: z.string().max(20_000).optional().describe('BOLT-11 invoice. Leave out when paying a challenge by paymentHash; any other invoice needs the human to approve it.'),
|
|
261
265
|
macaroon: z.string().max(10_000).optional().describe('Macaroon from the L402 challenge. Optional if paymentHash matches a cached challenge.'),
|
|
262
266
|
paymentHash: z.string().max(128).optional().describe('Payment hash of a challenge from l402-fetch or l402-discover.'),
|
package/build/tools/pay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../src/tools/pay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../src/tools/pay.ts"],"names":[],"mappings":"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"}
|
package/build/tools/search.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import type { NostrEvent } from 'nostr-tools/core';
|
|
3
3
|
import type { SubscribeFilters } from './nostr-subscribe.js';
|
|
4
|
+
import type { StorageServiceDescription } from '402-announce';
|
|
4
5
|
export interface SearchDeps {
|
|
5
6
|
subscribeEvents: (relays: string[], kinds: number[], timeout: number, filters?: SubscribeFilters) => Promise<NostrEvent[]>;
|
|
6
7
|
}
|
|
7
8
|
export interface ParsedService {
|
|
9
|
+
storageDescription?: StorageServiceDescription;
|
|
8
10
|
name: string | undefined;
|
|
9
11
|
urls: string[];
|
|
10
12
|
about: string | undefined;
|
package/build/tools/search.js
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { safeErrorMessage } from './safe-error.js';
|
|
3
3
|
import { untrusted } from './untrusted.js';
|
|
4
|
+
import { claimsStorage, updateAnnouncements } from './storage-discovery.js';
|
|
5
|
+
import { parseStorageAnnouncement } from '402-announce/storage';
|
|
4
6
|
const DEFAULT_RELAYS = [
|
|
5
7
|
'wss://relay.damus.io',
|
|
6
8
|
'wss://relay.primal.net',
|
|
7
9
|
'wss://nos.lol',
|
|
8
10
|
];
|
|
9
11
|
const KIND_L402_ANNOUNCE = 31402;
|
|
12
|
+
const announcementSessions = new WeakMap();
|
|
10
13
|
/** Extracts service metadata (name, URLs, pricing, capabilities) from a kind 31402 Nostr event. */
|
|
11
14
|
export function parseAnnounceEvent(event) {
|
|
15
|
+
const storageDescription = claimsStorage(event) ? parseStorageAnnouncement(event, { now: Math.floor(Date.now() / 1000) }).description : undefined;
|
|
12
16
|
const getTag = (key) => event.tags.find(t => t[0] === key)?.[1];
|
|
13
17
|
const getAllTags = (key) => event.tags.filter(t => t[0] === key);
|
|
14
18
|
const getAllTagValues = (key) => event.tags.filter(t => t[0] === key).map(t => t[1]).filter(Boolean);
|
|
@@ -43,6 +47,7 @@ export function parseAnnounceEvent(event) {
|
|
|
43
47
|
// Invalid JSON — capabilities remain empty
|
|
44
48
|
}
|
|
45
49
|
return {
|
|
50
|
+
...(storageDescription ? { storageDescription } : {}),
|
|
46
51
|
name: getTag('name'),
|
|
47
52
|
urls: getAllTagValues('url'),
|
|
48
53
|
about: getTag('about'),
|
|
@@ -60,24 +65,32 @@ export async function handleSearch(args, deps) {
|
|
|
60
65
|
const timeout = args.timeout ?? 5000;
|
|
61
66
|
const maxResults = args.maxResults ?? 20;
|
|
62
67
|
const queryLower = args.query.toLowerCase();
|
|
63
|
-
//
|
|
68
|
+
// Relays index single-letter tags only, so topics (#t) filter at the relay.
|
|
69
|
+
// Public relays reject a #pmi filter outright ("unindexed tag filter"), so
|
|
70
|
+
// payment methods are matched here instead.
|
|
64
71
|
const relayFilters = {};
|
|
65
72
|
if (args.topics?.length)
|
|
66
73
|
relayFilters['#t'] = args.topics;
|
|
67
|
-
if (args.paymentMethod)
|
|
68
|
-
relayFilters['#pmi'] = [args.paymentMethod];
|
|
69
74
|
const rawEvents = await deps.subscribeEvents(relays, [KIND_L402_ANNOUNCE], timeout, relayFilters);
|
|
70
|
-
//
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
// Validate before replacement; select latest before expiry/withdrawal/query filters.
|
|
76
|
+
const now = Math.floor(Date.now() / 1000);
|
|
77
|
+
const replaceableMap = updateAnnouncements(announcementSessions.get(deps) ?? new Map(), rawEvents, now);
|
|
78
|
+
announcementSessions.set(deps, replaceableMap);
|
|
79
|
+
let services = [...replaceableMap.values()].filter(event => {
|
|
80
|
+
if (claimsStorage(event)) {
|
|
81
|
+
const parsed = parseStorageAnnouncement(event, { now });
|
|
82
|
+
return parsed.freshness === 'current' && parsed.description.state === 'published';
|
|
78
83
|
}
|
|
84
|
+
const expires = event.tags.find(t => t[0] === 'expiration')?.[1];
|
|
85
|
+
return !expires || (/^[0-9]+$/.test(expires) && Number(expires) > now);
|
|
86
|
+
}).map(parseAnnounceEvent);
|
|
87
|
+
// Session watermarks span searches; still honour this call's topic filter locally.
|
|
88
|
+
if (args.topics?.length)
|
|
89
|
+
services = services.filter(svc => svc.topics.some(topic => args.topics.includes(topic)));
|
|
90
|
+
if (args.paymentMethod) {
|
|
91
|
+
const method = args.paymentMethod.toLowerCase();
|
|
92
|
+
services = services.filter(svc => svc.paymentMethods.some(pm => pm.toLowerCase() === method));
|
|
79
93
|
}
|
|
80
|
-
let services = [...replaceableMap.values()].map(parseAnnounceEvent);
|
|
81
94
|
// Filter by query text — relays cannot do substring search so this remains client-side
|
|
82
95
|
if (queryLower) {
|
|
83
96
|
services = services.filter(svc => {
|
|
@@ -94,8 +107,14 @@ export async function handleSearch(args, deps) {
|
|
|
94
107
|
// event, so its free-text fields are delimited as untrusted.
|
|
95
108
|
const results = services.slice(0, maxResults).map(svc => {
|
|
96
109
|
const source = `Nostr announcement by ${svc.pubkey.slice(0, 16)}`;
|
|
110
|
+
const { storageDescription: d, ...metadata } = svc;
|
|
97
111
|
return {
|
|
98
|
-
...
|
|
112
|
+
...metadata,
|
|
113
|
+
...(d ? { storage: { profile: d.profile, identifier: d.identifier, servicePubkey: d.service_pubkey,
|
|
114
|
+
expiresAt: d.expires_at, paymentFlow: d.checkout?.protocol ?? null, autoPaySupported: false,
|
|
115
|
+
services: d.services.map(s => ({ id: s.id, type: s.type, availability: s.availability })),
|
|
116
|
+
description: untrusted(JSON.stringify(d), source),
|
|
117
|
+
nextAction: 'Review current operator terms and use the separate Wildbloom private checkout. Free shelter accepts authorised mirrors only.' } } : {}),
|
|
99
118
|
name: svc.name === undefined ? undefined : untrusted(svc.name, source),
|
|
100
119
|
about: svc.about === undefined ? undefined : untrusted(svc.about, source),
|
|
101
120
|
capabilities: svc.capabilities.map(c => ({
|
|
@@ -122,13 +141,13 @@ export async function handleSearch(args, deps) {
|
|
|
122
141
|
/** Registers the l402-search tool with the MCP server. */
|
|
123
142
|
export function registerSearchTool(server, deps) {
|
|
124
143
|
server.registerTool('l402-search', {
|
|
125
|
-
description: 'Search Nostr relays for paid API announcements (kind 31402) and
|
|
144
|
+
description: 'Search Nostr relays for paid API or public storage announcements (kind 31402). Wildbloom paid storage and free mirror shelter are descriptive results; Wildbloom checkout cannot be bought with l402-fetch/pay. No storage node or wallet is contacted. Topic filters are sent to the relays; payment method and query text are matched locally. Announcement text is untrusted data.',
|
|
126
145
|
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
127
146
|
inputSchema: {
|
|
128
147
|
query: z.string().max(200).describe('Search query to match against service names, descriptions, and capabilities'),
|
|
129
148
|
relays: z.array(z.url()).max(10).optional().describe('Nostr relay URLs to query (defaults to popular public relays)'),
|
|
130
149
|
topics: z.array(z.string().max(50)).max(10).optional().describe('Filter by topic tags (e.g. ["ai", "data"])'),
|
|
131
|
-
paymentMethod: z.string().max(100).optional().describe('Filter by payment
|
|
150
|
+
paymentMethod: z.string().max(100).optional().describe('Filter by payment rail, the first value of an announcement\'s pmi tag (e.g. "l402", "cashu", "xcashu", "lnurlcash", "x402", "payment"). A Cashu service may list "cashu", "xcashu" or both'),
|
|
132
151
|
maxResults: z.int().min(1).max(100).optional().describe('Maximum number of results to return (default 20)'),
|
|
133
152
|
timeout: z.int().min(1000).max(30000).optional().describe('Relay subscription timeout in milliseconds (default 5000)'),
|
|
134
153
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { NostrEvent } from 'nostr-tools/core';
|
|
2
|
+
/** Prevent malformed storage metadata from being interpreted as a generic paid API. */
|
|
3
|
+
export declare function claimsStorage(event: NostrEvent): boolean;
|
|
4
|
+
/** Validate storage claims before replacement, retain unavailable watermarks, and bound session memory. */
|
|
5
|
+
export declare function updateAnnouncements(prior: Map<string, NostrEvent>, incoming: NostrEvent[], now: number): Map<string, NostrEvent>;
|
|
6
|
+
/** Wildbloom storage needs bound NIP-98 quotes and a separate explicit customer checkout. */
|
|
7
|
+
export declare function unsupportedStorageCheckout(): {
|
|
8
|
+
content: {
|
|
9
|
+
type: "text";
|
|
10
|
+
text: string;
|
|
11
|
+
}[];
|
|
12
|
+
isError: true;
|
|
13
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { parseStorageAnnouncement } from '402-announce/storage';
|
|
2
|
+
/** Prevent malformed storage metadata from being interpreted as a generic paid API. */
|
|
3
|
+
export function claimsStorage(event) {
|
|
4
|
+
if (event.tags.some(t => (t[0] === 't' && t[1] === 'forgesworn-storage-service-v1') || (t[0] === 'pmi' && t[1] === 'wildbloom-checkout')))
|
|
5
|
+
return true;
|
|
6
|
+
try {
|
|
7
|
+
const value = JSON.parse(event.content);
|
|
8
|
+
return value !== null && typeof value === 'object' && Object.hasOwn(value, 'storage');
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/** Validate storage claims before replacement, retain unavailable watermarks, and bound session memory. */
|
|
15
|
+
export function updateAnnouncements(prior, incoming, now) {
|
|
16
|
+
if (incoming.length > 1000)
|
|
17
|
+
throw new Error('Announcement response limit exceeded.');
|
|
18
|
+
const next = new Map(prior);
|
|
19
|
+
for (const event of incoming) {
|
|
20
|
+
if (claimsStorage(event)) {
|
|
21
|
+
try {
|
|
22
|
+
parseStorageAnnouncement(event, { now });
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const key = `${event.pubkey}:${event.tags.find(t => t[0] === 'd')?.[1] ?? ''}`;
|
|
29
|
+
const existing = next.get(key);
|
|
30
|
+
if (!existing || event.created_at > existing.created_at || (event.created_at === existing.created_at && event.id < existing.id))
|
|
31
|
+
next.set(key, event);
|
|
32
|
+
}
|
|
33
|
+
if (next.size > 2000)
|
|
34
|
+
throw new Error('Announcement session memory limit exceeded.');
|
|
35
|
+
return next;
|
|
36
|
+
}
|
|
37
|
+
/** Wildbloom storage needs bound NIP-98 quotes and a separate explicit customer checkout. */
|
|
38
|
+
export function unsupportedStorageCheckout() {
|
|
39
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: 'Wildbloom checkout is not supported by the automatic paid-API tools. Review /services/v1 and use Wildbloom’s explicit private quote/payment flow. Free shelter supports authorised mirrors only.', paymentFlow: 'wildbloom-checkout-v1', autoPaySupported: false }) }], isError: true };
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=storage-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-discovery.js","sourceRoot":"","sources":["../../src/tools/storage-discovery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAE/D,uFAAuF;AACvF,MAAM,UAAU,aAAa,CAAC,KAAiB;IAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACtJ,IAAI,CAAC;QACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAChD,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAC,SAAS,CAAC,CAAA;IACtF,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAA;IAAC,CAAC;AAC1B,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,mBAAmB,CAAC,KAA6B,EAAE,QAAsB,EAAE,GAAW;IACpG,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IACpF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IAC3B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC;gBAAC,wBAAwB,CAAC,KAAK,EAAC,EAAC,GAAG,EAAC,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,SAAQ;YAAC,CAAC;QAAC,CAAC;QAC9F,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAA;QAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC,KAAK,CAAC,CAAA;IACtJ,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IACpF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,0BAA0B;IACxC,OAAO,EAAC,OAAO,EAAC,CAAC,EAAC,IAAI,EAAC,MAAe,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,KAAK,EAAC,kMAAkM,EAAC,WAAW,EAAC,uBAAuB,EAAC,gBAAgB,EAAC,KAAK,EAAC,CAAC,EAAC,CAAC,EAAC,OAAO,EAAC,IAAa,EAAC,CAAA;AAC5V,CAAC"}
|
package/build/widgets/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { join, dirname } from 'node:path';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { widgetDistDir } from './paths.js';
|
|
4
5
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
5
6
|
function load(name) {
|
|
6
|
-
return readFileSync(join(__dirname,
|
|
7
|
+
return readFileSync(join(widgetDistDir(__dirname), `${name}.html`), 'utf8');
|
|
7
8
|
}
|
|
8
9
|
export const paymentConfirmationHtml = load('payment-confirmation');
|
|
9
10
|
export const serviceDirectoryHtml = load('service-directory');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAEzD,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;AAC7E,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAA;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAA;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the built widget HTML lives. build.mjs writes it to src/widgets/dist,
|
|
3
|
+
* the directory package.json "files" ships. This code runs from src/widgets
|
|
4
|
+
* under tsx and vitest, and from build/widgets once compiled; both sit two
|
|
5
|
+
* levels below the package root, so one relative path reaches it from either.
|
|
6
|
+
*/
|
|
7
|
+
export declare function widgetDistDir(moduleDir: string): string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
/**
|
|
3
|
+
* Where the built widget HTML lives. build.mjs writes it to src/widgets/dist,
|
|
4
|
+
* the directory package.json "files" ships. This code runs from src/widgets
|
|
5
|
+
* under tsx and vitest, and from build/widgets once compiled; both sit two
|
|
6
|
+
* levels below the package root, so one relative path reaches it from either.
|
|
7
|
+
*/
|
|
8
|
+
export function widgetDistDir(moduleDir) {
|
|
9
|
+
return join(moduleDir, '..', '..', 'src', 'widgets', 'dist');
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/widgets/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;AAC9D,CAAC"}
|
package/llms-full.txt
CHANGED
|
@@ -265,7 +265,7 @@ For human wallets with a toll-booth payment page, polls for settlement for up to
|
|
|
265
265
|
- `topics` — topic tags
|
|
266
266
|
- `capabilities` — array of `{ name, description }`
|
|
267
267
|
|
|
268
|
-
Names, descriptions and capability text are wrapped in UNTRUSTED CONTENT markers. Topic
|
|
268
|
+
Names, descriptions and capability text are wrapped in UNTRUSTED CONTENT markers. Topic filters are sent to the relays; the payment method and query text are matched locally, because relays index single-letter tags only.
|
|
269
269
|
|
|
270
270
|
**When to use:** When the agent needs a paid API but doesn't know the URL. Searches the decentralised Nostr network for kind 31402 service announcements. Services may advertise multiple transport URLs (clearnet, .onion, Handshake); pass the `urls` array and `pubkey` to `l402-fetch` for automatic transport selection and fallback.
|
|
271
271
|
|
|
@@ -459,7 +459,7 @@ Credentials are keyed by service **pubkey** (from the kind 31402 event) and boun
|
|
|
459
459
|
|---------|------|-----|
|
|
460
460
|
| **402-mcp** | MCP client — AI agents discover, pay, and consume L402 APIs | https://github.com/forgesworn/402-mcp |
|
|
461
461
|
| **toll-booth** | L402 payment middleware for any Node.js server | https://github.com/forgesworn/toll-booth |
|
|
462
|
-
| **satgate** | Pay-per-token AI inference proxy (built on toll-booth) | https://github.com/
|
|
462
|
+
| **satgate** | Pay-per-token AI inference proxy (built on toll-booth) | https://github.com/TheCryptoDonkey/satgate |
|
|
463
463
|
| **402-announce** | Publish L402 services on Nostr for decentralised discovery | https://github.com/forgesworn/402-announce |
|
|
464
464
|
|
|
465
465
|
## Integration Patterns
|
|
@@ -510,3 +510,27 @@ Credentials are keyed by service **pubkey** (from the kind 31402 event) and boun
|
|
|
510
510
|
|
|
511
511
|
Settlement can only be confirmed where the server reports it (toll-booth).
|
|
512
512
|
```
|
|
513
|
+
|
|
514
|
+
## Wildbloom storage discovery
|
|
515
|
+
|
|
516
|
+
`l402-search` also recognises the signed `forgesworn-storage-service-v1` profile
|
|
517
|
+
(kind 31402, shared `402-announce/storage` 2.3.0). Paid results identify
|
|
518
|
+
`storage.paymentFlow: "wildbloom-checkout-v1"` and `autoPaySupported: false`.
|
|
519
|
+
Free shelter accepts authorised mirrors with best-effort evictable retention,
|
|
520
|
+
not unknown-user direct uploads. The tool contacts only the requested relays;
|
|
521
|
+
service terms are untrusted operator claims, not recommendations or uptime proof.
|
|
522
|
+
|
|
523
|
+
Latest valid signed records are selected before expiry/withdrawal/query filtering;
|
|
524
|
+
equal timestamps use the lowest event ID. Up to 2,000 watermarks are retained
|
|
525
|
+
in memory per registered search handler across calls, without silently evicting
|
|
526
|
+
withdrawals. A new handler/process has no memory of records omitted by a relay.
|
|
527
|
+
Full/paused current listings remain descriptive results; expired/withdrawn ones
|
|
528
|
+
remain watermarks but are not returned as current offers. No browser, ledger or
|
|
529
|
+
credential persistence is added by discovery.
|
|
530
|
+
|
|
531
|
+
Pass the result payment flow to `l402-fetch` or `l402-pay`: Wildbloom checkout
|
|
532
|
+
is explicitly refused before dependency, network, credential or wallet access.
|
|
533
|
+
`l402-fetch` also refuses `/checkout/v1` paths. Review current `/services/v1`
|
|
534
|
+
separately and use Wildbloom for a bound private NIP-98 quote and explicit payment.
|
|
535
|
+
The automatic paid-API tools do not implement Wildbloom checkout, free mirroring
|
|
536
|
+
or an upload allowance. Signature validation does not authorise a purchase.
|
package/llms.txt
CHANGED
|
@@ -110,7 +110,7 @@ Check the cached credit balance for a specific server URL. Returns the number of
|
|
|
110
110
|
|
|
111
111
|
### `l402-search`
|
|
112
112
|
|
|
113
|
-
Search for L402 services on Nostr relays. Queries kind 31402 announcement events (topic
|
|
113
|
+
Search for L402 services on Nostr relays. Queries kind 31402 announcement events (topic filters are sent to the relays; the payment method and query text are matched locally) and returns matching services with their names, URLs, pubkey, pricing, capabilities, and supported payment methods. Filter by query text, topics (e.g. "ai", "data"), or payment method: the rail an announcement lists first in each `pmi` tag (`l402`, `cashu`, `xcashu`, `lnurlcash`, `x402`, `payment`). A Cashu service may list `cashu`, `xcashu` or both. Services may advertise multiple transport URLs (clearnet, .onion, HNS); pass the first as `url`, the whole array as `urls` and the service's `pubkey` to `l402-fetch`, for automatic transport selection and fallback with credentials shared across them. This enables agents to find paid APIs without knowing URLs upfront: a decentralised alternative to API directories. Announcement text is wrapped in UNTRUSTED CONTENT markers.
|
|
114
114
|
|
|
115
115
|
## Widget Tools
|
|
116
116
|
|
|
@@ -181,8 +181,32 @@ https://github.com/forgesworn/toll-booth
|
|
|
181
181
|
|
|
182
182
|
**satgate** demonstrates the AI inference use case: a proxy that gates access to AI model endpoints (Ollama, vLLM, llama.cpp) behind L402 payments. Agents use 402-mcp to discover pricing, pay per-request or buy credit tiers, and consume inference capacity without pre-provisioned API keys.
|
|
183
183
|
|
|
184
|
-
https://github.com/
|
|
184
|
+
https://github.com/TheCryptoDonkey/satgate
|
|
185
185
|
|
|
186
186
|
**402-announce** publishes HTTP 402 services on Nostr as kind 31402 events, making them discoverable by `l402-search`. Operators run it alongside their L402 server to announce capabilities, pricing, and payment methods to the decentralised network.
|
|
187
187
|
|
|
188
188
|
https://github.com/forgesworn/402-announce
|
|
189
|
+
|
|
190
|
+
## Wildbloom storage discovery
|
|
191
|
+
|
|
192
|
+
`l402-search` also recognises the signed `forgesworn-storage-service-v1` profile
|
|
193
|
+
(kind 31402, shared `402-announce/storage` 2.3.0). Paid results identify
|
|
194
|
+
`storage.paymentFlow: "wildbloom-checkout-v1"` and `autoPaySupported: false`.
|
|
195
|
+
Free shelter accepts authorised mirrors with best-effort evictable retention,
|
|
196
|
+
not unknown-user direct uploads. The tool contacts only the requested relays;
|
|
197
|
+
service terms are untrusted operator claims, not recommendations or uptime proof.
|
|
198
|
+
|
|
199
|
+
Latest valid signed records are selected before expiry/withdrawal/query filtering;
|
|
200
|
+
equal timestamps use the lowest event ID. Up to 2,000 watermarks are retained
|
|
201
|
+
in memory per registered search handler across calls, without silently evicting
|
|
202
|
+
withdrawals. A new handler/process has no memory of records omitted by a relay.
|
|
203
|
+
Full/paused current listings remain descriptive results; expired/withdrawn ones
|
|
204
|
+
remain watermarks but are not returned as current offers. No browser, ledger or
|
|
205
|
+
credential persistence is added by discovery.
|
|
206
|
+
|
|
207
|
+
Pass the result payment flow to `l402-fetch` or `l402-pay`: Wildbloom checkout
|
|
208
|
+
is explicitly refused before dependency, network, credential or wallet access.
|
|
209
|
+
`l402-fetch` also refuses `/checkout/v1` paths. Review current `/services/v1`
|
|
210
|
+
separately and use Wildbloom for a bound private NIP-98 quote and explicit payment.
|
|
211
|
+
The automatic paid-API tools do not implement Wildbloom checkout, free mirroring
|
|
212
|
+
or an upload allowance. Signature validation does not authorise a purchase.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "402-mcp",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.4.0",
|
|
4
4
|
"mcpName": "dev.forgesworn/402-mcp",
|
|
5
5
|
"description": "L402 client MCP: AI agents discover, pay for and consume Lightning and ecash payment-gated APIs (x402 support is experimental)",
|
|
6
6
|
"type": "module",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"@modelcontextprotocol/ext-apps": "^1.3.1",
|
|
42
42
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
43
43
|
"@scure/base": "^2.0.0",
|
|
44
|
+
"402-announce": "2.3.0",
|
|
44
45
|
"cors": "^2.8.5",
|
|
45
46
|
"express": "^5.2.1",
|
|
46
47
|
"farrier-kit": "1.1.3",
|
|
@@ -54,7 +55,7 @@
|
|
|
54
55
|
},
|
|
55
56
|
"devDependencies": {
|
|
56
57
|
"@eslint/js": "^10.0.1",
|
|
57
|
-
"@forgesworn/toll-booth": "6.
|
|
58
|
+
"@forgesworn/toll-booth": "6.3.0",
|
|
58
59
|
"@types/cors": "^2.8.17",
|
|
59
60
|
"@types/express": "^5.0.0",
|
|
60
61
|
"@types/node": "^24.12.0",
|