import json import os from typing import List from app.models.schemas import AIAgent class AgentService: def __init__(self, storage_path: str = "data/agents.json"): self.storage_path = storage_path self.agents: List[AIAgent] = [] self._ensure_storage() self._load_agents() def _ensure_storage(self): os.makedirs(os.path.dirname(self.storage_path), exist_ok=True) if not os.path.exists(self.storage_path): with open(self.storage_path, 'w') as f: json.dump([], f) def _load_agents(self): try: with open(self.storage_path, 'r') as f: data = json.load(f) self.agents = [AIAgent(**agent) for agent in data] except Exception: self.agents = [] def _save_agents(self): with open(self.storage_path, 'w') as f: json.dump([agent.dict() for agent in self.agents], f, indent=4) def get_agents(self) -> List[AIAgent]: return self.agents def add_agent(self, agent: AIAgent): self.agents.append(agent) self._save_agents() def update_agent(self, agent_id: str, updated_agent: AIAgent): for i, agent in enumerate(self.agents): if agent.id == agent_id: self.agents[i] = updated_agent self._save_agents() return True return False def delete_agent(self, agent_id: str): self.agents = [a for a in self.agents if a.id != agent_id] self._save_agents() agent_service = AgentService()