@agent-score/commerce 1.0.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.
Files changed (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +306 -0
  3. package/dist/_response-DmziuJz6.d.mts +137 -0
  4. package/dist/_response-rbK0zM7y.d.ts +137 -0
  5. package/dist/api/index.d.mts +1 -0
  6. package/dist/api/index.d.ts +1 -0
  7. package/dist/api/index.js +37 -0
  8. package/dist/api/index.js.map +1 -0
  9. package/dist/api/index.mjs +14 -0
  10. package/dist/api/index.mjs.map +1 -0
  11. package/dist/challenge/index.d.mts +523 -0
  12. package/dist/challenge/index.d.ts +523 -0
  13. package/dist/challenge/index.js +354 -0
  14. package/dist/challenge/index.js.map +1 -0
  15. package/dist/challenge/index.mjs +318 -0
  16. package/dist/challenge/index.mjs.map +1 -0
  17. package/dist/core.d.mts +252 -0
  18. package/dist/core.d.ts +252 -0
  19. package/dist/core.js +500 -0
  20. package/dist/core.js.map +1 -0
  21. package/dist/core.mjs +472 -0
  22. package/dist/core.mjs.map +1 -0
  23. package/dist/discovery/index.d.mts +382 -0
  24. package/dist/discovery/index.d.ts +382 -0
  25. package/dist/discovery/index.js +675 -0
  26. package/dist/discovery/index.js.map +1 -0
  27. package/dist/discovery/index.mjs +630 -0
  28. package/dist/discovery/index.mjs.map +1 -0
  29. package/dist/identity/express.d.mts +44 -0
  30. package/dist/identity/express.d.ts +44 -0
  31. package/dist/identity/express.js +777 -0
  32. package/dist/identity/express.js.map +1 -0
  33. package/dist/identity/express.mjs +738 -0
  34. package/dist/identity/express.mjs.map +1 -0
  35. package/dist/identity/fastify.d.mts +63 -0
  36. package/dist/identity/fastify.d.ts +63 -0
  37. package/dist/identity/fastify.js +780 -0
  38. package/dist/identity/fastify.js.map +1 -0
  39. package/dist/identity/fastify.mjs +741 -0
  40. package/dist/identity/fastify.mjs.map +1 -0
  41. package/dist/identity/hono.d.mts +83 -0
  42. package/dist/identity/hono.d.ts +83 -0
  43. package/dist/identity/hono.js +779 -0
  44. package/dist/identity/hono.js.map +1 -0
  45. package/dist/identity/hono.mjs +740 -0
  46. package/dist/identity/hono.mjs.map +1 -0
  47. package/dist/identity/nextjs.d.mts +62 -0
  48. package/dist/identity/nextjs.d.ts +62 -0
  49. package/dist/identity/nextjs.js +784 -0
  50. package/dist/identity/nextjs.js.map +1 -0
  51. package/dist/identity/nextjs.mjs +747 -0
  52. package/dist/identity/nextjs.mjs.map +1 -0
  53. package/dist/identity/policy.d.mts +115 -0
  54. package/dist/identity/policy.d.ts +115 -0
  55. package/dist/identity/policy.js +81 -0
  56. package/dist/identity/policy.js.map +1 -0
  57. package/dist/identity/policy.mjs +53 -0
  58. package/dist/identity/policy.mjs.map +1 -0
  59. package/dist/identity/web.d.mts +82 -0
  60. package/dist/identity/web.d.ts +82 -0
  61. package/dist/identity/web.js +775 -0
  62. package/dist/identity/web.js.map +1 -0
  63. package/dist/identity/web.mjs +738 -0
  64. package/dist/identity/web.mjs.map +1 -0
  65. package/dist/index.d.mts +252 -0
  66. package/dist/index.d.ts +252 -0
  67. package/dist/index.js +432 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/index.mjs +388 -0
  70. package/dist/index.mjs.map +1 -0
  71. package/dist/payment/index.d.mts +716 -0
  72. package/dist/payment/index.d.ts +716 -0
  73. package/dist/payment/index.js +691 -0
  74. package/dist/payment/index.js.map +1 -0
  75. package/dist/payment/index.mjs +639 -0
  76. package/dist/payment/index.mjs.map +1 -0
  77. package/dist/signer-Cvdwn6Cs.d.mts +48 -0
  78. package/dist/signer-Cvdwn6Cs.d.ts +48 -0
  79. package/dist/stripe-multichain/index.d.mts +221 -0
  80. package/dist/stripe-multichain/index.d.ts +221 -0
  81. package/dist/stripe-multichain/index.js +243 -0
  82. package/dist/stripe-multichain/index.js.map +1 -0
  83. package/dist/stripe-multichain/index.mjs +199 -0
  84. package/dist/stripe-multichain/index.mjs.map +1 -0
  85. package/dist/wwwauthenticate-CU1eNvMQ.d.mts +37 -0
  86. package/dist/wwwauthenticate-CU1eNvMQ.d.ts +37 -0
  87. package/package.json +172 -0
@@ -0,0 +1,382 @@
1
+ /**
2
+ * Build a sample x402 accepts entry for a CAIP-2 network. Looks up the USDC asset
3
+ * for the network from the `USDC` registry and uses a placeholder payTo. Used by
4
+ * the discovery probe to advertise x402 support without exposing real deposit
5
+ * addresses.
6
+ *
7
+ * Returns null when the network isn't in the registry — vendors with custom
8
+ * networks should construct accepts entries by hand and pass them via
9
+ * `x402Sample.accepts` directly.
10
+ */
11
+ declare function sampleX402AcceptForNetwork(caip2: string, amountAtomic?: string): Record<string, unknown> | null;
12
+ interface DiscoveryProbeOptions {
13
+ /** Realm — typically the host of your merchant URL (e.g., "agents.merchant.example"). */
14
+ realm: string;
15
+ /** Symbolic rail name to advertise in the sample challenge (e.g., 'tempo-mainnet'). */
16
+ sampleRail: string;
17
+ /** Sample amount in USD for the probe (e.g., 1.00). Crawlers use this as an example. */
18
+ sampleAmountUsd: number;
19
+ /** A recipient address to use in the sample directive (your real or zero address is fine). */
20
+ sampleRecipient: string;
21
+ /** MPP intent. Defaults to 'charge'. */
22
+ intent?: string;
23
+ /** TTL for the probe challenge in seconds. Defaults to 300 (5 minutes). */
24
+ ttlSeconds?: number;
25
+ /** Optional URL to include in the body for further docs (e.g., your llms.txt). */
26
+ docsUrl?: string;
27
+ /** Optional human-readable message in the body. */
28
+ message?: string;
29
+ /** Optional sample x402 accepts entries. When provided, the probe response also
30
+ * carries the standard x402 `payment-required` header (base64 PaymentRequired) AND
31
+ * an `accepts` array in the body — so x402 crawlers (e.g. Coinbase awal's
32
+ * `x402 details`/`x402 pay`) can discover the endpoint's x402 support without
33
+ * needing to send a fully-formed business request. Each entry is run through
34
+ * `aliasAmountFields` so v1-only parsers can read `maxAmountRequired` too.
35
+ *
36
+ * Pass `networks` (shorthand) for the common case — the helper looks up USDC
37
+ * per network from the registry and uses placeholder payTo addresses. Or pass
38
+ * `accepts` directly for full control over the sample shape. */
39
+ x402Sample?: {
40
+ /** Spec version to declare. Defaults to 2. */
41
+ version?: 1 | 2;
42
+ /** Shorthand: array of CAIP-2 network strings. Each is mapped to a sample
43
+ * USDC accepts entry via `sampleX402AcceptForNetwork`. Networks not in the
44
+ * USDC registry are silently skipped. Use `accepts` for custom shapes. */
45
+ networks?: string[];
46
+ /** Sample accepts entries. Used when `networks` shorthand isn't enough.
47
+ * Supplied entries are NOT merged with `networks`-derived entries — pick
48
+ * one or the other. */
49
+ accepts?: unknown[];
50
+ /** Sample atomic amount used by the `networks` shorthand. Defaults to
51
+ * `'1000000'` ($1.00 USDC at 6 decimals). Ignored when `accepts` is set. */
52
+ amountAtomic?: string;
53
+ /** Resource URL the probe is responding for. Used in the PAYMENT-REQUIRED header. */
54
+ resourceUrl?: string;
55
+ };
56
+ }
57
+ interface DiscoveryProbeResponse {
58
+ status: 402;
59
+ headers: Record<string, string>;
60
+ body: string;
61
+ }
62
+ /**
63
+ * Build a 402 response advertising a sample Payment challenge. MPP crawlers
64
+ * (mppscan, link-cli mpp decode) probe with empty bodies; merchants need to answer
65
+ * with a properly-formatted Payment directive so the realm can be indexed.
66
+ *
67
+ * Returns a framework-agnostic response shape. Wrap in your framework's response:
68
+ *
69
+ * const probe = buildDiscoveryProbeResponse({...});
70
+ * return new Response(probe.body, { status: probe.status, headers: probe.headers });
71
+ */
72
+ declare function buildDiscoveryProbeResponse(opts: DiscoveryProbeOptions): DiscoveryProbeResponse;
73
+ interface RequestLike {
74
+ method: string;
75
+ headers: {
76
+ get(name: string): string | null;
77
+ };
78
+ clone(): {
79
+ text(): Promise<string>;
80
+ };
81
+ }
82
+ /**
83
+ * Returns true when the request is an empty-body POST without a payment credential —
84
+ * the canonical MPP discovery probe pattern. Vendors compose this with
85
+ * buildDiscoveryProbeResponse to short-circuit crawler requests before any business
86
+ * logic runs.
87
+ */
88
+ declare function isDiscoveryProbeRequest(req: RequestLike): Promise<boolean>;
89
+
90
+ /**
91
+ * Bazaar discovery extension wrapper. Vendors pass their merchant config and we wrap
92
+ * `declareDiscoveryExtension` from `@x402/extensions/bazaar`. The returned value is
93
+ * registered on the x402 server (e.g., via `createX402Server({bazaar: true})` or
94
+ * `server.registerExtension(...)`).
95
+ *
96
+ * `@x402/extensions` is an optional peer dependency.
97
+ */
98
+ interface BazaarDiscoveryConfig {
99
+ bodyType?: 'json' | 'form';
100
+ input?: Record<string, unknown>;
101
+ output?: Record<string, unknown>;
102
+ [key: string]: unknown;
103
+ }
104
+ declare function createBazaarDiscovery(config: BazaarDiscoveryConfig): Promise<unknown>;
105
+
106
+ interface PaymentMethodConfig {
107
+ /** MPP payment methods accepted, e.g., ['tempo', 'x402', 'stripe']. */
108
+ methods: string[];
109
+ /** x402-specific config (when 'x402' is in methods). */
110
+ x402?: {
111
+ networks: string[];
112
+ scheme?: string;
113
+ asset?: string;
114
+ facilitator?: string;
115
+ client_tooling?: string;
116
+ };
117
+ /** Identity headers accepted (e.g., ['X-Operator-Token', 'X-Wallet-Address']). */
118
+ identity?: string[];
119
+ /** Per-identity-path metadata for agents. */
120
+ identity_paths?: {
121
+ wallet?: {
122
+ header: string;
123
+ applies_to_rails: string[];
124
+ note?: string;
125
+ };
126
+ operator_token?: {
127
+ header: string;
128
+ applies_to_rails: string[];
129
+ note?: string;
130
+ };
131
+ };
132
+ /** Compliance policy summary for agents to know what they need before purchasing. */
133
+ compliance?: {
134
+ require_kyc?: boolean;
135
+ min_age?: number;
136
+ allowed_jurisdictions?: string[];
137
+ require_sanctions_clear?: boolean;
138
+ };
139
+ /** Required fields in the request body. */
140
+ required_fields?: string[];
141
+ /** Optional fields in the request body. */
142
+ optional_fields?: string[];
143
+ /** Vendor-specific extras merged into the purchase block (e.g., gift_note metadata). */
144
+ extra?: Record<string, unknown>;
145
+ }
146
+ interface WellKnownMppInput {
147
+ /** Merchant display name. */
148
+ name: string;
149
+ /** Short description (1-2 sentences). */
150
+ description?: string;
151
+ /** Canonical merchant URL. */
152
+ url: string;
153
+ /** OpenAPI doc URL (typically `${url}/openapi.json`). */
154
+ openapi?: string;
155
+ /** Endpoints map: path → {method, url}. */
156
+ endpoints: Record<string, {
157
+ method: string;
158
+ url: string;
159
+ }>;
160
+ /** Catalog metadata (categories, etc). Optional. */
161
+ catalog?: Record<string, unknown>;
162
+ /** Purchase flow details (payment methods, identity, compliance). */
163
+ purchase: PaymentMethodConfig;
164
+ /** Shipping policy (countries, restrictions). */
165
+ shipping?: Record<string, unknown>;
166
+ /** Vendor-specific extra fields merged at the top level. */
167
+ extra?: Record<string, unknown>;
168
+ }
169
+ /**
170
+ * Build the standard `.well-known/mpp.json` discovery document. Lift the boilerplate
171
+ * (payment.methods, payment.identity_paths, payment.compliance) into a typed config so
172
+ * vendors get spec-compliance "for free"; merchant-specific fields (catalog, shipping)
173
+ * pass through.
174
+ *
175
+ * Wire it in your framework like:
176
+ * app.get('/.well-known/mpp.json', (c) => c.json(buildWellKnownMpp({...})));
177
+ */
178
+ declare function buildWellKnownMpp(input: WellKnownMppInput): Record<string, unknown>;
179
+
180
+ interface LlmsTxtIdentitySectionInput {
181
+ /** When true, include the AgentScore identity-paths explanation (wallet vs operator-token). */
182
+ agentscore?: boolean;
183
+ /** Compliance policy to mention (KYC, age, jurisdiction). */
184
+ compliance?: {
185
+ require_kyc?: boolean;
186
+ min_age?: number;
187
+ allowed_jurisdictions?: string[];
188
+ require_sanctions_clear?: boolean;
189
+ };
190
+ }
191
+ /**
192
+ * Generate the standard "Choose your identity header" section for an AgentScore-gated
193
+ * merchant's llms.txt. Explains wallet-auth vs operator-token paths + the cross-merchant
194
+ * memory contract so agents know how to authenticate without reading the API docs.
195
+ */
196
+ declare function llmsTxtIdentitySection(input?: LlmsTxtIdentitySectionInput): string;
197
+ interface LlmsTxtPaymentSectionInput {
198
+ /** Symbolic rail names supported. */
199
+ rails: ('tempo-mainnet' | 'tempo-testnet' | 'x402-base-mainnet' | 'x402-base-sepolia' | 'x402-solana-mainnet' | 'x402-solana-devnet' | 'stripe-spt' | string)[];
200
+ /** Merchant URL — used in the example commands. */
201
+ appUrl: string;
202
+ /**
203
+ * When true, emit the verbose multi-step variant: setup commands per rail, full per-rail
204
+ * payment-command examples, and warnings about footguns. Default false (one-line bullet per rail).
205
+ * Use this when llms.txt is the primary integration doc the agent reads.
206
+ */
207
+ verbose?: boolean;
208
+ /** When verbose, the Tempo network name to mention in the prerequisites. Default 'tempo-mainnet'. */
209
+ tempoNetworkName?: string;
210
+ /** When verbose, the Tempo chain id to mention in the prerequisites. Default 4217. */
211
+ tempoChainId?: number;
212
+ }
213
+ /**
214
+ * Generate the standard "## Payment" section for a merchant's llms.txt. Documents the
215
+ * supported rails with concrete CLI examples (tempo request, agentscore-pay, link-cli)
216
+ * per the configured rail set.
217
+ *
218
+ * Pass `verbose: true` for the rich variant — multi-step setup + multi-line command examples +
219
+ * exact-amount warnings. Default is the compact one-bullet-per-rail form.
220
+ */
221
+ declare function llmsTxtPaymentSection(input: LlmsTxtPaymentSectionInput): string;
222
+ interface BuildLlmsTxtInput {
223
+ merchantName: string;
224
+ /** Optional 1-line summary under the title. */
225
+ tagline?: string;
226
+ /** Custom merchant-written sections (intro, endpoints, terms, etc.). */
227
+ sections: {
228
+ heading: string;
229
+ content: string;
230
+ }[];
231
+ /** Append the AgentScore identity section. */
232
+ agentscoreIdentity?: LlmsTxtIdentitySectionInput;
233
+ /** Append the standard payment section. */
234
+ payment?: LlmsTxtPaymentSectionInput;
235
+ }
236
+ /**
237
+ * Assemble a complete llms.txt document. Vendor passes their merchant-specific sections
238
+ * (intro, catalog, endpoints, gift orders, shipping, etc.); the helper adds the AgentScore
239
+ * identity + payment boilerplate at the end. Returns the full markdown string.
240
+ */
241
+ declare function buildLlmsTxt(input: BuildLlmsTxtInput): string;
242
+
243
+ /**
244
+ * OpenAPI snippets for AgentScore-related concepts. Vendors plug these into their own
245
+ * OpenAPI 3.1 document (typically /openapi.json) so MPPScan and similar agent registries
246
+ * can validate the merchant's auth + denial schemas correctly.
247
+ *
248
+ * Each helper returns a piece of an OpenAPI document — vendors compose them into their
249
+ * full spec.
250
+ */
251
+ /**
252
+ * Standard AgentScore identity security schemes. Plug into `components.securitySchemes`.
253
+ */
254
+ declare function agentscoreSecuritySchemes(): Record<string, unknown>;
255
+ /**
256
+ * Standard AgentScore denial response schemas. Plug into `components.schemas` so OpenAPI
257
+ * validators understand the 403 body shape across denial codes.
258
+ */
259
+ declare function agentscoreDenialSchemas(): Record<string, unknown>;
260
+ /**
261
+ * Standard 402 PaymentRequired body schema (for AgentScore-extended 402 responses).
262
+ * Includes the rails, identity metadata, agent_instructions, pricing, and x402-compliance
263
+ * fields a typical merchant emits via build402Body.
264
+ */
265
+ declare function agentscorePaymentRequiredSchema(): Record<string, unknown>;
266
+ interface BuildAgentScoreOpenApiSnippetsInput {
267
+ /** Include security schemes in the snippet. Default true. */
268
+ security?: boolean;
269
+ /** Include denial schemas in the snippet. Default true. */
270
+ denials?: boolean;
271
+ /** Include the 402 PaymentRequired schema in the snippet. Default true. */
272
+ paymentRequired?: boolean;
273
+ }
274
+ /**
275
+ * Convenience: returns a `components` snippet ready to merge into an OpenAPI document.
276
+ *
277
+ * const spec = {
278
+ * openapi: '3.1.0',
279
+ * info: { title: 'My Merchant API', version: '1.0' },
280
+ * paths: {...},
281
+ * components: { ...agentscoreOpenApiSnippets(), schemas: { ...mySchemas, ...agentscoreOpenApiSnippets().schemas } },
282
+ * };
283
+ *
284
+ * Or more idiomatically: `Object.assign(spec.components, agentscoreOpenApiSnippets())`.
285
+ */
286
+ declare function agentscoreOpenApiSnippets(opts?: BuildAgentScoreOpenApiSnippetsInput): {
287
+ securitySchemes?: Record<string, unknown>;
288
+ schemas?: Record<string, unknown>;
289
+ };
290
+
291
+ /**
292
+ * Default discovery paths emitted by `@agent-score/commerce` builders. These are
293
+ * the public-by-design endpoints agents and crawlers fetch to learn the
294
+ * merchant's shape: OpenAPI, llms.txt, MPP well-known, A2A agent card, UCP profile.
295
+ * They should NOT carry `X-Robots-Tag: noindex` since the whole point is for
296
+ * agents (and search/discovery crawlers) to find them.
297
+ *
298
+ * Everything else on an agent-only API should noindex by default — there's no
299
+ * human-shaped HTML to surface to general search engines, and accidental
300
+ * indexing leaks transactional endpoints into noisy SERPs.
301
+ */
302
+ declare const defaultDiscoveryPaths: ReadonlySet<string>;
303
+ /**
304
+ * Pure predicate for "is this path a known discovery surface?". Compose this
305
+ * into your own framework's middleware when you don't want the bundled Hono
306
+ * wrapper. Custom paths are the union with the defaults — pass `replace: true`
307
+ * to skip the defaults.
308
+ */
309
+ declare function isDiscoveryPath(path: string, options?: {
310
+ customPaths?: Iterable<string>;
311
+ replace?: boolean;
312
+ }): boolean;
313
+ interface NoindexNonDiscoveryOptions {
314
+ /** Additional discovery paths beyond the defaults (e.g. `/sitemap.xml`,
315
+ * `/.well-known/foo`). Merged with the defaults unless `replacePaths: true`. */
316
+ customPaths?: Iterable<string>;
317
+ /** When true, ignore the bundled defaults and only treat `customPaths` as
318
+ * discovery surfaces. Use when the merchant deliberately chooses a different
319
+ * set (e.g. omits `/openapi.json` from a closed API). */
320
+ replacePaths?: boolean;
321
+ /** Override the X-Robots-Tag value applied to non-discovery paths. Defaults to
322
+ * the standard "noindex, nofollow, noarchive, nosnippet" tuple — change only
323
+ * if you have a very specific crawl-shape requirement. */
324
+ robotsTag?: string;
325
+ }
326
+ /**
327
+ * Hono middleware. Mount globally near the top of your middleware stack:
328
+ *
329
+ * app.use('*', noindexNonDiscoveryPaths());
330
+ * app.use('*', noindexNonDiscoveryPaths({ customPaths: ['/sitemap.xml'] }));
331
+ *
332
+ * Per-framework variants (`noindexNonDiscoveryPathsExpress`,
333
+ * `noindexNonDiscoveryPathsFastify`, `noindexNonDiscoveryPathsWeb`) ship below.
334
+ * For Next.js Route Handlers, use `applyNoindexHeader(response, path, opts)`
335
+ * inline since route handlers don't have a global mount point.
336
+ */
337
+ declare function noindexNonDiscoveryPaths(options?: NoindexNonDiscoveryOptions): (c: {
338
+ req: {
339
+ path: string;
340
+ };
341
+ header: (k: string, v: string) => void;
342
+ }, next: () => Promise<void>) => Promise<void>;
343
+ /** Express middleware. Sets the header before `next()` so route handlers can
344
+ * override per-response if they need to. */
345
+ declare function noindexNonDiscoveryPathsExpress(options?: NoindexNonDiscoveryOptions): (req: {
346
+ path: string;
347
+ }, res: {
348
+ setHeader: (name: string, value: string) => void;
349
+ }, next: () => void) => void;
350
+ /** Fastify plugin (use as `app.register(noindexNonDiscoveryPathsFastify, opts)`).
351
+ * Registers an `onRequest` hook so the header lands on every response. */
352
+ interface FastifyReqLike {
353
+ url?: string;
354
+ routerPath?: string;
355
+ }
356
+ interface FastifyReplyLike {
357
+ header: (name: string, value: string) => void;
358
+ }
359
+ interface FastifyAppLike {
360
+ addHook(event: 'onRequest', handler: (req: FastifyReqLike, reply: FastifyReplyLike, done: () => void) => void): void;
361
+ }
362
+ declare function noindexNonDiscoveryPathsFastify(app: FastifyAppLike, options: NoindexNonDiscoveryOptions | undefined, done: () => void): void;
363
+ /** Web Fetch / Cloudflare Workers / Deno / Bun helper. Returns a wrapped
364
+ * Response that carries `X-Robots-Tag` on non-discovery paths. Pair with the
365
+ * request's URL pathname:
366
+ *
367
+ * return wrapNoindexResponse(new URL(req.url).pathname, response);
368
+ */
369
+ declare function wrapNoindexResponse(path: string, response: Response, options?: NoindexNonDiscoveryOptions): Response;
370
+ /** Next.js Route Handler helper. Call inline before returning the Response:
371
+ *
372
+ * export async function POST(req: Request) {
373
+ * const path = new URL(req.url).pathname;
374
+ * const res = Response.json({...});
375
+ * return applyNoindexHeader(res, path);
376
+ * }
377
+ *
378
+ * Same wrapper shape as the Web Fetch helper — exported separately for clarity
379
+ * in Next.js docs/examples. */
380
+ declare const applyNoindexHeader: typeof wrapNoindexResponse;
381
+
382
+ export { type BazaarDiscoveryConfig, type BuildAgentScoreOpenApiSnippetsInput, type BuildLlmsTxtInput, type DiscoveryProbeOptions, type DiscoveryProbeResponse, type LlmsTxtIdentitySectionInput, type LlmsTxtPaymentSectionInput, type NoindexNonDiscoveryOptions, type PaymentMethodConfig, type RequestLike, type WellKnownMppInput, agentscoreDenialSchemas, agentscoreOpenApiSnippets, agentscorePaymentRequiredSchema, agentscoreSecuritySchemes, applyNoindexHeader, buildDiscoveryProbeResponse, buildLlmsTxt, buildWellKnownMpp, createBazaarDiscovery, defaultDiscoveryPaths, isDiscoveryPath, isDiscoveryProbeRequest, llmsTxtIdentitySection, llmsTxtPaymentSection, noindexNonDiscoveryPaths, noindexNonDiscoveryPathsExpress, noindexNonDiscoveryPathsFastify, sampleX402AcceptForNetwork, wrapNoindexResponse };