SYMBOL INDEX (109 symbols across 20 files) FILE: src/agent/browser_use/browser_use_agent.py class BrowserUseAgent (line 30) | class BrowserUseAgent(Agent): method _set_tool_calling_method (line 31) | def _set_tool_calling_method(self) -> ToolCallingMethod | None: method run (line 48) | async def run( FILE: src/agent/deep_research/deep_research_agent.py function run_single_browser_task (line 50) | async def run_single_browser_task( class BrowserSearchInput (line 196) | class BrowserSearchInput(BaseModel): function _run_browser_search_tool (line 202) | async def _run_browser_search_tool( function create_browser_search_tool (line 271) | def create_browser_search_tool( class ResearchTaskItem (line 304) | class ResearchTaskItem(TypedDict): class ResearchCategoryItem (line 312) | class ResearchCategoryItem(TypedDict): class DeepResearchState (line 318) | class DeepResearchState(TypedDict): function _load_previous_state (line 338) | def _load_previous_state(task_id: str, output_dir: str) -> Dict[str, Any]: function _save_plan_to_md (line 421) | def _save_plan_to_md(plan: List[ResearchCategoryItem], output_dir: str): function _save_search_results_to_json (line 438) | def _save_search_results_to_json(results: List[Dict[str, Any]], output_d... function _save_report_to_md (line 450) | def _save_report_to_md(report: str, output_dir: Path): function planning_node (line 461) | async def planning_node(state: DeepResearchState) -> Dict[str, Any]: function research_execution_node (line 609) | async def research_execution_node(state: DeepResearchState) -> Dict[str,... function synthesis_node (line 811) | async def synthesis_node(state: DeepResearchState) -> Dict[str, Any]: function should_continue (line 938) | def should_continue(state: DeepResearchState) -> str: class DeepResearchAgent (line 982) | class DeepResearchAgent: method __init__ (line 983) | def __init__( method _setup_tools (line 1008) | async def _setup_tools( method close_mcp_client (line 1045) | async def close_mcp_client(self): method _compile_graph (line 1050) | def _compile_graph(self) -> StateGraph: method run (line 1085) | async def run( method _stop_lingering_browsers (line 1226) | async def _stop_lingering_browsers(self, task_id): method stop (line 1249) | async def stop(self): method close (line 1260) | def close(self): FILE: src/browser/custom_browser.py class CustomBrowser (line 34) | class CustomBrowser(Browser): method new_context (line 36) | async def new_context(self, config: BrowserContextConfig | None = None... method _setup_builtin_browser (line 43) | async def _setup_builtin_browser(self, playwright: Playwright) -> Play... FILE: src/browser/custom_context.py class CustomBrowserContext (line 15) | class CustomBrowserContext(BrowserContext): method __init__ (line 16) | def __init__( FILE: src/controller/custom_controller.py class CustomController (line 39) | class CustomController(Controller): method __init__ (line 40) | def __init__(self, exclude_actions: list[str] = [], method _register_custom_actions (line 51) | def _register_custom_actions(self): method act (line 110) | async def act( method setup_mcp_client (line 154) | async def setup_mcp_client(self, mcp_server_config: Optional[Dict[str,... method register_mcp_tools (line 160) | def register_mcp_tools(self): method close_mcp_client (line 180) | async def close_mcp_client(self): FILE: src/utils/llm_provider.py class DeepSeekR1ChatOpenAI (line 55) | class DeepSeekR1ChatOpenAI(ChatOpenAI): method __init__ (line 57) | def __init__(self, *args: Any, **kwargs: Any) -> None: method ainvoke (line 64) | async def ainvoke( method invoke (line 90) | def invoke( class DeepSeekR1ChatOllama (line 117) | class DeepSeekR1ChatOllama(ChatOllama): method ainvoke (line 119) | async def ainvoke( method invoke (line 135) | def invoke( function get_llm_model (line 152) | def get_llm_model(provider: str, **kwargs): FILE: src/utils/mcp_client.py function setup_mcp_client_and_tools (line 17) | async def setup_mcp_client_and_tools(mcp_server_config: Dict[str, Any]) ... function create_tool_param_model (line 46) | def create_tool_param_model(tool: BaseTool) -> Type[BaseModel]: function resolve_type (line 134) | def resolve_type(prop_details: Dict[str, Any], prefix: str = "") -> Any: FILE: src/utils/utils.py function encode_image (line 12) | def encode_image(img_path): function get_latest_files (line 20) | def get_latest_files(directory: str, file_types: list = ['.webm', '.zip'... FILE: src/webui/components/agent_settings_tab.py function update_model_dropdown (line 15) | def update_model_dropdown(llm_provider): function update_mcp_server (line 27) | async def update_mcp_server(mcp_file: str, webui_manager: WebuiManager): function create_agent_settings_tab (line 46) | def create_agent_settings_tab(webui_manager: WebuiManager): FILE: src/webui/components/browser_settings_tab.py function close_browser (line 12) | async def close_browser(webui_manager: WebuiManager): function create_browser_settings_tab (line 30) | def create_browser_settings_tab(webui_manager: WebuiManager): FILE: src/webui/components/browser_use_agent_tab.py function _initialize_llm (line 33) | async def _initialize_llm( function _get_config_value (line 69) | def _get_config_value( function _format_agent_output (line 98) | def _format_agent_output(model_output: AgentOutput) -> str: function _handle_new_step (line 134) | async def _handle_new_step( function _handle_done (line 200) | def _handle_done(webui_manager: WebuiManager, history: AgentHistoryList): function _ask_assistant_callback (line 224) | async def _ask_assistant_callback( function run_agent_task (line 275) | async def run_agent_task( function handle_submit (line 796) | async def handle_submit( function handle_stop (line 836) | async def handle_stop(webui_manager: WebuiManager): function handle_pause_resume (line 876) | async def handle_pause_resume(webui_manager: WebuiManager): function handle_clear (line 906) | async def handle_clear(webui_manager: WebuiManager): function create_browser_use_agent_tab (line 972) | def create_browser_use_agent_tab(webui_manager: WebuiManager): FILE: src/webui/components/deep_research_agent_tab.py function _initialize_llm (line 18) | async def _initialize_llm(provider: Optional[str], model_name: Optional[... function _read_file_safe (line 43) | def _read_file_safe(file_path: str) -> Optional[str]: function run_deep_research (line 57) | async def run_deep_research(webui_manager: WebuiManager, components: Dic... function stop_deep_research (line 293) | async def stop_deep_research(webui_manager: WebuiManager) -> Dict[Compon... function update_mcp_server (line 358) | async def update_mcp_server(mcp_file: str, webui_manager: WebuiManager): function create_deep_research_agent_tab (line 376) | def create_deep_research_agent_tab(webui_manager: WebuiManager): FILE: src/webui/components/load_save_config_tab.py function create_load_save_config_tab (line 8) | def create_load_save_config_tab(webui_manager: WebuiManager): FILE: src/webui/interface.py function create_ui (line 22) | def create_ui(theme_name="Ocean"): FILE: src/webui/webui_manager.py class WebuiManager (line 22) | class WebuiManager: method __init__ (line 23) | def __init__(self, settings_save_dir: str = "./tmp/webui_settings"): method init_browser_use_agent (line 30) | def init_browser_use_agent(self) -> None: method init_deep_research_agent (line 44) | def init_deep_research_agent(self) -> None: method add_components (line 53) | def add_components(self, tab_name: str, components_dict: dict[str, "Co... method get_components (line 62) | def get_components(self) -> list["Component"]: method get_component_by_id (line 68) | def get_component_by_id(self, comp_id: str) -> "Component": method get_id_by_component (line 74) | def get_id_by_component(self, comp: "Component") -> str: method save_config (line 80) | def save_config(self, components: Dict["Component", str]) -> None: method load_config (line 97) | def load_config(self, config_path: str): FILE: tests/test_agents.py function test_browser_use_agent (line 20) | async def test_browser_use_agent(): function test_browser_use_parallel (line 166) | async def test_browser_use_parallel(): function test_deep_research_agent (line 329) | async def test_deep_research_agent(): FILE: tests/test_controller.py function test_mcp_client (line 13) | async def test_mcp_client(): function test_controller_with_mcp (line 55) | async def test_controller_with_mcp(): FILE: tests/test_llm_api.py class LLMConfig (line 17) | class LLMConfig: function create_message_content (line 25) | def create_message_content(text, image_path=None): function get_env_value (line 38) | def get_env_value(key, provider): function test_llm (line 55) | def test_llm(config, query, image_path=None, system_message=None): function test_openai_model (line 93) | def test_openai_model(): function test_google_model (line 98) | def test_google_model(): function test_azure_openai_model (line 104) | def test_azure_openai_model(): function test_deepseek_model (line 109) | def test_deepseek_model(): function test_deepseek_r1_model (line 114) | def test_deepseek_r1_model(): function test_ollama_model (line 119) | def test_ollama_model(): function test_deepseek_r1_ollama_model (line 124) | def test_deepseek_r1_ollama_model(): function test_mistral_model (line 129) | def test_mistral_model(): function test_moonshot_model (line 134) | def test_moonshot_model(): function test_ibm_model (line 139) | def test_ibm_model(): function test_qwen_model (line 144) | def test_qwen_model(): FILE: tests/test_playwright.py function test_connect_browser (line 7) | def test_connect_browser(): FILE: webui.py function main (line 7) | def main():