@absol-labs/agent 0.6.0 → 0.7.1

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 (47) hide show
  1. package/README.md +21 -5
  2. package/dist/index.d.ts +6 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +6 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/wallet/autonomous-wallet-broker.d.ts +97 -0
  7. package/dist/wallet/autonomous-wallet-broker.d.ts.map +1 -0
  8. package/dist/wallet/autonomous-wallet-broker.js +478 -0
  9. package/dist/wallet/autonomous-wallet-broker.js.map +1 -0
  10. package/dist/wallet/autonomous-wallet-protocol.d.ts +56 -0
  11. package/dist/wallet/autonomous-wallet-protocol.d.ts.map +1 -0
  12. package/dist/wallet/autonomous-wallet-protocol.js +15 -0
  13. package/dist/wallet/autonomous-wallet-protocol.js.map +1 -0
  14. package/dist/wallet/autonomous-wallet.d.ts +106 -0
  15. package/dist/wallet/autonomous-wallet.d.ts.map +1 -0
  16. package/dist/wallet/autonomous-wallet.js +494 -0
  17. package/dist/wallet/autonomous-wallet.js.map +1 -0
  18. package/dist/wallet/privy-broker-server-entry.d.ts +2 -0
  19. package/dist/wallet/privy-broker-server-entry.d.ts.map +1 -0
  20. package/dist/wallet/privy-broker-server-entry.js +8 -0
  21. package/dist/wallet/privy-broker-server-entry.js.map +1 -0
  22. package/dist/wallet/privy-broker-server.d.ts +29 -0
  23. package/dist/wallet/privy-broker-server.d.ts.map +1 -0
  24. package/dist/wallet/privy-broker-server.js +480 -0
  25. package/dist/wallet/privy-broker-server.js.map +1 -0
  26. package/dist/wallet/privy-session-broker.d.ts +109 -0
  27. package/dist/wallet/privy-session-broker.d.ts.map +1 -0
  28. package/dist/wallet/privy-session-broker.js +372 -0
  29. package/dist/wallet/privy-session-broker.js.map +1 -0
  30. package/dist/wallet/privy-session-provider.d.ts +21 -0
  31. package/dist/wallet/privy-session-provider.d.ts.map +1 -0
  32. package/dist/wallet/privy-session-provider.js +94 -0
  33. package/dist/wallet/privy-session-provider.js.map +1 -0
  34. package/dist/wallet/provider.d.ts +51 -2
  35. package/dist/wallet/provider.d.ts.map +1 -1
  36. package/dist/wallet/provider.js +138 -1
  37. package/dist/wallet/provider.js.map +1 -1
  38. package/package.json +3 -1
  39. package/src/index.ts +73 -0
  40. package/src/wallet/autonomous-wallet-broker.ts +774 -0
  41. package/src/wallet/autonomous-wallet-protocol.ts +71 -0
  42. package/src/wallet/autonomous-wallet.ts +779 -0
  43. package/src/wallet/privy-broker-server-entry.ts +9 -0
  44. package/src/wallet/privy-broker-server.ts +573 -0
  45. package/src/wallet/privy-session-broker.ts +634 -0
  46. package/src/wallet/privy-session-provider.ts +129 -0
  47. package/src/wallet/provider.ts +260 -3
@@ -1,5 +1,6 @@
1
1
  import { CdpClient, } from "@coinbase/cdp-sdk";
2
- import { privateKeyToAccount, toAccount } from "viem/accounts";
2
+ import { custom, toHex, serializeTypedData, isAddress, } from "viem";
3
+ import { parseAccount, privateKeyToAccount, toAccount } from "viem/accounts";
3
4
  import { z } from "zod";
4
5
  import { VerifiedStreamAgentClient, } from "../sdk/client.js";
5
6
  const privateKeySchema = z
@@ -24,6 +25,14 @@ export class AgentWalletConfigError extends Error {
24
25
  this.name = "AgentWalletConfigError";
25
26
  }
26
27
  }
28
+ export class PrivyEmbeddedWalletError extends Error {
29
+ code;
30
+ constructor(code, message, options) {
31
+ super(message, options);
32
+ this.name = "PrivyEmbeddedWalletError";
33
+ this.code = code;
34
+ }
35
+ }
27
36
  export async function resolveAgentWallet(input, options = {}) {
28
37
  if ("injectedAccount" in input) {
29
38
  return {
@@ -31,6 +40,15 @@ export async function resolveAgentWallet(input, options = {}) {
31
40
  account: input.injectedAccount,
32
41
  };
33
42
  }
43
+ if ("privy" in input) {
44
+ const chainId = input.privy.chainId ?? BASE_SEPOLIA_CHAIN_ID;
45
+ const account = await createPrivyEmbeddedAccount(input.privy);
46
+ return {
47
+ source: "privy",
48
+ account,
49
+ privy: { appId: input.privy.appId, chainId },
50
+ };
51
+ }
34
52
  const cdpClient = (options.createCdpClient ?? defaultCdpClientFactory)(input.cdp);
35
53
  const owner = await cdpClient.evm.getOrCreateAccount({
36
54
  name: input.cdp.ownerName,
@@ -48,11 +66,55 @@ export async function resolveAgentWallet(input, options = {}) {
48
66
  ...(smartAccount === undefined ? {} : { smartAccount }),
49
67
  };
50
68
  }
69
+ /**
70
+ * Adapts an authenticated Privy EIP-1193 wallet to a viem JSON-RPC Account.
71
+ * It deliberately remains a JSON-RPC account so viem sends transactions via
72
+ * Privy's documented `eth_sendTransaction` boundary instead of assuming that
73
+ * the embedded provider exposes raw transaction signing. Every signing
74
+ * operation rechecks chain and account identity so a
75
+ * browser account/network switch cannot silently redirect a spend.
76
+ *
77
+ * This is an EOA adapter only. It does not implement EIP-1271, smart accounts,
78
+ * session-key issuance, or gas sponsorship; those require provider/site or
79
+ * backend integration and must be wired explicitly by the caller.
80
+ */
81
+ export async function createPrivyEmbeddedAccount(config) {
82
+ validatePrivyConfig(config);
83
+ const chainId = config.chainId ?? BASE_SEPOLIA_CHAIN_ID;
84
+ await assertPrivySession(config, chainId);
85
+ const account = {
86
+ ...parseAccount(config.address),
87
+ signMessage: async ({ message }) => {
88
+ await assertPrivySession(config, chainId);
89
+ const raw = typeof message === "string"
90
+ ? toHex(message)
91
+ : message.raw instanceof Uint8Array
92
+ ? toHex(message.raw)
93
+ : message.raw;
94
+ return requireSignature(await requestPrivy(config.provider, "personal_sign", [
95
+ raw,
96
+ config.address,
97
+ ]));
98
+ },
99
+ signTypedData: async (parameters) => {
100
+ await assertPrivySession(config, chainId);
101
+ const serialized = serializeTypedData(parameters);
102
+ return requireSignature(await requestPrivy(config.provider, "eth_signTypedData_v4", [
103
+ config.address,
104
+ serialized,
105
+ ]));
106
+ },
107
+ };
108
+ return account;
109
+ }
51
110
  export async function createWalletBackedAgentClient(sdkConfig, walletInput, options = {}) {
52
111
  const wallet = await resolveAgentWallet(walletInput, options);
53
112
  const agentClient = new VerifiedStreamAgentClient({
54
113
  ...sdkConfig,
55
114
  account: wallet.account,
115
+ ...("privy" in walletInput
116
+ ? { transport: custom(createCheckedPrivyProvider(walletInput.privy)) }
117
+ : {}),
56
118
  }, {
57
119
  ...(options.createSdkClient === undefined
58
120
  ? {}
@@ -104,4 +166,79 @@ function defaultCdpClientFactory(config) {
104
166
  : { walletSecret: config.walletSecret }),
105
167
  });
106
168
  }
169
+ const BASE_SEPOLIA_CHAIN_ID = 84532;
170
+ function validatePrivyConfig(config) {
171
+ if (config.appId.trim() === "") {
172
+ throw new PrivyEmbeddedWalletError("invalid-config", "Privy public app id is required; an app secret is never accepted by this adapter");
173
+ }
174
+ if (!isAddress(config.address)) {
175
+ throw new PrivyEmbeddedWalletError("invalid-config", "Privy wallet address is invalid");
176
+ }
177
+ if (config.chainId !== undefined &&
178
+ config.chainId !== BASE_SEPOLIA_CHAIN_ID) {
179
+ throw new PrivyEmbeddedWalletError("invalid-config", `Metrik Privy wallets support Base Sepolia chain ID ${BASE_SEPOLIA_CHAIN_ID} only`);
180
+ }
181
+ }
182
+ async function assertPrivySession(config, expectedChainId) {
183
+ let chainResult;
184
+ let accountsResult;
185
+ try {
186
+ [chainResult, accountsResult] = await Promise.all([
187
+ config.provider.request({ method: "eth_chainId" }),
188
+ config.provider.request({ method: "eth_accounts" }),
189
+ ]);
190
+ }
191
+ catch (error) {
192
+ throw new PrivyEmbeddedWalletError("provider-error", "Privy wallet provider rejected the session check", { cause: error });
193
+ }
194
+ const chainId = parseChainId(chainResult);
195
+ if (chainId !== expectedChainId) {
196
+ throw new PrivyEmbeddedWalletError("chain-mismatch", `Privy wallet chain ID ${chainId} is not Base Sepolia (${expectedChainId})`);
197
+ }
198
+ if (!Array.isArray(accountsResult) ||
199
+ accountsResult.length === 0 ||
200
+ typeof accountsResult[0] !== "string" ||
201
+ accountsResult[0].toLowerCase() !== config.address.toLowerCase()) {
202
+ throw new PrivyEmbeddedWalletError("account-mismatch", "Privy provider account does not match configured address");
203
+ }
204
+ }
205
+ async function requestPrivy(provider, method, params) {
206
+ try {
207
+ return await provider.request({ method, params });
208
+ }
209
+ catch (error) {
210
+ throw new PrivyEmbeddedWalletError("provider-error", `Privy wallet provider rejected ${method}`, { cause: error });
211
+ }
212
+ }
213
+ function createCheckedPrivyProvider(config) {
214
+ const expectedChainId = config.chainId ?? BASE_SEPOLIA_CHAIN_ID;
215
+ return {
216
+ request: async (args) => {
217
+ if (args.method === "eth_sendTransaction") {
218
+ await assertPrivySession(config, expectedChainId);
219
+ }
220
+ try {
221
+ return await config.provider.request(args);
222
+ }
223
+ catch (error) {
224
+ throw new PrivyEmbeddedWalletError("provider-error", `Privy wallet provider rejected ${args.method}`, { cause: error });
225
+ }
226
+ },
227
+ };
228
+ }
229
+ function parseChainId(value) {
230
+ if (typeof value === "number" && Number.isSafeInteger(value) && value > 0)
231
+ return value;
232
+ if (typeof value === "string" && /^0x[0-9a-fA-F]+$/.test(value)) {
233
+ const parsed = Number.parseInt(value.slice(2), 16);
234
+ if (Number.isSafeInteger(parsed) && parsed > 0)
235
+ return parsed;
236
+ }
237
+ throw new PrivyEmbeddedWalletError("provider-error", "Privy wallet provider returned an invalid chain ID");
238
+ }
239
+ function requireSignature(value) {
240
+ if (typeof value === "string" && /^0x[0-9a-fA-F]+$/.test(value))
241
+ return value;
242
+ throw new PrivyEmbeddedWalletError("invalid-signature", "Privy wallet provider returned a non-hex signature");
243
+ }
107
244
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/wallet/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/wallet/provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@absol-labs/agent",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
4
4
  "description": "Metrik agent layer: x402 verified-streaming payments, an MCP server, framework tools, and spend mandates so AI agents can hire and pay verified services safely.",
5
5
  "license": "MIT",
6
6
  "author": "Absol Labs",
@@ -70,6 +70,8 @@
70
70
  "@absol-labs/shared": "^0.12.1",
71
71
  "@coinbase/cdp-sdk": "^1.51.2",
72
72
  "@modelcontextprotocol/sdk": "^1.29.0",
73
+ "@napi-rs/keyring": "1.3.0",
74
+ "@privy-io/node": "0.33.0",
73
75
  "@reclaimprotocol/js-sdk": "^5.6.0",
74
76
  "@reclaimprotocol/zk-fetch": "^1.0.0",
75
77
  "reflect-metadata": "^0.2.2",
package/src/index.ts CHANGED
@@ -105,16 +105,89 @@ export {
105
105
 
106
106
  export {
107
107
  AgentWalletConfigError,
108
+ createPrivyEmbeddedAccount,
108
109
  createWalletBackedAgentClient,
109
110
  parseAgentWalletEnv,
111
+ PrivyEmbeddedWalletError,
110
112
  resolveAgentWallet,
111
113
  type AgentWalletInput,
112
114
  type CdpClientLike,
113
115
  type CdpWalletConfig,
116
+ type PrivyEip1193Provider,
117
+ type PrivyEmbeddedWalletConfig,
114
118
  type ResolvedAgentWallet,
115
119
  type WalletBackedAgentClient,
116
120
  } from "./wallet/provider.js";
117
121
 
122
+ export {
123
+ InMemoryPrivyBrokerSessionStore,
124
+ PRIVY_BROKER_CAIP2,
125
+ PRIVY_BROKER_CHAIN_ID,
126
+ PRIVY_BROKER_ESCROW,
127
+ PRIVY_BROKER_USDC,
128
+ PRIVY_MAX_SESSION_SECONDS,
129
+ PRIVY_POLICY_MAX_DURATION_SECONDS,
130
+ PRIVY_POLICY_MAX_RATE_USDC,
131
+ PRIVY_POLICY_MAX_TOTAL_USDC,
132
+ PrivySessionBroker,
133
+ PrivySessionBrokerError,
134
+ type BrokerStreamReader,
135
+ type CreatePrivyBrokerSessionInput,
136
+ type PrivyBrokerProvider,
137
+ type PrivyBrokerRpcInput,
138
+ type PrivyBrokerSession,
139
+ type PrivyBrokerSessionStore,
140
+ } from "./wallet/privy-session-broker.js";
141
+
142
+ export {
143
+ createPrivySessionProvider,
144
+ PrivySessionProviderError,
145
+ type PrivySessionProviderConfig,
146
+ } from "./wallet/privy-session-provider.js";
147
+
148
+ export {
149
+ JsonAutonomousWalletBrokerStore,
150
+ JsonPrivyBrokerSessionStore,
151
+ startPrivyBrokerServer,
152
+ } from "./wallet/privy-broker-server.js";
153
+
154
+ export {
155
+ AUTONOMOUS_WALLET_CAIP2,
156
+ AUTONOMOUS_WALLET_CHAIN_ID,
157
+ AUTONOMOUS_WALLET_VERSION,
158
+ METRIK_AUTONOMOUS_WALLET_BROKER_URL,
159
+ AutonomousWalletError,
160
+ HttpAutonomousWalletBroker,
161
+ InMemoryAutonomousWalletStore,
162
+ OsCredentialStore,
163
+ autonomousProofBytes,
164
+ createAutonomousWalletAccount,
165
+ createAutonomousWalletProvider,
166
+ createDefaultAutonomousWalletStore,
167
+ provisionAutonomousWallet,
168
+ provisionMetrikAutonomousWallet,
169
+ type AutonomousWalletBroker as AutonomousWalletClientBroker,
170
+ type AutonomousWalletCredentialStore,
171
+ type AutonomousWalletProof,
172
+ type AutonomousWalletRecord,
173
+ type CreateAutonomousWalletProviderOptions,
174
+ type PreparedPrivyRequest,
175
+ type ProvisionAutonomousWalletOptions,
176
+ type ProvisionMetrikAutonomousWalletOptions,
177
+ } from "./wallet/autonomous-wallet.js";
178
+
179
+ export {
180
+ AutonomousWalletBroker,
181
+ AutonomousWalletBrokerError,
182
+ InMemoryAutonomousWalletBrokerStore,
183
+ createPrivyAutonomousProvider,
184
+ type AutonomousPreparedRequest,
185
+ type AutonomousPrivyProvider,
186
+ type AutonomousWalletBrokerOptions,
187
+ type AutonomousWalletBrokerStore,
188
+ type AutonomousWalletProvision,
189
+ } from "./wallet/autonomous-wallet-broker.js";
190
+
118
191
  export {
119
192
  UnsupportedFaucetChainError,
120
193
  faucetHint,