/** * optimize_portfolio Tool * * Portfolio optimization with rebalancing recommendations using rate-limited vault queries. * Analyzes current holdings and provides optimal allocation strategy based on * per-vault historical data (price history and performance metrics). * * Implementation: * - Executes rate-limited parallel GraphQL queries (one per vault) using rateLimitedMap * - Max 2 concurrent requests to prevent 429 rate limit errors * - Each vault gets up to 1000 transactions of historical data * - Processes per-vault price history for accurate volatility calculation * - Uses per-vault performance data for expected APR estimation * * Use cases: * - Portfolio rebalancing and optimization * - Risk-adjusted allocation strategies (equal_weight, risk_parity, max_sharpe, min_variance) * - Diversification improvement * - Performance enhancement through optimal weighting * - Performance: ~800-1200 tokens per optimization (scales with vault count) * * Cache strategy: * - 30-minute TTL (balances freshness with stability) * - Cache key: portfolio_optimization:{chainId}:{vaultAddresses}:{strategy} * - Cache hit rate target: 70-80% * - Cache tags: [CacheTag.PORTFOLIO, CacheTag.ANALYTICS] for invalidation */ import { CallToolResult } from '@modelcontextprotocol/sdk/types.js'; import { OptimizePortfolioInput } from '../utils/validators.js'; import { ServiceContainer } from '../core/container.js'; /** * Create the executeOptimizePortfolio function with DI container * * @param container - Service container with dependencies * @returns Configured tool executor function */ export declare function createExecuteOptimizePortfolio(container: ServiceContainer): (input: OptimizePortfolioInput) => Promise; //# sourceMappingURL=optimize-portfolio.d.ts.map