let setupStep = 0;
const setupSteps = [
{ title: 'Welcome', desc: 'Configure Agentic OS for your environment' },
{ title: 'Agent Discovery', desc: 'Detecting installed agents...' },
{ title: 'Preferences', desc: 'Choose your defaults' },
{ title: 'Ready', desc: 'All set!' },
];
async function renderSetupWizard() {
const content = document.getElementById('pageContent');
setupStep = 0;
content.innerHTML = `
`;
renderWizardStep();
}
async function renderWizardStep() {
const body = document.getElementById('wizardBody');
if (!body) return;
const step = setupSteps[setupStep];
if (!step) { finishSetup(); return; }
body.innerHTML = `
${setupSteps.map((s, i) => `
`).join('')}
${step.title}
${step.desc}
← Back
${setupStep === setupSteps.length - 1 ? '✓ Complete' : 'Continue →'}
`;
const wc = document.getElementById('wizardContent');
switch (setupStep) {
case 0:
wc.innerHTML = `
⬡
Agentic OS coordinates opencode , Hermes Agent , and Gemini CLI into a unified multi-agent orchestration platform. This wizard will help you get everything configured.
`;
break;
case 1:
wc.innerHTML = '';
try {
const status = await api.getStatus();
const agents = status.agents || [];
wc.innerHTML = `
${agents.map(a => {
const sc = statusColor(a.status);
return `
`;
}).join('')}
${agents.some(a => a.status === 'offline') ? `⚠ Some agents are offline. Install missing agents to enable full functionality.
` : ''}
`;
} catch (err) {
wc.innerHTML = `✕ ${escapeHtml(err.message)}
`;
}
break;
case 2:
wc.innerHTML = `
Default Agent for Unknown Tasks
opencode — Best for code/DevOps
Hermes — Best for memory/scheduling
Gemini CLI — Best for research
Dashboard Theme
Dark (default)
Light
`;
break;
case 3:
wc.innerHTML = `
✓
Agentic OS is ready!
All components are configured. Start exploring the Dashboard or run a skill.
`;
break;
}
}
function nextWizardStep() {
if (setupStep < setupSteps.length - 1) { setupStep++; renderWizardStep(); }
else { finishSetup(); }
}
function prevWizardStep() {
if (setupStep > 0) { setupStep--; renderWizardStep(); }
}
function finishSetup() {
showToast('Setup complete!', 'success');
navigate('dashboard');
}