Add agent reminders, model selection, task distribution and delete functionality
This commit is contained in:
parent
56d9bc2c76
commit
84b2fe3dd7
16 changed files with 759 additions and 74 deletions
|
|
@ -16,6 +16,32 @@
|
|||
<div class="row g-4">
|
||||
<!-- Sidebar -->
|
||||
<div class="col-lg-4">
|
||||
<!-- Task Distribution -->
|
||||
<div class="card mb-3">
|
||||
<div class="card-header bg-info">
|
||||
<h5 class="mb-0">📋 Tasks verteilen</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Aufgaben (eine pro Zeile)</label>
|
||||
<textarea class="form-control" id="todoPrompt" rows="4" placeholder="Recherche Location Catering planen Pressemitteilung schreiben"></textarea>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Agenten auswählen</label>
|
||||
<div id="agentCheckboxes">
|
||||
{% for key, agent in agents.items() %}
|
||||
<div class="form-check">
|
||||
<input class="form-check-input agent-checkbox" type="checkbox" value="{{ key }}" id="agent_{{ key }}" checked>
|
||||
<label class="form-check-label" for="agent_{{ key }}">{{ agent.name }}</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" class="btn btn-info w-100" onclick="distributeTodos()">Tasks parallel ausführen</button>
|
||||
<div id="todoStatus" class="form-text mt-2"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card mb-3">
|
||||
<div class="card-header bg-dark">
|
||||
<h5 class="mb-0">Prompt eingeben</h5>
|
||||
|
|
@ -153,5 +179,42 @@ function sendPromptWithStream() {
|
|||
streamBtn.textContent = 'Live-Antwort anfordern';
|
||||
});
|
||||
}
|
||||
|
||||
function distributeTodos() {
|
||||
const prompt = document.getElementById('todoPrompt').value.trim();
|
||||
if (!prompt) { alert('Bitte Aufgaben eingeben!'); return; }
|
||||
|
||||
const selectedAgents = Array.from(document.querySelectorAll('.agent-checkbox:checked')).map(cb => cb.value);
|
||||
if (selectedAgents.length === 0) { alert('Bitte mindestens einen Agenten auswählen!'); return; }
|
||||
|
||||
const status = document.getElementById('todoStatus');
|
||||
status.textContent = 'Starte parallele Ausführung...';
|
||||
status.className = 'form-text mt-2 text-info';
|
||||
|
||||
const tasks = prompt.split('\n').filter(t => t.trim());
|
||||
|
||||
fetch('/api/orchestrator-distribute', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ tasks, agents: selectedAgents })
|
||||
})
|
||||
.then(r => r.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
status.textContent = '✓ ' + data.message + ' - ' + data.results.length + ' Tasks gestartet';
|
||||
status.className = 'form-text mt-2 text-success';
|
||||
if (data.results && data.results.length > 0) {
|
||||
location.reload();
|
||||
}
|
||||
} else {
|
||||
status.textContent = 'Fehler: ' + data.error;
|
||||
status.className = 'form-text mt-2 text-danger';
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
status.textContent = 'Fehler: ' + err.message;
|
||||
status.className = 'form-text mt-2 text-danger';
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue