camel-ai 0.2.73a1__tar.gz → 0.2.73a2__tar.gz

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 (475) hide show
  1. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/PKG-INFO +1 -1
  2. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/__init__.py +1 -1
  3. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/chat_agent.py +26 -1
  4. camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py +177 -0
  5. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js +46 -2
  6. camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/__init__.py +17 -0
  7. camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/actions.py +417 -0
  8. camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/agent.py +311 -0
  9. camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/browser_session.py +740 -0
  10. camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/config_loader.py +447 -0
  11. camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py +1994 -0
  12. camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/snapshot.py +227 -0
  13. camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/stealth_script.js +0 -0
  14. camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/unified_analyzer.js +1002 -0
  15. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/slack_toolkit.py +38 -48
  16. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/pyproject.toml +1 -1
  17. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/.gitignore +0 -0
  18. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/LICENSE +0 -0
  19. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/README.md +0 -0
  20. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/__init__.py +0 -0
  21. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/_types.py +0 -0
  22. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/_utils.py +0 -0
  23. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/base.py +0 -0
  24. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/critic_agent.py +0 -0
  25. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/deductive_reasoner_agent.py +0 -0
  26. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/embodied_agent.py +0 -0
  27. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/knowledge_graph_agent.py +0 -0
  28. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/mcp_agent.py +0 -0
  29. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/multi_hop_generator_agent.py +0 -0
  30. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/programmed_agent_instruction.py +0 -0
  31. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/repo_agent.py +0 -0
  32. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/role_assignment_agent.py +0 -0
  33. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/search_agent.py +0 -0
  34. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/task_agent.py +0 -0
  35. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/tool_agents/__init__.py +0 -0
  36. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/tool_agents/base.py +0 -0
  37. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/tool_agents/hugging_face_tool_agent.py +0 -0
  38. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/__init__.py +0 -0
  39. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/apibank.py +0 -0
  40. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/apibench.py +0 -0
  41. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/base.py +0 -0
  42. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/browsecomp.py +0 -0
  43. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/gaia.py +0 -0
  44. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/mock_website/README.md +0 -0
  45. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/mock_website/mock_web.py +0 -0
  46. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/mock_website/requirements.txt +0 -0
  47. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/mock_website/shopping_mall/app.py +0 -0
  48. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/mock_website/task.json +0 -0
  49. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/nexus.py +0 -0
  50. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/ragbench.py +0 -0
  51. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/__init__.py +0 -0
  52. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/discord/__init__.py +0 -0
  53. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/discord/discord_app.py +0 -0
  54. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/discord/discord_installation.py +0 -0
  55. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/discord/discord_store.py +0 -0
  56. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/slack/__init__.py +0 -0
  57. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/slack/models.py +0 -0
  58. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/slack/slack_app.py +0 -0
  59. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/telegram_bot.py +0 -0
  60. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/__init__.py +0 -0
  61. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/aiml_config.py +0 -0
  62. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/anthropic_config.py +0 -0
  63. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/base_config.py +0 -0
  64. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/bedrock_config.py +0 -0
  65. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/cohere_config.py +0 -0
  66. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/crynux_config.py +0 -0
  67. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/deepseek_config.py +0 -0
  68. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/gemini_config.py +0 -0
  69. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/groq_config.py +0 -0
  70. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/internlm_config.py +0 -0
  71. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/litellm_config.py +0 -0
  72. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/lmstudio_config.py +0 -0
  73. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/mistral_config.py +0 -0
  74. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/modelscope_config.py +0 -0
  75. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/moonshot_config.py +0 -0
  76. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/netmind_config.py +0 -0
  77. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/novita_config.py +0 -0
  78. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/nvidia_config.py +0 -0
  79. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/ollama_config.py +0 -0
  80. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/openai_config.py +0 -0
  81. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/openrouter_config.py +0 -0
  82. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/ppio_config.py +0 -0
  83. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/qianfan_config.py +0 -0
  84. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/qwen_config.py +0 -0
  85. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/reka_config.py +0 -0
  86. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/samba_config.py +0 -0
  87. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/sglang_config.py +0 -0
  88. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/siliconflow_config.py +0 -0
  89. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/togetherai_config.py +0 -0
  90. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/vllm_config.py +0 -0
  91. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/watsonx_config.py +0 -0
  92. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/yi_config.py +0 -0
  93. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/zhipuai_config.py +0 -0
  94. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/data_collectors/__init__.py +0 -0
  95. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/data_collectors/alpaca_collector.py +0 -0
  96. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/data_collectors/base.py +0 -0
  97. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/data_collectors/sharegpt_collector.py +0 -0
  98. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/__init__.py +0 -0
  99. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/cot_datagen.py +0 -0
  100. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/evol_instruct/__init__.py +0 -0
  101. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/evol_instruct/evol_instruct.py +0 -0
  102. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/evol_instruct/scorer.py +0 -0
  103. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/evol_instruct/templates.py +0 -0
  104. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_improving_cot.py +0 -0
  105. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_instruct/__init__.py +0 -0
  106. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_instruct/filter/__init__.py +0 -0
  107. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_instruct/filter/filter_function.py +0 -0
  108. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_instruct/filter/filter_registry.py +0 -0
  109. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_instruct/filter/instruction_filter.py +0 -0
  110. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_instruct/self_instruct.py +0 -0
  111. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_instruct/templates.py +0 -0
  112. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/source2synth/__init__.py +0 -0
  113. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/source2synth/data_processor.py +0 -0
  114. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/source2synth/models.py +0 -0
  115. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/source2synth/user_data_processor_config.py +0 -0
  116. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datahubs/__init__.py +0 -0
  117. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datahubs/base.py +0 -0
  118. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datahubs/huggingface.py +0 -0
  119. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datahubs/models.py +0 -0
  120. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datasets/__init__.py +0 -0
  121. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datasets/base_generator.py +0 -0
  122. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datasets/few_shot_generator.py +0 -0
  123. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datasets/models.py +0 -0
  124. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datasets/self_instruct_generator.py +0 -0
  125. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datasets/static_dataset.py +0 -0
  126. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/__init__.py +0 -0
  127. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/azure_embedding.py +0 -0
  128. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/base.py +0 -0
  129. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/gemini_embedding.py +0 -0
  130. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/jina_embedding.py +0 -0
  131. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/mistral_embedding.py +0 -0
  132. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/openai_compatible_embedding.py +0 -0
  133. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/openai_embedding.py +0 -0
  134. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/sentence_transformers_embeddings.py +0 -0
  135. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/together_embedding.py +0 -0
  136. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/vlm_embedding.py +0 -0
  137. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/environments/__init__.py +0 -0
  138. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/environments/models.py +0 -0
  139. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/environments/multi_step.py +0 -0
  140. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/environments/rlcards_env.py +0 -0
  141. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/environments/single_step.py +0 -0
  142. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/environments/tic_tac_toe.py +0 -0
  143. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/extractors/__init__.py +0 -0
  144. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/extractors/base.py +0 -0
  145. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/extractors/python_strategies.py +0 -0
  146. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/generators.py +0 -0
  147. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/human.py +0 -0
  148. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/__init__.py +0 -0
  149. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/base.py +0 -0
  150. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/docker/Dockerfile +0 -0
  151. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/docker_interpreter.py +0 -0
  152. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/e2b_interpreter.py +0 -0
  153. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/internal_python_interpreter.py +0 -0
  154. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/interpreter_error.py +0 -0
  155. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/ipython_interpreter.py +0 -0
  156. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/subprocess_interpreter.py +0 -0
  157. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/__init__.py +0 -0
  158. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/apify_reader.py +0 -0
  159. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/base_io.py +0 -0
  160. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/base_loader.py +0 -0
  161. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/chunkr_reader.py +0 -0
  162. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/crawl4ai_reader.py +0 -0
  163. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/firecrawl_reader.py +0 -0
  164. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/jina_url_reader.py +0 -0
  165. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/markitdown.py +0 -0
  166. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/mineru_extractor.py +0 -0
  167. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/mistral_reader.py +0 -0
  168. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/pandas_reader.py +0 -0
  169. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/scrapegraph_reader.py +0 -0
  170. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/unstructured_io.py +0 -0
  171. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/logger.py +0 -0
  172. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/__init__.py +0 -0
  173. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/agent_memories.py +0 -0
  174. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/base.py +0 -0
  175. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/blocks/__init__.py +0 -0
  176. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/blocks/chat_history_block.py +0 -0
  177. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/blocks/vectordb_block.py +0 -0
  178. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/context_creators/__init__.py +0 -0
  179. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/context_creators/score_based.py +0 -0
  180. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/records.py +0 -0
  181. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/__init__.py +0 -0
  182. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/base.py +0 -0
  183. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/conversion/__init__.py +0 -0
  184. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/conversion/alpaca.py +0 -0
  185. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/conversion/conversation_models.py +0 -0
  186. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/conversion/sharegpt/__init__.py +0 -0
  187. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/conversion/sharegpt/function_call_formatter.py +0 -0
  188. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/conversion/sharegpt/hermes/__init__.py +0 -0
  189. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +0 -0
  190. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/func_message.py +0 -0
  191. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/__init__.py +0 -0
  192. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/_utils.py +0 -0
  193. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/aiml_model.py +0 -0
  194. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/anthropic_model.py +0 -0
  195. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/aws_bedrock_model.py +0 -0
  196. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/azure_openai_model.py +0 -0
  197. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/base_audio_model.py +0 -0
  198. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/base_model.py +0 -0
  199. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/cohere_model.py +0 -0
  200. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/crynux_model.py +0 -0
  201. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/deepseek_model.py +0 -0
  202. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/fish_audio_model.py +0 -0
  203. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/gemini_model.py +0 -0
  204. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/groq_model.py +0 -0
  205. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/internlm_model.py +0 -0
  206. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/litellm_model.py +0 -0
  207. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/lmstudio_model.py +0 -0
  208. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/mistral_model.py +0 -0
  209. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/model_factory.py +0 -0
  210. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/model_manager.py +0 -0
  211. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/modelscope_model.py +0 -0
  212. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/moonshot_model.py +0 -0
  213. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/nemotron_model.py +0 -0
  214. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/netmind_model.py +0 -0
  215. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/novita_model.py +0 -0
  216. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/nvidia_model.py +0 -0
  217. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/ollama_model.py +0 -0
  218. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/openai_audio_models.py +0 -0
  219. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/openai_compatible_model.py +0 -0
  220. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/openai_model.py +0 -0
  221. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/openrouter_model.py +0 -0
  222. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/ppio_model.py +0 -0
  223. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/qianfan_model.py +0 -0
  224. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/qwen_model.py +0 -0
  225. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/reka_model.py +0 -0
  226. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/reward/__init__.py +0 -0
  227. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/reward/base_reward_model.py +0 -0
  228. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/reward/evaluator.py +0 -0
  229. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/reward/nemotron_model.py +0 -0
  230. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/reward/skywork_model.py +0 -0
  231. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/samba_model.py +0 -0
  232. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/sglang_model.py +0 -0
  233. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/siliconflow_model.py +0 -0
  234. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/stub_model.py +0 -0
  235. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/togetherai_model.py +0 -0
  236. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/vllm_model.py +0 -0
  237. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/volcano_model.py +0 -0
  238. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/watsonx_model.py +0 -0
  239. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/yi_model.py +0 -0
  240. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/zhipuai_model.py +0 -0
  241. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/personas/__init__.py +0 -0
  242. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/personas/persona.py +0 -0
  243. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/personas/persona_hub.py +0 -0
  244. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/__init__.py +0 -0
  245. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/ai_society.py +0 -0
  246. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/base.py +0 -0
  247. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/code.py +0 -0
  248. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/evaluation.py +0 -0
  249. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/generate_text_embedding_data.py +0 -0
  250. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/image_craft.py +0 -0
  251. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/misalignment.py +0 -0
  252. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/multi_condition_image_craft.py +0 -0
  253. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/object_recognition.py +0 -0
  254. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/persona_hub.py +0 -0
  255. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/prompt_templates.py +0 -0
  256. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/role_description_prompt_template.py +0 -0
  257. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/solution_extraction.py +0 -0
  258. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/task_prompt_template.py +0 -0
  259. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/translation.py +0 -0
  260. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/video_description_prompt.py +0 -0
  261. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/py.typed +0 -0
  262. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/responses/__init__.py +0 -0
  263. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/responses/agent_responses.py +0 -0
  264. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/retrievers/__init__.py +0 -0
  265. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/retrievers/auto_retriever.py +0 -0
  266. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/retrievers/base.py +0 -0
  267. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/retrievers/bm25_retriever.py +0 -0
  268. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/retrievers/cohere_rerank_retriever.py +0 -0
  269. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/retrievers/hybrid_retrival.py +0 -0
  270. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/retrievers/vector_retriever.py +0 -0
  271. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/__init__.py +0 -0
  272. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/api.py +0 -0
  273. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/base.py +0 -0
  274. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/configs.py +0 -0
  275. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/daytona_runtime.py +0 -0
  276. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/docker_runtime.py +0 -0
  277. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/llm_guard_runtime.py +0 -0
  278. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/remote_http_runtime.py +0 -0
  279. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/ubuntu_docker_runtime.py +0 -0
  280. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/utils/__init__.py +0 -0
  281. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/utils/function_risk_toolkit.py +0 -0
  282. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/utils/ignore_risk_toolkit.py +0 -0
  283. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/schemas/__init__.py +0 -0
  284. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/schemas/base.py +0 -0
  285. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/schemas/openai_converter.py +0 -0
  286. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/schemas/outlines_converter.py +0 -0
  287. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/services/agent_openapi_server.py +0 -0
  288. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/__init__.py +0 -0
  289. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/babyagi_playing.py +0 -0
  290. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/role_playing.py +0 -0
  291. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/__init__.py +0 -0
  292. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/base.py +0 -0
  293. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/prompts.py +0 -0
  294. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/role_playing_worker.py +0 -0
  295. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/single_agent_worker.py +0 -0
  296. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/structured_output_handler.py +0 -0
  297. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/task_channel.py +0 -0
  298. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/utils.py +0 -0
  299. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/worker.py +0 -0
  300. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/workforce.py +0 -0
  301. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/workforce_logger.py +0 -0
  302. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/__init__.py +0 -0
  303. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/graph_storages/__init__.py +0 -0
  304. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/graph_storages/base.py +0 -0
  305. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/graph_storages/graph_element.py +0 -0
  306. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/graph_storages/nebula_graph.py +0 -0
  307. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/graph_storages/neo4j_graph.py +0 -0
  308. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/key_value_storages/__init__.py +0 -0
  309. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/key_value_storages/base.py +0 -0
  310. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/key_value_storages/in_memory.py +0 -0
  311. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/key_value_storages/json.py +0 -0
  312. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/key_value_storages/mem0_cloud.py +0 -0
  313. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/key_value_storages/redis.py +0 -0
  314. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/object_storages/__init__.py +0 -0
  315. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/object_storages/amazon_s3.py +0 -0
  316. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/object_storages/azure_blob.py +0 -0
  317. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/object_storages/base.py +0 -0
  318. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/object_storages/google_cloud.py +0 -0
  319. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/__init__.py +0 -0
  320. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/base.py +0 -0
  321. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/chroma.py +0 -0
  322. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/faiss.py +0 -0
  323. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/milvus.py +0 -0
  324. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/oceanbase.py +0 -0
  325. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/pgvector.py +0 -0
  326. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/qdrant.py +0 -0
  327. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/surreal.py +0 -0
  328. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/tidb.py +0 -0
  329. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/weaviate.py +0 -0
  330. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/tasks/__init__.py +0 -0
  331. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/tasks/task.py +0 -0
  332. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/tasks/task_prompt.py +0 -0
  333. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/terminators/__init__.py +0 -0
  334. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/terminators/base.py +0 -0
  335. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/terminators/response_terminator.py +0 -0
  336. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/terminators/token_limit_terminator.py +0 -0
  337. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/__init__.py +0 -0
  338. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/aci_toolkit.py +0 -0
  339. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/arxiv_toolkit.py +0 -0
  340. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/ask_news_toolkit.py +0 -0
  341. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/async_browser_toolkit.py +0 -0
  342. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/audio_analysis_toolkit.py +0 -0
  343. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/base.py +0 -0
  344. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/bohrium_toolkit.py +0 -0
  345. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/browser_toolkit.py +0 -0
  346. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/browser_toolkit_commons.py +0 -0
  347. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/code_execution.py +0 -0
  348. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/craw4ai_toolkit.py +0 -0
  349. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/dappier_toolkit.py +0 -0
  350. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/data_commons_toolkit.py +0 -0
  351. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/edgeone_pages_mcp_toolkit.py +0 -0
  352. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/excel_toolkit.py +0 -0
  353. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/file_write_toolkit.py +0 -0
  354. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/function_tool.py +0 -0
  355. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/github_toolkit.py +0 -0
  356. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/google_calendar_toolkit.py +0 -0
  357. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/google_drive_mcp_toolkit.py +0 -0
  358. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/google_maps_toolkit.py +0 -0
  359. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/google_scholar_toolkit.py +0 -0
  360. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/human_toolkit.py +0 -0
  361. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/__init__.py +0 -0
  362. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/config_loader.py +0 -0
  363. /camel_ai-0.2.73a1/camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py → /camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py +0 -0
  364. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/package-lock.json +0 -0
  365. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/package.json +0 -0
  366. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/browser-scripts.js +0 -0
  367. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts +0 -0
  368. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts +0 -0
  369. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts +0 -0
  370. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/index.ts +0 -0
  371. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts +0 -0
  372. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/tsconfig.json +0 -0
  373. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py +0 -0
  374. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/image_analysis_toolkit.py +0 -0
  375. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/jina_reranker_toolkit.py +0 -0
  376. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/klavis_toolkit.py +0 -0
  377. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/linkedin_toolkit.py +0 -0
  378. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/markitdown_toolkit.py +0 -0
  379. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/math_toolkit.py +0 -0
  380. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/mcp_toolkit.py +0 -0
  381. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/memory_toolkit.py +0 -0
  382. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/meshy_toolkit.py +0 -0
  383. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/message_agent_toolkit.py +0 -0
  384. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/message_integration.py +0 -0
  385. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/mineru_toolkit.py +0 -0
  386. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/networkx_toolkit.py +0 -0
  387. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/note_taking_toolkit.py +0 -0
  388. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/notion_mcp_toolkit.py +0 -0
  389. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/notion_toolkit.py +0 -0
  390. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/biztoc/__init__.py +0 -0
  391. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/biztoc/ai-plugin.json +0 -0
  392. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/biztoc/openapi.yaml +0 -0
  393. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/coursera/__init__.py +0 -0
  394. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/coursera/openapi.yaml +0 -0
  395. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/create_qr_code/__init__.py +0 -0
  396. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/create_qr_code/openapi.yaml +0 -0
  397. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/klarna/__init__.py +0 -0
  398. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/klarna/openapi.yaml +0 -0
  399. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/nasa_apod/__init__.py +0 -0
  400. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/nasa_apod/openapi.yaml +0 -0
  401. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/outschool/__init__.py +0 -0
  402. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/outschool/ai-plugin.json +0 -0
  403. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/outschool/openapi.yaml +0 -0
  404. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/outschool/paths/__init__.py +0 -0
  405. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/outschool/paths/get_classes.py +0 -0
  406. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +0 -0
  407. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/security_config.py +0 -0
  408. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/speak/__init__.py +0 -0
  409. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/speak/openapi.yaml +0 -0
  410. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/web_scraper/__init__.py +0 -0
  411. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +0 -0
  412. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/web_scraper/openapi.yaml +0 -0
  413. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +0 -0
  414. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +0 -0
  415. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_toolkit.py +0 -0
  416. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/openai_agent_toolkit.py +0 -0
  417. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/openai_image_toolkit.py +0 -0
  418. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/openbb_toolkit.py +0 -0
  419. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/origene_mcp_toolkit.py +0 -0
  420. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/page_script.js +0 -0
  421. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/playwright_mcp_toolkit.py +0 -0
  422. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/pptx_toolkit.py +0 -0
  423. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/pubmed_toolkit.py +0 -0
  424. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/pulse_mcp_search_toolkit.py +0 -0
  425. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/pyautogui_toolkit.py +0 -0
  426. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/reddit_toolkit.py +0 -0
  427. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/retrieval_toolkit.py +0 -0
  428. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/screenshot_toolkit.py +0 -0
  429. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/search_toolkit.py +0 -0
  430. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/searxng_toolkit.py +0 -0
  431. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/semantic_scholar_toolkit.py +0 -0
  432. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/stripe_toolkit.py +0 -0
  433. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/sympy_toolkit.py +0 -0
  434. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/task_planning_toolkit.py +0 -0
  435. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/terminal_toolkit.py +0 -0
  436. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/thinking_toolkit.py +0 -0
  437. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/twitter_toolkit.py +0 -0
  438. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/video_analysis_toolkit.py +0 -0
  439. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/video_download_toolkit.py +0 -0
  440. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/weather_toolkit.py +0 -0
  441. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/web_deploy_toolkit.py +0 -0
  442. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/whatsapp_toolkit.py +0 -0
  443. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/wolfram_alpha_toolkit.py +0 -0
  444. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/zapier_toolkit.py +0 -0
  445. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/types/__init__.py +0 -0
  446. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/types/agents/__init__.py +0 -0
  447. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/types/agents/tool_calling_record.py +0 -0
  448. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/types/enums.py +0 -0
  449. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/types/mcp_registries.py +0 -0
  450. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/types/openai_types.py +0 -0
  451. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/types/unified_model_type.py +0 -0
  452. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/__init__.py +0 -0
  453. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/async_func.py +0 -0
  454. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/chunker/__init__.py +0 -0
  455. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/chunker/base.py +0 -0
  456. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/chunker/code_chunker.py +0 -0
  457. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/chunker/uio_chunker.py +0 -0
  458. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/commons.py +0 -0
  459. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/constants.py +0 -0
  460. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/deduplication.py +0 -0
  461. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/filename.py +0 -0
  462. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/langfuse.py +0 -0
  463. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/mcp.py +0 -0
  464. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/mcp_client.py +0 -0
  465. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/message_summarizer.py +0 -0
  466. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/response_format.py +0 -0
  467. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/token_counting.py +0 -0
  468. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/tool_result.py +0 -0
  469. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/verifiers/__init__.py +0 -0
  470. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/verifiers/base.py +0 -0
  471. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/verifiers/math_verifier.py +0 -0
  472. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/verifiers/models.py +0 -0
  473. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/verifiers/physics_verifier.py +0 -0
  474. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/verifiers/python_verifier.py +0 -0
  475. {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/hatch_build_npm.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: camel-ai
3
- Version: 0.2.73a1
3
+ Version: 0.2.73a2
4
4
  Summary: Communicative Agents for AI Society Study
5
5
  Project-URL: Homepage, https://www.camel-ai.org/
6
6
  Project-URL: Repository, https://github.com/camel-ai/camel
@@ -14,7 +14,7 @@
14
14
 
15
15
  from camel.logger import disable_logging, enable_logging, set_log_level
16
16
 
17
- __version__ = '0.2.73a1'
17
+ __version__ = '0.2.73a2'
18
18
 
19
19
  __all__ = [
20
20
  '__version__',
@@ -2929,7 +2929,32 @@ class ChatAgent(BaseAgent):
2929
2929
  if function_name in self._internal_tools:
2930
2930
  tool = self._internal_tools[function_name]
2931
2931
  try:
2932
- result = await tool.async_call(**args)
2932
+ # Try different invocation paths in order of preference
2933
+ if hasattr(tool, 'func') and hasattr(
2934
+ tool.func, 'async_call'
2935
+ ):
2936
+ # Case: FunctionTool wrapping an MCP tool
2937
+ result = await tool.func.async_call(**args)
2938
+
2939
+ elif hasattr(tool, 'async_call') and callable(
2940
+ tool.async_call
2941
+ ):
2942
+ # Case: tool itself has async_call
2943
+ result = await tool.async_call(**args)
2944
+
2945
+ elif hasattr(tool, 'func') and asyncio.iscoroutinefunction(
2946
+ tool.func
2947
+ ):
2948
+ # Case: tool wraps a direct async function
2949
+ result = await tool.func(**args)
2950
+
2951
+ elif asyncio.iscoroutinefunction(tool):
2952
+ # Case: tool is itself a coroutine function
2953
+ result = await tool(**args)
2954
+
2955
+ else:
2956
+ # Fallback: synchronous call
2957
+ result = tool(**args)
2933
2958
 
2934
2959
  # Only record the tool response message, not the assistant
2935
2960
  # message assistant message with tool_calls was already
@@ -0,0 +1,177 @@
1
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
14
+
15
+ from typing import Any, List, Literal, Optional
16
+
17
+ from camel.models import BaseModelBackend
18
+ from camel.toolkits.base import BaseToolkit
19
+
20
+
21
+ class HybridBrowserToolkit(BaseToolkit):
22
+ r"""A hybrid browser toolkit that can switch between TypeScript and Python
23
+ implementations.
24
+
25
+ This wrapper allows users to choose between:
26
+ - 'typescript': WebSocket-based implementation using TypeScript/Node.js
27
+ - 'python': Pure Python implementation using Playwright directly
28
+ """
29
+
30
+ def __new__(
31
+ cls,
32
+ *,
33
+ mode: Literal["typescript", "python"] = "typescript",
34
+ headless: bool = True,
35
+ user_data_dir: Optional[str] = None,
36
+ stealth: bool = False,
37
+ web_agent_model: Optional[BaseModelBackend] = None,
38
+ cache_dir: str = "tmp/",
39
+ enabled_tools: Optional[List[str]] = None,
40
+ browser_log_to_file: bool = False,
41
+ session_id: Optional[str] = None,
42
+ default_start_url: str = "https://google.com/",
43
+ default_timeout: Optional[int] = None,
44
+ short_timeout: Optional[int] = None,
45
+ navigation_timeout: Optional[int] = None,
46
+ network_idle_timeout: Optional[int] = None,
47
+ screenshot_timeout: Optional[int] = None,
48
+ page_stability_timeout: Optional[int] = None,
49
+ dom_content_loaded_timeout: Optional[int] = None,
50
+ viewport_limit: bool = False,
51
+ connect_over_cdp: bool = False,
52
+ cdp_url: Optional[str] = None,
53
+ **kwargs: Any,
54
+ ) -> Any:
55
+ r"""Create a HybridBrowserToolkit instance with the specified mode.
56
+
57
+ Args:
58
+ mode (Literal["typescript", "python"]): Implementation mode.
59
+ - 'typescript': Uses WebSocket-based TypeScript implementation
60
+ - 'python': Uses pure Python Playwright implementation
61
+ Defaults to "typescript".
62
+ headless (bool): Whether to run browser in headless mode.
63
+ Defaults to True.
64
+ user_data_dir (Optional[str]): Directory for user data
65
+ persistence. Defaults to None.
66
+ stealth (bool): Whether to enable stealth mode. Defaults to
67
+ False.
68
+ web_agent_model (Optional[BaseModelBackend]): Model for web
69
+ agent operations. Defaults to None.
70
+ cache_dir (str): Directory for caching. Defaults to "tmp/".
71
+ enabled_tools (Optional[List[str]]): List of enabled tools.
72
+ Defaults to None.
73
+ browser_log_to_file (bool): Whether to log browser actions to
74
+ file. Defaults to False.
75
+ session_id (Optional[str]): Session identifier. Defaults to None.
76
+ default_start_url (str): Default URL to start with. Defaults
77
+ to "https://google.com/".
78
+ default_timeout (Optional[int]): Default timeout in
79
+ milliseconds. Defaults to None.
80
+ short_timeout (Optional[int]): Short timeout in milliseconds.
81
+ Defaults to None.
82
+ navigation_timeout (Optional[int]): Navigation timeout in
83
+ milliseconds. Defaults to None.
84
+ network_idle_timeout (Optional[int]): Network idle timeout in
85
+ milliseconds. Defaults to None.
86
+ screenshot_timeout (Optional[int]): Screenshot timeout in
87
+ milliseconds. Defaults to None.
88
+ page_stability_timeout (Optional[int]): Page stability timeout
89
+ in milliseconds. Defaults to None.
90
+ dom_content_loaded_timeout (Optional[int]): DOM content loaded
91
+ timeout in milliseconds. Defaults to None.
92
+ viewport_limit (bool): Whether to filter page snapshot
93
+ elements to only those visible in the current viewport.
94
+ Defaults to False.
95
+ connect_over_cdp (bool): Whether to connect to an existing
96
+ browser via Chrome DevTools Protocol. Defaults to False.
97
+ (Only supported in TypeScript mode)
98
+ cdp_url (Optional[str]): WebSocket endpoint URL for CDP
99
+ connection. Required when connect_over_cdp is True.
100
+ Defaults to None. (Only supported in TypeScript mode)
101
+ **kwargs: Additional keyword arguments passed to the
102
+ implementation.
103
+
104
+ Returns:
105
+ HybridBrowserToolkit instance of the specified implementation.
106
+ """
107
+ if mode == "typescript":
108
+ from .hybrid_browser_toolkit_ts import (
109
+ HybridBrowserToolkit as TSToolkit,
110
+ )
111
+
112
+ return TSToolkit(
113
+ headless=headless,
114
+ user_data_dir=user_data_dir,
115
+ stealth=stealth,
116
+ web_agent_model=web_agent_model,
117
+ cache_dir=cache_dir,
118
+ enabled_tools=enabled_tools,
119
+ browser_log_to_file=browser_log_to_file,
120
+ session_id=session_id,
121
+ default_start_url=default_start_url,
122
+ default_timeout=default_timeout,
123
+ short_timeout=short_timeout,
124
+ navigation_timeout=navigation_timeout,
125
+ network_idle_timeout=network_idle_timeout,
126
+ screenshot_timeout=screenshot_timeout,
127
+ page_stability_timeout=page_stability_timeout,
128
+ dom_content_loaded_timeout=dom_content_loaded_timeout,
129
+ viewport_limit=viewport_limit,
130
+ connect_over_cdp=connect_over_cdp,
131
+ cdp_url=cdp_url,
132
+ **kwargs,
133
+ )
134
+ elif mode == "python":
135
+ from ..hybrid_browser_toolkit_py import (
136
+ HybridBrowserToolkit as PyToolkit,
137
+ )
138
+
139
+ # Note: Python implementation doesn't support CDP connection
140
+ if connect_over_cdp:
141
+ raise ValueError(
142
+ "CDP connection is only supported in TypeScript mode"
143
+ )
144
+
145
+ # Note: Python implementation doesn't support viewport_limit
146
+ if viewport_limit:
147
+ import warnings
148
+
149
+ warnings.warn(
150
+ "viewport_limit is not supported "
151
+ "in Python mode and will be ignored",
152
+ UserWarning,
153
+ )
154
+
155
+ return PyToolkit(
156
+ headless=headless,
157
+ user_data_dir=user_data_dir,
158
+ stealth=stealth,
159
+ web_agent_model=web_agent_model,
160
+ cache_dir=cache_dir,
161
+ enabled_tools=enabled_tools,
162
+ browser_log_to_file=browser_log_to_file,
163
+ session_id=session_id,
164
+ default_start_url=default_start_url,
165
+ default_timeout=default_timeout,
166
+ short_timeout=short_timeout,
167
+ navigation_timeout=navigation_timeout,
168
+ network_idle_timeout=network_idle_timeout,
169
+ screenshot_timeout=screenshot_timeout,
170
+ page_stability_timeout=page_stability_timeout,
171
+ dom_content_loaded_timeout=dom_content_loaded_timeout,
172
+ **kwargs,
173
+ )
174
+ else:
175
+ raise ValueError(
176
+ f"Invalid mode: {mode}. Must be 'typescript' or 'python'."
177
+ )
@@ -78,8 +78,52 @@ class WebSocketBrowserServer {
78
78
  switch (command) {
79
79
  case 'init':
80
80
  console.log('Initializing toolkit with params:', JSON.stringify(params, null, 2));
81
- this.toolkit = new HybridBrowserToolkit(params);
82
- return { message: 'Toolkit initialized' };
81
+
82
+ // Check if CDP is available first
83
+ let useCdp = false;
84
+ let cdpUrl = params.cdpUrl || 'http://localhost:9222';
85
+
86
+ // Extract base URL and port for validation
87
+ const baseUrl = cdpUrl.includes('/devtools/') ? cdpUrl.split('/devtools/')[0] : cdpUrl;
88
+
89
+ try {
90
+ // Test if Chrome debug port is accessible and get page URL
91
+ const response = await fetch(`${baseUrl}/json`);
92
+ if (response.ok) {
93
+ const pages = await response.json();
94
+ if (pages && pages.length > 0) {
95
+ // If user provided a specific page URL, use it; otherwise use first available
96
+ if (cdpUrl.includes('/devtools/page/') || cdpUrl.includes('/devtools/browser/')) {
97
+ useCdp = true;
98
+ console.log(`Using provided CDP URL: ${cdpUrl}`);
99
+ } else {
100
+ // Use the first available page
101
+ const firstPage = pages[0];
102
+ const pageUrl = firstPage.devtoolsFrontendUrl;
103
+ const pageId = pageUrl.match(/ws=localhost:\d+(.*)$/)?.[1];
104
+
105
+ if (pageId) {
106
+ useCdp = true;
107
+ cdpUrl = `${baseUrl}${pageId}`;
108
+ console.log(`Chrome debug port detected, using CDP connection to: ${pageId}`);
109
+ }
110
+ }
111
+ }
112
+ }
113
+ } catch (error) {
114
+ console.log('Chrome debug port not accessible, will start new browser instance');
115
+ }
116
+
117
+ const config = {
118
+ connectOverCdp: useCdp,
119
+ cdpUrl: useCdp ? cdpUrl : undefined,
120
+ headless: false,
121
+ ...params
122
+ };
123
+
124
+ console.log('Final config:', JSON.stringify(config, null, 2));
125
+ this.toolkit = new HybridBrowserToolkit(config);
126
+ return { message: 'Toolkit initialized with CDP connection' };
83
127
 
84
128
  case 'open_browser':
85
129
  if (!this.toolkit) throw new Error('Toolkit not initialized');
@@ -0,0 +1,17 @@
1
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
14
+
15
+ from .hybrid_browser_toolkit import HybridBrowserToolkit
16
+
17
+ __all__ = ["HybridBrowserToolkit"]