Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
function() { | |
document.body.classList.add('dark'); | |
// Function to check if sandbox is timing out | |
const checkSandboxTimeout = function() { | |
const timeElement = document.getElementById('sandbox-creation-time'); | |
if (timeElement) { | |
const creationTime = parseFloat(timeElement.getAttribute('data-time')); | |
const timeoutValue = parseFloat(timeElement.getAttribute('data-timeout')); | |
const currentTime = Math.floor(Date.now() / 1000); // Current time in seconds | |
const elapsedTime = currentTime - creationTime; | |
console.log("Sandbox running for: " + elapsedTime + " seconds of " + timeoutValue + " seconds"); | |
// If we've exceeded the timeout, show BSOD | |
if (elapsedTime >= timeoutValue) { | |
console.log("Sandbox timeout! Showing BSOD"); | |
showBSOD('Error'); | |
// Don't set another timeout, we're done checking | |
return; | |
} | |
} | |
// Continue checking every 5 seconds | |
setTimeout(checkSandboxTimeout, 5000); | |
}; | |
const showBSOD = function(statusText = 'Error') { | |
console.log("Showing BSOD with status: " + statusText); | |
const iframe = document.getElementById('sandbox-iframe'); | |
const bsod = document.getElementById('bsod-image'); | |
if (iframe && bsod) { | |
iframe.style.display = 'none'; | |
bsod.style.display = 'block'; | |
// Update status indicator | |
const statusIndicator = document.querySelector('.status-indicator'); | |
const statusTextElem = document.querySelector('.status-text'); | |
if (statusIndicator) { | |
statusIndicator.className = 'status-indicator status-error'; | |
} | |
if (statusTextElem) { | |
statusTextElem.innerText = statusText; | |
} | |
} | |
}; | |
const resetBSOD = function() { | |
console.log("Resetting BSOD display"); | |
const iframe = document.getElementById('sandbox-iframe'); | |
const bsod = document.getElementById('bsod-image'); | |
if (iframe && bsod) { | |
if (bsod.style.display === 'block') { | |
// BSOD is currently showing, reset it | |
iframe.style.display = 'block'; | |
bsod.style.display = 'none'; | |
console.log("BSOD reset complete"); | |
return true; // Indicates reset was performed | |
} | |
} | |
return false; // No reset needed | |
}; | |
// Function to monitor for error messages | |
const monitorForErrors = function() { | |
console.log("Error monitor started"); | |
const resultsInterval = setInterval(function() { | |
const resultsElements = document.querySelectorAll('textarea, .output-text'); | |
for (let elem of resultsElements) { | |
const content = elem.value || elem.innerText || ''; | |
if (content.includes('Error running agent')) { | |
console.log("Error detected!"); | |
showBSOD('Error'); | |
clearInterval(resultsInterval); | |
break; | |
} | |
} | |
}, 1000); | |
}; | |
// Start monitoring for timeouts immediately | |
checkSandboxTimeout(); | |
// Start monitoring for errors | |
setTimeout(monitorForErrors, 3000); | |
// Also monitor for errors after button clicks | |
document.addEventListener('click', function(e) { | |
if (e.target.tagName === 'BUTTON') { | |
if (e.target.innerText === "Let's go!") { | |
resetBSOD(); | |
} | |
setTimeout(monitorForErrors, 3000); | |
} | |
}); | |
// Set up an interval to click the refresh button every 5 seconds | |
setInterval(function() { | |
const btn = document.getElementById('refresh-log-btn'); | |
if (btn) btn.click(); | |
}, 5000); | |
// Force dark mode | |
const params = new URLSearchParams(window.location.search); | |
if (!params.has('__theme')) { | |
params.set('__theme', 'dark'); | |
window.location.search = params.toString(); | |
} | |
} |