/** * Check Available Models * Quick script to see what models are available */ const puppeteer = require('puppeteer'); const AuthHelper = require('./auth_helper'); const { getPuppeteerLaunchOptions } = require('./puppeteer_config'); async function checkAvailableModels() { const browser = await puppeteer.launch(getPuppeteerLaunchOptions()); const page = await browser.newPage(); const baseUrl = 'http://127.0.0.1:5000'; const authHelper = new AuthHelper(page, baseUrl); console.log('šŸ” Checking Available Models\n'); try { // Login await authHelper.ensureAuthenticated(); console.log('āœ… Logged in\n'); // Check available models via API const models = await page.evaluate(async () => { try { const response = await fetch('/settings/api/available-models'); if (!response.ok) { return { error: `HTTP ${response.status}: ${response.statusText}` }; } return await response.json(); } catch (error) { return { error: error.message }; } }); if (models.error) { console.log('āŒ Error fetching models:', models.error); } else { console.log('šŸ“‹ Available Models:'); console.log(JSON.stringify(models, null, 2)); } // Also check what's in the model dropdown on the form await page.goto(baseUrl, { waitUntil: 'domcontentloaded' }); const formModels = await page.evaluate(() => { const select = document.querySelector('#model, select[name="model"]'); if (!select) return null; const options = Array.from(select.options).map(opt => ({ value: opt.value, text: opt.text, selected: opt.selected })); return { currentValue: select.value, options }; }); if (formModels) { console.log('\nšŸ“ Form Model Options:'); console.log(`Current value: ${formModels.currentValue}`); console.log('Options:'); formModels.options.forEach(opt => { console.log(` ${opt.selected ? '→' : ' '} ${opt.value} (${opt.text})`); }); } } catch (error) { console.error('\nāŒ Error:', error.message); } await browser.close(); console.log('\nāœ… Done'); } // Run the check checkAvailableModels().catch(console.error);