A continuation of Janady13/ai_deployment / index.html. The complete source identity, every recorded occurrence, and linked equations are on its first page.
Source transcript · continued
Download complete source text ↓1,635 lines · 69.4 KB
document.getElementById(tab.dataset.tab).classList.add('active');
});
});
document.getElementById('module-search').addEventListener('input', renderModules);
document.getElementById('module-filter').addEventListener('change', renderModules);
document.getElementById('module-grid').addEventListener('click', (event) => {
const actionButton = event.target.closest('button');
if (!actionButton) return;
const card = actionButton.closest('.card');
const moduleId = card.dataset.id;
const module = aiBrainState.modules.find(m => m.id === moduleId);
if (!module) return;
if (actionButton.dataset.action === 'activate') {
module.stage = module.stage === 'active' ? 'pilot' : 'active';
addConsoleLog(`module:${moduleId} ${module.stage === 'active' ? 'activated' : 'paused'}`);
renderModules();
}
if (actionButton.dataset.action === 'blueprint') {
addConsoleLog(`git blueprint:create --module=${moduleId}`);
}
});
document.getElementById('run-pipeline').addEventListener('click', () => {
const selected = document.getElementById('pipeline-select').value;
addPipelineRun(selected);
addConsoleLog(`pipeline:run --id=${selected}`);
});
document.getElementById('release-form').addEventListener('submit', (event) => {
event.preventDefault();
const formData = new FormData(event.target);
addRelease(formData);
event.target.reset();
addConsoleLog(`release:commit --env=${formData.get('release-env')} --guardrail=${formData.get('release-guardrail')}`);
});
document.getElementById('run-command').addEventListener('click', () => {
const input = document.getElementById('console-command');
if (!input.value) return;
addConsoleLog(input.value);
input.value = '';
});
document.getElementById('clear-console').addEventListener('click', () => {
aiBrainState.console.log = [];
renderConsole();
});
document.getElementById('macro-list').addEventListener('click', (event) => {
const macro = event.target.dataset.macro;
if (!macro) return;
addConsoleLog(macro);
});
document.getElementById('copy-snippet').addEventListener('click', copySnippet);
document.getElementById('broadcast-btn').addEventListener('click', () => {
addBroadcast(document.getElementById('broadcast-message').value.trim());
});
document.getElementById('connector-list').addEventListener('click', (event) => {
const button = event.target.closest('button[data-action="toggle"]');
if (!button) return;
const index = Number(button.closest('.list-item').dataset.index);
toggleConnector(index);
addConsoleLog(`connector:${index} toggled`);
});
document.getElementById('connector-form').addEventListener('submit', (event) => {
event.preventDefault();
const name = document.getElementById('connector-name').value.trim();
const reach = document.getElementById('connector-reach').value;
if (!name || !reach) return;
addConnector(name, reach);
event.target.reset();
addConsoleLog(`connector:add --name="${name}"`);
});
document.getElementById('investor-note-save').addEventListener('click', () => {
addInvestorNote(document.getElementById('investor-note').value.trim());
});
document.getElementById('paywall-list').addEventListener('input', (event) => {
if (event.target.type !== 'range') return;
const item = event.target.closest('.list-item');
adjustPaywall(item.dataset.id, event.target.value);
});
document.getElementById('cta-sync').addEventListener('click', () => {
addConsoleLog('git ai_brain:sync --full');
});
document.getElementById('cta-share').addEventListener('click', () => {
addBroadcast('External offer shared across connectors and investor network.');
});
window.addEventListener('scroll', () => {
const headerEl = document.querySelector('header');
if (window.scrollY > 40) {
headerEl.classList.add('scrolled');
} else {
headerEl.classList.remove('scrolled');
}
});
};
const tickMetrics = () => {
const jitter = () => (Math.random() - 0.5) * 0.02;
aiBrainState.metrics.projectedRevenue *= 1 + jitter() / 10;
aiBrainState.metrics.investors += Math.round(Math.random() > 0.7 ? 1 : 0);
aiBrainState.metrics.readiness = Math.min(0.995, Math.max(0.9, aiBrainState.metrics.readiness + jitter()));
renderHero();
};
const initialize = () => {
renderHero();
renderOverview();
renderModules();
renderPipelines();
renderDeployments();
renderConsole();
renderPaywalls();
renderBroadcasts();
renderInvestors();
bootstrapEvents();
setInterval(tickMetrics, 15000);
};
initialize();
</script>
</body>
</html>