SYMBOL INDEX (545 symbols across 73 files) FILE: apps/collect-trace/utils/converters/convert_non_oai_to_chatml.py function convert_to_json_chatml (line 10) | def convert_to_json_chatml(messages: List[Dict[str, Any]]) -> List[Dict[... function extract_and_save_chat_history (line 40) | def extract_and_save_chat_history( function main (line 100) | def main(): FILE: apps/collect-trace/utils/converters/convert_oai_to_chatml.py function oai_tool_message_to_chat_message (line 23) | def oai_tool_message_to_chat_message(oai_messages, agent_type, tool_defi... function extract_message_history_from_log (line 180) | def extract_message_history_from_log( function save_chatml_to_files (line 230) | def save_chatml_to_files( function extract_step_message (line 266) | def extract_step_message(data, target_step_name): function process_log_file (line 288) | def process_log_file(log_file_path: str, output_dir: str = "extracted_ch... function main (line 339) | def main(): FILE: apps/collect-trace/utils/converters/convert_to_chatml_auto_batch.py function get_llm_provider (line 11) | def get_llm_provider(json_file_path: str) -> str: function determine_conversion_method (line 36) | def determine_conversion_method(provider: str) -> str: function get_script_paths (line 52) | def get_script_paths() -> tuple: function process_single_file (line 77) | def process_single_file(json_file_path: str, output_dir: str) -> bool: function find_json_files (line 129) | def find_json_files(input_paths: List[str]) -> List[str]: function batch_process_files (line 164) | def batch_process_files(input_paths: List[str], output_dir: str) -> Dict... function show_help (line 200) | def show_help(): function main (line 239) | def main(): FILE: apps/collect-trace/utils/converters/example_usage.py function example_1_basic_conversion (line 19) | def example_1_basic_conversion(): FILE: apps/collect-trace/utils/merge_chatml_msgs_to_one_json.py function merge_json_files (line 10) | def merge_json_files(input_dir, type="main"): function main (line 42) | def main(): FILE: apps/collect-trace/utils/process_logs.py function get_successful_log_paths (line 10) | def get_successful_log_paths(jsonl_file_path: str) -> list: FILE: apps/gradio-demo/main.py function load_miroflow_config (line 39) | def load_miroflow_config(config_overrides: Optional[dict] = None) -> Dic... function _ensure_preloaded (line 135) | def _ensure_preloaded(): class ThreadSafeAsyncQueue (line 171) | class ThreadSafeAsyncQueue: method __init__ (line 174) | def __init__(self): method set_loop (line 179) | def set_loop(self, loop): method put (line 182) | async def put(self, item): method put_nowait_threadsafe (line 188) | def put_nowait_threadsafe(self, item): method get (line 195) | async def get(self): method close (line 198) | def close(self): function filter_google_search_organic (line 202) | def filter_google_search_organic(organic: List[dict]) -> List[dict]: function is_scrape_error (line 217) | def is_scrape_error(result: str) -> bool: function filter_message (line 228) | def filter_message(message: dict) -> dict: function stream_events_optimized (line 261) | async def stream_events_optimized( function _init_render_state (line 414) | def _init_render_state(): function _format_think_content (line 423) | def _format_think_content(text: str) -> str: function _append_show_text (line 447) | def _append_show_text(tool_entry: dict, delta: str): function _is_empty_payload (line 457) | def _is_empty_payload(value) -> bool: function _format_search_results (line 468) | def _format_search_results(tool_input: dict, tool_output: dict) -> str: function _format_sogou_search_results (line 530) | def _format_sogou_search_results(tool_input: dict, tool_output: dict) ->... function _format_scrape_results (line 590) | def _format_scrape_results(tool_input: dict, tool_output: dict) -> str: function _render_markdown (line 627) | def _render_markdown(state: dict) -> str: function _update_state_with_event (line 748) | def _update_state_with_event(state: dict, message: dict): function _set_cancel_flag (line 848) | def _set_cancel_flag(task_id: str): function _reset_cancel_flag (line 853) | def _reset_cancel_flag(task_id: str): function _disconnect_check_for_task (line 858) | async def _disconnect_check_for_task(task_id: str): function _spinner_markup (line 863) | def _spinner_markup(running: bool) -> str: function gradio_run (line 874) | async def gradio_run(query: str, ui_state: Optional[dict]): function stop_current (line 917) | def stop_current(ui_state: Optional[dict]): function build_demo (line 928) | def build_demo(): FILE: apps/gradio-demo/prompt_patch.py function get_demo_summarize_prompt (line 46) | def get_demo_summarize_prompt(target_language: str, task_description: st... function _detect_language (line 82) | def _detect_language(text: str) -> str: function apply_prompt_patch (line 117) | def apply_prompt_patch(): function _patch_system_prompt (line 142) | def _patch_system_prompt(): function _patch_input_handler (line 161) | def _patch_input_handler(): function _patch_summarize_prompt (line 183) | def _patch_summarize_prompt(): function _patch_output_formatter (line 237) | def _patch_output_formatter(): function get_custom_identity_prompt (line 298) | def get_custom_identity_prompt() -> str: FILE: apps/gradio-demo/utils.py function contains_chinese (line 4) | def contains_chinese(text): function replace_chinese_punctuation (line 26) | def replace_chinese_punctuation(text): FILE: apps/lobehub-compatibility/MiroThinkerToolParser.py class MirothinkerToolParser (line 37) | class MirothinkerToolParser(ToolParser): method __init__ (line 38) | def __init__(self, tokenizer): method _resolve_tool_name (line 95) | def _resolve_tool_name( method adjust_request (line 138) | def adjust_request(self, request: ChatCompletionRequest) -> ChatComple... method _ensure_tool_id_valid (line 145) | def _ensure_tool_id_valid(self, tool_id: int) -> bool: method extract_tool_calls (line 158) | def extract_tool_calls( method extract_tool_calls_streaming (line 252) | def extract_tool_calls_streaming( FILE: apps/lobehub-compatibility/test_tool_parser.py function test_tool_call_regex (line 51) | def test_tool_call_regex(): function test_partial_tool_regex (line 153) | def test_partial_tool_regex(): function test_complete_tool_block_regex (line 192) | def test_complete_tool_block_regex(): function test_edge_cases (line 232) | def test_edge_cases(): function check_unused_code (line 291) | def check_unused_code(): function main (line 337) | def main(): FILE: apps/lobehub-compatibility/unit_test.py function strftime_now (line 19) | def strftime_now(format_str: str) -> str: function template (line 25) | def template(): function today_date (line 37) | def today_date(): class TestBasicMessageFormatting (line 47) | class TestBasicMessageFormatting: method test_user_message_format (line 50) | def test_user_message_format(self, template): method test_system_message_format (line 57) | def test_system_message_format(self, template): method test_assistant_message_format (line 67) | def test_assistant_message_format(self, template): method test_add_generation_prompt (line 81) | def test_add_generation_prompt(self, template): method test_multi_turn_conversation (line 88) | def test_multi_turn_conversation(self, template): class TestThinkingContent (line 112) | class TestThinkingContent: method test_reasoning_content_field (line 115) | def test_reasoning_content_field(self, template): method test_think_tags_in_content (line 130) | def test_think_tags_in_content(self, template): method test_think_preserved_in_history (line 144) | def test_think_preserved_in_history(self, template): method test_enable_thinking_false (line 160) | def test_enable_thinking_false(self, template): method test_enable_thinking_true (line 169) | def test_enable_thinking_true(self, template): class TestToolDefinitions (line 185) | class TestToolDefinitions: method test_tools_trigger_system_prompt (line 188) | def test_tools_trigger_system_prompt(self, template, today_date): method test_tool_name_format (line 209) | def test_tool_name_format(self, template): method test_tool_server_name (line 228) | def test_tool_server_name(self, template): method test_tool_description_indentation (line 247) | def test_tool_description_indentation(self, template): method test_tool_args_auto_generated (line 266) | def test_tool_args_auto_generated(self, template): method test_tool_args_not_duplicated (line 293) | def test_tool_args_not_duplicated(self, template): method test_tool_json_schema_included (line 318) | def test_tool_json_schema_included(self, template): method test_tool_without_function_wrapper (line 341) | def test_tool_without_function_wrapper(self, template): method test_tool_none_description (line 357) | def test_tool_none_description(self, template): method test_tool_empty_description (line 376) | def test_tool_empty_description(self, template): method test_system_message_prepended_with_tools (line 394) | def test_system_message_prepended_with_tools(self, template): class TestToolCalls (line 425) | class TestToolCalls: method test_tool_call_format (line 428) | def test_tool_call_format(self, template): method test_tool_call_no_content (line 469) | def test_tool_call_no_content(self, template): method test_multiple_tool_calls (line 504) | def test_multiple_tool_calls(self, template): method test_tool_call_arguments_dict (line 551) | def test_tool_call_arguments_dict(self, template): class TestToolResponses (line 593) | class TestToolResponses: method test_tool_response_in_user_message (line 596) | def test_tool_response_in_user_message(self, template): method test_multiple_tool_responses_merged (line 633) | def test_multiple_tool_responses_merged(self, template): method test_tool_response_no_wrapper_tags (line 676) | def test_tool_response_no_wrapper_tags(self, template): class TestEdgeCases (line 715) | class TestEdgeCases: method test_only_system_message (line 718) | def test_only_system_message(self, template): method test_assistant_empty_content (line 724) | def test_assistant_empty_content(self, template): method test_unicode_content (line 734) | def test_unicode_content(self, template): method test_special_characters_in_content (line 744) | def test_special_characters_in_content(self, template): method test_newlines_preserved (line 752) | def test_newlines_preserved(self, template): class TestCompleteFlow (line 766) | class TestCompleteFlow: method test_full_tool_use_flow (line 769) | def test_full_tool_use_flow(self, template, today_date): method test_reasoning_with_tool_use (line 824) | def test_reasoning_with_tool_use(self, template): FILE: apps/miroflow-agent/benchmarks/check_progress/check_progress_aime2025.py function parse_args (line 18) | def parse_args(): FILE: apps/miroflow-agent/benchmarks/check_progress/check_progress_browsecomp.py function parse_args (line 18) | def parse_args(): FILE: apps/miroflow-agent/benchmarks/check_progress/check_progress_browsecomp_zh.py function parse_args (line 18) | def parse_args(): FILE: apps/miroflow-agent/benchmarks/check_progress/check_progress_deepsearchqa.py function extract_eval_details_from_log (line 21) | def extract_eval_details_from_log(log_file: str) -> dict: function calculate_deepsearchqa_metrics_from_logs (line 92) | def calculate_deepsearchqa_metrics_from_logs(base_path: str) -> dict: function calculate_deepsearchqa_metrics (line 173) | def calculate_deepsearchqa_metrics(results_file: str) -> dict: function show_deepsearchqa_metrics (line 266) | def show_deepsearchqa_metrics(base_path: str): function parse_args (line 337) | def parse_args(): FILE: apps/miroflow-agent/benchmarks/check_progress/check_progress_frames.py function parse_args (line 18) | def parse_args(): FILE: apps/miroflow-agent/benchmarks/check_progress/check_progress_gaia-validation-text-103.py function parse_args (line 18) | def parse_args(): FILE: apps/miroflow-agent/benchmarks/check_progress/check_progress_gaia-validation.py function parse_args (line 18) | def parse_args(): FILE: apps/miroflow-agent/benchmarks/check_progress/check_progress_hle-text-2158.py function parse_args (line 18) | def parse_args(): FILE: apps/miroflow-agent/benchmarks/check_progress/check_progress_hle-text-500.py function parse_args (line 18) | def parse_args(): FILE: apps/miroflow-agent/benchmarks/check_progress/check_progress_hle.py function parse_args (line 18) | def parse_args(): FILE: apps/miroflow-agent/benchmarks/check_progress/check_progress_seal-0.py function parse_args (line 18) | def parse_args(): FILE: apps/miroflow-agent/benchmarks/check_progress/check_progress_webwalkerqa.py function parse_args (line 18) | def parse_args(): FILE: apps/miroflow-agent/benchmarks/check_progress/check_progress_xbench_deepsearch.py function parse_args (line 18) | def parse_args(): FILE: apps/miroflow-agent/benchmarks/check_progress/common.py function create_progress_bar (line 35) | def create_progress_bar(percentage: float, width: int = PROGRESS_BAR_WID... function find_earliest_start_time (line 54) | def find_earliest_start_time(completed_files: List[str]) -> Optional[dat... function find_latest_end_time (line 81) | def find_latest_end_time(completed_files: List[str]) -> Optional[datetime]: function calculate_mean_and_std (line 109) | def calculate_mean_and_std(values: List[float]) -> Tuple[float, float]: function estimate_completion_time (line 126) | def estimate_completion_time( class TaskStats (line 166) | class TaskStats: method __post_init__ (line 185) | def __post_init__(self): method judge_accuracy (line 190) | def judge_accuracy(self) -> float: method completion_rate (line 197) | def completion_rate(self) -> float: method average_turns (line 202) | def average_turns(self) -> float: class GAIATaskStats (line 212) | class GAIATaskStats(TaskStats): method level1_accuracy (line 224) | def level1_accuracy(self) -> float: method level2_accuracy (line 233) | def level2_accuracy(self) -> float: method level3_accuracy (line 242) | def level3_accuracy(self) -> float: class SummaryStats (line 252) | class SummaryStats: method total_judge_accuracy (line 263) | def total_judge_accuracy(self) -> float: method average_run_accuracy (line 271) | def average_run_accuracy( method total_completion_rate (line 294) | def total_completion_rate(self) -> float: class GAIASummaryStats (line 304) | class GAIASummaryStats(SummaryStats): method level1_accuracy (line 316) | def level1_accuracy(self) -> float: method level2_accuracy (line 325) | def level2_accuracy(self) -> float: method level3_accuracy (line 334) | def level3_accuracy(self) -> float: class ProgressChecker (line 343) | class ProgressChecker: method __init__ (line 346) | def __init__(self, target_path: str, task_per_run: int, data_path: str): method _load_benchmark_data (line 354) | def _load_benchmark_data(self, data_path) -> None: method find_run_directories (line 365) | def find_run_directories(self) -> List[str]: method _extract_run_number (line 395) | def _extract_run_number(self, path: str) -> int: method _extract_task_id (line 403) | def _extract_task_id(self, filename: str, task_id_pattern: str) -> Opt... method _get_latest_task_files (line 408) | def _get_latest_task_files(self, run_dir: str, task_id_pattern: str) -... method _is_task_completed (line 464) | def _is_task_completed(self, data: Dict) -> bool: method _is_judge_correct (line 477) | def _is_judge_correct(self, judge_result) -> bool: method _calculate_turns (line 496) | def _calculate_turns(self, data: Dict) -> int: method analyze_run_directory (line 518) | def analyze_run_directory( method run_analysis (line 590) | def run_analysis( method _calculate_pass_at_n (line 661) | def _calculate_pass_at_n( method _display_summary (line 683) | def _display_summary( method _save_analysis_log (line 797) | def _save_analysis_log( class GAIAProgressChecker (line 950) | class GAIAProgressChecker(ProgressChecker): method __init__ (line 955) | def __init__(self, target_path: str, task_per_run: int, data_path: str): method _load_benchmark_data (line 965) | def _load_benchmark_data(self, data_path) -> None: method _update_difficulty_stats (line 994) | def _update_difficulty_stats( method analyze_run_directory (line 1014) | def analyze_run_directory( method run_analysis (line 1077) | def run_analysis( method _update_summary_stats (line 1143) | def _update_summary_stats( method _display_summary (line 1162) | def _display_summary( FILE: apps/miroflow-agent/benchmarks/common_benchmark.py function _task_worker (line 34) | def _task_worker(task_dict, cfg_dict, evaluator_kwargs): class BenchmarkTask (line 87) | class BenchmarkTask: class BenchmarkResult (line 100) | class BenchmarkResult: class BenchmarkEvaluator (line 120) | class BenchmarkEvaluator(ABC): method __init__ (line 123) | def __init__(self, data_dir: str, benchmark_name: str, cfg: DictConfig): method get_log_dir (line 158) | def get_log_dir(self) -> Path: method run_single_task (line 162) | async def run_single_task(self, task: BenchmarkTask) -> BenchmarkResult: method _run_single_task_sync (line 553) | def _run_single_task_sync(self, task: BenchmarkTask) -> BenchmarkResult: method run_parallel_inference (line 571) | def run_parallel_inference( method save_results (line 720) | def save_results(self, output_file: str) -> str: method evaluate_accuracy (line 732) | def evaluate_accuracy(self) -> float: method _update_log_file_with_evaluation (line 771) | def _update_log_file_with_evaluation( class GenericEvaluator (line 806) | class GenericEvaluator(BenchmarkEvaluator): method __init__ (line 809) | def __init__( method load_tasks (line 843) | def load_tasks(self, limit: Optional[int] = None) -> List[BenchmarkTask]: method prepare_task_description (line 903) | def prepare_task_description( class CommonBenchmark (line 929) | class CommonBenchmark: method __init__ (line 932) | def __init__(self, cfg: DictConfig): method run_evaluation (line 963) | def run_evaluation(self) -> float: function run_benchmark (line 1013) | def run_benchmark(cfg: DictConfig) -> None: FILE: apps/miroflow-agent/benchmarks/evaluators/calculate_average_score.py function detect_pass_at_k (line 12) | def detect_pass_at_k(results_dir: str) -> tuple: function calculate_average_scores (line 46) | def calculate_average_scores(results_dir: str) -> dict: function print_results (line 91) | def print_results(stats: dict): function main (line 108) | def main(): FILE: apps/miroflow-agent/benchmarks/evaluators/eval_utils.py function verify_answer_simpleqa (line 111) | async def verify_answer_simpleqa( class HLEExtractedAnswer (line 165) | class HLEExtractedAnswer(BaseModel): function verify_answer_hle (line 173) | async def verify_answer_hle(question: str, target: str, predicted_answer... function verify_answer_gaia (line 224) | async def verify_answer_gaia(question: str, target: str, predicted_answe... function verify_answer_gaia_validation_text_103 (line 361) | async def verify_answer_gaia_validation_text_103( function verify_answer_browsecomp (line 544) | async def verify_answer_browsecomp( function verify_answer_browsecomp_zh (line 584) | async def verify_answer_browsecomp_zh( function verify_answer_xbench_deepsearch (line 650) | async def verify_answer_xbench_deepsearch( function verify_answer_deepsearchqa (line 781) | async def verify_answer_deepsearchqa( function _verify_answer_for_datasets_core (line 912) | async def _verify_answer_for_datasets_core( function verify_answer_for_datasets (line 1006) | async def verify_answer_for_datasets( FILE: apps/miroflow-agent/benchmarks/evaluators/extract_futurex_results.py function majority_vote (line 11) | def majority_vote( function discover_runs (line 44) | def discover_runs(results_dir: str) -> List[str]: function parse_args (line 60) | def parse_args() -> argparse.Namespace: function main (line 77) | def main() -> None: FILE: apps/miroflow-agent/benchmarks/subset_extraction/gaia-text-103-grader.py class GradingResult (line 32) | class GradingResult: class GAIAText103Grader (line 47) | class GAIAText103Grader: method __init__ (line 50) | def __init__(self, extraction_dir: str): method find_task_files (line 66) | def find_task_files(self) -> List[Path]: method extract_task_info (line 78) | def extract_task_info(self, task_file: Path) -> Optional[Dict]: method grade_single_task (line 119) | async def grade_single_task(self, task_info: Dict) -> GradingResult: method grade_all_tasks (line 158) | async def grade_all_tasks(self, max_concurrent: int = 5) -> List[Gradi... method update_original_files (line 204) | def update_original_files(self): method print_summary (line 233) | def print_summary(self): function main (line 245) | async def main(): FILE: apps/miroflow-agent/benchmarks/subset_extraction/gaia-to-text-103-mover.py class GAIAtoText103Copier (line 21) | class GAIAtoText103Copier: method __init__ (line 24) | def __init__(self, gaia_text_103_data_path: str, output_dir: str): method _load_gaia_text_103_tasks (line 40) | def _load_gaia_text_103_tasks(self): method copy_gaia_text_103_tasks (line 59) | def copy_gaia_text_103_tasks(self, gaia_logs_dir: str) -> int: method print_summary (line 119) | def print_summary(self): function main (line 129) | def main(): FILE: apps/miroflow-agent/main.py function amain (line 20) | async def amain(cfg: DictConfig) -> None: function main (line 49) | def main(cfg: DictConfig) -> None: FILE: apps/miroflow-agent/src/config/settings.py function create_mcp_server_parameters (line 69) | def create_mcp_server_parameters(cfg: DictConfig, agent_cfg: DictConfig): function expose_sub_agents_as_tools (line 383) | def expose_sub_agents_as_tools(sub_agents_cfg: DictConfig): function get_env_info (line 422) | def get_env_info(cfg: DictConfig) -> dict: FILE: apps/miroflow-agent/src/core/answer_generator.py class AnswerGenerator (line 38) | class AnswerGenerator: method __init__ (line 46) | def __init__( method handle_llm_call (line 80) | async def handle_llm_call( method generate_failure_summary (line 170) | async def generate_failure_summary( method generate_final_answer_with_retries (line 256) | async def generate_final_answer_with_retries( method handle_no_context_management_fallback (line 355) | def handle_no_context_management_fallback( method handle_context_management_no_fallback (line 409) | def handle_context_management_no_fallback( method generate_and_finalize_answer (line 462) | async def generate_and_finalize_answer( FILE: apps/miroflow-agent/src/core/orchestrator.py function _list_tools (line 56) | def _list_tools(sub_agent_tool_managers: Dict[str, ToolManager]): class Orchestrator (line 86) | class Orchestrator: method __init__ (line 94) | def __init__( method _save_message_history (line 170) | def _save_message_history( method _handle_response_format_issues (line 180) | async def _handle_response_format_issues( method _check_duplicate_query (line 257) | async def _check_duplicate_query( method _record_query (line 318) | async def _record_query(self, cache_name: str, tool_name: str, argumen... method run_sub_agent (line 327) | async def run_sub_agent( method run_main_agent (line 736) | async def run_main_agent( FILE: apps/miroflow-agent/src/core/pipeline.py function execute_task_pipeline (line 35) | async def execute_task_pipeline( function create_pipeline_components (line 180) | def create_pipeline_components(cfg: DictConfig): FILE: apps/miroflow-agent/src/core/stream_handler.py class StreamHandler (line 18) | class StreamHandler: method __init__ (line 26) | def __init__(self, stream_queue: Optional[Any] = None): method update (line 36) | async def update(self, event_type: str, data: dict): method start_workflow (line 54) | async def start_workflow(self, user_input: str) -> str: method end_workflow (line 79) | async def end_workflow(self, workflow_id: str): method show_error (line 93) | async def show_error(self, error: str): method start_agent (line 107) | async def start_agent(self, agent_name: str, display_name: str = None)... method end_agent (line 129) | async def end_agent(self, agent_name: str, agent_id: str): method start_llm (line 145) | async def start_llm(self, agent_name: str, display_name: str = None): method end_llm (line 161) | async def end_llm(self, agent_name: str): method message (line 175) | async def message(self, message_id: str, delta_content: str): method tool_call (line 193) | async def tool_call( FILE: apps/miroflow-agent/src/core/tool_executor.py class ToolExecutor (line 30) | class ToolExecutor: method __init__ (line 38) | def __init__( method fix_tool_call_arguments (line 68) | def fix_tool_call_arguments(self, tool_name: str, arguments: dict) -> ... method get_query_str_from_tool_call (line 102) | def get_query_str_from_tool_call( method is_duplicate_query (line 136) | def is_duplicate_query(self, cache_name: str, query_str: str) -> Tuple... method record_query (line 151) | def record_query(self, cache_name: str, query_str: str): method is_google_search_empty_result (line 162) | def is_google_search_empty_result(self, tool_name: str, tool_result: d... method get_scrape_result (line 193) | def get_scrape_result(self, result: str) -> str: method post_process_tool_call_result (line 214) | def post_process_tool_call_result( method should_rollback_result (line 240) | def should_rollback_result( method execute_single_tool_call (line 260) | async def execute_single_tool_call( method format_tool_result_for_llm (line 346) | def format_tool_result_for_llm(self, tool_result: dict) -> dict: FILE: apps/miroflow-agent/src/io/input_handler.py function _generate_image_caption (line 58) | def _generate_image_caption(image_path: str) -> str: function _generate_audio_caption (line 123) | def _generate_audio_caption(audio_path: str) -> str: function _generate_video_caption (line 155) | def _generate_video_caption(video_path: str) -> str: function _extract_task_relevant_info_from_image (line 220) | def _extract_task_relevant_info_from_image( function _extract_task_relevant_info_from_audio (line 292) | def _extract_task_relevant_info_from_audio( function _extract_task_relevant_info_from_video (line 366) | def _extract_task_relevant_info_from_video( function process_input (line 438) | def process_input(task_description: str, task_file_name: str) -> Tuple[s... class _CustomMarkdownify (line 654) | class _CustomMarkdownify(markdownify.MarkdownConverter): method __init__ (line 664) | def __init__(self, **options: Any): method convert_hn (line 669) | def convert_hn(self, n: int, el: Any, text: str, convert_as_inline: bo... method convert_a (line 677) | def convert_a(self, el: Any, text: str, convert_as_inline: bool): method convert_img (line 719) | def convert_img(self, el: Any, text: str, convert_as_inline: bool) -> ... method convert_soup (line 738) | def convert_soup(self, soup: Any) -> str: class DocumentConverterResult (line 742) | class DocumentConverterResult: method __init__ (line 745) | def __init__(self, title: Union[str, None] = None, text_content: str =... function convert_html_to_md (line 750) | def convert_html_to_md(html_content): function HtmlConverter (line 775) | def HtmlConverter(local_path: str): function DocxConverter (line 791) | def DocxConverter(local_path: str): function XlsxConverter (line 810) | def XlsxConverter(local_path: str): function PptxConverter (line 1058) | def PptxConverter(local_path: str) -> DocumentConverterResult: function ZipConverter (line 1160) | def ZipConverter(local_path: str, **kwargs): FILE: apps/miroflow-agent/src/io/output_formatter.py class OutputFormatter (line 15) | class OutputFormatter: method _extract_boxed_content (line 18) | def _extract_boxed_content(self, text: str) -> str: method format_tool_result_for_user (line 95) | def format_tool_result_for_user(self, tool_call_execution_result: dict... method format_final_summary_and_log (line 126) | def format_final_summary_and_log( FILE: apps/miroflow-agent/src/llm/base_client.py class TokenUsage (line 32) | class TokenUsage(TypedDict, total=True): class BaseClient (line 52) | class BaseClient(ABC): method __post_init__ (line 78) | def __post_init__(self): method _reset_token_usage (line 110) | def _reset_token_usage(self) -> TokenUsage: method _remove_tool_result_from_messages (line 124) | def _remove_tool_result_from_messages( method create_message (line 223) | async def create_message( method convert_tool_definition_to_tool_call (line 273) | async def convert_tool_definition_to_tool_call(tools_definitions): method close (line 303) | def close(self): method _format_response_for_log (line 327) | def _format_response_for_log(self, response) -> Dict: FILE: apps/miroflow-agent/src/llm/factory.py function ClientFactory (line 24) | def ClientFactory( FILE: apps/miroflow-agent/src/llm/providers/anthropic_client.py class AnthropicClient (line 39) | class AnthropicClient(BaseClient): method __post_init__ (line 40) | def __post_init__(self): method _create_client (line 49) | def _create_client(self) -> Union[AsyncAnthropic, Anthropic]: method _update_token_usage (line 65) | def _update_token_usage(self, usage_data: Any) -> None: method _create_message (line 101) | async def _create_message( method process_llm_response (line 187) | def process_llm_response( method extract_tool_calls_info (line 244) | def extract_tool_calls_info( method update_message_history (line 252) | def update_message_history( method generate_agent_system_prompt (line 274) | def generate_agent_system_prompt(self, date: Any, mcp_servers: List[Di... method _estimate_tokens (line 281) | def _estimate_tokens(self, text: str) -> int: method ensure_summary_context (line 302) | def ensure_summary_context( method format_token_usage_summary (line 364) | def format_token_usage_summary(self) -> tuple[List[str], str]: method get_token_usage (line 395) | def get_token_usage(self): method _apply_cache_control (line 398) | def _apply_cache_control(self, messages: List[Dict]) -> List[Dict]: FILE: apps/miroflow-agent/src/llm/providers/openai_client.py class OpenAIClient (line 32) | class OpenAIClient(BaseClient): method _create_client (line 33) | def _create_client(self) -> Union[AsyncOpenAI, OpenAI]: method _update_token_usage (line 49) | def _update_token_usage(self, usage_data: Any) -> None: method _create_message (line 80) | async def _create_message( method process_llm_response (line 279) | def process_llm_response( method extract_tool_calls_info (line 334) | def extract_tool_calls_info( method update_message_history (line 342) | def update_message_history( method generate_agent_system_prompt (line 364) | def generate_agent_system_prompt(self, date: Any, mcp_servers: List[Di... method _estimate_tokens (line 371) | def _estimate_tokens(self, text: str) -> int: method ensure_summary_context (line 392) | def ensure_summary_context( method format_token_usage_summary (line 454) | def format_token_usage_summary(self) -> tuple[List[str], str]: method get_token_usage (line 480) | def get_token_usage(self): FILE: apps/miroflow-agent/src/llm/util.py function with_timeout (line 19) | def with_timeout( FILE: apps/miroflow-agent/src/logging/summary_time_cost.py function _get_summary_template (line 11) | def _get_summary_template(): function _update_summary_data (line 25) | def _update_summary_data(summary_block, perf_summary, tool_workload): function _calculate_averages (line 47) | def _calculate_averages(summary_block): function generate_summary (line 82) | def generate_summary(log_dir: Path): FILE: apps/miroflow-agent/src/logging/task_logger.py function get_color_for_level (line 34) | def get_color_for_level(level: str) -> str: class ColoredFormatter (line 48) | class ColoredFormatter(logging.Formatter): method format (line 51) | def format(self, record): function bootstrap_logger (line 72) | def bootstrap_logger() -> logging.Logger: function get_utc_plus_8_time (line 106) | def get_utc_plus_8_time() -> str: class LLMCallLog (line 113) | class LLMCallLog: class ToolCallLog (line 126) | class ToolCallLog: class StepLog (line 138) | class StepLog: method __post_init__ (line 147) | def __post_init__(self): class TaskLog (line 157) | class TaskLog: method start_sub_agent_session (line 188) | def start_sub_agent_session( method end_sub_agent_session (line 206) | def end_sub_agent_session(self, sub_agent_name: str) -> Optional[str]: method log_step (line 217) | def log_step( method serialize_for_json (line 280) | def serialize_for_json(self, obj): method to_json (line 293) | def to_json(self) -> str: method save (line 317) | def save(self): method from_dict (line 336) | def from_dict(cls, d: dict) -> "TaskLog": FILE: apps/miroflow-agent/src/utils/parsing_utils.py function parse_tool_server_mapping (line 24) | def parse_tool_server_mapping(system_prompt: str) -> dict: function set_tool_server_mapping (line 62) | def set_tool_server_mapping(system_prompt: str) -> None: function fix_server_name_in_text (line 75) | def fix_server_name_in_text(text: str) -> str: function filter_none_values (line 124) | def filter_none_values(arguments: Union[Dict, Any]) -> Union[Dict, Any]: function _fix_backslash_escapes (line 139) | def _fix_backslash_escapes(json_str: str) -> str: function safe_json_loads (line 193) | def safe_json_loads(arguments_str: str) -> Dict[str, Any]: function extract_failure_experience_summary (line 228) | def extract_failure_experience_summary(text: str) -> str: function extract_llm_response_text (line 279) | def extract_llm_response_text(llm_response: Union[str, Dict]) -> str: function parse_llm_response_for_tool_calls (line 311) | def parse_llm_response_for_tool_calls( FILE: apps/miroflow-agent/src/utils/prompt_utils.py function generate_mcp_system_prompt (line 85) | def generate_mcp_system_prompt(date, mcp_servers): function generate_no_mcp_system_prompt (line 167) | def generate_no_mcp_system_prompt(date): function generate_agent_specific_system_prompt (line 204) | def generate_agent_specific_system_prompt(agent_type=""): function generate_agent_summarize_prompt (line 236) | def generate_agent_summarize_prompt(task_description, agent_type=""): FILE: apps/miroflow-agent/src/utils/wrapper_utils.py class ErrorBox (line 9) | class ErrorBox: method __init__ (line 21) | def __init__(self, error_msg: str) -> None: method __str__ (line 24) | def __str__(self) -> str: method __repr__ (line 27) | def __repr__(self) -> str: method is_error_box (line 31) | def is_error_box(something: Any) -> bool: class ResponseBox (line 36) | class ResponseBox: method __init__ (line 48) | def __init__( method __str__ (line 54) | def __str__(self) -> str: method __repr__ (line 57) | def __repr__(self) -> str: method is_response_box (line 61) | def is_response_box(something: Any) -> bool: method has_extra_info (line 65) | def has_extra_info(self) -> bool: method get_extra_info (line 69) | def get_extra_info(self) -> Optional[Dict[str, Any]]: method get_response (line 73) | def get_response(self) -> Any: FILE: apps/visualize-trace/app.py function index (line 16) | def index(): function list_files (line 22) | def list_files(): function load_trace (line 86) | def load_trace(): function get_basic_info (line 117) | def get_basic_info(): function get_performance_summary (line 129) | def get_performance_summary(): function get_execution_flow (line 141) | def get_execution_flow(): function get_execution_summary (line 153) | def get_execution_summary(): function get_spans_summary (line 165) | def get_spans_summary(): function get_step_logs_summary (line 177) | def get_step_logs_summary(): function get_raw_messages (line 189) | def get_raw_messages(): FILE: apps/visualize-trace/run.py function check_dependencies (line 10) | def check_dependencies(): function install_dependencies (line 29) | def install_dependencies(): function main (line 51) | def main(): FILE: apps/visualize-trace/static/js/script.js function initializeApp (line 39) | function initializeApp() { function showLoading (line 66) | function showLoading() { function hideLoading (line 70) | function hideLoading() { function showError (line 74) | function showError(message) { function showSuccess (line 80) | function showSuccess(message) { function formatTimestamp (line 86) | function formatTimestamp(timestamp) { function truncateText (line 96) | function truncateText(text, maxLength = 100) { function formatFileSize (line 102) | function formatFileSize(bytes) { function formatMcpToolCallWithPlaceholders (line 111) | function formatMcpToolCallWithPlaceholders(text, placeholders) { function createNewFormatToolCallHTML (line 169) | function createNewFormatToolCallHTML(tool) { function renderMarkdown (line 203) | function renderMarkdown(text) { function isJsonString (line 231) | function isJsonString(str) { function formatJsonContent (line 245) | function formatJsonContent(content) { function renderContent (line 256) | function renderContent(content, isBrowserAgent = false) { function apiCall (line 276) | async function apiCall(url, options = {}) { function setDefaultDirectory (line 298) | function setDefaultDirectory() { function browseDirectory (line 305) | async function browseDirectory() { function refreshFileList (line 315) | async function refreshFileList(directory = null) { function onFileSelect (line 371) | function onFileSelect() { function gotoPrevFile (line 379) | function gotoPrevFile() { function gotoNextFile (line 387) | function gotoNextFile() { function selectFileByIndex (line 395) | function selectFileByIndex(index) { function updateNavigationButtons (line 403) | function updateNavigationButtons() { function handleKeyboardShortcuts (line 424) | function handleKeyboardShortcuts(event) { function loadTraceFile (line 464) | async function loadTraceFile() { function updateBasicInfo (line 514) | function updateBasicInfo(data) { function updateExecutionSummary (line 546) | function updateExecutionSummary(data) { function updatePerformanceSummary (line 569) | function updatePerformanceSummary(data) { function updateExecutionFlow (line 593) | function updateExecutionFlow(data) { function createStepHTML (line 622) | function createStepHTML(step, index) { function createToolCallHTML (line 692) | function createToolCallHTML(tool) { function createBrowserStepHTML (line 717) | function createBrowserStepHTML(step, parentIndex) { function updateSpansStats (line 758) | function updateSpansStats(data) { function updateStepLogsStats (line 794) | function updateStepLogsStats(data) { function bindStepEventListeners (line 829) | function bindStepEventListeners() { function expandAllSteps (line 848) | function expandAllSteps() { function collapseAllSteps (line 866) | function collapseAllSteps() { function toggleBrowserPreview (line 886) | function toggleBrowserPreview(browserId, parentIndex, browserStepId) { function showFullMessage (line 921) | function showFullMessage(stepId) { function updateNavigationList (line 1005) | function updateNavigationList(data) { function scrollToStep (line 1059) | function scrollToStep(stepIndex) { function scrollToBrowserStep (line 1081) | function scrollToBrowserStep(parentIndex, browserStepId) { function toggleBrowserNav (line 1103) | function toggleBrowserNav(stepIndex, event) { function updateActiveNavItem (line 1118) | function updateActiveNavItem(activeIndex, browserStepId = null) { function handleScroll (line 1140) | function handleScroll() { FILE: apps/visualize-trace/trace_analyzer.py class TraceAnalyzer (line 9) | class TraceAnalyzer: method __init__ (line 18) | def __init__(self, json_file_path: str): method _load_json (line 28) | def _load_json(self) -> Dict[str, Any]: method _parse_new_format_tool_name (line 36) | def _parse_new_format_tool_name(self, tool_name: str) -> tuple[str, str]: method get_basic_info (line 85) | def get_basic_info(self) -> Dict[str, Any]: method get_performance_summary (line 99) | def get_performance_summary(self) -> Dict[str, Any]: method get_main_agent_history (line 106) | def get_main_agent_history(self) -> Dict[str, Any]: method get_main_agent_messages (line 110) | def get_main_agent_messages(self) -> List[Dict[str, Any]]: method get_browser_agent_sessions (line 117) | def get_browser_agent_sessions(self) -> Dict[str, Any]: method get_browser_agent_session_messages (line 125) | def get_browser_agent_session_messages( method parse_mcp_tool_call (line 135) | def parse_mcp_tool_call(self, text: str) -> Optional[Dict[str, Any]]: method extract_text_content (line 158) | def extract_text_content(self, content) -> str: method analyze_conversation_flow (line 168) | def analyze_conversation_flow(self) -> List[Dict[str, Any]]: method analyze_browser_session_flow (line 284) | def analyze_browser_session_flow(self, session_id: str) -> List[Dict[s... method get_execution_summary (line 350) | def get_execution_summary(self) -> Dict[str, Any]: method get_spans_summary (line 393) | def get_spans_summary(self) -> Dict[str, Any]: method get_step_logs_summary (line 421) | def get_step_logs_summary(self) -> Dict[str, Any]: FILE: libs/miroflow-tools/src/miroflow_tools/dev_mcp_servers/jina_scrape_llm_summary.py function scrape_and_extract_info (line 28) | async def scrape_and_extract_info( function _is_huggingface_dataset_or_space_url (line 122) | def _is_huggingface_dataset_or_space_url(url): function scrape_url_with_jina (line 133) | async def scrape_url_with_jina( function scrape_url_with_python (line 371) | async def scrape_url_with_python( function get_prompt_with_truncation (line 577) | def get_prompt_with_truncation( function extract_info_with_llm (line 588) | async def extract_info_with_llm( FILE: libs/miroflow-tools/src/miroflow_tools/dev_mcp_servers/search_and_scrape_webpage.py function make_serper_request (line 47) | async def make_serper_request( function _is_banned_url (line 61) | def _is_banned_url(url: str) -> bool: function google_search (line 78) | async def google_search( function make_sogou_request (line 212) | async def make_sogou_request(query: str, cnt: int) -> Dict[str, Any]: function sogou_search (line 227) | async def sogou_search( FILE: libs/miroflow-tools/src/miroflow_tools/dev_mcp_servers/stateless_python_server.py function python (line 20) | async def python(code: str) -> str: FILE: libs/miroflow-tools/src/miroflow_tools/dev_mcp_servers/task_planner.py function load_todos (line 38) | def load_todos() -> List[Dict[str, Any]]: function save_todos (line 51) | def save_todos(todos: List[Dict[str, Any]]) -> bool: function format_todos_as_markdown (line 62) | def format_todos_as_markdown(todos: List[Dict[str, Any]], message: str =... function add_todo (line 100) | async def add_todo(titles: List[str]) -> str: function list_todos (line 160) | async def list_todos() -> str: function complete_todo (line 175) | async def complete_todo(todo_ids: List[str]) -> str: function delete_todo (line 238) | async def delete_todo(todo_ids: List[str]) -> str: FILE: libs/miroflow-tools/src/miroflow_tools/manager.py function with_timeout (line 19) | def with_timeout(timeout_s: float = 300.0): class ToolManagerProtocol (line 39) | class ToolManagerProtocol(Protocol): method get_all_tool_definitions (line 42) | async def get_all_tool_definitions(self) -> Any: ... method execute_tool_call (line 43) | async def execute_tool_call( class ToolManager (line 48) | class ToolManager(ToolManagerProtocol): method __init__ (line 49) | def __init__(self, server_configs, tool_blacklist=None): method set_task_log (line 62) | def set_task_log(self, task_log): method _log (line 72) | def _log(self, level, step_name, message, metadata=None): method _is_huggingface_dataset_or_space_url (line 77) | def _is_huggingface_dataset_or_space_url(self, url): method _should_block_hf_scraping (line 87) | def _should_block_hf_scraping(self, tool_name, arguments): method get_server_params (line 100) | def get_server_params(self, server_name): method get_all_tool_definitions (line 104) | async def get_all_tool_definitions(self): method execute_tool_call (line 198) | async def execute_tool_call(self, server_name, tool_name, arguments) -... FILE: libs/miroflow-tools/src/miroflow_tools/mcp_servers/audio_mcp_server.py function _get_audio_extension (line 25) | def _get_audio_extension(url: str, content_type: str = None) -> str: function _get_audio_duration (line 66) | def _get_audio_duration(audio_path: str) -> float: function _encode_audio_file (line 102) | def _encode_audio_file(audio_path: str) -> tuple[str, str]: function audio_transcription (line 127) | async def audio_transcription(audio_path_or_url: str) -> str: function audio_question_answering (line 202) | async def audio_question_answering(audio_path_or_url: str, question: str... FILE: libs/miroflow-tools/src/miroflow_tools/mcp_servers/audio_mcp_server_os.py function _get_audio_extension (line 26) | def _get_audio_extension(url: str, content_type: str = None) -> str: function _get_audio_duration (line 67) | def _get_audio_duration(audio_path: str) -> float: function _encode_audio_file (line 99) | def _encode_audio_file(audio_path: str) -> tuple[str, str]: function audio_transcription (line 124) | async def audio_transcription(audio_path_or_url: str) -> str: FILE: libs/miroflow-tools/src/miroflow_tools/mcp_servers/browser_session.py class PlaywrightSession (line 16) | class PlaywrightSession: method __init__ (line 19) | def __init__(self, server_params): method connect (line 26) | async def connect(self): method call_tool (line 39) | async def call_tool(self, tool_name, arguments=None): method close (line 49) | async def close(self): function test_persistent_session (line 64) | async def test_persistent_session(): FILE: libs/miroflow-tools/src/miroflow_tools/mcp_servers/python_mcp_server.py function looks_like_dir (line 56) | def looks_like_dir(path: str) -> bool: function truncate_result (line 73) | def truncate_result(result: str) -> str: function create_sandbox (line 90) | async def create_sandbox(timeout: int = DEFAULT_TIMEOUT) -> str: function run_command (line 129) | async def run_command(command: str, sandbox_id: str) -> str: function run_python_code (line 173) | async def run_python_code(code_block: str, sandbox_id: str) -> str: function upload_file_from_local_to_sandbox (line 230) | async def upload_file_from_local_to_sandbox( function download_file_from_internet_to_sandbox (line 294) | async def download_file_from_internet_to_sandbox( function download_file_from_sandbox_to_local (line 390) | async def download_file_from_sandbox_to_local( FILE: libs/miroflow-tools/src/miroflow_tools/mcp_servers/reading_mcp_server.py function convert_to_markdown (line 19) | async def convert_to_markdown(uri: str) -> str: FILE: libs/miroflow-tools/src/miroflow_tools/mcp_servers/reasoning_mcp_server.py function reasoning (line 20) | async def reasoning(question: str) -> str: FILE: libs/miroflow-tools/src/miroflow_tools/mcp_servers/reasoning_mcp_server_os.py function post_with_retry (line 27) | def post_with_retry(url, json, headers): function reasoning (line 55) | async def reasoning(question: str) -> str: FILE: libs/miroflow-tools/src/miroflow_tools/mcp_servers/searching_google_mcp_server.py function filter_google_search_result (line 41) | def filter_google_search_result(result_content: str) -> str: function google_search (line 85) | async def google_search( function wiki_get_page_content (line 167) | async def wiki_get_page_content(entity: str, first_sentences: int = 10) ... function search_wiki_revision (line 276) | async def search_wiki_revision( function search_archived_webpage (line 433) | async def search_archived_webpage(url: str, year: int, month: int, day: ... function scrape_website (line 649) | async def scrape_website(url: str) -> str: FILE: libs/miroflow-tools/src/miroflow_tools/mcp_servers/searching_sogou_mcp_server.py function sogou_search (line 30) | async def sogou_search(Query: str, Cnt: int = 10) -> str: function scrape_website (line 91) | async def scrape_website(url: str) -> str: FILE: libs/miroflow-tools/src/miroflow_tools/mcp_servers/serper_mcp_server.py function make_serper_request (line 38) | def make_serper_request( function _is_huggingface_dataset_or_space_url (line 47) | def _is_huggingface_dataset_or_space_url(url): function google_search (line 59) | def google_search( FILE: libs/miroflow-tools/src/miroflow_tools/mcp_servers/utils/url_unquote.py function safe_unquote (line 45) | def safe_unquote(url: str) -> str: function decode_http_urls_in_dict (line 117) | def decode_http_urls_in_dict(data): function strip_markdown_links (line 141) | def strip_markdown_links(markdown: str) -> str: FILE: libs/miroflow-tools/src/miroflow_tools/mcp_servers/vision_mcp_server.py function guess_mime_media_type_from_extension (line 22) | def guess_mime_media_type_from_extension(file_path: str) -> tuple[str, s... function _validate_file_size (line 62) | def _validate_file_size(file_path: str, media_category: str) -> tuple[bo... function visual_question_answering (line 89) | async def visual_question_answering(media_path_or_url: str, question: st... FILE: libs/miroflow-tools/src/miroflow_tools/mcp_servers/vision_mcp_server_os.py function guess_mime_media_type_from_extension (line 19) | def guess_mime_media_type_from_extension(file_path: str) -> str: function visual_question_answering (line 34) | async def visual_question_answering(image_path_or_url: str, question: st...