camel-ai 0.2.65__py3-none-any.whl → 0.2.83a6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of camel-ai might be problematic. Click here for more details.

Files changed (509) hide show
  1. camel/__init__.py +3 -3
  2. camel/agents/__init__.py +2 -2
  3. camel/agents/_types.py +9 -4
  4. camel/agents/_utils.py +40 -2
  5. camel/agents/base.py +2 -2
  6. camel/agents/chat_agent.py +5107 -995
  7. camel/agents/critic_agent.py +2 -2
  8. camel/agents/deductive_reasoner_agent.py +56 -56
  9. camel/agents/embodied_agent.py +2 -2
  10. camel/agents/knowledge_graph_agent.py +20 -20
  11. camel/agents/mcp_agent.py +35 -36
  12. camel/agents/multi_hop_generator_agent.py +3 -3
  13. camel/agents/programmed_agent_instruction.py +2 -2
  14. camel/agents/repo_agent.py +4 -3
  15. camel/agents/role_assignment_agent.py +2 -2
  16. camel/agents/search_agent.py +2 -2
  17. camel/agents/task_agent.py +2 -2
  18. camel/agents/tool_agents/__init__.py +2 -2
  19. camel/agents/tool_agents/base.py +2 -2
  20. camel/agents/tool_agents/hugging_face_tool_agent.py +3 -3
  21. camel/benchmarks/__init__.py +2 -2
  22. camel/benchmarks/apibank.py +5 -5
  23. camel/benchmarks/apibench.py +2 -2
  24. camel/benchmarks/base.py +2 -2
  25. camel/benchmarks/browsecomp.py +44 -33
  26. camel/benchmarks/gaia.py +17 -13
  27. camel/benchmarks/mock_website/README.md +1 -3
  28. camel/benchmarks/mock_website/mock_web.py +2 -2
  29. camel/benchmarks/mock_website/requirements.txt +1 -1
  30. camel/benchmarks/mock_website/shopping_mall/app.py +2 -2
  31. camel/benchmarks/mock_website/task.json +1 -1
  32. camel/benchmarks/nexus.py +3 -3
  33. camel/benchmarks/ragbench.py +2 -2
  34. camel/bots/__init__.py +2 -2
  35. camel/bots/discord/__init__.py +2 -2
  36. camel/bots/discord/discord_app.py +2 -2
  37. camel/bots/discord/discord_installation.py +2 -2
  38. camel/bots/discord/discord_store.py +3 -3
  39. camel/bots/slack/__init__.py +2 -2
  40. camel/bots/slack/models.py +4 -4
  41. camel/bots/slack/slack_app.py +2 -2
  42. camel/bots/telegram_bot.py +2 -2
  43. camel/configs/__init__.py +29 -2
  44. camel/configs/aihubmix_config.py +90 -0
  45. camel/configs/aiml_config.py +2 -2
  46. camel/configs/amd_config.py +70 -0
  47. camel/configs/anthropic_config.py +2 -2
  48. camel/configs/base_config.py +2 -2
  49. camel/configs/bedrock_config.py +5 -3
  50. camel/configs/cerebras_config.py +98 -0
  51. camel/configs/cohere_config.py +2 -2
  52. camel/configs/cometapi_config.py +106 -0
  53. camel/configs/crynux_config.py +2 -2
  54. camel/configs/deepseek_config.py +9 -8
  55. camel/configs/function_gemma_config.py +59 -0
  56. camel/configs/gemini_config.py +6 -4
  57. camel/configs/groq_config.py +6 -4
  58. camel/configs/internlm_config.py +6 -4
  59. camel/configs/litellm_config.py +2 -2
  60. camel/configs/lmstudio_config.py +6 -4
  61. camel/configs/minimax_config.py +95 -0
  62. camel/configs/mistral_config.py +2 -2
  63. camel/configs/modelscope_config.py +5 -3
  64. camel/configs/moonshot_config.py +2 -2
  65. camel/configs/nebius_config.py +105 -0
  66. camel/configs/netmind_config.py +2 -2
  67. camel/configs/novita_config.py +2 -2
  68. camel/configs/nvidia_config.py +2 -2
  69. camel/configs/ollama_config.py +2 -2
  70. camel/configs/openai_config.py +5 -3
  71. camel/configs/openrouter_config.py +6 -4
  72. camel/configs/ppio_config.py +2 -2
  73. camel/configs/qianfan_config.py +85 -0
  74. camel/configs/qwen_config.py +2 -2
  75. camel/configs/reka_config.py +2 -2
  76. camel/configs/samba_config.py +6 -4
  77. camel/configs/sglang_config.py +2 -2
  78. camel/configs/siliconflow_config.py +2 -2
  79. camel/configs/togetherai_config.py +2 -2
  80. camel/configs/vllm_config.py +4 -2
  81. camel/configs/watsonx_config.py +2 -2
  82. camel/configs/yi_config.py +6 -4
  83. camel/configs/zhipuai_config.py +6 -4
  84. camel/data_collectors/__init__.py +2 -2
  85. camel/data_collectors/alpaca_collector.py +18 -9
  86. camel/data_collectors/base.py +2 -2
  87. camel/data_collectors/sharegpt_collector.py +2 -2
  88. camel/datagen/__init__.py +2 -2
  89. camel/datagen/cot_datagen.py +3 -3
  90. camel/datagen/evol_instruct/__init__.py +2 -2
  91. camel/datagen/evol_instruct/evol_instruct.py +2 -2
  92. camel/datagen/evol_instruct/scorer.py +12 -12
  93. camel/datagen/evol_instruct/templates.py +16 -16
  94. camel/datagen/self_improving_cot.py +5 -5
  95. camel/datagen/self_instruct/__init__.py +2 -2
  96. camel/datagen/self_instruct/filter/__init__.py +2 -2
  97. camel/datagen/self_instruct/filter/filter_function.py +2 -2
  98. camel/datagen/self_instruct/filter/filter_registry.py +2 -2
  99. camel/datagen/self_instruct/filter/instruction_filter.py +2 -2
  100. camel/datagen/self_instruct/self_instruct.py +2 -2
  101. camel/datagen/self_instruct/templates.py +47 -47
  102. camel/datagen/source2synth/__init__.py +2 -2
  103. camel/datagen/source2synth/data_processor.py +2 -2
  104. camel/datagen/source2synth/models.py +2 -2
  105. camel/datagen/source2synth/user_data_processor_config.py +2 -2
  106. camel/datahubs/__init__.py +2 -2
  107. camel/datahubs/base.py +2 -2
  108. camel/datahubs/huggingface.py +2 -2
  109. camel/datahubs/models.py +2 -2
  110. camel/datasets/__init__.py +2 -2
  111. camel/datasets/base_generator.py +41 -12
  112. camel/datasets/few_shot_generator.py +18 -18
  113. camel/datasets/models.py +2 -2
  114. camel/datasets/self_instruct_generator.py +2 -2
  115. camel/datasets/static_dataset.py +2 -2
  116. camel/embeddings/__init__.py +2 -2
  117. camel/embeddings/azure_embedding.py +2 -2
  118. camel/embeddings/base.py +2 -2
  119. camel/embeddings/gemini_embedding.py +2 -2
  120. camel/embeddings/jina_embedding.py +2 -2
  121. camel/embeddings/mistral_embedding.py +2 -2
  122. camel/embeddings/openai_compatible_embedding.py +2 -2
  123. camel/embeddings/openai_embedding.py +2 -2
  124. camel/embeddings/sentence_transformers_embeddings.py +2 -2
  125. camel/embeddings/together_embedding.py +2 -2
  126. camel/embeddings/vlm_embedding.py +2 -2
  127. camel/environments/__init__.py +14 -2
  128. camel/environments/models.py +2 -2
  129. camel/environments/multi_step.py +2 -2
  130. camel/environments/rlcards_env.py +860 -0
  131. camel/environments/single_step.py +30 -5
  132. camel/environments/tic_tac_toe.py +3 -3
  133. camel/extractors/__init__.py +2 -2
  134. camel/extractors/base.py +2 -2
  135. camel/extractors/python_strategies.py +2 -2
  136. camel/generators.py +2 -2
  137. camel/human.py +2 -2
  138. camel/interpreters/__init__.py +4 -2
  139. camel/interpreters/base.py +2 -2
  140. camel/interpreters/docker/Dockerfile +14 -24
  141. camel/interpreters/docker_interpreter.py +5 -4
  142. camel/interpreters/e2b_interpreter.py +36 -3
  143. camel/interpreters/internal_python_interpreter.py +53 -4
  144. camel/interpreters/interpreter_error.py +2 -2
  145. camel/interpreters/ipython_interpreter.py +2 -2
  146. camel/interpreters/microsandbox_interpreter.py +395 -0
  147. camel/interpreters/subprocess_interpreter.py +2 -2
  148. camel/loaders/__init__.py +13 -4
  149. camel/loaders/apify_reader.py +2 -2
  150. camel/loaders/base_io.py +2 -2
  151. camel/loaders/base_loader.py +85 -0
  152. camel/loaders/chunkr_reader.py +11 -2
  153. camel/loaders/crawl4ai_reader.py +2 -2
  154. camel/loaders/firecrawl_reader.py +6 -6
  155. camel/loaders/jina_url_reader.py +2 -2
  156. camel/loaders/markitdown.py +2 -2
  157. camel/loaders/mineru_extractor.py +2 -2
  158. camel/loaders/mistral_reader.py +2 -2
  159. camel/loaders/scrapegraph_reader.py +2 -2
  160. camel/loaders/unstructured_io.py +2 -2
  161. camel/logger.py +5 -5
  162. camel/memories/__init__.py +2 -2
  163. camel/memories/agent_memories.py +86 -3
  164. camel/memories/base.py +36 -2
  165. camel/memories/blocks/__init__.py +2 -2
  166. camel/memories/blocks/chat_history_block.py +125 -7
  167. camel/memories/blocks/vectordb_block.py +10 -3
  168. camel/memories/context_creators/__init__.py +2 -2
  169. camel/memories/context_creators/score_based.py +109 -230
  170. camel/memories/records.py +90 -10
  171. camel/messages/__init__.py +2 -2
  172. camel/messages/base.py +178 -43
  173. camel/messages/conversion/__init__.py +2 -2
  174. camel/messages/conversion/alpaca.py +2 -2
  175. camel/messages/conversion/conversation_models.py +2 -2
  176. camel/messages/conversion/sharegpt/__init__.py +2 -2
  177. camel/messages/conversion/sharegpt/function_call_formatter.py +2 -2
  178. camel/messages/conversion/sharegpt/hermes/__init__.py +2 -2
  179. camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +2 -2
  180. camel/messages/func_message.py +54 -17
  181. camel/models/__init__.py +18 -2
  182. camel/models/_utils.py +3 -3
  183. camel/models/aihubmix_model.py +83 -0
  184. camel/models/aiml_model.py +11 -18
  185. camel/models/amd_model.py +101 -0
  186. camel/models/anthropic_model.py +127 -20
  187. camel/models/aws_bedrock_model.py +12 -35
  188. camel/models/azure_openai_model.py +214 -115
  189. camel/models/base_audio_model.py +5 -3
  190. camel/models/base_model.py +378 -31
  191. camel/models/cerebras_model.py +83 -0
  192. camel/models/cohere_model.py +18 -49
  193. camel/models/cometapi_model.py +83 -0
  194. camel/models/crynux_model.py +11 -18
  195. camel/models/deepseek_model.py +20 -84
  196. camel/models/fish_audio_model.py +8 -2
  197. camel/models/function_gemma_model.py +889 -0
  198. camel/models/gemini_model.py +391 -52
  199. camel/models/groq_model.py +11 -19
  200. camel/models/internlm_model.py +11 -18
  201. camel/models/litellm_model.py +57 -49
  202. camel/models/lmstudio_model.py +17 -20
  203. camel/models/minimax_model.py +83 -0
  204. camel/models/mistral_model.py +20 -47
  205. camel/models/model_factory.py +39 -3
  206. camel/models/model_manager.py +26 -8
  207. camel/models/modelscope_model.py +13 -193
  208. camel/models/moonshot_model.py +183 -21
  209. camel/models/nebius_model.py +83 -0
  210. camel/models/nemotron_model.py +19 -9
  211. camel/models/netmind_model.py +11 -18
  212. camel/models/novita_model.py +11 -18
  213. camel/models/nvidia_model.py +11 -18
  214. camel/models/ollama_model.py +14 -21
  215. camel/models/openai_audio_models.py +2 -2
  216. camel/models/openai_compatible_model.py +190 -71
  217. camel/models/openai_model.py +192 -86
  218. camel/models/openrouter_model.py +11 -19
  219. camel/models/ppio_model.py +11 -18
  220. camel/models/qianfan_model.py +89 -0
  221. camel/models/qwen_model.py +13 -193
  222. camel/models/reka_model.py +23 -49
  223. camel/models/reward/__init__.py +2 -2
  224. camel/models/reward/base_reward_model.py +2 -2
  225. camel/models/reward/evaluator.py +2 -2
  226. camel/models/reward/nemotron_model.py +2 -2
  227. camel/models/reward/skywork_model.py +2 -2
  228. camel/models/samba_model.py +50 -75
  229. camel/models/sglang_model.py +90 -68
  230. camel/models/siliconflow_model.py +12 -35
  231. camel/models/stub_model.py +10 -7
  232. camel/models/togetherai_model.py +11 -18
  233. camel/models/vllm_model.py +10 -18
  234. camel/models/volcano_model.py +158 -19
  235. camel/models/watsonx_model.py +9 -47
  236. camel/models/yi_model.py +11 -18
  237. camel/models/zhipuai_model.py +70 -18
  238. camel/parsers/__init__.py +18 -0
  239. camel/parsers/mcp_tool_call_parser.py +176 -0
  240. camel/personas/__init__.py +2 -2
  241. camel/personas/persona.py +2 -2
  242. camel/personas/persona_hub.py +2 -2
  243. camel/prompts/__init__.py +2 -2
  244. camel/prompts/ai_society.py +2 -2
  245. camel/prompts/base.py +2 -2
  246. camel/prompts/code.py +2 -2
  247. camel/prompts/evaluation.py +2 -2
  248. camel/prompts/generate_text_embedding_data.py +2 -2
  249. camel/prompts/image_craft.py +2 -2
  250. camel/prompts/misalignment.py +2 -2
  251. camel/prompts/multi_condition_image_craft.py +2 -2
  252. camel/prompts/object_recognition.py +2 -2
  253. camel/prompts/persona_hub.py +3 -3
  254. camel/prompts/prompt_templates.py +2 -2
  255. camel/prompts/role_description_prompt_template.py +2 -2
  256. camel/prompts/solution_extraction.py +8 -8
  257. camel/prompts/task_prompt_template.py +2 -2
  258. camel/prompts/translation.py +2 -2
  259. camel/prompts/video_description_prompt.py +3 -3
  260. camel/responses/__init__.py +2 -2
  261. camel/responses/agent_responses.py +2 -2
  262. camel/retrievers/__init__.py +2 -2
  263. camel/retrievers/auto_retriever.py +3 -2
  264. camel/retrievers/base.py +2 -2
  265. camel/retrievers/bm25_retriever.py +2 -2
  266. camel/retrievers/cohere_rerank_retriever.py +2 -2
  267. camel/retrievers/hybrid_retrival.py +2 -2
  268. camel/retrievers/vector_retriever.py +2 -2
  269. camel/runtimes/Dockerfile.multi-toolkit +90 -0
  270. camel/runtimes/__init__.py +2 -2
  271. camel/runtimes/api.py +79 -23
  272. camel/runtimes/base.py +2 -2
  273. camel/runtimes/configs.py +13 -13
  274. camel/runtimes/daytona_runtime.py +17 -18
  275. camel/runtimes/docker_runtime.py +12 -12
  276. camel/runtimes/llm_guard_runtime.py +26 -26
  277. camel/runtimes/remote_http_runtime.py +11 -11
  278. camel/runtimes/ubuntu_docker_runtime.py +2 -2
  279. camel/runtimes/utils/__init__.py +2 -2
  280. camel/runtimes/utils/function_risk_toolkit.py +2 -2
  281. camel/runtimes/utils/ignore_risk_toolkit.py +2 -2
  282. camel/schemas/__init__.py +2 -2
  283. camel/schemas/base.py +2 -2
  284. camel/schemas/openai_converter.py +3 -3
  285. camel/schemas/outlines_converter.py +2 -2
  286. camel/services/agent_openapi_server.py +380 -0
  287. camel/societies/__init__.py +4 -2
  288. camel/societies/babyagi_playing.py +2 -2
  289. camel/societies/role_playing.py +201 -80
  290. camel/societies/workforce/__init__.py +10 -3
  291. camel/societies/workforce/base.py +2 -2
  292. camel/societies/workforce/events.py +145 -0
  293. camel/societies/workforce/prompts.py +259 -33
  294. camel/societies/workforce/role_playing_worker.py +88 -31
  295. camel/societies/workforce/single_agent_worker.py +638 -40
  296. camel/societies/workforce/structured_output_handler.py +512 -0
  297. camel/societies/workforce/task_channel.py +182 -38
  298. camel/societies/workforce/utils.py +780 -65
  299. camel/societies/workforce/worker.py +92 -26
  300. camel/societies/workforce/workflow_memory_manager.py +1746 -0
  301. camel/societies/workforce/workforce.py +5354 -372
  302. camel/societies/workforce/workforce_callback.py +103 -0
  303. camel/societies/workforce/workforce_logger.py +647 -0
  304. camel/societies/workforce/workforce_metrics.py +33 -0
  305. camel/storages/__init__.py +6 -2
  306. camel/storages/graph_storages/__init__.py +2 -2
  307. camel/storages/graph_storages/base.py +2 -2
  308. camel/storages/graph_storages/graph_element.py +2 -2
  309. camel/storages/graph_storages/nebula_graph.py +4 -4
  310. camel/storages/graph_storages/neo4j_graph.py +7 -7
  311. camel/storages/key_value_storages/__init__.py +2 -2
  312. camel/storages/key_value_storages/base.py +2 -2
  313. camel/storages/key_value_storages/in_memory.py +2 -2
  314. camel/storages/key_value_storages/json.py +17 -4
  315. camel/storages/key_value_storages/mem0_cloud.py +50 -49
  316. camel/storages/key_value_storages/redis.py +2 -2
  317. camel/storages/object_storages/__init__.py +2 -2
  318. camel/storages/object_storages/amazon_s3.py +2 -2
  319. camel/storages/object_storages/azure_blob.py +2 -2
  320. camel/storages/object_storages/base.py +2 -2
  321. camel/storages/object_storages/google_cloud.py +3 -3
  322. camel/storages/vectordb_storages/__init__.py +8 -2
  323. camel/storages/vectordb_storages/base.py +2 -2
  324. camel/storages/vectordb_storages/chroma.py +731 -0
  325. camel/storages/vectordb_storages/faiss.py +2 -2
  326. camel/storages/vectordb_storages/milvus.py +2 -2
  327. camel/storages/vectordb_storages/oceanbase.py +15 -15
  328. camel/storages/vectordb_storages/pgvector.py +349 -0
  329. camel/storages/vectordb_storages/qdrant.py +6 -6
  330. camel/storages/vectordb_storages/surreal.py +372 -0
  331. camel/storages/vectordb_storages/tidb.py +11 -8
  332. camel/storages/vectordb_storages/weaviate.py +2 -2
  333. camel/tasks/__init__.py +2 -2
  334. camel/tasks/task.py +348 -26
  335. camel/tasks/task_prompt.py +3 -3
  336. camel/terminators/__init__.py +2 -2
  337. camel/terminators/base.py +2 -2
  338. camel/terminators/response_terminator.py +2 -2
  339. camel/terminators/token_limit_terminator.py +2 -2
  340. camel/toolkits/__init__.py +57 -10
  341. camel/toolkits/aci_toolkit.py +66 -21
  342. camel/toolkits/arxiv_toolkit.py +8 -8
  343. camel/toolkits/ask_news_toolkit.py +2 -2
  344. camel/toolkits/async_browser_toolkit.py +4 -4
  345. camel/toolkits/audio_analysis_toolkit.py +3 -3
  346. camel/toolkits/base.py +106 -6
  347. camel/toolkits/bohrium_toolkit.py +2 -2
  348. camel/toolkits/browser_toolkit.py +34 -21
  349. camel/toolkits/browser_toolkit_commons.py +4 -4
  350. camel/toolkits/code_execution.py +31 -4
  351. camel/toolkits/context_summarizer_toolkit.py +684 -0
  352. camel/toolkits/craw4ai_toolkit.py +93 -0
  353. camel/toolkits/dappier_toolkit.py +12 -8
  354. camel/toolkits/data_commons_toolkit.py +2 -2
  355. camel/toolkits/dingtalk.py +1135 -0
  356. camel/toolkits/earth_science_toolkit.py +5367 -0
  357. camel/toolkits/edgeone_pages_mcp_toolkit.py +49 -0
  358. camel/toolkits/excel_toolkit.py +905 -71
  359. camel/toolkits/file_toolkit.py +1402 -0
  360. camel/toolkits/function_tool.py +205 -27
  361. camel/toolkits/github_toolkit.py +109 -22
  362. camel/toolkits/gmail_toolkit.py +1839 -0
  363. camel/toolkits/google_calendar_toolkit.py +40 -6
  364. camel/toolkits/google_drive_mcp_toolkit.py +54 -0
  365. camel/toolkits/google_maps_toolkit.py +2 -2
  366. camel/toolkits/google_scholar_toolkit.py +2 -2
  367. camel/toolkits/human_toolkit.py +36 -12
  368. camel/toolkits/hybrid_browser_toolkit/__init__.py +18 -0
  369. camel/toolkits/hybrid_browser_toolkit/config_loader.py +185 -0
  370. camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py +246 -0
  371. camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py +1958 -0
  372. camel/toolkits/hybrid_browser_toolkit/installer.py +203 -0
  373. camel/toolkits/hybrid_browser_toolkit/ts/package-lock.json +4589 -0
  374. camel/toolkits/hybrid_browser_toolkit/ts/package.json +33 -0
  375. camel/toolkits/hybrid_browser_toolkit/ts/src/browser-scripts.js +125 -0
  376. camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts +1940 -0
  377. camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts +233 -0
  378. camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts +589 -0
  379. camel/toolkits/hybrid_browser_toolkit/ts/src/index.ts +7 -0
  380. camel/toolkits/hybrid_browser_toolkit/ts/src/parent-child-filter.ts +226 -0
  381. camel/toolkits/hybrid_browser_toolkit/ts/src/snapshot-parser.ts +219 -0
  382. camel/toolkits/hybrid_browser_toolkit/ts/src/som-screenshot-injected.ts +543 -0
  383. camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts +129 -0
  384. camel/toolkits/hybrid_browser_toolkit/ts/tsconfig.json +27 -0
  385. camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js +325 -0
  386. camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py +1037 -0
  387. camel/toolkits/hybrid_browser_toolkit_py/__init__.py +17 -0
  388. camel/toolkits/hybrid_browser_toolkit_py/actions.py +575 -0
  389. camel/toolkits/hybrid_browser_toolkit_py/agent.py +311 -0
  390. camel/toolkits/hybrid_browser_toolkit_py/browser_session.py +787 -0
  391. camel/toolkits/hybrid_browser_toolkit_py/config_loader.py +490 -0
  392. camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py +2390 -0
  393. camel/toolkits/hybrid_browser_toolkit_py/snapshot.py +233 -0
  394. camel/toolkits/hybrid_browser_toolkit_py/stealth_script.js +0 -0
  395. camel/toolkits/hybrid_browser_toolkit_py/unified_analyzer.js +1043 -0
  396. camel/toolkits/image_analysis_toolkit.py +3 -6
  397. camel/toolkits/image_generation_toolkit.py +390 -0
  398. camel/toolkits/jina_reranker_toolkit.py +5 -6
  399. camel/toolkits/klavis_toolkit.py +7 -3
  400. camel/toolkits/linkedin_toolkit.py +2 -2
  401. camel/toolkits/markitdown_toolkit.py +104 -0
  402. camel/toolkits/math_toolkit.py +66 -12
  403. camel/toolkits/mcp_toolkit.py +412 -36
  404. camel/toolkits/memory_toolkit.py +7 -3
  405. camel/toolkits/meshy_toolkit.py +2 -2
  406. camel/toolkits/message_agent_toolkit.py +608 -0
  407. camel/toolkits/message_integration.py +728 -0
  408. camel/toolkits/microsoft_outlook_mail_toolkit.py +1885 -0
  409. camel/toolkits/mineru_toolkit.py +2 -2
  410. camel/toolkits/minimax_mcp_toolkit.py +195 -0
  411. camel/toolkits/networkx_toolkit.py +2 -2
  412. camel/toolkits/note_taking_toolkit.py +277 -0
  413. camel/toolkits/notion_mcp_toolkit.py +224 -0
  414. camel/toolkits/notion_toolkit.py +2 -2
  415. camel/toolkits/open_api_specs/biztoc/__init__.py +2 -2
  416. camel/toolkits/open_api_specs/biztoc/ai-plugin.json +1 -1
  417. camel/toolkits/open_api_specs/coursera/__init__.py +2 -2
  418. camel/toolkits/open_api_specs/create_qr_code/__init__.py +2 -2
  419. camel/toolkits/open_api_specs/klarna/__init__.py +2 -2
  420. camel/toolkits/open_api_specs/nasa_apod/__init__.py +2 -2
  421. camel/toolkits/open_api_specs/outschool/__init__.py +2 -2
  422. camel/toolkits/open_api_specs/outschool/ai-plugin.json +1 -1
  423. camel/toolkits/open_api_specs/outschool/openapi.yaml +1 -1
  424. camel/toolkits/open_api_specs/outschool/paths/__init__.py +2 -2
  425. camel/toolkits/open_api_specs/outschool/paths/get_classes.py +2 -2
  426. camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +2 -2
  427. camel/toolkits/open_api_specs/security_config.py +2 -2
  428. camel/toolkits/open_api_specs/speak/__init__.py +2 -2
  429. camel/toolkits/open_api_specs/web_scraper/__init__.py +2 -2
  430. camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +1 -1
  431. camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +2 -2
  432. camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +2 -2
  433. camel/toolkits/open_api_toolkit.py +2 -2
  434. camel/toolkits/openbb_toolkit.py +7 -3
  435. camel/toolkits/origene_mcp_toolkit.py +56 -0
  436. camel/toolkits/page_script.js +53 -53
  437. camel/toolkits/playwright_mcp_toolkit.py +13 -31
  438. camel/toolkits/pptx_toolkit.py +36 -23
  439. camel/toolkits/pubmed_toolkit.py +2 -2
  440. camel/toolkits/pulse_mcp_search_toolkit.py +2 -2
  441. camel/toolkits/pyautogui_toolkit.py +2 -2
  442. camel/toolkits/reddit_toolkit.py +2 -2
  443. camel/toolkits/resend_toolkit.py +168 -0
  444. camel/toolkits/retrieval_toolkit.py +2 -2
  445. camel/toolkits/screenshot_toolkit.py +213 -0
  446. camel/toolkits/search_toolkit.py +606 -156
  447. camel/toolkits/searxng_toolkit.py +2 -2
  448. camel/toolkits/semantic_scholar_toolkit.py +2 -2
  449. camel/toolkits/slack_toolkit.py +108 -58
  450. camel/toolkits/sql_toolkit.py +712 -0
  451. camel/toolkits/stripe_toolkit.py +2 -2
  452. camel/toolkits/sympy_toolkit.py +3 -3
  453. camel/toolkits/task_planning_toolkit.py +5 -5
  454. camel/toolkits/terminal_toolkit/__init__.py +18 -0
  455. camel/toolkits/terminal_toolkit/terminal_toolkit.py +1281 -0
  456. camel/toolkits/terminal_toolkit/utils.py +659 -0
  457. camel/toolkits/thinking_toolkit.py +3 -3
  458. camel/toolkits/twitter_toolkit.py +2 -2
  459. camel/toolkits/vertex_ai_veo_toolkit.py +590 -0
  460. camel/toolkits/video_analysis_toolkit.py +109 -29
  461. camel/toolkits/video_download_toolkit.py +19 -16
  462. camel/toolkits/weather_toolkit.py +2 -2
  463. camel/toolkits/web_deploy_toolkit.py +1219 -0
  464. camel/toolkits/wechat_official_toolkit.py +483 -0
  465. camel/toolkits/whatsapp_toolkit.py +2 -2
  466. camel/toolkits/wolfram_alpha_toolkit.py +2 -2
  467. camel/toolkits/zapier_toolkit.py +7 -3
  468. camel/types/__init__.py +4 -4
  469. camel/types/agents/__init__.py +2 -2
  470. camel/types/agents/tool_calling_record.py +6 -3
  471. camel/types/enums.py +381 -41
  472. camel/types/mcp_registries.py +2 -2
  473. camel/types/openai_types.py +4 -4
  474. camel/types/unified_model_type.py +46 -10
  475. camel/utils/__init__.py +5 -2
  476. camel/utils/agent_context.py +41 -0
  477. camel/utils/async_func.py +2 -2
  478. camel/utils/chunker/__init__.py +2 -2
  479. camel/utils/chunker/base.py +2 -2
  480. camel/utils/chunker/code_chunker.py +2 -2
  481. camel/utils/chunker/uio_chunker.py +2 -2
  482. camel/utils/commons.py +38 -7
  483. camel/utils/constants.py +5 -2
  484. camel/utils/context_utils.py +1134 -0
  485. camel/utils/deduplication.py +2 -2
  486. camel/utils/filename.py +2 -2
  487. camel/utils/langfuse.py +18 -10
  488. camel/utils/mcp.py +140 -6
  489. camel/utils/mcp_client.py +48 -38
  490. camel/utils/message_summarizer.py +148 -0
  491. camel/utils/response_format.py +2 -2
  492. camel/utils/token_counting.py +45 -22
  493. camel/utils/tool_result.py +44 -0
  494. camel/verifiers/__init__.py +2 -2
  495. camel/verifiers/base.py +2 -2
  496. camel/verifiers/math_verifier.py +2 -2
  497. camel/verifiers/models.py +2 -2
  498. camel/verifiers/physics_verifier.py +2 -2
  499. camel/verifiers/python_verifier.py +2 -2
  500. {camel_ai-0.2.65.dist-info → camel_ai-0.2.83a6.dist-info}/METADATA +355 -117
  501. camel_ai-0.2.83a6.dist-info/RECORD +511 -0
  502. {camel_ai-0.2.65.dist-info → camel_ai-0.2.83a6.dist-info}/WHEEL +1 -1
  503. {camel_ai-0.2.65.dist-info → camel_ai-0.2.83a6.dist-info}/licenses/LICENSE +1 -1
  504. camel/loaders/pandas_reader.py +0 -368
  505. camel/toolkits/dalle_toolkit.py +0 -175
  506. camel/toolkits/file_write_toolkit.py +0 -444
  507. camel/toolkits/openai_agent_toolkit.py +0 -135
  508. camel/toolkits/terminal_toolkit.py +0 -1037
  509. camel_ai-0.2.65.dist-info/RECORD +0 -426
@@ -0,0 +1,490 @@
1
+ #!/usr/bin/env python3
2
+ # ========= Copyright 2023-2026 @ CAMEL-AI.org. All Rights Reserved. =========
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ========= Copyright 2023-2026 @ CAMEL-AI.org. All Rights Reserved. =========
15
+
16
+ """
17
+ Configuration for browser automation including stealth mode and timeouts.
18
+
19
+ This module contains all the configuration needed to make the browser
20
+ appear as a regular user browser and configure action timeouts.
21
+ """
22
+
23
+ import os
24
+ from typing import Any, Dict, List, Optional
25
+
26
+
27
+ class BrowserConfig:
28
+ r"""Configuration class for browser settings including stealth mode and
29
+ timeouts."""
30
+
31
+ # Default timeout values (in milliseconds)
32
+ DEFAULT_ACTION_TIMEOUT = 3000
33
+ DEFAULT_SHORT_TIMEOUT = 1000
34
+ DEFAULT_NAVIGATION_TIMEOUT = 10000
35
+ DEFAULT_NETWORK_IDLE_TIMEOUT = 5000
36
+ DEFAULT_SCREENSHOT_TIMEOUT = 15000
37
+ DEFAULT_PAGE_STABILITY_TIMEOUT = 1500
38
+ DEFAULT_DOM_CONTENT_LOADED_TIMEOUT = 5000
39
+
40
+ # Default action limits
41
+ DEFAULT_MAX_SCROLL_AMOUNT = 5000 # Maximum scroll distance in pixels
42
+
43
+ # Default config limits
44
+ DEFAULT_MAX_LOG_LIMIT = 1000
45
+
46
+ @staticmethod
47
+ def get_timeout_config() -> Dict[str, int]:
48
+ r"""Get timeout configuration with environment variable support.
49
+
50
+ Returns:
51
+ Dict[str, int]: Timeout configuration in milliseconds.
52
+ """
53
+ return {
54
+ 'default_timeout': int(
55
+ os.getenv(
56
+ 'HYBRID_BROWSER_DEFAULT_TIMEOUT',
57
+ BrowserConfig.DEFAULT_ACTION_TIMEOUT,
58
+ )
59
+ ),
60
+ 'short_timeout': int(
61
+ os.getenv(
62
+ 'HYBRID_BROWSER_SHORT_TIMEOUT',
63
+ BrowserConfig.DEFAULT_SHORT_TIMEOUT,
64
+ )
65
+ ),
66
+ 'navigation_timeout': int(
67
+ os.getenv(
68
+ 'HYBRID_BROWSER_NAVIGATION_TIMEOUT',
69
+ BrowserConfig.DEFAULT_NAVIGATION_TIMEOUT,
70
+ )
71
+ ),
72
+ 'network_idle_timeout': int(
73
+ os.getenv(
74
+ 'HYBRID_BROWSER_NETWORK_IDLE_TIMEOUT',
75
+ BrowserConfig.DEFAULT_NETWORK_IDLE_TIMEOUT,
76
+ )
77
+ ),
78
+ 'screenshot_timeout': int(
79
+ os.getenv(
80
+ 'HYBRID_BROWSER_SCREENSHOT_TIMEOUT',
81
+ BrowserConfig.DEFAULT_SCREENSHOT_TIMEOUT,
82
+ )
83
+ ),
84
+ 'page_stability_timeout': int(
85
+ os.getenv(
86
+ 'HYBRID_BROWSER_PAGE_STABILITY_TIMEOUT',
87
+ BrowserConfig.DEFAULT_PAGE_STABILITY_TIMEOUT,
88
+ )
89
+ ),
90
+ 'dom_content_loaded_timeout': int(
91
+ os.getenv(
92
+ 'HYBRID_BROWSER_DOM_CONTENT_LOADED_TIMEOUT',
93
+ BrowserConfig.DEFAULT_DOM_CONTENT_LOADED_TIMEOUT,
94
+ )
95
+ ),
96
+ }
97
+
98
+ @staticmethod
99
+ def get_action_limits() -> Dict[str, int]:
100
+ r"""Get action limits configuration with environment variable support.
101
+
102
+ Returns:
103
+ Dict[str, int]: Action limits configuration.
104
+ """
105
+ return {
106
+ 'max_scroll_amount': int(
107
+ os.getenv(
108
+ 'HYBRID_BROWSER_MAX_SCROLL_AMOUNT',
109
+ BrowserConfig.DEFAULT_MAX_SCROLL_AMOUNT,
110
+ )
111
+ ),
112
+ }
113
+
114
+ @staticmethod
115
+ def get_log_limits() -> Dict[str, int]:
116
+ r"""Get log limits configuration with environment variable support.
117
+
118
+ Returns:
119
+ Dict[str, int]: Console Log limits configuration.
120
+ """
121
+ return {
122
+ 'max_log_limit': int(
123
+ os.getenv(
124
+ 'HYBRID_BROWSER_MAX_LOG_LIMIT',
125
+ BrowserConfig.DEFAULT_MAX_LOG_LIMIT,
126
+ )
127
+ ),
128
+ }
129
+
130
+ @staticmethod
131
+ def get_action_timeout(override: Optional[int] = None) -> int:
132
+ r"""Get action timeout with optional override.
133
+
134
+ Args:
135
+ override: Optional timeout override value in milliseconds.
136
+
137
+ Returns:
138
+ int: Timeout value in milliseconds.
139
+ """
140
+ if override is not None:
141
+ return override
142
+ return BrowserConfig.get_timeout_config()['default_timeout']
143
+
144
+ @staticmethod
145
+ def get_short_timeout(override: Optional[int] = None) -> int:
146
+ r"""Get short timeout with optional override.
147
+
148
+ Args:
149
+ override: Optional timeout override value in milliseconds.
150
+
151
+ Returns:
152
+ int: Timeout value in milliseconds.
153
+ """
154
+ if override is not None:
155
+ return override
156
+ return BrowserConfig.get_timeout_config()['short_timeout']
157
+
158
+ @staticmethod
159
+ def get_navigation_timeout(override: Optional[int] = None) -> int:
160
+ r"""Get navigation timeout with optional override.
161
+
162
+ Args:
163
+ override: Optional timeout override value in milliseconds.
164
+
165
+ Returns:
166
+ int: Timeout value in milliseconds.
167
+ """
168
+ if override is not None:
169
+ return override
170
+ return BrowserConfig.get_timeout_config()['navigation_timeout']
171
+
172
+ @staticmethod
173
+ def get_network_idle_timeout(override: Optional[int] = None) -> int:
174
+ r"""Get network idle timeout with optional override.
175
+
176
+ Args:
177
+ override: Optional timeout override value in milliseconds.
178
+
179
+ Returns:
180
+ int: Timeout value in milliseconds.
181
+ """
182
+ if override is not None:
183
+ return override
184
+ return BrowserConfig.get_timeout_config()['network_idle_timeout']
185
+
186
+ @staticmethod
187
+ def get_max_scroll_amount(override: Optional[int] = None) -> int:
188
+ r"""Get maximum scroll amount with optional override.
189
+
190
+ Args:
191
+ override: Optional scroll amount override value in pixels.
192
+
193
+ Returns:
194
+ int: Maximum scroll amount in pixels.
195
+ """
196
+ if override is not None:
197
+ return override
198
+ return BrowserConfig.get_action_limits()['max_scroll_amount']
199
+
200
+ @staticmethod
201
+ def get_max_log_limit(override: Optional[int] = None) -> int:
202
+ r"""Get maximum log limit with optional override.
203
+
204
+ Args:
205
+ override: Optional log limit override value.
206
+
207
+ Returns:
208
+ int: Maximum log limit.
209
+ """
210
+ if override is not None:
211
+ return override
212
+ return BrowserConfig.get_log_limits()['max_log_limit']
213
+
214
+ @staticmethod
215
+ def get_screenshot_timeout(override: Optional[int] = None) -> int:
216
+ r"""Get screenshot timeout with optional override.
217
+
218
+ Args:
219
+ override: Optional timeout override value in milliseconds.
220
+
221
+ Returns:
222
+ int: Timeout value in milliseconds.
223
+ """
224
+ if override is not None:
225
+ return override
226
+ return BrowserConfig.get_timeout_config()['screenshot_timeout']
227
+
228
+ @staticmethod
229
+ def get_page_stability_timeout(override: Optional[int] = None) -> int:
230
+ r"""Get page stability timeout with optional override.
231
+
232
+ Args:
233
+ override: Optional timeout override value in milliseconds.
234
+
235
+ Returns:
236
+ int: Timeout value in milliseconds.
237
+ """
238
+ if override is not None:
239
+ return override
240
+ return BrowserConfig.get_timeout_config()['page_stability_timeout']
241
+
242
+ @staticmethod
243
+ def get_dom_content_loaded_timeout(override: Optional[int] = None) -> int:
244
+ r"""Get DOM content loaded timeout with optional override.
245
+
246
+ Args:
247
+ override: Optional timeout override value in milliseconds.
248
+
249
+ Returns:
250
+ int: Timeout value in milliseconds.
251
+ """
252
+ if override is not None:
253
+ return override
254
+ return BrowserConfig.get_timeout_config()['dom_content_loaded_timeout']
255
+
256
+ @staticmethod
257
+ def get_launch_args() -> List[str]:
258
+ r"""Get Chrome launch arguments for stealth mode.
259
+
260
+ Returns:
261
+ List[str]: Chrome command line arguments to avoid detection.
262
+ """
263
+ return [
264
+ '--disable-blink-features=AutomationControlled',
265
+ '--disable-features=VizDisplayCompositor',
266
+ '--disable-ipc-flooding-protection',
267
+ '--disable-renderer-backgrounding',
268
+ '--disable-backgrounding-occluded-windows',
269
+ '--disable-dev-shm-usage',
270
+ '--disable-extensions',
271
+ '--disable-plugins',
272
+ '--disable-default-apps',
273
+ '--disable-sync',
274
+ '--no-default-browser-check',
275
+ '--no-first-run',
276
+ '--no-sandbox',
277
+ '--disable-setuid-sandbox',
278
+ '--disable-web-security',
279
+ '--disable-features=TranslateUI',
280
+ '--disable-features=BlinkGenPropertyTrees',
281
+ '--disable-component-extensions-with-background-pages',
282
+ ]
283
+
284
+ @staticmethod
285
+ def get_context_options() -> Dict[str, Any]:
286
+ r"""Get browser context options for stealth mode.
287
+
288
+ Returns:
289
+ Dict[str, Any]: Browser context configuration options.
290
+ """
291
+ return {
292
+ 'user_agent': (
293
+ 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
294
+ 'AppleWebKit/537.36 (KHTML, like Gecko) '
295
+ 'Chrome/131.0.0.0 Safari/537.36'
296
+ ),
297
+ 'viewport': {'width': 1920, 'height': 1080},
298
+ 'locale': 'en-US',
299
+ 'timezone_id': 'America/New_York',
300
+ 'geolocation': {'latitude': 40.7128, 'longitude': -74.0060},
301
+ 'permissions': ['geolocation'],
302
+ }
303
+
304
+ @staticmethod
305
+ def get_http_headers() -> Dict[str, str]:
306
+ r"""Get HTTP headers for stealth mode.
307
+
308
+ Returns:
309
+ Dict[str, str]: HTTP headers to appear more like a real browser.
310
+ """
311
+ return {
312
+ 'Accept': (
313
+ 'text/html,application/xhtml+xml,application/xml;q=0.9,'
314
+ 'image/avif,image/webp,image/apng,*/*;q=0.8,'
315
+ 'application/signed-exchange;v=b3;q=0.7'
316
+ ),
317
+ 'Accept-Language': 'en-US,en;q=0.9',
318
+ 'Accept-Encoding': 'gzip, deflate, br, zstd',
319
+ 'Cache-Control': 'max-age=0',
320
+ 'Sec-Ch-Ua': (
321
+ '"Google Chrome";v="131", "Chromium";v="131", '
322
+ '"Not=A?Brand";v="24"'
323
+ ),
324
+ 'Sec-Ch-Ua-Mobile': '?0',
325
+ 'Sec-Ch-Ua-Platform': '"Windows"',
326
+ 'Sec-Fetch-Dest': 'document',
327
+ 'Sec-Fetch-Mode': 'navigate',
328
+ 'Sec-Fetch-Site': 'none',
329
+ 'Sec-Fetch-User': '?1',
330
+ 'Upgrade-Insecure-Requests': '1',
331
+ }
332
+
333
+ @staticmethod
334
+ def get_stealth_config() -> Dict[str, Any]:
335
+ r"""Get stealth configuration.
336
+
337
+ Returns:
338
+ Dict[str, Any]: Complete stealth configuration.
339
+ """
340
+ return {
341
+ 'launch_args': BrowserConfig.get_launch_args(),
342
+ 'context_options': BrowserConfig.get_context_options(),
343
+ 'http_headers': BrowserConfig.get_http_headers(),
344
+ }
345
+
346
+ @staticmethod
347
+ def get_all_config() -> Dict[str, Any]:
348
+ r"""Get all browser configuration including stealth, timeouts,
349
+ and action limits.
350
+
351
+ Returns:
352
+ Dict[str, Any]: Complete browser configuration.
353
+ """
354
+ return {
355
+ 'timeouts': BrowserConfig.get_timeout_config(),
356
+ 'action_limits': BrowserConfig.get_action_limits(),
357
+ 'stealth': BrowserConfig.get_stealth_config(),
358
+ }
359
+
360
+
361
+ # Legacy ConfigLoader class for compatibility (now just wraps BrowserConfig)
362
+ class ConfigLoader:
363
+ r"""Legacy wrapper for BrowserConfig - maintained for backward
364
+ compatibility."""
365
+
366
+ @classmethod
367
+ def get_browser_config(cls):
368
+ r"""Get the BrowserConfig class."""
369
+ return BrowserConfig
370
+
371
+ @classmethod
372
+ def get_stealth_config(cls):
373
+ r"""Get the StealthConfig class (alias)."""
374
+ return BrowserConfig # StealthConfig is an alias for BrowserConfig
375
+
376
+ @classmethod
377
+ def get_timeout_config(cls) -> Dict[str, int]:
378
+ r"""Get timeout configuration."""
379
+ return BrowserConfig.get_timeout_config()
380
+
381
+ @classmethod
382
+ def get_action_timeout(cls, override: Optional[int] = None) -> int:
383
+ r"""Get action timeout with optional override."""
384
+ return BrowserConfig.get_action_timeout(override)
385
+
386
+ @classmethod
387
+ def get_short_timeout(cls, override: Optional[int] = None) -> int:
388
+ r"""Get short timeout with optional override."""
389
+ return BrowserConfig.get_short_timeout(override)
390
+
391
+ @classmethod
392
+ def get_navigation_timeout(cls, override: Optional[int] = None) -> int:
393
+ r"""Get navigation timeout with optional override."""
394
+ return BrowserConfig.get_navigation_timeout(override)
395
+
396
+ @classmethod
397
+ def get_network_idle_timeout(cls, override: Optional[int] = None) -> int:
398
+ r"""Get network idle timeout with optional override."""
399
+ return BrowserConfig.get_network_idle_timeout(override)
400
+
401
+ @classmethod
402
+ def get_max_scroll_amount(cls, override: Optional[int] = None) -> int:
403
+ r"""Get maximum scroll amount with optional override."""
404
+ return BrowserConfig.get_max_scroll_amount(override)
405
+
406
+ @classmethod
407
+ def get_max_log_limit(cls, override: Optional[int] = None) -> int:
408
+ r"""Get maximum log limit with optional override."""
409
+ return BrowserConfig.get_max_log_limit(override)
410
+
411
+ @classmethod
412
+ def get_screenshot_timeout(cls, override: Optional[int] = None) -> int:
413
+ r"""Get screenshot timeout with optional override."""
414
+ return BrowserConfig.get_screenshot_timeout(override)
415
+
416
+ @classmethod
417
+ def get_page_stability_timeout(cls, override: Optional[int] = None) -> int:
418
+ r"""Get page stability timeout with optional override."""
419
+ return BrowserConfig.get_page_stability_timeout(override)
420
+
421
+ @classmethod
422
+ def get_dom_content_loaded_timeout(
423
+ cls, override: Optional[int] = None
424
+ ) -> int:
425
+ r"""Get DOM content loaded timeout with optional override."""
426
+ return BrowserConfig.get_dom_content_loaded_timeout(override)
427
+
428
+
429
+ # Backward compatibility aliases and convenience functions
430
+ StealthConfig = BrowserConfig
431
+
432
+
433
+ def get_browser_config():
434
+ r"""Get BrowserConfig class."""
435
+ return BrowserConfig
436
+
437
+
438
+ def get_stealth_config():
439
+ r"""Get StealthConfig class."""
440
+ return BrowserConfig
441
+
442
+
443
+ def get_timeout_config() -> Dict[str, int]:
444
+ r"""Get timeout configuration."""
445
+ return BrowserConfig.get_timeout_config()
446
+
447
+
448
+ def get_action_timeout(override: Optional[int] = None) -> int:
449
+ r"""Get action timeout with optional override."""
450
+ return BrowserConfig.get_action_timeout(override)
451
+
452
+
453
+ def get_short_timeout(override: Optional[int] = None) -> int:
454
+ r"""Get short timeout with optional override."""
455
+ return BrowserConfig.get_short_timeout(override)
456
+
457
+
458
+ def get_navigation_timeout(override: Optional[int] = None) -> int:
459
+ r"""Get navigation timeout with optional override."""
460
+ return BrowserConfig.get_navigation_timeout(override)
461
+
462
+
463
+ def get_network_idle_timeout(override: Optional[int] = None) -> int:
464
+ r"""Get network idle timeout with optional override."""
465
+ return BrowserConfig.get_network_idle_timeout(override)
466
+
467
+
468
+ def get_max_scroll_amount(override: Optional[int] = None) -> int:
469
+ r"""Get maximum scroll amount with optional override."""
470
+ return BrowserConfig.get_max_scroll_amount(override)
471
+
472
+
473
+ def get_max_log_limit(override: Optional[int] = None) -> int:
474
+ r"""Get maximum log limit with optional override."""
475
+ return BrowserConfig.get_max_log_limit(override)
476
+
477
+
478
+ def get_screenshot_timeout(override: Optional[int] = None) -> int:
479
+ r"""Get screenshot timeout with optional override."""
480
+ return BrowserConfig.get_screenshot_timeout(override)
481
+
482
+
483
+ def get_page_stability_timeout(override: Optional[int] = None) -> int:
484
+ r"""Get page stability timeout with optional override."""
485
+ return BrowserConfig.get_page_stability_timeout(override)
486
+
487
+
488
+ def get_dom_content_loaded_timeout(override: Optional[int] = None) -> int:
489
+ r"""Get DOM content loaded timeout with optional override."""
490
+ return BrowserConfig.get_dom_content_loaded_timeout(override)