SYMBOL INDEX (562 symbols across 32 files) FILE: backend/app/__init__.py function create_app (line 19) | def create_app(config_class=Config): FILE: backend/app/api/graph.py function allowed_file (line 25) | def allowed_file(filename: str) -> bool: function get_project (line 36) | def get_project(project_id: str): function list_projects (line 55) | def list_projects(): function delete_project (line 70) | def delete_project(project_id: str): function reset_project (line 89) | def reset_project(project_id: str): function generate_ontology (line 122) | def generate_ontology(): function build_graph (line 260) | def build_graph(): function get_task (line 530) | def get_task(task_id: str): function list_tasks (line 549) | def list_tasks(): function get_graph_data (line 565) | def get_graph_data(graph_id: str): function delete_graph (line 593) | def delete_graph(graph_id: str): FILE: backend/app/api/report.py function generate_report (line 25) | def generate_report(): function get_generate_status (line 199) | def get_generate_status(): function get_report (line 273) | def get_report(report_id: str): function get_report_by_simulation (line 315) | def get_report_by_simulation(simulation_id: str): function list_reports (line 354) | def list_reports(): function download_report (line 394) | def download_report(report_id: str): function delete_report (line 440) | def delete_report(report_id: str): function chat_with_report_agent (line 468) | def chat_with_report_agent(): function get_report_progress (line 565) | def get_report_progress(report_id: str): function get_report_sections (line 606) | def get_report_sections(report_id: str): function get_single_section (line 657) | def get_single_section(report_id: str, section_index: int): function check_report_status (line 703) | def check_report_status(simulation_id: str): function get_agent_log (line 754) | def get_agent_log(report_id: str): function stream_agent_log (line 813) | def stream_agent_log(report_id: str): function get_console_log (line 849) | def get_console_log(report_id: str): function stream_console_log (line 895) | def stream_console_log(report_id: str): function search_graph_tool (line 931) | def search_graph_tool(): function get_graph_statistics_tool (line 979) | def get_graph_statistics_tool(): FILE: backend/app/api/simulation.py function optimize_interview_prompt (line 27) | def optimize_interview_prompt(prompt: str) -> str: function get_graph_entities (line 48) | def get_graph_entities(graph_id: str): function get_entity_detail (line 93) | def get_entity_detail(graph_id: str, entity_uuid: str): function get_entities_by_type (line 126) | def get_entities_by_type(graph_id: str, entity_type: str): function create_simulation (line 165) | def create_simulation(): function _check_simulation_prepared (line 239) | def _check_simulation_prepared(simulation_id: str) -> tuple: function prepare_simulation (line 359) | def prepare_simulation(): function get_prepare_status (line 638) | def get_prepare_status(): function get_simulation (line 751) | def get_simulation(simulation_id: str): function list_simulations (line 784) | def list_simulations(): function _get_report_id_for_simulation (line 812) | def _get_report_id_for_simulation(simulation_id: str) -> str: function get_simulation_history (line 872) | def get_simulation_history(): function get_simulation_profiles (line 986) | def get_simulation_profiles(simulation_id: str): function get_simulation_profiles_realtime (line 1024) | def get_simulation_profiles_realtime(simulation_id: str): function get_simulation_config_realtime (line 1134) | def get_simulation_config_realtime(simulation_id: str): function get_simulation_config (line 1254) | def get_simulation_config(simulation_id: str): function download_simulation_config (line 1290) | def download_simulation_config(simulation_id: str): function download_simulation_script (line 1319) | def download_simulation_script(script_name: str): function generate_profiles (line 1373) | def generate_profiles(): function start_simulation (line 1447) | def start_simulation(): function stop_simulation (line 1640) | def stop_simulation(): function get_run_status (line 1701) | def get_run_status(simulation_id: str): function get_run_status_detail (line 1759) | def get_run_status_detail(simulation_id: str): function get_simulation_actions (line 1860) | def get_simulation_actions(simulation_id: str): function get_simulation_timeline (line 1914) | def get_simulation_timeline(simulation_id: str): function get_agent_stats (line 1954) | def get_agent_stats(simulation_id: str): function get_simulation_posts (line 1983) | def get_simulation_posts(simulation_id: str): function get_simulation_comments (line 2061) | def get_simulation_comments(simulation_id: str): function interview_agent (line 2138) | def interview_agent(): function interview_agents_batch (line 2267) | def interview_agents_batch(): function interview_all_agents (line 2405) | def interview_all_agents(): function get_interview_history (line 2508) | def get_interview_history(): function get_env_status (line 2580) | def get_env_status(): function close_simulation_env (line 2645) | def close_simulation_env(): FILE: backend/app/config.py class Config (line 20) | class Config: method validate (line 67) | def validate(cls): FILE: backend/app/models/project.py class ProjectStatus (line 17) | class ProjectStatus(str, Enum): class Project (line 27) | class Project: method to_dict (line 55) | def to_dict(self) -> Dict[str, Any]: method from_dict (line 76) | def from_dict(cls, data: Dict[str, Any]) -> 'Project': class ProjectManager (line 101) | class ProjectManager: method _ensure_projects_dir (line 108) | def _ensure_projects_dir(cls): method _get_project_dir (line 113) | def _get_project_dir(cls, project_id: str) -> str: method _get_project_meta_path (line 118) | def _get_project_meta_path(cls, project_id: str) -> str: method _get_project_files_dir (line 123) | def _get_project_files_dir(cls, project_id: str) -> str: method _get_project_text_path (line 128) | def _get_project_text_path(cls, project_id: str) -> str: method create_project (line 133) | def create_project(cls, name: str = "Unnamed Project") -> Project: method save_project (line 168) | def save_project(cls, project: Project) -> None: method get_project (line 177) | def get_project(cls, project_id: str) -> Optional[Project]: method list_projects (line 198) | def list_projects(cls, limit: int = 50) -> List[Project]: method delete_project (line 222) | def delete_project(cls, project_id: str) -> bool: method save_file_to_project (line 241) | def save_file_to_project(cls, project_id: str, file_storage, original_... method save_extracted_text (line 275) | def save_extracted_text(cls, project_id: str, text: str) -> None: method get_extracted_text (line 282) | def get_extracted_text(cls, project_id: str) -> Optional[str]: method get_project_files (line 293) | def get_project_files(cls, project_id: str) -> List[str]: FILE: backend/app/models/task.py class TaskStatus (line 14) | class TaskStatus(str, Enum): class Task (line 23) | class Task: method to_dict (line 37) | def to_dict(self) -> Dict[str, Any]: class TaskManager (line 54) | class TaskManager: method __new__ (line 63) | def __new__(cls): method create_task (line 73) | def create_task(self, task_type: str, metadata: Optional[Dict] = None)... method get_task (line 101) | def get_task(self, task_id: str) -> Optional[Task]: method update_task (line 106) | def update_task( method complete_task (line 145) | def complete_task(self, task_id: str, result: Dict): method fail_task (line 155) | def fail_task(self, task_id: str, error: str): method list_tasks (line 164) | def list_tasks(self, task_type: Optional[str] = None) -> list: method cleanup_old_tasks (line 172) | def cleanup_old_tasks(self, max_age_hours: int = 24): FILE: backend/app/services/graph_builder.py class GraphInfo (line 23) | class GraphInfo: method to_dict (line 30) | def to_dict(self) -> Dict[str, Any]: class GraphBuilderService (line 39) | class GraphBuilderService: method __init__ (line 45) | def __init__(self, api_key: Optional[str] = None): method build_graph_async (line 53) | def build_graph_async( method _build_graph_worker (line 96) | def _build_graph_worker( method create_graph (line 187) | def create_graph(self, name: str) -> str: method set_ontology (line 199) | def set_ontology(self, graph_id: str, ontology: Dict[str, Any]): method add_text_batches (line 288) | def add_text_batches( method _wait_for_episodes (line 341) | def _wait_for_episodes( method _get_graph_info (line 397) | def _get_graph_info(self, graph_id: str) -> GraphInfo: method get_graph_data (line 420) | def get_graph_data(self, graph_id: str) -> Dict[str, Any]: method delete_graph (line 497) | def delete_graph(self, graph_id: str): FILE: backend/app/services/oasis_profile_generator.py class OasisAgentProfile (line 29) | class OasisAgentProfile: method to_reddit_format (line 60) | def to_reddit_format(self) -> Dict[str, Any]: method to_twitter_format (line 88) | def to_twitter_format(self) -> Dict[str, Any]: method to_dict (line 118) | def to_dict(self) -> Dict[str, Any]: class OasisProfileGenerator (line 142) | class OasisProfileGenerator: method __init__ (line 180) | def __init__( method generate_profile_from_entity (line 211) | def generate_profile_from_entity( method _generate_username (line 275) | def _generate_username(self, name: str) -> str: method _search_zep_for_entity (line 285) | def _search_zep_for_entity(self, entity: EntityNode) -> Dict[str, Any]: method _build_entity_context (line 413) | def _build_entity_context(self, entity: EntityNode) -> str: method _is_individual_entity (line 488) | def _is_individual_entity(self, entity_type: str) -> bool: method _is_group_entity (line 492) | def _is_group_entity(self, entity_type: str) -> bool: method _generate_profile_with_llm (line 496) | def _generate_profile_with_llm( method _fix_truncated_json (line 582) | def _fix_truncated_json(self, content: str) -> str: method _try_fix_json (line 605) | def _try_fix_json(self, content: str, entity_name: str, entity_type: s... method _get_system_prompt (line 671) | def _get_system_prompt(self, is_individual: bool) -> str: method _build_individual_persona_prompt (line 676) | def _build_individual_persona_prompt( method _build_group_persona_prompt (line 725) | def _build_group_persona_prompt( method _generate_profile_rule_based (line 773) | def _generate_profile_rule_based( method set_graph_id (line 846) | def set_graph_id(self, graph_id: str): method generate_profiles_from_entities (line 850) | def generate_profiles_from_entities( method _print_generated_profile (line 1011) | def _print_generated_profile(self, entity_name: str, entity_type: str,... method save_profiles (line 1042) | def save_profiles( method _save_twitter_csv (line 1065) | def _save_twitter_csv(self, profiles: List[OasisAgentProfile], file_pa... method _normalize_gender (line 1116) | def _normalize_gender(self, gender: Optional[str]) -> str: method _save_reddit_json (line 1141) | def _save_reddit_json(self, profiles: List[OasisAgentProfile], file_pa... method save_profiles_to_json (line 1191) | def save_profiles_to_json( FILE: backend/app/services/ontology_generator.py class OntologyGenerator (line 158) | class OntologyGenerator: method __init__ (line 164) | def __init__(self, llm_client: Optional[LLMClient] = None): method generate (line 167) | def generate( method _build_user_message (line 211) | def _build_user_message( method _validate_and_process (line 257) | def _validate_and_process(self, result: Dict[str, Any]) -> Dict[str, A... method generate_python_code (line 347) | def generate_python_code(self, ontology: Dict[str, Any]) -> str: FILE: backend/app/services/report_agent.py class ReportLogger (line 35) | class ReportLogger: method __init__ (line 43) | def __init__(self, report_id: str): method _ensure_log_file (line 57) | def _ensure_log_file(self): method _get_elapsed_time (line 62) | def _get_elapsed_time(self) -> float: method log (line 66) | def log( method log_start (line 99) | def log_start(self, simulation_id: str, graph_id: str, simulation_requ... method log_planning_start (line 112) | def log_planning_start(self): method log_planning_context (line 120) | def log_planning_context(self, context: Dict[str, Any]): method log_planning_complete (line 131) | def log_planning_complete(self, outline_dict: Dict[str, Any]): method log_section_start (line 142) | def log_section_start(self, section_title: str, section_index: int): method log_react_thought (line 152) | def log_react_thought(self, section_title: str, section_index: int, it... method log_tool_call (line 166) | def log_tool_call( method log_tool_result (line 188) | def log_tool_result( method log_llm_response (line 211) | def log_llm_response( method log_section_content (line 236) | def log_section_content( method log_section_full_complete (line 257) | def log_section_full_complete( method log_report_complete (line 280) | def log_report_complete(self, total_sections: int, total_time_seconds:... method log_error (line 292) | def log_error(self, error_message: str, stage: str, section_title: str... class ReportConsoleLogger (line 306) | class ReportConsoleLogger: method __init__ (line 314) | def __init__(self, report_id: str): method _ensure_log_file (line 329) | def _ensure_log_file(self): method _setup_file_handler (line 334) | def _setup_file_handler(self): method close (line 365) | def close(self): method __del__ (line 383) | def __del__(self): class ReportStatus (line 388) | class ReportStatus(str, Enum): class ReportSection (line 398) | class ReportSection: method to_dict (line 403) | def to_dict(self) -> Dict[str, Any]: method to_markdown (line 409) | def to_markdown(self, level: int = 2) -> str: class ReportOutline (line 418) | class ReportOutline: method to_dict (line 424) | def to_dict(self) -> Dict[str, Any]: method to_markdown (line 431) | def to_markdown(self) -> str: class Report (line 441) | class Report: method to_dict (line 454) | def to_dict(self) -> Dict[str, Any]: class ReportAgent (line 864) | class ReportAgent: method __init__ (line 883) | def __init__( method _define_tools (line 918) | def _define_tools(self) -> Dict[str, Dict[str, Any]]: method _execute_tool (line 955) | def _execute_tool(self, tool_name: str, parameters: Dict[str, Any], re... method _parse_tool_calls (line 1066) | def _parse_tool_calls(self, response: str) -> List[Dict[str, Any]]: method _is_valid_tool_call (line 1113) | def _is_valid_tool_call(self, data: dict) -> bool: method _get_tools_description (line 1126) | def _get_tools_description(self) -> str: method plan_outline (line 1136) | def plan_outline( method _generate_section_react (line 1220) | def _generate_section_react( method generate_report (line 1532) | def generate_report( method chat (line 1766) | def chat( class ReportManager (line 1883) | class ReportManager: method _ensure_reports_dir (line 1905) | def _ensure_reports_dir(cls): method _get_report_folder (line 1910) | def _get_report_folder(cls, report_id: str) -> str: method _ensure_report_folder (line 1915) | def _ensure_report_folder(cls, report_id: str) -> str: method _get_report_path (line 1922) | def _get_report_path(cls, report_id: str) -> str: method _get_report_markdown_path (line 1927) | def _get_report_markdown_path(cls, report_id: str) -> str: method _get_outline_path (line 1932) | def _get_outline_path(cls, report_id: str) -> str: method _get_progress_path (line 1937) | def _get_progress_path(cls, report_id: str) -> str: method _get_section_path (line 1942) | def _get_section_path(cls, report_id: str, section_index: int) -> str: method _get_agent_log_path (line 1947) | def _get_agent_log_path(cls, report_id: str) -> str: method _get_console_log_path (line 1952) | def _get_console_log_path(cls, report_id: str) -> str: method get_console_log (line 1957) | def get_console_log(cls, report_id: str, from_line: int = 0) -> Dict[s... method get_console_log_stream (line 2004) | def get_console_log_stream(cls, report_id: str) -> List[str]: method get_agent_log (line 2018) | def get_agent_log(cls, report_id: str, from_line: int = 0) -> Dict[str... method get_agent_log_stream (line 2066) | def get_agent_log_stream(cls, report_id: str) -> List[Dict[str, Any]]: method save_outline (line 2080) | def save_outline(cls, report_id: str, outline: ReportOutline) -> None: method save_section (line 2094) | def save_section( method _clean_section_content (line 2131) | def _clean_section_content(cls, content: str, section_title: str) -> str: method update_progress (line 2199) | def update_progress( method get_progress (line 2228) | def get_progress(cls, report_id: str) -> Optional[Dict[str, Any]]: method get_generated_sections (line 2239) | def get_generated_sections(cls, report_id: str) -> List[Dict[str, Any]]: method assemble_full_report (line 2270) | def assemble_full_report(cls, report_id: str, outline: ReportOutline) ... method _post_process_report (line 2300) | def _post_process_report(cls, content: str, outline: ReportOutline) ->... method save_report (line 2426) | def save_report(cls, report: Report) -> None: method get_report (line 2446) | def get_report(cls, report_id: str) -> Optional[Report]: method get_report_by_simulation (line 2499) | def get_report_by_simulation(cls, simulation_id: str) -> Optional[Repo... method list_reports (line 2520) | def list_reports(cls, simulation_id: Optional[str] = None, limit: int ... method delete_report (line 2547) | def delete_report(cls, report_id: str) -> bool: FILE: backend/app/services/simulation_config_generator.py class AgentActivityConfig (line 51) | class AgentActivityConfig: class TimeSimulationConfig (line 83) | class TimeSimulationConfig: class EventConfig (line 113) | class EventConfig: class PlatformConfig (line 129) | class PlatformConfig: class SimulationParameters (line 146) | class SimulationParameters: method to_dict (line 175) | def to_dict(self) -> Dict[str, Any]: method to_json (line 194) | def to_json(self, indent: int = 2) -> str: class SimulationConfigGenerator (line 199) | class SimulationConfigGenerator: method __init__ (line 224) | def __init__( method generate_config (line 242) | def generate_config( method _build_context (line 380) | def _build_context( method _summarize_entities (line 408) | def _summarize_entities(self, entities: List[EntityNode]) -> str: method _call_llm_with_retry (line 433) | def _call_llm_with_retry(self, prompt: str, system_prompt: str) -> Dic... method _fix_truncated_json (line 482) | def _fix_truncated_json(self, content: str) -> str: method _try_fix_config_json (line 500) | def _try_fix_config_json(self, content: str) -> Optional[Dict[str, Any]]: method _generate_time_config (line 534) | def _generate_time_config(self, context: str, num_entities: int) -> Di... method _get_default_time_config (line 595) | def _get_default_time_config(self, num_entities: int) -> Dict[str, Any]: method _parse_time_config (line 609) | def _parse_time_config(self, result: Dict[str, Any], num_entities: int... method _generate_event_config (line 644) | def _generate_event_config( method _parse_event_config (line 716) | def _parse_event_config(self, result: Dict[str, Any]) -> EventConfig: method _assign_initial_post_agents (line 725) | def _assign_initial_post_agents( method _generate_agent_configs_batch (line 810) | def _generate_agent_configs_batch( method _generate_agent_config_by_rule (line 904) | def _generate_agent_config_by_rule(self, entity: EntityNode) -> Dict[s... FILE: backend/app/services/simulation_ipc.py class CommandType (line 25) | class CommandType(str, Enum): class CommandStatus (line 32) | class CommandStatus(str, Enum): class IPCCommand (line 41) | class IPCCommand: method to_dict (line 48) | def to_dict(self) -> Dict[str, Any]: method from_dict (line 57) | def from_dict(cls, data: Dict[str, Any]) -> 'IPCCommand': class IPCResponse (line 67) | class IPCResponse: method to_dict (line 75) | def to_dict(self) -> Dict[str, Any]: method from_dict (line 85) | def from_dict(cls, data: Dict[str, Any]) -> 'IPCResponse': class SimulationIPCClient (line 95) | class SimulationIPCClient: method __init__ (line 102) | def __init__(self, simulation_dir: str): method send_command (line 117) | def send_command( method send_interview (line 189) | def send_interview( method send_batch_interview (line 224) | def send_batch_interview( method send_close_env (line 254) | def send_close_env(self, timeout: float = 30.0) -> IPCResponse: method check_env_alive (line 270) | def check_env_alive(self) -> bool: class SimulationIPCServer (line 288) | class SimulationIPCServer: method __init__ (line 295) | def __init__(self, simulation_dir: str): method start (line 313) | def start(self): method stop (line 318) | def stop(self): method _update_env_status (line 323) | def _update_env_status(self, status: str): method poll_commands (line 332) | def poll_commands(self) -> Optional[IPCCommand]: method send_response (line 362) | def send_response(self, response: IPCResponse): method send_success (line 380) | def send_success(self, command_id: str, result: Dict[str, Any]): method send_error (line 388) | def send_error(self, command_id: str, error: str): FILE: backend/app/services/simulation_manager.py class SimulationStatus (line 24) | class SimulationStatus(str, Enum): class PlatformType (line 36) | class PlatformType(str, Enum): class SimulationState (line 43) | class SimulationState: method to_dict (line 77) | def to_dict(self) -> Dict[str, Any]: method to_simple_dict (line 99) | def to_simple_dict(self) -> Dict[str, Any]: class SimulationManager (line 114) | class SimulationManager: method __init__ (line 131) | def __init__(self): method _get_simulation_dir (line 138) | def _get_simulation_dir(self, simulation_id: str) -> str: method _save_simulation_state (line 144) | def _save_simulation_state(self, state: SimulationState): method _load_simulation_state (line 156) | def _load_simulation_state(self, simulation_id: str) -> Optional[Simul... method create_simulation (line 193) | def create_simulation( method prepare_simulation (line 229) | def prepare_simulation( method get_simulation (line 458) | def get_simulation(self, simulation_id: str) -> Optional[SimulationSta... method list_simulations (line 462) | def list_simulations(self, project_id: Optional[str] = None) -> List[S... method get_profiles (line 480) | def get_profiles(self, simulation_id: str, platform: str = "reddit") -... method get_simulation_config (line 495) | def get_simulation_config(self, simulation_id: str) -> Optional[Dict[s... method get_run_instructions (line 506) | def get_run_instructions(self, simulation_id: str) -> Dict[str, str]: FILE: backend/app/services/simulation_runner.py class RunnerStatus (line 35) | class RunnerStatus(str, Enum): class AgentAction (line 48) | class AgentAction: method to_dict (line 60) | def to_dict(self) -> Dict[str, Any]: class RoundSummary (line 75) | class RoundSummary: method to_dict (line 86) | def to_dict(self) -> Dict[str, Any]: class SimulationRunState (line 101) | class SimulationRunState: method add_action (line 146) | def add_action(self, action: AgentAction): method to_dict (line 159) | def to_dict(self) -> Dict[str, Any]: method to_detail_dict (line 187) | def to_detail_dict(self) -> Dict[str, Any]: class SimulationRunner (line 195) | class SimulationRunner: method get_run_state (line 230) | def get_run_state(cls, simulation_id: str) -> Optional[SimulationRunSt... method _load_run_state (line 242) | def _load_run_state(cls, simulation_id: str) -> Optional[SimulationRun... method _save_run_state (line 298) | def _save_run_state(cls, state: SimulationRunState): method start_simulation (line 312) | def start_simulation( method _monitor_simulation (line 478) | def _monitor_simulation(cls, simulation_id: str): method _read_action_log (line 579) | def _read_action_log( method _check_all_platforms_completed (line 689) | def _check_all_platforms_completed(cls, state: SimulationRunState) -> ... method _terminate_process (line 716) | def _terminate_process(cls, process: subprocess.Popen, simulation_id: ... method stop_simulation (line 772) | def stop_simulation(cls, simulation_id: str) -> SimulationRunState: method _read_actions_from_file (line 820) | def _read_actions_from_file( method get_all_actions (line 889) | def get_all_actions( method get_actions (line 950) | def get_actions( method get_timeline (line 984) | def get_timeline( method get_agent_stats (line 1055) | def get_agent_stats(cls, simulation_id: str) -> List[Dict[str, Any]]: method cleanup_simulation_logs (line 1098) | def cleanup_simulation_logs(cls, simulation_id: str) -> Dict[str, Any]: method cleanup_all_simulations (line 1182) | def cleanup_all_simulations(cls): method register_cleanup (line 1283) | def register_cleanup(cls): method get_running_simulations (line 1356) | def get_running_simulations(cls) -> List[str]: method check_env_alive (line 1369) | def check_env_alive(cls, simulation_id: str) -> bool: method get_env_status_detail (line 1387) | def get_env_status_detail(cls, simulation_id: str) -> Dict[str, Any]: method interview_agent (line 1423) | def interview_agent( method interview_agents_batch (line 1487) | def interview_agents_batch( method interview_all_agents (line 1546) | def interview_all_agents( method close_simulation_env (line 1606) | def close_simulation_env( method _get_interview_history_from_db (line 1654) | def _get_interview_history_from_db( method get_interview_history (line 1712) | def get_interview_history( FILE: backend/app/services/text_processor.py class TextProcessor (line 9) | class TextProcessor: method extract_from_files (line 13) | def extract_from_files(file_paths: List[str]) -> str: method split_text (line 18) | def split_text( method preprocess_text (line 37) | def preprocess_text(text: str) -> str: method get_text_stats (line 64) | def get_text_stats(text: str) -> dict: FILE: backend/app/services/zep_entity_reader.py class EntityNode (line 23) | class EntityNode: method to_dict (line 35) | def to_dict(self) -> Dict[str, Any]: method get_entity_type (line 46) | def get_entity_type(self) -> Optional[str]: class FilteredEntities (line 55) | class FilteredEntities: method to_dict (line 62) | def to_dict(self) -> Dict[str, Any]: class ZepEntityReader (line 71) | class ZepEntityReader: method __init__ (line 81) | def __init__(self, api_key: Optional[str] = None): method _call_with_retry (line 88) | def _call_with_retry( method get_all_nodes (line 127) | def get_all_nodes(self, graph_id: str) -> List[Dict[str, Any]]: method get_all_edges (line 154) | def get_all_edges(self, graph_id: str) -> List[Dict[str, Any]]: method get_node_edges (line 182) | def get_node_edges(self, node_uuid: str) -> List[Dict[str, Any]]: method filter_defined_entities (line 215) | def filter_defined_entities( method get_entity_with_context (line 333) | def get_entity_with_context( method get_entities_by_type (line 413) | def get_entities_by_type( FILE: backend/app/services/zep_graph_memory_updater.py class AgentActivity (line 24) | class AgentActivity: method to_episode_text (line 34) | def to_episode_text(self) -> str: method _describe_create_post (line 63) | def _describe_create_post(self) -> str: method _describe_like_post (line 69) | def _describe_like_post(self) -> str: method _describe_dislike_post (line 82) | def _describe_dislike_post(self) -> str: method _describe_repost (line 95) | def _describe_repost(self) -> str: method _describe_quote_post (line 108) | def _describe_quote_post(self) -> str: method _describe_follow (line 128) | def _describe_follow(self) -> str: method _describe_create_comment (line 136) | def _describe_create_comment(self) -> str: method _describe_like_comment (line 152) | def _describe_like_comment(self) -> str: method _describe_dislike_comment (line 165) | def _describe_dislike_comment(self) -> str: method _describe_search (line 178) | def _describe_search(self) -> str: method _describe_search_user (line 183) | def _describe_search_user(self) -> str: method _describe_mute (line 188) | def _describe_mute(self) -> str: method _describe_generic (line 196) | def _describe_generic(self) -> str: class ZepGraphMemoryUpdater (line 201) | class ZepGraphMemoryUpdater: method __init__ (line 231) | def __init__(self, graph_id: str, api_key: Optional[str] = None): method _get_platform_display_name (line 270) | def _get_platform_display_name(self, platform: str) -> str: method start (line 274) | def start(self): method stop (line 288) | def stop(self): method add_activity (line 305) | def add_activity(self, activity: AgentActivity): method add_activity_from_dict (line 335) | def add_activity_from_dict(self, data: Dict[str, Any], platform: str): method _worker_loop (line 359) | def _worker_loop(self): method _send_batch_activities (line 390) | def _send_batch_activities(self, activities: List[AgentActivity], plat... method _flush_remaining (line 429) | def _flush_remaining(self): method get_stats (line 454) | def get_stats(self) -> Dict[str, Any]: class ZepGraphMemoryManager (line 473) | class ZepGraphMemoryManager: method create_updater (line 484) | def create_updater(cls, simulation_id: str, graph_id: str) -> ZepGraph... method get_updater (line 508) | def get_updater(cls, simulation_id: str) -> Optional[ZepGraphMemoryUpd... method stop_updater (line 513) | def stop_updater(cls, simulation_id: str): method stop_all (line 525) | def stop_all(cls): method get_all_stats (line 543) | def get_all_stats(cls) -> Dict[str, Dict[str, Any]]: FILE: backend/app/services/zep_tools.py class SearchResult (line 27) | class SearchResult: method to_dict (line 35) | def to_dict(self) -> Dict[str, Any]: method to_text (line 44) | def to_text(self) -> str: class NodeInfo (line 57) | class NodeInfo: method to_dict (line 65) | def to_dict(self) -> Dict[str, Any]: method to_text (line 74) | def to_text(self) -> str: class EdgeInfo (line 81) | class EdgeInfo: method to_dict (line 96) | def to_dict(self) -> Dict[str, Any]: method to_text (line 111) | def to_text(self, include_temporal: bool = False) -> str: method is_expired (line 127) | def is_expired(self) -> bool: method is_invalid (line 132) | def is_invalid(self) -> bool: class InsightForgeResult (line 138) | class InsightForgeResult: method to_dict (line 157) | def to_dict(self) -> Dict[str, Any]: method to_text (line 170) | def to_text(self) -> str: class PanoramaResult (line 214) | class PanoramaResult: method to_dict (line 236) | def to_dict(self) -> Dict[str, Any]: method to_text (line 249) | def to_text(self) -> str: class AgentInterview (line 284) | class AgentInterview: method to_dict (line 293) | def to_dict(self) -> Dict[str, Any]: method to_text (line 303) | def to_text(self) -> str: class InterviewResult (line 340) | class InterviewResult: method to_dict (line 362) | def to_dict(self) -> Dict[str, Any]: method to_text (line 374) | def to_text(self) -> str: class ZepToolsService (line 400) | class ZepToolsService: method __init__ (line 424) | def __init__(self, api_key: Optional[str] = None, llm_client: Optional... method llm (line 435) | def llm(self) -> LLMClient: method _call_with_retry (line 441) | def _call_with_retry(self, func, operation_name: str, max_retries: int... method search_graph (line 464) | def search_graph( method _local_search (line 546) | def _local_search( method get_all_nodes (line 650) | def get_all_nodes(self, graph_id: str) -> List[NodeInfo]: method get_all_edges (line 678) | def get_all_edges(self, graph_id: str, include_temporal: bool = True) ... method get_node_detail (line 716) | def get_node_detail(self, node_uuid: str) -> Optional[NodeInfo]: method get_node_edges (line 748) | def get_node_edges(self, graph_id: str, node_uuid: str) -> List[EdgeIn... method get_entities_by_type (line 780) | def get_entities_by_type( method get_entity_summary (line 808) | def get_entity_summary( method get_graph_statistics (line 855) | def get_graph_statistics(self, graph_id: str) -> Dict[str, Any]: method get_simulation_context (line 890) | def get_simulation_context( method insight_forge (line 945) | def insight_forge( method _generate_sub_queries (line 1092) | def _generate_sub_queries( method panorama_search (line 1145) | def panorama_search( method quick_search (line 1237) | def quick_search( method interview_agents (line 1272) | def interview_agents( method _clean_tool_call_response (line 1485) | def _clean_tool_call_response(response: str) -> str: method _load_agent_profiles (line 1505) | def _load_agent_profiles(self, simulation_id: str) -> List[Dict[str, A... method _select_agents_for_interview (line 1551) | def _select_agents_for_interview( method _generate_interview_questions (line 1634) | def _generate_interview_questions( method _generate_interview_summary (line 1683) | def _generate_interview_summary( FILE: backend/app/utils/file_parser.py function _read_text_with_fallback (line 11) | def _read_text_with_fallback(file_path: str) -> str: class FileParser (line 61) | class FileParser: method extract_text (line 67) | def extract_text(cls, file_path: str) -> str: method _extract_from_pdf (line 97) | def _extract_from_pdf(file_path: str) -> str: method _extract_from_md (line 114) | def _extract_from_md(file_path: str) -> str: method _extract_from_txt (line 119) | def _extract_from_txt(file_path: str) -> str: method extract_from_multiple (line 124) | def extract_from_multiple(cls, file_paths: List[str]) -> str: function split_text_into_chunks (line 147) | def split_text_into_chunks( FILE: backend/app/utils/llm_client.py class LLMClient (line 14) | class LLMClient: method __init__ (line 17) | def __init__( method chat (line 35) | def chat( method chat_json (line 70) | def chat_json( FILE: backend/app/utils/logger.py function _ensure_utf8_stdout (line 13) | def _ensure_utf8_stdout(): function setup_logger (line 30) | def setup_logger(name: str = 'mirofish', level: int = logging.DEBUG) -> ... function get_logger (line 91) | def get_logger(name: str = 'mirofish') -> logging.Logger: function debug (line 112) | def debug(msg, *args, **kwargs): function info (line 115) | def info(msg, *args, **kwargs): function warning (line 118) | def warning(msg, *args, **kwargs): function error (line 121) | def error(msg, *args, **kwargs): function critical (line 124) | def critical(msg, *args, **kwargs): FILE: backend/app/utils/retry.py function retry_with_backoff (line 15) | def retry_with_backoff( function retry_with_backoff_async (line 80) | def retry_with_backoff_async( class RetryableAPIClient (line 132) | class RetryableAPIClient: method __init__ (line 137) | def __init__( method call_with_retry (line 149) | def call_with_retry( method call_batch_with_retry (line 195) | def call_batch_with_retry( FILE: backend/app/utils/zep_paging.py function _fetch_page_with_retry (line 26) | def _fetch_page_with_retry( function fetch_all_nodes (line 59) | def fetch_all_nodes( function fetch_all_edges (line 105) | def fetch_all_edges( FILE: backend/run.py function main (line 25) | def main(): FILE: backend/scripts/action_logger.py class PlatformActionLogger (line 22) | class PlatformActionLogger: method __init__ (line 25) | def __init__(self, platform: str, base_dir: str): method _ensure_dir (line 39) | def _ensure_dir(self): method log_action (line 43) | def log_action( method log_round_start (line 68) | def log_round_start(self, round_num: int, simulated_hour: int): method log_round_end (line 80) | def log_round_end(self, round_num: int, actions_count: int): method log_simulation_start (line 92) | def log_simulation_start(self, config: Dict[str, Any]): method log_simulation_end (line 105) | def log_simulation_end(self, total_rounds: int, total_actions: int): class SimulationLogManager (line 119) | class SimulationLogManager: method __init__ (line 125) | def __init__(self, simulation_dir: str): method _setup_main_logger (line 140) | def _setup_main_logger(self): method get_twitter_logger (line 169) | def get_twitter_logger(self) -> PlatformActionLogger: method get_reddit_logger (line 175) | def get_reddit_logger(self) -> PlatformActionLogger: method log (line 181) | def log(self, message: str, level: str = "info"): method info (line 186) | def info(self, message: str): method warning (line 189) | def warning(self, message: str): method error (line 192) | def error(self, message: str): method debug (line 195) | def debug(self, message: str): class ActionLogger (line 201) | class ActionLogger: method __init__ (line 207) | def __init__(self, log_path: str): method _ensure_dir (line 211) | def _ensure_dir(self): method log_action (line 216) | def log_action( method log_round_start (line 242) | def log_round_start(self, round_num: int, simulated_hour: int, platfor... method log_round_end (line 254) | def log_round_end(self, round_num: int, actions_count: int, platform: ... method log_simulation_start (line 266) | def log_simulation_start(self, platform: str, config: Dict[str, Any]): method log_simulation_end (line 278) | def log_simulation_end(self, platform: str, total_rounds: int, total_a... function get_logger (line 295) | def get_logger(log_path: Optional[str] = None) -> ActionLogger: FILE: backend/scripts/run_parallel_simulation.py function _utf8_open (line 53) | def _utf8_open(file, mode='r', buffering=-1, encoding=None, errors=None, class MaxTokensWarningFilter (line 106) | class MaxTokensWarningFilter(logging.Filter): method filter (line 109) | def filter(self, record): function disable_oasis_logging (line 120) | def disable_oasis_logging(): function init_logging_for_simulation (line 141) | def init_logging_for_simulation(simulation_dir: str): class CommandType (line 210) | class CommandType: class ParallelIPCHandler (line 217) | class ParallelIPCHandler: method __init__ (line 224) | def __init__( method update_status (line 246) | def update_status(self, status: str): method poll_command (line 256) | def poll_command(self) -> Optional[Dict[str, Any]]: method send_response (line 279) | def send_response(self, command_id: str, status: str, result: Dict = N... method _get_env_and_graph (line 300) | def _get_env_and_graph(self, platform: str): method _interview_single_platform (line 317) | async def _interview_single_platform(self, agent_id: int, prompt: str,... method handle_interview (line 345) | async def handle_interview(self, command_id: str, agent_id: int, promp... method handle_batch_interview (line 416) | async def handle_batch_interview(self, command_id: str, interviews: Li... method _get_interview_result (line 517) | def _get_interview_result(self, agent_id: int, platform: str) -> Dict[... method process_commands (line 560) | async def process_commands(self) -> bool: function load_config (line 604) | def load_config(config_path: str) -> Dict[str, Any]: function get_agent_names_from_config (line 633) | def get_agent_names_from_config(config: Dict[str, Any]) -> Dict[int, str]: function fetch_new_actions_from_db (line 657) | def fetch_new_actions_from_db( function _enrich_action_context (line 749) | def _enrich_action_context( function _get_post_info (line 857) | def _get_post_info( function _get_user_name (line 903) | def _get_user_name( function _get_comment_info (line 938) | def _get_comment_info( function create_model (line 984) | def create_model(config: Dict[str, Any], use_boost: bool = False): function get_active_agents_for_round (line 1040) | def get_active_agents_for_round( class PlatformSimulation (line 1093) | class PlatformSimulation: method __init__ (line 1095) | def __init__(self): function run_twitter_simulation (line 1101) | async def run_twitter_simulation( function run_reddit_simulation (line 1293) | async def run_reddit_simulation( function main (line 1492) | async def main(): function setup_signal_handlers (line 1653) | def setup_signal_handlers(loop=None): FILE: backend/scripts/run_reddit_simulation.py class UnicodeFormatter (line 53) | class UnicodeFormatter(logging.Formatter): method format (line 58) | def format(self, record): class MaxTokensWarningFilter (line 70) | class MaxTokensWarningFilter(logging.Filter): method filter (line 73) | def filter(self, record): function setup_oasis_logging (line 84) | def setup_oasis_logging(log_dir: str): class CommandType (line 139) | class CommandType: class IPCHandler (line 146) | class IPCHandler: method __init__ (line 149) | def __init__(self, simulation_dir: str, env, agent_graph): method update_status (line 162) | def update_status(self, status: str): method poll_command (line 170) | def poll_command(self) -> Optional[Dict[str, Any]]: method send_response (line 193) | def send_response(self, command_id: str, status: str, result: Dict = N... method handle_interview (line 214) | async def handle_interview(self, command_id: str, agent_id: int, promp... method handle_batch_interview (line 248) | async def handle_batch_interview(self, command_id: str, interviews: Li... method _get_interview_result (line 300) | def _get_interview_result(self, agent_id: int) -> Dict[str, Any]: method process_commands (line 343) | async def process_commands(self) -> bool: class RedditSimulationRunner (line 385) | class RedditSimulationRunner: method __init__ (line 405) | def __init__(self, config_path: str, wait_for_commands: bool = True): method _load_config (line 421) | def _load_config(self) -> Dict[str, Any]: method _get_profile_path (line 426) | def _get_profile_path(self) -> str: method _get_db_path (line 430) | def _get_db_path(self) -> str: method _create_model (line 434) | def _create_model(self): method _get_active_agents_for_round (line 469) | def _get_active_agents_for_round( method run (line 523) | async def run(self, max_rounds: int = None): function main (line 695) | async def main(): function setup_signal_handlers (line 737) | def setup_signal_handlers(): FILE: backend/scripts/run_twitter_simulation.py class UnicodeFormatter (line 53) | class UnicodeFormatter(logging.Formatter): method format (line 58) | def format(self, record): class MaxTokensWarningFilter (line 70) | class MaxTokensWarningFilter(logging.Filter): method filter (line 73) | def filter(self, record): function setup_oasis_logging (line 84) | def setup_oasis_logging(log_dir: str): class CommandType (line 139) | class CommandType: class IPCHandler (line 146) | class IPCHandler: method __init__ (line 149) | def __init__(self, simulation_dir: str, env, agent_graph): method update_status (line 162) | def update_status(self, status: str): method poll_command (line 170) | def poll_command(self) -> Optional[Dict[str, Any]]: method send_response (line 193) | def send_response(self, command_id: str, status: str, result: Dict = N... method handle_interview (line 214) | async def handle_interview(self, command_id: str, agent_id: int, promp... method handle_batch_interview (line 248) | async def handle_batch_interview(self, command_id: str, interviews: Li... method _get_interview_result (line 300) | def _get_interview_result(self, agent_id: int) -> Dict[str, Any]: method process_commands (line 343) | async def process_commands(self) -> bool: class TwitterSimulationRunner (line 385) | class TwitterSimulationRunner: method __init__ (line 398) | def __init__(self, config_path: str, wait_for_commands: bool = True): method _load_config (line 414) | def _load_config(self) -> Dict[str, Any]: method _get_profile_path (line 419) | def _get_profile_path(self) -> str: method _get_db_path (line 423) | def _get_db_path(self) -> str: method _create_model (line 427) | def _create_model(self): method _get_active_agents_for_round (line 462) | def _get_active_agents_for_round( method run (line 531) | async def run(self, max_rounds: int = None): function main (line 707) | async def main(): function setup_signal_handlers (line 749) | def setup_signal_handlers(): FILE: backend/scripts/test_profile_format.py function test_profile_formats (line 20) | def test_profile_formats(): function show_expected_formats (line 130) | def show_expected_formats(): FILE: frontend/src/api/graph.js function generateOntology (line 8) | function generateOntology(formData) { function buildGraph (line 26) | function buildGraph(data) { function getTaskStatus (line 41) | function getTaskStatus(taskId) { function getGraphData (line 53) | function getGraphData(graphId) { function getProject (line 65) | function getProject(projectId) { FILE: frontend/src/store/pendingUpload.js function setPendingUpload (line 13) | function setPendingUpload(files, requirement) { function getPendingUpload (line 19) | function getPendingUpload() { function clearPendingUpload (line 27) | function clearPendingUpload() {