x402-omni-oracle 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -0
- package/dist/index.d.ts +763 -0
- package/dist/index.js +719 -0
- package/package.json +2 -2
- package/src/index.ts +152 -322
- package/tsconfig.json +16 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,719 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAnomalyAlert = exports.getSectorRotation = exports.getTrendingQueries = exports.getRiskAdjustedYield = exports.getSentimentDivergence = exports.getWhaleMomentum = exports.getMarketRegime = exports.getSystemPrompt = exports.getPublicStatus = exports.getOpenAPISpec = exports.getX402BazaarCatalog = exports.getBatchPrices = exports.getWalletValues = exports.getTradePreflight = exports.checkAirdropEligibility = exports.getBlockData = exports.resolveENS = exports.getWhaleMovements = exports.getTokenMetadata = exports.getSwarmSentiment = exports.getSwarmPulse = exports.getReputationScore = exports.whoami = exports.getFearGreedHistory = exports.getFearGreedIndex = exports.searchArXiv = exports.getDailyAIPapers = exports.searchHackerNews = exports.getHackerNewsTopStories = exports.getMarketCrashProbability = exports.getSolarStormAlert = exports.getSeismicAlerts = exports.getEthereumGas = exports.getBitcoinBlockStatus = exports.getBitcoinFees = exports.getGlobalMarketStats = exports.getCoinGeckoTrending = exports.getCoinGeckoPrice = exports.getJupiterQuote = exports.getGreenComputeWindow = exports.getFRAThermalRisk = exports.getHKGThermalRisk = exports.getDXBThermalRisk = exports.getHNDThermalRisk = exports.getLHRThermalRisk = exports.getKIAHThermalRisk = exports.getKORDThermalRisk = exports.getKMEMThermalRisk = exports.getKJFKThermalRisk = exports.getKLAXThermalRisk = void 0;
|
|
4
|
+
exports.getCategoryVelocity = exports.getAgentRankings = exports.getVolume7d = exports.getOHLC30d = exports.getPrice30dAgo = exports.getPrice7dAgo = exports.getPrice24hAgo = exports.getAddressLabels = exports.getENSRecords = exports.getFarcasterProfile = exports.getLensProfile = exports.getRecentVotes = exports.getVotingPower = exports.getDAOProposals = exports.getActiveProposals = exports.getBlockTime = exports.getGasHistory = exports.checkContractVerified = exports.getTokenBalances = exports.getAddressBalance = exports.lookupTransaction = exports.getDerivativesLiquidations = exports.getTopTraders = exports.getLongShortRatio = exports.getOpenInterest = exports.getFundingRates = exports.getDEXVolume = exports.getBridgesTVL = exports.getDeFiHacks = exports.getDeFiLiquidations = exports.getStakingYields = exports.getLendingRates = exports.getTVLChange = exports.getProtocolsByChain = exports.getTokenExchanges = exports.getTokenCategories = exports.getTokenATHATL = exports.getTokenSupply = exports.getTokenUnlocks = exports.getMEXThermalRisk = exports.getJNBThermalRisk = exports.getBOMThermalRisk = exports.getGRUThermalRisk = exports.getSYDThermalRisk = exports.getICNThermalRisk = exports.getAMSThermalRisk = exports.getCDGThermalRisk = exports.getPEKThermalRisk = exports.getSINThermalRisk = exports.getSwarmConsensus = void 0;
|
|
5
|
+
exports.getSmartMoneyFlow = exports.getVolatilityRegime = exports.getMomentumScore = exports.getDipDetector = exports.getExitSignal = exports.getEntrySignal = exports.getTopCallers = exports.getErrorPatterns = exports.getHourlyVolume = exports.getCorrelationMatrix = void 0;
|
|
6
|
+
const ai_1 = require("ai");
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
// Base URL for Omni-Oracle
|
|
9
|
+
const BASE_URL = 'https://omni-oracle.omnioracle.workers.dev';
|
|
10
|
+
async function fetchOracle(path, params = {}) {
|
|
11
|
+
const url = new URL(`${BASE_URL}${path}`);
|
|
12
|
+
// Substitute path params
|
|
13
|
+
let finalPath = path;
|
|
14
|
+
const queryParams = {};
|
|
15
|
+
for (const [key, value] of Object.entries(params)) {
|
|
16
|
+
if (finalPath.includes(`{${key}}`)) {
|
|
17
|
+
finalPath = finalPath.replace(`{${key}}`, String(value));
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
queryParams[key] = value;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
url.pathname = finalPath;
|
|
24
|
+
for (const [key, value] of Object.entries(queryParams)) {
|
|
25
|
+
if (value !== undefined && value !== null) {
|
|
26
|
+
url.searchParams.append(key, String(value));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const res = await fetch(url.toString());
|
|
31
|
+
if (res.status === 200) {
|
|
32
|
+
return await res.json();
|
|
33
|
+
}
|
|
34
|
+
else if (res.status === 402) {
|
|
35
|
+
const errorData = await res.json();
|
|
36
|
+
if (errorData.accepts && errorData.accepts.length > 0) {
|
|
37
|
+
const offer = errorData.accepts[0];
|
|
38
|
+
return {
|
|
39
|
+
error: 'PAYMENT_REQUIRED',
|
|
40
|
+
type: 'CHALLENGE',
|
|
41
|
+
message: `Payment Required. Price: ${offer.maxAmountRequired} (units). Send to ${offer.payTo} on ${offer.network}.`,
|
|
42
|
+
payment_instructions: {
|
|
43
|
+
price_usdc: parseInt(offer.maxAmountRequired) / 1000000,
|
|
44
|
+
pay_to: offer.payTo,
|
|
45
|
+
network: offer.network,
|
|
46
|
+
description: offer.description
|
|
47
|
+
},
|
|
48
|
+
hint: "Sign a transaction and retry this tool call with header 'X-402-Payment-Hash'."
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
error: 'PAYMENT_REQUIRED',
|
|
53
|
+
message: 'This endpoint requires payment. Please check server accepts headers.'
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
return { error: `HTTP ${res.status}`, message: await res.text() };
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
return { error: 'CONNECTION_ERROR', message: e instanceof Error ? e.message : 'Unknown error' };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.getKLAXThermalRisk = (0, ai_1.tool)({
|
|
65
|
+
description: "Need to route cargo through LAX? Use this endpoint to get deterministic thermal risk scores and visibility metrics. Essential for calculating flight delays and supply chain routing.",
|
|
66
|
+
parameters: zod_1.z.object({}),
|
|
67
|
+
execute: async () => fetchOracle('/logistics/klax', {})
|
|
68
|
+
});
|
|
69
|
+
exports.getKJFKThermalRisk = (0, ai_1.tool)({
|
|
70
|
+
description: "Aviation weather and thermal risk data for John F. Kennedy International Airport.",
|
|
71
|
+
parameters: zod_1.z.object({}),
|
|
72
|
+
execute: async () => fetchOracle('/logistics/kjfk', {})
|
|
73
|
+
});
|
|
74
|
+
exports.getKMEMThermalRisk = (0, ai_1.tool)({
|
|
75
|
+
description: "Aviation weather for Memphis International (FedEx SuperHub).",
|
|
76
|
+
parameters: zod_1.z.object({}),
|
|
77
|
+
execute: async () => fetchOracle('/logistics/kmem', {})
|
|
78
|
+
});
|
|
79
|
+
exports.getKORDThermalRisk = (0, ai_1.tool)({
|
|
80
|
+
description: "Aviation weather for Chicago O'Hare International Airport.",
|
|
81
|
+
parameters: zod_1.z.object({}),
|
|
82
|
+
execute: async () => fetchOracle('/logistics/kord', {})
|
|
83
|
+
});
|
|
84
|
+
exports.getKIAHThermalRisk = (0, ai_1.tool)({
|
|
85
|
+
description: "Aviation weather for George Bush Intercontinental Airport.",
|
|
86
|
+
parameters: zod_1.z.object({}),
|
|
87
|
+
execute: async () => fetchOracle('/logistics/kiah', {})
|
|
88
|
+
});
|
|
89
|
+
exports.getLHRThermalRisk = (0, ai_1.tool)({
|
|
90
|
+
description: "Aviation weather for London Heathrow. Europe gateway risk.",
|
|
91
|
+
parameters: zod_1.z.object({}),
|
|
92
|
+
execute: async () => fetchOracle('/logistics/lhr', {})
|
|
93
|
+
});
|
|
94
|
+
exports.getHNDThermalRisk = (0, ai_1.tool)({
|
|
95
|
+
description: "Aviation weather for Tokyo Haneda. Asia gateway risk.",
|
|
96
|
+
parameters: zod_1.z.object({}),
|
|
97
|
+
execute: async () => fetchOracle('/logistics/hnd', {})
|
|
98
|
+
});
|
|
99
|
+
exports.getDXBThermalRisk = (0, ai_1.tool)({
|
|
100
|
+
description: "Aviation weather for Dubai Intl. Middle East hub risk.",
|
|
101
|
+
parameters: zod_1.z.object({}),
|
|
102
|
+
execute: async () => fetchOracle('/logistics/dxb', {})
|
|
103
|
+
});
|
|
104
|
+
exports.getHKGThermalRisk = (0, ai_1.tool)({
|
|
105
|
+
description: "Aviation weather for Hong Kong. Global Air Cargo hub.",
|
|
106
|
+
parameters: zod_1.z.object({}),
|
|
107
|
+
execute: async () => fetchOracle('/logistics/hkg', {})
|
|
108
|
+
});
|
|
109
|
+
exports.getFRAThermalRisk = (0, ai_1.tool)({
|
|
110
|
+
description: "Aviation weather for Frankfurt. Europe cargo hub.",
|
|
111
|
+
parameters: zod_1.z.object({}),
|
|
112
|
+
execute: async () => fetchOracle('/logistics/fra', {})
|
|
113
|
+
});
|
|
114
|
+
exports.getGreenComputeWindow = (0, ai_1.tool)({
|
|
115
|
+
description: "Optimize AI training or mining for carbon efficiency. Returns a `green_window` boolean when grid carbon intensity is <300g/kWh, allowing you to pause/resume workloads.",
|
|
116
|
+
parameters: zod_1.z.object({}),
|
|
117
|
+
execute: async () => fetchOracle('/compute/green-window', {})
|
|
118
|
+
});
|
|
119
|
+
exports.getJupiterQuote = (0, ai_1.tool)({
|
|
120
|
+
description: "Perform best-price execution on Solana. Returns optimal routing, price impact, and fee structure via Jupiter v6. Use this before executing any text-to-trade command.",
|
|
121
|
+
parameters: zod_1.z.object({
|
|
122
|
+
inputMint: zod_1.z.string().describe("Input token mint address"),
|
|
123
|
+
outputMint: zod_1.z.string().describe("Output token mint address"),
|
|
124
|
+
amount: zod_1.z.string().describe("Amount in smallest units"),
|
|
125
|
+
slippageBps: zod_1.z.number().int().describe("Slippage tolerance in basis points").optional()
|
|
126
|
+
}),
|
|
127
|
+
execute: async (args) => fetchOracle('/finance/jupiter/quote', args)
|
|
128
|
+
});
|
|
129
|
+
exports.getCoinGeckoPrice = (0, ai_1.tool)({
|
|
130
|
+
description: "Get reliable crypto spot prices in USD. Access 10,000+ assets with no rate limits. Includes volatility data to help you decide when to trade.",
|
|
131
|
+
parameters: zod_1.z.object({
|
|
132
|
+
id: zod_1.z.string().describe("CoinGecko token ID")
|
|
133
|
+
}),
|
|
134
|
+
execute: async (args) => fetchOracle('/finance/coingecko/price/{id}', args)
|
|
135
|
+
});
|
|
136
|
+
exports.getCoinGeckoTrending = (0, ai_1.tool)({
|
|
137
|
+
description: "Top 10 trending tokens on CoinGecko.",
|
|
138
|
+
parameters: zod_1.z.object({}),
|
|
139
|
+
execute: async () => fetchOracle('/finance/coingecko/trending', {})
|
|
140
|
+
});
|
|
141
|
+
exports.getGlobalMarketStats = (0, ai_1.tool)({
|
|
142
|
+
description: "Total market cap, volume, and BTC/ETH dominance.",
|
|
143
|
+
parameters: zod_1.z.object({}),
|
|
144
|
+
execute: async () => fetchOracle('/finance/coingecko/global', {})
|
|
145
|
+
});
|
|
146
|
+
exports.getBitcoinFees = (0, ai_1.tool)({
|
|
147
|
+
description: "Real-time recommended fees (sat/vB) from Mempool.space.",
|
|
148
|
+
parameters: zod_1.z.object({}),
|
|
149
|
+
execute: async () => fetchOracle('/crypto/congestion/fees', {})
|
|
150
|
+
});
|
|
151
|
+
exports.getBitcoinBlockStatus = (0, ai_1.tool)({
|
|
152
|
+
description: "Latest block height from Mempool.space.",
|
|
153
|
+
parameters: zod_1.z.object({}),
|
|
154
|
+
execute: async () => fetchOracle('/crypto/congestion/block-status', {})
|
|
155
|
+
});
|
|
156
|
+
exports.getEthereumGas = (0, ai_1.tool)({
|
|
157
|
+
description: "Real-time Gas (Wei) from Beaconcha.in.",
|
|
158
|
+
parameters: zod_1.z.object({}),
|
|
159
|
+
execute: async () => fetchOracle('/gas/optimize/gas-forecast', {})
|
|
160
|
+
});
|
|
161
|
+
exports.getSeismicAlerts = (0, ai_1.tool)({
|
|
162
|
+
description: "List of recent significant seismic events from USGS.",
|
|
163
|
+
parameters: zod_1.z.object({}),
|
|
164
|
+
execute: async () => fetchOracle('/risk/seismic/recent', {})
|
|
165
|
+
});
|
|
166
|
+
exports.getSolarStormAlert = (0, ai_1.tool)({
|
|
167
|
+
description: "Boolean `storm_active` flag for G/S/R scale events from NOAA.",
|
|
168
|
+
parameters: zod_1.z.object({}),
|
|
169
|
+
execute: async () => fetchOracle('/risk/solar/storm-alert', {})
|
|
170
|
+
});
|
|
171
|
+
exports.getMarketCrashProbability = (0, ai_1.tool)({
|
|
172
|
+
description: "Composite risk score (0-100) aggregating VIX, Fear&Greed, BTC Fees. High value Alpha signal.",
|
|
173
|
+
parameters: zod_1.z.object({}),
|
|
174
|
+
execute: async () => fetchOracle('/risk/market-crash-probability', {})
|
|
175
|
+
});
|
|
176
|
+
exports.getHackerNewsTopStories = (0, ai_1.tool)({
|
|
177
|
+
description: "Top 10 trending stories from HackerNews.",
|
|
178
|
+
parameters: zod_1.z.object({}),
|
|
179
|
+
execute: async () => fetchOracle('/sentiment/hn/top-stories', {})
|
|
180
|
+
});
|
|
181
|
+
exports.searchHackerNews = (0, ai_1.tool)({
|
|
182
|
+
description: "Search HackerNews stories by keyword.",
|
|
183
|
+
parameters: zod_1.z.object({
|
|
184
|
+
query: zod_1.z.string().describe("")
|
|
185
|
+
}),
|
|
186
|
+
execute: async (args) => fetchOracle('/sentiment/hn/keyword/{query}', args)
|
|
187
|
+
});
|
|
188
|
+
exports.getDailyAIPapers = (0, ai_1.tool)({
|
|
189
|
+
description: "Latest AI/ML papers from ArXiv (cs.AI + cs.LG).",
|
|
190
|
+
parameters: zod_1.z.object({}),
|
|
191
|
+
execute: async () => fetchOracle('/sentiment/arxiv/daily/ai', {})
|
|
192
|
+
});
|
|
193
|
+
exports.searchArXiv = (0, ai_1.tool)({
|
|
194
|
+
description: "Search ArXiv papers by keyword.",
|
|
195
|
+
parameters: zod_1.z.object({
|
|
196
|
+
q: zod_1.z.string().describe("")
|
|
197
|
+
}),
|
|
198
|
+
execute: async (args) => fetchOracle('/sentiment/arxiv/search', args)
|
|
199
|
+
});
|
|
200
|
+
exports.getFearGreedIndex = (0, ai_1.tool)({
|
|
201
|
+
description: "Current crypto Fear & Greed Index with extreme_fear/extreme_greed triggers.",
|
|
202
|
+
parameters: zod_1.z.object({}),
|
|
203
|
+
execute: async () => fetchOracle('/sentiment/feargreed/index', {})
|
|
204
|
+
});
|
|
205
|
+
exports.getFearGreedHistory = (0, ai_1.tool)({
|
|
206
|
+
description: "30-day historical Fear & Greed Index with trend analysis.",
|
|
207
|
+
parameters: zod_1.z.object({}),
|
|
208
|
+
execute: async () => fetchOracle('/sentiment/feargreed/history', {})
|
|
209
|
+
});
|
|
210
|
+
exports.whoami = (0, ai_1.tool)({
|
|
211
|
+
description: "Echoes back the caller identity, IP, and headers as seen by the Oracle, signed.",
|
|
212
|
+
parameters: zod_1.z.object({}),
|
|
213
|
+
execute: async () => fetchOracle('/identity/whoami', {})
|
|
214
|
+
});
|
|
215
|
+
exports.getReputationScore = (0, ai_1.tool)({
|
|
216
|
+
description: "Get the credit score of an agent based on their on-chain payment history to this Oracle.",
|
|
217
|
+
parameters: zod_1.z.object({
|
|
218
|
+
address: zod_1.z.string().describe("")
|
|
219
|
+
}),
|
|
220
|
+
execute: async (args) => fetchOracle('/identity/score/{address}', args)
|
|
221
|
+
});
|
|
222
|
+
exports.getSwarmPulse = (0, ai_1.tool)({
|
|
223
|
+
description: "Real-time aggregated attention metrics from the agent swarm. 'Where are agents looking right now?'",
|
|
224
|
+
parameters: zod_1.z.object({}),
|
|
225
|
+
execute: async () => fetchOracle('/meta/pulse', {})
|
|
226
|
+
});
|
|
227
|
+
exports.getSwarmSentiment = (0, ai_1.tool)({
|
|
228
|
+
description: "Crowd-sourced sentiment derived from the ratio of Risk queries vs Finance queries.",
|
|
229
|
+
parameters: zod_1.z.object({}),
|
|
230
|
+
execute: async () => fetchOracle('/meta/sentiment', {})
|
|
231
|
+
});
|
|
232
|
+
exports.getTokenMetadata = (0, ai_1.tool)({
|
|
233
|
+
description: "Get logo, website, and socials for any token.",
|
|
234
|
+
parameters: zod_1.z.object({
|
|
235
|
+
address: zod_1.z.string().describe("")
|
|
236
|
+
}),
|
|
237
|
+
execute: async (args) => fetchOracle('/token/metadata/{address}', args)
|
|
238
|
+
});
|
|
239
|
+
exports.getWhaleMovements = (0, ai_1.tool)({
|
|
240
|
+
description: "Large transfers (> $1M) detected in the last hour.",
|
|
241
|
+
parameters: zod_1.z.object({}),
|
|
242
|
+
execute: async () => fetchOracle('/whale/recent', {})
|
|
243
|
+
});
|
|
244
|
+
exports.resolveENS = (0, ai_1.tool)({
|
|
245
|
+
description: "Resolve ENS name to address and vice versa.",
|
|
246
|
+
parameters: zod_1.z.object({
|
|
247
|
+
name: zod_1.z.string().describe("")
|
|
248
|
+
}),
|
|
249
|
+
execute: async (args) => fetchOracle('/ens/resolve/{name}', args)
|
|
250
|
+
});
|
|
251
|
+
exports.getBlockData = (0, ai_1.tool)({
|
|
252
|
+
description: "Get block details by height or 'latest'.",
|
|
253
|
+
parameters: zod_1.z.object({
|
|
254
|
+
height: zod_1.z.string().describe("")
|
|
255
|
+
}),
|
|
256
|
+
execute: async (args) => fetchOracle('/chain/block/{height}', args)
|
|
257
|
+
});
|
|
258
|
+
exports.checkAirdropEligibility = (0, ai_1.tool)({
|
|
259
|
+
description: "Check eligibility for known active airdrops.",
|
|
260
|
+
parameters: zod_1.z.object({
|
|
261
|
+
address: zod_1.z.string().describe("")
|
|
262
|
+
}),
|
|
263
|
+
execute: async (args) => fetchOracle('/airdrop/check/{address}', args)
|
|
264
|
+
});
|
|
265
|
+
exports.getTradePreflight = (0, ai_1.tool)({
|
|
266
|
+
description: "BUNDLE: Gas + slippage + risk check before executing a swap.",
|
|
267
|
+
parameters: zod_1.z.object({
|
|
268
|
+
token: zod_1.z.string().describe("")
|
|
269
|
+
}),
|
|
270
|
+
execute: async (args) => fetchOracle('/preflight/trade', args)
|
|
271
|
+
});
|
|
272
|
+
exports.getWalletValues = (0, ai_1.tool)({
|
|
273
|
+
description: "BUNDLE: Portfolio balance across chains.",
|
|
274
|
+
parameters: zod_1.z.object({
|
|
275
|
+
address: zod_1.z.string().describe("")
|
|
276
|
+
}),
|
|
277
|
+
execute: async (args) => fetchOracle('/preflight/wallet', args)
|
|
278
|
+
});
|
|
279
|
+
exports.getBatchPrices = (0, ai_1.tool)({
|
|
280
|
+
description: "Get prices for multiple tokens in one call.",
|
|
281
|
+
parameters: zod_1.z.object({
|
|
282
|
+
tokens: zod_1.z.string().describe("Comma separated addresses")
|
|
283
|
+
}),
|
|
284
|
+
execute: async (args) => fetchOracle('/price/batch', args)
|
|
285
|
+
});
|
|
286
|
+
exports.getX402BazaarCatalog = (0, ai_1.tool)({
|
|
287
|
+
description: "Agent discovery metadata with full service catalog and pricing.",
|
|
288
|
+
parameters: zod_1.z.object({}),
|
|
289
|
+
execute: async () => fetchOracle('/.well-known/x402-bazaar', {})
|
|
290
|
+
});
|
|
291
|
+
exports.getOpenAPISpec = (0, ai_1.tool)({
|
|
292
|
+
description: "This OpenAPI 3.1 specification.",
|
|
293
|
+
parameters: zod_1.z.object({}),
|
|
294
|
+
execute: async () => fetchOracle('/doc', {})
|
|
295
|
+
});
|
|
296
|
+
exports.getPublicStatus = (0, ai_1.tool)({
|
|
297
|
+
description: "FREE: Public system status dashboard. Returns 24h request count, avg latency, uptime %, and top categories. No payment required.",
|
|
298
|
+
parameters: zod_1.z.object({}),
|
|
299
|
+
execute: async () => fetchOracle('/public/status', {})
|
|
300
|
+
});
|
|
301
|
+
exports.getSystemPrompt = (0, ai_1.tool)({
|
|
302
|
+
description: "FREE: Returns the 'Capability Patch' system prompt. Agents should read this if they encounter 402 Payment Required errors to learn the payment flow.",
|
|
303
|
+
parameters: zod_1.z.object({}),
|
|
304
|
+
execute: async () => fetchOracle('/system_prompt', {})
|
|
305
|
+
});
|
|
306
|
+
exports.getMarketRegime = (0, ai_1.tool)({
|
|
307
|
+
description: "SYNTHETIC: Composite market state (Risk-On/Off/Euphoria/Capitulation). Aggregates Fear&Greed, BTC mempool, stablecoin pegs.",
|
|
308
|
+
parameters: zod_1.z.object({}),
|
|
309
|
+
execute: async () => fetchOracle('/alpha/market-regime', {})
|
|
310
|
+
});
|
|
311
|
+
exports.getWhaleMomentum = (0, ai_1.tool)({
|
|
312
|
+
description: "SYNTHETIC: Aggregated large transaction patterns. Are whales accumulating or distributing?",
|
|
313
|
+
parameters: zod_1.z.object({}),
|
|
314
|
+
execute: async () => fetchOracle('/alpha/whale-momentum', {})
|
|
315
|
+
});
|
|
316
|
+
exports.getSentimentDivergence = (0, ai_1.tool)({
|
|
317
|
+
description: "SYNTHETIC: News sentiment vs price action divergence. Contrarian trading signals.",
|
|
318
|
+
parameters: zod_1.z.object({}),
|
|
319
|
+
execute: async () => fetchOracle('/alpha/sentiment-divergence', {})
|
|
320
|
+
});
|
|
321
|
+
exports.getRiskAdjustedYield = (0, ai_1.tool)({
|
|
322
|
+
description: "SYNTHETIC: DeFi yields weighted by TVL risk and IL exposure. Best risk-adjusted returns.",
|
|
323
|
+
parameters: zod_1.z.object({}),
|
|
324
|
+
execute: async () => fetchOracle('/alpha/risk-adjusted-yield', {})
|
|
325
|
+
});
|
|
326
|
+
exports.getTrendingQueries = (0, ai_1.tool)({
|
|
327
|
+
description: "UNIQUE: Real-time view of what agents are querying most. Derived from live traffic.",
|
|
328
|
+
parameters: zod_1.z.object({}),
|
|
329
|
+
execute: async () => fetchOracle('/meta/trending-queries', {})
|
|
330
|
+
});
|
|
331
|
+
exports.getSectorRotation = (0, ai_1.tool)({
|
|
332
|
+
description: "UNIQUE: Track volume shifts between categories over 24h. Detect agent pivots.",
|
|
333
|
+
parameters: zod_1.z.object({}),
|
|
334
|
+
execute: async () => fetchOracle('/meta/sector-rotation', {})
|
|
335
|
+
});
|
|
336
|
+
exports.getAnomalyAlert = (0, ai_1.tool)({
|
|
337
|
+
description: "UNIQUE: Unusual agent behavior pattern detection. Volume spikes and drops.",
|
|
338
|
+
parameters: zod_1.z.object({}),
|
|
339
|
+
execute: async () => fetchOracle('/meta/anomaly-alert', {})
|
|
340
|
+
});
|
|
341
|
+
exports.getSwarmConsensus = (0, ai_1.tool)({
|
|
342
|
+
description: "UNIQUE: Network-wide bull/bear ratio from actual agent query patterns.",
|
|
343
|
+
parameters: zod_1.z.object({}),
|
|
344
|
+
execute: async () => fetchOracle('/meta/consensus', {})
|
|
345
|
+
});
|
|
346
|
+
exports.getSINThermalRisk = (0, ai_1.tool)({
|
|
347
|
+
description: "NOAA Aviation Weather for Singapore Changi. Asia-Pacific hub.",
|
|
348
|
+
parameters: zod_1.z.object({}),
|
|
349
|
+
execute: async () => fetchOracle('/logistics/sin', {})
|
|
350
|
+
});
|
|
351
|
+
exports.getPEKThermalRisk = (0, ai_1.tool)({
|
|
352
|
+
description: "NOAA Aviation Weather for Beijing Capital. China gateway.",
|
|
353
|
+
parameters: zod_1.z.object({}),
|
|
354
|
+
execute: async () => fetchOracle('/logistics/pek', {})
|
|
355
|
+
});
|
|
356
|
+
exports.getCDGThermalRisk = (0, ai_1.tool)({
|
|
357
|
+
description: "NOAA Aviation Weather for Paris Charles de Gaulle.",
|
|
358
|
+
parameters: zod_1.z.object({}),
|
|
359
|
+
execute: async () => fetchOracle('/logistics/cdg', {})
|
|
360
|
+
});
|
|
361
|
+
exports.getAMSThermalRisk = (0, ai_1.tool)({
|
|
362
|
+
description: "NOAA Aviation Weather for Amsterdam Schiphol.",
|
|
363
|
+
parameters: zod_1.z.object({}),
|
|
364
|
+
execute: async () => fetchOracle('/logistics/ams', {})
|
|
365
|
+
});
|
|
366
|
+
exports.getICNThermalRisk = (0, ai_1.tool)({
|
|
367
|
+
description: "NOAA Aviation Weather for Seoul Incheon.",
|
|
368
|
+
parameters: zod_1.z.object({}),
|
|
369
|
+
execute: async () => fetchOracle('/logistics/icn', {})
|
|
370
|
+
});
|
|
371
|
+
exports.getSYDThermalRisk = (0, ai_1.tool)({
|
|
372
|
+
description: "NOAA Aviation Weather for Sydney Kingsford Smith.",
|
|
373
|
+
parameters: zod_1.z.object({}),
|
|
374
|
+
execute: async () => fetchOracle('/logistics/syd', {})
|
|
375
|
+
});
|
|
376
|
+
exports.getGRUThermalRisk = (0, ai_1.tool)({
|
|
377
|
+
description: "NOAA Aviation Weather for São Paulo Guarulhos.",
|
|
378
|
+
parameters: zod_1.z.object({}),
|
|
379
|
+
execute: async () => fetchOracle('/logistics/gru', {})
|
|
380
|
+
});
|
|
381
|
+
exports.getBOMThermalRisk = (0, ai_1.tool)({
|
|
382
|
+
description: "NOAA Aviation Weather for Mumbai Chhatrapati Shivaji.",
|
|
383
|
+
parameters: zod_1.z.object({}),
|
|
384
|
+
execute: async () => fetchOracle('/logistics/bom', {})
|
|
385
|
+
});
|
|
386
|
+
exports.getJNBThermalRisk = (0, ai_1.tool)({
|
|
387
|
+
description: "NOAA Aviation Weather for Johannesburg O.R. Tambo.",
|
|
388
|
+
parameters: zod_1.z.object({}),
|
|
389
|
+
execute: async () => fetchOracle('/logistics/jnb', {})
|
|
390
|
+
});
|
|
391
|
+
exports.getMEXThermalRisk = (0, ai_1.tool)({
|
|
392
|
+
description: "NOAA Aviation Weather for Mexico City International.",
|
|
393
|
+
parameters: zod_1.z.object({}),
|
|
394
|
+
execute: async () => fetchOracle('/logistics/mex', {})
|
|
395
|
+
});
|
|
396
|
+
exports.getTokenUnlocks = (0, ai_1.tool)({
|
|
397
|
+
description: "Upcoming token unlock events via DeFiLlama.",
|
|
398
|
+
parameters: zod_1.z.object({}),
|
|
399
|
+
execute: async () => fetchOracle('/token/unlocks', {})
|
|
400
|
+
});
|
|
401
|
+
exports.getTokenSupply = (0, ai_1.tool)({
|
|
402
|
+
description: "Circulating, total, and max supply for any token.",
|
|
403
|
+
parameters: zod_1.z.object({
|
|
404
|
+
id: zod_1.z.string().describe("")
|
|
405
|
+
}),
|
|
406
|
+
execute: async (args) => fetchOracle('/token/supply/{id}', args)
|
|
407
|
+
});
|
|
408
|
+
exports.getTokenATHATL = (0, ai_1.tool)({
|
|
409
|
+
description: "ATH and ATL prices with dates.",
|
|
410
|
+
parameters: zod_1.z.object({
|
|
411
|
+
id: zod_1.z.string().describe("")
|
|
412
|
+
}),
|
|
413
|
+
execute: async (args) => fetchOracle('/token/ath-atl/{id}', args)
|
|
414
|
+
});
|
|
415
|
+
exports.getTokenCategories = (0, ai_1.tool)({
|
|
416
|
+
description: "Get categories a token belongs to.",
|
|
417
|
+
parameters: zod_1.z.object({
|
|
418
|
+
id: zod_1.z.string().describe("")
|
|
419
|
+
}),
|
|
420
|
+
execute: async (args) => fetchOracle('/token/categories/{id}', args)
|
|
421
|
+
});
|
|
422
|
+
exports.getTokenExchanges = (0, ai_1.tool)({
|
|
423
|
+
description: "Exchanges where a token trades and their volumes.",
|
|
424
|
+
parameters: zod_1.z.object({
|
|
425
|
+
id: zod_1.z.string().describe("")
|
|
426
|
+
}),
|
|
427
|
+
execute: async (args) => fetchOracle('/token/exchanges/{id}', args)
|
|
428
|
+
});
|
|
429
|
+
exports.getProtocolsByChain = (0, ai_1.tool)({
|
|
430
|
+
description: "List all DeFi protocols on a specific chain with TVL.",
|
|
431
|
+
parameters: zod_1.z.object({
|
|
432
|
+
chain: zod_1.z.string().describe("")
|
|
433
|
+
}),
|
|
434
|
+
execute: async (args) => fetchOracle('/defi/protocols-by-chain', args)
|
|
435
|
+
});
|
|
436
|
+
exports.getTVLChange = (0, ai_1.tool)({
|
|
437
|
+
description: "24h and 7d TVL changes for protocols.",
|
|
438
|
+
parameters: zod_1.z.object({
|
|
439
|
+
protocol: zod_1.z.string().describe("").optional()
|
|
440
|
+
}),
|
|
441
|
+
execute: async (args) => fetchOracle('/defi/tvl-change', args)
|
|
442
|
+
});
|
|
443
|
+
exports.getLendingRates = (0, ai_1.tool)({
|
|
444
|
+
description: "Borrow and supply APYs from Aave, Compound, etc.",
|
|
445
|
+
parameters: zod_1.z.object({
|
|
446
|
+
token: zod_1.z.string().describe("").optional()
|
|
447
|
+
}),
|
|
448
|
+
execute: async (args) => fetchOracle('/defi/lending-rates', args)
|
|
449
|
+
});
|
|
450
|
+
exports.getStakingYields = (0, ai_1.tool)({
|
|
451
|
+
description: "Native staking APYs for ETH, SOL, ATOM, etc.",
|
|
452
|
+
parameters: zod_1.z.object({}),
|
|
453
|
+
execute: async () => fetchOracle('/defi/staking-yields', {})
|
|
454
|
+
});
|
|
455
|
+
exports.getDeFiLiquidations = (0, ai_1.tool)({
|
|
456
|
+
description: "Recent liquidation events and at-risk capital.",
|
|
457
|
+
parameters: zod_1.z.object({}),
|
|
458
|
+
execute: async () => fetchOracle('/defi/liquidations', {})
|
|
459
|
+
});
|
|
460
|
+
exports.getDeFiHacks = (0, ai_1.tool)({
|
|
461
|
+
description: "Recent exploit and hack history from DeFiLlama.",
|
|
462
|
+
parameters: zod_1.z.object({
|
|
463
|
+
days: zod_1.z.number().int().describe("").optional()
|
|
464
|
+
}),
|
|
465
|
+
execute: async (args) => fetchOracle('/defi/hacks', args)
|
|
466
|
+
});
|
|
467
|
+
exports.getBridgesTVL = (0, ai_1.tool)({
|
|
468
|
+
description: "Cross-chain bridge TVL and volume.",
|
|
469
|
+
parameters: zod_1.z.object({}),
|
|
470
|
+
execute: async () => fetchOracle('/defi/bridges-tvl', {})
|
|
471
|
+
});
|
|
472
|
+
exports.getDEXVolume = (0, ai_1.tool)({
|
|
473
|
+
description: "24h DEX trading volume by chain or globally.",
|
|
474
|
+
parameters: zod_1.z.object({
|
|
475
|
+
chain: zod_1.z.string().describe("").optional()
|
|
476
|
+
}),
|
|
477
|
+
execute: async (args) => fetchOracle('/defi/dex-volume', args)
|
|
478
|
+
});
|
|
479
|
+
exports.getFundingRates = (0, ai_1.tool)({
|
|
480
|
+
description: "Perpetual futures funding rates from Binance.",
|
|
481
|
+
parameters: zod_1.z.object({
|
|
482
|
+
symbol: zod_1.z.string().describe("").optional()
|
|
483
|
+
}),
|
|
484
|
+
execute: async (args) => fetchOracle('/derivatives/funding-rates', args)
|
|
485
|
+
});
|
|
486
|
+
exports.getOpenInterest = (0, ai_1.tool)({
|
|
487
|
+
description: "Open interest data for crypto derivatives.",
|
|
488
|
+
parameters: zod_1.z.object({
|
|
489
|
+
symbol: zod_1.z.string().describe("")
|
|
490
|
+
}),
|
|
491
|
+
execute: async (args) => fetchOracle('/derivatives/open-interest', args)
|
|
492
|
+
});
|
|
493
|
+
exports.getLongShortRatio = (0, ai_1.tool)({
|
|
494
|
+
description: "Global long vs short ratio.",
|
|
495
|
+
parameters: zod_1.z.object({
|
|
496
|
+
symbol: zod_1.z.string().describe("")
|
|
497
|
+
}),
|
|
498
|
+
execute: async (args) => fetchOracle('/derivatives/long-short-ratio', args)
|
|
499
|
+
});
|
|
500
|
+
exports.getTopTraders = (0, ai_1.tool)({
|
|
501
|
+
description: "What are the top traders doing?",
|
|
502
|
+
parameters: zod_1.z.object({
|
|
503
|
+
symbol: zod_1.z.string().describe("")
|
|
504
|
+
}),
|
|
505
|
+
execute: async (args) => fetchOracle('/derivatives/top-traders', args)
|
|
506
|
+
});
|
|
507
|
+
exports.getDerivativesLiquidations = (0, ai_1.tool)({
|
|
508
|
+
description: "Recent futures liquidation data.",
|
|
509
|
+
parameters: zod_1.z.object({
|
|
510
|
+
symbol: zod_1.z.string().describe("").optional()
|
|
511
|
+
}),
|
|
512
|
+
execute: async (args) => fetchOracle('/derivatives/liquidations', args)
|
|
513
|
+
});
|
|
514
|
+
exports.lookupTransaction = (0, ai_1.tool)({
|
|
515
|
+
description: "Look up any transaction by hash.",
|
|
516
|
+
parameters: zod_1.z.object({
|
|
517
|
+
hash: zod_1.z.string().describe(""),
|
|
518
|
+
chain: zod_1.z.string().describe("").optional()
|
|
519
|
+
}),
|
|
520
|
+
execute: async (args) => fetchOracle('/chain/tx-lookup', args)
|
|
521
|
+
});
|
|
522
|
+
exports.getAddressBalance = (0, ai_1.tool)({
|
|
523
|
+
description: "Get native ETH/MATIC/etc balance for any address.",
|
|
524
|
+
parameters: zod_1.z.object({
|
|
525
|
+
address: zod_1.z.string().describe(""),
|
|
526
|
+
chain: zod_1.z.string().describe("").optional()
|
|
527
|
+
}),
|
|
528
|
+
execute: async (args) => fetchOracle('/chain/address-balance', args)
|
|
529
|
+
});
|
|
530
|
+
exports.getTokenBalances = (0, ai_1.tool)({
|
|
531
|
+
description: "Check major ERC-20 token balances for an address.",
|
|
532
|
+
parameters: zod_1.z.object({
|
|
533
|
+
address: zod_1.z.string().describe(""),
|
|
534
|
+
chain: zod_1.z.string().describe("").optional()
|
|
535
|
+
}),
|
|
536
|
+
execute: async (args) => fetchOracle('/chain/token-balances', args)
|
|
537
|
+
});
|
|
538
|
+
exports.checkContractVerified = (0, ai_1.tool)({
|
|
539
|
+
description: "Check if a smart contract is verified on Etherscan.",
|
|
540
|
+
parameters: zod_1.z.object({
|
|
541
|
+
address: zod_1.z.string().describe(""),
|
|
542
|
+
chain: zod_1.z.string().describe("").optional()
|
|
543
|
+
}),
|
|
544
|
+
execute: async (args) => fetchOracle('/chain/contract-verified', args)
|
|
545
|
+
});
|
|
546
|
+
exports.getGasHistory = (0, ai_1.tool)({
|
|
547
|
+
description: "Gas prices over last N blocks.",
|
|
548
|
+
parameters: zod_1.z.object({
|
|
549
|
+
chain: zod_1.z.string().describe("").optional(),
|
|
550
|
+
blocks: zod_1.z.number().int().describe("").optional()
|
|
551
|
+
}),
|
|
552
|
+
execute: async (args) => fetchOracle('/chain/gas-history', args)
|
|
553
|
+
});
|
|
554
|
+
exports.getBlockTime = (0, ai_1.tool)({
|
|
555
|
+
description: "Get timestamp for any block number.",
|
|
556
|
+
parameters: zod_1.z.object({
|
|
557
|
+
block: zod_1.z.string().describe(""),
|
|
558
|
+
chain: zod_1.z.string().describe("").optional()
|
|
559
|
+
}),
|
|
560
|
+
execute: async (args) => fetchOracle('/chain/block-time', args)
|
|
561
|
+
});
|
|
562
|
+
exports.getActiveProposals = (0, ai_1.tool)({
|
|
563
|
+
description: "Currently active voting proposals from major DAOs via Snapshot.",
|
|
564
|
+
parameters: zod_1.z.object({}),
|
|
565
|
+
execute: async () => fetchOracle('/governance/active-proposals', {})
|
|
566
|
+
});
|
|
567
|
+
exports.getDAOProposals = (0, ai_1.tool)({
|
|
568
|
+
description: "Proposals for a specific DAO/space.",
|
|
569
|
+
parameters: zod_1.z.object({
|
|
570
|
+
space: zod_1.z.string().describe("")
|
|
571
|
+
}),
|
|
572
|
+
execute: async (args) => fetchOracle('/governance/dao-proposals', args)
|
|
573
|
+
});
|
|
574
|
+
exports.getVotingPower = (0, ai_1.tool)({
|
|
575
|
+
description: "Check voting power for an address in a specific DAO.",
|
|
576
|
+
parameters: zod_1.z.object({
|
|
577
|
+
space: zod_1.z.string().describe(""),
|
|
578
|
+
address: zod_1.z.string().describe("")
|
|
579
|
+
}),
|
|
580
|
+
execute: async (args) => fetchOracle('/governance/voting-power', args)
|
|
581
|
+
});
|
|
582
|
+
exports.getRecentVotes = (0, ai_1.tool)({
|
|
583
|
+
description: "Recent voting events across DAOs.",
|
|
584
|
+
parameters: zod_1.z.object({}),
|
|
585
|
+
execute: async () => fetchOracle('/governance/recent-votes', {})
|
|
586
|
+
});
|
|
587
|
+
exports.getLensProfile = (0, ai_1.tool)({
|
|
588
|
+
description: "Lens Protocol profile lookup.",
|
|
589
|
+
parameters: zod_1.z.object({
|
|
590
|
+
handle: zod_1.z.string().describe("")
|
|
591
|
+
}),
|
|
592
|
+
execute: async (args) => fetchOracle('/identity/lens-profile', args)
|
|
593
|
+
});
|
|
594
|
+
exports.getFarcasterProfile = (0, ai_1.tool)({
|
|
595
|
+
description: "Farcaster profile lookup.",
|
|
596
|
+
parameters: zod_1.z.object({
|
|
597
|
+
username: zod_1.z.string().describe("")
|
|
598
|
+
}),
|
|
599
|
+
execute: async (args) => fetchOracle('/identity/farcaster-profile', args)
|
|
600
|
+
});
|
|
601
|
+
exports.getENSRecords = (0, ai_1.tool)({
|
|
602
|
+
description: "Full ENS records: owner, expiry, avatar, text records.",
|
|
603
|
+
parameters: zod_1.z.object({
|
|
604
|
+
name: zod_1.z.string().describe("")
|
|
605
|
+
}),
|
|
606
|
+
execute: async (args) => fetchOracle('/identity/ens-records', args)
|
|
607
|
+
});
|
|
608
|
+
exports.getAddressLabels = (0, ai_1.tool)({
|
|
609
|
+
description: "Known labels for addresses: Exchange wallets, DEX routers.",
|
|
610
|
+
parameters: zod_1.z.object({
|
|
611
|
+
address: zod_1.z.string().describe("")
|
|
612
|
+
}),
|
|
613
|
+
execute: async (args) => fetchOracle('/identity/address-labels', args)
|
|
614
|
+
});
|
|
615
|
+
exports.getPrice24hAgo = (0, ai_1.tool)({
|
|
616
|
+
description: "Token price exactly 24 hours ago.",
|
|
617
|
+
parameters: zod_1.z.object({
|
|
618
|
+
id: zod_1.z.string().describe("")
|
|
619
|
+
}),
|
|
620
|
+
execute: async (args) => fetchOracle('/history/price-24h/{id}', args)
|
|
621
|
+
});
|
|
622
|
+
exports.getPrice7dAgo = (0, ai_1.tool)({
|
|
623
|
+
description: "Token price 7 days ago.",
|
|
624
|
+
parameters: zod_1.z.object({
|
|
625
|
+
id: zod_1.z.string().describe("")
|
|
626
|
+
}),
|
|
627
|
+
execute: async (args) => fetchOracle('/history/price-7d/{id}', args)
|
|
628
|
+
});
|
|
629
|
+
exports.getPrice30dAgo = (0, ai_1.tool)({
|
|
630
|
+
description: "Token price 30 days ago.",
|
|
631
|
+
parameters: zod_1.z.object({
|
|
632
|
+
id: zod_1.z.string().describe("")
|
|
633
|
+
}),
|
|
634
|
+
execute: async (args) => fetchOracle('/history/price-30d/{id}', args)
|
|
635
|
+
});
|
|
636
|
+
exports.getOHLC30d = (0, ai_1.tool)({
|
|
637
|
+
description: "Open-High-Low-Close data for 30 days.",
|
|
638
|
+
parameters: zod_1.z.object({
|
|
639
|
+
id: zod_1.z.string().describe("")
|
|
640
|
+
}),
|
|
641
|
+
execute: async (args) => fetchOracle('/history/ohlc-30d/{id}', args)
|
|
642
|
+
});
|
|
643
|
+
exports.getVolume7d = (0, ai_1.tool)({
|
|
644
|
+
description: "7 days of trading volume.",
|
|
645
|
+
parameters: zod_1.z.object({
|
|
646
|
+
id: zod_1.z.string().describe("")
|
|
647
|
+
}),
|
|
648
|
+
execute: async (args) => fetchOracle('/history/volume-7d/{id}', args)
|
|
649
|
+
});
|
|
650
|
+
exports.getAgentRankings = (0, ai_1.tool)({
|
|
651
|
+
description: "PROPRIETARY: Ranked list of most-called endpoints.",
|
|
652
|
+
parameters: zod_1.z.object({}),
|
|
653
|
+
execute: async () => fetchOracle('/meta/agent-rankings', {})
|
|
654
|
+
});
|
|
655
|
+
exports.getCategoryVelocity = (0, ai_1.tool)({
|
|
656
|
+
description: "PROPRIETARY: 7-day growth rate by category.",
|
|
657
|
+
parameters: zod_1.z.object({}),
|
|
658
|
+
execute: async () => fetchOracle('/meta/category-velocity', {})
|
|
659
|
+
});
|
|
660
|
+
exports.getCorrelationMatrix = (0, ai_1.tool)({
|
|
661
|
+
description: "PROPRIETARY: Which endpoints are queried together.",
|
|
662
|
+
parameters: zod_1.z.object({}),
|
|
663
|
+
execute: async () => fetchOracle('/meta/correlation-matrix', {})
|
|
664
|
+
});
|
|
665
|
+
exports.getHourlyVolume = (0, ai_1.tool)({
|
|
666
|
+
description: "PROPRIETARY: 24-hour volume by hour.",
|
|
667
|
+
parameters: zod_1.z.object({}),
|
|
668
|
+
execute: async () => fetchOracle('/meta/hourly-volume', {})
|
|
669
|
+
});
|
|
670
|
+
exports.getErrorPatterns = (0, ai_1.tool)({
|
|
671
|
+
description: "PROPRIETARY: Common error patterns across the network.",
|
|
672
|
+
parameters: zod_1.z.object({}),
|
|
673
|
+
execute: async () => fetchOracle('/meta/error-patterns', {})
|
|
674
|
+
});
|
|
675
|
+
exports.getTopCallers = (0, ai_1.tool)({
|
|
676
|
+
description: "PROPRIETARY: Most active agent wallets.",
|
|
677
|
+
parameters: zod_1.z.object({}),
|
|
678
|
+
execute: async () => fetchOracle('/meta/top-callers', {})
|
|
679
|
+
});
|
|
680
|
+
exports.getEntrySignal = (0, ai_1.tool)({
|
|
681
|
+
description: "SYNTHETIC: Buy signal 0-100. Contrarian entry timing.",
|
|
682
|
+
parameters: zod_1.z.object({
|
|
683
|
+
id: zod_1.z.string().describe("Token ID (default: bitcoin)").optional()
|
|
684
|
+
}),
|
|
685
|
+
execute: async (args) => fetchOracle('/alpha/entry-signal', args)
|
|
686
|
+
});
|
|
687
|
+
exports.getExitSignal = (0, ai_1.tool)({
|
|
688
|
+
description: "SYNTHETIC: Sell signal 0-100. Take profit timing.",
|
|
689
|
+
parameters: zod_1.z.object({
|
|
690
|
+
id: zod_1.z.string().describe("Token ID (default: bitcoin)").optional()
|
|
691
|
+
}),
|
|
692
|
+
execute: async (args) => fetchOracle('/alpha/exit-signal', args)
|
|
693
|
+
});
|
|
694
|
+
exports.getDipDetector = (0, ai_1.tool)({
|
|
695
|
+
description: "SYNTHETIC: Buy-the-dip trigger. Accumulation zone detector.",
|
|
696
|
+
parameters: zod_1.z.object({
|
|
697
|
+
id: zod_1.z.string().describe("Token ID (default: bitcoin)").optional()
|
|
698
|
+
}),
|
|
699
|
+
execute: async (args) => fetchOracle('/alpha/dip-detector', args)
|
|
700
|
+
});
|
|
701
|
+
exports.getMomentumScore = (0, ai_1.tool)({
|
|
702
|
+
description: "SYNTHETIC: Trend strength -100 to +100.",
|
|
703
|
+
parameters: zod_1.z.object({
|
|
704
|
+
id: zod_1.z.string().describe("Token ID (default: bitcoin)").optional()
|
|
705
|
+
}),
|
|
706
|
+
execute: async (args) => fetchOracle('/alpha/momentum-score', args)
|
|
707
|
+
});
|
|
708
|
+
exports.getVolatilityRegime = (0, ai_1.tool)({
|
|
709
|
+
description: "SYNTHETIC: Volatility state (Low/Normal/High/Extreme).",
|
|
710
|
+
parameters: zod_1.z.object({
|
|
711
|
+
id: zod_1.z.string().describe("Token ID (default: bitcoin)").optional()
|
|
712
|
+
}),
|
|
713
|
+
execute: async (args) => fetchOracle('/alpha/volatility-regime', args)
|
|
714
|
+
});
|
|
715
|
+
exports.getSmartMoneyFlow = (0, ai_1.tool)({
|
|
716
|
+
description: "SYNTHETIC: Stablecoin vs BTC ratio as smart money indicator.",
|
|
717
|
+
parameters: zod_1.z.object({}),
|
|
718
|
+
execute: async () => fetchOracle('/alpha/smart-money-flow', {})
|
|
719
|
+
});
|