@q00bs/agent-sdk 1.0.5 → 1.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.
@@ -6,18 +6,18 @@
6
6
  * modules (trust, escrow, consensus, discovery) behind a clean interface.
7
7
  *
8
8
  * WHAT THIS CLASS DOES:
9
- * - Initializes blockchain clients via Privy server wallets.
9
+ * - Creates a Privy wallet via the Q00bs Trust API (wallets managed by Q00bs).
10
10
  * - Registers the agent on-chain as an ERC-721 on the owner's q00b.
11
11
  * - Provides methods for trust verification, agent discovery, payments, and consensus.
12
12
  * - Enforces spend limits and trust-path checks BEFORE sending transactions.
13
13
  *
14
- * WALLET MODE — Privy Server Wallet (REQUIRED):
15
- * Pass `privy` in config (appId + appSecret). The SDK creates a Privy-managed
16
- * wallet with spending policies. Private keys never leave Privy's HSM.
17
- * See: https://privy.io/blog/securely-equipping-openclaw-agents-with-privy-wallets
14
+ * WALLET MODE — Q00bs Trust API:
15
+ * All wallets are created and managed through the Q00bs Trust API, which
16
+ * uses Q00bs' own Privy infrastructure. You NEVER need to supply Privy
17
+ * credentials — just point the SDK at the Trust API URL.
18
18
  *
19
19
  * SECURITY GUARANTEES:
20
- * - Private keys are held by Privy's HSM and NEVER appear in your code.
20
+ * - Private keys are held by Q00bs' Privy HSM and NEVER appear in your code.
21
21
  * - All state-changing operations go through on-chain contracts.
22
22
  * - Spend limits are enforced at 3 layers: Privy policy → SDK pre-check → on-chain.
23
23
  * - Trust paths are verified on-chain through the q00b graph before communication.
@@ -25,28 +25,25 @@
25
25
  * USAGE:
26
26
  * ```ts
27
27
  * const agent = new Q00bsAgent({
28
- * privy: {
29
- * appId: process.env.PRIVY_APP_ID!,
30
- * appSecret: process.env.PRIVY_APP_SECRET!,
31
- * walletId: process.env.PRIVY_WALLET_ID, // optional, creates new if omitted
32
- * },
33
- * rpcUrl: process.env.BASE_RPC_URL!,
34
- * registryAddress: '0x...',
28
+ * trustApiUrl: 'https://q00bs-trust-api.onrender.com',
29
+ * walletId: process.env.Q00BS_WALLET_ID, // optional — creates new if omitted
35
30
  * });
36
31
  * await agent.initialize();
32
+ * // → Wallet created under Q00bs' Privy app
33
+ * // → Store agent.walletId for next session
37
34
  * ```
38
35
  */
39
36
  Object.defineProperty(exports, "__esModule", { value: true });
40
37
  exports.Q00bsAgent = void 0;
41
38
  const viem_1 = require("viem");
39
+ const chains_1 = require("viem/chains");
42
40
  const client_1 = require("./client");
43
41
  const trust_1 = require("./trust");
44
- const escrow_1 = require("./escrow");
45
- const consensus_1 = require("./consensus");
46
42
  const discovery_1 = require("./discovery");
47
43
  const privy_1 = require("./privy");
48
44
  const erc8004_1 = require("./erc8004");
49
45
  const AgentRegistry_1 = require("./abis/AgentRegistry");
46
+ const constants_1 = require("./constants");
50
47
  const errors_1 = require("./errors");
51
48
  // ─────────────────────────────────────────────────────────────
52
49
  // Q00BS AGENT
@@ -59,9 +56,9 @@ class Q00bsAgent {
59
56
  publicClient;
60
57
  walletClient;
61
58
  walletAddress;
62
- // ── Privy wallet (Mode 2) ──────────────────────────────────
59
+ _walletId;
60
+ // ── Privy wallet (internal/API-server mode only) ───────────
63
61
  privyManager;
64
- _walletMode = 'privateKey';
65
62
  // ── Sub-modules ─────────────────────────────────────────────
66
63
  trustResolver;
67
64
  escrowManager;
@@ -79,21 +76,13 @@ class Q00bsAgent {
79
76
  get initialized() {
80
77
  return this._initialized;
81
78
  }
82
- /** The agent's wallet address (derived from private key or Privy). */
79
+ /** The agent's wallet address (created by Q00bs' Privy infrastructure). */
83
80
  get address() {
84
81
  return this.walletAddress;
85
82
  }
86
- /** Which wallet mode is active: 'privateKey' (Mode 1) or 'privy' (Mode 2). */
87
- get walletMode() {
88
- return this._walletMode;
89
- }
90
- /** Whether this agent uses a Privy-managed wallet (Mode 2). */
91
- get isPrivyMode() {
92
- return this._walletMode === 'privy';
93
- }
94
- /** The Privy wallet manager (only available in Mode 2). */
95
- get privyWallet() {
96
- return this.privyManager;
83
+ /** The wallet ID for this agent. Store this to reuse the wallet across sessions. */
84
+ get walletId() {
85
+ return this._walletId;
97
86
  }
98
87
  /** The ERC-8004 manager (available if erc8004 config is set or after initialize). */
99
88
  get erc8004() {
@@ -105,32 +94,104 @@ class Q00bsAgent {
105
94
  /**
106
95
  * Create a new Q00bsAgent.
107
96
  *
108
- * @param config - Agent configuration. Must include `privy` configuration.
97
+ * @param config - Agent configuration. Must include `trustApiUrl`.
109
98
  *
110
99
  * NOTE: This does NOT connect to the blockchain yet. Call initialize() next.
111
100
  */
112
101
  constructor(config) {
113
- // Validate that Privy wallet mode is configured
114
- if (!config.privy && !config.privateKey) {
115
- throw new Error('Agent requires a Privy wallet. Provide `privy` config:\n' +
116
- ' privy: {\n' +
117
- ' appId: process.env.PRIVY_APP_ID!,\n' +
118
- ' appSecret: process.env.PRIVY_APP_SECRET!,\n' +
119
- ' walletId: process.env.PRIVY_WALLET_ID, // optional\n' +
120
- ' }\n' +
121
- 'See: https://privy.io/blog/securely-equipping-openclaw-agents-with-privy-wallets');
102
+ if (!config.trustApiUrl && !config.privy && !config.privateKey) {
103
+ throw new Error('Agent requires a Trust API URL. Provide `trustApiUrl`:\n' +
104
+ ' trustApiUrl: "https://q00bs-trust-api.onrender.com"\n' +
105
+ 'Wallets are created and managed by Q00bs — no Privy credentials needed.');
122
106
  }
123
- // Warn if using deprecated raw key mode
124
- if (config.privateKey && !config.privy) {
125
- console.warn('[Q00BS] WARNING: Raw private key mode is DEPRECATED and will be removed in a future version.\n' +
126
- '[Q00BS] Please migrate to Privy server wallets for secure, policy-enforced wallet management.\n' +
127
- '[Q00BS] See: https://privy.io/blog/securely-equipping-openclaw-agents-with-privy-wallets');
128
- }
129
- // Privy mode takes precedence (safer default)
130
- this._walletMode = config.privy ? 'privy' : 'privateKey';
131
- this.config = config;
107
+ this.config = {
108
+ ...config,
109
+ registryAddress: config.registryAddress || constants_1.AGENT_REGISTRY_ADDRESS,
110
+ escrowAddress: config.escrowAddress || constants_1.AGENT_ESCROW_ADDRESS,
111
+ consensusAddress: config.consensusAddress || constants_1.CONSENSUS_MODULE_ADDRESS,
112
+ rpcUrl: config.rpcUrl || constants_1.DEFAULT_RPC_URL,
113
+ };
132
114
  this.logger = (0, client_1.createLogger)(config.logLevel || 'info');
133
115
  this._agentId = config.agentId;
116
+ this._walletId = config.walletId;
117
+ }
118
+ // ─────────────────────────────────────────────────────────────
119
+ // TRUST API CLIENT (INTERNAL)
120
+ // ─────────────────────────────────────────────────────────────
121
+ // ── x402 payment hash queue ─────────────────────────────────
122
+ // Each paid API call consumes one tx hash. This queue allows
123
+ // pre-loading multiple hashes so sequential calls don't block.
124
+ _x402TxHashQueue = [];
125
+ /**
126
+ * Add one or more x402 payment tx hashes to the queue.
127
+ * Each paid API call (write/create tier) consumes one hash.
128
+ * Free endpoints (reads, bootstrap routes) don't consume hashes.
129
+ *
130
+ * @param hashes - One or more Base mainnet USDC tx hashes.
131
+ */
132
+ addPaymentHashes(...hashes) {
133
+ this._x402TxHashQueue.push(...hashes);
134
+ this.logger.debug(`Added ${hashes.length} payment hash(es) to queue (total: ${this._x402TxHashQueue.length})`);
135
+ }
136
+ /** Number of unused payment hashes remaining. */
137
+ get paymentHashesRemaining() {
138
+ return this._x402TxHashQueue.length;
139
+ }
140
+ // ── Routes that the server exempts from x402 ────────────────
141
+ // These routes are in the server's FREE_ROUTES set and never
142
+ // require an X-Payment header, even for POST requests.
143
+ static FREE_PATHS = new Set([
144
+ '/api/v1/wallet/create',
145
+ '/api/v1/onboard/whitelist-wallet',
146
+ '/api/v1/onboard/create-q00b',
147
+ '/api/v1/agents/register',
148
+ ]);
149
+ /**
150
+ * Make an authenticated request to the Q00bs Trust API.
151
+ *
152
+ * Payment handling:
153
+ * - GET requests and FREE_PATHS never send a payment header.
154
+ * - Paid POST/PUT/DELETE requests consume one hash from the queue.
155
+ * - If no hash is available for a paid endpoint, the request still
156
+ * goes through — the server will return 402 with instructions.
157
+ *
158
+ * @internal
159
+ */
160
+ async apiCall(method, path, body) {
161
+ const url = `${this.config.trustApiUrl}${path}`;
162
+ const headers = {
163
+ 'Content-Type': 'application/json',
164
+ };
165
+ // Determine if this is a free route (no payment needed)
166
+ const isFreeRoute = method === 'GET' ||
167
+ Q00bsAgent.FREE_PATHS.has(path) ||
168
+ path.startsWith('/api/v1/onboard/whitelist-check/');
169
+ // Add x402 payment hash for paid routes
170
+ if (!isFreeRoute) {
171
+ // Try queue first, then fall back to legacy config
172
+ const txHash = this._x402TxHashQueue.shift() || this.config.x402TxHash;
173
+ if (txHash) {
174
+ headers['X-Payment'] = txHash;
175
+ this.logger.debug(`Using payment hash for ${path} (${this._x402TxHashQueue.length} remaining)`);
176
+ }
177
+ }
178
+ this.logger.debug(`API ${method} ${path}`);
179
+ const response = await fetch(url, {
180
+ method,
181
+ headers,
182
+ body: body ? JSON.stringify(body) : undefined,
183
+ });
184
+ const data = await response.json();
185
+ if (!response.ok) {
186
+ if (response.status === 402) {
187
+ const paymentInfo = data.payment || data.x402 || data;
188
+ throw new Error(`Payment required for ${path}. ` +
189
+ `This is a paid endpoint — add payment hashes via agent.addPaymentHashes(txHash).\n` +
190
+ `Details: ${JSON.stringify(paymentInfo)}`);
191
+ }
192
+ throw new Error(`Trust API error (${response.status}): ${data.message || data.error || JSON.stringify(data)}`);
193
+ }
194
+ return data;
134
195
  }
135
196
  // ─────────────────────────────────────────────────────────────
136
197
  // INITIALIZATION
@@ -139,16 +200,43 @@ class Q00bsAgent {
139
200
  * Initialize blockchain connections and sub-modules.
140
201
  * Must be called before any other method.
141
202
  *
142
- * Creates/loads a Privy-managed wallet with spending policies and
143
- * initializes all sub-modules (trust, escrow, consensus, discovery, ERC-8004).
203
+ * If no walletId is set, creates a new wallet via the Q00bs Trust API.
204
+ * All wallets are managed by Q00bs' Privy infrastructure — you never
205
+ * need Privy credentials.
144
206
  *
145
- * @param walletPolicy - Policy to apply when creating a new Privy wallet.
146
- * @throws If configuration is invalid.
207
+ * @throws If configuration is invalid or API is unreachable.
147
208
  */
148
- async initialize(walletPolicy) {
149
- this.logger.info(`Initializing Q00bs Agent (mode: ${this._walletMode})...`);
150
- if (this._walletMode === 'privy') {
151
- // ── MODE 2: Privy server wallet ────────────────────────
209
+ async initialize() {
210
+ this.logger.info('Initializing Q00bs Agent...');
211
+ // ── Create publicClient for on-chain reads ────────────────
212
+ this.publicClient = (0, viem_1.createPublicClient)({
213
+ chain: chains_1.base,
214
+ transport: (0, viem_1.http)(this.config.rpcUrl),
215
+ });
216
+ // ── Create or load wallet via Trust API ───────────────────
217
+ if (this.config.trustApiUrl) {
218
+ if (this._walletId) {
219
+ // Load existing wallet
220
+ this.logger.info(`Loading wallet ${this._walletId}...`);
221
+ const walletInfo = await this.apiCall('GET', `/api/v1/wallet/${this._walletId}`);
222
+ this.walletAddress = walletInfo.address;
223
+ this.logger.info(`Loaded wallet: ${this.walletAddress}`);
224
+ }
225
+ else {
226
+ // Create a new wallet
227
+ this.logger.info('Creating new wallet via Trust API...');
228
+ const walletInfo = await this.apiCall('POST', '/api/v1/wallet/create', {
229
+ maxTransactionValue: this.config.maxTransactionValue || '0.1',
230
+ dailySpendLimit: this.config.dailySpendLimit || '1.0',
231
+ });
232
+ this._walletId = walletInfo.walletId;
233
+ this.walletAddress = walletInfo.address;
234
+ this.logger.info(`Wallet created: ${this.walletAddress}\n` +
235
+ ` → Store this walletId for next session: ${this._walletId}`);
236
+ }
237
+ }
238
+ else if (this.config.privy) {
239
+ // ── INTERNAL: Direct Privy mode (API server only) ──────
152
240
  const clients = (0, client_1.createPrivyClients)({
153
241
  privy: this.config.privy,
154
242
  rpcUrl: this.config.rpcUrl,
@@ -156,20 +244,17 @@ class Q00bsAgent {
156
244
  });
157
245
  this.publicClient = clients.publicClient;
158
246
  this.privyManager = clients.privyWalletManager;
159
- // Create or load the Privy wallet
160
- const defaultPolicy = walletPolicy || privy_1.PrivyWalletManager.buildDefaultPolicy(this.config.maxTransactionValue || '0.1', this.config.dailySpendLimit || '1.0',
161
- // Whitelist all configured contract addresses
162
- [
247
+ const walletInfo = await this.privyManager.initialize(privy_1.PrivyWalletManager.buildDefaultPolicy(this.config.maxTransactionValue || '0.1', this.config.dailySpendLimit || '1.0', [
163
248
  this.config.registryAddress,
164
249
  this.config.escrowAddress,
165
250
  this.config.consensusAddress,
166
- ].filter(Boolean));
167
- const walletInfo = await this.privyManager.initialize(defaultPolicy);
251
+ ].filter(Boolean)));
252
+ this._walletId = walletInfo.walletId;
168
253
  this.walletAddress = walletInfo.address;
169
- this.logger.info(`Privy wallet ${walletInfo.isNew ? 'created' : 'loaded'}: ${this.walletAddress}`);
170
254
  }
171
- else {
172
- // ── MODE 1: Raw private key ────────────────────────────
255
+ else if (this.config.privateKey) {
256
+ // ── DEPRECATED: Raw private key ────────────────────────
257
+ console.warn('[Q00BS] WARNING: Raw private key mode is DEPRECATED.');
173
258
  const clients = (0, client_1.createClients)({
174
259
  privateKey: this.config.privateKey,
175
260
  rpcUrl: this.config.rpcUrl,
@@ -179,27 +264,11 @@ class Q00bsAgent {
179
264
  this.walletClient = clients.walletClient;
180
265
  this.walletAddress = clients.account.address;
181
266
  }
182
- // Initialize sub-modules (same for both modes)
267
+ // Initialize sub-modules for on-chain reads
183
268
  this.trustResolver = new trust_1.TrustResolver(this.publicClient, this.config.registryAddress, this.logger);
184
269
  this.agentDiscovery = new discovery_1.AgentDiscovery(this.publicClient, this.config.registryAddress, this.trustResolver, this.logger);
185
- if (this.config.escrowAddress) {
186
- if (this._walletMode === 'privateKey' && this.walletClient) {
187
- this.escrowManager = new escrow_1.EscrowManager(this.publicClient, this.walletClient, this.config.escrowAddress, this.logger);
188
- }
189
- // In Privy mode, escrow transactions are routed through PrivyWalletManager
190
- // instead of the walletClient — the escrow methods handle this internally.
191
- }
192
- if (this.config.consensusAddress) {
193
- if (this._walletMode === 'privateKey' && this.walletClient) {
194
- this.consensusManager = new consensus_1.ConsensusManager(this.publicClient, this.walletClient, this.config.consensusAddress, this.logger);
195
- }
196
- // In Privy mode, consensus transactions are routed through PrivyWalletManager.
197
- }
198
- // ── Initialize ERC-8004 (if configured or by default) ──
199
- // ERC-8004 reads are always available (publicClient only).
200
- // Writes require walletClient (Mode 1) — in Privy mode, use API.
201
- this._erc8004Manager = new erc8004_1.ERC8004Manager(this.publicClient, this.logger, this.walletClient, // undefined in Privy mode — write ops go through API
202
- this.config.erc8004);
270
+ // ERC-8004 (reads always available)
271
+ this._erc8004Manager = new erc8004_1.ERC8004Manager(this.publicClient, this.logger, this.walletClient, this.config.erc8004);
203
272
  this.logger.info('ERC-8004 Trustless Agents integration enabled');
204
273
  // If agentId was provided, verify it exists on-chain
205
274
  if (this._agentId) {
@@ -226,7 +295,7 @@ class Q00bsAgent {
226
295
  }
227
296
  }
228
297
  this._initialized = true;
229
- this.logger.info(`Q00bs Agent initialized | Mode: ${this._walletMode} | Wallet: ${this.walletAddress}`);
298
+ this.logger.info(`Q00bs Agent initialized | Wallet: ${this.walletAddress} | WalletId: ${this._walletId}`);
230
299
  }
231
300
  // ─────────────────────────────────────────────────────────────
232
301
  // REGISTRATION
@@ -234,15 +303,13 @@ class Q00bsAgent {
234
303
  /**
235
304
  * Register this agent on-chain on one side of the owner's q00b.
236
305
  *
306
+ * Routes through the Q00bs Trust API, which handles the on-chain transaction
307
+ * using Q00bs' Privy infrastructure. No Privy credentials needed.
308
+ *
237
309
  * @param ownerQ00bAddress - The q00b contract address owned by this agent's human.
238
310
  * @param sidePosition - Which side of the q00b (0-5) to occupy.
239
311
  * @returns The new agent's on-chain ID.
240
312
  *
241
- * IMPORTANT: The transaction sender must be the q00b OWNER (not the agent wallet).
242
- * In practice, the owner calls registerAgent() from their wallet, passing
243
- * the agent's wallet address. This method is for convenience when the owner's
244
- * private key is used.
245
- *
246
313
  * @example
247
314
  * ```ts
248
315
  * const agentId = await agent.register('0xMyQ00bAddress', 0);
@@ -255,14 +322,25 @@ class Q00bsAgent {
255
322
  this.logger.warn(`Agent already registered with ID ${this._agentId}`);
256
323
  return this._agentId;
257
324
  }
258
- // Hash capabilities for on-chain storage
259
- const capabilities = this.config.capabilities || [];
260
- const capabilitiesHash = (0, viem_1.keccak256)((0, viem_1.toHex)(JSON.stringify(capabilities)));
261
325
  this.logger.info(`Registering agent on q00b ${ownerQ00bAddress}, side ${sidePosition}`);
326
+ if (this.config.trustApiUrl && this._walletId) {
327
+ // ── Route through Trust API ────────────────────────────
328
+ const result = await this.apiCall('POST', '/api/v1/agents/register', {
329
+ walletId: this._walletId,
330
+ ownerQ00b: ownerQ00bAddress,
331
+ sidePosition,
332
+ capabilities: this.config.capabilities || [],
333
+ });
334
+ this._agentId = result.agentId;
335
+ this.logger.info(`Registered as agent #${result.agentId} (tx: ${result.txHash})`);
336
+ return result.agentId;
337
+ }
338
+ // ── Fallback: direct on-chain (internal/legacy) ──────────
262
339
  if (!this.walletClient) {
263
- throw new errors_1.PrivyWalletError('register() requires a viem walletClient (Mode 1). ' +
264
- 'In Privy mode (Mode 2), registration must go through the API or a separate owner transaction.');
340
+ throw new errors_1.PrivyWalletError('register() requires either trustApiUrl or a direct walletClient.');
265
341
  }
342
+ const capabilities = this.config.capabilities || [];
343
+ const capabilitiesHash = (0, viem_1.keccak256)((0, viem_1.toHex)(JSON.stringify(capabilities)));
266
344
  const hash = await this.walletClient.writeContract({
267
345
  address: this.config.registryAddress,
268
346
  abi: AgentRegistry_1.AGENT_REGISTRY_ABI,
@@ -275,7 +353,6 @@ class Q00bsAgent {
275
353
  });
276
354
  const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
277
355
  this.logger.info(`Registration tx confirmed in block ${receipt.blockNumber}`);
278
- // Parse agent ID from AgentRegistered event
279
356
  for (const log of receipt.logs) {
280
357
  if (log.topics && log.topics.length > 1) {
281
358
  const id = Number(BigInt(log.topics[1]));
@@ -286,7 +363,6 @@ class Q00bsAgent {
286
363
  }
287
364
  }
288
365
  }
289
- // Fallback: look up by wallet
290
366
  const found = await this.agentDiscovery.getAgentByWallet(this.walletAddress);
291
367
  if (found) {
292
368
  this._agentId = found.id;
@@ -435,65 +511,66 @@ class Q00bsAgent {
435
511
  return this.consensusManager.get(requestId);
436
512
  }
437
513
  // ─────────────────────────────────────────────────────────────
438
- // PRIVY WALLET MANAGEMENT (MODE 2 ONLY)
514
+ // WALLET MANAGEMENT
439
515
  // ─────────────────────────────────────────────────────────────
440
516
  /**
441
- * Get this agent's Privy wallet info (Mode 2 only).
517
+ * Update the spending policy on this agent's wallet.
442
518
  *
443
- * @returns The Privy wallet info, or undefined if not in Privy mode.
444
- */
445
- getPrivyWalletInfo() {
446
- return this.privyManager?.walletInfo;
447
- }
448
- /**
449
- * Update the spending policy on this agent's Privy wallet (Mode 2 only).
519
+ * Routes through the Q00bs Trust API. Use this to dynamically adjust
520
+ * limits — for example, after the agent gains more trust.
450
521
  *
451
- * Use this to dynamically adjust limits — for example, after the agent
452
- * gains more trust or is granted higher permissions by its owner.
453
- *
454
- * @param policy - The new wallet policy to apply.
455
- * @throws PrivyWalletError if not in Privy mode or update fails.
456
- *
457
- * @example
458
- * ```ts
459
- * await agent.updatePrivyPolicy({
460
- * name: 'Elevated Limits',
461
- * rules: [
462
- * { type: 'max_transaction_value', value: '0.5' },
463
- * { type: 'daily_spend_limit', value: '5.0' },
464
- * ],
465
- * });
466
- * ```
522
+ * @param policy - Policy parameters to update.
523
+ * @throws If wallet is not initialized or API call fails.
467
524
  */
468
- async updatePrivyPolicy(policy) {
525
+ async updateWalletPolicy(policy) {
469
526
  this.ensureInitialized();
470
- if (!this.privyManager) {
471
- throw new errors_1.PrivyWalletError('updatePrivyPolicy() is only available in Privy mode (Mode 2). ' +
472
- 'Set `privy` in AgentConfig to use Privy wallets.');
527
+ if (this.config.trustApiUrl && this._walletId) {
528
+ await this.apiCall('PUT', `/api/v1/wallet/${this._walletId}/policy`, {
529
+ ...policy,
530
+ });
531
+ this.logger.info('Wallet policy updated via Trust API');
532
+ return;
473
533
  }
474
- const walletInfo = this.privyManager.walletInfo;
475
- if (!walletInfo) {
476
- throw new errors_1.PrivyWalletError('Privy wallet not initialized');
534
+ // Internal Privy mode (API server)
535
+ if (this.privyManager) {
536
+ const walletInfo = this.privyManager.walletInfo;
537
+ if (!walletInfo)
538
+ throw new errors_1.PrivyWalletError('Wallet not initialized');
539
+ await this.privyManager.setPolicy(walletInfo.walletId, {
540
+ name: 'Updated Policy',
541
+ rules: [
542
+ ...(policy.maxTransactionValue
543
+ ? [{ type: 'max_transaction_value', value: policy.maxTransactionValue }]
544
+ : []),
545
+ ...(policy.dailySpendLimit
546
+ ? [{ type: 'daily_spend_limit', value: policy.dailySpendLimit }]
547
+ : []),
548
+ ],
549
+ });
550
+ this.logger.info('Wallet policy updated directly via Privy');
551
+ return;
477
552
  }
478
- await this.privyManager.setPolicy(walletInfo.walletId, policy);
479
- this.logger.info(`Privy wallet policy updated: "${policy.name}"`);
553
+ throw new Error('Wallet policy update requires trustApiUrl or direct Privy access');
480
554
  }
481
555
  /**
482
556
  * Sign a message with this agent's wallet.
483
557
  *
484
- * Works in both modes:
485
- * - Mode 1: Uses viem walletClient.signMessage()
486
- * - Mode 2: Uses Privy's signMessage API
558
+ * Routes through the Q00bs Trust API for signing. The private key
559
+ * never leaves Q00bs' Privy infrastructure.
487
560
  *
488
561
  * @param message - The message to sign.
489
562
  * @returns The signature hex string.
490
563
  */
491
564
  async signMessage(message) {
492
565
  this.ensureInitialized();
493
- if (this._walletMode === 'privy' && this.privyManager) {
566
+ if (this.config.trustApiUrl && this._walletId) {
567
+ const result = await this.apiCall('POST', `/api/v1/wallet/${this._walletId}/sign`, { message });
568
+ return result.signature;
569
+ }
570
+ if (this.privyManager) {
494
571
  const walletInfo = this.privyManager.walletInfo;
495
572
  if (!walletInfo)
496
- throw new errors_1.PrivyWalletError('Privy wallet not initialized');
573
+ throw new errors_1.PrivyWalletError('Wallet not initialized');
497
574
  return this.privyManager.signMessage(walletInfo.walletId, message);
498
575
  }
499
576
  if (this.walletClient) {
@@ -504,6 +581,23 @@ class Q00bsAgent {
504
581
  }
505
582
  throw new Error('No wallet available for signing');
506
583
  }
584
+ /**
585
+ * Send a transaction through the Q00bs Trust API.
586
+ * All transactions are policy-checked before broadcast.
587
+ *
588
+ * @param to - Destination address.
589
+ * @param value - ETH value in wei (optional).
590
+ * @param data - Encoded calldata (optional).
591
+ * @returns Transaction hash.
592
+ */
593
+ async sendTransaction(to, value, data) {
594
+ this.ensureInitialized();
595
+ if (this.config.trustApiUrl && this._walletId) {
596
+ const result = await this.apiCall('POST', `/api/v1/wallet/${this._walletId}/transaction`, { to, value, data });
597
+ return result.hash;
598
+ }
599
+ throw new Error('sendTransaction() requires trustApiUrl');
600
+ }
507
601
  // ─────────────────────────────────────────────────────────────
508
602
  // ERC-8004 TRUSTLESS AGENTS
509
603
  // ─────────────────────────────────────────────────────────────
@@ -656,25 +750,18 @@ class Q00bsAgent {
656
750
  }
657
751
  }
658
752
  ensureEscrow() {
659
- if (this._walletMode === 'privy') {
660
- // In Privy mode, escrow doesn't need a walletClient — it uses Privy.
661
- if (!this.config.escrowAddress) {
662
- throw new Error('Escrow not configured. Pass escrowAddress in AgentConfig to enable payments.');
663
- }
753
+ // In Trust API mode, escrow operations go through the API
754
+ if (this.config.trustApiUrl && this._walletId)
664
755
  return;
665
- }
666
- if (!this.escrowManager) {
756
+ if (!this.config.escrowAddress) {
667
757
  throw new Error('Escrow not configured. Pass escrowAddress in AgentConfig to enable payments.');
668
758
  }
669
759
  }
670
760
  ensureConsensus() {
671
- if (this._walletMode === 'privy') {
672
- if (!this.config.consensusAddress) {
673
- throw new Error('Consensus not configured. Pass consensusAddress in AgentConfig to enable consensus.');
674
- }
761
+ // In Trust API mode, consensus operations go through the API
762
+ if (this.config.trustApiUrl && this._walletId)
675
763
  return;
676
- }
677
- if (!this.consensusManager) {
764
+ if (!this.config.consensusAddress) {
678
765
  throw new Error('Consensus not configured. Pass consensusAddress in AgentConfig to enable consensus.');
679
766
  }
680
767
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Q00bsAgent.js","sourceRoot":"","sources":["../src/Q00bsAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Q00bsAgent.js","sourceRoot":"","sources":["../src/Q00bsAgent.ts"],"names":[],"mappings":"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"}