Fix agent workspace file handlers
This commit is contained in:
@@ -129,6 +129,33 @@ class RunWorkspaceManager:
|
|||||||
)
|
)
|
||||||
return asset_dir
|
return asset_dir
|
||||||
|
|
||||||
|
def load_agent_file(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
config_name: str,
|
||||||
|
agent_id: str,
|
||||||
|
filename: str,
|
||||||
|
) -> str:
|
||||||
|
"""Load one run-scoped agent workspace file."""
|
||||||
|
path = self.get_agent_asset_dir(config_name, agent_id) / filename
|
||||||
|
if not path.exists():
|
||||||
|
raise FileNotFoundError(f"File not found: {filename}")
|
||||||
|
return path.read_text(encoding="utf-8")
|
||||||
|
|
||||||
|
def update_agent_file(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
config_name: str,
|
||||||
|
agent_id: str,
|
||||||
|
filename: str,
|
||||||
|
content: str,
|
||||||
|
) -> None:
|
||||||
|
"""Write one run-scoped agent workspace file."""
|
||||||
|
asset_dir = self.get_agent_asset_dir(config_name, agent_id)
|
||||||
|
asset_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
path = asset_dir / filename
|
||||||
|
path.write_text(content, encoding="utf-8")
|
||||||
|
|
||||||
def initialize_default_assets(
|
def initialize_default_assets(
|
||||||
self,
|
self,
|
||||||
config_name: str,
|
config_name: str,
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ from typing import Any, Dict, List, Optional
|
|||||||
from fastapi import APIRouter, HTTPException, Depends, Body, UploadFile, File, Form
|
from fastapi import APIRouter, HTTPException, Depends, Body, UploadFile, File, Form
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
from backend.agents import AgentFactory, WorkspaceManager, get_registry
|
from backend.agents import AgentFactory, get_registry
|
||||||
|
from backend.agents.workspace_manager import RunWorkspaceManager
|
||||||
from backend.agents.agent_workspace import load_agent_workspace_config
|
from backend.agents.agent_workspace import load_agent_workspace_config
|
||||||
from backend.agents.skills_manager import SkillsManager
|
from backend.agents.skills_manager import SkillsManager
|
||||||
from backend.agents.toolkit_factory import load_agent_profiles
|
from backend.agents.toolkit_factory import load_agent_profiles
|
||||||
@@ -100,8 +101,8 @@ def get_agent_factory():
|
|||||||
|
|
||||||
|
|
||||||
def get_workspace_manager():
|
def get_workspace_manager():
|
||||||
"""Get WorkspaceManager instance."""
|
"""Get run-scoped workspace manager instance."""
|
||||||
return WorkspaceManager()
|
return RunWorkspaceManager()
|
||||||
|
|
||||||
|
|
||||||
def get_skills_manager():
|
def get_skills_manager():
|
||||||
@@ -652,7 +653,7 @@ async def get_agent_file(
|
|||||||
workspace_id: str,
|
workspace_id: str,
|
||||||
agent_id: str,
|
agent_id: str,
|
||||||
filename: str,
|
filename: str,
|
||||||
workspace_manager: WorkspaceManager = Depends(get_workspace_manager),
|
workspace_manager: RunWorkspaceManager = Depends(get_workspace_manager),
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
Read an agent's workspace file.
|
Read an agent's workspace file.
|
||||||
@@ -682,7 +683,7 @@ async def update_agent_file(
|
|||||||
agent_id: str,
|
agent_id: str,
|
||||||
filename: str,
|
filename: str,
|
||||||
content: str = Body(..., media_type="text/plain"),
|
content: str = Body(..., media_type="text/plain"),
|
||||||
workspace_manager: WorkspaceManager = Depends(get_workspace_manager),
|
workspace_manager: RunWorkspaceManager = Depends(get_workspace_manager),
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
Update an agent's workspace file.
|
Update an agent's workspace file.
|
||||||
|
|||||||
Reference in New Issue
Block a user