fmp-ai-tools 0.0.4 → 0.0.5

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.
@@ -62,6 +62,34 @@ declare const stockTools: {
62
62
  getDividendHistory: ai.Tool<unknown, unknown>;
63
63
  };
64
64
 
65
+ declare const getCompanyProfile: ai.Tool<unknown, unknown>;
66
+ declare const getEarningsCalendar: ai.Tool<unknown, unknown>;
67
+ declare const getEconomicCalendar: ai.Tool<unknown, unknown>;
68
+ declare const getTreasuryRates: ai.Tool<unknown, unknown>;
69
+ declare const getEconomicIndicators: ai.Tool<unknown, unknown>;
70
+ declare const getETFHoldings: ai.Tool<unknown, unknown>;
71
+ declare const getETFProfile: ai.Tool<unknown, unknown>;
72
+ declare const getBalanceSheet: ai.Tool<unknown, unknown>;
73
+ declare const getIncomeStatement: ai.Tool<unknown, unknown>;
74
+ declare const getCashFlowStatement: ai.Tool<unknown, unknown>;
75
+ declare const getFinancialRatios: ai.Tool<unknown, unknown>;
76
+ declare const getInsiderTrading: ai.Tool<unknown, unknown>;
77
+ declare const getInstitutionalHolders: ai.Tool<unknown, unknown>;
78
+ declare const getMarketPerformance: ai.Tool<unknown, unknown>;
79
+ declare const getSectorPerformance: ai.Tool<unknown, unknown>;
80
+ declare const getGainers: ai.Tool<unknown, unknown>;
81
+ declare const getLosers: ai.Tool<unknown, unknown>;
82
+ declare const getMostActive: ai.Tool<unknown, unknown>;
83
+ declare const getStockQuote: ai.Tool<unknown, unknown>;
84
+ declare const getSenateTrading: ai.Tool<unknown, unknown>;
85
+ declare const getHouseTrading: ai.Tool<unknown, unknown>;
86
+ declare const getSenateTradingByName: ai.Tool<unknown, unknown>;
87
+ declare const getHouseTradingByName: ai.Tool<unknown, unknown>;
88
+ declare const getSenateTradingRSSFeed: ai.Tool<unknown, unknown>;
89
+ declare const getHouseTradingRSSFeed: ai.Tool<unknown, unknown>;
90
+ declare const getMarketCap: ai.Tool<unknown, unknown>;
91
+ declare const getStockSplits: ai.Tool<unknown, unknown>;
92
+ declare const getDividendHistory: ai.Tool<unknown, unknown>;
65
93
  declare const fmpTools: {
66
94
  readonly getMarketCap: ai.Tool<unknown, unknown>;
67
95
  readonly getStockSplits: ai.Tool<unknown, unknown>;
@@ -93,4 +121,4 @@ declare const fmpTools: {
93
121
  readonly getStockQuote: ai.Tool<unknown, unknown>;
94
122
  };
95
123
 
96
- export { calendarTools, companyTools, economicTools, etfTools, financialTools, fmpTools, insiderTools, institutionalTools, marketTools, quoteTools, senateHouseTools, stockTools };
124
+ export { calendarTools, companyTools, economicTools, etfTools, financialTools, fmpTools, getBalanceSheet, getCashFlowStatement, getCompanyProfile, getDividendHistory, getETFHoldings, getETFProfile, getEarningsCalendar, getEconomicCalendar, getEconomicIndicators, getFinancialRatios, getGainers, getHouseTrading, getHouseTradingByName, getHouseTradingRSSFeed, getIncomeStatement, getInsiderTrading, getInstitutionalHolders, getLosers, getMarketCap, getMarketPerformance, getMostActive, getSectorPerformance, getSenateTrading, getSenateTradingByName, getSenateTradingRSSFeed, getStockQuote, getStockSplits, getTreasuryRates, insiderTools, institutionalTools, marketTools, quoteTools, senateHouseTools, stockTools };
@@ -436,6 +436,24 @@ var stockTools = {
436
436
  };
437
437
 
438
438
  // src/providers/vercel-ai/index.ts
439
+ var { getCompanyProfile } = companyTools;
440
+ var { getEarningsCalendar, getEconomicCalendar } = calendarTools;
441
+ var { getTreasuryRates, getEconomicIndicators } = economicTools;
442
+ var { getETFHoldings, getETFProfile } = etfTools;
443
+ var { getBalanceSheet, getIncomeStatement, getCashFlowStatement, getFinancialRatios } = financialTools;
444
+ var { getInsiderTrading } = insiderTools;
445
+ var { getInstitutionalHolders } = institutionalTools;
446
+ var { getMarketPerformance, getSectorPerformance, getGainers, getLosers, getMostActive } = marketTools;
447
+ var { getStockQuote } = quoteTools;
448
+ var {
449
+ getSenateTrading,
450
+ getHouseTrading,
451
+ getSenateTradingByName,
452
+ getHouseTradingByName,
453
+ getSenateTradingRSSFeed,
454
+ getHouseTradingRSSFeed
455
+ } = senateHouseTools;
456
+ var { getMarketCap, getStockSplits, getDividendHistory } = stockTools;
439
457
  var fmpTools = {
440
458
  ...quoteTools,
441
459
  ...companyTools,
@@ -456,6 +474,34 @@ exports.economicTools = economicTools;
456
474
  exports.etfTools = etfTools;
457
475
  exports.financialTools = financialTools;
458
476
  exports.fmpTools = fmpTools;
477
+ exports.getBalanceSheet = getBalanceSheet;
478
+ exports.getCashFlowStatement = getCashFlowStatement;
479
+ exports.getCompanyProfile = getCompanyProfile;
480
+ exports.getDividendHistory = getDividendHistory;
481
+ exports.getETFHoldings = getETFHoldings;
482
+ exports.getETFProfile = getETFProfile;
483
+ exports.getEarningsCalendar = getEarningsCalendar;
484
+ exports.getEconomicCalendar = getEconomicCalendar;
485
+ exports.getEconomicIndicators = getEconomicIndicators;
486
+ exports.getFinancialRatios = getFinancialRatios;
487
+ exports.getGainers = getGainers;
488
+ exports.getHouseTrading = getHouseTrading;
489
+ exports.getHouseTradingByName = getHouseTradingByName;
490
+ exports.getHouseTradingRSSFeed = getHouseTradingRSSFeed;
491
+ exports.getIncomeStatement = getIncomeStatement;
492
+ exports.getInsiderTrading = getInsiderTrading;
493
+ exports.getInstitutionalHolders = getInstitutionalHolders;
494
+ exports.getLosers = getLosers;
495
+ exports.getMarketCap = getMarketCap;
496
+ exports.getMarketPerformance = getMarketPerformance;
497
+ exports.getMostActive = getMostActive;
498
+ exports.getSectorPerformance = getSectorPerformance;
499
+ exports.getSenateTrading = getSenateTrading;
500
+ exports.getSenateTradingByName = getSenateTradingByName;
501
+ exports.getSenateTradingRSSFeed = getSenateTradingRSSFeed;
502
+ exports.getStockQuote = getStockQuote;
503
+ exports.getStockSplits = getStockSplits;
504
+ exports.getTreasuryRates = getTreasuryRates;
459
505
  exports.insiderTools = insiderTools;
460
506
  exports.institutionalTools = institutionalTools;
461
507
  exports.marketTools = marketTools;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/types.ts","../../../src/utils/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 * Tool interface that matches the ai library's expected format\n * This is what the ai library produces when using their tool() function\n */\nexport interface Tool {\n type: 'function';\n function: {\n name: string;\n description: string;\n parameters: {\n type: 'object';\n properties: Record<string, any>;\n required: string[];\n };\n };\n execute: (args: any) => Promise<string>;\n}\n\n/**\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","import { z } from 'zod';\nimport { tool } from 'ai';\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,\n } as any); // Use type assertion to avoid deep type inference issues\n}\n","import { z } from 'zod';\nimport { getFMPClient } from '@/types';\nimport { createTool } from '@/utils/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/tool-wrapper';\nimport { getFMPClient } from '@/types';\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 '@/types';\nimport { createTool } from '@/utils/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/tool-wrapper';\nimport { getFMPClient } from '@/types';\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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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/tool-wrapper';\nimport { getFMPClient } from '@/types';\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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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","import { 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// 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"]}
1
+ {"version":3,"sources":["../../../src/types.ts","../../../src/utils/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 * Tool interface that matches the ai library's expected format\n * This is what the ai library produces when using their tool() function\n */\nexport interface Tool {\n type: 'function';\n function: {\n name: string;\n description: string;\n parameters: {\n type: 'object';\n properties: Record<string, any>;\n required: string[];\n };\n };\n execute: (args: any) => Promise<string>;\n}\n\n/**\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","import { z } from 'zod';\nimport { tool } from 'ai';\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,\n } as any); // Use type assertion to avoid deep type inference issues\n}\n","import { z } from 'zod';\nimport { getFMPClient } from '@/types';\nimport { createTool } from '@/utils/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/tool-wrapper';\nimport { getFMPClient } from '@/types';\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 '@/types';\nimport { createTool } from '@/utils/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/tool-wrapper';\nimport { getFMPClient } from '@/types';\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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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/tool-wrapper';\nimport { getFMPClient } from '@/types';\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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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"]}
@@ -434,6 +434,24 @@ var stockTools = {
434
434
  };
435
435
 
436
436
  // src/providers/vercel-ai/index.ts
437
+ var { getCompanyProfile } = companyTools;
438
+ var { getEarningsCalendar, getEconomicCalendar } = calendarTools;
439
+ var { getTreasuryRates, getEconomicIndicators } = economicTools;
440
+ var { getETFHoldings, getETFProfile } = etfTools;
441
+ var { getBalanceSheet, getIncomeStatement, getCashFlowStatement, getFinancialRatios } = financialTools;
442
+ var { getInsiderTrading } = insiderTools;
443
+ var { getInstitutionalHolders } = institutionalTools;
444
+ var { getMarketPerformance, getSectorPerformance, getGainers, getLosers, getMostActive } = marketTools;
445
+ var { getStockQuote } = quoteTools;
446
+ var {
447
+ getSenateTrading,
448
+ getHouseTrading,
449
+ getSenateTradingByName,
450
+ getHouseTradingByName,
451
+ getSenateTradingRSSFeed,
452
+ getHouseTradingRSSFeed
453
+ } = senateHouseTools;
454
+ var { getMarketCap, getStockSplits, getDividendHistory } = stockTools;
437
455
  var fmpTools = {
438
456
  ...quoteTools,
439
457
  ...companyTools,
@@ -448,6 +466,6 @@ var fmpTools = {
448
466
  ...stockTools
449
467
  };
450
468
 
451
- export { calendarTools, companyTools, economicTools, etfTools, financialTools, fmpTools, insiderTools, institutionalTools, marketTools, quoteTools, senateHouseTools, stockTools };
469
+ export { calendarTools, companyTools, economicTools, etfTools, financialTools, fmpTools, getBalanceSheet, getCashFlowStatement, getCompanyProfile, getDividendHistory, getETFHoldings, getETFProfile, getEarningsCalendar, getEconomicCalendar, getEconomicIndicators, getFinancialRatios, getGainers, getHouseTrading, getHouseTradingByName, getHouseTradingRSSFeed, getIncomeStatement, getInsiderTrading, getInstitutionalHolders, getLosers, getMarketCap, getMarketPerformance, getMostActive, getSectorPerformance, getSenateTrading, getSenateTradingByName, getSenateTradingRSSFeed, getStockQuote, getStockSplits, getTreasuryRates, insiderTools, institutionalTools, marketTools, quoteTools, senateHouseTools, stockTools };
452
470
  //# sourceMappingURL=index.mjs.map
453
471
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/types.ts","../../../src/utils/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":["z"],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * Tool interface that matches the ai library's expected format\n * This is what the ai library produces when using their tool() function\n */\nexport interface Tool {\n type: 'function';\n function: {\n name: string;\n description: string;\n parameters: {\n type: 'object';\n properties: Record<string, any>;\n required: string[];\n };\n };\n execute: (args: any) => Promise<string>;\n}\n\n/**\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","import { z } from 'zod';\nimport { tool } from 'ai';\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,\n } as any); // Use type assertion to avoid deep type inference issues\n}\n","import { z } from 'zod';\nimport { getFMPClient } from '@/types';\nimport { createTool } from '@/utils/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/tool-wrapper';\nimport { getFMPClient } from '@/types';\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 '@/types';\nimport { createTool } from '@/utils/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/tool-wrapper';\nimport { getFMPClient } from '@/types';\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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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/tool-wrapper';\nimport { getFMPClient } from '@/types';\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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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","import { 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// 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"]}
1
+ {"version":3,"sources":["../../../src/types.ts","../../../src/utils/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":["z"],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * Tool interface that matches the ai library's expected format\n * This is what the ai library produces when using their tool() function\n */\nexport interface Tool {\n type: 'function';\n function: {\n name: string;\n description: string;\n parameters: {\n type: 'object';\n properties: Record<string, any>;\n required: string[];\n };\n };\n execute: (args: any) => Promise<string>;\n}\n\n/**\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","import { z } from 'zod';\nimport { tool } from 'ai';\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,\n } as any); // Use type assertion to avoid deep type inference issues\n}\n","import { z } from 'zod';\nimport { getFMPClient } from '@/types';\nimport { createTool } from '@/utils/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/tool-wrapper';\nimport { getFMPClient } from '@/types';\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 '@/types';\nimport { createTool } from '@/utils/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/tool-wrapper';\nimport { getFMPClient } from '@/types';\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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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/tool-wrapper';\nimport { getFMPClient } from '@/types';\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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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 '@/types';\nimport { createTool } from '@/utils/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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fmp-ai-tools",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "AI tools for FMP Node API - compatible with Vercel AI SDK, Langchain, OpenAI, and more",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -15,6 +15,11 @@
15
15
  "types": "./dist/providers/vercel-ai/index.d.ts",
16
16
  "import": "./dist/providers/vercel-ai/index.mjs",
17
17
  "require": "./dist/providers/vercel-ai/index.js"
18
+ },
19
+ "./openai": {
20
+ "types": "./dist/providers/openai/index.d.ts",
21
+ "import": "./dist/providers/openai/index.mjs",
22
+ "require": "./dist/providers/openai/index.js"
18
23
  }
19
24
  },
20
25
  "sideEffects": false,
@@ -41,6 +46,7 @@
41
46
  },
42
47
  "homepage": "https://fmp-node-wrapper-docs.vercel.app",
43
48
  "dependencies": {
49
+ "@openai/agents": "^0.0.15",
44
50
  "ai": "^5.0.5",
45
51
  "zod": "^3.25.76",
46
52
  "fmp-node-api": "0.1.2"