File size: 642 Bytes
ef93755
7257069
 
ef93755
 
7257069
 
ef93755
 
 
 
7257069
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
"""
SecureCodeEnv - Episode State
Manages per-session state during an RL episode.
"""
from dataclasses import dataclass, field
from typing import Optional
from codegraph.graph import CodeGraph


@dataclass
class EpisodeState:
    task: dict
    graph: CodeGraph
    step: int = 0
    done: bool = False
    scores_history: list = field(default_factory=list)
    created_at: float = field(default_factory=lambda: __import__('time').time())

    def is_expired(self, ttl_seconds: int = 3600) -> bool:
        """Sessions expire after 1 hour to prevent memory leaks."""
        return (__import__('time').time() - self.created_at) > ttl_seconds