surfaces/adapter/max/agent_registry.py
Vladislav Yashnov eed1533cdc max first steps
2026-05-06 00:24:47 +03:00

50 lines
No EOL
1.2 KiB
Python

"""Agent registry for MAX surface."""
import os
import yaml
from typing import List, Optional
from dataclasses import dataclass, field
@dataclass
class AgentConfig:
id: str
label: str
base_url: str
workspace_path: str
@dataclass
class AgentRegistry:
agents: List[AgentConfig] = field(default_factory=list)
def get_agent_for_user(self, user_id: str) -> AgentConfig:
return self.agents[0]
def get_agent_by_id(self, agent_id: str) -> Optional[AgentConfig]:
for agent in self.agents:
if agent.id == agent_id:
return agent
return None
def load_agent_registry(path: str) -> AgentRegistry:
with open(path, "r") as f:
data = yaml.safe_load(f)
registry = AgentRegistry()
for a in data.get("agents", []):
registry.agents.append(AgentConfig(
id=a["id"],
label=a.get("label", ""),
base_url=a["base_url"],
workspace_path=a["workspace_path"],
))
return registry
def load_from_env() -> AgentRegistry:
path = os.environ.get(
"MAX_AGENT_REGISTRY_PATH",
"/app/config/max-agents.yaml",
)
return load_agent_registry(path)