function listProjects() { apiGet('/project/list') .then(data => { const select = document.getElementById('project-select'); select.innerHTML = ''; Object.keys(data).forEach(project => { const option = document.createElement('option'); option.value = project; option.text = project; select.appendChild(option); }); }) .catch(err => console.error(err)); } function loadProjectDetails() { const project = document.getElementById('project-select').value; if (!project) return; apiGet(`/project/${project}/latest`) .then(data => { const details = document.getElementById('project-details'); const info = document.getElementById('project-info'); details.classList.remove('d-none'); let html = `

Version: ${data.version_number}

`; html += `

Published: ${data.published ? '✅ Yes' : '❌ No'}

`; html += `
Intents:
`; info.innerHTML = html; if (data.published) { document.querySelectorAll('#project-info input, #project-info button').forEach(el => { el.disabled = true; }); } }) .catch(err => console.error(err)); } function addIntent() { const project = document.getElementById('project-select').value; const intentName = prompt('Enter new intent name:'); if (!intentName) return; apiPost('/project/add_intent', { project_name: project, intent_name: intentName }) .then(data => { showResult('project-result', data); loadProjectDetails(); }) .catch(err => { console.error(err); alert('Failed to add intent.'); }); } function removeIntent(name) { const project = document.getElementById('project-select').value; if (!confirm(`Are you sure you want to delete intent '${name}'?`)) return; apiPost('/project/delete_intent', { project_name: project, intent_name: name }) .then(data => { showResult('project-result', data); loadProjectDetails(); }) .catch(err => { console.error(err); alert('Failed to delete intent.'); }); } function saveProject() { alert('Save logic will be implemented here.'); } function publishProject() { alert('Publish logic will be implemented here.'); }