@sardis/sdk 0.2.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 (146) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/LICENSE +21 -0
  3. package/README.md +439 -0
  4. package/dist/browser/index.js +7049 -0
  5. package/dist/browser/index.js.map +1 -0
  6. package/dist/browser/sardis.umd.js +7071 -0
  7. package/dist/browser/sardis.umd.js.map +1 -0
  8. package/dist/cjs/client.js +644 -0
  9. package/dist/cjs/client.js.map +1 -0
  10. package/dist/cjs/demo.js +699 -0
  11. package/dist/cjs/demo.js.map +1 -0
  12. package/dist/cjs/errors.js +630 -0
  13. package/dist/cjs/errors.js.map +1 -0
  14. package/dist/cjs/index.js +131 -0
  15. package/dist/cjs/index.js.map +1 -0
  16. package/dist/cjs/integrations/index.js +21 -0
  17. package/dist/cjs/integrations/index.js.map +1 -0
  18. package/dist/cjs/integrations/langchain.js +339 -0
  19. package/dist/cjs/integrations/langchain.js.map +1 -0
  20. package/dist/cjs/integrations/openai.js +505 -0
  21. package/dist/cjs/integrations/openai.js.map +1 -0
  22. package/dist/cjs/integrations/vercel-ai.js +198 -0
  23. package/dist/cjs/integrations/vercel-ai.js.map +1 -0
  24. package/dist/cjs/resources/a2a.js +158 -0
  25. package/dist/cjs/resources/a2a.js.map +1 -0
  26. package/dist/cjs/resources/agents.js +142 -0
  27. package/dist/cjs/resources/agents.js.map +1 -0
  28. package/dist/cjs/resources/base.js +124 -0
  29. package/dist/cjs/resources/base.js.map +1 -0
  30. package/dist/cjs/resources/cards.js +43 -0
  31. package/dist/cjs/resources/cards.js.map +1 -0
  32. package/dist/cjs/resources/holds.js +64 -0
  33. package/dist/cjs/resources/holds.js.map +1 -0
  34. package/dist/cjs/resources/index.js +31 -0
  35. package/dist/cjs/resources/index.js.map +1 -0
  36. package/dist/cjs/resources/ledger.js +43 -0
  37. package/dist/cjs/resources/ledger.js.map +1 -0
  38. package/dist/cjs/resources/marketplace.js +88 -0
  39. package/dist/cjs/resources/marketplace.js.map +1 -0
  40. package/dist/cjs/resources/payments.js +33 -0
  41. package/dist/cjs/resources/payments.js.map +1 -0
  42. package/dist/cjs/resources/policies.js +31 -0
  43. package/dist/cjs/resources/policies.js.map +1 -0
  44. package/dist/cjs/resources/transactions.js +37 -0
  45. package/dist/cjs/resources/transactions.js.map +1 -0
  46. package/dist/cjs/resources/ucp.js +133 -0
  47. package/dist/cjs/resources/ucp.js.map +1 -0
  48. package/dist/cjs/resources/wallets.js +109 -0
  49. package/dist/cjs/resources/wallets.js.map +1 -0
  50. package/dist/cjs/resources/webhooks.js +81 -0
  51. package/dist/cjs/resources/webhooks.js.map +1 -0
  52. package/dist/cjs/types.js +11 -0
  53. package/dist/cjs/types.js.map +1 -0
  54. package/dist/client.d.ts +419 -0
  55. package/dist/client.d.ts.map +1 -0
  56. package/dist/client.js +637 -0
  57. package/dist/client.js.map +1 -0
  58. package/dist/demo.d.ts +335 -0
  59. package/dist/demo.d.ts.map +1 -0
  60. package/dist/demo.js +694 -0
  61. package/dist/demo.js.map +1 -0
  62. package/dist/errors.d.ts +522 -0
  63. package/dist/errors.d.ts.map +1 -0
  64. package/dist/errors.js +612 -0
  65. package/dist/errors.js.map +1 -0
  66. package/dist/index.d.ts +83 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +85 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/integrations/index.d.ts +4 -0
  71. package/dist/integrations/index.d.ts.map +1 -0
  72. package/dist/integrations/index.js +5 -0
  73. package/dist/integrations/index.js.map +1 -0
  74. package/dist/integrations/langchain.d.ts +68 -0
  75. package/dist/integrations/langchain.d.ts.map +1 -0
  76. package/dist/integrations/langchain.js +335 -0
  77. package/dist/integrations/langchain.js.map +1 -0
  78. package/dist/integrations/openai.d.ts +97 -0
  79. package/dist/integrations/openai.d.ts.map +1 -0
  80. package/dist/integrations/openai.js +467 -0
  81. package/dist/integrations/openai.js.map +1 -0
  82. package/dist/integrations/vercel-ai.d.ts +180 -0
  83. package/dist/integrations/vercel-ai.d.ts.map +1 -0
  84. package/dist/integrations/vercel-ai.js +194 -0
  85. package/dist/integrations/vercel-ai.js.map +1 -0
  86. package/dist/resources/a2a.d.ts +254 -0
  87. package/dist/resources/a2a.d.ts.map +1 -0
  88. package/dist/resources/a2a.js +154 -0
  89. package/dist/resources/a2a.js.map +1 -0
  90. package/dist/resources/agents.d.ts +111 -0
  91. package/dist/resources/agents.d.ts.map +1 -0
  92. package/dist/resources/agents.js +138 -0
  93. package/dist/resources/agents.js.map +1 -0
  94. package/dist/resources/base.d.ts +115 -0
  95. package/dist/resources/base.d.ts.map +1 -0
  96. package/dist/resources/base.js +120 -0
  97. package/dist/resources/base.js.map +1 -0
  98. package/dist/resources/cards.d.ts +19 -0
  99. package/dist/resources/cards.d.ts.map +1 -0
  100. package/dist/resources/cards.js +39 -0
  101. package/dist/resources/cards.js.map +1 -0
  102. package/dist/resources/holds.d.ts +44 -0
  103. package/dist/resources/holds.d.ts.map +1 -0
  104. package/dist/resources/holds.js +60 -0
  105. package/dist/resources/holds.js.map +1 -0
  106. package/dist/resources/index.d.ts +16 -0
  107. package/dist/resources/index.d.ts.map +1 -0
  108. package/dist/resources/index.js +16 -0
  109. package/dist/resources/index.js.map +1 -0
  110. package/dist/resources/ledger.d.ts +38 -0
  111. package/dist/resources/ledger.d.ts.map +1 -0
  112. package/dist/resources/ledger.js +39 -0
  113. package/dist/resources/ledger.js.map +1 -0
  114. package/dist/resources/marketplace.d.ts +60 -0
  115. package/dist/resources/marketplace.d.ts.map +1 -0
  116. package/dist/resources/marketplace.js +84 -0
  117. package/dist/resources/marketplace.js.map +1 -0
  118. package/dist/resources/payments.d.ts +24 -0
  119. package/dist/resources/payments.d.ts.map +1 -0
  120. package/dist/resources/payments.js +29 -0
  121. package/dist/resources/payments.js.map +1 -0
  122. package/dist/resources/policies.d.ts +23 -0
  123. package/dist/resources/policies.d.ts.map +1 -0
  124. package/dist/resources/policies.js +27 -0
  125. package/dist/resources/policies.js.map +1 -0
  126. package/dist/resources/transactions.d.ts +32 -0
  127. package/dist/resources/transactions.d.ts.map +1 -0
  128. package/dist/resources/transactions.js +33 -0
  129. package/dist/resources/transactions.js.map +1 -0
  130. package/dist/resources/ucp.d.ts +218 -0
  131. package/dist/resources/ucp.d.ts.map +1 -0
  132. package/dist/resources/ucp.js +129 -0
  133. package/dist/resources/ucp.js.map +1 -0
  134. package/dist/resources/wallets.d.ts +71 -0
  135. package/dist/resources/wallets.d.ts.map +1 -0
  136. package/dist/resources/wallets.js +105 -0
  137. package/dist/resources/wallets.js.map +1 -0
  138. package/dist/resources/webhooks.d.ts +57 -0
  139. package/dist/resources/webhooks.d.ts.map +1 -0
  140. package/dist/resources/webhooks.js +77 -0
  141. package/dist/resources/webhooks.js.map +1 -0
  142. package/dist/types.d.ts +1045 -0
  143. package/dist/types.d.ts.map +1 -0
  144. package/dist/types.js +10 -0
  145. package/dist/types.js.map +1 -0
  146. package/package.json +114 -0
@@ -0,0 +1,180 @@
1
+ import { z } from 'zod';
2
+ import { SardisClient } from '../client.js';
3
+ export interface SardisToolsOptions {
4
+ /** Default wallet ID to use for payments */
5
+ walletId?: string;
6
+ /** Default agent ID */
7
+ agentId?: string;
8
+ /** Default chain for transactions */
9
+ chain?: 'base' | 'base_sepolia' | 'polygon' | 'polygon_amoy' | 'ethereum' | 'ethereum_sepolia';
10
+ /** Default token */
11
+ token?: 'USDC' | 'USDT' | 'PYUSD' | 'EURC';
12
+ }
13
+ /**
14
+ * Create Sardis tools for Vercel AI SDK integration.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { generateText } from 'ai';
19
+ * import { SardisClient } from '@sardis/sdk';
20
+ * import { createSardisTools } from '@sardis/sdk/integrations/vercel-ai';
21
+ *
22
+ * const client = new SardisClient({ apiKey: 'your-api-key' });
23
+ * const tools = createSardisTools(client, {
24
+ * walletId: 'wallet_123',
25
+ * agentId: 'agent_456'
26
+ * });
27
+ *
28
+ * const result = await generateText({
29
+ * model: yourModel,
30
+ * tools,
31
+ * prompt: 'Pay $50 to OpenAI for API credits'
32
+ * });
33
+ * ```
34
+ */
35
+ export declare const createSardisTools: (client?: SardisClient, options?: SardisToolsOptions) => {
36
+ /**
37
+ * Execute a secure payment using Sardis MPC wallet.
38
+ */
39
+ payVendor: {
40
+ description: string;
41
+ parameters: z.ZodObject<{
42
+ amount: z.ZodNumber;
43
+ vendor: z.ZodString;
44
+ vendorAddress: z.ZodOptional<z.ZodString>;
45
+ purpose: z.ZodOptional<z.ZodString>;
46
+ walletId: z.ZodOptional<z.ZodString>;
47
+ token: z.ZodOptional<z.ZodEnum<["USDC", "USDT", "PYUSD", "EURC"]>>;
48
+ chain: z.ZodOptional<z.ZodString>;
49
+ domain: z.ZodOptional<z.ZodString>;
50
+ }, "strip", z.ZodTypeAny, {
51
+ amount: number;
52
+ vendor: string;
53
+ chain?: string | undefined;
54
+ token?: "USDC" | "USDT" | "PYUSD" | "EURC" | undefined;
55
+ vendorAddress?: string | undefined;
56
+ purpose?: string | undefined;
57
+ walletId?: string | undefined;
58
+ domain?: string | undefined;
59
+ }, {
60
+ amount: number;
61
+ vendor: string;
62
+ chain?: string | undefined;
63
+ token?: "USDC" | "USDT" | "PYUSD" | "EURC" | undefined;
64
+ vendorAddress?: string | undefined;
65
+ purpose?: string | undefined;
66
+ walletId?: string | undefined;
67
+ domain?: string | undefined;
68
+ }>;
69
+ execute: ({ amount, vendor, vendorAddress, purpose, walletId, token, chain, domain, }: {
70
+ amount: number;
71
+ vendor: string;
72
+ vendorAddress?: string;
73
+ purpose?: string;
74
+ walletId?: string;
75
+ token?: "USDC" | "USDT" | "PYUSD" | "EURC";
76
+ chain?: string;
77
+ domain?: string;
78
+ }) => Promise<{
79
+ success: boolean;
80
+ error: string;
81
+ status?: undefined;
82
+ transactionHash?: undefined;
83
+ chain?: undefined;
84
+ auditAnchor?: undefined;
85
+ message?: undefined;
86
+ blocked?: undefined;
87
+ } | {
88
+ success: boolean;
89
+ status: string;
90
+ transactionHash: string;
91
+ chain: import("../types.js").Chain;
92
+ auditAnchor: string | null | undefined;
93
+ message: string;
94
+ error?: undefined;
95
+ blocked?: undefined;
96
+ } | {
97
+ success: boolean;
98
+ blocked: boolean;
99
+ error: string;
100
+ message: string;
101
+ status?: undefined;
102
+ transactionHash?: undefined;
103
+ chain?: undefined;
104
+ auditAnchor?: undefined;
105
+ }>;
106
+ };
107
+ /**
108
+ * Check wallet balance before making a payment.
109
+ */
110
+ checkBalance: {
111
+ description: string;
112
+ parameters: z.ZodObject<{
113
+ walletId: z.ZodOptional<z.ZodString>;
114
+ token: z.ZodOptional<z.ZodEnum<["USDC", "USDT", "PYUSD", "EURC"]>>;
115
+ chain: z.ZodOptional<z.ZodString>;
116
+ }, "strip", z.ZodTypeAny, {
117
+ chain?: string | undefined;
118
+ token?: "USDC" | "USDT" | "PYUSD" | "EURC" | undefined;
119
+ walletId?: string | undefined;
120
+ }, {
121
+ chain?: string | undefined;
122
+ token?: "USDC" | "USDT" | "PYUSD" | "EURC" | undefined;
123
+ walletId?: string | undefined;
124
+ }>;
125
+ execute: ({ walletId, token, chain }: {
126
+ walletId?: string;
127
+ token?: "USDC" | "USDT" | "PYUSD" | "EURC";
128
+ chain?: string;
129
+ }) => Promise<{
130
+ success: boolean;
131
+ error: string;
132
+ walletId?: undefined;
133
+ balance?: undefined;
134
+ token?: undefined;
135
+ chain?: undefined;
136
+ address?: undefined;
137
+ } | {
138
+ success: boolean;
139
+ walletId: string;
140
+ balance: string;
141
+ token: import("../types.js").Token;
142
+ chain: string;
143
+ address: string;
144
+ error?: undefined;
145
+ }>;
146
+ };
147
+ /**
148
+ * Get wallet information.
149
+ */
150
+ getWallet: {
151
+ description: string;
152
+ parameters: z.ZodObject<{
153
+ walletId: z.ZodOptional<z.ZodString>;
154
+ }, "strip", z.ZodTypeAny, {
155
+ walletId?: string | undefined;
156
+ }, {
157
+ walletId?: string | undefined;
158
+ }>;
159
+ execute: ({ walletId }: {
160
+ walletId?: string;
161
+ }) => Promise<{
162
+ success: boolean;
163
+ error: string;
164
+ wallet?: undefined;
165
+ } | {
166
+ success: boolean;
167
+ wallet: {
168
+ id: string;
169
+ agentId: string;
170
+ currency: import("../types.js").Token;
171
+ limitPerTx: string;
172
+ limitTotal: string;
173
+ isActive: boolean;
174
+ addresses: Record<string, string>;
175
+ };
176
+ error?: undefined;
177
+ }>;
178
+ };
179
+ };
180
+ //# sourceMappingURL=vercel-ai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel-ai.d.ts","sourceRoot":"","sources":["../../src/integrations/vercel-ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IAC/B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,UAAU,GAAG,kBAAkB,CAAC;IAC/F,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CAC9C;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,YAAY,EAAE,UAAS,kBAAuB;IAOjF;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+FAsBI;YACC,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;YAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;SACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkEL;;OAEG;;;;;;;;;;;;;;;;8CAYI;YACC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;YAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;SAClB;;;;;;;;;;;;;;;;;;IAwCL;;OAEG;;;;;;;;;;gCAM+B;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;CAwC9D,CAAC"}
@@ -0,0 +1,194 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Create Sardis tools for Vercel AI SDK integration.
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * import { generateText } from 'ai';
8
+ * import { SardisClient } from '@sardis/sdk';
9
+ * import { createSardisTools } from '@sardis/sdk/integrations/vercel-ai';
10
+ *
11
+ * const client = new SardisClient({ apiKey: 'your-api-key' });
12
+ * const tools = createSardisTools(client, {
13
+ * walletId: 'wallet_123',
14
+ * agentId: 'agent_456'
15
+ * });
16
+ *
17
+ * const result = await generateText({
18
+ * model: yourModel,
19
+ * tools,
20
+ * prompt: 'Pay $50 to OpenAI for API credits'
21
+ * });
22
+ * ```
23
+ */
24
+ export const createSardisTools = (client, options = {}) => {
25
+ const sardis = client;
26
+ const defaultWalletId = options.walletId || process.env.SARDIS_WALLET_ID || '';
27
+ const defaultChain = options.chain || 'base_sepolia';
28
+ const defaultToken = options.token || 'USDC';
29
+ return {
30
+ /**
31
+ * Execute a secure payment using Sardis MPC wallet.
32
+ */
33
+ payVendor: {
34
+ description: 'Execute a secure payment using Sardis MPC wallet. Validates against spending policies before execution.',
35
+ parameters: z.object({
36
+ amount: z.number().describe('The amount to pay in USD (or token units).'),
37
+ vendor: z.string().describe('The name of the merchant or service provider.'),
38
+ vendorAddress: z.string().optional().describe('The wallet address of the vendor (0x...).'),
39
+ purpose: z.string().optional().describe('The reason for the payment, used for policy validation.'),
40
+ walletId: z.string().optional().describe('The wallet ID to pay from. Defaults to configured wallet.'),
41
+ token: z.enum(['USDC', 'USDT', 'PYUSD', 'EURC']).optional().describe('The stablecoin to use. Defaults to USDC.'),
42
+ chain: z.string().optional().describe('The chain to use (e.g. base_sepolia). Defaults to configured chain.'),
43
+ domain: z.string().optional().describe('Policy context label (e.g. aws.amazon.com). Defaults to vendor.'),
44
+ }),
45
+ execute: async ({ amount, vendor, vendorAddress, purpose, walletId, token, chain, domain, }) => {
46
+ if (!sardis) {
47
+ return {
48
+ success: false,
49
+ error: "SardisClient not initialized. Please provide a client instance."
50
+ };
51
+ }
52
+ const effectiveWalletId = walletId || defaultWalletId;
53
+ if (!effectiveWalletId) {
54
+ return {
55
+ success: false,
56
+ error: "No wallet ID provided. Set walletId in options or SARDIS_WALLET_ID env var."
57
+ };
58
+ }
59
+ try {
60
+ const effectiveToken = token || defaultToken;
61
+ const effectiveChain = chain || defaultChain;
62
+ const effectiveDomain = domain || vendor;
63
+ if (!vendorAddress) {
64
+ return {
65
+ success: false,
66
+ error: "Missing vendorAddress (destination). Provide a wallet address (0x...) for the vendor."
67
+ };
68
+ }
69
+ const result = await sardis.wallets.transfer(effectiveWalletId, {
70
+ destination: vendorAddress,
71
+ amount: amount.toString(),
72
+ token: effectiveToken,
73
+ chain: effectiveChain,
74
+ domain: effectiveDomain,
75
+ memo: purpose,
76
+ });
77
+ return {
78
+ success: true,
79
+ status: result.status,
80
+ transactionHash: result.tx_hash,
81
+ chain: result.chain,
82
+ auditAnchor: result.audit_anchor,
83
+ message: `Payment of $${amount} ${effectiveToken} to ${vendor} ${result.status === 'completed' ? 'completed' : 'initiated'} successfully.`
84
+ };
85
+ }
86
+ catch (error) {
87
+ const errorMessage = error instanceof Error ? error.message : 'Payment failed';
88
+ // Check if this is a policy violation
89
+ if (errorMessage.includes('policy') || errorMessage.includes('blocked') || errorMessage.includes('limit')) {
90
+ return {
91
+ success: false,
92
+ blocked: true,
93
+ error: errorMessage,
94
+ message: `Payment to ${vendor} was blocked by spending policy: ${errorMessage}`
95
+ };
96
+ }
97
+ return {
98
+ success: false,
99
+ error: errorMessage
100
+ };
101
+ }
102
+ },
103
+ },
104
+ /**
105
+ * Check wallet balance before making a payment.
106
+ */
107
+ checkBalance: {
108
+ description: 'Check the current balance of a Sardis wallet.',
109
+ parameters: z.object({
110
+ walletId: z.string().optional().describe('The wallet ID to check. Defaults to configured wallet.'),
111
+ token: z.enum(['USDC', 'USDT', 'PYUSD', 'EURC']).optional().describe('The token to check balance for.'),
112
+ chain: z.string().optional().describe('The chain to check balance on.'),
113
+ }),
114
+ execute: async ({ walletId, token, chain }) => {
115
+ if (!sardis) {
116
+ return {
117
+ success: false,
118
+ error: "SardisClient not initialized"
119
+ };
120
+ }
121
+ const effectiveWalletId = walletId || defaultWalletId;
122
+ if (!effectiveWalletId) {
123
+ return {
124
+ success: false,
125
+ error: "No wallet ID provided"
126
+ };
127
+ }
128
+ try {
129
+ const balance = await sardis.wallets.getBalance(effectiveWalletId, chain || defaultChain, token || defaultToken);
130
+ return {
131
+ success: true,
132
+ walletId: balance.wallet_id,
133
+ balance: balance.balance,
134
+ token: balance.token,
135
+ chain: balance.chain,
136
+ address: balance.address
137
+ };
138
+ }
139
+ catch (error) {
140
+ return {
141
+ success: false,
142
+ error: error instanceof Error ? error.message : 'Failed to get balance'
143
+ };
144
+ }
145
+ },
146
+ },
147
+ /**
148
+ * Get wallet information.
149
+ */
150
+ getWallet: {
151
+ description: 'Get information about a Sardis wallet including spending limits.',
152
+ parameters: z.object({
153
+ walletId: z.string().optional().describe('The wallet ID to get info for. Defaults to configured wallet.'),
154
+ }),
155
+ execute: async ({ walletId }) => {
156
+ if (!sardis) {
157
+ return {
158
+ success: false,
159
+ error: "SardisClient not initialized"
160
+ };
161
+ }
162
+ const effectiveWalletId = walletId || defaultWalletId;
163
+ if (!effectiveWalletId) {
164
+ return {
165
+ success: false,
166
+ error: "No wallet ID provided"
167
+ };
168
+ }
169
+ try {
170
+ const wallet = await sardis.wallets.get(effectiveWalletId);
171
+ return {
172
+ success: true,
173
+ wallet: {
174
+ id: wallet.id,
175
+ agentId: wallet.agent_id,
176
+ currency: wallet.currency,
177
+ limitPerTx: wallet.limit_per_tx,
178
+ limitTotal: wallet.limit_total,
179
+ isActive: wallet.is_active,
180
+ addresses: wallet.addresses
181
+ }
182
+ };
183
+ }
184
+ catch (error) {
185
+ return {
186
+ success: false,
187
+ error: error instanceof Error ? error.message : 'Failed to get wallet'
188
+ };
189
+ }
190
+ },
191
+ },
192
+ };
193
+ };
194
+ //# sourceMappingURL=vercel-ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel-ai.js","sourceRoot":"","sources":["../../src/integrations/vercel-ai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,254 @@
1
+ /**
2
+ * A2A (Agent-to-Agent) resource
3
+ *
4
+ * Provides inter-agent communication capabilities:
5
+ * - Discover other agents via agent cards
6
+ * - Send payment requests
7
+ * - Verify credentials
8
+ */
9
+ import { BaseResource } from './base.js';
10
+ export interface AgentCapability {
11
+ capability_type: string;
12
+ version?: string;
13
+ enabled?: boolean;
14
+ endpoint?: string;
15
+ }
16
+ export interface PaymentCapability {
17
+ supported_tokens: string[];
18
+ supported_chains: string[];
19
+ min_amount_minor?: number;
20
+ max_amount_minor?: number;
21
+ ap2_compliant?: boolean;
22
+ x402_compliant?: boolean;
23
+ ucp_compliant?: boolean;
24
+ }
25
+ export interface ServiceEndpoint {
26
+ url: string;
27
+ protocol?: string;
28
+ auth_required?: boolean;
29
+ auth_type?: string;
30
+ }
31
+ export interface AgentCard {
32
+ agent_id: string;
33
+ name: string;
34
+ version?: string;
35
+ description?: string;
36
+ operator?: {
37
+ name?: string;
38
+ url?: string;
39
+ contact?: string;
40
+ };
41
+ capabilities: string[];
42
+ payment?: PaymentCapability;
43
+ endpoints?: {
44
+ api?: ServiceEndpoint;
45
+ mcp?: string;
46
+ webhook?: ServiceEndpoint;
47
+ a2a?: ServiceEndpoint;
48
+ };
49
+ signing?: {
50
+ key_id?: string;
51
+ public_key?: string;
52
+ algorithm?: string;
53
+ };
54
+ created_at?: string;
55
+ updated_at?: string;
56
+ metadata?: Record<string, unknown>;
57
+ }
58
+ export interface DiscoveredAgent {
59
+ agent_id: string;
60
+ agent_name: string;
61
+ agent_url: string;
62
+ card?: AgentCard;
63
+ available: boolean;
64
+ last_error?: string;
65
+ discovered_at: string;
66
+ last_verified_at: string;
67
+ }
68
+ export interface PaymentRequestInput {
69
+ recipient_agent_url: string;
70
+ amount_minor: number;
71
+ token: string;
72
+ chain: string;
73
+ destination: string;
74
+ purpose?: string;
75
+ reference?: string;
76
+ callback_url?: string;
77
+ metadata?: Record<string, unknown>;
78
+ }
79
+ export interface PaymentResponse {
80
+ response_id: string;
81
+ request_id: string;
82
+ success: boolean;
83
+ status: string;
84
+ tx_hash?: string;
85
+ chain?: string;
86
+ block_number?: number;
87
+ error?: string;
88
+ error_code?: string;
89
+ }
90
+ export interface CredentialVerifyInput {
91
+ recipient_agent_url: string;
92
+ credential_type: string;
93
+ credential_data: Record<string, unknown>;
94
+ verify_signature?: boolean;
95
+ verify_expiration?: boolean;
96
+ verify_chain?: boolean;
97
+ }
98
+ export interface CredentialResponse {
99
+ response_id: string;
100
+ request_id: string;
101
+ valid: boolean;
102
+ verified_at: string;
103
+ signature_valid?: boolean;
104
+ not_expired?: boolean;
105
+ chain_valid?: boolean;
106
+ error?: string;
107
+ error_code?: string;
108
+ verification_details?: Record<string, unknown>;
109
+ }
110
+ export interface A2AMessage {
111
+ message_id: string;
112
+ message_type: string;
113
+ sender_id: string;
114
+ recipient_id: string;
115
+ timestamp: string;
116
+ expires_at?: string;
117
+ correlation_id?: string;
118
+ in_reply_to?: string;
119
+ payload: Record<string, unknown>;
120
+ signature?: string;
121
+ status: string;
122
+ error?: string;
123
+ error_code?: string;
124
+ }
125
+ export declare class A2AResource extends BaseResource {
126
+ /**
127
+ * Discover an agent by URL
128
+ *
129
+ * Fetches the agent card from /.well-known/agent-card.json
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * const agent = await client.a2a.discoverAgent('https://agent.example.com');
134
+ * console.log(agent.card?.capabilities);
135
+ * ```
136
+ */
137
+ discoverAgent(agentUrl: string, forceRefresh?: boolean): Promise<DiscoveredAgent>;
138
+ /**
139
+ * Get our own agent card
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * const myCard = await client.a2a.getAgentCard();
144
+ * console.log(myCard.capabilities);
145
+ * ```
146
+ */
147
+ getAgentCard(): Promise<AgentCard>;
148
+ /**
149
+ * List all discovered agents
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * const agents = await client.a2a.listAgents({
154
+ * capability: 'payment.execute',
155
+ * available_only: true,
156
+ * });
157
+ * ```
158
+ */
159
+ listAgents(options?: {
160
+ capability?: string;
161
+ token?: string;
162
+ chain?: string;
163
+ available_only?: boolean;
164
+ }): Promise<DiscoveredAgent[]>;
165
+ /**
166
+ * Send a payment request to another agent
167
+ *
168
+ * @example
169
+ * ```typescript
170
+ * const response = await client.a2a.sendPaymentRequest({
171
+ * recipient_agent_url: 'https://merchant.example.com',
172
+ * amount_minor: 5000,
173
+ * token: 'USDC',
174
+ * chain: 'base',
175
+ * destination: '0x...',
176
+ * purpose: 'Order #12345',
177
+ * });
178
+ *
179
+ * if (response.success) {
180
+ * console.log('Payment tx:', response.tx_hash);
181
+ * }
182
+ * ```
183
+ */
184
+ sendPaymentRequest(input: PaymentRequestInput): Promise<PaymentResponse>;
185
+ /**
186
+ * Request credential verification from another agent
187
+ *
188
+ * @example
189
+ * ```typescript
190
+ * const response = await client.a2a.verifyCredential({
191
+ * recipient_agent_url: 'https://verifier.example.com',
192
+ * credential_type: 'mandate',
193
+ * credential_data: mandate,
194
+ * });
195
+ *
196
+ * if (response.valid) {
197
+ * console.log('Credential verified!');
198
+ * }
199
+ * ```
200
+ */
201
+ verifyCredential(input: CredentialVerifyInput): Promise<CredentialResponse>;
202
+ /**
203
+ * Send a raw A2A message to another agent
204
+ *
205
+ * @example
206
+ * ```typescript
207
+ * const response = await client.a2a.sendMessage(
208
+ * 'https://agent.example.com',
209
+ * {
210
+ * message_type: 'custom',
211
+ * payload: { action: 'notify', data: {...} },
212
+ * }
213
+ * );
214
+ * ```
215
+ */
216
+ sendMessage(recipientUrl: string, message: Partial<A2AMessage>): Promise<A2AMessage>;
217
+ /**
218
+ * List recent A2A messages
219
+ *
220
+ * @example
221
+ * ```typescript
222
+ * const messages = await client.a2a.listMessages({
223
+ * direction: 'inbound',
224
+ * message_type: 'payment_request',
225
+ * });
226
+ * ```
227
+ */
228
+ listMessages(options?: {
229
+ direction?: 'inbound' | 'outbound' | 'all';
230
+ message_type?: string;
231
+ status?: string;
232
+ limit?: number;
233
+ offset?: number;
234
+ }): Promise<A2AMessage[]>;
235
+ /**
236
+ * Register an agent for discovery
237
+ *
238
+ * @example
239
+ * ```typescript
240
+ * await client.a2a.registerAgent({
241
+ * agent_id: 'my_agent',
242
+ * agent_name: 'My Agent',
243
+ * agent_url: 'https://my-agent.example.com',
244
+ * });
245
+ * ```
246
+ */
247
+ registerAgent(input: {
248
+ agent_id: string;
249
+ agent_name: string;
250
+ agent_url: string;
251
+ card?: AgentCard;
252
+ }): Promise<DiscoveredAgent>;
253
+ }
254
+ //# sourceMappingURL=a2a.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../../src/resources/a2a.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIzC,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,SAAS,CAAC,EAAE;QACV,GAAG,CAAC,EAAE,eAAe,CAAC;QACtB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,eAAe,CAAC;QAC1B,GAAG,CAAC,EAAE,eAAe,CAAC;KACvB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,qBAAa,WAAY,SAAQ,YAAY;IAC3C;;;;;;;;;;OAUG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAOvF;;;;;;;;OAQG;IACG,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAIxC;;;;;;;;;;OAUG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAY9B;;;;;;;;;;;;;;;;;;OAkBG;IACG,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAI9E;;;;;;;;;;;;;;;OAeG;IACG,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIjF;;;;;;;;;;;;;OAaG;IACG,WAAW,CACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,OAAO,CAAC,UAAU,CAAC;IAOtB;;;;;;;;;;OAUG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE;QAC3B,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC;QAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAYzB;;;;;;;;;;;OAWG;IACG,aAAa,CAAC,KAAK,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,SAAS,CAAC;KAClB,GAAG,OAAO,CAAC,eAAe,CAAC;CAG7B"}