nodebench-mcp 3.0.0 → 3.0.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.
Files changed (168) hide show
  1. package/dist/dashboard/operatingDashboardHtml.js +2 -1
  2. package/dist/dashboard/operatingDashboardHtml.js.map +1 -1
  3. package/dist/dashboard/operatingServer.js +3 -2
  4. package/dist/dashboard/operatingServer.js.map +1 -1
  5. package/dist/db.js +51 -3
  6. package/dist/db.js.map +1 -1
  7. package/dist/index.js +13 -16
  8. package/dist/index.js.map +1 -1
  9. package/dist/packageInfo.d.ts +3 -0
  10. package/dist/packageInfo.js +32 -0
  11. package/dist/packageInfo.js.map +1 -0
  12. package/dist/sandboxApi.js +2 -1
  13. package/dist/sandboxApi.js.map +1 -1
  14. package/dist/tools/boilerplateTools.js +10 -9
  15. package/dist/tools/boilerplateTools.js.map +1 -1
  16. package/dist/tools/documentationTools.js +2 -1
  17. package/dist/tools/documentationTools.js.map +1 -1
  18. package/dist/tools/progressiveDiscoveryTools.js +2 -1
  19. package/dist/tools/progressiveDiscoveryTools.js.map +1 -1
  20. package/dist/tools/toolRegistry.js +11 -0
  21. package/dist/tools/toolRegistry.js.map +1 -1
  22. package/dist/toolsetRegistry.js +74 -1
  23. package/dist/toolsetRegistry.js.map +1 -1
  24. package/package.json +4 -3
  25. package/dist/__tests__/analytics.test.d.ts +0 -11
  26. package/dist/__tests__/analytics.test.js +0 -546
  27. package/dist/__tests__/analytics.test.js.map +0 -1
  28. package/dist/__tests__/architectComplex.test.d.ts +0 -1
  29. package/dist/__tests__/architectComplex.test.js +0 -373
  30. package/dist/__tests__/architectComplex.test.js.map +0 -1
  31. package/dist/__tests__/architectSmoke.test.d.ts +0 -1
  32. package/dist/__tests__/architectSmoke.test.js +0 -92
  33. package/dist/__tests__/architectSmoke.test.js.map +0 -1
  34. package/dist/__tests__/audit-registry.d.ts +0 -1
  35. package/dist/__tests__/audit-registry.js +0 -60
  36. package/dist/__tests__/audit-registry.js.map +0 -1
  37. package/dist/__tests__/batchAutopilot.test.d.ts +0 -8
  38. package/dist/__tests__/batchAutopilot.test.js +0 -218
  39. package/dist/__tests__/batchAutopilot.test.js.map +0 -1
  40. package/dist/__tests__/cliSubcommands.test.d.ts +0 -1
  41. package/dist/__tests__/cliSubcommands.test.js +0 -138
  42. package/dist/__tests__/cliSubcommands.test.js.map +0 -1
  43. package/dist/__tests__/comparativeBench.test.d.ts +0 -1
  44. package/dist/__tests__/comparativeBench.test.js +0 -722
  45. package/dist/__tests__/comparativeBench.test.js.map +0 -1
  46. package/dist/__tests__/critterCalibrationEval.d.ts +0 -8
  47. package/dist/__tests__/critterCalibrationEval.js +0 -370
  48. package/dist/__tests__/critterCalibrationEval.js.map +0 -1
  49. package/dist/__tests__/dynamicLoading.test.d.ts +0 -1
  50. package/dist/__tests__/dynamicLoading.test.js +0 -280
  51. package/dist/__tests__/dynamicLoading.test.js.map +0 -1
  52. package/dist/__tests__/embeddingProvider.test.d.ts +0 -1
  53. package/dist/__tests__/embeddingProvider.test.js +0 -86
  54. package/dist/__tests__/embeddingProvider.test.js.map +0 -1
  55. package/dist/__tests__/evalDatasetBench.test.d.ts +0 -1
  56. package/dist/__tests__/evalDatasetBench.test.js +0 -738
  57. package/dist/__tests__/evalDatasetBench.test.js.map +0 -1
  58. package/dist/__tests__/evalHarness.test.d.ts +0 -1
  59. package/dist/__tests__/evalHarness.test.js +0 -1107
  60. package/dist/__tests__/evalHarness.test.js.map +0 -1
  61. package/dist/__tests__/fixtures/bfcl_v3_long_context.sample.json +0 -264
  62. package/dist/__tests__/fixtures/generateBfclLongContextFixture.d.ts +0 -10
  63. package/dist/__tests__/fixtures/generateBfclLongContextFixture.js +0 -135
  64. package/dist/__tests__/fixtures/generateBfclLongContextFixture.js.map +0 -1
  65. package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.d.ts +0 -14
  66. package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.js +0 -189
  67. package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.js.map +0 -1
  68. package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.d.ts +0 -16
  69. package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.js +0 -154
  70. package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.js.map +0 -1
  71. package/dist/__tests__/fixtures/swebench_verified.sample.json +0 -162
  72. package/dist/__tests__/fixtures/toolbench_instruction.sample.json +0 -109
  73. package/dist/__tests__/forecastingDogfood.test.d.ts +0 -9
  74. package/dist/__tests__/forecastingDogfood.test.js +0 -284
  75. package/dist/__tests__/forecastingDogfood.test.js.map +0 -1
  76. package/dist/__tests__/forecastingScoring.test.d.ts +0 -9
  77. package/dist/__tests__/forecastingScoring.test.js +0 -202
  78. package/dist/__tests__/forecastingScoring.test.js.map +0 -1
  79. package/dist/__tests__/gaiaCapabilityAudioEval.test.d.ts +0 -15
  80. package/dist/__tests__/gaiaCapabilityAudioEval.test.js +0 -265
  81. package/dist/__tests__/gaiaCapabilityAudioEval.test.js.map +0 -1
  82. package/dist/__tests__/gaiaCapabilityEval.test.d.ts +0 -14
  83. package/dist/__tests__/gaiaCapabilityEval.test.js +0 -1259
  84. package/dist/__tests__/gaiaCapabilityEval.test.js.map +0 -1
  85. package/dist/__tests__/gaiaCapabilityFilesEval.test.d.ts +0 -15
  86. package/dist/__tests__/gaiaCapabilityFilesEval.test.js +0 -914
  87. package/dist/__tests__/gaiaCapabilityFilesEval.test.js.map +0 -1
  88. package/dist/__tests__/gaiaCapabilityMediaEval.test.d.ts +0 -15
  89. package/dist/__tests__/gaiaCapabilityMediaEval.test.js +0 -1101
  90. package/dist/__tests__/gaiaCapabilityMediaEval.test.js.map +0 -1
  91. package/dist/__tests__/helpers/answerMatch.d.ts +0 -41
  92. package/dist/__tests__/helpers/answerMatch.js +0 -267
  93. package/dist/__tests__/helpers/answerMatch.js.map +0 -1
  94. package/dist/__tests__/helpers/textLlm.d.ts +0 -25
  95. package/dist/__tests__/helpers/textLlm.js +0 -214
  96. package/dist/__tests__/helpers/textLlm.js.map +0 -1
  97. package/dist/__tests__/localDashboard.test.d.ts +0 -1
  98. package/dist/__tests__/localDashboard.test.js +0 -226
  99. package/dist/__tests__/localDashboard.test.js.map +0 -1
  100. package/dist/__tests__/multiHopDogfood.test.d.ts +0 -12
  101. package/dist/__tests__/multiHopDogfood.test.js +0 -303
  102. package/dist/__tests__/multiHopDogfood.test.js.map +0 -1
  103. package/dist/__tests__/openDatasetParallelEval.test.d.ts +0 -7
  104. package/dist/__tests__/openDatasetParallelEval.test.js +0 -209
  105. package/dist/__tests__/openDatasetParallelEval.test.js.map +0 -1
  106. package/dist/__tests__/openDatasetParallelEvalGaia.test.d.ts +0 -7
  107. package/dist/__tests__/openDatasetParallelEvalGaia.test.js +0 -279
  108. package/dist/__tests__/openDatasetParallelEvalGaia.test.js.map +0 -1
  109. package/dist/__tests__/openDatasetParallelEvalSwebench.test.d.ts +0 -7
  110. package/dist/__tests__/openDatasetParallelEvalSwebench.test.js +0 -220
  111. package/dist/__tests__/openDatasetParallelEvalSwebench.test.js.map +0 -1
  112. package/dist/__tests__/openDatasetParallelEvalToolbench.test.d.ts +0 -7
  113. package/dist/__tests__/openDatasetParallelEvalToolbench.test.js +0 -218
  114. package/dist/__tests__/openDatasetParallelEvalToolbench.test.js.map +0 -1
  115. package/dist/__tests__/openDatasetPerfComparison.test.d.ts +0 -10
  116. package/dist/__tests__/openDatasetPerfComparison.test.js +0 -318
  117. package/dist/__tests__/openDatasetPerfComparison.test.js.map +0 -1
  118. package/dist/__tests__/openclawDogfood.test.d.ts +0 -23
  119. package/dist/__tests__/openclawDogfood.test.js +0 -535
  120. package/dist/__tests__/openclawDogfood.test.js.map +0 -1
  121. package/dist/__tests__/openclawMessaging.test.d.ts +0 -14
  122. package/dist/__tests__/openclawMessaging.test.js +0 -232
  123. package/dist/__tests__/openclawMessaging.test.js.map +0 -1
  124. package/dist/__tests__/presetRealWorldBench.test.d.ts +0 -1
  125. package/dist/__tests__/presetRealWorldBench.test.js +0 -859
  126. package/dist/__tests__/presetRealWorldBench.test.js.map +0 -1
  127. package/dist/__tests__/tools.test.d.ts +0 -1
  128. package/dist/__tests__/tools.test.js +0 -3201
  129. package/dist/__tests__/tools.test.js.map +0 -1
  130. package/dist/__tests__/toolsetGatingEval.test.d.ts +0 -1
  131. package/dist/__tests__/toolsetGatingEval.test.js +0 -1099
  132. package/dist/__tests__/toolsetGatingEval.test.js.map +0 -1
  133. package/dist/__tests__/traceabilityDogfood.test.d.ts +0 -12
  134. package/dist/__tests__/traceabilityDogfood.test.js +0 -241
  135. package/dist/__tests__/traceabilityDogfood.test.js.map +0 -1
  136. package/dist/__tests__/webmcpTools.test.d.ts +0 -7
  137. package/dist/__tests__/webmcpTools.test.js +0 -195
  138. package/dist/__tests__/webmcpTools.test.js.map +0 -1
  139. package/dist/benchmarks/testProviderBus.d.ts +0 -7
  140. package/dist/benchmarks/testProviderBus.js +0 -272
  141. package/dist/benchmarks/testProviderBus.js.map +0 -1
  142. package/dist/hooks/postCompaction.d.ts +0 -14
  143. package/dist/hooks/postCompaction.js +0 -51
  144. package/dist/hooks/postCompaction.js.map +0 -1
  145. package/dist/security/__tests__/security.test.d.ts +0 -8
  146. package/dist/security/__tests__/security.test.js +0 -295
  147. package/dist/security/__tests__/security.test.js.map +0 -1
  148. package/dist/sync/hyperloopEval.test.d.ts +0 -4
  149. package/dist/sync/hyperloopEval.test.js +0 -60
  150. package/dist/sync/hyperloopEval.test.js.map +0 -1
  151. package/dist/sync/store.test.d.ts +0 -4
  152. package/dist/sync/store.test.js +0 -43
  153. package/dist/sync/store.test.js.map +0 -1
  154. package/dist/tools/documentTools.d.ts +0 -5
  155. package/dist/tools/documentTools.js +0 -524
  156. package/dist/tools/documentTools.js.map +0 -1
  157. package/dist/tools/financialTools.d.ts +0 -10
  158. package/dist/tools/financialTools.js +0 -403
  159. package/dist/tools/financialTools.js.map +0 -1
  160. package/dist/tools/memoryTools.d.ts +0 -5
  161. package/dist/tools/memoryTools.js +0 -137
  162. package/dist/tools/memoryTools.js.map +0 -1
  163. package/dist/tools/planningTools.d.ts +0 -5
  164. package/dist/tools/planningTools.js +0 -147
  165. package/dist/tools/planningTools.js.map +0 -1
  166. package/dist/tools/searchTools.d.ts +0 -5
  167. package/dist/tools/searchTools.js +0 -145
  168. package/dist/tools/searchTools.js.map +0 -1
@@ -1,403 +0,0 @@
1
- /**
2
- * Financial data tools — uses only built-in `fetch()` (no npm packages).
3
- *
4
- * Data sources:
5
- * - Stooq (equity / crypto CSV quotes & history)
6
- * - Yahoo Finance (quote, fundamentals, news)
7
- * - World Bank (GDP, inflation)
8
- */
9
- // ─── helpers ────────────────────────────────────────────────────────────────
10
- const TIMEOUT_MS = 15_000;
11
- function nowIso() {
12
- return new Date().toISOString();
13
- }
14
- function timeoutSignal(ms = TIMEOUT_MS) {
15
- const controller = new AbortController();
16
- setTimeout(() => controller.abort(), ms);
17
- return controller.signal;
18
- }
19
- function parseStooqCsv(text) {
20
- const lines = text.trim().split(/\r?\n/);
21
- if (lines.length < 2)
22
- return {};
23
- const headers = lines[0].split(",").map((h) => h.trim());
24
- const values = lines[1].split(",").map((v) => v.trim());
25
- const obj = {};
26
- for (let i = 0; i < headers.length; i++) {
27
- const val = values[i] ?? null;
28
- obj[headers[i]] = val === "N/D" ? null : val;
29
- }
30
- return obj;
31
- }
32
- function stooqSymbol(symbol) {
33
- return symbol.includes(".") ? symbol.toLowerCase() : `${symbol.toLowerCase()}.us`;
34
- }
35
- async function fetchStooqQuote(symbol) {
36
- const s = stooqSymbol(symbol);
37
- const url = `https://stooq.com/q/l/?s=${s}&f=sd2t2ohlcv&h=1&e=csv`;
38
- const res = await fetch(url, { signal: timeoutSignal() });
39
- if (!res.ok)
40
- throw new Error(`Stooq HTTP ${res.status}`);
41
- const text = await res.text();
42
- if (text.includes("Exceeded the daily hits limit")) {
43
- throw new Error("Stooq daily rate limit exceeded");
44
- }
45
- const parsed = parseStooqCsv(text);
46
- return {
47
- symbol: parsed["Symbol"] ?? symbol.toUpperCase(),
48
- date: parsed["Date"] ?? null,
49
- time: parsed["Time"] ?? null,
50
- open: parsed["Open"] ?? null,
51
- high: parsed["High"] ?? null,
52
- low: parsed["Low"] ?? null,
53
- close: parsed["Close"] ?? null,
54
- volume: parsed["Volume"] ?? null,
55
- };
56
- }
57
- async function fetchYahooQuote(symbol) {
58
- const url = `https://query1.finance.yahoo.com/v7/finance/quote?symbols=${encodeURIComponent(symbol)}`;
59
- const res = await fetch(url, {
60
- signal: timeoutSignal(),
61
- headers: {
62
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
63
- },
64
- });
65
- if (!res.ok)
66
- return null;
67
- const json = (await res.json());
68
- const results = json?.quoteResponse?.result;
69
- if (!Array.isArray(results) || results.length === 0)
70
- return null;
71
- return results[0];
72
- }
73
- async function fetchWorldBank(country, indicator) {
74
- const url = `https://api.worldbank.org/v2/country/${encodeURIComponent(country)}/indicator/${encodeURIComponent(indicator)}?format=json&per_page=10`;
75
- const res = await fetch(url, { signal: timeoutSignal() });
76
- if (!res.ok)
77
- throw new Error(`World Bank HTTP ${res.status}`);
78
- const json = (await res.json());
79
- const dataPoints = json?.[1];
80
- if (!Array.isArray(dataPoints)) {
81
- return { value: null, year: null };
82
- }
83
- for (const dp of dataPoints) {
84
- if (dp.value != null) {
85
- return { value: dp.value, year: dp.date ?? null };
86
- }
87
- }
88
- return { value: null, year: null };
89
- }
90
- // ─── tool implementations ───────────────────────────────────────────────────
91
- async function equityPriceQuoteHandler(args) {
92
- const { symbol } = args;
93
- try {
94
- try {
95
- const sq = await fetchStooqQuote(symbol);
96
- if (sq.close && sq.close !== "N/D") {
97
- return {
98
- symbol: sq.symbol, price: Number(sq.close), currency: "USD", marketCap: null,
99
- dayHigh: sq.high ? Number(sq.high) : null, dayLow: sq.low ? Number(sq.low) : null,
100
- open: sq.open ? Number(sq.open) : null, volume: sq.volume ? Number(sq.volume) : null,
101
- source: "stooq", fetchedAt: nowIso(),
102
- };
103
- }
104
- }
105
- catch { /* fall through to Yahoo */ }
106
- const yq = await fetchYahooQuote(symbol);
107
- if (yq) {
108
- return {
109
- symbol: yq.symbol ?? symbol.toUpperCase(), price: yq.regularMarketPrice ?? null,
110
- currency: yq.currency ?? "USD", marketCap: yq.marketCap ?? null,
111
- dayHigh: yq.regularMarketDayHigh ?? null, dayLow: yq.regularMarketDayLow ?? null,
112
- open: yq.regularMarketOpen ?? null, volume: yq.regularMarketVolume ?? null,
113
- source: "yahoo", fetchedAt: nowIso(),
114
- };
115
- }
116
- return { symbol: symbol.toUpperCase(), error: "No data available from any source", fetchedAt: nowIso() };
117
- }
118
- catch (err) {
119
- return { symbol: symbol.toUpperCase(), error: err?.message ?? String(err), fetchedAt: nowIso() };
120
- }
121
- }
122
- async function equityPriceHistoricalHandler(args) {
123
- const { symbol, start_date, end_date } = args;
124
- try {
125
- const s = stooqSymbol(symbol);
126
- const url = `https://stooq.com/q/d/l/?s=${s}&i=d`;
127
- const res = await fetch(url, { signal: timeoutSignal() });
128
- if (!res.ok)
129
- throw new Error(`Stooq HTTP ${res.status}`);
130
- const text = await res.text();
131
- const lines = text.trim().split(/\r?\n/);
132
- if (lines.length < 2) {
133
- return { symbol: symbol.toUpperCase(), count: 0, points: [], source: "stooq", fetchedAt: nowIso() };
134
- }
135
- const headers = lines[0].split(",").map((h) => h.trim());
136
- const dateIdx = headers.indexOf("Date");
137
- const openIdx = headers.indexOf("Open");
138
- const highIdx = headers.indexOf("High");
139
- const lowIdx = headers.indexOf("Low");
140
- const closeIdx = headers.indexOf("Close");
141
- const volIdx = headers.indexOf("Volume");
142
- const points = [];
143
- for (let i = 1; i < lines.length; i++) {
144
- const cols = lines[i].split(",").map((c) => c.trim());
145
- const date = cols[dateIdx] ?? "";
146
- if (!date)
147
- continue;
148
- if (start_date && date < start_date)
149
- continue;
150
- if (end_date && date > end_date)
151
- continue;
152
- const parseNum = (v) => {
153
- if (!v || v === "N/D")
154
- return null;
155
- const n = Number(v);
156
- return Number.isNaN(n) ? null : n;
157
- };
158
- points.push({
159
- t: date, open: parseNum(cols[openIdx]), high: parseNum(cols[highIdx]),
160
- low: parseNum(cols[lowIdx]), close: parseNum(cols[closeIdx]), volume: parseNum(cols[volIdx]),
161
- });
162
- }
163
- return { symbol: symbol.toUpperCase(), count: points.length, points, source: "stooq", fetchedAt: nowIso() };
164
- }
165
- catch (err) {
166
- return { symbol: symbol.toUpperCase(), error: err?.message ?? String(err), fetchedAt: nowIso() };
167
- }
168
- }
169
- async function equityFundamentalOverviewHandler(args) {
170
- const { symbol } = args;
171
- try {
172
- const quote = (await equityPriceQuoteHandler({ symbol }));
173
- let fundamentals = {};
174
- try {
175
- const yq = await fetchYahooQuote(symbol);
176
- if (yq) {
177
- fundamentals = {
178
- longName: yq.longName ?? yq.shortName ?? null, sector: yq.sector ?? null,
179
- industry: yq.industry ?? null, marketCap: yq.marketCap ?? null,
180
- trailingPE: yq.trailingPE ?? null, forwardPE: yq.forwardPE ?? null,
181
- dividendYield: yq.dividendYield ?? yq.trailingAnnualDividendYield ?? null,
182
- fiftyTwoWeekHigh: yq.fiftyTwoWeekHigh ?? null, fiftyTwoWeekLow: yq.fiftyTwoWeekLow ?? null,
183
- averageVolume: yq.averageDailyVolume3Month ?? null, beta: yq.beta ?? null,
184
- earningsDate: yq.earningsTimestamp ?? null,
185
- };
186
- }
187
- }
188
- catch { /* fundamentals unavailable */ }
189
- return { ...quote, ...fundamentals, fetchedAt: nowIso() };
190
- }
191
- catch (err) {
192
- return { symbol: symbol.toUpperCase(), error: err?.message ?? String(err), fetchedAt: nowIso() };
193
- }
194
- }
195
- function cryptoStooqSymbol(symbol) {
196
- const base = symbol.replace(/-USD$/i, "").toUpperCase();
197
- return `${base}.V`;
198
- }
199
- function cryptoYahooSymbol(symbol) {
200
- return symbol.includes("-") ? symbol.toUpperCase() : `${symbol.toUpperCase()}-USD`;
201
- }
202
- async function cryptoPriceQuoteHandler(args) {
203
- const { symbol } = args;
204
- try {
205
- try {
206
- const sq = await fetchStooqQuote(cryptoStooqSymbol(symbol));
207
- if (sq.close && sq.close !== "N/D") {
208
- return {
209
- symbol: symbol.toUpperCase(), price: Number(sq.close), currency: "USD", marketCap: null,
210
- dayHigh: sq.high ? Number(sq.high) : null, dayLow: sq.low ? Number(sq.low) : null,
211
- open: sq.open ? Number(sq.open) : null, volume: sq.volume ? Number(sq.volume) : null,
212
- source: "stooq", fetchedAt: nowIso(),
213
- };
214
- }
215
- }
216
- catch { /* fall through */ }
217
- const yq = await fetchYahooQuote(cryptoYahooSymbol(symbol));
218
- if (yq) {
219
- return {
220
- symbol: yq.symbol ?? symbol.toUpperCase(), price: yq.regularMarketPrice ?? null,
221
- currency: yq.currency ?? "USD", marketCap: yq.marketCap ?? null,
222
- dayHigh: yq.regularMarketDayHigh ?? null, dayLow: yq.regularMarketDayLow ?? null,
223
- open: yq.regularMarketOpen ?? null, volume: yq.regularMarketVolume ?? null,
224
- source: "yahoo", fetchedAt: nowIso(),
225
- };
226
- }
227
- return { symbol: symbol.toUpperCase(), error: "No data available from any source", fetchedAt: nowIso() };
228
- }
229
- catch (err) {
230
- return { symbol: symbol.toUpperCase(), error: err?.message ?? String(err), fetchedAt: nowIso() };
231
- }
232
- }
233
- async function cryptoPriceHistoricalHandler(args) {
234
- return equityPriceHistoricalHandler({
235
- symbol: cryptoStooqSymbol(args.symbol),
236
- start_date: args.start_date,
237
- end_date: args.end_date,
238
- });
239
- }
240
- async function economyGdpHandler(args) {
241
- const country = args.country ?? "US";
242
- try {
243
- const { value, year } = await fetchWorldBank(country, "NY.GDP.MKTP.CD");
244
- return { country, value, year, unit: "USD", source: "world_bank", fetchedAt: nowIso() };
245
- }
246
- catch (err) {
247
- return { country, error: err?.message ?? String(err), fetchedAt: nowIso() };
248
- }
249
- }
250
- async function economyInflationHandler(args) {
251
- const country = args.country ?? "US";
252
- try {
253
- const { value, year } = await fetchWorldBank(country, "FP.CPI.TOTL.ZG");
254
- return { country, value, year, unit: "percent", source: "world_bank", fetchedAt: nowIso() };
255
- }
256
- catch (err) {
257
- return { country, error: err?.message ?? String(err), fetchedAt: nowIso() };
258
- }
259
- }
260
- async function newsCompanyHandler(args) {
261
- const { symbol, limit = 10 } = args;
262
- try {
263
- const urls = [
264
- `https://query1.finance.yahoo.com/v8/finance/chart/${encodeURIComponent(symbol)}?events=news`,
265
- `https://query1.finance.yahoo.com/v7/finance/quote?symbols=${encodeURIComponent(symbol)}&fields=messageBoardId`,
266
- ];
267
- const headers = {
268
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
269
- };
270
- for (const url of urls) {
271
- try {
272
- const res = await fetch(url, { signal: timeoutSignal(), headers });
273
- if (!res.ok)
274
- continue;
275
- const json = (await res.json());
276
- const newsItems = json?.chart?.result?.[0]?.events?.news ?? json?.news ?? [];
277
- const items = (Array.isArray(newsItems) ? newsItems : Object.values(newsItems))
278
- .slice(0, limit)
279
- .map((item) => ({
280
- title: item.title ?? item.headline ?? null,
281
- url: item.link ?? item.url ?? null,
282
- publishedAt: item.providerPublishTime
283
- ? new Date(item.providerPublishTime * 1000).toISOString()
284
- : item.publishedAt ?? null,
285
- source: item.publisher ?? item.source ?? null,
286
- }));
287
- if (items.length > 0) {
288
- return { symbol: symbol.toUpperCase(), count: items.length, items, source: "yahoo", fetchedAt: nowIso() };
289
- }
290
- }
291
- catch { /* try next URL */ }
292
- }
293
- return { symbol: symbol.toUpperCase(), count: 0, items: [], note: "Yahoo Finance news endpoint may be rate-limited or blocked", source: "yahoo", fetchedAt: nowIso() };
294
- }
295
- catch (err) {
296
- return { symbol: symbol.toUpperCase(), count: 0, items: [], error: err?.message ?? String(err), fetchedAt: nowIso() };
297
- }
298
- }
299
- async function newsWorldHandler(_args) {
300
- return { count: 0, items: [], note: "world news requires external news API", source: "none", fetchedAt: nowIso() };
301
- }
302
- // ─── tool definitions ───────────────────────────────────────────────────────
303
- export const financialTools = [
304
- {
305
- name: "equity_price_quote",
306
- description: "Get the latest equity/stock price quote for a given ticker symbol. Tries Stooq first, then Yahoo Finance as fallback.",
307
- inputSchema: {
308
- type: "object",
309
- properties: { symbol: { type: "string", description: "Ticker symbol (e.g. AAPL, MSFT, TSLA)" } },
310
- required: ["symbol"],
311
- },
312
- handler: equityPriceQuoteHandler,
313
- },
314
- {
315
- name: "equity_price_historical",
316
- description: "Get historical daily OHLCV price data for a given equity ticker. Optionally filter by start/end date (YYYY-MM-DD).",
317
- inputSchema: {
318
- type: "object",
319
- properties: {
320
- symbol: { type: "string", description: "Ticker symbol (e.g. AAPL, MSFT)" },
321
- start_date: { type: "string", description: "Start date in YYYY-MM-DD format (inclusive)" },
322
- end_date: { type: "string", description: "End date in YYYY-MM-DD format (inclusive)" },
323
- },
324
- required: ["symbol"],
325
- },
326
- handler: equityPriceHistoricalHandler,
327
- },
328
- {
329
- name: "equity_fundamental_overview",
330
- description: "Get a fundamental overview for an equity ticker including price, sector, industry, P/E ratios, market cap, and other key metrics.",
331
- inputSchema: {
332
- type: "object",
333
- properties: { symbol: { type: "string", description: "Ticker symbol (e.g. AAPL, MSFT)" } },
334
- required: ["symbol"],
335
- },
336
- handler: equityFundamentalOverviewHandler,
337
- },
338
- {
339
- name: "crypto_price_quote",
340
- description: "Get the latest cryptocurrency price quote. Accepts symbols like BTC, ETH, or BTC-USD.",
341
- inputSchema: {
342
- type: "object",
343
- properties: { symbol: { type: "string", description: "Crypto symbol (e.g. BTC, ETH, BTC-USD)" } },
344
- required: ["symbol"],
345
- },
346
- handler: cryptoPriceQuoteHandler,
347
- },
348
- {
349
- name: "crypto_price_historical",
350
- description: "Get historical daily price data for a cryptocurrency. Optionally filter by date range.",
351
- inputSchema: {
352
- type: "object",
353
- properties: {
354
- symbol: { type: "string", description: "Crypto symbol (e.g. BTC, ETH, BTC-USD)" },
355
- start_date: { type: "string", description: "Start date in YYYY-MM-DD format (inclusive)" },
356
- end_date: { type: "string", description: "End date in YYYY-MM-DD format (inclusive)" },
357
- },
358
- required: ["symbol"],
359
- },
360
- handler: cryptoPriceHistoricalHandler,
361
- },
362
- {
363
- name: "economy_gdp",
364
- description: "Get the latest GDP data for a country from the World Bank. Defaults to the US.",
365
- inputSchema: {
366
- type: "object",
367
- properties: { country: { type: "string", description: 'ISO 3166-1 alpha-2 country code (default "US")' } },
368
- },
369
- handler: economyGdpHandler,
370
- },
371
- {
372
- name: "economy_inflation",
373
- description: "Get the latest consumer price inflation rate (CPI) for a country from the World Bank. Defaults to the US.",
374
- inputSchema: {
375
- type: "object",
376
- properties: { country: { type: "string", description: 'ISO 3166-1 alpha-2 country code (default "US")' } },
377
- },
378
- handler: economyInflationHandler,
379
- },
380
- {
381
- name: "news_company",
382
- description: "Get recent news articles for a specific company/ticker symbol from Yahoo Finance.",
383
- inputSchema: {
384
- type: "object",
385
- properties: {
386
- symbol: { type: "string", description: "Ticker symbol (e.g. AAPL, TSLA)" },
387
- limit: { type: "number", description: "Maximum number of news items to return (default 10)" },
388
- },
389
- required: ["symbol"],
390
- },
391
- handler: newsCompanyHandler,
392
- },
393
- {
394
- name: "news_world",
395
- description: "Get world/market news headlines. Currently returns a placeholder — requires an external news API for full functionality.",
396
- inputSchema: {
397
- type: "object",
398
- properties: { limit: { type: "number", description: "Maximum number of news items to return (default 10)" } },
399
- },
400
- handler: newsWorldHandler,
401
- },
402
- ];
403
- //# sourceMappingURL=financialTools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"financialTools.js","sourceRoot":"","sources":["../../src/tools/financialTools.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Memory tools — persistent key-value store backed by local SQLite.
3
- */
4
- import type { McpTool } from "../types.js";
5
- export declare const memoryTools: McpTool[];
@@ -1,137 +0,0 @@
1
- /**
2
- * Memory tools — persistent key-value store backed by local SQLite.
3
- */
4
- import { getDb } from "../db.js";
5
- export const memoryTools = [
6
- {
7
- name: "writeAgentMemory",
8
- description: "Store intermediate results or data for later retrieval. Use this to avoid context window overflow.",
9
- inputSchema: {
10
- type: "object",
11
- properties: {
12
- key: {
13
- type: "string",
14
- description: "Unique key to store the data under (e.g., 'research_results')",
15
- },
16
- content: {
17
- type: "string",
18
- description: "Content to store (text, JSON string, markdown, etc.)",
19
- },
20
- metadata: {
21
- type: "object",
22
- description: "Optional metadata about the stored content",
23
- properties: {
24
- type: { type: "string", description: "Type of content" },
25
- source: { type: "string", description: "Source of the data" },
26
- timestamp: { type: "string", description: "When the data was created" },
27
- },
28
- },
29
- },
30
- required: ["key", "content"],
31
- },
32
- handler: async (args) => {
33
- const { key, content, metadata = {} } = args;
34
- if (!key || !content)
35
- throw new Error("Key and content are required");
36
- const db = getDb();
37
- const now = new Date().toISOString();
38
- const metaJson = JSON.stringify({ ...metadata, createdAt: now });
39
- db.prepare(`
40
- INSERT INTO memory (key, content, metadata, created_at, updated_at)
41
- VALUES (?, ?, ?, ?, ?)
42
- ON CONFLICT(key) DO UPDATE SET
43
- content = excluded.content,
44
- metadata = excluded.metadata,
45
- updated_at = excluded.updated_at
46
- `).run(key, content, metaJson, now, now);
47
- const row = db.prepare("SELECT id FROM memory WHERE key = ?").get(key);
48
- return {
49
- success: true,
50
- memoryId: row?.id,
51
- key,
52
- message: `Stored ${content.length} characters under key '${key}'`,
53
- };
54
- },
55
- },
56
- {
57
- name: "readAgentMemory",
58
- description: "Retrieve previously stored data by key.",
59
- inputSchema: {
60
- type: "object",
61
- properties: {
62
- key: { type: "string", description: "Key of the data to retrieve" },
63
- },
64
- required: ["key"],
65
- },
66
- handler: async (args) => {
67
- const db = getDb();
68
- const row = db.prepare("SELECT * FROM memory WHERE key = ?").get(args.key);
69
- if (!row)
70
- throw new Error(`No memory found for key: ${args.key}`);
71
- let metadata = {};
72
- try {
73
- metadata = JSON.parse(row.metadata || "{}");
74
- }
75
- catch { /* ignore */ }
76
- return {
77
- success: true,
78
- key: row.key,
79
- content: row.content,
80
- metadata,
81
- };
82
- },
83
- },
84
- {
85
- name: "listAgentMemory",
86
- description: "List all stored memory keys with their metadata.",
87
- inputSchema: {
88
- type: "object",
89
- properties: {
90
- filter: {
91
- type: "string",
92
- description: "Optional filter to match keys (substring match)",
93
- },
94
- },
95
- },
96
- handler: async (args) => {
97
- const db = getDb();
98
- const filter = args.filter ?? "";
99
- const rows = filter
100
- ? db.prepare("SELECT id, key, content, metadata FROM memory WHERE key LIKE ?").all(`%${filter}%`)
101
- : db.prepare("SELECT id, key, content, metadata FROM memory").all();
102
- const list = rows.map((e) => {
103
- let metadata = {};
104
- try {
105
- metadata = JSON.parse(e.metadata || "{}");
106
- }
107
- catch { /* ignore */ }
108
- return {
109
- key: e.key,
110
- memoryId: e.id,
111
- contentLength: (e.content ?? "").length,
112
- metadata,
113
- };
114
- });
115
- return { success: true, count: list.length, memories: list };
116
- },
117
- },
118
- {
119
- name: "deleteAgentMemory",
120
- description: "Delete stored memory by key.",
121
- inputSchema: {
122
- type: "object",
123
- properties: {
124
- key: { type: "string", description: "Key of the memory to delete" },
125
- },
126
- required: ["key"],
127
- },
128
- handler: async (args) => {
129
- const db = getDb();
130
- const result = db.prepare("DELETE FROM memory WHERE key = ?").run(args.key);
131
- if (result.changes === 0)
132
- throw new Error(`No memory found for key: ${args.key}`);
133
- return { success: true, message: `Deleted memory for key '${args.key}'` };
134
- },
135
- },
136
- ];
137
- //# sourceMappingURL=memoryTools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memoryTools.js","sourceRoot":"","sources":["../../src/tools/memoryTools.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Planning tools — create and manage task plans via local SQLite.
3
- */
4
- import type { McpTool } from "../types.js";
5
- export declare const planningTools: McpTool[];