@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,475 @@
|
|
|
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 { WayfinderClient } from '@clawnch/clawncher-sdk';
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Skill Definition
|
|
14
|
+
// ============================================================================
|
|
15
|
+
export const wayfinderSkill = {
|
|
16
|
+
name: 'wayfinder',
|
|
17
|
+
description: [
|
|
18
|
+
'Cross-chain DeFi via Wayfinder Paths.',
|
|
19
|
+
'Actions: pools (search DeFi yields), balances (multi-chain portfolio), quote (cross-chain swap quote),',
|
|
20
|
+
'resolve_token (token lookup), execute_swap (swap via CLI, needs Python), strategy (run strategies, needs Python).',
|
|
21
|
+
'REST actions are always available. CLI actions require Python 3.12+ and wayfinder-paths.',
|
|
22
|
+
].join(' '),
|
|
23
|
+
parameters: [
|
|
24
|
+
{
|
|
25
|
+
name: 'action',
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'Action: "pools", "balances", "quote", "resolve_token", "execute_swap", "strategy"',
|
|
28
|
+
required: true,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'protocol',
|
|
32
|
+
type: 'string',
|
|
33
|
+
description: 'For pools: filter by protocol (e.g. "moonwell", "aave", "morpho")',
|
|
34
|
+
required: false,
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'chainId',
|
|
38
|
+
type: 'number',
|
|
39
|
+
description: 'Chain ID filter. Default: 8453 (Base)',
|
|
40
|
+
required: false,
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'address',
|
|
44
|
+
type: 'address',
|
|
45
|
+
description: 'Wallet address for balances. Defaults to agent wallet.',
|
|
46
|
+
required: false,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'fromToken',
|
|
50
|
+
type: 'string',
|
|
51
|
+
description: 'Source token address or ID (for quote/execute_swap)',
|
|
52
|
+
required: false,
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: 'toToken',
|
|
56
|
+
type: 'string',
|
|
57
|
+
description: 'Destination token address or ID (for quote/execute_swap)',
|
|
58
|
+
required: false,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'amount',
|
|
62
|
+
type: 'string',
|
|
63
|
+
description: 'Amount in raw units for quote, or human-readable for execute_swap',
|
|
64
|
+
required: false,
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: 'fromChain',
|
|
68
|
+
type: 'number',
|
|
69
|
+
description: 'Source chain ID for quote (default: 8453)',
|
|
70
|
+
required: false,
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: 'toChain',
|
|
74
|
+
type: 'number',
|
|
75
|
+
description: 'Destination chain ID for quote (default: 8453)',
|
|
76
|
+
required: false,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: 'query',
|
|
80
|
+
type: 'string',
|
|
81
|
+
description: 'Token query for resolve_token (name, symbol, address, or CoinGecko ID)',
|
|
82
|
+
required: false,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: 'strategy',
|
|
86
|
+
type: 'string',
|
|
87
|
+
description: 'Strategy name for strategy action (e.g. "basis_trading_strategy")',
|
|
88
|
+
required: false,
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: 'strategyAction',
|
|
92
|
+
type: 'string',
|
|
93
|
+
description: 'Strategy sub-action: "status", "deposit", "update", "exit", "withdraw", "analyze", "quote"',
|
|
94
|
+
required: false,
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: 'mainTokenAmount',
|
|
98
|
+
type: 'number',
|
|
99
|
+
description: 'Main token amount for strategy deposit',
|
|
100
|
+
required: false,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: 'slippage',
|
|
104
|
+
type: 'number',
|
|
105
|
+
description: 'Slippage tolerance for quote (e.g. 0.005 for 0.5%). Default: 0.005',
|
|
106
|
+
required: false,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
name: 'walletLabel',
|
|
110
|
+
type: 'string',
|
|
111
|
+
description: 'Wallet label for CLI operations (must match wayfinder config.json). Default: "main"',
|
|
112
|
+
required: false,
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: 'minApy',
|
|
116
|
+
type: 'number',
|
|
117
|
+
description: 'For pools: minimum supply APY filter (e.g. 2.0 for 2%)',
|
|
118
|
+
required: false,
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: 'tokenSymbol',
|
|
122
|
+
type: 'string',
|
|
123
|
+
description: 'For pools: filter by underlying token symbol (e.g. "WETH", "USDC")',
|
|
124
|
+
required: false,
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
execute: async (params, ctx) => {
|
|
128
|
+
try {
|
|
129
|
+
const action = params.action;
|
|
130
|
+
if (!action) {
|
|
131
|
+
return { callId: '', success: false, result: null, error: 'Missing action parameter.' };
|
|
132
|
+
}
|
|
133
|
+
const client = getWayfinderClient(ctx);
|
|
134
|
+
if (!client) {
|
|
135
|
+
return {
|
|
136
|
+
callId: '',
|
|
137
|
+
success: false,
|
|
138
|
+
result: null,
|
|
139
|
+
error: 'Wayfinder not configured. Set WAYFINDER_API_KEY env var or autonomy.wayfinder.apiKey in config.',
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
switch (action) {
|
|
143
|
+
case 'pools':
|
|
144
|
+
return handlePools(client, params, ctx);
|
|
145
|
+
case 'balances':
|
|
146
|
+
return handleBalances(client, params, ctx);
|
|
147
|
+
case 'quote':
|
|
148
|
+
return handleQuote(client, params, ctx);
|
|
149
|
+
case 'resolve_token':
|
|
150
|
+
return handleResolveToken(client, params);
|
|
151
|
+
case 'execute_swap':
|
|
152
|
+
return handleExecuteSwap(client, params);
|
|
153
|
+
case 'strategy':
|
|
154
|
+
return handleStrategy(client, params);
|
|
155
|
+
default:
|
|
156
|
+
return {
|
|
157
|
+
callId: '',
|
|
158
|
+
success: false,
|
|
159
|
+
result: null,
|
|
160
|
+
error: `Unknown action: "${action}". Use: pools, balances, quote, resolve_token, execute_swap, strategy`,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch (err) {
|
|
165
|
+
return { callId: '', success: false, result: null, error: err instanceof Error ? err.message : String(err) };
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
// ============================================================================
|
|
170
|
+
// Client factory
|
|
171
|
+
// ============================================================================
|
|
172
|
+
function getWayfinderClient(ctx) {
|
|
173
|
+
// Try autonomy config first, then env var
|
|
174
|
+
const apiKey = ctx.__wayfinderApiKey
|
|
175
|
+
?? process.env.WAYFINDER_API_KEY;
|
|
176
|
+
if (!apiKey)
|
|
177
|
+
return null;
|
|
178
|
+
return new WayfinderClient({ apiKey });
|
|
179
|
+
}
|
|
180
|
+
// ============================================================================
|
|
181
|
+
// Action handlers
|
|
182
|
+
// ============================================================================
|
|
183
|
+
async function handlePools(client, params, ctx) {
|
|
184
|
+
const chainId = params.chainId ?? 8453;
|
|
185
|
+
const protocol = params.protocol;
|
|
186
|
+
const minApy = params.minApy;
|
|
187
|
+
const tokenSymbol = params.tokenSymbol?.toUpperCase();
|
|
188
|
+
let pools = await client.getPools(chainId, protocol);
|
|
189
|
+
// Filter by minimum APY
|
|
190
|
+
if (minApy !== undefined) {
|
|
191
|
+
pools = pools.filter(p => p.supplyApy >= minApy);
|
|
192
|
+
}
|
|
193
|
+
// Filter by token symbol
|
|
194
|
+
if (tokenSymbol) {
|
|
195
|
+
pools = pools.filter(p => p.tokenSymbol.toUpperCase() === tokenSymbol);
|
|
196
|
+
}
|
|
197
|
+
// Sort by supply APY descending
|
|
198
|
+
pools.sort((a, b) => b.supplyApy - a.supplyApy);
|
|
199
|
+
// Limit output
|
|
200
|
+
const topPools = pools.slice(0, 20);
|
|
201
|
+
if (topPools.length === 0) {
|
|
202
|
+
const filters = [];
|
|
203
|
+
if (protocol)
|
|
204
|
+
filters.push(`protocol=${protocol}`);
|
|
205
|
+
if (minApy)
|
|
206
|
+
filters.push(`minApy=${minApy}%`);
|
|
207
|
+
if (tokenSymbol)
|
|
208
|
+
filters.push(`token=${tokenSymbol}`);
|
|
209
|
+
return {
|
|
210
|
+
callId: '',
|
|
211
|
+
success: true,
|
|
212
|
+
result: `No pools found matching filters: ${filters.join(', ') || 'none'}. Try broadening your search.`,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
const lines = [`DeFi Pools (chain: ${chainId}, showing top ${topPools.length} of ${pools.length})`, ''];
|
|
216
|
+
for (const p of topPools) {
|
|
217
|
+
const tvl = p.totalSupplyUsd > 1_000_000
|
|
218
|
+
? `$${(p.totalSupplyUsd / 1_000_000).toFixed(1)}M`
|
|
219
|
+
: `$${(p.totalSupplyUsd / 1_000).toFixed(0)}K`;
|
|
220
|
+
lines.push(`${p.protocol} | ${p.tokenSymbol} | APY: ${p.supplyApy.toFixed(2)}% | TVL: ${tvl} | ${p.address}`);
|
|
221
|
+
}
|
|
222
|
+
return { callId: '', success: true, result: lines.join('\n') };
|
|
223
|
+
}
|
|
224
|
+
async function handleBalances(client, params, ctx) {
|
|
225
|
+
const address = params.address ?? ctx.identity.address;
|
|
226
|
+
const balances = await client.getBalances(address);
|
|
227
|
+
const tokens = balances.tokens.filter(t => t.balanceUsd > 0.01);
|
|
228
|
+
if (tokens.length === 0) {
|
|
229
|
+
return { callId: '', success: true, result: `No token balances found for ${address}.` };
|
|
230
|
+
}
|
|
231
|
+
// Sort by USD value descending
|
|
232
|
+
tokens.sort((a, b) => b.balanceUsd - a.balanceUsd);
|
|
233
|
+
const lines = [
|
|
234
|
+
`Multi-chain Balances for ${address}`,
|
|
235
|
+
`Total: $${balances.totalValueUsd.toFixed(2)}`,
|
|
236
|
+
'',
|
|
237
|
+
];
|
|
238
|
+
for (const t of tokens) {
|
|
239
|
+
lines.push(`${t.chainName} | ${t.symbol}: ${t.balanceFormatted} ($${t.balanceUsd.toFixed(2)})`);
|
|
240
|
+
}
|
|
241
|
+
return {
|
|
242
|
+
callId: '',
|
|
243
|
+
success: true,
|
|
244
|
+
result: lines.join('\n'),
|
|
245
|
+
metadata: {
|
|
246
|
+
totalValueUsd: balances.totalValueUsd,
|
|
247
|
+
tokenCount: tokens.length,
|
|
248
|
+
},
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
async function handleQuote(client, params, ctx) {
|
|
252
|
+
const fromToken = params.fromToken;
|
|
253
|
+
const toToken = params.toToken;
|
|
254
|
+
const amount = params.amount;
|
|
255
|
+
if (!fromToken || !toToken || !amount) {
|
|
256
|
+
return {
|
|
257
|
+
callId: '',
|
|
258
|
+
success: false,
|
|
259
|
+
result: null,
|
|
260
|
+
error: 'Missing required params for quote: fromToken, toToken, amount (in raw units / wei)',
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
const fromChain = params.fromChain ?? 8453;
|
|
264
|
+
const toChain = params.toChain ?? 8453;
|
|
265
|
+
const slippage = params.slippage;
|
|
266
|
+
const quote = await client.quoteSwap({
|
|
267
|
+
fromToken,
|
|
268
|
+
toToken,
|
|
269
|
+
fromChain,
|
|
270
|
+
toChain,
|
|
271
|
+
fromWallet: ctx.identity.address,
|
|
272
|
+
amount,
|
|
273
|
+
slippage,
|
|
274
|
+
});
|
|
275
|
+
if (!quote.bestQuote) {
|
|
276
|
+
return {
|
|
277
|
+
callId: '',
|
|
278
|
+
success: true,
|
|
279
|
+
result: `No routes found for ${fromToken} → ${toToken} (${fromChain} → ${toChain}). Try different tokens or amounts.`,
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
const best = quote.bestQuote;
|
|
283
|
+
const lines = [
|
|
284
|
+
`Cross-chain Swap Quote`,
|
|
285
|
+
`Route: ${best.provider}`,
|
|
286
|
+
`Input: ${best.inputAmount} (${best.nativeInput ? 'native' : 'token'}) — $${best.inputAmountUsd.toFixed(2)}`,
|
|
287
|
+
`Output: ${best.outputAmount} (${best.nativeOutput ? 'native' : 'token'}) — $${best.outputAmountUsd.toFixed(2)}`,
|
|
288
|
+
`Fees: $${best.feeEstimate.feeTotalUsd.toFixed(2)}`,
|
|
289
|
+
];
|
|
290
|
+
if (best.gasEstimate) {
|
|
291
|
+
lines.push(`Gas estimate: ${best.gasEstimate}`);
|
|
292
|
+
}
|
|
293
|
+
if (quote.quotes.length > 1) {
|
|
294
|
+
lines.push('', `Compared ${quote.quoteCount} routes. Other providers:`);
|
|
295
|
+
for (const q of quote.quotes.slice(0, 5)) {
|
|
296
|
+
if (q.provider === best.provider)
|
|
297
|
+
continue;
|
|
298
|
+
if (q.error) {
|
|
299
|
+
lines.push(` ${q.provider}: failed — ${q.error}`);
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
lines.push(` ${q.provider}: output ${q.outputAmount} ($${q.outputAmountUsd.toFixed(2)})`);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return {
|
|
307
|
+
callId: '',
|
|
308
|
+
success: true,
|
|
309
|
+
result: lines.join('\n'),
|
|
310
|
+
metadata: {
|
|
311
|
+
provider: best.provider,
|
|
312
|
+
outputAmount: best.outputAmount,
|
|
313
|
+
outputAmountUsd: best.outputAmountUsd,
|
|
314
|
+
hasCalldata: !!best.calldata,
|
|
315
|
+
},
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
async function handleResolveToken(client, params) {
|
|
319
|
+
const query = params.query;
|
|
320
|
+
if (!query) {
|
|
321
|
+
return { callId: '', success: false, result: null, error: 'Missing query parameter for resolve_token.' };
|
|
322
|
+
}
|
|
323
|
+
const chainId = params.chainId;
|
|
324
|
+
const token = await client.resolveToken(query, chainId);
|
|
325
|
+
const lines = [
|
|
326
|
+
`Token: ${token.name} (${token.symbol})`,
|
|
327
|
+
`Address: ${token.address}`,
|
|
328
|
+
`Chain: ${token.chainId}`,
|
|
329
|
+
`Decimals: ${token.decimals}`,
|
|
330
|
+
];
|
|
331
|
+
if (token.priceUsd !== undefined) {
|
|
332
|
+
lines.push(`Price: $${token.priceUsd.toFixed(6)}`);
|
|
333
|
+
}
|
|
334
|
+
if (token.priceChange24h !== undefined) {
|
|
335
|
+
lines.push(`24h change: ${token.priceChange24h >= 0 ? '+' : ''}${token.priceChange24h.toFixed(2)}%`);
|
|
336
|
+
}
|
|
337
|
+
if (token.marketCapUsd !== undefined) {
|
|
338
|
+
const mcap = token.marketCapUsd > 1_000_000
|
|
339
|
+
? `$${(token.marketCapUsd / 1_000_000).toFixed(1)}M`
|
|
340
|
+
: `$${(token.marketCapUsd / 1_000).toFixed(0)}K`;
|
|
341
|
+
lines.push(`Market cap: ${mcap}`);
|
|
342
|
+
}
|
|
343
|
+
if (token.coingeckoId) {
|
|
344
|
+
lines.push(`CoinGecko ID: ${token.coingeckoId}`);
|
|
345
|
+
}
|
|
346
|
+
return {
|
|
347
|
+
callId: '',
|
|
348
|
+
success: true,
|
|
349
|
+
result: lines.join('\n'),
|
|
350
|
+
metadata: {
|
|
351
|
+
address: token.address,
|
|
352
|
+
symbol: token.symbol,
|
|
353
|
+
chainId: token.chainId,
|
|
354
|
+
priceUsd: token.priceUsd,
|
|
355
|
+
},
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
async function handleExecuteSwap(client, params) {
|
|
359
|
+
// Check Python availability first
|
|
360
|
+
const pyStatus = await client.checkPython();
|
|
361
|
+
if (!pyStatus.wayfinderInstalled) {
|
|
362
|
+
return {
|
|
363
|
+
callId: '',
|
|
364
|
+
success: false,
|
|
365
|
+
result: null,
|
|
366
|
+
error: pyStatus.available
|
|
367
|
+
? 'wayfinder-paths not installed. Install with: pip3 install wayfinder-paths'
|
|
368
|
+
: 'Python 3 not found. Install Python 3.12+ first, then: pip3 install wayfinder-paths',
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
const fromToken = params.fromToken;
|
|
372
|
+
const toToken = params.toToken;
|
|
373
|
+
const amount = params.amount;
|
|
374
|
+
const walletLabel = params.walletLabel ?? 'main';
|
|
375
|
+
if (!fromToken || !toToken || !amount) {
|
|
376
|
+
return {
|
|
377
|
+
callId: '',
|
|
378
|
+
success: false,
|
|
379
|
+
result: null,
|
|
380
|
+
error: 'Missing required params for execute_swap: fromToken, toToken, amount (human-readable)',
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
const slippageBps = params.slippage
|
|
384
|
+
? Math.round(params.slippage * 10000)
|
|
385
|
+
: undefined;
|
|
386
|
+
const result = await client.executeSwap({
|
|
387
|
+
kind: 'swap',
|
|
388
|
+
walletLabel,
|
|
389
|
+
amount,
|
|
390
|
+
fromToken,
|
|
391
|
+
toToken,
|
|
392
|
+
slippageBps,
|
|
393
|
+
chainId: params.chainId,
|
|
394
|
+
});
|
|
395
|
+
if (!result.ok) {
|
|
396
|
+
return { callId: '', success: false, result: null, error: `Swap failed: ${result.error}` };
|
|
397
|
+
}
|
|
398
|
+
const r = result.result;
|
|
399
|
+
const effects = Object.values(r.effects);
|
|
400
|
+
const txHashes = effects.map(e => e.txnHash).filter(Boolean);
|
|
401
|
+
const lines = [
|
|
402
|
+
`Swap executed via Wayfinder CLI`,
|
|
403
|
+
`Status: ${r.status}`,
|
|
404
|
+
`Preview: ${r.preview}`,
|
|
405
|
+
`Sender: ${r.sender}`,
|
|
406
|
+
`Recipient: ${r.recipient}`,
|
|
407
|
+
];
|
|
408
|
+
for (const e of effects) {
|
|
409
|
+
lines.push(`TX: ${e.txnHash} (chain: ${e.chainId})`);
|
|
410
|
+
if (e.explorerUrl)
|
|
411
|
+
lines.push(`Explorer: ${e.explorerUrl}`);
|
|
412
|
+
}
|
|
413
|
+
return {
|
|
414
|
+
callId: '',
|
|
415
|
+
success: true,
|
|
416
|
+
result: lines.join('\n'),
|
|
417
|
+
metadata: {
|
|
418
|
+
txHash: txHashes[0],
|
|
419
|
+
txHashes,
|
|
420
|
+
status: r.status,
|
|
421
|
+
},
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
async function handleStrategy(client, params) {
|
|
425
|
+
// Check Python availability first
|
|
426
|
+
const pyStatus = await client.checkPython();
|
|
427
|
+
if (!pyStatus.wayfinderInstalled) {
|
|
428
|
+
return {
|
|
429
|
+
callId: '',
|
|
430
|
+
success: false,
|
|
431
|
+
result: null,
|
|
432
|
+
error: pyStatus.available
|
|
433
|
+
? 'wayfinder-paths not installed. Install with: pip3 install wayfinder-paths'
|
|
434
|
+
: 'Python 3 not found. Install Python 3.12+ first, then: pip3 install wayfinder-paths',
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
const strategyName = params.strategy;
|
|
438
|
+
const strategyAction = params.strategyAction ?? 'status';
|
|
439
|
+
// If no strategy name, list available strategies
|
|
440
|
+
if (!strategyName) {
|
|
441
|
+
const strategies = await client.listStrategies();
|
|
442
|
+
if (strategies.length === 0) {
|
|
443
|
+
return { callId: '', success: true, result: 'No strategies available. Check wayfinder-paths installation.' };
|
|
444
|
+
}
|
|
445
|
+
const lines = ['Available Wayfinder Strategies:', ''];
|
|
446
|
+
for (const s of strategies) {
|
|
447
|
+
lines.push(` ${s.name}${s.description ? `: ${s.description}` : ''}`);
|
|
448
|
+
if (s.riskLevel !== 'unknown')
|
|
449
|
+
lines.push(` Risk: ${s.riskLevel} | Chains: ${s.chains.join(', ')}`);
|
|
450
|
+
}
|
|
451
|
+
return { callId: '', success: true, result: lines.join('\n') };
|
|
452
|
+
}
|
|
453
|
+
const result = await client.runStrategy({
|
|
454
|
+
strategy: strategyName,
|
|
455
|
+
action: strategyAction,
|
|
456
|
+
mainTokenAmount: params.mainTokenAmount,
|
|
457
|
+
walletLabel: params.walletLabel ?? 'main',
|
|
458
|
+
});
|
|
459
|
+
if (!result.success) {
|
|
460
|
+
return { callId: '', success: false, result: null, error: `Strategy ${strategyAction} failed: ${result.error}` };
|
|
461
|
+
}
|
|
462
|
+
const output = typeof result.output === 'string'
|
|
463
|
+
? result.output
|
|
464
|
+
: JSON.stringify(result.output, null, 2);
|
|
465
|
+
return {
|
|
466
|
+
callId: '',
|
|
467
|
+
success: true,
|
|
468
|
+
result: `Strategy: ${strategyName}\nAction: ${strategyAction}\n\n${output}`,
|
|
469
|
+
metadata: {
|
|
470
|
+
strategy: strategyName,
|
|
471
|
+
action: strategyAction,
|
|
472
|
+
},
|
|
473
|
+
};
|
|
474
|
+
}
|
|
475
|
+
//# sourceMappingURL=wayfinder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wayfinder.js","sourceRoot":"","sources":["../../src/skills/wayfinder.ts"],"names":[],"mappings":"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"}
|
package/dist/survival/index.d.ts
CHANGED
|
@@ -9,13 +9,18 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { PublicClient, Address } from 'viem';
|
|
11
11
|
import type { StateStore } from '../state/index.js';
|
|
12
|
-
import type { SurvivalState, SurvivalTier } from '../types.js';
|
|
13
|
-
|
|
12
|
+
import type { SurvivalState, SurvivalTier, AutonomyConfig } from '../types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Determine survival tier from ETH balance.
|
|
15
|
+
* Accepts optional overrides from AutonomyConfig.
|
|
16
|
+
*/
|
|
17
|
+
export declare function determineTier(ethBalance: bigint, autonomy?: AutonomyConfig): SurvivalTier;
|
|
14
18
|
export declare class SurvivalMonitor {
|
|
15
19
|
private publicClient;
|
|
16
20
|
private address;
|
|
17
21
|
private state;
|
|
18
|
-
|
|
22
|
+
private autonomy?;
|
|
23
|
+
constructor(publicClient: PublicClient, address: Address, state: StateStore, autonomy?: AutonomyConfig | undefined);
|
|
19
24
|
/**
|
|
20
25
|
* Check current ETH balance, update tier, persist to state.
|
|
21
26
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/survival/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO/
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/survival/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAO/E;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,YAAY,CAMzF;AAMD,qBAAa,eAAe;IAExB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ,CAAC;gBAHT,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,EACjB,QAAQ,CAAC,EAAE,cAAc,YAAA;IAGnC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC;IAyBrC;;OAEG;IACH,SAAS,IAAI,aAAa;IAI1B;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO;IAI9D;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAOtF;;;OAGG;IACH,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM;IAIlD;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAQrC;AAmDD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAcjE"}
|
package/dist/survival/index.js
CHANGED
|
@@ -8,16 +8,21 @@
|
|
|
8
8
|
* dead (< 0.0001 ETH) — Agent halts, cannot act
|
|
9
9
|
*/
|
|
10
10
|
import { formatEther } from 'viem';
|
|
11
|
-
import {
|
|
11
|
+
import { getSurvivalThresholds } from '../types.js';
|
|
12
12
|
// ============================================================================
|
|
13
13
|
// Tier Determination
|
|
14
14
|
// ============================================================================
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Determine survival tier from ETH balance.
|
|
17
|
+
* Accepts optional overrides from AutonomyConfig.
|
|
18
|
+
*/
|
|
19
|
+
export function determineTier(ethBalance, autonomy) {
|
|
20
|
+
const thresholds = getSurvivalThresholds(autonomy);
|
|
21
|
+
if (ethBalance >= thresholds.normal)
|
|
17
22
|
return 'normal';
|
|
18
|
-
if (ethBalance >=
|
|
23
|
+
if (ethBalance >= thresholds.low_compute)
|
|
19
24
|
return 'low_compute';
|
|
20
|
-
if (ethBalance >=
|
|
25
|
+
if (ethBalance >= thresholds.critical)
|
|
21
26
|
return 'critical';
|
|
22
27
|
return 'dead';
|
|
23
28
|
}
|
|
@@ -28,17 +33,19 @@ export class SurvivalMonitor {
|
|
|
28
33
|
publicClient;
|
|
29
34
|
address;
|
|
30
35
|
state;
|
|
31
|
-
|
|
36
|
+
autonomy;
|
|
37
|
+
constructor(publicClient, address, state, autonomy) {
|
|
32
38
|
this.publicClient = publicClient;
|
|
33
39
|
this.address = address;
|
|
34
40
|
this.state = state;
|
|
41
|
+
this.autonomy = autonomy;
|
|
35
42
|
}
|
|
36
43
|
/**
|
|
37
44
|
* Check current ETH balance, update tier, persist to state.
|
|
38
45
|
*/
|
|
39
46
|
async check() {
|
|
40
47
|
const ethBalance = await this.publicClient.getBalance({ address: this.address });
|
|
41
|
-
const tier = determineTier(ethBalance);
|
|
48
|
+
const tier = determineTier(ethBalance, this.autonomy);
|
|
42
49
|
const prev = this.state.getSurvival();
|
|
43
50
|
const survival = {
|
|
44
51
|
...prev,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/survival/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/survival/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clawnch/clawtomaton",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Autonomous AI agent framework for Base — 14 skills for trading, liquidity, token launches, fee claiming, risk management, and self-sustaining operation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|