max first steps

This commit is contained in:
Vladislav Yashnov 2026-05-06 00:24:47 +03:00
parent 3340c126d6
commit eed1533cdc
10 changed files with 589 additions and 0 deletions

View file

@ -0,0 +1,50 @@
"""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)