document.addEventListener('DOMContentLoaded', () => { const toolGrid = document.querySelector('.tool-grid'); const toolModal = document.getElementById('tool-modal'); const modalCloseBtn = document.getElementById('modal-close-btn'); const toolInterface = document.getElementById('tool-interface'); // Dummy data for tools (replace with actual data from backend) const tools = [ { name: 'Get Price', description: 'Fetches real-time price data for a symbol.', category: 'Market Data' }, { name: 'Place Order', description: 'Places a trade order in the market.', category: 'Execution' }, { name: 'Portfolio Risk', description: 'Analyzes the risk of your portfolio.', category: 'Risk Management' }, { name: 'Run Backtest', description: 'Executes a backtest on a trading strategy.', category: 'Backtesting' }, { name: 'Analyze Ticker', description: 'Performs comprehensive analysis on a ticker.', category: 'Prompts' }, ]; // Render tool cards tools.forEach(tool => { const toolCard = document.createElement('div'); toolCard.classList.add('tool-card'); toolCard.innerHTML = `

${tool.name}

${tool.description}

${tool.category}
`; toolCard.addEventListener('click', () => openToolModal(tool)); toolGrid.appendChild(toolCard); }); // Open tool modal function openToolModal(tool) { toolInterface.innerHTML = `

${tool.name}

${tool.description}


        `;
        toolModal.classList.add('show');

        document.getElementById('run-tool-btn').addEventListener('click', async () => {
            const symbol = document.getElementById('symbol').value;
            const resultElement = document.getElementById('tool-result');
            resultElement.textContent = 'Running tool...';

            // Example of calling a backend tool (requires window.openai to be available)
            // if (window.openai && window.openai.callTool) {
            //     try {
            //         const result = await window.openai.callTool(tool.name.replace(/\s+/g, '_').toLowerCase(), { symbol: symbol });
            //         resultElement.textContent = JSON.stringify(result, null, 2);
            //     } catch (error) {
            //         resultElement.textContent = `Error: ${error.message}`;
            //     }
            // } else {
            //     resultElement.textContent = 'MCP not available. Cannot call backend tools.';
            // }
            resultElement.textContent = `Simulating tool run for ${tool.name} with symbol: ${symbol}`;
        });
    }

    // Close tool modal
    modalCloseBtn.addEventListener('click', () => {
        toolModal.classList.remove('show');
    });

    // Close modal on outside click
    window.addEventListener('click', (event) => {
        if (event.target === toolModal) {
            toolModal.classList.remove('show');
        }
    });

    // Dummy dashboard rendering (replace with actual data)
    document.querySelector('.portfolio').innerHTML = '

Portfolio Overview

Detailed portfolio data will go here.

'; document.querySelector('.watchlist').innerHTML = '

Watchlist

Your watched symbols will appear here.

'; document.querySelector('.news').innerHTML = '

Intel Feed

Latest market news and sentiment.

'; document.querySelector('.crypto').innerHTML = '

Crypto Movers

Trending cryptocurrency data.

'; });