Skip to content

Commit 70734f6

Browse files
mrveissclaude
andcommitted
refactor(core): Add compatibility symlinks and organize backend modules (mrveiss#781)
- Add Python path setup in autobot-shared/__init__.py for imports - Rename autobot-user-backend/logging to autobot_logging - Add new monitoring/ module with prometheus_metrics - Add new type_defs/ module with typed API definitions - Add chat_exceptions.py utility - Add backend/ and autobot_shared symlinks for backward compatibility - Update redis_management imports Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent cf0a159 commit 70734f6

21 files changed

Lines changed: 889 additions & 58 deletions

File tree

‎autobot-shared/__init__.py‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@
33
# Author: mrveiss
44
"""AutoBot shared utilities - deployed with each backend component."""
55

6+
import sys
7+
from pathlib import Path
8+
9+
# Add backend directory to Python path for imports (Issue #781 folder reorganization)
10+
_backend_path = Path(__file__).parent.parent / "backend"
11+
if _backend_path.exists() and str(_backend_path) not in sys.path:
12+
sys.path.insert(0, str(_backend_path))
13+
614
from .redis_client import get_redis_client
715
from .ssot_config import config
816

‎autobot-shared/error_boundaries.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import json
2323

2424
# Re-export all public API from the package for backward compatibility
25-
from src.utils.error_boundaries import (
25+
from backend.utils.error_boundaries import (
2626
CRITICAL_ERROR_TYPES,
2727
FALLBACK_ERROR_TYPES,
2828
HIGH_SEVERITY_ERROR_TYPES,

‎autobot-shared/http_client.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import aiohttp
1515
from aiohttp import ClientSession, ClientTimeout, TCPConnector
1616

17-
from src.constants.threshold_constants import TimingConstants
17+
from backend.constants.threshold_constants import TimingConstants
1818

1919
logger = logging.getLogger(__name__)
2020

‎autobot-shared/logging_manager.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from pathlib import Path
1414
from typing import Optional
1515

16-
from src.config import config_manager
16+
from backend.config import config_manager
1717

1818
# Module-level logger for logging_manager itself
1919
_logger = logging.getLogger(__name__)

‎autobot-shared/redis_client.py‎

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
4747
MANDATORY USAGE PATTERN:
4848
========================
49-
from src.utils.redis_client import get_redis_client
49+
from backend.utils.redis_client import get_redis_client
5050
5151
# Synchronous client
5252
redis_client = get_redis_client(database="main")
@@ -86,17 +86,21 @@
8686
import redis
8787
import redis.asyncio as async_redis
8888

89-
from src.utils.redis_management.config import PoolConfig, RedisConfig, RedisConfigLoader
90-
from src.utils.redis_management.connection_manager import RedisConnectionManager
91-
from src.utils.redis_management.statistics import (
89+
from backend.utils.redis_management.config import (
90+
PoolConfig,
91+
RedisConfig,
92+
RedisConfigLoader,
93+
)
94+
from backend.utils.redis_management.connection_manager import RedisConnectionManager
95+
from backend.utils.redis_management.statistics import (
9296
ConnectionMetrics,
9397
ManagerStats,
9498
PoolStatistics,
9599
RedisStats,
96100
)
97101

98102
# Import all types, data models, and classes from the package (Issue #381 refactoring)
99-
from src.utils.redis_management.types import (
103+
from backend.utils.redis_management.types import (
100104
DATABASE_MAPPING,
101105
ConnectionState,
102106
RedisDatabase,
@@ -500,7 +504,7 @@ def __init__(self):
500504
"""Initialize deprecated manager with deprecation warning."""
501505
logger.warning(
502506
"DEPRECATED: RedisDatabaseManager is deprecated. "
503-
"Use get_redis_client() from src.utils.redis_client instead."
507+
"Use get_redis_client() from backend.utils.redis_client instead."
504508
)
505509

506510
def get_connection(

‎autobot-shared/ssot_config.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
through Pydantic models for type safety and validation.
1414
1515
Usage:
16-
from src.config.ssot_config import get_config, config
16+
from autobot_shared.ssot_config import get_config, config
1717
1818
# Access VM IPs
1919
redis_ip = config.vm.redis

‎autobot-user-backend/api/terminal_handlers.py‎

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
from datetime import datetime
2929
from typing import Awaitable, Callable, Dict, Optional
3030

31+
from chat_history import ChatHistoryManager
32+
from constants.path_constants import PATH
33+
from constants.threshold_constants import TimingConstants
3134
from fastapi import WebSocket
3235

3336
# Import models from dedicated module (Issue #185)
@@ -45,9 +48,6 @@
4548
LOGGING_SECURITY_LEVELS,
4649
SHELL_OPERATORS,
4750
)
48-
from chat_history import ChatHistoryManager
49-
from constants.path_constants import PATH
50-
from constants.threshold_constants import TimingConstants
5151

5252
# Issue #380: Module-level frozenset for terminal close event types
5353
_TERMINAL_CLOSE_EVENTS = frozenset({"eo", "close"})
@@ -181,7 +181,7 @@ def __init__(
181181

182182
# Initialize TerminalLogger for persistent command logging
183183
if conversation_id:
184-
from logging.terminal_logger import TerminalLogger
184+
from autobot_logging.terminal_logger import TerminalLogger
185185

186186
self.terminal_logger = TerminalLogger(
187187
redis_client=redis_client, data_dir="data/chats"
@@ -639,7 +639,6 @@ async def _write_to_transcript(self, text: str) -> None:
639639
from pathlib import Path
640640

641641
import aiofiles
642-
643642
from utils.encoding_utils import strip_ansi_codes
644643

645644
# Strip ANSI escape codes before writing to transcript
@@ -1181,7 +1180,6 @@ async def _log_to_transcript(self, content: str) -> None:
11811180
from pathlib import Path
11821181

11831182
import aiofiles
1184-
11851183
from utils.encoding_utils import strip_ansi_codes
11861184

11871185
try:

autobot-user-backend/logging/__init__.py renamed to autobot-user-backend/autobot_logging/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
- TerminalLogger: Terminal command logging with AUTOBOT/MANUAL markers
99
"""
1010

11-
from logging.terminal_logger import TerminalLogger
11+
from autobot_logging.terminal_logger import TerminalLogger
1212

1313
__all__ = ["TerminalLogger"]
File renamed without changes.

‎autobot-user-backend/backend‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
autobot-user-backend

0 commit comments

Comments
 (0)