@q00bs/agent-sdk 1.0.4 → 1.0.6

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,63 +6,44 @@
6
6
  * modules (trust, escrow, consensus, discovery) behind a clean interface.
7
7
  *
8
8
  * WHAT THIS CLASS DOES:
9
- * - Initializes blockchain clients from a private key (Mode 1) OR Privy (Mode 2).
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
- * TWO WALLET MODES:
15
- *
16
- * MODE 1 Raw Private Key (legacy):
17
- * Pass `privateKey` in config. The SDK creates viem clients locally.
18
- *
19
- * MODE 2 — Privy Server Wallet (recommended for ClawBot / OpenClaw agents):
20
- * Pass `privy` in config (appId + appSecret). The SDK creates a Privy-managed
21
- * wallet with spending policies. No private keys in your code.
22
- * 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.
23
18
  *
24
19
  * SECURITY GUARANTEES:
25
- * - In Mode 1: Private keys are used by viem locally and never leave the process.
26
- * - In Mode 2: 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.
27
21
  * - All state-changing operations go through on-chain contracts.
28
22
  * - Spend limits are enforced at 3 layers: Privy policy → SDK pre-check → on-chain.
29
23
  * - Trust paths are verified on-chain through the q00b graph before communication.
30
24
  *
31
- * USAGE (Mode 1 — raw key):
32
- * ```ts
33
- * const agent = new Q00bsAgent({
34
- * privateKey: process.env.AGENT_PRIVATE_KEY!,
35
- * rpcUrl: process.env.BASE_RPC_URL!,
36
- * registryAddress: '0x...',
37
- * });
38
- * await agent.initialize();
39
- * ```
40
- *
41
- * USAGE (Mode 2 — Privy, recommended):
25
+ * USAGE:
42
26
  * ```ts
43
27
  * const agent = new Q00bsAgent({
44
- * privy: {
45
- * appId: process.env.PRIVY_APP_ID!,
46
- * appSecret: process.env.PRIVY_APP_SECRET!,
47
- * walletId: process.env.PRIVY_WALLET_ID, // optional, creates new if omitted
48
- * },
49
- * rpcUrl: process.env.BASE_RPC_URL!,
50
- * registryAddress: '0x...',
28
+ * trustApiUrl: 'https://q00bs-trust-api.onrender.com',
29
+ * walletId: process.env.Q00BS_WALLET_ID, // optional — creates new if omitted
51
30
  * });
52
31
  * await agent.initialize();
32
+ * // → Wallet created under Q00bs' Privy app
33
+ * // → Store agent.walletId for next session
53
34
  * ```
54
35
  */
55
36
  Object.defineProperty(exports, "__esModule", { value: true });
56
37
  exports.Q00bsAgent = void 0;
57
38
  const viem_1 = require("viem");
39
+ const chains_1 = require("viem/chains");
58
40
  const client_1 = require("./client");
59
41
  const trust_1 = require("./trust");
60
- const escrow_1 = require("./escrow");
61
- const consensus_1 = require("./consensus");
62
42
  const discovery_1 = require("./discovery");
63
43
  const privy_1 = require("./privy");
64
44
  const erc8004_1 = require("./erc8004");
65
45
  const AgentRegistry_1 = require("./abis/AgentRegistry");
46
+ const constants_1 = require("./constants");
66
47
  const errors_1 = require("./errors");
67
48
  // ─────────────────────────────────────────────────────────────
68
49
  // Q00BS AGENT
@@ -75,9 +56,9 @@ class Q00bsAgent {
75
56
  publicClient;
76
57
  walletClient;
77
58
  walletAddress;
78
- // ── Privy wallet (Mode 2) ──────────────────────────────────
59
+ _walletId;
60
+ // ── Privy wallet (internal/API-server mode only) ───────────
79
61
  privyManager;
80
- _walletMode = 'privateKey';
81
62
  // ── Sub-modules ─────────────────────────────────────────────
82
63
  trustResolver;
83
64
  escrowManager;
@@ -95,21 +76,13 @@ class Q00bsAgent {
95
76
  get initialized() {
96
77
  return this._initialized;
97
78
  }
98
- /** The agent's wallet address (derived from private key or Privy). */
79
+ /** The agent's wallet address (created by Q00bs' Privy infrastructure). */
99
80
  get address() {
100
81
  return this.walletAddress;
101
82
  }
102
- /** Which wallet mode is active: 'privateKey' (Mode 1) or 'privy' (Mode 2). */
103
- get walletMode() {
104
- return this._walletMode;
105
- }
106
- /** Whether this agent uses a Privy-managed wallet (Mode 2). */
107
- get isPrivyMode() {
108
- return this._walletMode === 'privy';
109
- }
110
- /** The Privy wallet manager (only available in Mode 2). */
111
- get privyWallet() {
112
- 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;
113
86
  }
114
87
  /** The ERC-8004 manager (available if erc8004 config is set or after initialize). */
115
88
  get erc8004() {
@@ -121,23 +94,59 @@ class Q00bsAgent {
121
94
  /**
122
95
  * Create a new Q00bsAgent.
123
96
  *
124
- * @param config - Agent configuration. Must include either `privateKey` (Mode 1) or `privy` (Mode 2).
97
+ * @param config - Agent configuration. Must include `trustApiUrl`.
125
98
  *
126
99
  * NOTE: This does NOT connect to the blockchain yet. Call initialize() next.
127
100
  */
128
101
  constructor(config) {
129
- // Validate that at least one wallet mode is configured
130
- if (!config.privateKey && !config.privy) {
131
- throw new Error('Agent requires a wallet. Provide either:\n' +
132
- ' privateKey (Mode 1 raw key, simpler but less secure)\n' +
133
- ' • privy (Mode 2 — Privy server wallet, recommended for ClawBots)\n' +
134
- '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.');
135
106
  }
136
- // Privy mode takes precedence (safer default)
137
- this._walletMode = config.privy ? 'privy' : 'privateKey';
138
- 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
+ };
139
114
  this.logger = (0, client_1.createLogger)(config.logLevel || 'info');
140
115
  this._agentId = config.agentId;
116
+ this._walletId = config.walletId;
117
+ }
118
+ // ─────────────────────────────────────────────────────────────
119
+ // TRUST API CLIENT (INTERNAL)
120
+ // ─────────────────────────────────────────────────────────────
121
+ /**
122
+ * Make an authenticated request to the Q00bs Trust API.
123
+ * @internal
124
+ */
125
+ async apiCall(method, path, body) {
126
+ const url = `${this.config.trustApiUrl}${path}`;
127
+ const headers = {
128
+ 'Content-Type': 'application/json',
129
+ };
130
+ // Add x402 payment hash if configured
131
+ if (this.config.x402TxHash) {
132
+ headers['X-Payment'] = this.config.x402TxHash;
133
+ }
134
+ this.logger.debug(`API ${method} ${path}`);
135
+ const response = await fetch(url, {
136
+ method,
137
+ headers,
138
+ body: body ? JSON.stringify(body) : undefined,
139
+ });
140
+ const data = await response.json();
141
+ if (!response.ok) {
142
+ if (response.status === 402) {
143
+ throw new Error(`Payment required for ${path}. ` +
144
+ `Send USDC to the payment address and set x402TxHash in config.\n` +
145
+ `Details: ${JSON.stringify(data.x402 || data)}`);
146
+ }
147
+ throw new Error(`Trust API error (${response.status}): ${data.message || data.error || JSON.stringify(data)}`);
148
+ }
149
+ return data;
141
150
  }
142
151
  // ─────────────────────────────────────────────────────────────
143
152
  // INITIALIZATION
@@ -146,16 +155,43 @@ class Q00bsAgent {
146
155
  * Initialize blockchain connections and sub-modules.
147
156
  * Must be called before any other method.
148
157
  *
149
- * In Mode 1 (private key): Creates viem clients and derives wallet address.
150
- * In Mode 2 (Privy): Creates/loads Privy wallet with policy, gets address.
158
+ * If no walletId is set, creates a new wallet via the Q00bs Trust API.
159
+ * All wallets are managed by Q00bs' Privy infrastructure you never
160
+ * need Privy credentials.
151
161
  *
152
- * @param walletPolicy - (Mode 2 only) Policy to apply when creating a new Privy wallet.
153
- * @throws If configuration is invalid.
162
+ * @throws If configuration is invalid or API is unreachable.
154
163
  */
155
- async initialize(walletPolicy) {
156
- this.logger.info(`Initializing Q00bs Agent (mode: ${this._walletMode})...`);
157
- if (this._walletMode === 'privy') {
158
- // ── MODE 2: Privy server wallet ────────────────────────
164
+ async initialize() {
165
+ this.logger.info('Initializing Q00bs Agent...');
166
+ // ── Create publicClient for on-chain reads ────────────────
167
+ this.publicClient = (0, viem_1.createPublicClient)({
168
+ chain: chains_1.base,
169
+ transport: (0, viem_1.http)(this.config.rpcUrl),
170
+ });
171
+ // ── Create or load wallet via Trust API ───────────────────
172
+ if (this.config.trustApiUrl) {
173
+ if (this._walletId) {
174
+ // Load existing wallet
175
+ this.logger.info(`Loading wallet ${this._walletId}...`);
176
+ const walletInfo = await this.apiCall('GET', `/api/v1/wallet/${this._walletId}`);
177
+ this.walletAddress = walletInfo.address;
178
+ this.logger.info(`Loaded wallet: ${this.walletAddress}`);
179
+ }
180
+ else {
181
+ // Create a new wallet
182
+ this.logger.info('Creating new wallet via Trust API...');
183
+ const walletInfo = await this.apiCall('POST', '/api/v1/wallet/create', {
184
+ maxTransactionValue: this.config.maxTransactionValue || '0.1',
185
+ dailySpendLimit: this.config.dailySpendLimit || '1.0',
186
+ });
187
+ this._walletId = walletInfo.walletId;
188
+ this.walletAddress = walletInfo.address;
189
+ this.logger.info(`Wallet created: ${this.walletAddress}\n` +
190
+ ` → Store this walletId for next session: ${this._walletId}`);
191
+ }
192
+ }
193
+ else if (this.config.privy) {
194
+ // ── INTERNAL: Direct Privy mode (API server only) ──────
159
195
  const clients = (0, client_1.createPrivyClients)({
160
196
  privy: this.config.privy,
161
197
  rpcUrl: this.config.rpcUrl,
@@ -163,20 +199,17 @@ class Q00bsAgent {
163
199
  });
164
200
  this.publicClient = clients.publicClient;
165
201
  this.privyManager = clients.privyWalletManager;
166
- // Create or load the Privy wallet
167
- const defaultPolicy = walletPolicy || privy_1.PrivyWalletManager.buildDefaultPolicy(this.config.maxTransactionValue || '0.1', this.config.dailySpendLimit || '1.0',
168
- // Whitelist all configured contract addresses
169
- [
202
+ const walletInfo = await this.privyManager.initialize(privy_1.PrivyWalletManager.buildDefaultPolicy(this.config.maxTransactionValue || '0.1', this.config.dailySpendLimit || '1.0', [
170
203
  this.config.registryAddress,
171
204
  this.config.escrowAddress,
172
205
  this.config.consensusAddress,
173
- ].filter(Boolean));
174
- const walletInfo = await this.privyManager.initialize(defaultPolicy);
206
+ ].filter(Boolean)));
207
+ this._walletId = walletInfo.walletId;
175
208
  this.walletAddress = walletInfo.address;
176
- this.logger.info(`Privy wallet ${walletInfo.isNew ? 'created' : 'loaded'}: ${this.walletAddress}`);
177
209
  }
178
- else {
179
- // ── MODE 1: Raw private key ────────────────────────────
210
+ else if (this.config.privateKey) {
211
+ // ── DEPRECATED: Raw private key ────────────────────────
212
+ console.warn('[Q00BS] WARNING: Raw private key mode is DEPRECATED.');
180
213
  const clients = (0, client_1.createClients)({
181
214
  privateKey: this.config.privateKey,
182
215
  rpcUrl: this.config.rpcUrl,
@@ -186,27 +219,11 @@ class Q00bsAgent {
186
219
  this.walletClient = clients.walletClient;
187
220
  this.walletAddress = clients.account.address;
188
221
  }
189
- // Initialize sub-modules (same for both modes)
222
+ // Initialize sub-modules for on-chain reads
190
223
  this.trustResolver = new trust_1.TrustResolver(this.publicClient, this.config.registryAddress, this.logger);
191
224
  this.agentDiscovery = new discovery_1.AgentDiscovery(this.publicClient, this.config.registryAddress, this.trustResolver, this.logger);
192
- if (this.config.escrowAddress) {
193
- if (this._walletMode === 'privateKey' && this.walletClient) {
194
- this.escrowManager = new escrow_1.EscrowManager(this.publicClient, this.walletClient, this.config.escrowAddress, this.logger);
195
- }
196
- // In Privy mode, escrow transactions are routed through PrivyWalletManager
197
- // instead of the walletClient — the escrow methods handle this internally.
198
- }
199
- if (this.config.consensusAddress) {
200
- if (this._walletMode === 'privateKey' && this.walletClient) {
201
- this.consensusManager = new consensus_1.ConsensusManager(this.publicClient, this.walletClient, this.config.consensusAddress, this.logger);
202
- }
203
- // In Privy mode, consensus transactions are routed through PrivyWalletManager.
204
- }
205
- // ── Initialize ERC-8004 (if configured or by default) ──
206
- // ERC-8004 reads are always available (publicClient only).
207
- // Writes require walletClient (Mode 1) — in Privy mode, use API.
208
- this._erc8004Manager = new erc8004_1.ERC8004Manager(this.publicClient, this.logger, this.walletClient, // undefined in Privy mode — write ops go through API
209
- this.config.erc8004);
225
+ // ERC-8004 (reads always available)
226
+ this._erc8004Manager = new erc8004_1.ERC8004Manager(this.publicClient, this.logger, this.walletClient, this.config.erc8004);
210
227
  this.logger.info('ERC-8004 Trustless Agents integration enabled');
211
228
  // If agentId was provided, verify it exists on-chain
212
229
  if (this._agentId) {
@@ -233,7 +250,7 @@ class Q00bsAgent {
233
250
  }
234
251
  }
235
252
  this._initialized = true;
236
- this.logger.info(`Q00bs Agent initialized | Mode: ${this._walletMode} | Wallet: ${this.walletAddress}`);
253
+ this.logger.info(`Q00bs Agent initialized | Wallet: ${this.walletAddress} | WalletId: ${this._walletId}`);
237
254
  }
238
255
  // ─────────────────────────────────────────────────────────────
239
256
  // REGISTRATION
@@ -241,15 +258,13 @@ class Q00bsAgent {
241
258
  /**
242
259
  * Register this agent on-chain on one side of the owner's q00b.
243
260
  *
261
+ * Routes through the Q00bs Trust API, which handles the on-chain transaction
262
+ * using Q00bs' Privy infrastructure. No Privy credentials needed.
263
+ *
244
264
  * @param ownerQ00bAddress - The q00b contract address owned by this agent's human.
245
265
  * @param sidePosition - Which side of the q00b (0-5) to occupy.
246
266
  * @returns The new agent's on-chain ID.
247
267
  *
248
- * IMPORTANT: The transaction sender must be the q00b OWNER (not the agent wallet).
249
- * In practice, the owner calls registerAgent() from their wallet, passing
250
- * the agent's wallet address. This method is for convenience when the owner's
251
- * private key is used.
252
- *
253
268
  * @example
254
269
  * ```ts
255
270
  * const agentId = await agent.register('0xMyQ00bAddress', 0);
@@ -262,14 +277,25 @@ class Q00bsAgent {
262
277
  this.logger.warn(`Agent already registered with ID ${this._agentId}`);
263
278
  return this._agentId;
264
279
  }
265
- // Hash capabilities for on-chain storage
266
- const capabilities = this.config.capabilities || [];
267
- const capabilitiesHash = (0, viem_1.keccak256)((0, viem_1.toHex)(JSON.stringify(capabilities)));
268
280
  this.logger.info(`Registering agent on q00b ${ownerQ00bAddress}, side ${sidePosition}`);
281
+ if (this.config.trustApiUrl && this._walletId) {
282
+ // ── Route through Trust API ────────────────────────────
283
+ const result = await this.apiCall('POST', '/api/v1/agents/register', {
284
+ walletId: this._walletId,
285
+ ownerQ00b: ownerQ00bAddress,
286
+ sidePosition,
287
+ capabilities: this.config.capabilities || [],
288
+ });
289
+ this._agentId = result.agentId;
290
+ this.logger.info(`Registered as agent #${result.agentId} (tx: ${result.txHash})`);
291
+ return result.agentId;
292
+ }
293
+ // ── Fallback: direct on-chain (internal/legacy) ──────────
269
294
  if (!this.walletClient) {
270
- throw new errors_1.PrivyWalletError('register() requires a viem walletClient (Mode 1). ' +
271
- 'In Privy mode (Mode 2), registration must go through the API or a separate owner transaction.');
295
+ throw new errors_1.PrivyWalletError('register() requires either trustApiUrl or a direct walletClient.');
272
296
  }
297
+ const capabilities = this.config.capabilities || [];
298
+ const capabilitiesHash = (0, viem_1.keccak256)((0, viem_1.toHex)(JSON.stringify(capabilities)));
273
299
  const hash = await this.walletClient.writeContract({
274
300
  address: this.config.registryAddress,
275
301
  abi: AgentRegistry_1.AGENT_REGISTRY_ABI,
@@ -282,7 +308,6 @@ class Q00bsAgent {
282
308
  });
283
309
  const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
284
310
  this.logger.info(`Registration tx confirmed in block ${receipt.blockNumber}`);
285
- // Parse agent ID from AgentRegistered event
286
311
  for (const log of receipt.logs) {
287
312
  if (log.topics && log.topics.length > 1) {
288
313
  const id = Number(BigInt(log.topics[1]));
@@ -293,7 +318,6 @@ class Q00bsAgent {
293
318
  }
294
319
  }
295
320
  }
296
- // Fallback: look up by wallet
297
321
  const found = await this.agentDiscovery.getAgentByWallet(this.walletAddress);
298
322
  if (found) {
299
323
  this._agentId = found.id;
@@ -442,65 +466,66 @@ class Q00bsAgent {
442
466
  return this.consensusManager.get(requestId);
443
467
  }
444
468
  // ─────────────────────────────────────────────────────────────
445
- // PRIVY WALLET MANAGEMENT (MODE 2 ONLY)
469
+ // WALLET MANAGEMENT
446
470
  // ─────────────────────────────────────────────────────────────
447
471
  /**
448
- * Get this agent's Privy wallet info (Mode 2 only).
449
- *
450
- * @returns The Privy wallet info, or undefined if not in Privy mode.
451
- */
452
- getPrivyWalletInfo() {
453
- return this.privyManager?.walletInfo;
454
- }
455
- /**
456
- * Update the spending policy on this agent's Privy wallet (Mode 2 only).
472
+ * Update the spending policy on this agent's wallet.
457
473
  *
458
- * Use this to dynamically adjust limits for example, after the agent
459
- * gains more trust or is granted higher permissions by its owner.
474
+ * Routes through the Q00bs Trust API. Use this to dynamically adjust
475
+ * limits for example, after the agent gains more trust.
460
476
  *
461
- * @param policy - The new wallet policy to apply.
462
- * @throws PrivyWalletError if not in Privy mode or update fails.
463
- *
464
- * @example
465
- * ```ts
466
- * await agent.updatePrivyPolicy({
467
- * name: 'Elevated Limits',
468
- * rules: [
469
- * { type: 'max_transaction_value', value: '0.5' },
470
- * { type: 'daily_spend_limit', value: '5.0' },
471
- * ],
472
- * });
473
- * ```
477
+ * @param policy - Policy parameters to update.
478
+ * @throws If wallet is not initialized or API call fails.
474
479
  */
475
- async updatePrivyPolicy(policy) {
480
+ async updateWalletPolicy(policy) {
476
481
  this.ensureInitialized();
477
- if (!this.privyManager) {
478
- throw new errors_1.PrivyWalletError('updatePrivyPolicy() is only available in Privy mode (Mode 2). ' +
479
- 'Set `privy` in AgentConfig to use Privy wallets.');
482
+ if (this.config.trustApiUrl && this._walletId) {
483
+ await this.apiCall('PUT', `/api/v1/wallet/${this._walletId}/policy`, {
484
+ ...policy,
485
+ });
486
+ this.logger.info('Wallet policy updated via Trust API');
487
+ return;
480
488
  }
481
- const walletInfo = this.privyManager.walletInfo;
482
- if (!walletInfo) {
483
- throw new errors_1.PrivyWalletError('Privy wallet not initialized');
489
+ // Internal Privy mode (API server)
490
+ if (this.privyManager) {
491
+ const walletInfo = this.privyManager.walletInfo;
492
+ if (!walletInfo)
493
+ throw new errors_1.PrivyWalletError('Wallet not initialized');
494
+ await this.privyManager.setPolicy(walletInfo.walletId, {
495
+ name: 'Updated Policy',
496
+ rules: [
497
+ ...(policy.maxTransactionValue
498
+ ? [{ type: 'max_transaction_value', value: policy.maxTransactionValue }]
499
+ : []),
500
+ ...(policy.dailySpendLimit
501
+ ? [{ type: 'daily_spend_limit', value: policy.dailySpendLimit }]
502
+ : []),
503
+ ],
504
+ });
505
+ this.logger.info('Wallet policy updated directly via Privy');
506
+ return;
484
507
  }
485
- await this.privyManager.setPolicy(walletInfo.walletId, policy);
486
- this.logger.info(`Privy wallet policy updated: "${policy.name}"`);
508
+ throw new Error('Wallet policy update requires trustApiUrl or direct Privy access');
487
509
  }
488
510
  /**
489
511
  * Sign a message with this agent's wallet.
490
512
  *
491
- * Works in both modes:
492
- * - Mode 1: Uses viem walletClient.signMessage()
493
- * - Mode 2: Uses Privy's signMessage API
513
+ * Routes through the Q00bs Trust API for signing. The private key
514
+ * never leaves Q00bs' Privy infrastructure.
494
515
  *
495
516
  * @param message - The message to sign.
496
517
  * @returns The signature hex string.
497
518
  */
498
519
  async signMessage(message) {
499
520
  this.ensureInitialized();
500
- if (this._walletMode === 'privy' && this.privyManager) {
521
+ if (this.config.trustApiUrl && this._walletId) {
522
+ const result = await this.apiCall('POST', `/api/v1/wallet/${this._walletId}/sign`, { message });
523
+ return result.signature;
524
+ }
525
+ if (this.privyManager) {
501
526
  const walletInfo = this.privyManager.walletInfo;
502
527
  if (!walletInfo)
503
- throw new errors_1.PrivyWalletError('Privy wallet not initialized');
528
+ throw new errors_1.PrivyWalletError('Wallet not initialized');
504
529
  return this.privyManager.signMessage(walletInfo.walletId, message);
505
530
  }
506
531
  if (this.walletClient) {
@@ -511,6 +536,23 @@ class Q00bsAgent {
511
536
  }
512
537
  throw new Error('No wallet available for signing');
513
538
  }
539
+ /**
540
+ * Send a transaction through the Q00bs Trust API.
541
+ * All transactions are policy-checked before broadcast.
542
+ *
543
+ * @param to - Destination address.
544
+ * @param value - ETH value in wei (optional).
545
+ * @param data - Encoded calldata (optional).
546
+ * @returns Transaction hash.
547
+ */
548
+ async sendTransaction(to, value, data) {
549
+ this.ensureInitialized();
550
+ if (this.config.trustApiUrl && this._walletId) {
551
+ const result = await this.apiCall('POST', `/api/v1/wallet/${this._walletId}/transaction`, { to, value, data });
552
+ return result.hash;
553
+ }
554
+ throw new Error('sendTransaction() requires trustApiUrl');
555
+ }
514
556
  // ─────────────────────────────────────────────────────────────
515
557
  // ERC-8004 TRUSTLESS AGENTS
516
558
  // ─────────────────────────────────────────────────────────────
@@ -663,25 +705,18 @@ class Q00bsAgent {
663
705
  }
664
706
  }
665
707
  ensureEscrow() {
666
- if (this._walletMode === 'privy') {
667
- // In Privy mode, escrow doesn't need a walletClient — it uses Privy.
668
- if (!this.config.escrowAddress) {
669
- throw new Error('Escrow not configured. Pass escrowAddress in AgentConfig to enable payments.');
670
- }
708
+ // In Trust API mode, escrow operations go through the API
709
+ if (this.config.trustApiUrl && this._walletId)
671
710
  return;
672
- }
673
- if (!this.escrowManager) {
711
+ if (!this.config.escrowAddress) {
674
712
  throw new Error('Escrow not configured. Pass escrowAddress in AgentConfig to enable payments.');
675
713
  }
676
714
  }
677
715
  ensureConsensus() {
678
- if (this._walletMode === 'privy') {
679
- if (!this.config.consensusAddress) {
680
- throw new Error('Consensus not configured. Pass consensusAddress in AgentConfig to enable consensus.');
681
- }
716
+ // In Trust API mode, consensus operations go through the API
717
+ if (this.config.trustApiUrl && this._walletId)
682
718
  return;
683
- }
684
- if (!this.consensusManager) {
719
+ if (!this.config.consensusAddress) {
685
720
  throw new Error('Consensus not configured. Pass consensusAddress in AgentConfig to enable consensus.');
686
721
  }
687
722
  }
@@ -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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"}