fmp-ai-tools 0.0.1-1.beta.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client.ts","../../../src/utils/logger.ts","../../../src/utils/aisdk-tool-wrapper.ts","../../../src/providers/vercel-ai/quote.ts","../../../src/providers/vercel-ai/company.ts","../../../src/providers/vercel-ai/financial.ts","../../../src/providers/vercel-ai/calendar.ts","../../../src/providers/vercel-ai/economic.ts","../../../src/providers/vercel-ai/etf.ts","../../../src/providers/vercel-ai/insider.ts","../../../src/providers/vercel-ai/institutional.ts","../../../src/providers/vercel-ai/market.ts","../../../src/providers/vercel-ai/senate-house.ts","../../../src/providers/vercel-ai/stock.ts","../../../src/providers/vercel-ai/index.ts"],"names":["FMP","tool","z"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Internal FMP API client instance\n * Used internally by the tools, not exported publicly\n */\nimport { FMP } from 'fmp-node-api';\n\n// Create a function to get the FMP client instance (internal use only)\nexport function getFMPClient() {\n return new FMP();\n}\n","/**\n * Logger utility for tools package\n * Controls logging of API results based on environment variable\n */\n\ninterface LogOptions {\n toolName: string;\n input: unknown;\n result: unknown;\n executionTime?: number;\n}\n\n/**\n * Check if API result logging is enabled via environment variable\n * Defaults to false if not set\n */\nexport function isApiLoggingEnabled(): boolean {\n return process.env.FMP_TOOLS_LOG_API_RESULTS === 'true';\n}\n\n/**\n * Check if data-only logging is enabled via environment variable\n * Defaults to false if not set\n */\nexport function isDataOnlyLoggingEnabled(): boolean {\n return process.env.FMP_TOOLS_LOG_DATA_ONLY === 'true';\n}\n\n/**\n * Estimate token count for LLM context (JSON-optimized)\n * JSON has many structural characters that count as single tokens\n */\nfunction estimateTokenCount(text: string): number {\n // Try to parse as JSON first for better estimation\n try {\n const parsed = JSON.parse(text);\n return estimateTokenCountForData(parsed);\n } catch {\n // Not JSON, use text-based estimation\n return estimateTokenCountForText(text);\n }\n}\n\n/**\n * Estimate tokens for parsed JSON data\n */\nfunction estimateTokenCountForData(data: unknown): number {\n if (data === null || data === undefined) {\n return 1; // null/undefined is typically 1 token\n }\n\n if (typeof data === 'string') {\n // Strings are typically tokenized by words/symbols\n // Financial data often has short strings like \"AAPL\", \"USD\", etc.\n return Math.ceil(data.length / 3); // More conservative for short strings\n }\n\n if (typeof data === 'number') {\n // Numbers are typically 1-2 tokens depending on size\n return data.toString().length > 10 ? 2 : 1;\n }\n\n if (typeof data === 'boolean') {\n return 1; // true/false are single tokens\n }\n\n if (Array.isArray(data)) {\n // Arrays: count structural tokens + content tokens\n let tokens = 2; // [ and ]\n for (const item of data) {\n tokens += estimateTokenCountForData(item);\n if (data.indexOf(item) < data.length - 1) {\n tokens += 1; // comma separator\n }\n }\n return tokens;\n }\n\n if (typeof data === 'object') {\n // Objects: count structural tokens + key-value pairs\n let tokens = 2; // { and }\n const keys = Object.keys(data);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = (data as Record<string, unknown>)[key];\n\n // Key (quoted string)\n tokens += Math.ceil(key.length / 3);\n tokens += 2; // quotes around key\n\n // Colon separator\n tokens += 1;\n\n // Value\n tokens += estimateTokenCountForData(value);\n\n // Comma separator (except for last item)\n if (i < keys.length - 1) {\n tokens += 1;\n }\n }\n return tokens;\n }\n\n return 1; // fallback\n}\n\n/**\n * Estimate tokens for plain text (non-JSON)\n */\nfunction estimateTokenCountForText(text: string): number {\n // For plain text, use a more conservative estimate\n // Consider that financial data often has numbers, symbols, and abbreviations\n const words = text.split(/\\s+/).filter(word => word.length > 0);\n let tokens = 0;\n\n for (const word of words) {\n if (/^\\d+$/.test(word)) {\n // Pure numbers are typically 1-2 tokens\n tokens += word.length > 8 ? 2 : 1;\n } else if (/^[A-Z]+$/.test(word)) {\n // All caps (like stock symbols) are often single tokens\n tokens += 1;\n } else if (/^\\$[\\d,]+\\.?\\d*$/.test(word)) {\n // Currency amounts are typically 2-3 tokens\n tokens += 3;\n } else {\n // Regular words: roughly 3-4 characters per token\n tokens += Math.ceil(word.length / 3.5);\n }\n }\n\n return tokens;\n}\n\n/**\n * Get simple metadata about the result for LLM context\n */\nfunction getResultInfo(result: unknown): string {\n if (result === null || result === undefined) {\n return 'null/undefined';\n }\n\n if (typeof result === 'string') {\n const tokenCount = estimateTokenCount(result);\n try {\n const parsed = JSON.parse(result);\n if (Array.isArray(parsed)) {\n return `JSON string (array of ${parsed.length} items, ~${tokenCount} tokens)`;\n }\n } catch {\n // Not JSON\n }\n return `string (${result.length} chars, ~${tokenCount} tokens)`;\n }\n\n if (Array.isArray(result)) {\n const jsonStr = JSON.stringify(result);\n const tokenCount = estimateTokenCount(jsonStr);\n return `array (${result.length} items, ~${tokenCount} tokens)`;\n }\n\n if (typeof result === 'object') {\n const jsonStr = JSON.stringify(result);\n const tokenCount = estimateTokenCount(jsonStr);\n return `object (~${tokenCount} tokens)`;\n }\n\n return typeof result;\n}\n\n/**\n * Log API tool execution details when enabled\n */\nexport function logApiExecution(options: LogOptions): void {\n if (!isApiLoggingEnabled()) {\n return;\n }\n\n const { toolName, input, result, executionTime } = options;\n\n console.log('\\n' + '='.repeat(80));\n console.log(`🔧 FMP Tool Execution: ${toolName}`);\n console.log('='.repeat(80));\n\n console.log('\\n📥 Input:');\n console.log(JSON.stringify(input, null, 2));\n\n const resultInfo = getResultInfo(result);\n\n console.log(`🔧 ${toolName}: ${resultInfo}`);\n\n if (executionTime !== undefined) {\n console.log(`\\n⏱️ Execution Time: ${executionTime}ms`);\n }\n\n console.log('='.repeat(80) + '\\n');\n}\n\n/**\n * Log data-only information for LLM context (when enabled)\n */\nexport function logDataOnly(options: LogOptions): void {\n if (!isDataOnlyLoggingEnabled()) {\n return;\n }\n\n const { result } = options;\n\n console.log('\\n📤 Result:');\n if (typeof result === 'string') {\n try {\n // Try to parse and pretty-print if it's JSON\n const parsed = JSON.parse(result);\n console.log(JSON.stringify(parsed, null, 2));\n } catch {\n // If not JSON, log as-is\n console.log(result);\n }\n } else {\n console.log(JSON.stringify(result, null, 2));\n }\n\n console.log('='.repeat(80) + '\\n');\n}\n\n/**\n * Log API tool execution with timing\n */\nexport async function logApiExecutionWithTiming<T>(\n toolName: string,\n input: unknown,\n executeFn: () => Promise<T>,\n): Promise<T> {\n const startTime = Date.now();\n\n try {\n const result = await executeFn();\n const executionTime = Date.now() - startTime;\n\n logApiExecution({\n toolName,\n input,\n result,\n executionTime,\n });\n\n // Also log data-only info if enabled\n logDataOnly({\n toolName,\n input,\n result,\n executionTime,\n });\n\n return result;\n } catch (error) {\n const executionTime = Date.now() - startTime;\n\n // Log error case as well\n if (isApiLoggingEnabled()) {\n console.log('\\n' + '='.repeat(80));\n console.log(`❌ FMP Tool Execution Error: ${toolName}`);\n console.log('='.repeat(80));\n console.log('\\n📥 Input:');\n console.log(JSON.stringify(input, null, 2));\n console.log('\\n❌ Error:');\n console.log(error instanceof Error ? error.message : String(error));\n console.log(`\\n⏱️ Execution Time: ${executionTime}ms`);\n console.log('='.repeat(80) + '\\n');\n }\n\n throw error;\n }\n}\n","import { z } from 'zod';\nimport { tool } from 'ai';\nimport { logApiExecutionWithTiming } from './logger';\n\n// Tool configuration interface for AI SDK v2\nexport interface ToolConfig<T extends z.ZodType> {\n name: string;\n description: string;\n inputSchema: T;\n execute: (args: z.infer<T>) => Promise<string>;\n}\n\n// AI SDK v2 compatible tool creator using the ai library's tool function\nexport function createTool<T extends z.ZodType>(config: ToolConfig<T>) {\n const { name, description, inputSchema, execute } = config;\n\n // Use the AI SDK's tool function to create a compatible tool\n return tool({\n name,\n description,\n inputSchema,\n execute: async (args: z.infer<T>) => {\n return await logApiExecutionWithTiming(name, args, () => execute(args));\n },\n } as any); // Use type assertion to avoid deep type inference issues\n}\n","import { z } from 'zod';\nimport { getFMPClient } from '@/client';\nimport { createTool } from '@/utils/aisdk-tool-wrapper';\n\nexport const quoteTools = {\n getStockQuote: createTool({\n name: 'getStockQuote',\n description: 'Get the stock quote for a company',\n inputSchema: z.object({\n symbol: z.string().describe('The symbol of the company to get the stock quote for'),\n }),\n execute: async ({ symbol }) => {\n const fmp = getFMPClient();\n const stockQuote = await fmp.quote.getQuote(symbol);\n const response = JSON.stringify(stockQuote.data, null, 2);\n return response;\n },\n }),\n};\n","import { z } from 'zod';\nimport { createTool } from '@/utils/aisdk-tool-wrapper';\nimport { getFMPClient } from '@/client';\n\nexport const companyTools = {\n getCompanyProfile: createTool({\n name: 'getCompanyProfile',\n description: 'Get the company profile',\n inputSchema: z.object({\n symbol: z.string().describe('The stock ticker symbol (e.g., AAPL)'),\n }),\n execute: async ({ symbol }) => {\n const fmp = getFMPClient();\n const companyProfile = await fmp.company.getCompanyProfile(symbol);\n const response = JSON.stringify(companyProfile.data, null, 2);\n return response;\n },\n }),\n};\n","import { z } from 'zod';\nimport { getFMPClient } from '@/client';\nimport { createTool } from '@/utils/aisdk-tool-wrapper';\n\nexport const financialTools = {\n getBalanceSheet: createTool({\n name: 'getBalanceSheet',\n description: 'Get balance sheet for a company',\n inputSchema: z.object({\n symbol: z.string().describe('The stock symbol to get balance sheet for'),\n period: z\n .enum(['annual', 'quarter'])\n .default('annual')\n .describe('The period type (annual or quarter)'),\n }),\n execute: async ({ symbol, period }) => {\n const fmp = getFMPClient();\n const balanceSheet = await fmp.financial.getBalanceSheet({ symbol, period });\n const response = JSON.stringify(balanceSheet.data, null, 2);\n return response;\n },\n }),\n\n getIncomeStatement: createTool({\n name: 'getIncomeStatement',\n description: 'Get income statement for a company',\n inputSchema: z.object({\n symbol: z.string().describe('The stock symbol to get income statement for'),\n period: z\n .enum(['annual', 'quarter'])\n .default('annual')\n .describe('The period type (annual or quarter)'),\n }),\n execute: async ({ symbol, period }) => {\n const fmp = getFMPClient();\n const incomeStatement = await fmp.financial.getIncomeStatement({ symbol, period });\n const response = JSON.stringify(incomeStatement.data, null, 2);\n return response;\n },\n }),\n\n getCashFlowStatement: createTool({\n name: 'getCashFlowStatement',\n description: 'Get cash flow statement for a company',\n inputSchema: z.object({\n symbol: z.string().describe('The stock symbol to get cash flow statement for'),\n period: z\n .enum(['annual', 'quarter'])\n .default('annual')\n .describe('The period type (annual or quarter)'),\n }),\n execute: async ({ symbol, period }) => {\n const fmp = getFMPClient();\n const cashFlowStatement = await fmp.financial.getCashFlowStatement({ symbol, period });\n const response = JSON.stringify(cashFlowStatement.data, null, 2);\n return response;\n },\n }),\n\n getFinancialRatios: createTool({\n name: 'getFinancialRatios',\n description: 'Get financial ratios for a company',\n inputSchema: z.object({\n symbol: z.string().describe('The stock symbol to get financial ratios for'),\n period: z\n .enum(['annual', 'quarter'])\n .default('annual')\n .describe('The period type (annual or quarter)'),\n }),\n execute: async ({ symbol, period }) => {\n const fmp = getFMPClient();\n const financialRatios = await fmp.financial.getFinancialRatios({ symbol, period });\n const response = JSON.stringify(financialRatios.data, null, 2);\n return response;\n },\n }),\n};\n","import { z } from 'zod';\nimport { createTool } from '@/utils/aisdk-tool-wrapper';\nimport { getFMPClient } from '@/client';\n\nexport const calendarTools = {\n getEarningsCalendar: createTool({\n name: 'getEarningsCalendar',\n description: 'Get earnings calendar',\n inputSchema: z.object({\n from: z.string().optional().describe('Start date in YYYY-MM-DD format'),\n to: z.string().optional().describe('End date in YYYY-MM-DD format'),\n }),\n execute: async ({ from, to }) => {\n const fmp = getFMPClient();\n const earningsCalendar = await fmp.calendar.getEarningsCalendar({ from, to });\n const response = JSON.stringify(earningsCalendar.data, null, 2);\n return response;\n },\n }),\n\n getEconomicCalendar: createTool({\n name: 'getEconomicCalendar',\n description: 'Get economic calendar',\n inputSchema: z.object({\n from: z.string().optional().describe('Start date in YYYY-MM-DD format'),\n to: z.string().optional().describe('End date in YYYY-MM-DD format'),\n }),\n execute: async ({ from, to }) => {\n const fmp = getFMPClient();\n const economicCalendar = await fmp.calendar.getEconomicsCalendar({ from, to });\n const response = JSON.stringify(economicCalendar.data, null, 2);\n return response;\n },\n }),\n};\n","import { z } from 'zod';\nimport { getFMPClient } from '@/client';\nimport { createTool } from '@/utils/aisdk-tool-wrapper';\n\nexport const economicTools = {\n getTreasuryRates: createTool({\n name: 'getTreasuryRates',\n description: 'Get treasury rates',\n inputSchema: z.object({\n from: z.string().optional().describe('Start date in YYYY-MM-DD format'),\n to: z.string().optional().describe('End date in YYYY-MM-DD format'),\n }),\n execute: async ({ from, to }) => {\n const fmp = getFMPClient();\n const treasuryRates = await fmp.economic.getTreasuryRates({ from, to });\n const response = JSON.stringify(treasuryRates.data, null, 2);\n return response;\n },\n }),\n\n getEconomicIndicators: createTool({\n name: 'getEconomicIndicators',\n description: 'Get economic indicators',\n inputSchema: z.object({\n name: z\n .enum([\n 'GDP',\n 'realGDP',\n 'nominalPotentialGDP',\n 'realGDPPerCapita',\n 'federalFunds',\n 'CPI',\n 'inflationRate',\n 'inflation',\n 'retailSales',\n 'consumerSentiment',\n 'durableGoods',\n 'unemploymentRate',\n 'totalNonfarmPayroll',\n 'initialClaims',\n 'industrialProductionTotalIndex',\n 'newPrivatelyOwnedHousingUnitsStartedTotalUnits',\n 'totalVehicleSales',\n 'retailMoneyFunds',\n 'smoothedUSRecessionProbabilities',\n '3MonthOr90DayRatesAndYieldsCertificatesOfDeposit',\n 'commercialBankInterestRateOnCreditCardPlansAllAccounts',\n '30YearFixedRateMortgageAverage',\n '15YearFixedRateMortgageAverage',\n ])\n .describe('The name of the economic indicator'),\n from: z.string().optional().describe('Start date in YYYY-MM-DD format'),\n to: z.string().optional().describe('End date in YYYY-MM-DD format'),\n }),\n execute: async ({ name, from, to }) => {\n const fmp = getFMPClient();\n const economicIndicators = await fmp.economic.getEconomicIndicators({ name, from, to });\n const response = JSON.stringify(economicIndicators.data, null, 2);\n return response;\n },\n }),\n};\n","import { z } from 'zod';\nimport { getFMPClient } from '@/client';\nimport { createTool } from '@/utils/aisdk-tool-wrapper';\n\nexport const etfTools = {\n getETFHoldings: createTool({\n name: 'getETFHoldings',\n description: 'Get ETF holdings for a specific ETF symbol',\n inputSchema: z.object({\n symbol: z.string().describe('ETF symbol (e.g., SPY, QQQ, VTI)'),\n date: z.string().optional().describe('Date for holdings (YYYY-MM-DD format)'),\n }),\n execute: async ({ symbol, date }) => {\n const fmp = getFMPClient();\n const params: any = { symbol };\n if (date) {\n params.date = date;\n }\n const etfHoldings = await fmp.etf.getHoldings(params);\n const response = JSON.stringify(etfHoldings.data, null, 2);\n return response;\n },\n }),\n\n getETFProfile: createTool({\n name: 'getETFProfile',\n description: 'Get ETF profile information',\n inputSchema: z.object({\n symbol: z.string().describe('ETF symbol (e.g., SPY, QQQ, VTI)'),\n }),\n execute: async ({ symbol }) => {\n const fmp = getFMPClient();\n const etfProfile = await fmp.etf.getProfile(symbol);\n const response = JSON.stringify(etfProfile.data, null, 2);\n return response;\n },\n }),\n};\n","import { z } from 'zod';\nimport { createTool } from '@/utils/aisdk-tool-wrapper';\nimport { getFMPClient } from '@/client';\n\nexport const insiderTools = {\n getInsiderTrading: createTool({\n name: 'getInsiderTrading',\n description: 'Get insider trading data for a specific stock symbol',\n inputSchema: z.object({\n symbol: z.string().describe('Stock symbol (e.g., AAPL, MSFT, GOOGL)'),\n page: z.number().default(0).describe('Page number for pagination'),\n }),\n execute: async ({ symbol, page }) => {\n const fmp = getFMPClient();\n const insiderTrading = await fmp.insider.getInsiderTradesBySymbol(symbol, page);\n const response = JSON.stringify(insiderTrading.data, null, 2);\n return response;\n },\n }),\n};\n","import { z } from 'zod';\nimport { getFMPClient } from '@/client';\nimport { createTool } from '@/utils/aisdk-tool-wrapper';\n\nexport const institutionalTools = {\n getInstitutionalHolders: createTool({\n name: 'getInstitutionalHolders',\n description: 'Get institutional holders for a specific stock symbol',\n inputSchema: z.object({\n symbol: z.string().describe('Stock symbol (e.g., AAPL, MSFT, GOOGL)'),\n }),\n execute: async ({ symbol }) => {\n const fmp = getFMPClient();\n const institutionalHolders = await fmp.institutional.getInstitutionalHolders({ symbol });\n const response = JSON.stringify(institutionalHolders.data, null, 2);\n return response;\n },\n }),\n};\n","import { z } from 'zod';\nimport { getFMPClient } from '@/client';\nimport { createTool } from '@/utils/aisdk-tool-wrapper';\n\nexport const marketTools = {\n getMarketPerformance: createTool({\n name: 'getMarketPerformance',\n description: 'Get overall market performance data',\n inputSchema: z.object({}),\n execute: async () => {\n const fmp = getFMPClient();\n const marketPerformance = await fmp.market.getMarketPerformance();\n const response = JSON.stringify(marketPerformance.data, null, 2);\n return response;\n },\n }),\n\n getSectorPerformance: createTool({\n name: 'getSectorPerformance',\n description: 'Get sector performance data',\n inputSchema: z.object({}),\n execute: async () => {\n const fmp = getFMPClient();\n const sectorPerformance = await fmp.market.getSectorPerformance();\n const response = JSON.stringify(sectorPerformance.data, null, 2);\n return response;\n },\n }),\n\n getGainers: createTool({\n name: 'getGainers',\n description: 'Get top gaining stocks',\n inputSchema: z.object({}),\n execute: async () => {\n const fmp = getFMPClient();\n const gainers = await fmp.market.getGainers();\n const response = JSON.stringify(gainers.data, null, 2);\n return response;\n },\n }),\n\n getLosers: createTool({\n name: 'getLosers',\n description: 'Get top losing stocks',\n inputSchema: z.object({}),\n execute: async () => {\n const fmp = getFMPClient();\n const losers = await fmp.market.getLosers();\n const response = JSON.stringify(losers.data, null, 2);\n return response;\n },\n }),\n\n getMostActive: createTool({\n name: 'getMostActive',\n description: 'Get most active stocks',\n inputSchema: z.object({}),\n execute: async () => {\n const fmp = getFMPClient();\n const mostActive = await fmp.market.getMostActive();\n const response = JSON.stringify(mostActive.data, null, 2);\n return response;\n },\n }),\n};\n","import { z } from 'zod';\nimport { getFMPClient } from '@/client';\nimport { createTool } from '@/utils/aisdk-tool-wrapper';\n\nexport const senateHouseTools = {\n getSenateTrading: createTool({\n name: 'getSenateTrading',\n description: 'Get senate trading data for a specific stock symbol',\n inputSchema: z.object({\n symbol: z.string().describe('Stock symbol (e.g., AAPL, MSFT, GOOGL)'),\n }),\n execute: async ({ symbol }) => {\n const fmp = getFMPClient();\n const senateTrading = await fmp.senateHouse.getSenateTrading({ symbol });\n const response = JSON.stringify(senateTrading.data, null, 2);\n return response;\n },\n }),\n\n getHouseTrading: createTool({\n name: 'getHouseTrading',\n description: 'Get house trading data for a specific stock symbol',\n inputSchema: z.object({\n symbol: z.string().describe('Stock symbol (e.g., AAPL, MSFT, GOOGL)'),\n }),\n execute: async ({ symbol }) => {\n const fmp = getFMPClient();\n const houseTrading = await fmp.senateHouse.getHouseTrading({ symbol });\n const response = JSON.stringify(houseTrading.data, null, 2);\n return response;\n },\n }),\n\n getSenateTradingByName: createTool({\n name: 'getSenateTradingByName',\n description: 'Get senate trading data for a specific senator by name',\n inputSchema: z.object({\n name: z.string().describe('The name of the senator to get trading data for'),\n }),\n execute: async ({ name }) => {\n const fmp = getFMPClient();\n const senateTradingByName = await fmp.senateHouse.getSenateTradingByName({ name });\n const response = JSON.stringify(senateTradingByName.data, null, 2);\n return response;\n },\n }),\n\n getHouseTradingByName: createTool({\n name: 'getHouseTradingByName',\n description: 'Get house trading data for a specific representative by name',\n inputSchema: z.object({\n name: z.string().describe('The name of the representative to get trading data for'),\n }),\n execute: async ({ name }) => {\n const fmp = getFMPClient();\n const houseTradingByName = await fmp.senateHouse.getHouseTradingByName({ name });\n const response = JSON.stringify(houseTradingByName.data, null, 2);\n return response;\n },\n }),\n\n getSenateTradingRSSFeed: createTool({\n name: 'getSenateTradingRSSFeed',\n description: 'Get senate trading data through RSS feed with pagination',\n inputSchema: z.object({\n page: z.number().default(0).describe('Page number for pagination'),\n }),\n execute: async ({ page = 0 }) => {\n const fmp = getFMPClient();\n const senateTradingRSSFeed = await fmp.senateHouse.getSenateTradingRSSFeed({ page });\n const response = JSON.stringify(senateTradingRSSFeed.data, null, 2);\n return response;\n },\n }),\n\n getHouseTradingRSSFeed: createTool({\n name: 'getHouseTradingRSSFeed',\n description: 'Get house trading data through RSS feed with pagination',\n inputSchema: z.object({\n page: z.number().default(0).describe('Page number for pagination'),\n }),\n execute: async ({ page = 0 }) => {\n const fmp = getFMPClient();\n const houseTradingRSSFeed = await fmp.senateHouse.getHouseTradingRSSFeed({ page });\n const response = JSON.stringify(houseTradingRSSFeed.data, null, 2);\n return response;\n },\n }),\n};\n","import { z } from 'zod';\nimport { getFMPClient } from '@/client';\nimport { createTool } from '@/utils/aisdk-tool-wrapper';\n\nexport const stockTools = {\n getMarketCap: createTool({\n name: 'getMarketCap',\n description: 'Get market capitalization for a company',\n inputSchema: z.object({\n symbol: z.string().describe('The stock symbol to get market cap for'),\n }),\n execute: async ({ symbol }) => {\n const fmp = getFMPClient();\n const marketCap = await fmp.stock.getMarketCap(symbol);\n const response = JSON.stringify(marketCap.data, null, 2);\n return response;\n },\n }),\n\n getStockSplits: createTool({\n name: 'getStockSplits',\n description: 'Get stock splits history for a company',\n inputSchema: z.object({\n symbol: z.string().describe('The stock symbol to get stock splits for'),\n }),\n execute: async ({ symbol }) => {\n const fmp = getFMPClient();\n const stockSplits = await fmp.stock.getStockSplits(symbol);\n const response = JSON.stringify(stockSplits.data, null, 2);\n return response;\n },\n }),\n\n getDividendHistory: createTool({\n name: 'getDividendHistory',\n description: 'Get dividend history for a company',\n inputSchema: z.object({\n symbol: z.string().describe('The stock symbol to get dividend history for'),\n }),\n execute: async ({ symbol }) => {\n const fmp = getFMPClient();\n const dividendHistory = await fmp.stock.getDividendHistory(symbol);\n const response = JSON.stringify(dividendHistory.data, null, 2);\n return response;\n },\n }),\n};\n","/* istanbul ignore file */\nimport { quoteTools } from './quote';\nimport { companyTools } from './company';\nimport { financialTools } from './financial';\nimport { calendarTools } from './calendar';\nimport { economicTools } from './economic';\nimport { etfTools } from './etf';\nimport { insiderTools } from './insider';\nimport { institutionalTools } from './institutional';\nimport { marketTools } from './market';\nimport { senateHouseTools } from './senate-house';\nimport { stockTools } from './stock';\n\n// Export individual tools for Vercel AI\nexport const { getCompanyProfile } = companyTools;\n\nexport const { getEarningsCalendar, getEconomicCalendar } = calendarTools;\n\nexport const { getTreasuryRates, getEconomicIndicators } = economicTools;\n\nexport const { getETFHoldings, getETFProfile } = etfTools;\n\nexport const { getBalanceSheet, getIncomeStatement, getCashFlowStatement, getFinancialRatios } =\n financialTools;\n\nexport const { getInsiderTrading } = insiderTools;\n\nexport const { getInstitutionalHolders } = institutionalTools;\n\nexport const { getMarketPerformance, getSectorPerformance, getGainers, getLosers, getMostActive } =\n marketTools;\n\nexport const { getStockQuote } = quoteTools;\n\nexport const {\n getSenateTrading,\n getHouseTrading,\n getSenateTradingByName,\n getHouseTradingByName,\n getSenateTradingRSSFeed,\n getHouseTradingRSSFeed,\n} = senateHouseTools;\n\nexport const { getMarketCap, getStockSplits, getDividendHistory } = stockTools;\n\n// Combine all tools into a single object for AI SDK v2\nexport const fmpTools = {\n ...quoteTools,\n ...companyTools,\n ...financialTools,\n ...calendarTools,\n ...economicTools,\n ...etfTools,\n ...insiderTools,\n ...institutionalTools,\n ...marketTools,\n ...senateHouseTools,\n ...stockTools,\n} as const;\n\n// Re-export individual tool groups\nexport {\n quoteTools,\n companyTools,\n financialTools,\n calendarTools,\n economicTools,\n etfTools,\n insiderTools,\n institutionalTools,\n marketTools,\n senateHouseTools,\n stockTools,\n};\n\n// Re-export types\nexport type { ToolSet } from 'ai';\n"]}