diff --git a/Dockerfile b/Dockerfile index 8c04ffc..b428167 100644 --- a/Dockerfile +++ b/Dockerfile @@ -292,14 +292,18 @@ RUN { \ echo ' echo "Generating self-signed certificate for HTTPS"'; \ echo ' openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout src/key.pem -out src/cert.pem -subj "/C=US/ST=OR/L=Portland/O=Development/CN=localhost"'; \ echo ' fi' ; \ + echo ' declare once=0' ; \ echo ' while true; do'; \ echo ' if [[ ! -e /opt/backstory/block-server ]]; then'; \ echo ' echo "Launching Backstory server..."'; \ echo ' python src/server.py "${@}" || echo "Backstory server died."'; \ + echo ' echo "Sleeping for 3 seconds."'; \ echo ' else'; \ - echo ' echo "block-server file exists. Not launching."'; \ + echo ' if [[ ${once} -eq 0 ]]; then' ; \ + echo ' echo "/opt/backstory/block-server exists. Sleeping for 3 seconds."'; \ + echo ' once=1' ; \ + echo ' fi' ; \ echo ' fi' ; \ - echo ' echo "Sleeping for 3 seconds."'; \ echo ' sleep 3'; \ echo ' done' ; \ echo 'fi'; \ diff --git a/src/utils/agents/__init__.py b/src/utils/agents/__init__.py index 88d3c3b..a0cf3bb 100644 --- a/src/utils/agents/__init__.py +++ b/src/utils/agents/__init__.py @@ -2,17 +2,21 @@ from __future__ import annotations import importlib import pathlib import inspect -import logging from typing import TypeAlias, Dict, Tuple -from pydantic import BaseModel +from . types import registry from . base import Agent +from .. setup_logging import setup_logging +from .. import defines + +logger = setup_logging(defines.logging_level) # Type alias for Agent or any subclass AnyAgent: TypeAlias = Agent # BaseModel covers Agent and subclasses package_dir = pathlib.Path(__file__).parent package_name = __name__ -__all__ = [] +__all__ = [ "AnyAgent", "registry"] + class_registry: Dict[str, Tuple[str, str]] = {} # Maps class_name to (module_name, class_name) for path in package_dir.glob("*.py"): @@ -35,9 +39,12 @@ for path in package_dir.glob("*.py"): ): class_registry[name] = (full_module_name, name) globals()[name] = obj - logging.info(f"Adding agent: {name} from {full_module_name}") + logger.info(f"Adding agent: {name} from {full_module_name}") __all__.append(name) except ImportError as e: - logging.error(f"Failed to import module {full_module_name}: {e}") + logger.error(f"Error importing {full_module_name}: {e}") + continue + except Exception as e: + logger.error(f"Error processing {full_module_name}: {e}") + continue -__all__.append("AnyAgent") \ No newline at end of file