import json from datetime import datetime from pathlib import Path class SessionLogger: def __init__(self, session_dir="sessions"): self.session_dir = Path(session_dir) self.session_dir.mkdir(exist_ok=True) self.session_id = datetime.now().strftime("%Y%m%d_%H%M%S") self.turns = [] self.start_time = datetime.now().isoformat() def log_turn(self, turn_number, user_message, counselor_message, disclosure_score, dimension_score, reason, mcts_trace=None): turn_log = { "timestamp": datetime.now().isoformat(), "turn_number": turn_number, "user_message": user_message, "counselor_message": counselor_message, "disclosure_score": disclosure_score, "dimension_score": dimension_score, "reason": reason, } if mcts_trace is not None: turn_log["mcts_trace"] = mcts_trace self.turns.append(turn_log) self._save() def _save(self): session_log = { "session_id": self.session_id, "start_time": self.start_time, "turns": self.turns } with open(self.session_dir / f"session_{self.session_id}.json", "w", encoding="utf-8") as f: json.dump(session_log, f, ensure_ascii=False, indent=4) def get_filepath(self): return str(self.session_dir / f"session_{self.session_id}.json")