@ashlar-blue/x402-trust 0.3.0 → 0.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 CHANGED
@@ -49,22 +49,38 @@ grammar below.
49
49
  The rest of this document is the building blocks `checkService` sits on, for
50
50
  callers who want the lower-level surface.
51
51
 
52
- ## The Open Catalog, self-hostable (staged for 0.2.0)
53
-
54
- Two further modules ship the catalog itself as a reference implementation —
55
- the "anyone can rebuild this from public data" claim, made executable:
56
-
57
- - **`open-catalog`** — the catalog engine: mirror the CDP Bazaar via its own
58
- public API (with attribution), crawl `discovery` records breadth-first with
59
- per-operator frontier-diversity bounds, and serve a provenance-tagged,
60
- sha256-digested snapshot. Run it yourself and you are an independent
61
- observer, not a mirror of ours.
62
- - **`catalog-mcp`** — a transport-free MCP server core for that catalog:
63
- stateless protocol revision 2026-07-28 primary, sessionless legacy
64
- `initialize` shim, four read tools, a signable Server Card, and evidence
65
- (snapshot digest + on-chain anchor) carried in BOTH `_meta` and readable
66
- content. Wire it to any HTTP framework in ~20 lines; every dependency is
67
- injected.
52
+ ## Model Context Protocol (MCP) Server
53
+
54
+ Connect any autonomous AI coding agent (Claude Desktop, Cursor, Antigravity, VS Code, or custom AI agents) directly to the x402 trust and discovery mesh via standard MCP over `stdio`:
55
+
56
+ ```bash
57
+ # Run standalone MCP server
58
+ npx @ashlar-blue/x402-trust mcp
59
+ ```
60
+
61
+ ### Claude Desktop / Cursor MCP Configuration:
62
+ ```json
63
+ {
64
+ "mcpServers": {
65
+ "x402-trust": {
66
+ "command": "npx",
67
+ "args": ["-y", "@ashlar-blue/x402-trust", "mcp"],
68
+ "env": {
69
+ "X402_NETWORK": "coston2"
70
+ }
71
+ }
72
+ }
73
+ }
74
+ ```
75
+
76
+ ### Supported MCP Tools:
77
+ - `x402_check_service`: Resolves DNS TXT (`_x402`) and `/.well-known/x402` to return a hardened `safeToPay` decision with full reasons.
78
+ - `x402_verify_attestation_entry`: Offline RFC 6962 Merkle verification of Intel TDX / AMD SEV TEE hardware quote measurements against a signed directory root.
79
+ - `x402_verify_transcript_inclusion`: Offline RFC 6962 Merkle verification of agent-to-agent session audit entries against a signed transcript root.
80
+ - `x402_verify_reconcile_row`: Offline verification of EIP-3009 / XRPL settlement reconciliation rows against a signed census root.
81
+ - `x402_catalog_search`: Filter and search the decentralized catalog of active x402 endpoints across discovery and bazaar-mirror lanes.
82
+ - `x402_catalog_get`: Retrieve complete provenance records and re-derivation recipes for any resource URL or hostname.
83
+ - `x402_catalog_stats`: Inspect network-wide node counts, active chains, and on-chain Coston2/Flare Merkle anchor hashes.
68
84
 
69
85
  ## Zero dependencies
70
86
 
@@ -83,9 +99,9 @@ npm install @ashlar-blue/x402-trust
83
99
  ```ts
84
100
  import { resolveX402 } from '@ashlar-blue/x402-trust';
85
101
 
86
- const r = await resolveX402('flareclaw.app');
102
+ const r = await resolveX402('ashlar.blue');
87
103
 
88
- r.via; // 'dns-txt' — found via _x402.flareclaw.app
104
+ r.via; // 'dns-txt' — found via _x402.ashlar.blue
89
105
  r.manifest.facilitator.baseUrl;
90
106
  r.liveKinds; // fetched from /supported — authoritative over the manifest
91
107
  r.kindsMatchLive; // false = the operator's manifest is stale
@@ -95,7 +111,7 @@ r.attestationUsable // false = treat any TEE claim as absent
95
111
  Runs in Node out of the box. In a browser or a worker, inject a DNS resolver (DoH) and it works unchanged:
96
112
 
97
113
  ```ts
98
- await resolveX402('flareclaw.app', { resolveTxt: myDohResolver, fetchImpl: fetch });
114
+ await resolveX402('ashlar.blue', { resolveTxt: myDohResolver, fetchImpl: fetch });
99
115
  ```
100
116
 
101
117
  ### What it refuses to do
@@ -184,7 +200,7 @@ import { encodeEvidenceRef, parseEvidenceRef, sameEvidence, canonicalJson } from
184
200
  const ref = encodeEvidenceRef({
185
201
  alg: 'sha256',
186
202
  hex: '...',
187
- ref: 'https://api.flareclaw.app/evidence/<digest>.json',
203
+ ref: 'https://api.ashlar.blue/evidence/<digest>.json',
188
204
  });
189
205
  // "x402ev/1; digest=sha256:...; ref=https://..."
190
206
  ```
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env node
2
+ // GENERATED from src/x402/cli.ts by scripts/sdk/sync-sdk.ts — do not edit here.
3
+ // The canonical module is the one FlareClaw runs in production; this is a copy so
4
+ // that what we publish and what we run cannot diverge. Edit the canonical file.
5
+ /**
6
+ * @ashlar-blue/x402-trust CLI & MCP Server Runner.
7
+ *
8
+ * Usage:
9
+ * npx @ashlar-blue/x402-trust mcp
10
+ * npx x402-mcp
11
+ */
12
+ import { startStdioMcpServer, MCP_SERVER_INFO } from './mcp-server.js';
13
+ import * as path from 'node:path';
14
+ const args = process.argv.slice(2);
15
+ const command = args[0] || 'mcp';
16
+ if (args.includes('--version') || args.includes('-v')) {
17
+ console.log(`${MCP_SERVER_INFO.name} v${MCP_SERVER_INFO.version}`);
18
+ process.exit(0);
19
+ }
20
+ if (args.includes('--help') || args.includes('-h')) {
21
+ console.log(`
22
+ Ashlar Blue x402 Trust Layer CLI & Model Context Protocol (MCP) Server
23
+
24
+ Commands:
25
+ mcp Start the MCP server over stdio (default)
26
+ --version, -v Show version
27
+ --help, -h Show this help message
28
+
29
+ Environment Variables:
30
+ X402_CATALOG_PATH Path to x402 catalog state JSON (optional)
31
+
32
+ Documentation:
33
+ https://ashlar.blue
34
+ https://github.com/correntelabs/ashlar-blue
35
+ `);
36
+ process.exit(0);
37
+ }
38
+ if (command === 'mcp') {
39
+ const catalogPath = process.env.X402_CATALOG_PATH || path.resolve(process.cwd(), 'data/x402-catalog.json');
40
+ startStdioMcpServer(catalogPath);
41
+ }
42
+ else {
43
+ console.error(`Unknown command: ${command}. Run with --help for available options.`);
44
+ process.exit(1);
45
+ }
46
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,gFAAgF;AAChF,kFAAkF;AAClF,gFAAgF;AAGhF;;;;;;GAMG;AAEH,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;AAEjC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,IAAI,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;CAcf,CAAC,CAAC;IACC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;IACpB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAC3G,mBAAmB,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;KAAM,CAAC;IACJ,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,0CAA0C,CAAC,CAAC;IACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -12,4 +12,5 @@ export * from './attested-directory.js';
12
12
  export * from './census-reconcile.js';
13
13
  export * from './directory-classify.js';
14
14
  export * from './trust-sdk.js';
15
+ export * from './mcp-server.js';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -15,4 +15,5 @@ export * from './attested-directory.js';
15
15
  export * from './census-reconcile.js';
16
16
  export * from './directory-classify.js';
17
17
  export * from './trust-sdk.js';
18
+ export * from './mcp-server.js';
18
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,gFAAgF;AAEhF,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,gFAAgF;AAEhF,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,191 @@
1
+ export declare const MCP_SERVER_INFO: {
2
+ readonly name: "@ashlar-blue/x402-trust";
3
+ readonly title: "Ashlar Blue x402 Trust Layer MCP Server";
4
+ readonly version: "0.4.0";
5
+ };
6
+ export declare const X402_MCP_TOOLS: readonly [{
7
+ readonly name: "x402_check_service";
8
+ readonly description: "Discover and verify an x402 payment endpoint by domain (DNS TXT _x402 + /.well-known/x402). Verifies same-origin requirements, attestation checkability, and live facilitator consistency, returning an authoritative safeToPay decision with full rationale.";
9
+ readonly inputSchema: {
10
+ readonly type: "object";
11
+ readonly properties: {
12
+ readonly domain: {
13
+ readonly type: "string";
14
+ readonly description: "Bare domain name or hostname to discover (e.g. \"api.flareclaw.app\" or \"correntelabs.com\")";
15
+ };
16
+ readonly requireAttestation: {
17
+ readonly type: "boolean";
18
+ readonly description: "If true, safeToPay requires an independently checkable hardware TEE attestation verifier (default: false)";
19
+ };
20
+ readonly requireLiveConsistent: {
21
+ readonly type: "boolean";
22
+ readonly description: "If true, safeToPay requires live facilitator /supported capability cross-check to pass (default: false)";
23
+ };
24
+ };
25
+ readonly required: readonly ["domain"];
26
+ };
27
+ }, {
28
+ readonly name: "x402_verify_attestation_entry";
29
+ readonly description: "Mathematically verify a hardware-attested directory entry (Intel TDX / AMD SEV quote measurement + MRTD hash) against a signed directory root. Pure math (RFC 6962), zero network, zero trust in intermediate servers.";
30
+ readonly inputSchema: {
31
+ readonly type: "object";
32
+ readonly properties: {
33
+ readonly entry: {
34
+ readonly type: "object";
35
+ readonly description: "The DirectoryEntry object containing domain, verdict, detail, and optional record";
36
+ };
37
+ readonly index: {
38
+ readonly type: "number";
39
+ readonly description: "Zero-based leaf index in the census";
40
+ };
41
+ readonly size: {
42
+ readonly type: "number";
43
+ readonly description: "Total number of entries in the census";
44
+ };
45
+ readonly proof: {
46
+ readonly type: "array";
47
+ readonly items: {
48
+ readonly type: "string";
49
+ };
50
+ readonly description: "Array of 32-byte hex sibling hashes forming the Merkle audit path";
51
+ };
52
+ readonly outputRoot: {
53
+ readonly type: "string";
54
+ readonly description: "The 32-byte hex signed outputRoot of the directory census";
55
+ };
56
+ };
57
+ readonly required: readonly ["entry", "index", "size", "proof", "outputRoot"];
58
+ };
59
+ }, {
60
+ readonly name: "x402_verify_transcript_inclusion";
61
+ readonly description: "Mathematically verify that a specific agent-to-agent session interaction {drawId, nonce, seed} is provably included in a signed Merkle transcript root (RFC 6962). Pure math, zero network.";
62
+ readonly inputSchema: {
63
+ readonly type: "object";
64
+ readonly properties: {
65
+ readonly entry: {
66
+ readonly type: "object";
67
+ readonly description: "The TranscriptEntry object with drawId, nonce, and seed";
68
+ };
69
+ readonly index: {
70
+ readonly type: "number";
71
+ readonly description: "Zero-based leaf index in the transcript";
72
+ };
73
+ readonly size: {
74
+ readonly type: "number";
75
+ readonly description: "Total number of entries in the transcript";
76
+ };
77
+ readonly proof: {
78
+ readonly type: "array";
79
+ readonly items: {
80
+ readonly type: "string";
81
+ };
82
+ readonly description: "Array of 32-byte hex sibling hashes forming the Merkle audit path";
83
+ };
84
+ readonly expectedRoot: {
85
+ readonly type: "string";
86
+ readonly description: "The expected 32-byte hex Merkle root";
87
+ };
88
+ };
89
+ readonly required: readonly ["entry", "index", "size", "proof", "expectedRoot"];
90
+ };
91
+ }, {
92
+ readonly name: "x402_verify_reconcile_row";
93
+ readonly description: "Verify a payment authorization settlement reconciliation row (EIP-3009 / XRPL) against its signed census root without network calls.";
94
+ readonly inputSchema: {
95
+ readonly type: "object";
96
+ readonly properties: {
97
+ readonly row: {
98
+ readonly type: "object";
99
+ readonly description: "The ReconcileRow containing domain, category, a, b, and note";
100
+ };
101
+ readonly index: {
102
+ readonly type: "number";
103
+ readonly description: "Zero-based row index in the reconciliation";
104
+ };
105
+ readonly size: {
106
+ readonly type: "number";
107
+ readonly description: "Total number of rows in the reconciliation";
108
+ };
109
+ readonly proof: {
110
+ readonly type: "array";
111
+ readonly items: {
112
+ readonly type: "string";
113
+ };
114
+ readonly description: "Array of 32-byte hex sibling hashes";
115
+ };
116
+ readonly rowsRoot: {
117
+ readonly type: "string";
118
+ readonly description: "The expected signed rowsRoot (hex string)";
119
+ };
120
+ };
121
+ readonly required: readonly ["row", "index", "size", "proof", "rowsRoot"];
122
+ };
123
+ }, {
124
+ readonly name: "x402_catalog_search";
125
+ readonly description: "Search the open x402 resource directory with provenance tags (Bazaar-mirror vs discovery). Filter by network, source, or independently checkable attestation.";
126
+ readonly inputSchema: {
127
+ readonly type: "object";
128
+ readonly properties: {
129
+ readonly source: {
130
+ readonly type: "string";
131
+ readonly enum: readonly ["bazaar-mirror", "discovery"];
132
+ readonly description: "Filter by provenance lane";
133
+ };
134
+ readonly network: {
135
+ readonly type: "string";
136
+ readonly description: "Blockchain network identifier (e.g. \"coston2\", \"flare\", \"base\", \"eip155:114\")";
137
+ };
138
+ readonly attested: {
139
+ readonly type: "boolean";
140
+ readonly description: "If true, only return entries with independently checkable attestation claims";
141
+ };
142
+ readonly limit: {
143
+ readonly type: "number";
144
+ readonly description: "Number of rows to return (default: 50, max: 500)";
145
+ };
146
+ readonly offset: {
147
+ readonly type: "number";
148
+ readonly description: "Pagination offset";
149
+ };
150
+ };
151
+ };
152
+ }, {
153
+ readonly name: "x402_catalog_get";
154
+ readonly description: "Look up verified Open Catalog records for an exact resource URL, prefix, or domain across both discovery and bazaar-mirror lanes.";
155
+ readonly inputSchema: {
156
+ readonly type: "object";
157
+ readonly properties: {
158
+ readonly resource: {
159
+ readonly type: "string";
160
+ readonly description: "Resource URL or bare hostname";
161
+ };
162
+ };
163
+ readonly required: readonly ["resource"];
164
+ };
165
+ }, {
166
+ readonly name: "x402_catalog_stats";
167
+ readonly description: "Retrieve high-level network statistics: total mirrored vs discovered vs attested services, network distribution, and the on-chain Coston2/Flare anchor hash.";
168
+ readonly inputSchema: {
169
+ readonly type: "object";
170
+ readonly properties: {};
171
+ };
172
+ }];
173
+ /** Handle a single JSON-RPC 2.0 request */
174
+ export declare function handleMcpRequest(request: {
175
+ jsonrpc?: string;
176
+ id?: string | number | null;
177
+ method?: string;
178
+ params?: Record<string, any>;
179
+ }, catalogStatePath?: string): Promise<{
180
+ jsonrpc: '2.0';
181
+ id: string | number | null;
182
+ result?: any;
183
+ error?: {
184
+ code: number;
185
+ message: string;
186
+ data?: any;
187
+ };
188
+ }>;
189
+ /** Run the MCP server over standard input/output (stdio) */
190
+ export declare function startStdioMcpServer(catalogStatePath?: string): void;
191
+ //# sourceMappingURL=mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwKjB,CAAC;AAEX,2CAA2C;AAC3C,wBAAsB,gBAAgB,CAClC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,EACzG,gBAAgB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE,CAAA;CAAE,CAAC,CAsV9H;AAED,4DAA4D;AAC5D,wBAAgB,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,QAyB5D"}
@@ -0,0 +1,536 @@
1
+ // GENERATED from src/x402/mcp-server.ts by scripts/sdk/sync-sdk.ts — do not edit here.
2
+ // The canonical module is the one FlareClaw runs in production; this is a copy so
3
+ // that what we publish and what we run cannot diverge. Edit the canonical file.
4
+ /**
5
+ * @ashlar-blue/x402-trust — Standard Model Context Protocol (MCP) Server.
6
+ *
7
+ * Implements the official MCP Specification over stdio (for Claude Desktop,
8
+ * Cursor, Antigravity, VS Code, and local AI agent workers) with zero external
9
+ * runtime dependencies.
10
+ */
11
+ import * as readline from 'node:readline';
12
+ import { checkService } from './trust-sdk.js';
13
+ import { verifyEntry } from './attested-directory.js';
14
+ import { verifyInclusion } from './merkle-transcript.js';
15
+ import { verifyRow } from './census-reconcile.js';
16
+ import { queryCatalog, catalogStats, catalogSnapshotDigest, loadCatalog, } from './open-catalog.js';
17
+ export const MCP_SERVER_INFO = {
18
+ name: '@ashlar-blue/x402-trust',
19
+ title: 'Ashlar Blue x402 Trust Layer MCP Server',
20
+ version: '0.4.0',
21
+ };
22
+ export const X402_MCP_TOOLS = [
23
+ {
24
+ name: 'x402_check_service',
25
+ description: 'Discover and verify an x402 payment endpoint by domain (DNS TXT _x402 + /.well-known/x402). Verifies same-origin requirements, attestation checkability, and live facilitator consistency, returning an authoritative safeToPay decision with full rationale.',
26
+ inputSchema: {
27
+ type: 'object',
28
+ properties: {
29
+ domain: {
30
+ type: 'string',
31
+ description: 'Bare domain name or hostname to discover (e.g. "api.flareclaw.app" or "correntelabs.com")',
32
+ },
33
+ requireAttestation: {
34
+ type: 'boolean',
35
+ description: 'If true, safeToPay requires an independently checkable hardware TEE attestation verifier (default: false)',
36
+ },
37
+ requireLiveConsistent: {
38
+ type: 'boolean',
39
+ description: 'If true, safeToPay requires live facilitator /supported capability cross-check to pass (default: false)',
40
+ },
41
+ },
42
+ required: ['domain'],
43
+ },
44
+ },
45
+ {
46
+ name: 'x402_verify_attestation_entry',
47
+ description: 'Mathematically verify a hardware-attested directory entry (Intel TDX / AMD SEV quote measurement + MRTD hash) against a signed directory root. Pure math (RFC 6962), zero network, zero trust in intermediate servers.',
48
+ inputSchema: {
49
+ type: 'object',
50
+ properties: {
51
+ entry: {
52
+ type: 'object',
53
+ description: 'The DirectoryEntry object containing domain, verdict, detail, and optional record',
54
+ },
55
+ index: {
56
+ type: 'number',
57
+ description: 'Zero-based leaf index in the census',
58
+ },
59
+ size: {
60
+ type: 'number',
61
+ description: 'Total number of entries in the census',
62
+ },
63
+ proof: {
64
+ type: 'array',
65
+ items: { type: 'string' },
66
+ description: 'Array of 32-byte hex sibling hashes forming the Merkle audit path',
67
+ },
68
+ outputRoot: {
69
+ type: 'string',
70
+ description: 'The 32-byte hex signed outputRoot of the directory census',
71
+ },
72
+ },
73
+ required: ['entry', 'index', 'size', 'proof', 'outputRoot'],
74
+ },
75
+ },
76
+ {
77
+ name: 'x402_verify_transcript_inclusion',
78
+ description: 'Mathematically verify that a specific agent-to-agent session interaction {drawId, nonce, seed} is provably included in a signed Merkle transcript root (RFC 6962). Pure math, zero network.',
79
+ inputSchema: {
80
+ type: 'object',
81
+ properties: {
82
+ entry: {
83
+ type: 'object',
84
+ description: 'The TranscriptEntry object with drawId, nonce, and seed',
85
+ },
86
+ index: {
87
+ type: 'number',
88
+ description: 'Zero-based leaf index in the transcript',
89
+ },
90
+ size: {
91
+ type: 'number',
92
+ description: 'Total number of entries in the transcript',
93
+ },
94
+ proof: {
95
+ type: 'array',
96
+ items: { type: 'string' },
97
+ description: 'Array of 32-byte hex sibling hashes forming the Merkle audit path',
98
+ },
99
+ expectedRoot: {
100
+ type: 'string',
101
+ description: 'The expected 32-byte hex Merkle root',
102
+ },
103
+ },
104
+ required: ['entry', 'index', 'size', 'proof', 'expectedRoot'],
105
+ },
106
+ },
107
+ {
108
+ name: 'x402_verify_reconcile_row',
109
+ description: 'Verify a payment authorization settlement reconciliation row (EIP-3009 / XRPL) against its signed census root without network calls.',
110
+ inputSchema: {
111
+ type: 'object',
112
+ properties: {
113
+ row: {
114
+ type: 'object',
115
+ description: 'The ReconcileRow containing domain, category, a, b, and note',
116
+ },
117
+ index: {
118
+ type: 'number',
119
+ description: 'Zero-based row index in the reconciliation',
120
+ },
121
+ size: {
122
+ type: 'number',
123
+ description: 'Total number of rows in the reconciliation',
124
+ },
125
+ proof: {
126
+ type: 'array',
127
+ items: { type: 'string' },
128
+ description: 'Array of 32-byte hex sibling hashes',
129
+ },
130
+ rowsRoot: {
131
+ type: 'string',
132
+ description: 'The expected signed rowsRoot (hex string)',
133
+ },
134
+ },
135
+ required: ['row', 'index', 'size', 'proof', 'rowsRoot'],
136
+ },
137
+ },
138
+ {
139
+ name: 'x402_catalog_search',
140
+ description: 'Search the open x402 resource directory with provenance tags (Bazaar-mirror vs discovery). Filter by network, source, or independently checkable attestation.',
141
+ inputSchema: {
142
+ type: 'object',
143
+ properties: {
144
+ source: {
145
+ type: 'string',
146
+ enum: ['bazaar-mirror', 'discovery'],
147
+ description: 'Filter by provenance lane',
148
+ },
149
+ network: {
150
+ type: 'string',
151
+ description: 'Blockchain network identifier (e.g. "coston2", "flare", "base", "eip155:114")',
152
+ },
153
+ attested: {
154
+ type: 'boolean',
155
+ description: 'If true, only return entries with independently checkable attestation claims',
156
+ },
157
+ limit: {
158
+ type: 'number',
159
+ description: 'Number of rows to return (default: 50, max: 500)',
160
+ },
161
+ offset: {
162
+ type: 'number',
163
+ description: 'Pagination offset',
164
+ },
165
+ },
166
+ },
167
+ },
168
+ {
169
+ name: 'x402_catalog_get',
170
+ description: 'Look up verified Open Catalog records for an exact resource URL, prefix, or domain across both discovery and bazaar-mirror lanes.',
171
+ inputSchema: {
172
+ type: 'object',
173
+ properties: {
174
+ resource: {
175
+ type: 'string',
176
+ description: 'Resource URL or bare hostname',
177
+ },
178
+ },
179
+ required: ['resource'],
180
+ },
181
+ },
182
+ {
183
+ name: 'x402_catalog_stats',
184
+ description: 'Retrieve high-level network statistics: total mirrored vs discovered vs attested services, network distribution, and the on-chain Coston2/Flare anchor hash.',
185
+ inputSchema: {
186
+ type: 'object',
187
+ properties: {},
188
+ },
189
+ },
190
+ ];
191
+ /** Handle a single JSON-RPC 2.0 request */
192
+ export async function handleMcpRequest(request, catalogStatePath) {
193
+ const id = request.id ?? null;
194
+ if (!request || typeof request !== 'object' || request.jsonrpc !== '2.0') {
195
+ return { jsonrpc: '2.0', id, error: { code: -32600, message: 'Invalid Request: jsonrpc must be "2.0"' } };
196
+ }
197
+ switch (request.method) {
198
+ case 'initialize': {
199
+ return {
200
+ jsonrpc: '2.0',
201
+ id,
202
+ result: {
203
+ protocolVersion: '2026-07-28',
204
+ capabilities: {
205
+ tools: {
206
+ listChanged: false,
207
+ },
208
+ },
209
+ serverInfo: MCP_SERVER_INFO,
210
+ instructions: 'Ashlar Blue x402 Trust Layer MCP Server: autonomous AI agent toolchain for DNS-over-HTTPS payment discovery (draft-hawkins-x402-dns-discovery), hardware TEE attestation verification, and SCITT Merkle proof verification.',
211
+ },
212
+ };
213
+ }
214
+ case 'notifications/initialized': {
215
+ return { jsonrpc: '2.0', id, result: {} };
216
+ }
217
+ case 'ping': {
218
+ return { jsonrpc: '2.0', id, result: {} };
219
+ }
220
+ case 'tools/list': {
221
+ return {
222
+ jsonrpc: '2.0',
223
+ id,
224
+ result: {
225
+ tools: X402_MCP_TOOLS,
226
+ },
227
+ };
228
+ }
229
+ case 'tools/call': {
230
+ const params = request.params;
231
+ if (!params || typeof params !== 'object' || typeof params.name !== 'string') {
232
+ return { jsonrpc: '2.0', id, error: { code: -32602, message: 'Invalid params: "name" is required' } };
233
+ }
234
+ const name = params.name;
235
+ const args = params.arguments || {};
236
+ try {
237
+ switch (name) {
238
+ case 'x402_check_service': {
239
+ const domain = String(args.domain || '').trim();
240
+ if (!domain) {
241
+ return {
242
+ jsonrpc: '2.0',
243
+ id,
244
+ result: {
245
+ content: [{ type: 'text', text: 'Error: domain parameter is required.' }],
246
+ isError: true,
247
+ },
248
+ };
249
+ }
250
+ const trust = await checkService(domain, {
251
+ requireAttestation: Boolean(args.requireAttestation),
252
+ requireLiveConsistent: Boolean(args.requireLiveConsistent),
253
+ });
254
+ const textSummary = [
255
+ `Service Trust Decision for: ${trust.domain}`,
256
+ `Safe to Pay: ${trust.safeToPay ? '✅ YES' : '❌ NO'}`,
257
+ `Discoverable: ${trust.discoverable ? `Yes (via ${trust.via})` : 'No'}`,
258
+ `Hardware Attested: ${trust.attested ? (trust.attestationCheckable ? 'Yes (Independently Checkable)' : 'Claimed (Off-Origin)') : 'None'}`,
259
+ `Live Consistent: ${trust.liveConsistent === null ? 'N/A' : trust.liveConsistent ? 'Consistent' : 'Inconsistent'}`,
260
+ trust.reasons.length ? `Reasons:\n - ${trust.reasons.join('\n - ')}` : '',
261
+ trust.warnings.length ? `Warnings:\n - ${trust.warnings.join('\n - ')}` : '',
262
+ ].filter(Boolean).join('\n');
263
+ return {
264
+ jsonrpc: '2.0',
265
+ id,
266
+ result: {
267
+ content: [{ type: 'text', text: textSummary }],
268
+ structuredContent: trust,
269
+ isError: false,
270
+ },
271
+ };
272
+ }
273
+ case 'x402_verify_attestation_entry': {
274
+ const entry = args.entry;
275
+ const index = Number(args.index);
276
+ const size = Number(args.size);
277
+ const proof = Array.isArray(args.proof) ? args.proof.map(String) : [];
278
+ const outputRoot = String(args.outputRoot || '');
279
+ if (!entry || !Number.isInteger(index) || !Number.isInteger(size) || !outputRoot) {
280
+ return {
281
+ jsonrpc: '2.0',
282
+ id,
283
+ result: {
284
+ content: [{ type: 'text', text: 'Error: entry, index, size, proof, and outputRoot are required.' }],
285
+ isError: true,
286
+ },
287
+ };
288
+ }
289
+ const ok = verifyEntry(entry, index, size, proof, outputRoot);
290
+ return {
291
+ jsonrpc: '2.0',
292
+ id,
293
+ result: {
294
+ content: [{
295
+ type: 'text',
296
+ text: ok
297
+ ? `✅ Attestation Entry Verified: Merkle proof for ${entry.domain} matches signed root ${outputRoot}.`
298
+ : `❌ Verification Failed: Entry does not match signed root ${outputRoot}.`,
299
+ }],
300
+ structuredContent: { verified: ok, domain: entry.domain, outputRoot },
301
+ isError: !ok,
302
+ },
303
+ };
304
+ }
305
+ case 'x402_verify_transcript_inclusion': {
306
+ const entry = args.entry;
307
+ const index = Number(args.index);
308
+ const size = Number(args.size);
309
+ const proof = Array.isArray(args.proof) ? args.proof.map(String) : [];
310
+ const expectedRoot = String(args.expectedRoot || '');
311
+ if (!entry || !Number.isInteger(index) || !Number.isInteger(size) || !expectedRoot) {
312
+ return {
313
+ jsonrpc: '2.0',
314
+ id,
315
+ result: {
316
+ content: [{ type: 'text', text: 'Error: entry, index, size, proof, and expectedRoot are required.' }],
317
+ isError: true,
318
+ },
319
+ };
320
+ }
321
+ const ok = verifyInclusion(entry, index, size, proof, expectedRoot);
322
+ return {
323
+ jsonrpc: '2.0',
324
+ id,
325
+ result: {
326
+ content: [{
327
+ type: 'text',
328
+ text: ok
329
+ ? `✅ Transcript Inclusion Verified: Entry ${entry.drawId} is provably included in Merkle root ${expectedRoot}.`
330
+ : `❌ Verification Failed: Proof invalid for Merkle root ${expectedRoot}.`,
331
+ }],
332
+ structuredContent: { verified: ok, drawId: entry.drawId, expectedRoot },
333
+ isError: !ok,
334
+ },
335
+ };
336
+ }
337
+ case 'x402_verify_reconcile_row': {
338
+ const row = args.row;
339
+ const index = Number(args.index);
340
+ const size = Number(args.size);
341
+ const proof = Array.isArray(args.proof) ? args.proof.map(String) : [];
342
+ const rowsRoot = String(args.rowsRoot || '');
343
+ if (!row || !Number.isInteger(index) || !Number.isInteger(size) || !rowsRoot) {
344
+ return {
345
+ jsonrpc: '2.0',
346
+ id,
347
+ result: {
348
+ content: [{ type: 'text', text: 'Error: row, index, size, proof, and rowsRoot are required.' }],
349
+ isError: true,
350
+ },
351
+ };
352
+ }
353
+ const ok = verifyRow(row, index, size, proof, rowsRoot);
354
+ return {
355
+ jsonrpc: '2.0',
356
+ id,
357
+ result: {
358
+ content: [{
359
+ type: 'text',
360
+ text: ok
361
+ ? `✅ Settlement Row Verified: Domain ${row.domain} status matches root ${rowsRoot}.`
362
+ : `❌ Settlement Row Verification Failed against root ${rowsRoot}.`,
363
+ }],
364
+ structuredContent: { verified: ok, domain: row.domain, category: row.category, rowsRoot },
365
+ isError: !ok,
366
+ },
367
+ };
368
+ }
369
+ case 'x402_catalog_search': {
370
+ const q = {
371
+ ...(args.source === 'bazaar-mirror' || args.source === 'discovery' ? { source: args.source } : {}),
372
+ ...(typeof args.network === 'string' ? { network: args.network } : {}),
373
+ ...(args.attested === true ? { attested: true } : {}),
374
+ ...(typeof args.limit === 'number' ? { limit: args.limit } : {}),
375
+ ...(typeof args.offset === 'number' ? { offset: args.offset } : {}),
376
+ };
377
+ const statePath = catalogStatePath || '';
378
+ let r;
379
+ try {
380
+ r = queryCatalog(q, statePath);
381
+ }
382
+ catch (e) {
383
+ return {
384
+ jsonrpc: '2.0',
385
+ id,
386
+ result: {
387
+ content: [{ type: 'text', text: `Catalog query unavailable: ${e?.message || e}` }],
388
+ isError: true,
389
+ },
390
+ };
391
+ }
392
+ return {
393
+ jsonrpc: '2.0',
394
+ id,
395
+ result: {
396
+ content: [{
397
+ type: 'text',
398
+ text: `Found ${r.pagination.total} matching entries (showing ${r.rows.length} from offset ${r.pagination.offset}).`,
399
+ }],
400
+ structuredContent: r,
401
+ isError: false,
402
+ },
403
+ };
404
+ }
405
+ case 'x402_catalog_get': {
406
+ const needle = typeof args.resource === 'string' ? args.resource.trim().toLowerCase() : '';
407
+ if (!needle) {
408
+ return {
409
+ jsonrpc: '2.0',
410
+ id,
411
+ result: {
412
+ content: [{ type: 'text', text: 'Error: resource parameter is required.' }],
413
+ isError: true,
414
+ },
415
+ };
416
+ }
417
+ const statePath = catalogStatePath || '';
418
+ let matches = [];
419
+ try {
420
+ const s = loadCatalog(statePath);
421
+ for (const d of s.discovered || []) {
422
+ const base = (d.baseUrl ?? `https://${d.domain}`).toLowerCase();
423
+ if (d.domain.toLowerCase() === needle || base === needle || base.startsWith(needle)
424
+ || (d.resources || []).some((u) => u.toLowerCase().startsWith(needle))) {
425
+ matches.push({ source: 'discovery', ...d });
426
+ }
427
+ if (matches.length >= 50)
428
+ break;
429
+ }
430
+ for (const m of s.mirror || []) {
431
+ const resStr = (m.resource || '').toLowerCase();
432
+ if (resStr === needle || resStr.startsWith(needle) || resStr.includes(`//${needle}/`) || resStr.endsWith(`//${needle}`)) {
433
+ matches.push({ source: 'bazaar-mirror', ...m });
434
+ }
435
+ if (matches.length >= 50)
436
+ break;
437
+ }
438
+ }
439
+ catch (e) {
440
+ // Empty state is acceptable
441
+ }
442
+ return {
443
+ jsonrpc: '2.0',
444
+ id,
445
+ result: {
446
+ content: [{
447
+ type: 'text',
448
+ text: matches.length
449
+ ? `Found ${matches.length} catalog record(s) matching "${needle}".`
450
+ : `No catalog records found matching "${needle}".`,
451
+ }],
452
+ structuredContent: { matches },
453
+ isError: false,
454
+ },
455
+ };
456
+ }
457
+ case 'x402_catalog_stats': {
458
+ const statePath = catalogStatePath || '';
459
+ let digest = null;
460
+ let stats = {
461
+ mirrored: 0,
462
+ discovered: 0,
463
+ attested: 0,
464
+ networksExcludedByBazaar: [],
465
+ };
466
+ try {
467
+ digest = catalogSnapshotDigest(statePath);
468
+ const rawStats = catalogStats(statePath);
469
+ stats = {
470
+ mirrored: rawStats.mirrored,
471
+ discovered: rawStats.discovered,
472
+ attested: rawStats.attested,
473
+ networksExcludedByBazaar: rawStats.networksExcludedByBazaar,
474
+ };
475
+ }
476
+ catch {
477
+ // graceful fallback
478
+ }
479
+ return {
480
+ jsonrpc: '2.0',
481
+ id,
482
+ result: {
483
+ content: [{
484
+ type: 'text',
485
+ text: `x402 Open Catalog Stats:\n- Mirrored Endpoints: ${stats.mirrored}\n- Discovered Services: ${stats.discovered}\n- Independently Attested: ${stats.attested}\n- Snapshot Digest: ${digest || 'none'}\n- Primary Anchoring Rail: Coston2 / Flare Network`,
486
+ }],
487
+ structuredContent: { stats, snapshotDigest: digest },
488
+ isError: false,
489
+ },
490
+ };
491
+ }
492
+ default:
493
+ return { jsonrpc: '2.0', id, error: { code: -32601, message: `Tool not found: ${name}` } };
494
+ }
495
+ }
496
+ catch (err) {
497
+ return {
498
+ jsonrpc: '2.0',
499
+ id,
500
+ result: {
501
+ content: [{ type: 'text', text: `Tool execution failed: ${err?.message || err}` }],
502
+ isError: true,
503
+ },
504
+ };
505
+ }
506
+ }
507
+ default:
508
+ return { jsonrpc: '2.0', id, error: { code: -32601, message: `Method not found: ${request.method}` } };
509
+ }
510
+ }
511
+ /** Run the MCP server over standard input/output (stdio) */
512
+ export function startStdioMcpServer(catalogStatePath) {
513
+ const rl = readline.createInterface({
514
+ input: process.stdin,
515
+ output: process.stdout,
516
+ terminal: false,
517
+ });
518
+ rl.on('line', async (line) => {
519
+ const trimmed = line.trim();
520
+ if (!trimmed)
521
+ return;
522
+ let parsed;
523
+ try {
524
+ parsed = JSON.parse(trimmed);
525
+ }
526
+ catch {
527
+ const errResp = { jsonrpc: '2.0', id: null, error: { code: -32700, message: 'Parse error: malformed JSON' } };
528
+ process.stdout.write(JSON.stringify(errResp) + '\n');
529
+ return;
530
+ }
531
+ const answer = await handleMcpRequest(parsed, catalogStatePath);
532
+ process.stdout.write(JSON.stringify(answer) + '\n');
533
+ });
534
+ process.stderr.write(`[x402-mcp] Server ${MCP_SERVER_INFO.name}@${MCP_SERVER_INFO.version} listening on stdio (PID ${process.pid})\n`);
535
+ }
536
+ //# sourceMappingURL=mcp-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"open-catalog.d.ts","sourceRoot":"","sources":["../src/open-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-catalog.d.ts","sourceRoot":"","sources":["../src/open-catalog.ts"],"names":[],"mappings":"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"}
@@ -102,7 +102,7 @@ export function registrableDomainOf(domain) {
102
102
  return clean.split('.').slice(-2).join('.');
103
103
  }
104
104
  /** Domains we re-resolve every refresh; peers extend from here. */
105
- export const SEED_DOMAINS = ['flareclaw.app', 'api.flareclaw.app', 'testnet.flareclaw.app'];
105
+ export const SEED_DOMAINS = ['ashlar.blue', 'api.ashlar.blue', 'correntelabs.com'];
106
106
  function emptyState() {
107
107
  return { mirror: [], mirrorTotalUpstream: 0, mirrorFetchedAt: null, discovered: [], crawledAt: null };
108
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"open-catalog.js","sourceRoot":"","sources":["../src/open-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-catalog.js","sourceRoot":"","sources":["../src/open-catalog.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "name": "@ashlar-blue/x402-trust",
3
- "version": "0.3.0",
4
- "description": "The institutional trust layer for autonomous AI agents: discover payment endpoints via DNS, verify TEE hardware quotes, and generate SCITT transparency receipts. Zero dependencies.",
3
+ "version": "0.4.0",
4
+ "description": "The institutional trust layer for autonomous AI agents: discover payment endpoints via DNS, verify TEE hardware quotes, generate SCITT receipts, and run Model Context Protocol (MCP) toolchains. Zero dependencies.",
5
5
  "keywords": [
6
6
  "x402",
7
+ "mcp",
8
+ "model-context-protocol",
7
9
  "agents",
8
10
  "payments",
9
11
  "attestation",
@@ -18,6 +20,10 @@
18
20
  "type": "module",
19
21
  "main": "./dist/index.js",
20
22
  "types": "./dist/index.d.ts",
23
+ "bin": {
24
+ "x402-trust": "dist/cli.js",
25
+ "x402-mcp": "dist/cli.js"
26
+ },
21
27
  "exports": {
22
28
  ".": {
23
29
  "types": "./dist/index.d.ts",