@clawnch/clawtomaton 0.6.0 → 0.8.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/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +52 -2
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/prompt.d.ts.map +1 -1
- package/dist/agent/prompt.js +106 -3
- package/dist/agent/prompt.js.map +1 -1
- package/dist/constants.d.ts +4 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -0
- package/dist/constants.js.map +1 -1
- package/dist/heartbeat/index.d.ts +24 -4
- package/dist/heartbeat/index.d.ts.map +1 -1
- package/dist/heartbeat/index.js +158 -10
- package/dist/heartbeat/index.js.map +1 -1
- package/dist/market/index.d.ts +7 -0
- package/dist/market/index.d.ts.map +1 -1
- package/dist/market/index.js +26 -2
- package/dist/market/index.js.map +1 -1
- package/dist/skills/index.d.ts +3 -1
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +9 -1
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/services.d.ts +18 -0
- package/dist/skills/services.d.ts.map +1 -0
- package/dist/skills/services.js +409 -0
- package/dist/skills/services.js.map +1 -0
- package/dist/skills/wayfinder.d.ts +13 -0
- package/dist/skills/wayfinder.d.ts.map +1 -0
- package/dist/skills/wayfinder.js +475 -0
- package/dist/skills/wayfinder.js.map +1 -0
- package/dist/survival/index.d.ts +8 -3
- package/dist/survival/index.d.ts.map +1 -1
- package/dist/survival/index.js +14 -7
- package/dist/survival/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill: paid_services — Monetize agent capabilities via XMTP.
|
|
3
|
+
*
|
|
4
|
+
* Users pay ETH to the agent's wallet, then request services via XMTP.
|
|
5
|
+
* Payment is verified on-chain by scanning recent blocks for matching transfers.
|
|
6
|
+
*
|
|
7
|
+
* Actions:
|
|
8
|
+
* - catalog: List available services with pricing
|
|
9
|
+
* - verify_payment: Check if an address has paid for a service
|
|
10
|
+
* - execute_service: Execute a paid service after verifying payment
|
|
11
|
+
* - advertise: Generate a message advertising services
|
|
12
|
+
*
|
|
13
|
+
* Configured via autonomy.paidServices in ClawtomatonConfig.
|
|
14
|
+
* Requires XMTP to be enabled for communication with users.
|
|
15
|
+
*/
|
|
16
|
+
import { parseEther, formatEther } from 'viem';
|
|
17
|
+
// ============================================================================
|
|
18
|
+
// Skill Definition
|
|
19
|
+
// ============================================================================
|
|
20
|
+
export const paidServicesSkill = {
|
|
21
|
+
name: 'paid_services',
|
|
22
|
+
description: [
|
|
23
|
+
'Monetize agent capabilities via XMTP. Users pay ETH, then request services.',
|
|
24
|
+
'Actions: catalog (list services), verify_payment (check on-chain payment),',
|
|
25
|
+
'execute_service (run service after payment), advertise (generate promo message).',
|
|
26
|
+
'Requires autonomy.paidServices config with a service catalog.',
|
|
27
|
+
].join(' '),
|
|
28
|
+
parameters: [
|
|
29
|
+
{
|
|
30
|
+
name: 'action',
|
|
31
|
+
type: 'string',
|
|
32
|
+
description: 'Action: "catalog", "verify_payment", "execute_service", "advertise"',
|
|
33
|
+
required: true,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: 'serviceId',
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'Service ID from catalog (for verify_payment, execute_service)',
|
|
39
|
+
required: false,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'payerAddress',
|
|
43
|
+
type: 'address',
|
|
44
|
+
description: 'Address that sent payment (for verify_payment, execute_service)',
|
|
45
|
+
required: false,
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'txHash',
|
|
49
|
+
type: 'string',
|
|
50
|
+
description: 'Payment transaction hash (optional — speeds up verification)',
|
|
51
|
+
required: false,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'params',
|
|
55
|
+
type: 'string',
|
|
56
|
+
description: 'JSON string of service-specific params (for execute_service)',
|
|
57
|
+
required: false,
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
execute: async (params, ctx) => {
|
|
61
|
+
try {
|
|
62
|
+
const action = params.action;
|
|
63
|
+
if (!action) {
|
|
64
|
+
return { callId: '', success: false, result: null, error: 'Missing action parameter.' };
|
|
65
|
+
}
|
|
66
|
+
const paidServicesCfg = getPaidServicesConfig(ctx);
|
|
67
|
+
if (!paidServicesCfg) {
|
|
68
|
+
return {
|
|
69
|
+
callId: '',
|
|
70
|
+
success: false,
|
|
71
|
+
result: null,
|
|
72
|
+
error: 'Paid services not configured. Set autonomy.paidServices in config with enabled: true and a catalog.',
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
switch (action) {
|
|
76
|
+
case 'catalog':
|
|
77
|
+
return handleCatalog(paidServicesCfg);
|
|
78
|
+
case 'verify_payment':
|
|
79
|
+
return await handleVerifyPayment(paidServicesCfg, params, ctx);
|
|
80
|
+
case 'execute_service':
|
|
81
|
+
return await handleExecuteService(paidServicesCfg, params, ctx);
|
|
82
|
+
case 'advertise':
|
|
83
|
+
return handleAdvertise(paidServicesCfg, ctx);
|
|
84
|
+
default:
|
|
85
|
+
return {
|
|
86
|
+
callId: '',
|
|
87
|
+
success: false,
|
|
88
|
+
result: null,
|
|
89
|
+
error: `Unknown action: "${action}". Use: catalog, verify_payment, execute_service, advertise`,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
return { callId: '', success: false, result: null, error: err instanceof Error ? err.message : String(err) };
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
function getPaidServicesConfig(ctx) {
|
|
99
|
+
const stateStore = ctx.stateStore;
|
|
100
|
+
if (!stateStore)
|
|
101
|
+
return null;
|
|
102
|
+
// Access autonomy config via the __autonomyConfig injected by agent
|
|
103
|
+
const autonomy = ctx.__autonomyConfig;
|
|
104
|
+
if (!autonomy?.paidServices?.enabled)
|
|
105
|
+
return null;
|
|
106
|
+
if (!autonomy.paidServices.catalog || autonomy.paidServices.catalog.length === 0)
|
|
107
|
+
return null;
|
|
108
|
+
return autonomy.paidServices;
|
|
109
|
+
}
|
|
110
|
+
// ============================================================================
|
|
111
|
+
// Action handlers
|
|
112
|
+
// ============================================================================
|
|
113
|
+
function handleCatalog(config) {
|
|
114
|
+
const catalog = config.catalog;
|
|
115
|
+
const lines = [
|
|
116
|
+
`Available Paid Services (${catalog.length}):`,
|
|
117
|
+
'',
|
|
118
|
+
];
|
|
119
|
+
for (const svc of catalog) {
|
|
120
|
+
lines.push(`${svc.id}: ${svc.name}`);
|
|
121
|
+
lines.push(` ${svc.description}`);
|
|
122
|
+
lines.push(` Price: ${svc.priceEth} ETH`);
|
|
123
|
+
lines.push(` Skill: ${svc.skill}`);
|
|
124
|
+
lines.push('');
|
|
125
|
+
}
|
|
126
|
+
lines.push('To use a service:');
|
|
127
|
+
lines.push('1. User sends ETH to your wallet');
|
|
128
|
+
lines.push('2. You verify payment with verify_payment');
|
|
129
|
+
lines.push('3. You execute the service with execute_service');
|
|
130
|
+
return { callId: '', success: true, result: lines.join('\n') };
|
|
131
|
+
}
|
|
132
|
+
async function handleVerifyPayment(config, params, ctx) {
|
|
133
|
+
const serviceId = params.serviceId;
|
|
134
|
+
const payerAddress = params.payerAddress;
|
|
135
|
+
if (!serviceId || !payerAddress) {
|
|
136
|
+
return {
|
|
137
|
+
callId: '',
|
|
138
|
+
success: false,
|
|
139
|
+
result: null,
|
|
140
|
+
error: 'Missing required params: serviceId, payerAddress',
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
const service = config.catalog.find(s => s.id === serviceId);
|
|
144
|
+
if (!service) {
|
|
145
|
+
return {
|
|
146
|
+
callId: '',
|
|
147
|
+
success: false,
|
|
148
|
+
result: null,
|
|
149
|
+
error: `Unknown service: "${serviceId}". Use catalog action to see available services.`,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
const expectedAmountWei = parseEther(service.priceEth);
|
|
153
|
+
const windowMs = config.paymentWindowMs ?? 3_600_000; // 1 hour default
|
|
154
|
+
const minConfirmations = config.minConfirmations ?? 5;
|
|
155
|
+
// If a specific txHash is provided, verify it directly
|
|
156
|
+
const txHash = params.txHash;
|
|
157
|
+
if (txHash) {
|
|
158
|
+
return await verifySpecificTx(ctx, txHash, payerAddress, expectedAmountWei, minConfirmations);
|
|
159
|
+
}
|
|
160
|
+
// Otherwise, scan recent blocks for matching transfers
|
|
161
|
+
return await scanForPayment(ctx, payerAddress, expectedAmountWei, windowMs, minConfirmations);
|
|
162
|
+
}
|
|
163
|
+
async function handleExecuteService(config, params, ctx) {
|
|
164
|
+
const serviceId = params.serviceId;
|
|
165
|
+
const payerAddress = params.payerAddress;
|
|
166
|
+
if (!serviceId || !payerAddress) {
|
|
167
|
+
return {
|
|
168
|
+
callId: '',
|
|
169
|
+
success: false,
|
|
170
|
+
result: null,
|
|
171
|
+
error: 'Missing required params: serviceId, payerAddress',
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
const service = config.catalog.find(s => s.id === serviceId);
|
|
175
|
+
if (!service) {
|
|
176
|
+
return {
|
|
177
|
+
callId: '',
|
|
178
|
+
success: false,
|
|
179
|
+
result: null,
|
|
180
|
+
error: `Unknown service: "${serviceId}".`,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
// First verify payment
|
|
184
|
+
const expectedAmountWei = parseEther(service.priceEth);
|
|
185
|
+
const windowMs = config.paymentWindowMs ?? 3_600_000;
|
|
186
|
+
const minConfirmations = config.minConfirmations ?? 5;
|
|
187
|
+
const txHash = params.txHash;
|
|
188
|
+
const verification = txHash
|
|
189
|
+
? await verifySpecificTx(ctx, txHash, payerAddress, expectedAmountWei, minConfirmations)
|
|
190
|
+
: await scanForPayment(ctx, payerAddress, expectedAmountWei, windowMs, minConfirmations);
|
|
191
|
+
if (!verification.success || !verification.metadata?.verified) {
|
|
192
|
+
return {
|
|
193
|
+
callId: '',
|
|
194
|
+
success: false,
|
|
195
|
+
result: null,
|
|
196
|
+
error: `Payment not verified for service "${serviceId}". ${verification.result ?? verification.error ?? 'No matching payment found.'}`,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
// Payment verified — instruct the agent to execute the underlying skill
|
|
200
|
+
const serviceParams = params.params
|
|
201
|
+
? JSON.parse(params.params)
|
|
202
|
+
: service.defaultParams ?? {};
|
|
203
|
+
return {
|
|
204
|
+
callId: '',
|
|
205
|
+
success: true,
|
|
206
|
+
result: [
|
|
207
|
+
`Payment VERIFIED for service "${service.name}" from ${payerAddress}`,
|
|
208
|
+
`TX: ${verification.metadata.txHash}`,
|
|
209
|
+
`Amount: ${service.priceEth} ETH`,
|
|
210
|
+
``,
|
|
211
|
+
`Now execute the service using the "${service.skill}" skill with these params:`,
|
|
212
|
+
JSON.stringify(serviceParams, null, 2),
|
|
213
|
+
``,
|
|
214
|
+
`After completing the service, send the result to the user via XMTP.`,
|
|
215
|
+
].join('\n'),
|
|
216
|
+
metadata: {
|
|
217
|
+
serviceId,
|
|
218
|
+
payerAddress,
|
|
219
|
+
verified: true,
|
|
220
|
+
skill: service.skill,
|
|
221
|
+
params: serviceParams,
|
|
222
|
+
paymentTxHash: verification.metadata.txHash,
|
|
223
|
+
},
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
function handleAdvertise(config, ctx) {
|
|
227
|
+
const catalog = config.catalog;
|
|
228
|
+
const lines = [
|
|
229
|
+
`I offer paid services. Send ETH to my wallet, then message me the service you want.`,
|
|
230
|
+
``,
|
|
231
|
+
`My wallet: ${ctx.identity.address}`,
|
|
232
|
+
``,
|
|
233
|
+
`Services:`,
|
|
234
|
+
];
|
|
235
|
+
for (const svc of catalog) {
|
|
236
|
+
lines.push(` ${svc.name} — ${svc.priceEth} ETH`);
|
|
237
|
+
lines.push(` ${svc.description}`);
|
|
238
|
+
}
|
|
239
|
+
lines.push('');
|
|
240
|
+
lines.push('How to use:');
|
|
241
|
+
lines.push('1. Send the exact ETH amount for the service you want to my wallet');
|
|
242
|
+
lines.push('2. Message me here with the service name and any details');
|
|
243
|
+
lines.push('3. I\'ll verify your payment on-chain and deliver the service');
|
|
244
|
+
return {
|
|
245
|
+
callId: '',
|
|
246
|
+
success: true,
|
|
247
|
+
result: lines.join('\n'),
|
|
248
|
+
metadata: { type: 'advertisement', serviceCount: catalog.length },
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
// ============================================================================
|
|
252
|
+
// Payment verification helpers
|
|
253
|
+
// ============================================================================
|
|
254
|
+
async function verifySpecificTx(ctx, txHash, expectedFrom, expectedAmountWei, minConfirmations) {
|
|
255
|
+
try {
|
|
256
|
+
const { buildClients } = await import('../identity/index.js');
|
|
257
|
+
const rpcUrl = process.env.BASE_RPC_URL ?? 'https://mainnet.base.org';
|
|
258
|
+
const { publicClient } = buildClients(ctx.identity, rpcUrl);
|
|
259
|
+
const pc = publicClient;
|
|
260
|
+
const receipt = await pc.getTransactionReceipt({ hash: txHash });
|
|
261
|
+
if (!receipt) {
|
|
262
|
+
return {
|
|
263
|
+
callId: '',
|
|
264
|
+
success: true,
|
|
265
|
+
result: `Transaction ${txHash} not found or not yet confirmed.`,
|
|
266
|
+
metadata: { verified: false },
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
// Check confirmations
|
|
270
|
+
const currentBlock = await pc.getBlockNumber();
|
|
271
|
+
const confirmations = Number(currentBlock - receipt.blockNumber);
|
|
272
|
+
if (confirmations < minConfirmations) {
|
|
273
|
+
return {
|
|
274
|
+
callId: '',
|
|
275
|
+
success: true,
|
|
276
|
+
result: `Transaction ${txHash} has ${confirmations} confirmations (need ${minConfirmations}). Wait and try again.`,
|
|
277
|
+
metadata: { verified: false, confirmations },
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
// Fetch the full transaction to check value and from/to
|
|
281
|
+
const tx = await pc.getTransaction({ hash: txHash });
|
|
282
|
+
if (!tx) {
|
|
283
|
+
return {
|
|
284
|
+
callId: '',
|
|
285
|
+
success: true,
|
|
286
|
+
result: `Could not fetch transaction details for ${txHash}.`,
|
|
287
|
+
metadata: { verified: false },
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
// Verify sender
|
|
291
|
+
if (tx.from.toLowerCase() !== expectedFrom.toLowerCase()) {
|
|
292
|
+
return {
|
|
293
|
+
callId: '',
|
|
294
|
+
success: true,
|
|
295
|
+
result: `Transaction sender (${tx.from}) doesn't match expected payer (${expectedFrom}).`,
|
|
296
|
+
metadata: { verified: false },
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
// Verify recipient is the agent
|
|
300
|
+
if (tx.to?.toLowerCase() !== ctx.identity.address.toLowerCase()) {
|
|
301
|
+
return {
|
|
302
|
+
callId: '',
|
|
303
|
+
success: true,
|
|
304
|
+
result: `Transaction recipient (${tx.to}) is not the agent wallet (${ctx.identity.address}).`,
|
|
305
|
+
metadata: { verified: false },
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
// Verify amount (allow up to 5% overpayment, exact or higher is fine)
|
|
309
|
+
if (tx.value < expectedAmountWei) {
|
|
310
|
+
return {
|
|
311
|
+
callId: '',
|
|
312
|
+
success: true,
|
|
313
|
+
result: `Payment amount (${formatEther(tx.value)} ETH) is less than required (${formatEther(expectedAmountWei)} ETH).`,
|
|
314
|
+
metadata: { verified: false, paidWei: tx.value.toString() },
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
return {
|
|
318
|
+
callId: '',
|
|
319
|
+
success: true,
|
|
320
|
+
result: `Payment VERIFIED: ${formatEther(tx.value)} ETH from ${tx.from} in tx ${txHash} (${confirmations} confirmations).`,
|
|
321
|
+
metadata: { verified: true, txHash, confirmations, paidWei: tx.value.toString() },
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
catch (err) {
|
|
325
|
+
return {
|
|
326
|
+
callId: '',
|
|
327
|
+
success: false,
|
|
328
|
+
result: null,
|
|
329
|
+
error: `Payment verification failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
async function scanForPayment(ctx, expectedFrom, expectedAmountWei, windowMs, minConfirmations) {
|
|
334
|
+
try {
|
|
335
|
+
const { buildClients } = await import('../identity/index.js');
|
|
336
|
+
const rpcUrl = process.env.BASE_RPC_URL ?? 'https://mainnet.base.org';
|
|
337
|
+
const { publicClient } = buildClients(ctx.identity, rpcUrl);
|
|
338
|
+
const pc = publicClient;
|
|
339
|
+
const currentBlock = await pc.getBlockNumber();
|
|
340
|
+
// Base produces ~2s blocks, so windowMs / 2000 = blocks to scan
|
|
341
|
+
const blocksToScan = BigInt(Math.ceil(windowMs / 2000));
|
|
342
|
+
const fromBlock = currentBlock > blocksToScan ? currentBlock - blocksToScan : 0n;
|
|
343
|
+
// Scan for ETH transfers to the agent's address
|
|
344
|
+
// We use eth_getLogs to find internal transfers, but for simple ETH sends,
|
|
345
|
+
// we need to scan blocks. This is expensive, so we limit the scan.
|
|
346
|
+
//
|
|
347
|
+
// For a production-grade implementation, you'd use an indexer (Alchemy, QuickNode).
|
|
348
|
+
// For now, we scan a limited number of recent blocks.
|
|
349
|
+
const maxBlocksToScan = 900n; // ~30 minutes of Base blocks
|
|
350
|
+
const effectiveFromBlock = currentBlock - maxBlocksToScan > fromBlock
|
|
351
|
+
? currentBlock - maxBlocksToScan
|
|
352
|
+
: fromBlock;
|
|
353
|
+
// Check the last N blocks for transactions from expectedFrom to agent
|
|
354
|
+
// We can't efficiently scan all blocks, so we'll check a sample
|
|
355
|
+
const sampleSize = 50; // Check 50 most recent blocks
|
|
356
|
+
const step = maxBlocksToScan > BigInt(sampleSize)
|
|
357
|
+
? maxBlocksToScan / BigInt(sampleSize)
|
|
358
|
+
: 1n;
|
|
359
|
+
for (let blockNum = currentBlock; blockNum > effectiveFromBlock; blockNum -= step) {
|
|
360
|
+
try {
|
|
361
|
+
const block = await pc.getBlock({ blockNumber: blockNum, includeTransactions: true });
|
|
362
|
+
if (!block || !block.transactions)
|
|
363
|
+
continue;
|
|
364
|
+
for (const tx of block.transactions) {
|
|
365
|
+
if (typeof tx === 'string')
|
|
366
|
+
continue; // Skip if only hash returned
|
|
367
|
+
const txObj = tx;
|
|
368
|
+
if (txObj.from?.toLowerCase() === expectedFrom.toLowerCase() &&
|
|
369
|
+
txObj.to?.toLowerCase() === ctx.identity.address.toLowerCase() &&
|
|
370
|
+
BigInt(txObj.value ?? '0') >= expectedAmountWei) {
|
|
371
|
+
const confirmations = Number(currentBlock - blockNum);
|
|
372
|
+
if (confirmations < minConfirmations) {
|
|
373
|
+
return {
|
|
374
|
+
callId: '',
|
|
375
|
+
success: true,
|
|
376
|
+
result: `Found payment tx ${txObj.hash} but only ${confirmations} confirmations (need ${minConfirmations}). Wait and retry.`,
|
|
377
|
+
metadata: { verified: false, txHash: txObj.hash, confirmations },
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
return {
|
|
381
|
+
callId: '',
|
|
382
|
+
success: true,
|
|
383
|
+
result: `Payment VERIFIED: ${formatEther(BigInt(txObj.value))} ETH from ${expectedFrom} in tx ${txObj.hash} (${confirmations} confirmations).`,
|
|
384
|
+
metadata: { verified: true, txHash: txObj.hash, confirmations, paidWei: txObj.value.toString() },
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
catch {
|
|
390
|
+
// Individual block read failure — continue scanning
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
return {
|
|
394
|
+
callId: '',
|
|
395
|
+
success: true,
|
|
396
|
+
result: `No matching payment found from ${expectedFrom} for ${formatEther(expectedAmountWei)} ETH in the last ~${Math.round(Number(maxBlocksToScan) * 2 / 60)} minutes. The user should provide the txHash for faster verification.`,
|
|
397
|
+
metadata: { verified: false },
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
catch (err) {
|
|
401
|
+
return {
|
|
402
|
+
callId: '',
|
|
403
|
+
success: false,
|
|
404
|
+
result: null,
|
|
405
|
+
error: `Payment scan failed: ${err instanceof Error ? err.message : String(err)}. Ask the user for the txHash directly.`,
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
//# sourceMappingURL=services.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/skills/services.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill: wayfinder — Cross-chain DeFi via Wayfinder Paths.
|
|
3
|
+
*
|
|
4
|
+
* Two tiers:
|
|
5
|
+
* REST (always available): pools, balances, quote, resolve_token
|
|
6
|
+
* CLI (requires Python + wayfinder-paths): execute_swap, strategy
|
|
7
|
+
*
|
|
8
|
+
* Configurable via autonomy.wayfinder in ClawtomatonConfig.
|
|
9
|
+
* Requires WAYFINDER_API_KEY env var or config.autonomy.wayfinder.apiKey.
|
|
10
|
+
*/
|
|
11
|
+
import type { SkillDefinition } from '../types.js';
|
|
12
|
+
export declare const wayfinderSkill: SkillDefinition;
|
|
13
|
+
//# sourceMappingURL=wayfinder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wayfinder.d.ts","sourceRoot":"","sources":["../../src/skills/wayfinder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,eAAe,EAA4B,MAAM,aAAa,CAAC;AAO7E,eAAO,MAAM,cAAc,EAAE,eA0J5B,CAAC"}
|