camel-ai 0.2.69a4__tar.gz → 0.2.69a6__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.
Files changed (441) hide show
  1. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/PKG-INFO +2 -6
  2. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/__init__.py +1 -1
  3. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/internal_python_interpreter.py +51 -2
  4. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/base_model.py +91 -2
  5. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/__init__.py +6 -0
  6. camel_ai-0.2.69a6/camel/toolkits/craw4ai_toolkit.py +73 -0
  7. camel_ai-0.2.69a6/camel/toolkits/edgeone_pages_mcp_toolkit.py +69 -0
  8. camel_ai-0.2.69a6/camel/toolkits/markitdown_toolkit.py +78 -0
  9. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/non_visual_browser_toolkit/browser_non_visual_toolkit.py +91 -57
  10. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/pyproject.toml +5 -10
  11. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/.gitignore +0 -0
  12. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/LICENSE +0 -0
  13. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/README.md +0 -0
  14. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/__init__.py +0 -0
  15. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/_types.py +0 -0
  16. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/_utils.py +0 -0
  17. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/base.py +0 -0
  18. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/chat_agent.py +0 -0
  19. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/critic_agent.py +0 -0
  20. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/deductive_reasoner_agent.py +0 -0
  21. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/embodied_agent.py +0 -0
  22. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/knowledge_graph_agent.py +0 -0
  23. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/mcp_agent.py +0 -0
  24. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/multi_hop_generator_agent.py +0 -0
  25. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/programmed_agent_instruction.py +0 -0
  26. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/repo_agent.py +0 -0
  27. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/role_assignment_agent.py +0 -0
  28. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/search_agent.py +0 -0
  29. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/task_agent.py +0 -0
  30. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/tool_agents/__init__.py +0 -0
  31. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/tool_agents/base.py +0 -0
  32. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/tool_agents/hugging_face_tool_agent.py +0 -0
  33. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/__init__.py +0 -0
  34. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/apibank.py +0 -0
  35. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/apibench.py +0 -0
  36. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/base.py +0 -0
  37. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/browsecomp.py +0 -0
  38. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/gaia.py +0 -0
  39. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/mock_website/README.md +0 -0
  40. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/mock_website/mock_web.py +0 -0
  41. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/mock_website/requirements.txt +0 -0
  42. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/mock_website/shopping_mall/app.py +0 -0
  43. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/mock_website/task.json +0 -0
  44. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/nexus.py +0 -0
  45. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/ragbench.py +0 -0
  46. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/__init__.py +0 -0
  47. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/discord/__init__.py +0 -0
  48. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/discord/discord_app.py +0 -0
  49. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/discord/discord_installation.py +0 -0
  50. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/discord/discord_store.py +0 -0
  51. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/slack/__init__.py +0 -0
  52. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/slack/models.py +0 -0
  53. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/slack/slack_app.py +0 -0
  54. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/telegram_bot.py +0 -0
  55. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/__init__.py +0 -0
  56. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/aiml_config.py +0 -0
  57. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/anthropic_config.py +0 -0
  58. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/base_config.py +0 -0
  59. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/bedrock_config.py +0 -0
  60. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/cohere_config.py +0 -0
  61. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/crynux_config.py +0 -0
  62. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/deepseek_config.py +0 -0
  63. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/gemini_config.py +0 -0
  64. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/groq_config.py +0 -0
  65. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/internlm_config.py +0 -0
  66. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/litellm_config.py +0 -0
  67. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/lmstudio_config.py +0 -0
  68. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/mistral_config.py +0 -0
  69. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/modelscope_config.py +0 -0
  70. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/moonshot_config.py +0 -0
  71. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/netmind_config.py +0 -0
  72. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/novita_config.py +0 -0
  73. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/nvidia_config.py +0 -0
  74. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/ollama_config.py +0 -0
  75. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/openai_config.py +0 -0
  76. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/openrouter_config.py +0 -0
  77. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/ppio_config.py +0 -0
  78. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/qianfan_config.py +0 -0
  79. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/qwen_config.py +0 -0
  80. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/reka_config.py +0 -0
  81. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/samba_config.py +0 -0
  82. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/sglang_config.py +0 -0
  83. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/siliconflow_config.py +0 -0
  84. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/togetherai_config.py +0 -0
  85. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/vllm_config.py +0 -0
  86. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/watsonx_config.py +0 -0
  87. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/yi_config.py +0 -0
  88. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/zhipuai_config.py +0 -0
  89. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/data_collectors/__init__.py +0 -0
  90. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/data_collectors/alpaca_collector.py +0 -0
  91. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/data_collectors/base.py +0 -0
  92. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/data_collectors/sharegpt_collector.py +0 -0
  93. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/__init__.py +0 -0
  94. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/cot_datagen.py +0 -0
  95. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/evol_instruct/__init__.py +0 -0
  96. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/evol_instruct/evol_instruct.py +0 -0
  97. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/evol_instruct/scorer.py +0 -0
  98. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/evol_instruct/templates.py +0 -0
  99. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_improving_cot.py +0 -0
  100. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_instruct/__init__.py +0 -0
  101. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_instruct/filter/__init__.py +0 -0
  102. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_instruct/filter/filter_function.py +0 -0
  103. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_instruct/filter/filter_registry.py +0 -0
  104. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_instruct/filter/instruction_filter.py +0 -0
  105. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_instruct/self_instruct.py +0 -0
  106. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_instruct/templates.py +0 -0
  107. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/source2synth/__init__.py +0 -0
  108. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/source2synth/data_processor.py +0 -0
  109. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/source2synth/models.py +0 -0
  110. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/source2synth/user_data_processor_config.py +0 -0
  111. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datahubs/__init__.py +0 -0
  112. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datahubs/base.py +0 -0
  113. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datahubs/huggingface.py +0 -0
  114. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datahubs/models.py +0 -0
  115. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datasets/__init__.py +0 -0
  116. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datasets/base_generator.py +0 -0
  117. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datasets/few_shot_generator.py +0 -0
  118. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datasets/models.py +0 -0
  119. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datasets/self_instruct_generator.py +0 -0
  120. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datasets/static_dataset.py +0 -0
  121. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/__init__.py +0 -0
  122. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/azure_embedding.py +0 -0
  123. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/base.py +0 -0
  124. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/gemini_embedding.py +0 -0
  125. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/jina_embedding.py +0 -0
  126. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/mistral_embedding.py +0 -0
  127. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/openai_compatible_embedding.py +0 -0
  128. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/openai_embedding.py +0 -0
  129. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/sentence_transformers_embeddings.py +0 -0
  130. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/together_embedding.py +0 -0
  131. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/vlm_embedding.py +0 -0
  132. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/environments/__init__.py +0 -0
  133. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/environments/models.py +0 -0
  134. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/environments/multi_step.py +0 -0
  135. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/environments/rlcards_env.py +0 -0
  136. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/environments/single_step.py +0 -0
  137. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/environments/tic_tac_toe.py +0 -0
  138. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/extractors/__init__.py +0 -0
  139. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/extractors/base.py +0 -0
  140. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/extractors/python_strategies.py +0 -0
  141. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/generators.py +0 -0
  142. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/human.py +0 -0
  143. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/__init__.py +0 -0
  144. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/base.py +0 -0
  145. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/docker/Dockerfile +0 -0
  146. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/docker_interpreter.py +0 -0
  147. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/e2b_interpreter.py +0 -0
  148. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/interpreter_error.py +0 -0
  149. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/ipython_interpreter.py +0 -0
  150. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/subprocess_interpreter.py +0 -0
  151. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/__init__.py +0 -0
  152. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/apify_reader.py +0 -0
  153. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/base_io.py +0 -0
  154. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/chunkr_reader.py +0 -0
  155. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/crawl4ai_reader.py +0 -0
  156. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/firecrawl_reader.py +0 -0
  157. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/jina_url_reader.py +0 -0
  158. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/markitdown.py +0 -0
  159. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/mineru_extractor.py +0 -0
  160. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/mistral_reader.py +0 -0
  161. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/pandas_reader.py +0 -0
  162. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/scrapegraph_reader.py +0 -0
  163. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/unstructured_io.py +0 -0
  164. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/logger.py +0 -0
  165. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/__init__.py +0 -0
  166. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/agent_memories.py +0 -0
  167. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/base.py +0 -0
  168. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/blocks/__init__.py +0 -0
  169. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/blocks/chat_history_block.py +0 -0
  170. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/blocks/vectordb_block.py +0 -0
  171. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/context_creators/__init__.py +0 -0
  172. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/context_creators/score_based.py +0 -0
  173. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/records.py +0 -0
  174. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/__init__.py +0 -0
  175. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/base.py +0 -0
  176. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/conversion/__init__.py +0 -0
  177. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/conversion/alpaca.py +0 -0
  178. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/conversion/conversation_models.py +0 -0
  179. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/conversion/sharegpt/__init__.py +0 -0
  180. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/conversion/sharegpt/function_call_formatter.py +0 -0
  181. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/conversion/sharegpt/hermes/__init__.py +0 -0
  182. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +0 -0
  183. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/func_message.py +0 -0
  184. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/__init__.py +0 -0
  185. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/_utils.py +0 -0
  186. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/aiml_model.py +0 -0
  187. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/anthropic_model.py +0 -0
  188. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/aws_bedrock_model.py +0 -0
  189. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/azure_openai_model.py +0 -0
  190. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/base_audio_model.py +0 -0
  191. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/cohere_model.py +0 -0
  192. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/crynux_model.py +0 -0
  193. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/deepseek_model.py +0 -0
  194. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/fish_audio_model.py +0 -0
  195. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/gemini_model.py +0 -0
  196. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/groq_model.py +0 -0
  197. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/internlm_model.py +0 -0
  198. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/litellm_model.py +0 -0
  199. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/lmstudio_model.py +0 -0
  200. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/mistral_model.py +0 -0
  201. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/model_factory.py +0 -0
  202. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/model_manager.py +0 -0
  203. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/modelscope_model.py +0 -0
  204. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/moonshot_model.py +0 -0
  205. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/nemotron_model.py +0 -0
  206. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/netmind_model.py +0 -0
  207. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/novita_model.py +0 -0
  208. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/nvidia_model.py +0 -0
  209. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/ollama_model.py +0 -0
  210. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/openai_audio_models.py +0 -0
  211. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/openai_compatible_model.py +0 -0
  212. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/openai_model.py +0 -0
  213. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/openrouter_model.py +0 -0
  214. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/ppio_model.py +0 -0
  215. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/qianfan_model.py +0 -0
  216. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/qwen_model.py +0 -0
  217. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/reka_model.py +0 -0
  218. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/reward/__init__.py +0 -0
  219. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/reward/base_reward_model.py +0 -0
  220. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/reward/evaluator.py +0 -0
  221. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/reward/nemotron_model.py +0 -0
  222. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/reward/skywork_model.py +0 -0
  223. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/samba_model.py +0 -0
  224. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/sglang_model.py +0 -0
  225. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/siliconflow_model.py +0 -0
  226. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/stub_model.py +0 -0
  227. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/togetherai_model.py +0 -0
  228. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/vllm_model.py +0 -0
  229. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/volcano_model.py +0 -0
  230. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/watsonx_model.py +0 -0
  231. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/yi_model.py +0 -0
  232. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/zhipuai_model.py +0 -0
  233. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/personas/__init__.py +0 -0
  234. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/personas/persona.py +0 -0
  235. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/personas/persona_hub.py +0 -0
  236. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/__init__.py +0 -0
  237. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/ai_society.py +0 -0
  238. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/base.py +0 -0
  239. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/code.py +0 -0
  240. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/evaluation.py +0 -0
  241. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/generate_text_embedding_data.py +0 -0
  242. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/image_craft.py +0 -0
  243. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/misalignment.py +0 -0
  244. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/multi_condition_image_craft.py +0 -0
  245. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/object_recognition.py +0 -0
  246. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/persona_hub.py +0 -0
  247. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/prompt_templates.py +0 -0
  248. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/role_description_prompt_template.py +0 -0
  249. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/solution_extraction.py +0 -0
  250. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/task_prompt_template.py +0 -0
  251. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/translation.py +0 -0
  252. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/video_description_prompt.py +0 -0
  253. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/py.typed +0 -0
  254. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/responses/__init__.py +0 -0
  255. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/responses/agent_responses.py +0 -0
  256. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/retrievers/__init__.py +0 -0
  257. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/retrievers/auto_retriever.py +0 -0
  258. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/retrievers/base.py +0 -0
  259. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/retrievers/bm25_retriever.py +0 -0
  260. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/retrievers/cohere_rerank_retriever.py +0 -0
  261. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/retrievers/hybrid_retrival.py +0 -0
  262. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/retrievers/vector_retriever.py +0 -0
  263. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/__init__.py +0 -0
  264. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/api.py +0 -0
  265. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/base.py +0 -0
  266. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/configs.py +0 -0
  267. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/daytona_runtime.py +0 -0
  268. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/docker_runtime.py +0 -0
  269. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/llm_guard_runtime.py +0 -0
  270. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/remote_http_runtime.py +0 -0
  271. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/ubuntu_docker_runtime.py +0 -0
  272. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/utils/__init__.py +0 -0
  273. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/utils/function_risk_toolkit.py +0 -0
  274. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/utils/ignore_risk_toolkit.py +0 -0
  275. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/schemas/__init__.py +0 -0
  276. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/schemas/base.py +0 -0
  277. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/schemas/openai_converter.py +0 -0
  278. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/schemas/outlines_converter.py +0 -0
  279. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/__init__.py +0 -0
  280. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/babyagi_playing.py +0 -0
  281. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/role_playing.py +0 -0
  282. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/__init__.py +0 -0
  283. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/base.py +0 -0
  284. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/prompts.py +0 -0
  285. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/role_playing_worker.py +0 -0
  286. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/single_agent_worker.py +0 -0
  287. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/task_channel.py +0 -0
  288. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/utils.py +0 -0
  289. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/worker.py +0 -0
  290. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/workforce.py +0 -0
  291. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/workforce_logger.py +0 -0
  292. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/__init__.py +0 -0
  293. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/graph_storages/__init__.py +0 -0
  294. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/graph_storages/base.py +0 -0
  295. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/graph_storages/graph_element.py +0 -0
  296. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/graph_storages/nebula_graph.py +0 -0
  297. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/graph_storages/neo4j_graph.py +0 -0
  298. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/key_value_storages/__init__.py +0 -0
  299. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/key_value_storages/base.py +0 -0
  300. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/key_value_storages/in_memory.py +0 -0
  301. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/key_value_storages/json.py +0 -0
  302. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/key_value_storages/mem0_cloud.py +0 -0
  303. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/key_value_storages/redis.py +0 -0
  304. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/object_storages/__init__.py +0 -0
  305. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/object_storages/amazon_s3.py +0 -0
  306. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/object_storages/azure_blob.py +0 -0
  307. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/object_storages/base.py +0 -0
  308. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/object_storages/google_cloud.py +0 -0
  309. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/__init__.py +0 -0
  310. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/base.py +0 -0
  311. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/faiss.py +0 -0
  312. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/milvus.py +0 -0
  313. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/oceanbase.py +0 -0
  314. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/qdrant.py +0 -0
  315. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/tidb.py +0 -0
  316. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/weaviate.py +0 -0
  317. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/tasks/__init__.py +0 -0
  318. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/tasks/task.py +0 -0
  319. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/tasks/task_prompt.py +0 -0
  320. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/terminators/__init__.py +0 -0
  321. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/terminators/base.py +0 -0
  322. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/terminators/response_terminator.py +0 -0
  323. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/terminators/token_limit_terminator.py +0 -0
  324. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/aci_toolkit.py +0 -0
  325. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/arxiv_toolkit.py +0 -0
  326. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/ask_news_toolkit.py +0 -0
  327. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/async_browser_toolkit.py +0 -0
  328. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/audio_analysis_toolkit.py +0 -0
  329. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/base.py +0 -0
  330. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/bohrium_toolkit.py +0 -0
  331. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/browser_toolkit.py +0 -0
  332. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/browser_toolkit_commons.py +0 -0
  333. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/code_execution.py +0 -0
  334. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/dalle_toolkit.py +0 -0
  335. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/dappier_toolkit.py +0 -0
  336. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/data_commons_toolkit.py +0 -0
  337. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/excel_toolkit.py +0 -0
  338. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/file_write_toolkit.py +0 -0
  339. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/function_tool.py +0 -0
  340. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/github_toolkit.py +0 -0
  341. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/google_calendar_toolkit.py +0 -0
  342. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/google_maps_toolkit.py +0 -0
  343. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/google_scholar_toolkit.py +0 -0
  344. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/human_toolkit.py +0 -0
  345. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/image_analysis_toolkit.py +0 -0
  346. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/jina_reranker_toolkit.py +0 -0
  347. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/klavis_toolkit.py +0 -0
  348. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/linkedin_toolkit.py +0 -0
  349. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/math_toolkit.py +0 -0
  350. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/mcp_toolkit.py +0 -0
  351. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/memory_toolkit.py +0 -0
  352. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/meshy_toolkit.py +0 -0
  353. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/mineru_toolkit.py +0 -0
  354. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/networkx_toolkit.py +0 -0
  355. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/non_visual_browser_toolkit/__init__.py +0 -0
  356. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/non_visual_browser_toolkit/actions.py +0 -0
  357. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/non_visual_browser_toolkit/agent.py +0 -0
  358. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/non_visual_browser_toolkit/nv_browser_session.py +0 -0
  359. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/non_visual_browser_toolkit/snapshot.js +0 -0
  360. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/non_visual_browser_toolkit/snapshot.py +0 -0
  361. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/notion_toolkit.py +0 -0
  362. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/biztoc/__init__.py +0 -0
  363. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/biztoc/ai-plugin.json +0 -0
  364. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/biztoc/openapi.yaml +0 -0
  365. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/coursera/__init__.py +0 -0
  366. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/coursera/openapi.yaml +0 -0
  367. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/create_qr_code/__init__.py +0 -0
  368. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/create_qr_code/openapi.yaml +0 -0
  369. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/klarna/__init__.py +0 -0
  370. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/klarna/openapi.yaml +0 -0
  371. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/nasa_apod/__init__.py +0 -0
  372. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/nasa_apod/openapi.yaml +0 -0
  373. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/outschool/__init__.py +0 -0
  374. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/outschool/ai-plugin.json +0 -0
  375. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/outschool/openapi.yaml +0 -0
  376. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/outschool/paths/__init__.py +0 -0
  377. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/outschool/paths/get_classes.py +0 -0
  378. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +0 -0
  379. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/security_config.py +0 -0
  380. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/speak/__init__.py +0 -0
  381. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/speak/openapi.yaml +0 -0
  382. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/web_scraper/__init__.py +0 -0
  383. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +0 -0
  384. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/web_scraper/openapi.yaml +0 -0
  385. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +0 -0
  386. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +0 -0
  387. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_toolkit.py +0 -0
  388. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/openai_agent_toolkit.py +0 -0
  389. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/openbb_toolkit.py +0 -0
  390. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/page_script.js +0 -0
  391. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/playwright_mcp_toolkit.py +0 -0
  392. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/pptx_toolkit.py +0 -0
  393. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/pubmed_toolkit.py +0 -0
  394. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/pulse_mcp_search_toolkit.py +0 -0
  395. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/pyautogui_toolkit.py +0 -0
  396. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/reddit_toolkit.py +0 -0
  397. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/retrieval_toolkit.py +0 -0
  398. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/search_toolkit.py +0 -0
  399. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/searxng_toolkit.py +0 -0
  400. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/semantic_scholar_toolkit.py +0 -0
  401. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/slack_toolkit.py +0 -0
  402. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/stripe_toolkit.py +0 -0
  403. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/sympy_toolkit.py +0 -0
  404. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/task_planning_toolkit.py +0 -0
  405. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/terminal_toolkit.py +0 -0
  406. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/thinking_toolkit.py +0 -0
  407. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/twitter_toolkit.py +0 -0
  408. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/video_analysis_toolkit.py +0 -0
  409. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/video_download_toolkit.py +0 -0
  410. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/weather_toolkit.py +0 -0
  411. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/whatsapp_toolkit.py +0 -0
  412. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/wolfram_alpha_toolkit.py +0 -0
  413. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/zapier_toolkit.py +0 -0
  414. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/types/__init__.py +0 -0
  415. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/types/agents/__init__.py +0 -0
  416. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/types/agents/tool_calling_record.py +0 -0
  417. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/types/enums.py +0 -0
  418. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/types/mcp_registries.py +0 -0
  419. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/types/openai_types.py +0 -0
  420. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/types/unified_model_type.py +0 -0
  421. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/__init__.py +0 -0
  422. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/async_func.py +0 -0
  423. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/chunker/__init__.py +0 -0
  424. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/chunker/base.py +0 -0
  425. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/chunker/code_chunker.py +0 -0
  426. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/chunker/uio_chunker.py +0 -0
  427. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/commons.py +0 -0
  428. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/constants.py +0 -0
  429. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/deduplication.py +0 -0
  430. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/filename.py +0 -0
  431. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/langfuse.py +0 -0
  432. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/mcp.py +0 -0
  433. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/mcp_client.py +0 -0
  434. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/response_format.py +0 -0
  435. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/token_counting.py +0 -0
  436. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/verifiers/__init__.py +0 -0
  437. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/verifiers/base.py +0 -0
  438. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/verifiers/math_verifier.py +0 -0
  439. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/verifiers/models.py +0 -0
  440. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/verifiers/physics_verifier.py +0 -0
  441. {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/verifiers/python_verifier.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: camel-ai
3
- Version: 0.2.69a4
3
+ Version: 0.2.69a6
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
@@ -176,7 +176,7 @@ Requires-Dist: types-pyyaml<7,>=6.0.12; extra == 'dev'
176
176
  Requires-Dist: types-requests<3,>=2.31.0; extra == 'dev'
177
177
  Requires-Dist: types-setuptools<70,>=69.2.0; extra == 'dev'
178
178
  Requires-Dist: types-tqdm<5,>=4.66.0; extra == 'dev'
179
- Requires-Dist: uv==0.6.5; extra == 'dev'
179
+ Requires-Dist: uv<0.8,>=0.7.0; extra == 'dev'
180
180
  Provides-Extra: dev-tools
181
181
  Requires-Dist: aci-sdk>=1.0.0b1; extra == 'dev-tools'
182
182
  Requires-Dist: agentops<0.4,>=0.3.21; extra == 'dev-tools'
@@ -322,10 +322,6 @@ Requires-Dist: pytidb-experimental==0.0.1.dev4; extra == 'storage'
322
322
  Requires-Dist: qdrant-client<2,>=1.9.0; extra == 'storage'
323
323
  Requires-Dist: redis<6,>=5.0.6; extra == 'storage'
324
324
  Requires-Dist: weaviate-client>=4.15.0; extra == 'storage'
325
- Provides-Extra: test
326
- Requires-Dist: mock<6,>=5; extra == 'test'
327
- Requires-Dist: pytest-asyncio<0.24,>=0.23.0; extra == 'test'
328
- Requires-Dist: pytest<8,>=7; extra == 'test'
329
325
  Provides-Extra: web-tools
330
326
  Requires-Dist: apify-client<2,>=1.8.1; extra == 'web-tools'
331
327
  Requires-Dist: beautifulsoup4<5,>=4; extra == 'web-tools'
@@ -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.69a4'
17
+ __version__ = '0.2.69a6'
18
18
 
19
19
  __all__ = [
20
20
  '__version__',
@@ -79,6 +79,9 @@ class InternalPythonInterpreter(BaseInterpreter):
79
79
  (default: :obj:`False`)
80
80
  raise_error (bool, optional): Raise error if the interpreter fails.
81
81
  (default: :obj:`False`)
82
+ allow_builtins (bool, optional): If `True`, safe built-in functions
83
+ like print, len, str, etc. are added to the action space.
84
+ (default: :obj:`True`)
82
85
  """
83
86
 
84
87
  _CODE_TYPES: ClassVar[List[str]] = ["python", "py", "python3", "python2"]
@@ -89,16 +92,62 @@ class InternalPythonInterpreter(BaseInterpreter):
89
92
  import_white_list: Optional[List[str]] = None,
90
93
  unsafe_mode: bool = False,
91
94
  raise_error: bool = False,
95
+ allow_builtins: bool = True,
92
96
  ) -> None:
93
97
  self.action_space = action_space or dict()
94
- # Add print to action space
95
- self.action_space['print'] = print
96
98
  self.state = self.action_space.copy()
97
99
  self.fuzz_state: Dict[str, Any] = dict()
98
100
  self.import_white_list = import_white_list or list()
99
101
  self.raise_error = raise_error
100
102
  self.unsafe_mode = unsafe_mode
101
103
 
104
+ # Add safe built-in functions if allowed
105
+ if allow_builtins:
106
+ self._add_safe_builtins()
107
+
108
+ def _add_safe_builtins(self):
109
+ r"""Add safe built-in functions to the action space."""
110
+ safe_builtins = {
111
+ 'print': print,
112
+ 'len': len,
113
+ 'str': str,
114
+ 'int': int,
115
+ 'float': float,
116
+ 'bool': bool,
117
+ 'list': list,
118
+ 'dict': dict,
119
+ 'tuple': tuple,
120
+ 'set': set,
121
+ 'abs': abs,
122
+ 'min': min,
123
+ 'max': max,
124
+ 'sum': sum,
125
+ 'sorted': sorted,
126
+ 'reversed': reversed,
127
+ 'enumerate': enumerate,
128
+ 'zip': zip,
129
+ 'range': range,
130
+ 'round': round,
131
+ 'type': type,
132
+ 'isinstance': isinstance,
133
+ 'hasattr': hasattr,
134
+ 'getattr': getattr,
135
+ 'setattr': setattr,
136
+ 'dir': dir,
137
+ 'help': help,
138
+ 'map': map,
139
+ 'filter': filter,
140
+ 'any': any,
141
+ 'all': all,
142
+ 'ord': ord,
143
+ 'chr': chr,
144
+ 'bin': bin,
145
+ 'oct': oct,
146
+ 'hex': hex,
147
+ }
148
+ self.action_space.update(safe_builtins)
149
+ self.state.update(safe_builtins)
150
+
102
151
  def run(self, code: str, code_type: str = "python") -> str:
103
152
  r"""Executes the given code with specified code type in the
104
153
  interpreter.
@@ -12,6 +12,7 @@
12
12
  # limitations under the License.
13
13
  # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
14
14
  import abc
15
+ import os
15
16
  import re
16
17
  from abc import ABC, abstractmethod
17
18
  from typing import Any, Dict, List, Optional, Type, Union
@@ -94,6 +95,12 @@ class BaseModelBackend(ABC, metaclass=ModelBackendMeta):
94
95
  self._token_counter = token_counter
95
96
  self._timeout = timeout
96
97
  self._max_retries = max_retries
98
+ # Initialize logging configuration
99
+ self._log_enabled = (
100
+ os.environ.get("CAMEL_MODEL_LOG_ENABLED", "False").lower()
101
+ == "true"
102
+ )
103
+ self._log_dir = os.environ.get("CAMEL_LOG_DIR", "camel_logs")
97
104
  self.check_model_config()
98
105
 
99
106
  @property
@@ -232,6 +239,68 @@ class BaseModelBackend(ABC, metaclass=ModelBackendMeta):
232
239
 
233
240
  return formatted_messages
234
241
 
242
+ def _log_request(self, messages: List[OpenAIMessage]) -> Optional[str]:
243
+ r"""Log the request messages to a JSON file if logging is enabled.
244
+
245
+ Args:
246
+ messages (List[OpenAIMessage]): The messages to log.
247
+
248
+ Returns:
249
+ Optional[str]: The path to the log file if logging is enabled,
250
+ None otherwise.
251
+ """
252
+ if not self._log_enabled:
253
+ return None
254
+
255
+ import json
256
+ from datetime import datetime
257
+
258
+ os.makedirs(self._log_dir, exist_ok=True)
259
+
260
+ timestamp = datetime.now().strftime('%Y%m%d_%H%M%S_%f')
261
+ log_file_path = os.path.join(self._log_dir, f"conv_{timestamp}.json")
262
+
263
+ log_entry = {
264
+ "request_timestamp": datetime.now().isoformat(),
265
+ "model": str(self.model_type),
266
+ "request": {"messages": messages},
267
+ }
268
+
269
+ with open(log_file_path, "w") as f:
270
+ json.dump(log_entry, f, indent=4)
271
+
272
+ return log_file_path
273
+
274
+ def _log_response(self, log_path: str, response: Any) -> None:
275
+ r"""Log the response to the existing log file.
276
+
277
+ Args:
278
+ log_path (str): The path to the log file.
279
+ response (Any): The response to log.
280
+ """
281
+ if not self._log_enabled or not log_path:
282
+ return
283
+
284
+ import json
285
+ from datetime import datetime
286
+
287
+ with open(log_path, "r+") as f:
288
+ log_data = json.load(f)
289
+
290
+ log_data["response_timestamp"] = datetime.now().isoformat()
291
+ if isinstance(response, BaseModel):
292
+ log_data["response"] = response.model_dump()
293
+ else:
294
+ try:
295
+ json.dumps(response)
296
+ log_data["response"] = response
297
+ except TypeError:
298
+ log_data["response"] = str(response)
299
+
300
+ f.seek(0)
301
+ json.dump(log_data, f, indent=4)
302
+ f.truncate()
303
+
235
304
  @abstractmethod
236
305
  def _run(
237
306
  self,
@@ -273,13 +342,23 @@ class BaseModelBackend(ABC, metaclass=ModelBackendMeta):
273
342
  `ChatCompletion` in the non-stream mode, or
274
343
  `Stream[ChatCompletionChunk]` in the stream mode.
275
344
  """
345
+ # Log the request if logging is enabled
346
+ log_path = self._log_request(messages)
347
+
276
348
  # None -> use default tools
277
349
  if tools is None:
278
350
  tools = self.model_config_dict.get("tools", None)
279
351
  # Empty -> use no tools
280
352
  elif not tools:
281
353
  tools = None
282
- return self._run(messages, response_format, tools)
354
+
355
+ result = self._run(messages, response_format, tools)
356
+
357
+ # Log the response if logging is enabled
358
+ if log_path:
359
+ self._log_response(log_path, result)
360
+
361
+ return result
283
362
 
284
363
  async def arun(
285
364
  self,
@@ -304,11 +383,21 @@ class BaseModelBackend(ABC, metaclass=ModelBackendMeta):
304
383
  `ChatCompletion` in the non-stream mode, or
305
384
  `AsyncStream[ChatCompletionChunk]` in the stream mode.
306
385
  """
386
+ # Log the request if logging is enabled
387
+ log_path = self._log_request(messages)
388
+
307
389
  if tools is None:
308
390
  tools = self.model_config_dict.get("tools", None)
309
391
  elif not tools:
310
392
  tools = None
311
- return await self._arun(messages, response_format, tools)
393
+
394
+ result = await self._arun(messages, response_format, tools)
395
+
396
+ # Log the response if logging is enabled
397
+ if log_path:
398
+ self._log_response(log_path, result)
399
+
400
+ return result
312
401
 
313
402
  @abstractmethod
314
403
  def check_model_config(self):
@@ -78,6 +78,9 @@ from .playwright_mcp_toolkit import PlaywrightMCPToolkit
78
78
  from .wolfram_alpha_toolkit import WolframAlphaToolkit
79
79
  from .task_planning_toolkit import TaskPlanningToolkit
80
80
  from .non_visual_browser_toolkit import BrowserNonVisualToolkit
81
+ from .edgeone_pages_mcp_toolkit import EdgeOnePagesMCPToolkit
82
+ from .craw4ai_toolkit import Crawl4AIToolkit
83
+ from .markitdown_toolkit import MarkItDownToolkit
81
84
 
82
85
 
83
86
  __all__ = [
@@ -144,4 +147,7 @@ __all__ = [
144
147
  'BohriumToolkit',
145
148
  'TaskPlanningToolkit',
146
149
  'BrowserNonVisualToolkit',
150
+ 'EdgeOnePagesMCPToolkit',
151
+ 'Crawl4AIToolkit',
152
+ 'MarkItDownToolkit',
147
153
  ]
@@ -0,0 +1,73 @@
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 List, Optional
16
+
17
+ from camel.logger import get_logger
18
+ from camel.toolkits.base import BaseToolkit
19
+ from camel.toolkits.function_tool import FunctionTool
20
+ from camel.utils import MCPServer
21
+
22
+ logger = get_logger(__name__)
23
+
24
+
25
+ @MCPServer()
26
+ class Crawl4AIToolkit(BaseToolkit):
27
+ r"""A class representing a toolkit for Crawl4AI."""
28
+
29
+ def __init__(
30
+ self,
31
+ timeout: Optional[float] = None,
32
+ ):
33
+ super().__init__(timeout=timeout)
34
+
35
+ async def scrape(self, url: str) -> str:
36
+ r"""Scrapes a webpage and returns its content.
37
+
38
+ This function is designed to fetch the content of a given URL and
39
+ return it as a single string. It's particularly useful for extracting
40
+ text from web pages for further processing. The function
41
+ will try to get the most meaningful content from the page.
42
+
43
+ Args:
44
+ url (str): The URL of the webpage to scrape.
45
+
46
+ Returns:
47
+ str: The scraped content of the webpage as a string. If the
48
+ scraping fails, it will return an error message.
49
+ """
50
+ from crawl4ai import AsyncWebCrawler, CrawlerRunConfig
51
+
52
+ try:
53
+ async with AsyncWebCrawler() as client:
54
+ config = CrawlerRunConfig(
55
+ only_text=True,
56
+ )
57
+ content = await client.arun(url, crawler_config=config)
58
+ return str(content.markdown) if content.markdown else ""
59
+ except Exception as e:
60
+ logger.error(f"Error scraping {url}: {e}")
61
+ return f"Error scraping {url}: {e}"
62
+
63
+ def get_tools(self) -> List[FunctionTool]:
64
+ r"""Returns a list of FunctionTool objects representing the
65
+ functions in the toolkit.
66
+
67
+ Returns:
68
+ List[FunctionTool]: A list of FunctionTool objects
69
+ representing the functions in the toolkit.
70
+ """
71
+ return [
72
+ FunctionTool(self.scrape),
73
+ ]
@@ -0,0 +1,69 @@
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 List, Optional
16
+
17
+ from camel.toolkits import BaseToolkit, FunctionTool
18
+
19
+ from .mcp_toolkit import MCPToolkit
20
+
21
+
22
+ class EdgeOnePagesMCPToolkit(BaseToolkit):
23
+ r"""EdgeOnePagesMCPToolkit provides an interface for interacting with
24
+ EdgeOne pages using the EdgeOne Pages MCP server.
25
+
26
+ Attributes:
27
+ timeout (Optional[float]): Connection timeout in seconds.
28
+ (default: :obj:`None`)
29
+ """
30
+
31
+ def __init__(
32
+ self,
33
+ timeout: Optional[float] = None,
34
+ ) -> None:
35
+ r"""Initializes the EdgeOnePagesMCPToolkit.
36
+
37
+ Args:
38
+ timeout (Optional[float]): Connection timeout in seconds.
39
+ (default: :obj:`None`)
40
+ """
41
+ super().__init__(timeout=timeout)
42
+
43
+ self._mcp_toolkit = MCPToolkit(
44
+ config_dict={
45
+ "mcpServers": {
46
+ "edgeone-pages-mcp-server": {
47
+ "command": "npx",
48
+ "args": ["edgeone-pages-mcp"],
49
+ }
50
+ }
51
+ },
52
+ timeout=timeout,
53
+ )
54
+
55
+ async def connect(self):
56
+ r"""Explicitly connect to the EdgeOne Pages MCP server."""
57
+ await self._mcp_toolkit.connect()
58
+
59
+ async def disconnect(self):
60
+ r"""Explicitly disconnect from the EdgeOne Pages MCP server."""
61
+ await self._mcp_toolkit.disconnect()
62
+
63
+ def get_tools(self) -> List[FunctionTool]:
64
+ r"""Returns a list of tools provided by the EdgeOnePagesMCPToolkit.
65
+
66
+ Returns:
67
+ List[FunctionTool]: List of available tools.
68
+ """
69
+ return self._mcp_toolkit.get_tools()
@@ -0,0 +1,78 @@
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 Dict, List, Optional
16
+
17
+ from camel.loaders.markitdown import MarkItDownLoader
18
+ from camel.logger import get_logger
19
+ from camel.toolkits.base import BaseToolkit
20
+ from camel.toolkits.function_tool import FunctionTool
21
+ from camel.utils import MCPServer
22
+
23
+ logger = get_logger(__name__)
24
+
25
+
26
+ @MCPServer()
27
+ class MarkItDownToolkit(BaseToolkit):
28
+ r"""A class representing a toolkit for MarkItDown."""
29
+
30
+ def __init__(
31
+ self,
32
+ timeout: Optional[float] = None,
33
+ ):
34
+ super().__init__(timeout=timeout)
35
+
36
+ def load_files(self, file_paths: List[str]) -> Dict[str, str]:
37
+ r"""Scrapes content from a list of files and converts it to Markdown.
38
+
39
+ This function takes a list of local file paths, attempts to convert
40
+ each file into Markdown format, and returns the converted content.
41
+ The conversion is performed in parallel for efficiency.
42
+
43
+ Supported file formats include:
44
+ - PDF (.pdf)
45
+ - Microsoft Office: Word (.doc, .docx), Excel (.xls, .xlsx),
46
+ PowerPoint (.ppt, .pptx)
47
+ - EPUB (.epub)
48
+ - HTML (.html, .htm)
49
+ - Images (.jpg, .jpeg, .png) for OCR
50
+ - Audio (.mp3, .wav) for transcription
51
+ - Text-based formats (.csv, .json, .xml, .txt)
52
+ - ZIP archives (.zip)
53
+
54
+ Args:
55
+ file_paths (List[str]): A list of local file paths to be
56
+ converted.
57
+
58
+ Returns:
59
+ Dict[str, str]: A dictionary where keys are the input file paths
60
+ and values are the corresponding content in Markdown format.
61
+ If conversion of a file fails, the value will contain an
62
+ error message.
63
+ """
64
+ return MarkItDownLoader().convert_files(
65
+ file_paths=file_paths, parallel=True
66
+ )
67
+
68
+ def get_tools(self) -> List[FunctionTool]:
69
+ r"""Returns a list of FunctionTool objects representing the
70
+ functions in the toolkit.
71
+
72
+ Returns:
73
+ List[FunctionTool]: A list of FunctionTool objects
74
+ representing the functions in the toolkit.
75
+ """
76
+ return [
77
+ FunctionTool(self.load_files),
78
+ ]