diff --git a/app.py b/app.py index 0886451..4b72e9f 100644 --- a/app.py +++ b/app.py @@ -1095,13 +1095,23 @@ Bitte entscheide ob dieser Agent erstellt werden soll.""", to_clean = to_addr.strip() subject_clean = subject.strip() body_clean = body.strip() - - # Versuche Email zu senden + + action_task_id = create_task( + title=f"Email an {to_clean}: {subject_clean[:60]}", + description=f"**An:** {to_clean}\n**Betreff:** {subject_clean}\n\n{body_clean}", + agent_key=agent_key, + task_type='action_email', + created_by=agent_key, + parent_task_id=task_id, + ) success, message = send_email(to_clean, subject_clean, body_clean, - triggered_by=f'agent:{agent_key}', task_id=task_id) + triggered_by=f'agent:{agent_key}', task_id=action_task_id) if success: + update_task_db(action_task_id, status='completed', + response=f"✓ Email erfolgreich versendet an {to_clean}") logger.info(f"[AgentCmd] Email gesendet an {to_clean}: {subject_clean}") else: + update_task_db(action_task_id, status='error', response=f"✗ Fehler: {message}") logger.error(f"[AgentCmd] Email-Fehler: {message}") # SEND_TELEGRAM: Orchestrator sendet Telegram-Nachricht @@ -1115,10 +1125,17 @@ Bitte entscheide ob dieser Agent erstellt werden soll.""", recipient_clean = recipient.strip() message_clean = message.strip() - # Telegram-Integration (wenn aktiviert) + action_task_id = create_task( + title=f"Telegram an {recipient_clean}: {message_clean[:60]}", + description=f"**An:** {recipient_clean}\n\n{message_clean}", + agent_key=agent_key, + task_type='action_telegram', + created_by=agent_key, + parent_task_id=task_id, + ) + if TELEGRAM_CONFIG.get('bot_token') and TELEGRAM_CONFIG.get('telegram_bot'): try: - # Direkte numerische ID oder Name/Email → DB-Lookup chat_id = None if recipient_clean.lstrip('-').isdigit(): chat_id = int(recipient_clean) @@ -1134,12 +1151,18 @@ Bitte entscheide ob dieser Agent erstellt werden soll.""", if chat_id: send_telegram_message(chat_id, message_clean) + update_task_db(action_task_id, status='completed', + response=f"✓ Telegram gesendet an {recipient_clean} (chat_id={chat_id})") logger.info(f"[AgentCmd] Telegram gesendet an {recipient_clean} (chat_id={chat_id})") else: + update_task_db(action_task_id, status='error', + response=f"✗ Keine Telegram-ID für '{recipient_clean}' gefunden") logger.warning(f"[AgentCmd] Keine Telegram Chat-ID für '{recipient_clean}'") except Exception as e: + update_task_db(action_task_id, status='error', response=f"✗ Fehler: {str(e)}") logger.error(f"[AgentCmd] Telegram-Fehler: {str(e)}") else: + update_task_db(action_task_id, status='error', response="✗ Telegram nicht konfiguriert") logger.warning("[AgentCmd] Telegram nicht konfiguriert") # ADD_TEAM_MEMBER: Füge neues Team-Mitglied hinzu @@ -1155,10 +1178,22 @@ Bitte entscheide ob dieser Agent erstellt werden soll.""", resp_clean = resp.strip() email_clean = email.strip() + action_task_id = create_task( + title=f"Team-Member hinzugefügt: {name_clean}", + description=f"**Name:** {name_clean}\n**Rolle:** {role_clean}\n**Email:** {email_clean}\n**Verantwortlichkeiten:** {resp_clean}", + agent_key=agent_key, + task_type='action_team', + created_by=agent_key, + parent_task_id=task_id, + ) success = add_team_member(name_clean, role_clean, resp_clean, email_clean) if success: + update_task_db(action_task_id, status='completed', + response=f"✓ Team-Member '{name_clean}' ({role_clean}) hinzugefügt") logger.info(f"[AgentCmd] Team-Member hinzugefügt: {name_clean} ({role_clean})") else: + update_task_db(action_task_id, status='error', + response=f"✗ Konnte '{name_clean}' nicht hinzufügen") logger.warning(f"[AgentCmd] Team-Member konnte nicht hinzugefügt werden: {name_clean}") # UPDATE_TEAM_MEMBER: Aktualisiere Team-Mitglied @@ -1192,10 +1227,23 @@ Bitte entscheide ob dieser Agent erstellt werden soll.""", if not kwargs: logger.warning(f"[AgentCmd] @UPDATE_TEAM_MEMBER für '{identifier}' ohne Felder ignoriert") continue + fields_summary = ", ".join(f"{k}={v}" for k, v in kwargs.items()) + action_task_id = create_task( + title=f"Team-Member aktualisiert: {identifier}", + description=f"**Identifier:** {identifier}\n**Felder:** {fields_summary}", + agent_key=agent_key, + task_type='action_team', + created_by=agent_key, + parent_task_id=task_id, + ) success = update_team_member(identifier, **kwargs) if success: + update_task_db(action_task_id, status='completed', + response=f"✓ {identifier} aktualisiert: {fields_summary}") logger.info(f"[AgentCmd] Team-Member aktualisiert: {identifier} - {list(kwargs.keys())}") else: + update_task_db(action_task_id, status='error', + response=f"✗ Update fehlgeschlagen für '{identifier}'") logger.error(f"[AgentCmd] Update fehlgeschlagen für '{identifier}'") def create_new_agent(agent_key, role, skills): diff --git a/templates/tasks.html b/templates/tasks.html index ea9ac8f..4d81bf1 100644 --- a/templates/tasks.html +++ b/templates/tasks.html @@ -35,13 +35,24 @@ {{ task.title }} {% if task.type == 'email' %} - Email - {% endif %} - {% if task.type == 'orchestrated' %} + 📧 Email + {% elif task.type == 'telegram' %} + ✈ Telegram + {% elif task.type == 'action_email' %} + 📤 Email gesendet + {% elif task.type == 'action_telegram' %} + 📤 Telegram gesendet + {% elif task.type == 'action_team' %} + 👤 Team + {% elif task.type == 'orchestrated' %} Orchestriert - {% endif %} - {% if task.type == 'agent_created' %} + {% elif task.type == 'agent_created' or task.type == 'agent_subtask' %} Agent + {% elif task.type == 'agent_question' %} + ❓ Frage + {% endif %} + {% if task.parent_task_id %} + ↳ #{{ task.parent_task_id }} {% endif %} {% if task.description %}