FROM python:3.10.16-slim # Install system dependencies: git (already there) and ffmpeg (new) RUN apt-get update && apt-get install -y git ffmpeg && rm -rf /var/lib/apt/lists/* RUN python --version WORKDIR /app # Copy requirements and install dependencies COPY requirements.txt . RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt # Copy all Space files COPY . . # --- Patch 1: Add missing constants --- RUN CONSTANTS_FILE=$(find /usr/local/lib -name constants.py -path "*/agentic_reliability_framework/core/config/*") && \ echo "from typing import Final" >> $CONSTANTS_FILE && \ echo "" >> $CONSTANTS_FILE && \ echo "# === PERFORMANCE CONSTANTS ===" >> $CONSTANTS_FILE && \ echo "HISTORY_WINDOW: Final[int] = 50" >> $CONSTANTS_FILE && \ echo "MAX_EVENTS_STORED: Final[int] = 1000" >> $CONSTANTS_FILE && \ echo "AGENT_TIMEOUT_SECONDS: Final[int] = 5" >> $CONSTANTS_FILE && \ echo "CACHE_EXPIRY_MINUTES: Final[int] = 15" >> $CONSTANTS_FILE && \ echo "" >> $CONSTANTS_FILE && \ echo "# === FORECASTING CONSTANTS ===" >> $CONSTANTS_FILE && \ echo "FORECAST_MIN_DATA_POINTS: Final[int] = 5" >> $CONSTANTS_FILE && \ echo "FORECAST_LOOKAHEAD_MINUTES: Final[int] = 15" >> $CONSTANTS_FILE && \ echo "SLOPE_THRESHOLD_INCREASING: Final[float] = 5.0" >> $CONSTANTS_FILE && \ echo "SLOPE_THRESHOLD_DECREASING: Final[float] = -2.0" >> $CONSTANTS_FILE && \ echo "" >> $CONSTANTS_FILE && \ echo "# === THRESHOLD CONSTANTS ===" >> $CONSTANTS_FILE && \ echo "LATENCY_WARNING: Final[float] = 150.0" >> $CONSTANTS_FILE && \ echo "LATENCY_CRITICAL: Final[float] = 300.0" >> $CONSTANTS_FILE && \ echo "LATENCY_EXTREME: Final[float] = 500.0" >> $CONSTANTS_FILE && \ echo "ERROR_RATE_WARNING: Final[float] = 0.05" >> $CONSTANTS_FILE && \ echo "ERROR_RATE_HIGH: Final[float] = 0.15" >> $CONSTANTS_FILE && \ echo "ERROR_RATE_CRITICAL: Final[float] = 0.3" >> $CONSTANTS_FILE && \ echo "CPU_WARNING: Final[float] = 0.8" >> $CONSTANTS_FILE && \ echo "CPU_CRITICAL: Final[float] = 0.9" >> $CONSTANTS_FILE && \ echo "MEMORY_WARNING: Final[float] = 0.8" >> $CONSTANTS_FILE && \ echo "MEMORY_CRITICAL: Final[float] = 0.9" >> $CONSTANTS_FILE && \ echo "" >> $CONSTANTS_FILE && \ echo "# === RATE LIMITING ===" >> $CONSTANTS_FILE && \ echo "MAX_REQUESTS_PER_MINUTE: Final[int] = 60" >> $CONSTANTS_FILE && \ echo "MAX_REQUESTS_PER_HOUR: Final[int] = 500" >> $CONSTANTS_FILE && \ echo "" >> $CONSTANTS_FILE && \ echo "# === BUSINESS METRICS ===" >> $CONSTANTS_FILE && \ echo "BASE_REVENUE_PER_MINUTE: Final[float] = 100.0" >> $CONSTANTS_FILE && \ echo "BASE_USERS: Final[int] = 1000" >> $CONSTANTS_FILE # --- Patch 2: Add missing event.py --- RUN mkdir -p /usr/local/lib/python3.10/site-packages/agentic_reliability_framework/core/models && \ cp event.py /usr/local/lib/python3.10/site-packages/agentic_reliability_framework/core/models/ # --- Patch 3: Replace engine.py with fixed version --- RUN ENGINE_FILE=$(find /usr/local/lib -name engine.py -path "*/agentic_reliability_framework/runtime/*") && \ cp engine.py $ENGINE_FILE # --- Patch 4: Add policy_engine.py to the Python path --- # (Already in /app, which is in sys.path, so no extra step needed) CMD ["python", "app.py"]