/** * Playwright script: open HF Space, trigger TinyLlama, capture console/network errors. * Run: node scripts/debug-space.js * Or with auth URL: SPACE_URL="https://user:TOKEN@huggingface.co/spaces/OnyxMunk/text-transformer" node scripts/debug-space.js */ const { chromium } = require('playwright'); const SPACE_URL = process.env.SPACE_URL || 'https://huggingface.co/spaces/OnyxMunk/text-transformer'; async function main() { const browser = await chromium.launch({ headless: false }); const context = await browser.newContext(); const consoleLogs = []; const requestFailures = []; context.on('console', (msg) => { const text = msg.text(); const type = msg.type(); consoleLogs.push({ type, text }); if (type === 'error' || text.toLowerCase().includes('failed') || text.toLowerCase().includes('cors')) { console.error(`[CONSOLE ${type}]`, text); } }); context.on('requestfailed', (request) => { const failure = { url: request.url(), failure: request.failure()?.errorText }; requestFailures.push(failure); console.error('[REQUEST FAILED]', failure.url, failure.failure); }); const page = await context.newPage(); await page.goto(SPACE_URL, { waitUntil: 'domcontentloaded', timeout: 60000 }).catch((e) => { console.error('Navigate error:', e.message); }); await page.waitForTimeout(5000); const snapshot = await page.content(); if (snapshot.includes('Failed to connect') || snapshot.includes('CORS') || snapshot.includes('error')) { const match = snapshot.match(/>([^<]*(?:Failed to connect|CORS|error)[^<]*) 0) { await tinyLlamaTab.click(); await page.waitForTimeout(1500); const promptInput = page.locator('textarea[placeholder*="TinyLlama"], textarea[id="llama-input"], textarea').first(); if (await promptInput.count() > 0) { await promptInput.fill('Hello'); await page.waitForTimeout(500); const generateBtn = page.locator('button[title="Generate Response"], button').filter({ hasText: /Generate|⚡/ }).first(); if (await generateBtn.count() > 0) { await generateBtn.click(); await page.waitForTimeout(8000); } } } const errorEl = page.locator('text=/Failed to connect|CORS|error/i').first(); if (await errorEl.count() > 0) { console.error('Visible error on page:', await errorEl.textContent()); } console.log('\n--- Console messages (errors/warnings) ---'); consoleLogs.filter((m) => m.type === 'error' || m.type === 'warning').forEach((m) => console.log(m.type, m.text)); console.log('\n--- Failed network requests ---'); requestFailures.forEach((f) => console.log(f.url, f.failure)); await browser.close(); } main().catch((e) => { console.error(e); process.exit(1); });