max first steps
This commit is contained in:
parent
3340c126d6
commit
eed1533cdc
10 changed files with 589 additions and 0 deletions
50
adapter/max/agent_registry.py
Normal file
50
adapter/max/agent_registry.py
Normal 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)
|
||||
Loading…
Add table
Add a link
Reference in a new issue