File size: 3,343 Bytes
8f3f9b0
 
7956bb0
 
f4308a7
8f3f9b0
a0a7882
 
 
03ff9cc
a0a7882
f4308a7
 
a0a7882
7956bb0
03ff9cc
 
4a3172e
9514e94
192e3bb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9514e94
 
 
 
 
 
 
 
 
192e3bb
 
 
 
 
 
 
 
 
9514e94
4a3172e
03ff9cc
770a358
4a3172e
ad055f3
4a3172e
 
a0a7882
ad055f3
 
 
a0a7882
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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"]