@sly_ai/sdk 0.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.
Files changed (60) hide show
  1. package/README.md +346 -0
  2. package/dist/a2a.d.mts +108 -0
  3. package/dist/a2a.d.ts +108 -0
  4. package/dist/a2a.js +173 -0
  5. package/dist/a2a.js.map +1 -0
  6. package/dist/a2a.mjs +171 -0
  7. package/dist/a2a.mjs.map +1 -0
  8. package/dist/acp.d.mts +201 -0
  9. package/dist/acp.d.ts +201 -0
  10. package/dist/acp.js +143 -0
  11. package/dist/acp.js.map +1 -0
  12. package/dist/acp.mjs +141 -0
  13. package/dist/acp.mjs.map +1 -0
  14. package/dist/ap2.d.mts +188 -0
  15. package/dist/ap2.d.ts +188 -0
  16. package/dist/ap2.js +135 -0
  17. package/dist/ap2.js.map +1 -0
  18. package/dist/ap2.mjs +133 -0
  19. package/dist/ap2.mjs.map +1 -0
  20. package/dist/cards.d.mts +750 -0
  21. package/dist/cards.d.ts +750 -0
  22. package/dist/cards.js +373 -0
  23. package/dist/cards.js.map +1 -0
  24. package/dist/cards.mjs +369 -0
  25. package/dist/cards.mjs.map +1 -0
  26. package/dist/client-Cwe2CLU7.d.mts +41 -0
  27. package/dist/client-CyJe3uWO.d.ts +41 -0
  28. package/dist/index.d.mts +662 -0
  29. package/dist/index.d.ts +662 -0
  30. package/dist/index.js +2709 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/index.mjs +2700 -0
  33. package/dist/index.mjs.map +1 -0
  34. package/dist/langchain.d.mts +11 -0
  35. package/dist/langchain.d.ts +11 -0
  36. package/dist/langchain.js +25 -0
  37. package/dist/langchain.js.map +1 -0
  38. package/dist/langchain.mjs +23 -0
  39. package/dist/langchain.mjs.map +1 -0
  40. package/dist/types-df1EICn_.d.mts +165 -0
  41. package/dist/types-df1EICn_.d.ts +165 -0
  42. package/dist/ucp.d.mts +844 -0
  43. package/dist/ucp.d.ts +844 -0
  44. package/dist/ucp.js +616 -0
  45. package/dist/ucp.js.map +1 -0
  46. package/dist/ucp.mjs +614 -0
  47. package/dist/ucp.mjs.map +1 -0
  48. package/dist/vercel.d.mts +178 -0
  49. package/dist/vercel.d.ts +178 -0
  50. package/dist/vercel.js +143 -0
  51. package/dist/vercel.js.map +1 -0
  52. package/dist/vercel.mjs +138 -0
  53. package/dist/vercel.mjs.map +1 -0
  54. package/dist/x402.d.mts +209 -0
  55. package/dist/x402.d.ts +209 -0
  56. package/dist/x402.js +476 -0
  57. package/dist/x402.js.map +1 -0
  58. package/dist/x402.mjs +471 -0
  59. package/dist/x402.mjs.map +1 -0
  60. package/package.json +118 -0
package/dist/cards.js ADDED
@@ -0,0 +1,373 @@
1
+ 'use strict';
2
+
3
+ // src/cards/index.ts
4
+ var VisaClient = class {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ /**
9
+ * Create a Visa VIC payment instruction
10
+ */
11
+ async createInstruction(params) {
12
+ return this.client.request("/v1/cards/visa/instructions", {
13
+ method: "POST",
14
+ body: JSON.stringify(params)
15
+ });
16
+ }
17
+ /**
18
+ * Get a specific Visa payment instruction
19
+ */
20
+ async getInstruction(instructionId) {
21
+ return this.client.request(
22
+ `/v1/cards/visa/instructions/${instructionId}`
23
+ );
24
+ }
25
+ /**
26
+ * List Visa payment instructions
27
+ */
28
+ async listInstructions(options) {
29
+ const params = new URLSearchParams();
30
+ if (options?.status) params.set("status", options.status);
31
+ if (options?.limit) params.set("limit", String(options.limit));
32
+ if (options?.offset) params.set("offset", String(options.offset));
33
+ const query = params.toString();
34
+ return this.client.request(
35
+ `/v1/cards/visa/instructions${query ? `?${query}` : ""}`
36
+ );
37
+ }
38
+ /**
39
+ * Provision a VTS token for an instruction
40
+ */
41
+ async createToken(params) {
42
+ return this.client.request("/v1/cards/visa/tokens", {
43
+ method: "POST",
44
+ body: JSON.stringify(params)
45
+ });
46
+ }
47
+ /**
48
+ * Get a specific Visa token
49
+ */
50
+ async getToken(tokenId) {
51
+ return this.client.request(`/v1/cards/visa/tokens/${tokenId}`);
52
+ }
53
+ /**
54
+ * List Visa tokens
55
+ */
56
+ async listTokens(options) {
57
+ const params = new URLSearchParams();
58
+ if (options?.status) params.set("status", options.status);
59
+ if (options?.limit) params.set("limit", String(options.limit));
60
+ if (options?.offset) params.set("offset", String(options.offset));
61
+ const query = params.toString();
62
+ return this.client.request(
63
+ `/v1/cards/visa/tokens${query ? `?${query}` : ""}`
64
+ );
65
+ }
66
+ /**
67
+ * Suspend a Visa token
68
+ */
69
+ async suspendToken(tokenId) {
70
+ return this.client.request(
71
+ `/v1/cards/visa/tokens/${tokenId}`,
72
+ { method: "DELETE" }
73
+ );
74
+ }
75
+ };
76
+ var MastercardClient = class {
77
+ constructor(client) {
78
+ this.client = client;
79
+ }
80
+ /**
81
+ * Register an agent with Mastercard Agent Pay
82
+ */
83
+ async registerAgent(params) {
84
+ return this.client.request("/v1/cards/mastercard/agents", {
85
+ method: "POST",
86
+ body: JSON.stringify(params)
87
+ });
88
+ }
89
+ /**
90
+ * Get a specific Mastercard agent registration
91
+ */
92
+ async getAgent(agentId) {
93
+ return this.client.request(
94
+ `/v1/cards/mastercard/agents/${agentId}`
95
+ );
96
+ }
97
+ /**
98
+ * List registered Mastercard agents
99
+ */
100
+ async listAgents() {
101
+ return this.client.request(
102
+ "/v1/cards/mastercard/agents"
103
+ );
104
+ }
105
+ /**
106
+ * Create a Mastercard agentic token with DTVC
107
+ */
108
+ async createToken(params) {
109
+ return this.client.request("/v1/cards/mastercard/tokens", {
110
+ method: "POST",
111
+ body: JSON.stringify(params)
112
+ });
113
+ }
114
+ /**
115
+ * Get a Mastercard token, optionally refreshing the DTVC
116
+ */
117
+ async getToken(tokenReference, options) {
118
+ const query = options?.refresh ? "?refresh=true" : "";
119
+ return this.client.request(
120
+ `/v1/cards/mastercard/tokens/${tokenReference}${query}`
121
+ );
122
+ }
123
+ /**
124
+ * List Mastercard tokens
125
+ */
126
+ async listTokens(options) {
127
+ const params = new URLSearchParams();
128
+ if (options?.status) params.set("status", options.status);
129
+ if (options?.limit) params.set("limit", String(options.limit));
130
+ if (options?.offset) params.set("offset", String(options.offset));
131
+ const query = params.toString();
132
+ return this.client.request(
133
+ `/v1/cards/mastercard/tokens${query ? `?${query}` : ""}`
134
+ );
135
+ }
136
+ /**
137
+ * Revoke a Mastercard token
138
+ */
139
+ async revokeToken(tokenReference) {
140
+ return this.client.request(
141
+ `/v1/cards/mastercard/tokens/${tokenReference}`,
142
+ { method: "DELETE" }
143
+ );
144
+ }
145
+ };
146
+ var CardsClient = class {
147
+ constructor(client) {
148
+ this.client = client;
149
+ this.visa = new VisaClient(client);
150
+ this.mastercard = new MastercardClient(client);
151
+ }
152
+ /**
153
+ * Verify an AI agent's Web Bot Auth signature
154
+ *
155
+ * @example
156
+ * ```typescript
157
+ * const result = await payos.cards.verifyAgentSignature({
158
+ * method: 'POST',
159
+ * path: '/checkout',
160
+ * headers: req.headers,
161
+ * signatureInput: req.headers['signature-input'],
162
+ * signature: req.headers['signature'],
163
+ * });
164
+ *
165
+ * if (result.valid) {
166
+ * console.log(`Verified ${result.network} agent from ${result.agentProvider}`);
167
+ * }
168
+ * ```
169
+ */
170
+ async verifyAgentSignature(params) {
171
+ return this.client.request("/v1/cards/verify", {
172
+ method: "POST",
173
+ body: JSON.stringify(params)
174
+ });
175
+ }
176
+ /**
177
+ * Get configured card networks and their status
178
+ *
179
+ * @example
180
+ * ```typescript
181
+ * const { networks, capabilities } = await payos.cards.getNetworks();
182
+ *
183
+ * if (networks.visa.configured) {
184
+ * console.log(`Visa: ${networks.visa.status}`);
185
+ * }
186
+ * ```
187
+ */
188
+ async getNetworks() {
189
+ return this.client.request("/v1/cards/networks");
190
+ }
191
+ /**
192
+ * Test connection to a card network
193
+ */
194
+ async testNetwork(network) {
195
+ return this.client.request(`/v1/cards/networks/${network}/test`, {
196
+ method: "POST"
197
+ });
198
+ }
199
+ /**
200
+ * Configure Visa VIC credentials
201
+ */
202
+ async configureVisa(params) {
203
+ return this.client.request("/v1/cards/networks/visa/configure", {
204
+ method: "POST",
205
+ body: JSON.stringify(params)
206
+ });
207
+ }
208
+ /**
209
+ * Configure Mastercard Agent Pay credentials
210
+ */
211
+ async configureMastercard(params) {
212
+ return this.client.request("/v1/cards/networks/mastercard/configure", {
213
+ method: "POST",
214
+ body: JSON.stringify(params)
215
+ });
216
+ }
217
+ /**
218
+ * Disconnect a card network
219
+ */
220
+ async disconnectNetwork(network) {
221
+ return this.client.request(
222
+ `/v1/cards/networks/${network}/disconnect`,
223
+ { method: "DELETE" }
224
+ );
225
+ }
226
+ /**
227
+ * Get comprehensive card network analytics
228
+ *
229
+ * @param days - Number of days to analyze (default: 30)
230
+ *
231
+ * @example
232
+ * ```typescript
233
+ * const analytics = await payos.cards.getAnalytics(30);
234
+ *
235
+ * console.log(`Success rate: ${analytics.verifications.successRate}%`);
236
+ * console.log(`Total volume: $${analytics.transactions.volume}`);
237
+ * ```
238
+ */
239
+ async getAnalytics(days = 30) {
240
+ return this.client.request(`/v1/cards/analytics?days=${days}`);
241
+ }
242
+ /**
243
+ * Get verification statistics
244
+ *
245
+ * @param days - Number of days to analyze (default: 30)
246
+ */
247
+ async getVerificationStats(days = 30) {
248
+ return this.client.request(`/v1/cards/verifications/stats?days=${days}`);
249
+ }
250
+ /**
251
+ * List card network transactions
252
+ */
253
+ async listTransactions(options) {
254
+ const params = new URLSearchParams();
255
+ if (options?.network) params.set("network", options.network);
256
+ if (options?.status) params.set("status", options.status);
257
+ if (options?.limit) params.set("limit", String(options.limit));
258
+ if (options?.offset) params.set("offset", String(options.offset));
259
+ const query = params.toString();
260
+ return this.client.request(
261
+ `/v1/cards/transactions${query ? `?${query}` : ""}`
262
+ );
263
+ }
264
+ /**
265
+ * Get a specific transaction
266
+ */
267
+ async getTransaction(transactionId) {
268
+ return this.client.request(`/v1/cards/transactions/${transactionId}`);
269
+ }
270
+ // ============================================
271
+ // Agent Signing Methods
272
+ // ============================================
273
+ /**
274
+ * Generate a signing key for an agent
275
+ *
276
+ * Creates an Ed25519 or RSA-SHA256 key pair for the agent to sign
277
+ * payment requests according to RFC 9421 (HTTP Message Signatures).
278
+ *
279
+ * @example
280
+ * ```typescript
281
+ * const key = await payos.cards.generateSigningKey('agent_123');
282
+ * console.log(`Public key: ${key.publicKey}`);
283
+ * // Register this public key with card networks (Visa TAP, MC Agent Pay)
284
+ * ```
285
+ */
286
+ async generateSigningKey(agentId, options) {
287
+ return this.client.request(
288
+ `/v1/agents/${agentId}/signing-keys`,
289
+ {
290
+ method: "POST",
291
+ body: JSON.stringify(options || {})
292
+ }
293
+ );
294
+ }
295
+ /**
296
+ * Get the signing key status for an agent
297
+ *
298
+ * @example
299
+ * ```typescript
300
+ * const status = await payos.cards.getSigningKey('agent_123');
301
+ * if (status.hasKey) {
302
+ * console.log(`Key: ${status.keyId}, Uses: ${status.stats.useCount}`);
303
+ * }
304
+ * ```
305
+ */
306
+ async getSigningKey(agentId) {
307
+ return this.client.request(`/v1/agents/${agentId}/signing-keys`);
308
+ }
309
+ /**
310
+ * Revoke an agent's signing key
311
+ *
312
+ * After revocation, the agent will need a new key to sign requests.
313
+ */
314
+ async revokeSigningKey(agentId) {
315
+ return this.client.request(
316
+ `/v1/agents/${agentId}/signing-keys`,
317
+ { method: "DELETE" }
318
+ );
319
+ }
320
+ /**
321
+ * Sign a payment request for an agent
322
+ *
323
+ * Signs an HTTP request according to RFC 9421 so the agent can
324
+ * authenticate with merchants and card networks.
325
+ *
326
+ * Requirements:
327
+ * - Agent must have KYA tier >= 1
328
+ * - Agent must be active
329
+ * - Agent must have a signing key
330
+ * - Payment must be within spending limits
331
+ *
332
+ * @example
333
+ * ```typescript
334
+ * // Sign a payment request
335
+ * const signed = await payos.cards.signRequest('agent_123', {
336
+ * method: 'POST',
337
+ * path: '/api/checkout',
338
+ * host: 'merchant.com',
339
+ * body: JSON.stringify({ items: [...], total: 99.99 }),
340
+ * payment: {
341
+ * amount: 99.99,
342
+ * currency: 'USD',
343
+ * merchantName: 'Acme Store',
344
+ * },
345
+ * });
346
+ *
347
+ * // Agent uses signed headers to call merchant
348
+ * const response = await fetch('https://merchant.com/api/checkout', {
349
+ * method: 'POST',
350
+ * headers: {
351
+ * ...signed.headers,
352
+ * 'Content-Type': 'application/json',
353
+ * },
354
+ * body: JSON.stringify({ items: [...], total: 99.99 }),
355
+ * });
356
+ * ```
357
+ */
358
+ async signRequest(agentId, request) {
359
+ return this.client.request(
360
+ `/v1/agents/${agentId}/sign-request`,
361
+ {
362
+ method: "POST",
363
+ body: JSON.stringify(request)
364
+ }
365
+ );
366
+ }
367
+ };
368
+
369
+ exports.CardsClient = CardsClient;
370
+ exports.MastercardClient = MastercardClient;
371
+ exports.VisaClient = VisaClient;
372
+ //# sourceMappingURL=cards.js.map
373
+ //# sourceMappingURL=cards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cards/index.ts"],"names":[],"mappings":"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","file":"cards.js","sourcesContent":["/**\n * Card Networks Module\n *\n * Provides SDK integration for Visa VIC and Mastercard Agent Pay\n * for accepting payments from AI agents.\n */\n\nimport { PayOSClient } from '../client';\nimport type {\n VerifyAgentSignatureRequest,\n VerifyAgentSignatureResult,\n CardNetworksResponse,\n CardAnalyticsResponse,\n VerificationStats,\n CreateVisaInstructionRequest,\n VisaPaymentInstruction,\n PaginatedResponse,\n CreateVisaTokenRequest,\n VisaToken,\n RegisterMastercardAgentRequest,\n MastercardAgentRegistration,\n CreateMastercardTokenRequest,\n MastercardToken,\n CardTransaction,\n NetworkTestResult,\n ConfigureVisaRequest,\n ConfigureMastercardRequest,\n ConfigureResult,\n GenerateSigningKeyRequest,\n GenerateSigningKeyResult,\n SigningKeyStatus,\n SignRequestInput,\n SignRequestResult,\n DeleteSigningKeyResult,\n} from './types';\n\nexport * from './types';\n\n/**\n * Visa-specific operations\n */\nexport class VisaClient {\n constructor(private client: PayOSClient) {}\n\n /**\n * Create a Visa VIC payment instruction\n */\n async createInstruction(\n params: CreateVisaInstructionRequest\n ): Promise<VisaPaymentInstruction> {\n return this.client.request<VisaPaymentInstruction>('/v1/cards/visa/instructions', {\n method: 'POST',\n body: JSON.stringify(params),\n });\n }\n\n /**\n * Get a specific Visa payment instruction\n */\n async getInstruction(instructionId: string): Promise<VisaPaymentInstruction> {\n return this.client.request<VisaPaymentInstruction>(\n `/v1/cards/visa/instructions/${instructionId}`\n );\n }\n\n /**\n * List Visa payment instructions\n */\n async listInstructions(options?: {\n status?: string;\n limit?: number;\n offset?: number;\n }): Promise<PaginatedResponse<VisaPaymentInstruction>> {\n const params = new URLSearchParams();\n if (options?.status) params.set('status', options.status);\n if (options?.limit) params.set('limit', String(options.limit));\n if (options?.offset) params.set('offset', String(options.offset));\n const query = params.toString();\n return this.client.request<PaginatedResponse<VisaPaymentInstruction>>(\n `/v1/cards/visa/instructions${query ? `?${query}` : ''}`\n );\n }\n\n /**\n * Provision a VTS token for an instruction\n */\n async createToken(params: CreateVisaTokenRequest): Promise<VisaToken> {\n return this.client.request<VisaToken>('/v1/cards/visa/tokens', {\n method: 'POST',\n body: JSON.stringify(params),\n });\n }\n\n /**\n * Get a specific Visa token\n */\n async getToken(tokenId: string): Promise<VisaToken> {\n return this.client.request<VisaToken>(`/v1/cards/visa/tokens/${tokenId}`);\n }\n\n /**\n * List Visa tokens\n */\n async listTokens(options?: {\n status?: string;\n limit?: number;\n offset?: number;\n }): Promise<PaginatedResponse<VisaToken>> {\n const params = new URLSearchParams();\n if (options?.status) params.set('status', options.status);\n if (options?.limit) params.set('limit', String(options.limit));\n if (options?.offset) params.set('offset', String(options.offset));\n const query = params.toString();\n return this.client.request<PaginatedResponse<VisaToken>>(\n `/v1/cards/visa/tokens${query ? `?${query}` : ''}`\n );\n }\n\n /**\n * Suspend a Visa token\n */\n async suspendToken(tokenId: string): Promise<{ success: boolean; message: string }> {\n return this.client.request<{ success: boolean; message: string }>(\n `/v1/cards/visa/tokens/${tokenId}`,\n { method: 'DELETE' }\n );\n }\n}\n\n/**\n * Mastercard-specific operations\n */\nexport class MastercardClient {\n constructor(private client: PayOSClient) {}\n\n /**\n * Register an agent with Mastercard Agent Pay\n */\n async registerAgent(\n params: RegisterMastercardAgentRequest\n ): Promise<MastercardAgentRegistration> {\n return this.client.request<MastercardAgentRegistration>('/v1/cards/mastercard/agents', {\n method: 'POST',\n body: JSON.stringify(params),\n });\n }\n\n /**\n * Get a specific Mastercard agent registration\n */\n async getAgent(agentId: string): Promise<MastercardAgentRegistration> {\n return this.client.request<MastercardAgentRegistration>(\n `/v1/cards/mastercard/agents/${agentId}`\n );\n }\n\n /**\n * List registered Mastercard agents\n */\n async listAgents(): Promise<{ data: MastercardAgentRegistration[] }> {\n return this.client.request<{ data: MastercardAgentRegistration[] }>(\n '/v1/cards/mastercard/agents'\n );\n }\n\n /**\n * Create a Mastercard agentic token with DTVC\n */\n async createToken(params: CreateMastercardTokenRequest): Promise<MastercardToken> {\n return this.client.request<MastercardToken>('/v1/cards/mastercard/tokens', {\n method: 'POST',\n body: JSON.stringify(params),\n });\n }\n\n /**\n * Get a Mastercard token, optionally refreshing the DTVC\n */\n async getToken(tokenReference: string, options?: { refresh?: boolean }): Promise<MastercardToken> {\n const query = options?.refresh ? '?refresh=true' : '';\n return this.client.request<MastercardToken>(\n `/v1/cards/mastercard/tokens/${tokenReference}${query}`\n );\n }\n\n /**\n * List Mastercard tokens\n */\n async listTokens(options?: {\n status?: string;\n limit?: number;\n offset?: number;\n }): Promise<PaginatedResponse<MastercardToken>> {\n const params = new URLSearchParams();\n if (options?.status) params.set('status', options.status);\n if (options?.limit) params.set('limit', String(options.limit));\n if (options?.offset) params.set('offset', String(options.offset));\n const query = params.toString();\n return this.client.request<PaginatedResponse<MastercardToken>>(\n `/v1/cards/mastercard/tokens${query ? `?${query}` : ''}`\n );\n }\n\n /**\n * Revoke a Mastercard token\n */\n async revokeToken(tokenReference: string): Promise<{ success: boolean; message: string }> {\n return this.client.request<{ success: boolean; message: string }>(\n `/v1/cards/mastercard/tokens/${tokenReference}`,\n { method: 'DELETE' }\n );\n }\n}\n\n/**\n * Cards Module - Main client for card network operations\n *\n * Provides unified access to:\n * - Web Bot Auth signature verification\n * - Network configuration and status\n * - Visa VIC payment instructions and tokens\n * - Mastercard Agent Pay registration and tokens\n * - Analytics and transactions\n */\nexport class CardsClient {\n /** Visa-specific operations */\n public readonly visa: VisaClient;\n /** Mastercard-specific operations */\n public readonly mastercard: MastercardClient;\n\n constructor(private client: PayOSClient) {\n this.visa = new VisaClient(client);\n this.mastercard = new MastercardClient(client);\n }\n\n /**\n * Verify an AI agent's Web Bot Auth signature\n *\n * @example\n * ```typescript\n * const result = await payos.cards.verifyAgentSignature({\n * method: 'POST',\n * path: '/checkout',\n * headers: req.headers,\n * signatureInput: req.headers['signature-input'],\n * signature: req.headers['signature'],\n * });\n *\n * if (result.valid) {\n * console.log(`Verified ${result.network} agent from ${result.agentProvider}`);\n * }\n * ```\n */\n async verifyAgentSignature(\n params: VerifyAgentSignatureRequest\n ): Promise<VerifyAgentSignatureResult> {\n return this.client.request<VerifyAgentSignatureResult>('/v1/cards/verify', {\n method: 'POST',\n body: JSON.stringify(params),\n });\n }\n\n /**\n * Get configured card networks and their status\n *\n * @example\n * ```typescript\n * const { networks, capabilities } = await payos.cards.getNetworks();\n *\n * if (networks.visa.configured) {\n * console.log(`Visa: ${networks.visa.status}`);\n * }\n * ```\n */\n async getNetworks(): Promise<CardNetworksResponse> {\n return this.client.request<CardNetworksResponse>('/v1/cards/networks');\n }\n\n /**\n * Test connection to a card network\n */\n async testNetwork(network: 'visa' | 'mastercard'): Promise<NetworkTestResult> {\n return this.client.request<NetworkTestResult>(`/v1/cards/networks/${network}/test`, {\n method: 'POST',\n });\n }\n\n /**\n * Configure Visa VIC credentials\n */\n async configureVisa(params: ConfigureVisaRequest): Promise<ConfigureResult> {\n return this.client.request<ConfigureResult>('/v1/cards/networks/visa/configure', {\n method: 'POST',\n body: JSON.stringify(params),\n });\n }\n\n /**\n * Configure Mastercard Agent Pay credentials\n */\n async configureMastercard(params: ConfigureMastercardRequest): Promise<ConfigureResult> {\n return this.client.request<ConfigureResult>('/v1/cards/networks/mastercard/configure', {\n method: 'POST',\n body: JSON.stringify(params),\n });\n }\n\n /**\n * Disconnect a card network\n */\n async disconnectNetwork(network: 'visa' | 'mastercard'): Promise<{ success: boolean; message: string }> {\n return this.client.request<{ success: boolean; message: string }>(\n `/v1/cards/networks/${network}/disconnect`,\n { method: 'DELETE' }\n );\n }\n\n /**\n * Get comprehensive card network analytics\n *\n * @param days - Number of days to analyze (default: 30)\n *\n * @example\n * ```typescript\n * const analytics = await payos.cards.getAnalytics(30);\n *\n * console.log(`Success rate: ${analytics.verifications.successRate}%`);\n * console.log(`Total volume: $${analytics.transactions.volume}`);\n * ```\n */\n async getAnalytics(days = 30): Promise<CardAnalyticsResponse> {\n return this.client.request<CardAnalyticsResponse>(`/v1/cards/analytics?days=${days}`);\n }\n\n /**\n * Get verification statistics\n *\n * @param days - Number of days to analyze (default: 30)\n */\n async getVerificationStats(days = 30): Promise<VerificationStats> {\n return this.client.request<VerificationStats>(`/v1/cards/verifications/stats?days=${days}`);\n }\n\n /**\n * List card network transactions\n */\n async listTransactions(options?: {\n network?: 'visa' | 'mastercard';\n status?: string;\n limit?: number;\n offset?: number;\n }): Promise<PaginatedResponse<CardTransaction>> {\n const params = new URLSearchParams();\n if (options?.network) params.set('network', options.network);\n if (options?.status) params.set('status', options.status);\n if (options?.limit) params.set('limit', String(options.limit));\n if (options?.offset) params.set('offset', String(options.offset));\n const query = params.toString();\n return this.client.request<PaginatedResponse<CardTransaction>>(\n `/v1/cards/transactions${query ? `?${query}` : ''}`\n );\n }\n\n /**\n * Get a specific transaction\n */\n async getTransaction(transactionId: string): Promise<CardTransaction> {\n return this.client.request<CardTransaction>(`/v1/cards/transactions/${transactionId}`);\n }\n\n // ============================================\n // Agent Signing Methods\n // ============================================\n\n /**\n * Generate a signing key for an agent\n *\n * Creates an Ed25519 or RSA-SHA256 key pair for the agent to sign\n * payment requests according to RFC 9421 (HTTP Message Signatures).\n *\n * @example\n * ```typescript\n * const key = await payos.cards.generateSigningKey('agent_123');\n * console.log(`Public key: ${key.publicKey}`);\n * // Register this public key with card networks (Visa TAP, MC Agent Pay)\n * ```\n */\n async generateSigningKey(\n agentId: string,\n options?: GenerateSigningKeyRequest\n ): Promise<GenerateSigningKeyResult> {\n return this.client.request<GenerateSigningKeyResult>(\n `/v1/agents/${agentId}/signing-keys`,\n {\n method: 'POST',\n body: JSON.stringify(options || {}),\n }\n );\n }\n\n /**\n * Get the signing key status for an agent\n *\n * @example\n * ```typescript\n * const status = await payos.cards.getSigningKey('agent_123');\n * if (status.hasKey) {\n * console.log(`Key: ${status.keyId}, Uses: ${status.stats.useCount}`);\n * }\n * ```\n */\n async getSigningKey(agentId: string): Promise<SigningKeyStatus> {\n return this.client.request<SigningKeyStatus>(`/v1/agents/${agentId}/signing-keys`);\n }\n\n /**\n * Revoke an agent's signing key\n *\n * After revocation, the agent will need a new key to sign requests.\n */\n async revokeSigningKey(agentId: string): Promise<DeleteSigningKeyResult> {\n return this.client.request<DeleteSigningKeyResult>(\n `/v1/agents/${agentId}/signing-keys`,\n { method: 'DELETE' }\n );\n }\n\n /**\n * Sign a payment request for an agent\n *\n * Signs an HTTP request according to RFC 9421 so the agent can\n * authenticate with merchants and card networks.\n *\n * Requirements:\n * - Agent must have KYA tier >= 1\n * - Agent must be active\n * - Agent must have a signing key\n * - Payment must be within spending limits\n *\n * @example\n * ```typescript\n * // Sign a payment request\n * const signed = await payos.cards.signRequest('agent_123', {\n * method: 'POST',\n * path: '/api/checkout',\n * host: 'merchant.com',\n * body: JSON.stringify({ items: [...], total: 99.99 }),\n * payment: {\n * amount: 99.99,\n * currency: 'USD',\n * merchantName: 'Acme Store',\n * },\n * });\n *\n * // Agent uses signed headers to call merchant\n * const response = await fetch('https://merchant.com/api/checkout', {\n * method: 'POST',\n * headers: {\n * ...signed.headers,\n * 'Content-Type': 'application/json',\n * },\n * body: JSON.stringify({ items: [...], total: 99.99 }),\n * });\n * ```\n */\n async signRequest(\n agentId: string,\n request: SignRequestInput\n ): Promise<SignRequestResult> {\n return this.client.request<SignRequestResult>(\n `/v1/agents/${agentId}/sign-request`,\n {\n method: 'POST',\n body: JSON.stringify(request),\n }\n );\n }\n}\n"]}