@kernel.chat/kbot 3.23.0 → 3.26.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.
Files changed (85) hide show
  1. package/README.md +33 -22
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +3 -1
  4. package/dist/agent.js.map +1 -1
  5. package/dist/agents/trader.d.ts +32 -0
  6. package/dist/agents/trader.d.ts.map +1 -0
  7. package/dist/agents/trader.js +190 -0
  8. package/dist/agents/trader.js.map +1 -0
  9. package/dist/cli.js +219 -15
  10. package/dist/cli.js.map +1 -1
  11. package/dist/context.d.ts +4 -1
  12. package/dist/context.d.ts.map +1 -1
  13. package/dist/context.js +28 -1
  14. package/dist/context.js.map +1 -1
  15. package/dist/doctor.d.ts.map +1 -1
  16. package/dist/doctor.js +71 -1
  17. package/dist/doctor.js.map +1 -1
  18. package/dist/inference.d.ts +9 -0
  19. package/dist/inference.d.ts.map +1 -1
  20. package/dist/inference.js +38 -5
  21. package/dist/inference.js.map +1 -1
  22. package/dist/introspection.d.ts +17 -0
  23. package/dist/introspection.d.ts.map +1 -0
  24. package/dist/introspection.js +490 -0
  25. package/dist/introspection.js.map +1 -0
  26. package/dist/learned-router.d.ts.map +1 -1
  27. package/dist/learned-router.js +3 -0
  28. package/dist/learned-router.js.map +1 -1
  29. package/dist/machine.d.ts +85 -0
  30. package/dist/machine.d.ts.map +1 -0
  31. package/dist/machine.js +538 -0
  32. package/dist/machine.js.map +1 -0
  33. package/dist/matrix.d.ts.map +1 -1
  34. package/dist/matrix.js +11 -0
  35. package/dist/matrix.js.map +1 -1
  36. package/dist/provider-fallback.d.ts +6 -0
  37. package/dist/provider-fallback.d.ts.map +1 -1
  38. package/dist/provider-fallback.js +29 -0
  39. package/dist/provider-fallback.js.map +1 -1
  40. package/dist/synthesis-engine.d.ts +175 -0
  41. package/dist/synthesis-engine.d.ts.map +1 -0
  42. package/dist/synthesis-engine.js +783 -0
  43. package/dist/synthesis-engine.js.map +1 -0
  44. package/dist/tool-pipeline.d.ts +7 -1
  45. package/dist/tool-pipeline.d.ts.map +1 -1
  46. package/dist/tool-pipeline.js +39 -1
  47. package/dist/tool-pipeline.js.map +1 -1
  48. package/dist/tools/finance.d.ts +2 -0
  49. package/dist/tools/finance.d.ts.map +1 -0
  50. package/dist/tools/finance.js +1116 -0
  51. package/dist/tools/finance.js.map +1 -0
  52. package/dist/tools/finance.test.d.ts +2 -0
  53. package/dist/tools/finance.test.d.ts.map +1 -0
  54. package/dist/tools/finance.test.js +245 -0
  55. package/dist/tools/finance.test.js.map +1 -0
  56. package/dist/tools/index.d.ts.map +1 -1
  57. package/dist/tools/index.js +5 -0
  58. package/dist/tools/index.js.map +1 -1
  59. package/dist/tools/machine-tools.d.ts +2 -0
  60. package/dist/tools/machine-tools.d.ts.map +1 -0
  61. package/dist/tools/machine-tools.js +690 -0
  62. package/dist/tools/machine-tools.js.map +1 -0
  63. package/dist/tools/sentiment.d.ts +2 -0
  64. package/dist/tools/sentiment.d.ts.map +1 -0
  65. package/dist/tools/sentiment.js +513 -0
  66. package/dist/tools/sentiment.js.map +1 -0
  67. package/dist/tools/stocks.d.ts +2 -0
  68. package/dist/tools/stocks.d.ts.map +1 -0
  69. package/dist/tools/stocks.js +345 -0
  70. package/dist/tools/stocks.js.map +1 -0
  71. package/dist/tools/stocks.test.d.ts +2 -0
  72. package/dist/tools/stocks.test.d.ts.map +1 -0
  73. package/dist/tools/stocks.test.js +82 -0
  74. package/dist/tools/stocks.test.js.map +1 -0
  75. package/dist/tools/wallet.d.ts +2 -0
  76. package/dist/tools/wallet.d.ts.map +1 -0
  77. package/dist/tools/wallet.js +698 -0
  78. package/dist/tools/wallet.js.map +1 -0
  79. package/dist/tools/wallet.test.d.ts +2 -0
  80. package/dist/tools/wallet.test.d.ts.map +1 -0
  81. package/dist/tools/wallet.test.js +205 -0
  82. package/dist/tools/wallet.test.js.map +1 -0
  83. package/dist/ui.js +1 -1
  84. package/dist/ui.js.map +1 -1
  85. package/package.json +11 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine-tools.js","sourceRoot":"","sources":["../../src/tools/machine-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function registerSentimentTools(): void;
2
+ //# sourceMappingURL=sentiment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentiment.d.ts","sourceRoot":"","sources":["../../src/tools/sentiment.ts"],"names":[],"mappings":"AAqEA,wBAAgB,sBAAsB,IAAI,IAAI,CA6d7C"}
@@ -0,0 +1,513 @@
1
+ // kbot Social Sentiment Tools — Monitor crypto/stock social signals
2
+ // All sources are free, no auth required:
3
+ // - Reddit: public JSON API (append .json to any subreddit URL)
4
+ // - GitHub: public API for repo activity
5
+ // - CryptoPanic: free news aggregator API
6
+ // - Whale alerts: on-chain large transaction monitoring
7
+ // - Google News: RSS feed parsing
8
+ //
9
+ // Sentiment scoring: simple keyword-based polarity (no LLM needed for basic signals).
10
+ import { registerTool } from './index.js';
11
+ // ── Helpers ──
12
+ async function fetchJSON(url, timeout = 12_000) {
13
+ const res = await fetch(url, {
14
+ headers: { 'User-Agent': 'KBot/3.0 (Sentiment Monitor)' },
15
+ signal: AbortSignal.timeout(timeout),
16
+ });
17
+ if (!res.ok)
18
+ throw new Error(`HTTP ${res.status}`);
19
+ return res.json();
20
+ }
21
+ async function fetchText(url, timeout = 10_000) {
22
+ const res = await fetch(url, {
23
+ headers: { 'User-Agent': 'KBot/3.0 (Sentiment Monitor)' },
24
+ signal: AbortSignal.timeout(timeout),
25
+ });
26
+ if (!res.ok)
27
+ throw new Error(`HTTP ${res.status}`);
28
+ return res.text();
29
+ }
30
+ function fmt(n, d = 2) {
31
+ return n.toLocaleString('en-US', { minimumFractionDigits: d, maximumFractionDigits: d });
32
+ }
33
+ // ── Sentiment Scoring ──
34
+ const BULLISH_WORDS = new Set([
35
+ 'bullish', 'moon', 'pump', 'buy', 'long', 'breakout', 'rally', 'surge',
36
+ 'rocket', 'gains', 'ath', 'accumulate', 'hodl', 'diamond', 'undervalued',
37
+ 'uptrend', 'support', 'bounce', 'recovery', 'green', 'soaring', 'skyrocket',
38
+ 'parabolic', 'fomo', 'adoption', 'institutional', 'etf', 'halving',
39
+ ]);
40
+ const BEARISH_WORDS = new Set([
41
+ 'bearish', 'crash', 'dump', 'sell', 'short', 'breakdown', 'plunge', 'tank',
42
+ 'rug', 'scam', 'overvalued', 'bubble', 'correction', 'resistance', 'decline',
43
+ 'red', 'fear', 'panic', 'liquidation', 'bankrupt', 'hack', 'exploit',
44
+ 'regulation', 'ban', 'sec', 'lawsuit', 'fraud', 'ponzi',
45
+ ]);
46
+ function scoreSentiment(text) {
47
+ const words = text.toLowerCase().split(/\W+/);
48
+ let bullish = 0;
49
+ let bearish = 0;
50
+ for (const w of words) {
51
+ if (BULLISH_WORDS.has(w))
52
+ bullish++;
53
+ if (BEARISH_WORDS.has(w))
54
+ bearish++;
55
+ }
56
+ const total = bullish + bearish;
57
+ if (total === 0)
58
+ return { score: 0, label: 'NEUTRAL' };
59
+ const score = (bullish - bearish) / total; // -1 to +1
60
+ const label = score > 0.2 ? 'BULLISH' : score < -0.2 ? 'BEARISH' : 'NEUTRAL';
61
+ return { score, label };
62
+ }
63
+ // ── Register Tools ──
64
+ export function registerSentimentTools() {
65
+ // ─── Reddit Sentiment ───
66
+ registerTool({
67
+ name: 'reddit_sentiment',
68
+ description: 'Scan Reddit for sentiment about a crypto token or stock. Checks r/cryptocurrency, r/wallstreetbets, r/stocks, and token-specific subreddits. Returns top posts with sentiment scores.',
69
+ parameters: {
70
+ query: { type: 'string', description: 'Token or stock name to search for (e.g. "bitcoin", "AAPL", "solana")', required: true },
71
+ subreddit: { type: 'string', description: 'Specific subreddit to search (default: auto-detect based on query)' },
72
+ limit: { type: 'number', description: 'Number of posts to analyze (default: 15)', default: 15 },
73
+ },
74
+ tier: 'free',
75
+ timeout: 20_000,
76
+ async execute(args) {
77
+ const query = String(args.query).toLowerCase();
78
+ const limit = Math.min(Number(args.limit) || 15, 25);
79
+ // Pick subreddits based on query
80
+ let subreddits;
81
+ if (args.subreddit) {
82
+ subreddits = [String(args.subreddit)];
83
+ }
84
+ else if (/btc|bitcoin|eth|ethereum|sol|solana|crypto|defi|nft/i.test(query)) {
85
+ subreddits = ['cryptocurrency', 'CryptoMarkets', 'bitcoin', 'ethtrader'];
86
+ }
87
+ else {
88
+ subreddits = ['wallstreetbets', 'stocks', 'investing', 'StockMarket'];
89
+ }
90
+ const allPosts = [];
91
+ for (const sub of subreddits) {
92
+ try {
93
+ const url = `https://www.reddit.com/r/${sub}/search.json?q=${encodeURIComponent(query)}&sort=new&t=week&limit=${limit}&restrict_sr=on`;
94
+ const data = await fetchJSON(url);
95
+ const posts = data?.data?.children || [];
96
+ for (const post of posts) {
97
+ const d = post.data;
98
+ if (!d?.title)
99
+ continue;
100
+ const text = `${d.title} ${d.selftext || ''}`;
101
+ const sentiment = scoreSentiment(text);
102
+ allPosts.push({
103
+ title: d.title.slice(0, 80),
104
+ score: d.score || 0,
105
+ comments: d.num_comments || 0,
106
+ sentiment,
107
+ sub,
108
+ url: `https://reddit.com${d.permalink}`,
109
+ });
110
+ }
111
+ }
112
+ catch { /* skip failed subreddit */ }
113
+ }
114
+ if (!allPosts.length)
115
+ return `No Reddit posts found for "${query}" this week.`;
116
+ // Sort by upvotes
117
+ allPosts.sort((a, b) => b.score - a.score);
118
+ const top = allPosts.slice(0, limit);
119
+ // Aggregate sentiment
120
+ const avgSentiment = top.reduce((s, p) => s + p.sentiment.score, 0) / top.length;
121
+ const overallLabel = avgSentiment > 0.15 ? 'BULLISH' : avgSentiment < -0.15 ? 'BEARISH' : 'MIXED';
122
+ const bullishCount = top.filter(p => p.sentiment.label === 'BULLISH').length;
123
+ const bearishCount = top.filter(p => p.sentiment.label === 'BEARISH').length;
124
+ const lines = [
125
+ `## Reddit Sentiment: "${args.query}"`,
126
+ '',
127
+ `**Overall**: ${overallLabel} (${bullishCount} bullish / ${bearishCount} bearish / ${top.length - bullishCount - bearishCount} neutral)`,
128
+ `**Score**: ${fmt(avgSentiment, 3)} (-1 bearish ↔ +1 bullish)`,
129
+ `**Sources**: ${subreddits.map(s => `r/${s}`).join(', ')}`,
130
+ '',
131
+ '| Post | Upvotes | Comments | Sentiment |',
132
+ '|------|---------|----------|-----------|',
133
+ ];
134
+ for (const p of top.slice(0, 12)) {
135
+ lines.push(`| ${p.title} | ${p.score} | ${p.comments} | ${p.sentiment.label} |`);
136
+ }
137
+ lines.push('', `*${top.length} posts analyzed from the past week*`);
138
+ return lines.join('\n');
139
+ },
140
+ });
141
+ // ─── Crypto News Aggregator ───
142
+ registerTool({
143
+ name: 'crypto_news',
144
+ description: 'Get the latest crypto news from multiple sources with sentiment analysis. Covers major outlets, project announcements, and regulatory news.',
145
+ parameters: {
146
+ filter: { type: 'string', description: 'Filter: "all", "bullish", "bearish", "important" (default: all)' },
147
+ token: { type: 'string', description: 'Filter by specific token (e.g. "BTC", "ETH", "SOL")' },
148
+ limit: { type: 'number', description: 'Number of articles (default: 15)', default: 15 },
149
+ },
150
+ tier: 'free',
151
+ timeout: 15_000,
152
+ async execute(args) {
153
+ const filter = String(args.filter || 'all').toLowerCase();
154
+ const token = args.token ? String(args.token).toUpperCase() : undefined;
155
+ const limit = Math.min(Number(args.limit) || 15, 25);
156
+ // CryptoPanic free API (no auth for public posts)
157
+ let url = `https://cryptopanic.com/api/free/v1/posts/?auth_token=0000000000000000000000000000000000000000&public=true&kind=news`;
158
+ if (token)
159
+ url += `&currencies=${token}`;
160
+ if (filter === 'bullish')
161
+ url += '&filter=bullish';
162
+ else if (filter === 'bearish')
163
+ url += '&filter=bearish';
164
+ else if (filter === 'important')
165
+ url += '&filter=important';
166
+ let articles = [];
167
+ try {
168
+ const data = await fetchJSON(url);
169
+ const results = data?.results || [];
170
+ for (const r of results.slice(0, limit)) {
171
+ const sentiment = scoreSentiment(r.title || '');
172
+ articles.push({
173
+ title: (r.title || '').slice(0, 100),
174
+ source: r.source?.title || r.domain || '?',
175
+ url: r.url || '',
176
+ sentiment,
177
+ published: r.published_at?.split('T')[0] || '?',
178
+ });
179
+ }
180
+ }
181
+ catch {
182
+ // Fallback: Google News RSS for crypto
183
+ try {
184
+ const query = token ? `${token} cryptocurrency` : 'cryptocurrency market';
185
+ const rssUrl = `https://news.google.com/rss/search?q=${encodeURIComponent(query)}&hl=en-US&gl=US&ceid=US:en`;
186
+ const xml = await fetchText(rssUrl);
187
+ const items = xml.match(/<item>([\s\S]*?)<\/item>/g) || [];
188
+ for (const item of items.slice(0, limit)) {
189
+ const titleMatch = item.match(/<title>(.*?)<\/title>/);
190
+ const linkMatch = item.match(/<link>(.*?)<\/link>/);
191
+ const sourceMatch = item.match(/<source.*?>(.*?)<\/source>/);
192
+ const dateMatch = item.match(/<pubDate>(.*?)<\/pubDate>/);
193
+ const title = titleMatch?.[1]?.replace(/<!\[CDATA\[(.*?)\]\]>/, '$1') || '?';
194
+ const sentiment = scoreSentiment(title);
195
+ articles.push({
196
+ title: title.slice(0, 100),
197
+ source: sourceMatch?.[1] || '?',
198
+ url: linkMatch?.[1] || '',
199
+ sentiment,
200
+ published: dateMatch?.[1] ? new Date(dateMatch[1]).toISOString().split('T')[0] : '?',
201
+ });
202
+ }
203
+ }
204
+ catch { /* both failed */ }
205
+ }
206
+ if (!articles.length)
207
+ return 'Could not fetch crypto news. Try again later.';
208
+ const bullish = articles.filter(a => a.sentiment.label === 'BULLISH').length;
209
+ const bearish = articles.filter(a => a.sentiment.label === 'BEARISH').length;
210
+ const overallScore = articles.reduce((s, a) => s + a.sentiment.score, 0) / articles.length;
211
+ const overall = overallScore > 0.15 ? 'BULLISH' : overallScore < -0.15 ? 'BEARISH' : 'MIXED';
212
+ const lines = [
213
+ `## Crypto News${token ? ` — ${token}` : ''}`,
214
+ '',
215
+ `**Sentiment**: ${overall} (${bullish} bullish / ${bearish} bearish / ${articles.length - bullish - bearish} neutral)`,
216
+ '',
217
+ '| Date | Headline | Source | Sentiment |',
218
+ '|------|----------|--------|-----------|',
219
+ ];
220
+ for (const a of articles) {
221
+ lines.push(`| ${a.published} | ${a.title} | ${a.source} | ${a.sentiment.label} |`);
222
+ }
223
+ return lines.join('\n');
224
+ },
225
+ });
226
+ // ─── GitHub Project Activity ───
227
+ registerTool({
228
+ name: 'github_activity',
229
+ description: 'Monitor GitHub development activity for crypto projects. High commit velocity and contributor growth are bullish signals for token fundamentals.',
230
+ parameters: {
231
+ repo: { type: 'string', description: 'GitHub repo (e.g. "solana-labs/solana", "ethereum/go-ethereum")', required: true },
232
+ },
233
+ tier: 'free',
234
+ timeout: 15_000,
235
+ async execute(args) {
236
+ const repo = String(args.repo);
237
+ const [repoData, commitsData, contributorsData] = await Promise.all([
238
+ fetchJSON(`https://api.github.com/repos/${repo}`),
239
+ fetchJSON(`https://api.github.com/repos/${repo}/commits?per_page=20`),
240
+ fetchJSON(`https://api.github.com/repos/${repo}/contributors?per_page=10`),
241
+ ]).catch(() => [null, null, null]);
242
+ if (!repoData)
243
+ return `Could not fetch data for "${repo}". Check the repo path.`;
244
+ // Commit frequency
245
+ const recentCommits = (commitsData || []).slice(0, 20);
246
+ const commitDates = recentCommits
247
+ .map((c) => c.commit?.author?.date)
248
+ .filter(Boolean)
249
+ .map((d) => new Date(d));
250
+ let commitsThisWeek = 0;
251
+ let commitsThisMonth = 0;
252
+ const now = Date.now();
253
+ for (const d of commitDates) {
254
+ const age = now - d.getTime();
255
+ if (age < 7 * 24 * 60 * 60 * 1000)
256
+ commitsThisWeek++;
257
+ if (age < 30 * 24 * 60 * 60 * 1000)
258
+ commitsThisMonth++;
259
+ }
260
+ // Activity signal
261
+ const signal = commitsThisWeek >= 10 ? 'VERY ACTIVE'
262
+ : commitsThisWeek >= 5 ? 'ACTIVE'
263
+ : commitsThisWeek >= 1 ? 'MODERATE'
264
+ : 'SLOW';
265
+ const lines = [
266
+ `## GitHub Activity: ${repo}`,
267
+ '',
268
+ `**Stars**: ${(repoData.stargazers_count || 0).toLocaleString()} | **Forks**: ${(repoData.forks_count || 0).toLocaleString()} | **Open Issues**: ${(repoData.open_issues_count || 0).toLocaleString()}`,
269
+ `**Language**: ${repoData.language || '?'} | **License**: ${repoData.license?.spdx_id || '?'}`,
270
+ `**Last Push**: ${repoData.pushed_at?.split('T')[0] || '?'}`,
271
+ '',
272
+ `### Development Velocity: **${signal}**`,
273
+ `- Commits this week: ${commitsThisWeek}`,
274
+ `- Commits this month: ${commitsThisMonth}`,
275
+ '',
276
+ ];
277
+ if (recentCommits.length) {
278
+ lines.push('### Recent Commits', '', '| Date | Author | Message |', '|------|--------|---------|');
279
+ for (const c of recentCommits.slice(0, 8)) {
280
+ const date = c.commit?.author?.date?.split('T')[0] || '?';
281
+ const author = c.commit?.author?.name || c.author?.login || '?';
282
+ const msg = (c.commit?.message || '').split('\n')[0].slice(0, 60);
283
+ lines.push(`| ${date} | ${author} | ${msg} |`);
284
+ }
285
+ }
286
+ if (contributorsData?.length) {
287
+ lines.push('', '### Top Contributors', '');
288
+ for (const c of (contributorsData || []).slice(0, 5)) {
289
+ lines.push(`- **${c.login}**: ${c.contributions} commits`);
290
+ }
291
+ }
292
+ return lines.join('\n');
293
+ },
294
+ });
295
+ // ─── Whale Tracker ───
296
+ registerTool({
297
+ name: 'whale_tracker',
298
+ description: 'Monitor large Solana transactions (whale movements). Large transfers to/from exchanges often signal upcoming price action. Checks recent large SOL transfers.',
299
+ parameters: {
300
+ minSol: { type: 'number', description: 'Minimum transaction size in SOL to track (default: 10000)', default: 10000 },
301
+ },
302
+ tier: 'free',
303
+ timeout: 20_000,
304
+ async execute(args) {
305
+ const minSol = Number(args.minSol) || 10000;
306
+ const minLamports = minSol * 1e9;
307
+ // Query recent large Solana transfers via public RPC
308
+ // We check recent signatures on the System Program for large amounts
309
+ try {
310
+ const body = JSON.stringify({
311
+ jsonrpc: '2.0', id: 1,
312
+ method: 'getSignaturesForAddress',
313
+ params: ['11111111111111111111111111111111', { limit: 50 }], // System Program
314
+ });
315
+ const res = await fetch('https://api.mainnet-beta.solana.com', {
316
+ method: 'POST',
317
+ headers: { 'Content-Type': 'application/json' },
318
+ body,
319
+ signal: AbortSignal.timeout(15_000),
320
+ });
321
+ const data = await res.json();
322
+ const sigs = data.result || [];
323
+ if (!sigs.length)
324
+ return 'No recent large transactions found. The Solana RPC may be rate-limiting.';
325
+ // Get transaction details for the most recent ones
326
+ const largeTxs = [];
327
+ for (const sig of sigs.slice(0, 20)) {
328
+ try {
329
+ const txBody = JSON.stringify({
330
+ jsonrpc: '2.0', id: 1,
331
+ method: 'getTransaction',
332
+ params: [sig.signature, { encoding: 'jsonParsed', maxSupportedTransactionVersion: 0 }],
333
+ });
334
+ const txRes = await fetch('https://api.mainnet-beta.solana.com', {
335
+ method: 'POST',
336
+ headers: { 'Content-Type': 'application/json' },
337
+ body: txBody,
338
+ signal: AbortSignal.timeout(5_000),
339
+ });
340
+ const txData = await txRes.json();
341
+ const meta = txData.result?.meta;
342
+ if (!meta)
343
+ continue;
344
+ // Calculate net SOL movement
345
+ const preBalances = meta.preBalances || [];
346
+ const postBalances = meta.postBalances || [];
347
+ let maxTransfer = 0;
348
+ for (let i = 0; i < preBalances.length; i++) {
349
+ const diff = Math.abs((postBalances[i] || 0) - (preBalances[i] || 0));
350
+ maxTransfer = Math.max(maxTransfer, diff);
351
+ }
352
+ if (maxTransfer >= minLamports) {
353
+ const solAmount = maxTransfer / 1e9;
354
+ const time = sig.blockTime ? new Date(sig.blockTime * 1000).toISOString().replace('T', ' ').slice(0, 16) : '?';
355
+ largeTxs.push({
356
+ sig: sig.signature,
357
+ time,
358
+ amount: fmt(solAmount, 0),
359
+ });
360
+ }
361
+ }
362
+ catch { /* skip individual tx fetch errors */ }
363
+ if (largeTxs.length >= 10)
364
+ break;
365
+ }
366
+ if (!largeTxs.length)
367
+ return `No transactions >= ${minSol.toLocaleString()} SOL found in recent blocks.`;
368
+ // Get SOL price for USD values
369
+ let solPrice = 0;
370
+ try {
371
+ const priceData = await fetch('https://api.coingecko.com/api/v3/simple/price?ids=solana&vs_currencies=usd', {
372
+ signal: AbortSignal.timeout(5_000),
373
+ }).then(r => r.json());
374
+ solPrice = priceData.solana?.usd || 0;
375
+ }
376
+ catch { /* ok */ }
377
+ const lines = [
378
+ `## Whale Tracker (>= ${minSol.toLocaleString()} SOL)`,
379
+ '',
380
+ '| Time | Amount | USD Value | Tx |',
381
+ '|------|--------|-----------|-----|',
382
+ ];
383
+ for (const tx of largeTxs) {
384
+ const usd = solPrice ? `$${fmt(Number(tx.amount.replace(/,/g, '')) * solPrice, 0)}` : '?';
385
+ const shortSig = `${tx.sig.slice(0, 8)}...`;
386
+ lines.push(`| ${tx.time} | ${tx.amount} SOL | ${usd} | [\`${shortSig}\`](https://solscan.io/tx/${tx.sig}) |`);
387
+ }
388
+ lines.push('', `*SOL Price: $${fmt(solPrice)} — ${new Date().toISOString().split('T')[0]}*`);
389
+ return lines.join('\n');
390
+ }
391
+ catch (err) {
392
+ return `Whale tracker error: ${err instanceof Error ? err.message : String(err)}`;
393
+ }
394
+ },
395
+ });
396
+ // ─── Social Pulse (Combined) ───
397
+ registerTool({
398
+ name: 'social_pulse',
399
+ description: 'Comprehensive social media pulse check for any crypto token or stock. Combines Reddit sentiment, news headlines, and market data into one actionable signal. The "morning briefing" tool.',
400
+ parameters: {
401
+ symbol: { type: 'string', description: 'Token or stock symbol (e.g. "BTC", "SOL", "AAPL")', required: true },
402
+ },
403
+ tier: 'free',
404
+ timeout: 30_000,
405
+ async execute(args) {
406
+ const symbol = String(args.symbol).toUpperCase();
407
+ const isCrypto = /^(BTC|ETH|SOL|BNB|ADA|DOT|DOGE|XRP|AVAX|MATIC|LINK|UNI|AAVE|ARB|OP|SUI|APT|JUP|BONK|WIF|JTO|RENDER|PYTH)$/.test(symbol);
408
+ const lines = [
409
+ `## Social Pulse: ${symbol}`,
410
+ `*${new Date().toISOString().split('T')[0]}*`,
411
+ '',
412
+ ];
413
+ // 1. Reddit sentiment
414
+ const subreddits = isCrypto
415
+ ? ['cryptocurrency', 'CryptoMarkets']
416
+ : ['wallstreetbets', 'stocks'];
417
+ let redditBullish = 0;
418
+ let redditBearish = 0;
419
+ let redditTotal = 0;
420
+ let topPost = '';
421
+ for (const sub of subreddits) {
422
+ try {
423
+ const url = `https://www.reddit.com/r/${sub}/search.json?q=${encodeURIComponent(symbol)}&sort=new&t=week&limit=10&restrict_sr=on`;
424
+ const data = await fetchJSON(url);
425
+ const posts = data?.data?.children || [];
426
+ for (const post of posts) {
427
+ const d = post.data;
428
+ if (!d?.title)
429
+ continue;
430
+ const s = scoreSentiment(`${d.title} ${d.selftext || ''}`);
431
+ if (s.label === 'BULLISH')
432
+ redditBullish++;
433
+ else if (s.label === 'BEARISH')
434
+ redditBearish++;
435
+ redditTotal++;
436
+ if (!topPost && d.score > 10)
437
+ topPost = d.title.slice(0, 80);
438
+ }
439
+ }
440
+ catch { /* skip */ }
441
+ }
442
+ const redditSentiment = redditTotal
443
+ ? (redditBullish > redditBearish ? 'BULLISH' : redditBearish > redditBullish ? 'BEARISH' : 'MIXED')
444
+ : 'N/A';
445
+ lines.push('### Reddit');
446
+ lines.push(`**Sentiment**: ${redditSentiment} (${redditBullish}↑ / ${redditBearish}↓ / ${redditTotal - redditBullish - redditBearish}— from ${redditTotal} posts)`);
447
+ if (topPost)
448
+ lines.push(`**Top Post**: "${topPost}"`);
449
+ lines.push('');
450
+ // 2. News sentiment
451
+ let newsBullish = 0;
452
+ let newsBearish = 0;
453
+ let newsTotal = 0;
454
+ let topHeadline = '';
455
+ try {
456
+ const query = isCrypto ? `${symbol} cryptocurrency` : `${symbol} stock`;
457
+ const rssUrl = `https://news.google.com/rss/search?q=${encodeURIComponent(query)}&hl=en-US&gl=US&ceid=US:en`;
458
+ const xml = await fetchText(rssUrl);
459
+ const items = xml.match(/<item>([\s\S]*?)<\/item>/g) || [];
460
+ for (const item of items.slice(0, 10)) {
461
+ const titleMatch = item.match(/<title>(.*?)<\/title>/);
462
+ const title = titleMatch?.[1]?.replace(/<!\[CDATA\[(.*?)\]\]>/, '$1') || '';
463
+ if (!title)
464
+ continue;
465
+ const s = scoreSentiment(title);
466
+ if (s.label === 'BULLISH')
467
+ newsBullish++;
468
+ else if (s.label === 'BEARISH')
469
+ newsBearish++;
470
+ newsTotal++;
471
+ if (!topHeadline)
472
+ topHeadline = title.slice(0, 80);
473
+ }
474
+ }
475
+ catch { /* skip */ }
476
+ const newsSentiment = newsTotal
477
+ ? (newsBullish > newsBearish ? 'BULLISH' : newsBearish > newsBullish ? 'BEARISH' : 'MIXED')
478
+ : 'N/A';
479
+ lines.push('### News');
480
+ lines.push(`**Sentiment**: ${newsSentiment} (${newsBullish}↑ / ${newsBearish}↓ from ${newsTotal} headlines)`);
481
+ if (topHeadline)
482
+ lines.push(`**Top Headline**: "${topHeadline}"`);
483
+ lines.push('');
484
+ // 3. Fear & Greed (crypto only)
485
+ if (isCrypto) {
486
+ try {
487
+ const fg = await fetchJSON('https://api.alternative.me/fng/?limit=1');
488
+ if (fg.data?.[0]) {
489
+ const d = fg.data[0];
490
+ lines.push(`### Market Mood`);
491
+ lines.push(`**Fear & Greed**: ${d.value}/100 (${d.value_classification})`);
492
+ lines.push('');
493
+ }
494
+ }
495
+ catch { /* skip */ }
496
+ }
497
+ // 4. Overall signal
498
+ const signals = [redditSentiment, newsSentiment].filter(s => s !== 'N/A');
499
+ const bullishSignals = signals.filter(s => s === 'BULLISH').length;
500
+ const bearishSignals = signals.filter(s => s === 'BEARISH').length;
501
+ const overall = bullishSignals > bearishSignals ? 'BULLISH'
502
+ : bearishSignals > bullishSignals ? 'BEARISH'
503
+ : 'MIXED';
504
+ lines.push('---');
505
+ lines.push(`### Overall Social Signal: **${overall}**`);
506
+ lines.push(`Reddit ${redditSentiment} + News ${newsSentiment} = **${overall}**`);
507
+ lines.push('');
508
+ lines.push('*Keyword-based sentiment. Use with technical analysis for better decisions. Not financial advice.*');
509
+ return lines.join('\n');
510
+ },
511
+ });
512
+ }
513
+ //# sourceMappingURL=sentiment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentiment.js","sourceRoot":"","sources":["../../src/tools/sentiment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function registerStockTools(): void;
2
+ //# sourceMappingURL=stocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stocks.d.ts","sourceRoot":"","sources":["../../src/tools/stocks.ts"],"names":[],"mappings":"AA+CA,wBAAgB,kBAAkB,IAAI,IAAI,CAkVzC"}