"""Training pipeline for strategic reasoning via game-theory environments.""" __all__ = [ "LLMAgent", "PromptBuilder", "parse_action", "episode_reward", "get_train_eval_split", "EpisodeTrajectory", "StepRecord", "TrajectoryCollector", ] def __getattr__(name: str) -> object: """Lazy imports to avoid pulling in openenv at package load time.""" if name in ("LLMAgent", "PromptBuilder", "parse_action"): from train.agent import LLMAgent, PromptBuilder, parse_action _map = { "LLMAgent": LLMAgent, "PromptBuilder": PromptBuilder, "parse_action": parse_action, } return _map[name] if name == "episode_reward": from train.rewards import episode_reward return episode_reward if name == "get_train_eval_split": from train.splits import get_train_eval_split return get_train_eval_split if name in ("EpisodeTrajectory", "StepRecord", "TrajectoryCollector"): from train.trajectory import ( EpisodeTrajectory, StepRecord, TrajectoryCollector, ) _map = { "EpisodeTrajectory": EpisodeTrajectory, "StepRecord": StepRecord, "TrajectoryCollector": TrajectoryCollector, } return _map[name] msg = f"module 'train' has no attribute {name!r}" raise AttributeError(msg)