File size: 1,423 Bytes
d69a935
 
 
 
 
 
 
 
 
628ab8b
d69a935
 
 
 
 
 
 
 
 
 
 
ae3c0a1
d69a935
 
 
 
 
628ab8b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from llm_tool import llm
from notification_tool import send_email_reminder
from calendar_tool import get_calendar_service, add_to_calendar

class TaskAgent:
    def __init__(self):
        self.tasks = []
        self.calendar_service = get_calendar_service()
    
    def add_task(self, name, description, email):
        suggestion = self._safe_get_deadline(description)
        
        deadline = self._extract_field(suggestion, "Recommended Deadline")
        priority = self._extract_field(suggestion, "Priority")
        
        self.tasks.append({
            "name": name,
            "description": description,
            "deadline": deadline or "2024-12-31 23:59",
            "priority": priority or "Medium",
            "status": "Pending",
            "email": email
        })
        
        if self.calendar_service:
            add_to_calendar(self.calendar_service, name, deadline)
        
        return suggestion
    
    def _safe_get_deadline(self, description):
        try:
            return llm.get_deadline_suggestion(description)
        except Exception as e:
            return f"LLM unavailable: {str(e)}. Set deadline manually."
    
    def _extract_field(self, text, field):
        for line in text.split("\n"):
            if field in line:
                return line.split(":", 1)[-1].strip()
        return None

# This line is CRITICAL — don't remove it
agent = TaskAgent()