tui compose visibility

This commit is contained in:
phact 2025-09-18 01:51:02 -04:00
parent 491f647572
commit fdad859783
3 changed files with 32 additions and 4 deletions

View file

@ -37,6 +37,9 @@ openrag = "tui.main:run_tui"
[tool.uv]
package = true
[tool.setuptools.package-data]
"*" = ["docker-compose*.yml"]
[tool.uv.sources]
torch = [
{ index = "pytorch-cu128", marker = "sys_platform == 'linux' and platform_machine == 'x86_64'" },

View file

@ -9,6 +9,10 @@ from enum import Enum
from pathlib import Path
from typing import Dict, List, Optional, AsyncIterator
from utils.logging_config import get_logger
try:
from importlib.resources import files
except ImportError:
from importlib_resources import files
logger = get_logger(__name__)
@ -51,8 +55,8 @@ class ContainerManager:
def __init__(self, compose_file: Optional[Path] = None):
self.platform_detector = PlatformDetector()
self.runtime_info = self.platform_detector.detect_runtime()
self.compose_file = compose_file or Path("docker-compose.yml")
self.cpu_compose_file = Path("docker-compose-cpu.yml")
self.compose_file = compose_file or self._find_compose_file("docker-compose.yml")
self.cpu_compose_file = self._find_compose_file("docker-compose-cpu.yml")
self.services_cache: Dict[str, ServiceInfo] = {}
self.last_status_update = 0
# Auto-select CPU compose if no GPU available
@ -80,6 +84,27 @@ class ContainerManager:
"langflow": "langflow",
}
def _find_compose_file(self, filename: str) -> Path:
"""Find compose file in current directory or package resources."""
# First check current working directory
cwd_path = Path(filename)
if cwd_path.exists():
return cwd_path
# Then check package resources
try:
pkg_files = files("openrag")
if (pkg_files / filename).is_file():
# Copy to cwd for compose command to work
content = (pkg_files / filename).read_text()
cwd_path.write_text(content)
return cwd_path
except Exception:
pass
# Fall back to original path (will fail later if not found)
return Path(filename)
def is_available(self) -> bool:
"""Check if container runtime is available."""
return self.runtime_info.runtime_type != RuntimeType.NONE

4
uv.lock generated
View file

@ -1,5 +1,5 @@
version = 1
revision = 3
revision = 2
requires-python = ">=3.13"
resolution-markers = [
"sys_platform == 'darwin'",
@ -2282,7 +2282,7 @@ wheels = [
[[package]]
name = "openrag"
version = "0.1.3"
version = "0.1.4"
source = { editable = "." }
dependencies = [
{ name = "agentd" },