Moved dashboard to src/serena. Stopped using serena_root_path (in favor of constants.py)

This commit is contained in:
Michael Panchenko
2025-06-02 21:25:52 +02:00
parent a1e3bb19b6
commit bf2573ee53
12 changed files with 10 additions and 16 deletions
-7
View File
@@ -1,12 +1,5 @@
__version__ = "2025-05-21"
def serena_root_path() -> str:
from pathlib import Path
return str(Path(__file__).parent.parent.parent.absolute())
def serena_version() -> str:
"""
:return: the version of the package, including git status if available.
+3 -3
View File
@@ -34,9 +34,9 @@ from multilspy import SyncLanguageServer
from multilspy.multilspy_config import Language, MultilspyConfig
from multilspy.multilspy_logger import MultilspyLogger
from multilspy.multilspy_types import SymbolKind
from serena import serena_root_path, serena_version
from serena import serena_version
from serena.config import SerenaAgentContext, SerenaAgentMode
from serena.constants import PROJECT_TEMPLATE_FILE, SELENA_CONFIG_TEMPLATE_FILE, SERENA_MANAGED_DIR_NAME
from serena.constants import PROJECT_TEMPLATE_FILE, SELENA_CONFIG_TEMPLATE_FILE, SERENA_MANAGED_DIR_NAME, REPO_ROOT
from serena.dashboard import MemoryLogHandler, SerenaDashboardAPI
from serena.prompt_factory import PromptFactory, SerenaPromptFactory
from serena.symbol import SymbolManager
@@ -308,7 +308,7 @@ class SerenaConfig(SerenaConfigBase):
@classmethod
def get_config_file_path(cls) -> str:
return os.path.join(serena_root_path(), cls.CONFIG_FILE)
return os.path.join(REPO_ROOT, cls.CONFIG_FILE)
@classmethod
def from_config_file(cls, generate_if_missing: bool = True) -> "SerenaConfig":
+3 -3
View File
@@ -14,7 +14,7 @@ from agno.tools.toolkit import Toolkit
from dotenv import load_dotenv
from sensai.util.logging import LogTime
from serena import serena_root_path
from serena.constants import REPO_ROOT
from serena.agent import SerenaAgent, Tool, show_fatal_exception_safe
from serena.config import SerenaAgentContext
@@ -65,7 +65,7 @@ class SerenaAgnoAgentProvider:
return cls._agent
# change to Serena root
os.chdir(serena_root_path())
os.chdir(REPO_ROOT)
load_dotenv()
@@ -94,7 +94,7 @@ class SerenaAgnoAgentProvider:
# If project file path is relative, make it absolute by joining with project root
if not project_file.is_absolute():
# Get the project root directory (parent of scripts directory)
project_root = Path(serena_root_path())
project_root = Path(REPO_ROOT)
project_file = project_root / args_project_file
# Ensure the path is normalized and absolute
+2
View File
@@ -7,6 +7,8 @@ REPO_ROOT = str(_repo_root_path)
PROMPT_TEMPLATES_DIR = str(_serena_pkg_path / "resources" / "config" / "prompt_templates")
CONTEXT_YAMLS_DIR = str(_serena_pkg_path / "resources" / "config" / "contexts")
MODE_YAMLS_DIR = str(_serena_pkg_path / "resources" / "config" / "modes")
SERENA_DASHBOARD_DIR = str(_serena_pkg_path / "resources" / "dashboard")
SERENA_ICON_DIR = str(_serena_pkg_path / "resources" / "icons")
SERENA_MANAGED_DIR_NAME = ".serena"
+2 -3
View File
@@ -10,7 +10,7 @@ from fastapi.staticfiles import StaticFiles
from pydantic import BaseModel
from sensai.util import logging
from serena import serena_root_path
from serena.constants import SERENA_DASHBOARD_DIR
log = logging.getLogger(__name__)
@@ -75,8 +75,7 @@ class SerenaDashboardAPI:
self._setup_routes()
def _setup_routes(self) -> None:
static_dir = os.path.join(serena_root_path(), "dashboard")
self._app.mount("/dashboard", StaticFiles(directory=static_dir), name="dashboard")
self._app.mount("/dashboard", StaticFiles(directory=SERENA_DASHBOARD_DIR), name="dashboard")
self._app.add_api_route("/get_log_messages", self._get_log_messages, methods=["POST"], response_model=ResponseLog)
self._app.add_api_route("/get_tool_names", self._get_tool_names, methods=["GET"], response_model=ResponseToolNames)

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB