@piprail/sdk 2.0.2 → 2.1.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/index.d.cts CHANGED
@@ -4489,8 +4489,24 @@ interface DiscoveredResource {
4489
4489
  name?: string;
4490
4490
  description?: string;
4491
4491
  category?: string;
4492
+ /** Free-text tags/keywords, when the index reports them. */
4493
+ tags?: string[];
4492
4494
  /** Advertised price in USD, when the index reports one (402 Index). */
4493
4495
  priceUsd?: number;
4496
+ /** Health/uptime score 0–100, when the index reports one (402 Index `reliability_score`).
4497
+ * Higher = a more reliable, consistently-probeable endpoint — sort/filter on it to
4498
+ * skip flaky resources. Absent for indexes that don't measure it (Bazaar). */
4499
+ reliabilityScore?: number;
4500
+ /** Liveness as the index last probed it, e.g. `'healthy'` / `'degraded'` / `'down'`
4501
+ * (402 Index `health_status`). Absent where unmeasured. */
4502
+ health?: string;
4503
+ /** Whether the listing's domain is verified at the index (402 Index `domain_verified`).
4504
+ * A verified resource is a stronger trust + relevance signal. Absent where the index
4505
+ * has no such concept (Bazaar). */
4506
+ verified?: boolean;
4507
+ /** Relevance score for the active query (set by {@link rankResources}); higher ranks
4508
+ * first. Absent when no query was given (results keep first-seen / sort order). */
4509
+ score?: number;
4494
4510
  /** The payment options the index advertises (best-effort, cross-scheme). */
4495
4511
  rails: DiscoveredRail[];
4496
4512
  }
@@ -4521,13 +4537,46 @@ interface RegisterOutcome {
4521
4537
  * x402scan, so a live listing there won't appear in discover() results". */
4522
4538
  note?: string;
4523
4539
  }
4540
+ /** How to order results. `'relevance'` (the default when a {@link SearchOpenIndexesOptions.query}
4541
+ * is given) ranks by query match via {@link rankResources}; the rest sort by a single field
4542
+ * (descending unless `order:'asc'`), using each index's reported value (unknowns sort last). */
4543
+ type DiscoverySort = 'relevance' | 'reliability' | 'price' | 'uptime' | 'latency' | 'name';
4524
4544
  interface SearchOpenIndexesOptions {
4525
- /** Free-text query (filtered client-side against name/description/resource). */
4545
+ /**
4546
+ * Free-text query. Tokenized and matched across name / description / category / URL:
4547
+ * 402 Index is searched server-side (one request per token, unioned — so a multi-word
4548
+ * query like `"piprail demo"` still finds a resource that matches each word, which the
4549
+ * index's own AND-tokenized `?q=` would miss), the Bazaar list is filtered client-side,
4550
+ * and the merged set is ranked by relevance ({@link rankResources}).
4551
+ */
4526
4552
  query?: string;
4527
4553
  /** Which indexes to read. Default `['bazaar', '402index']` (both free). */
4528
4554
  sources?: DiscoverySource[];
4529
- /** Max results per source before dedupe. Default 20. */
4555
+ /** Max results to FETCH per index request. Default 20. */
4530
4556
  limit?: number;
4557
+ /** Keep ONLY this category (prefix match, case-insensitive) — strict: a resource the
4558
+ * index didn't categorize is dropped (pushed to 402 Index server-side too). */
4559
+ category?: string;
4560
+ /** Keep only resources paying in this asset symbol, e.g. `'USDC'` (pushed to 402 Index;
4561
+ * applied client-side elsewhere, keeping items whose asset the index didn't report). */
4562
+ asset?: string;
4563
+ /** Drop results advertised above this USD price (results with no advertised price pass). */
4564
+ maxPrice?: number;
4565
+ /** Drop results whose reliability score is BELOW this (0–100). Results with no reported
4566
+ * score pass through — use {@link DiscoveredResource.reliabilityScore} to inspect. */
4567
+ minReliability?: number;
4568
+ /** Prefer verified listings (402 Index `verified=true`, server-side). NOTE: 402 Index's
4569
+ * `verified` flag and its per-record `domain_verified` differ, so this is applied at the
4570
+ * index, not re-filtered client-side; sources without a verified concept pass through.
4571
+ * Inspect {@link DiscoveredResource.verified} for the per-record ownership signal. */
4572
+ verified?: boolean;
4573
+ /** Restrict to listings the index confirmed are payable x402 (402 Index `payment_valid=true`). */
4574
+ paymentValid?: boolean;
4575
+ /** Result ordering — see {@link DiscoverySort}. Default `'relevance'` with a query, else
4576
+ * first-seen order (source priority). */
4577
+ sort?: DiscoverySort;
4578
+ /** Sort direction for a non-relevance {@link sort}. Default `'desc'`. */
4579
+ order?: 'asc' | 'desc';
4531
4580
  signal?: AbortSignal;
4532
4581
  }
4533
4582
  /** What a merchant submits to register one resource on the open indexes. */
@@ -4542,6 +4591,28 @@ interface RegisterInput {
4542
4591
  network?: string;
4543
4592
  /** HTTP method the resource answers on. Default 'GET'. */
4544
4593
  method?: string;
4594
+ /**
4595
+ * A category for the listing, e.g. `'ai'`, `'finance'`, `'data'`. The single
4596
+ * highest-leverage field for findability: most of 402 Index's catalog is
4597
+ * `uncategorized`, so a real category makes a resource rank + filter where almost
4598
+ * nothing else does. Free-text; pick the obvious bucket for what the endpoint does.
4599
+ */
4600
+ category?: string;
4601
+ /**
4602
+ * Keywords for the listing. 402 Index search is literal (a term must appear in the
4603
+ * name or description to match), so these are folded into the description as a compact
4604
+ * keyword tail — making the resource findable by each term — and also sent as a `tags`
4605
+ * field for any index that indexes them natively. Skipped if already present / over the
4606
+ * length cap (same tasteful rules as the attribution suffix).
4607
+ */
4608
+ tags?: string[];
4609
+ /** Who runs the resource (provider/org name) — 402 Index `provider` metadata. */
4610
+ provider?: string;
4611
+ /** Contact email for the listing (402 Index `contact_email`) — also used by domain claim. */
4612
+ contactEmail?: string;
4613
+ /** A JSON request body 402 Index should send when health-checking a POST/PUT resource
4614
+ * (402 Index `probe_body`), so probes succeed and the reliability score stays high. */
4615
+ probeBody?: unknown;
4545
4616
  /**
4546
4617
  * Attribute the listing to PipRail. **Default ON** (set `false` to opt out). When on, the
4547
4618
  * payload gets a `via: '@piprail/sdk'` provenance field AND a compact `· Built with
@@ -4602,11 +4673,28 @@ declare function decorateOutcome(o: RegisterOutcome): RegisterOutcome;
4602
4673
  * "unresolved — don't hide it" rather than a confident mismatch. */
4603
4674
  declare function normalizeNetwork(network: string): string;
4604
4675
  /**
4605
- * Search the open indexes for payable resources, in parallel, and merge them
4606
- * (deduped by resource URL — the first source in `sources` wins). NEVER throws:
4607
- * any index that errors, times out, or changes shape contributes `[]`.
4676
+ * Search the open indexes for payable resources, in parallel, and merge them into
4677
+ * one ranked list (deduped by resource URL — the first source in `sources` wins).
4678
+ * NEVER throws: any index that errors, times out, or changes shape contributes `[]`.
4679
+ *
4680
+ * Pipeline: fetch (402 Index server-side, with a per-token fan-out for multi-word
4681
+ * queries + server-side filters; Bazaar list, filtered client-side) → merge + dedupe
4682
+ * → client-side filters ({@link SearchOpenIndexesOptions.maxPrice}/`category`/`asset`/
4683
+ * `minReliability`, all keeping items the index didn't annotate) → rank/sort.
4608
4684
  */
4609
4685
  declare function searchOpenIndexes(opts?: SearchOpenIndexesOptions): Promise<DiscoveredResource[]>;
4686
+ /** Relevance score of one resource for a tokenized query. Exact token hits score full
4687
+ * weight; a substring/prefix hit scores a fraction (only for tokens ≥4 chars, so short
4688
+ * words like "ai"/"for" don't fuzz-match noise). A resource matching EVERY query token
4689
+ * gets a big "complete match" bonus (this is what makes multi-word queries pinpoint).
4690
+ * Returns 0 when nothing matched (the caller drops those). */
4691
+ declare function scoreResource(r: DiscoveredResource, queryTokens: string[]): number;
4692
+ /**
4693
+ * Rank resources by relevance to `query`, dropping non-matches and stamping each kept
4694
+ * resource with its `score` (descending). Pure + stable: equal scores keep input order
4695
+ * (so the dedupe's source priority survives a tie). No query → returned unchanged.
4696
+ */
4697
+ declare function rankResources(items: DiscoveredResource[], query: string | undefined): DiscoveredResource[];
4610
4698
  /**
4611
4699
  * Register a resource on **402 Index** — the primary, friction-free path: a
4612
4700
  * single POST, no auth, no signature, no payment. A self-registered listing is
@@ -4687,6 +4775,14 @@ declare const REGISTER_ATTRIBUTION = "\u00B7 Built with @piprail/sdk";
4687
4775
  * (≤ 500 chars). This is the only attribution an index actually DISPLAYS, so it's how a
4688
4776
  * registered listing stays visibly "built with PipRail" — opt out with `attribution:false`. */
4689
4777
  declare function appendAttribution(description: string | undefined): string | undefined;
4778
+ /**
4779
+ * Fold keyword tags into a description as a compact, searchable tail — `desc · Keywords:
4780
+ * a, b, c` — because 402 Index search is literal (a term must appear in the name or
4781
+ * description to match). Pure + tasteful: drops tags already present in the text
4782
+ * (case-insensitive, no duplication), no-ops when there are no tags, and returns the
4783
+ * description unchanged rather than overflow a sane listing cap (≤ 500 chars). When the
4784
+ * description is empty it still seeds one from the tags (so they're not lost). */
4785
+ declare function appendKeywords(description: string | undefined, tags: string[] | undefined): string | undefined;
4690
4786
 
4691
4787
  interface PaymentPolicy {
4692
4788
  /** Per-payment ceiling, human-readable (e.g. '0.10'). Compared using the
@@ -5168,9 +5264,30 @@ interface DiscoverOptions {
5168
5264
  * figure before paying.
5169
5265
  */
5170
5266
  maxPrice?: number;
5267
+ /** Keep ONLY this category, e.g. `'ai'` (prefix match) — strict: results the index
5268
+ * didn't categorize are dropped, so real category matches aren't drowned by un-tagged ones. */
5269
+ category?: string;
5270
+ /** Keep only resources paying in this asset symbol, e.g. `'USDC'` (keeps results whose
5271
+ * asset the index didn't report — confirm with `quote()`). */
5272
+ asset?: string;
5273
+ /** Drop results whose reliability score (0–100) is below this. Results with no reported
5274
+ * score pass through (Bazaar doesn't measure it); inspect `result.reliabilityScore`. */
5275
+ minReliability?: number;
5276
+ /** Prefer verified listings (402 Index server-side). Its `verified` flag differs from the
5277
+ * per-record `domain_verified`, so it's applied at the index; inspect `result.verified`. */
5278
+ verified?: boolean;
5279
+ /** Restrict to listings the index confirmed are payable x402 (402 Index `payment_valid`). */
5280
+ paymentValid?: boolean;
5281
+ /**
5282
+ * Result ordering. Default `'relevance'` when a `query` is given (best matches first),
5283
+ * else first-seen order. `'reliability'`/`'price'`/`'uptime'`/`'name'` sort by that field.
5284
+ */
5285
+ sort?: DiscoverySort;
5286
+ /** Direction for a non-relevance `sort`. Default `'desc'`. */
5287
+ order?: 'asc' | 'desc';
5171
5288
  /** Which open indexes to read. Default `['bazaar', '402index']` (both free). */
5172
5289
  sources?: DiscoverySource[];
5173
- /** Max results per source before merge. Default 20. */
5290
+ /** Max results to fetch per index request. Default 20. */
5174
5291
  limit?: number;
5175
5292
  }
5176
5293
  /** Options for {@link PipRailClient.register}. */
@@ -5186,6 +5303,23 @@ interface RegisterOptions {
5186
5303
  network?: string;
5187
5304
  /** HTTP method the resource answers on. Default 'GET'. */
5188
5305
  method?: string;
5306
+ /**
5307
+ * A category for the listing, e.g. `'ai'`, `'finance'`, `'data'`. The highest-leverage
5308
+ * findability field — most of 402 Index's catalog is `uncategorized`, so a real category
5309
+ * makes a resource rank + filter where almost nothing else does.
5310
+ */
5311
+ category?: string;
5312
+ /**
5313
+ * Keywords for the listing. Folded into the description as a searchable tail (402 Index
5314
+ * search is literal — a term must appear in the text to match) and sent as a `tags` field.
5315
+ */
5316
+ tags?: string[];
5317
+ /** Who runs the resource (provider/org name). */
5318
+ provider?: string;
5319
+ /** Contact email for the listing. */
5320
+ contactEmail?: string;
5321
+ /** A JSON request body the index should send when health-checking a POST/PUT resource. */
5322
+ probeBody?: unknown;
5189
5323
  /**
5190
5324
  * Which open indexes to list on. Default `['402index']` — no auth, no
5191
5325
  * signature. Add `'x402scan'` for the SIWX path (needs an EVM `discoverySigner`
@@ -5852,6 +5986,29 @@ interface SelfDescribeRail {
5852
5986
  /** A one-line instruction for paying THIS rail — chain-agnostic for `onchain-proof`. */
5853
5987
  how: string;
5854
5988
  }
5989
+ /**
5990
+ * What the endpoint DOES — the agent-readability payload. Present only when the merchant
5991
+ * described their resource (a `description`/`mimeType` on the gate, or a `discovery`
5992
+ * descriptor with a `summary`/`queryParams`/`output`); absent on a zero-config gate, so
5993
+ * the default 402 stays byte-identical. Lets an AI agent understand the endpoint's purpose,
5994
+ * inputs, and output shape from the 402 alone — no paid call to find out what it returns.
5995
+ */
5996
+ interface SelfDescribeEndpoint {
5997
+ /** One human sentence: what this endpoint does. */
5998
+ summary?: string;
5999
+ /** HTTP method it answers on. */
6000
+ method?: string;
6001
+ /** The response content-type, e.g. 'application/json'. */
6002
+ mimeType?: string;
6003
+ /** Query params it reads, as a JSON-Schema `properties` object (name → schema). */
6004
+ input?: Record<string, unknown>;
6005
+ /** Output hint — shape/type and a concrete example (examples ground an LLM far better
6006
+ * than a schema alone). */
6007
+ output?: {
6008
+ type?: string;
6009
+ example?: unknown;
6010
+ };
6011
+ }
5855
6012
  /** The `extensions.piprail` self-description block. Inert, purely-additive metadata. */
5856
6013
  interface SelfDescription {
5857
6014
  name: 'PipRail';
@@ -5859,6 +6016,9 @@ interface SelfDescription {
5859
6016
  version: '2';
5860
6017
  /** One sentence: what this endpoint is. */
5861
6018
  what: string;
6019
+ /** What the endpoint DOES (purpose · inputs · output) — see {@link SelfDescribeEndpoint}.
6020
+ * Only present when the merchant described the resource; absent on a zero-config gate. */
6021
+ endpoint?: SelfDescribeEndpoint;
5862
6022
  /** Every rail the 402 offers, in the same order as `accepts[]`. */
5863
6023
  pay: SelfDescribeRail[];
5864
6024
  /** How to pay programmatically with the SDK. */
@@ -5893,7 +6053,31 @@ interface SelfDescription {
5893
6053
  declare function buildSelfDescription(input: {
5894
6054
  accepts: X402AnyAccept[];
5895
6055
  instruction?: string;
6056
+ /** What the endpoint DOES — included only when non-empty (keeps the zero-config 402
6057
+ * byte-identical). Built from the gate's `description`/`mimeType`/`discovery` descriptor
6058
+ * via {@link buildEndpointInfo}. */
6059
+ endpoint?: SelfDescribeEndpoint;
5896
6060
  }): SelfDescription;
6061
+ /**
6062
+ * Assemble a {@link SelfDescribeEndpoint} from the pieces a gate knows — its
6063
+ * `description`/`mimeType` and an optional `discovery` descriptor. Pure. Returns
6064
+ * `undefined` when nothing was described, so the self-describe block (and thus the 402)
6065
+ * stays byte-identical on a zero-config gate. The descriptor's `summary` wins over the
6066
+ * gate `description` for the one-line "what it does".
6067
+ */
6068
+ declare function buildEndpointInfo(input: {
6069
+ description?: string;
6070
+ mimeType?: string;
6071
+ descriptor?: {
6072
+ summary?: string;
6073
+ method?: string;
6074
+ queryParams?: Record<string, unknown>;
6075
+ output?: {
6076
+ type?: string;
6077
+ example?: unknown;
6078
+ };
6079
+ };
6080
+ }): SelfDescribeEndpoint | undefined;
5897
6081
 
5898
6082
  /**
5899
6083
  * Discovery — make a gated resource FINDABLE, by emitting the open-standard
@@ -5946,6 +6130,8 @@ interface ResourceDescription {
5946
6130
  method?: string;
5947
6131
  /** Human description (shown to agents browsing an index). */
5948
6132
  description?: string;
6133
+ /** Response content-type, e.g. 'application/json' (v2 ResourceInfo `mimeType`). */
6134
+ mimeType?: string;
5949
6135
  /** The payment options the gate offers (its resolved `accepts`, nonce-free). */
5950
6136
  accepts: PaymentRail[];
5951
6137
  }
@@ -6042,6 +6228,10 @@ interface WellKnownX402 {
6042
6228
  * block in the 402 challenge) or build it directly with {@link buildBazaarExtension}.
6043
6229
  */
6044
6230
  interface DiscoveryDescriptor {
6231
+ /** One human sentence: WHAT this endpoint does (e.g. "Current USD price for any
6232
+ * crypto ticker"). Surfaced in the `extensions.piprail` self-describe block so an
6233
+ * agent understands the endpoint at a glance, without a paid call. */
6234
+ summary?: string;
6045
6235
  /** HTTP method the resource answers. Default `'GET'`. */
6046
6236
  method?: string;
6047
6237
  /** Query params the resource reads, as a JSON-Schema `properties` object
@@ -6222,8 +6412,12 @@ interface RequirePaymentOptions {
6222
6412
  * G… Stellar, r… XRPL, T… Tron, account id on NEAR, 0x… Aptos, base32 Algorand).
6223
6413
  * Required for the single form; the per-option fallback for the multi form. */
6224
6414
  payTo?: AddressId;
6225
- /** Shown to the agent in the challenge. */
6415
+ /** Shown to the agent in the challenge. Also the one-line "what this endpoint does"
6416
+ * in the self-describe block (a `discovery` descriptor's `summary` overrides it). */
6226
6417
  description?: string;
6418
+ /** Response content-type, e.g. 'application/json'. Emitted at the v2 root `resource.mimeType`
6419
+ * and in the self-describe `endpoint` so an agent knows how to parse the paid response. */
6420
+ mimeType?: string;
6227
6421
  /** Confirmations required before access is granted. Default 1. */
6228
6422
  minConfirmations?: number;
6229
6423
  /** Max age of an accepted payment, in seconds. Default 600. */
@@ -7232,4 +7426,4 @@ declare const PERMIT2_WITNESS_TYPES: {
7232
7426
  */
7233
7427
  declare function renderLandingPage(sd: SelfDescription): string;
7234
7428
 
7235
- export { type AcceptOption, type AddressId, type AgentTool, type AlgorandToken, type AptosToken, type AssetId, BRAND, type BazaarExtension, type BuildExactParams, CHAINS, type Caip2, type ChainFamily, type ChainInput, type ChainName, type ChainPreset, type ChainSelector, type ChallengeTriage, type ChallengeVerdict, type ConfirmInfo, ConfirmationTimeoutError, type CostEstimate, DIRECTORY_INFO, type DeclineReasonCode, type DeliverAttempt, type DeliverReceiptOptions, type DeliverResult, type DirectoryInfo, type DiscoverOptions, type DiscoveredRail, type DiscoveredResource, type DiscoveryDescriptor, type DiscoverySigner, type DiscoverySource, type DomainClaim, type DomainVerification, EIP3009_TYPES, EXACT_NETWORK_SLUGS, type EvmToken, type ExactAccept, type ExactAuthorization, type ExactAuthorizationWire, type ExactPaymentPayload, type ExactPaymentPayloadAny, type ExactRailOption, type ExpressLikeMiddleware, type ExpressLikeNext, type ExpressLikeRequest, type ExpressLikeResponse, type FacilitatorConfig, type FacilitatorPaymentRequirements, type FacilitatorSupportedKind, GENERATOR, HEADER_REQUIRED, HEADER_RESPONSE, HEADER_RESPONSE_V1, HEADER_SIGNATURE, HEADER_SIGNATURE_V1, InsufficientFundsError, InvalidEnvelopeError, KNOWN_FACILITATORS, type KnownFacilitator, type ListingVisibility, type ManifestInput, MaxRetriesExceededError, MissingDriverError, MultiChainPayer, type MultiChainPayerOptions, type NearToken, NoCompatibleAcceptError, NonReplayableBodyError, type OpenApiDocument, type OpenApiOperation, PERMIT2_ADDRESS, PERMIT2_PROXY_CHAIN_IDS, PERMIT2_WITNESS_TYPES, PIPRAIL_AGENT_GUIDE, POWERED_BY, type PaidReceipt, type ParsedExactPayment, type PayBlocker, type PayOption, type PayWarning, type PayingClient, PaymentDeclinedError, type PaymentDriver, type PaymentGate, type PaymentIntent, type PaymentPlan, type PaymentPolicy, type PaymentRail, type PaymentScheme, PaymentTimeoutError, type Permit2Authorization, type Permit2PaymentPayload, PipRailClient, type PipRailClientOptions, type PipRailCostQuote, PipRailError, type PipRailEvent, type PipRailQuote, type PolicyDecision, type PolicyDenyCode, REGISTER_ATTRIBUTION, RecipientNotReadyError, type RecipientReason, type RegisterInput, type RegisterOptions, type RegisterOutcome, type RequirePaymentOptions, type ResolveOptions, type ResolvedChain, type ResolvedNetwork, type ResolvedToken, type ResourceDescription, type SearchOpenIndexesOptions, type SelfDescribeRail, type SelfDescription, type SessionBudget, type SettleOutcome, type SettleViaFacilitatorInput, SettlementError, type SolanaToken, type SpendAssetTotal, type SpendRecord, type SpendRemaining, type SpendSummary, type StellarToken, type SuiToken, type TokenInfo, type TokenInput, type TonToken, type ToolAnnotations, type TronToken, UnknownTokenError, UnsupportedNetworkError, UnsupportedSchemeError, type VerifyErrorCode, type VerifyPaymentResult, type VerifyResult, type WalletBalance, type WalletHandle, type WalletInput, WalletRequiredError, type WellKnownX402, WrongChainError, WrongFamilyError, type X402AcceptEntry, type X402AnyAccept, type X402Challenge, type X402DnsRecord, type X402ExactAcceptEntry, type X402InvalidBody, type X402PaymentSignature, type X402Receipt, type X402ResourceObject, X402_EXACT_PERMIT2_PROXY, type XrplToken, agentGuide, appendAttribution, buildBazaarExtension, buildChallengeHeader, buildExactAuthorization, buildExactSignatureHeader, buildOpenApi, buildReceiptHeader, buildSelfDescription, buildSignatureHeader, buildWellKnownX402, buildX402DnsTxt, chainIdForExactNetwork, claim402IndexDomain, classifyChallenge, createPaymentGate, decorateOutcome, deliverReceipt, describeChallenge, discoveryHeaders, eip3009Abi, encodeXPaymentHeader, evaluatePolicy, explainDecline, facilitatorCoverage, fetchAcross, firstKeylessFacilitator, formatSpendReport, getDirectoryInfo, isPermit2ProxyChain, knownFacilitatorsFor, normalizeNetwork, parseChallenge, parseExactPaymentHeader, parseExactRequirements, parseFacilitatorSupported, parseReceipt, parseSettleResponse, parseSignatureHeader, paymentTools, pickAccept, planAcross, readExactDomain, register402Index, registerDriver, registerX402Scan, renderLandingPage, requirePayment, resolveChain, searchOpenIndexes, settleViaFacilitator, summarizePlan, toInsufficientFundsError, toInvalidBody, verify402IndexDomain };
7429
+ export { type AcceptOption, type AddressId, type AgentTool, type AlgorandToken, type AptosToken, type AssetId, BRAND, type BazaarExtension, type BuildExactParams, CHAINS, type Caip2, type ChainFamily, type ChainInput, type ChainName, type ChainPreset, type ChainSelector, type ChallengeTriage, type ChallengeVerdict, type ConfirmInfo, ConfirmationTimeoutError, type CostEstimate, DIRECTORY_INFO, type DeclineReasonCode, type DeliverAttempt, type DeliverReceiptOptions, type DeliverResult, type DirectoryInfo, type DiscoverOptions, type DiscoveredRail, type DiscoveredResource, type DiscoveryDescriptor, type DiscoverySigner, type DiscoverySort, type DiscoverySource, type DomainClaim, type DomainVerification, EIP3009_TYPES, EXACT_NETWORK_SLUGS, type EvmToken, type ExactAccept, type ExactAuthorization, type ExactAuthorizationWire, type ExactPaymentPayload, type ExactPaymentPayloadAny, type ExactRailOption, type ExpressLikeMiddleware, type ExpressLikeNext, type ExpressLikeRequest, type ExpressLikeResponse, type FacilitatorConfig, type FacilitatorPaymentRequirements, type FacilitatorSupportedKind, GENERATOR, HEADER_REQUIRED, HEADER_RESPONSE, HEADER_RESPONSE_V1, HEADER_SIGNATURE, HEADER_SIGNATURE_V1, InsufficientFundsError, InvalidEnvelopeError, KNOWN_FACILITATORS, type KnownFacilitator, type ListingVisibility, type ManifestInput, MaxRetriesExceededError, MissingDriverError, MultiChainPayer, type MultiChainPayerOptions, type NearToken, NoCompatibleAcceptError, NonReplayableBodyError, type OpenApiDocument, type OpenApiOperation, PERMIT2_ADDRESS, PERMIT2_PROXY_CHAIN_IDS, PERMIT2_WITNESS_TYPES, PIPRAIL_AGENT_GUIDE, POWERED_BY, type PaidReceipt, type ParsedExactPayment, type PayBlocker, type PayOption, type PayWarning, type PayingClient, PaymentDeclinedError, type PaymentDriver, type PaymentGate, type PaymentIntent, type PaymentPlan, type PaymentPolicy, type PaymentRail, type PaymentScheme, PaymentTimeoutError, type Permit2Authorization, type Permit2PaymentPayload, PipRailClient, type PipRailClientOptions, type PipRailCostQuote, PipRailError, type PipRailEvent, type PipRailQuote, type PolicyDecision, type PolicyDenyCode, REGISTER_ATTRIBUTION, RecipientNotReadyError, type RecipientReason, type RegisterInput, type RegisterOptions, type RegisterOutcome, type RequirePaymentOptions, type ResolveOptions, type ResolvedChain, type ResolvedNetwork, type ResolvedToken, type ResourceDescription, type SearchOpenIndexesOptions, type SelfDescribeEndpoint, type SelfDescribeRail, type SelfDescription, type SessionBudget, type SettleOutcome, type SettleViaFacilitatorInput, SettlementError, type SolanaToken, type SpendAssetTotal, type SpendRecord, type SpendRemaining, type SpendSummary, type StellarToken, type SuiToken, type TokenInfo, type TokenInput, type TonToken, type ToolAnnotations, type TronToken, UnknownTokenError, UnsupportedNetworkError, UnsupportedSchemeError, type VerifyErrorCode, type VerifyPaymentResult, type VerifyResult, type WalletBalance, type WalletHandle, type WalletInput, WalletRequiredError, type WellKnownX402, WrongChainError, WrongFamilyError, type X402AcceptEntry, type X402AnyAccept, type X402Challenge, type X402DnsRecord, type X402ExactAcceptEntry, type X402InvalidBody, type X402PaymentSignature, type X402Receipt, type X402ResourceObject, X402_EXACT_PERMIT2_PROXY, type XrplToken, agentGuide, appendAttribution, appendKeywords, buildBazaarExtension, buildChallengeHeader, buildEndpointInfo, buildExactAuthorization, buildExactSignatureHeader, buildOpenApi, buildReceiptHeader, buildSelfDescription, buildSignatureHeader, buildWellKnownX402, buildX402DnsTxt, chainIdForExactNetwork, claim402IndexDomain, classifyChallenge, createPaymentGate, decorateOutcome, deliverReceipt, describeChallenge, discoveryHeaders, eip3009Abi, encodeXPaymentHeader, evaluatePolicy, explainDecline, facilitatorCoverage, fetchAcross, firstKeylessFacilitator, formatSpendReport, getDirectoryInfo, isPermit2ProxyChain, knownFacilitatorsFor, normalizeNetwork, parseChallenge, parseExactPaymentHeader, parseExactRequirements, parseFacilitatorSupported, parseReceipt, parseSettleResponse, parseSignatureHeader, paymentTools, pickAccept, planAcross, rankResources, readExactDomain, register402Index, registerDriver, registerX402Scan, renderLandingPage, requirePayment, resolveChain, scoreResource, searchOpenIndexes, settleViaFacilitator, summarizePlan, toInsufficientFundsError, toInvalidBody, verify402IndexDomain };