@absol-labs/agent 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -5
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/wallet/autonomous-wallet-broker.d.ts +97 -0
- package/dist/wallet/autonomous-wallet-broker.d.ts.map +1 -0
- package/dist/wallet/autonomous-wallet-broker.js +468 -0
- package/dist/wallet/autonomous-wallet-broker.js.map +1 -0
- package/dist/wallet/autonomous-wallet-protocol.d.ts +56 -0
- package/dist/wallet/autonomous-wallet-protocol.d.ts.map +1 -0
- package/dist/wallet/autonomous-wallet-protocol.js +15 -0
- package/dist/wallet/autonomous-wallet-protocol.js.map +1 -0
- package/dist/wallet/autonomous-wallet.d.ts +106 -0
- package/dist/wallet/autonomous-wallet.d.ts.map +1 -0
- package/dist/wallet/autonomous-wallet.js +494 -0
- package/dist/wallet/autonomous-wallet.js.map +1 -0
- package/dist/wallet/privy-broker-server-entry.d.ts +2 -0
- package/dist/wallet/privy-broker-server-entry.d.ts.map +1 -0
- package/dist/wallet/privy-broker-server-entry.js +8 -0
- package/dist/wallet/privy-broker-server-entry.js.map +1 -0
- package/dist/wallet/privy-broker-server.d.ts +29 -0
- package/dist/wallet/privy-broker-server.d.ts.map +1 -0
- package/dist/wallet/privy-broker-server.js +480 -0
- package/dist/wallet/privy-broker-server.js.map +1 -0
- package/dist/wallet/privy-session-broker.d.ts +109 -0
- package/dist/wallet/privy-session-broker.d.ts.map +1 -0
- package/dist/wallet/privy-session-broker.js +372 -0
- package/dist/wallet/privy-session-broker.js.map +1 -0
- package/dist/wallet/privy-session-provider.d.ts +21 -0
- package/dist/wallet/privy-session-provider.d.ts.map +1 -0
- package/dist/wallet/privy-session-provider.js +94 -0
- package/dist/wallet/privy-session-provider.js.map +1 -0
- package/dist/wallet/provider.d.ts +51 -2
- package/dist/wallet/provider.d.ts.map +1 -1
- package/dist/wallet/provider.js +138 -1
- package/dist/wallet/provider.js.map +1 -1
- package/package.json +3 -1
- package/src/index.ts +73 -0
- package/src/wallet/autonomous-wallet-broker.ts +764 -0
- package/src/wallet/autonomous-wallet-protocol.ts +71 -0
- package/src/wallet/autonomous-wallet.ts +779 -0
- package/src/wallet/privy-broker-server-entry.ts +9 -0
- package/src/wallet/privy-broker-server.ts +573 -0
- package/src/wallet/privy-session-broker.ts +634 -0
- package/src/wallet/privy-session-provider.ts +129 -0
- package/src/wallet/provider.ts +260 -3
package/dist/wallet/provider.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CdpClient, } from "@coinbase/cdp-sdk";
|
|
2
|
-
import {
|
|
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":"AACA,OAAO,EACL,SAAS,GAGV,MAAM,mBAAmB,CAAC;
|
|
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.
|
|
3
|
+
"version": "0.7.0",
|
|
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,
|