camel-ai 0.2.71a11__tar.gz → 0.2.72a0__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 (453) hide show
  1. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/PKG-INFO +1 -1
  2. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/__init__.py +1 -1
  3. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/chat_agent.py +1 -1
  4. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/moonshot_model.py +36 -4
  5. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/societies/workforce/prompts.py +1 -1
  6. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/societies/workforce/role_playing_worker.py +1 -1
  7. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/societies/workforce/worker.py +1 -1
  8. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/societies/workforce/workforce.py +97 -34
  9. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/tasks/task.py +9 -5
  10. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/search_toolkit.py +142 -78
  11. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/tool_result.py +1 -1
  12. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/pyproject.toml +1 -1
  13. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/.gitignore +0 -0
  14. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/LICENSE +0 -0
  15. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/README.md +0 -0
  16. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/__init__.py +0 -0
  17. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/_types.py +0 -0
  18. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/_utils.py +0 -0
  19. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/base.py +0 -0
  20. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/critic_agent.py +0 -0
  21. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/deductive_reasoner_agent.py +0 -0
  22. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/embodied_agent.py +0 -0
  23. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/knowledge_graph_agent.py +0 -0
  24. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/mcp_agent.py +0 -0
  25. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/multi_hop_generator_agent.py +0 -0
  26. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/programmed_agent_instruction.py +0 -0
  27. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/repo_agent.py +0 -0
  28. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/role_assignment_agent.py +0 -0
  29. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/search_agent.py +0 -0
  30. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/task_agent.py +0 -0
  31. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/tool_agents/__init__.py +0 -0
  32. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/tool_agents/base.py +0 -0
  33. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/agents/tool_agents/hugging_face_tool_agent.py +0 -0
  34. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/benchmarks/__init__.py +0 -0
  35. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/benchmarks/apibank.py +0 -0
  36. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/benchmarks/apibench.py +0 -0
  37. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/benchmarks/base.py +0 -0
  38. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/benchmarks/browsecomp.py +0 -0
  39. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/benchmarks/gaia.py +0 -0
  40. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/benchmarks/mock_website/README.md +0 -0
  41. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/benchmarks/mock_website/mock_web.py +0 -0
  42. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/benchmarks/mock_website/requirements.txt +0 -0
  43. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/benchmarks/mock_website/shopping_mall/app.py +0 -0
  44. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/benchmarks/mock_website/task.json +0 -0
  45. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/benchmarks/nexus.py +0 -0
  46. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/benchmarks/ragbench.py +0 -0
  47. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/bots/__init__.py +0 -0
  48. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/bots/discord/__init__.py +0 -0
  49. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/bots/discord/discord_app.py +0 -0
  50. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/bots/discord/discord_installation.py +0 -0
  51. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/bots/discord/discord_store.py +0 -0
  52. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/bots/slack/__init__.py +0 -0
  53. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/bots/slack/models.py +0 -0
  54. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/bots/slack/slack_app.py +0 -0
  55. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/bots/telegram_bot.py +0 -0
  56. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/__init__.py +0 -0
  57. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/aiml_config.py +0 -0
  58. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/anthropic_config.py +0 -0
  59. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/base_config.py +0 -0
  60. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/bedrock_config.py +0 -0
  61. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/cohere_config.py +0 -0
  62. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/crynux_config.py +0 -0
  63. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/deepseek_config.py +0 -0
  64. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/gemini_config.py +0 -0
  65. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/groq_config.py +0 -0
  66. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/internlm_config.py +0 -0
  67. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/litellm_config.py +0 -0
  68. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/lmstudio_config.py +0 -0
  69. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/mistral_config.py +0 -0
  70. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/modelscope_config.py +0 -0
  71. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/moonshot_config.py +0 -0
  72. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/netmind_config.py +0 -0
  73. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/novita_config.py +0 -0
  74. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/nvidia_config.py +0 -0
  75. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/ollama_config.py +0 -0
  76. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/openai_config.py +0 -0
  77. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/openrouter_config.py +0 -0
  78. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/ppio_config.py +0 -0
  79. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/qianfan_config.py +0 -0
  80. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/qwen_config.py +0 -0
  81. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/reka_config.py +0 -0
  82. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/samba_config.py +0 -0
  83. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/sglang_config.py +0 -0
  84. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/siliconflow_config.py +0 -0
  85. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/togetherai_config.py +0 -0
  86. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/vllm_config.py +0 -0
  87. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/watsonx_config.py +0 -0
  88. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/yi_config.py +0 -0
  89. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/configs/zhipuai_config.py +0 -0
  90. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/data_collectors/__init__.py +0 -0
  91. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/data_collectors/alpaca_collector.py +0 -0
  92. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/data_collectors/base.py +0 -0
  93. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/data_collectors/sharegpt_collector.py +0 -0
  94. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/__init__.py +0 -0
  95. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/cot_datagen.py +0 -0
  96. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/evol_instruct/__init__.py +0 -0
  97. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/evol_instruct/evol_instruct.py +0 -0
  98. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/evol_instruct/scorer.py +0 -0
  99. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/evol_instruct/templates.py +0 -0
  100. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/self_improving_cot.py +0 -0
  101. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/self_instruct/__init__.py +0 -0
  102. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/self_instruct/filter/__init__.py +0 -0
  103. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/self_instruct/filter/filter_function.py +0 -0
  104. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/self_instruct/filter/filter_registry.py +0 -0
  105. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/self_instruct/filter/instruction_filter.py +0 -0
  106. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/self_instruct/self_instruct.py +0 -0
  107. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/self_instruct/templates.py +0 -0
  108. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/source2synth/__init__.py +0 -0
  109. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/source2synth/data_processor.py +0 -0
  110. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/source2synth/models.py +0 -0
  111. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datagen/source2synth/user_data_processor_config.py +0 -0
  112. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datahubs/__init__.py +0 -0
  113. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datahubs/base.py +0 -0
  114. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datahubs/huggingface.py +0 -0
  115. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datahubs/models.py +0 -0
  116. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datasets/__init__.py +0 -0
  117. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datasets/base_generator.py +0 -0
  118. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datasets/few_shot_generator.py +0 -0
  119. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datasets/models.py +0 -0
  120. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datasets/self_instruct_generator.py +0 -0
  121. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/datasets/static_dataset.py +0 -0
  122. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/embeddings/__init__.py +0 -0
  123. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/embeddings/azure_embedding.py +0 -0
  124. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/embeddings/base.py +0 -0
  125. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/embeddings/gemini_embedding.py +0 -0
  126. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/embeddings/jina_embedding.py +0 -0
  127. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/embeddings/mistral_embedding.py +0 -0
  128. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/embeddings/openai_compatible_embedding.py +0 -0
  129. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/embeddings/openai_embedding.py +0 -0
  130. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/embeddings/sentence_transformers_embeddings.py +0 -0
  131. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/embeddings/together_embedding.py +0 -0
  132. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/embeddings/vlm_embedding.py +0 -0
  133. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/environments/__init__.py +0 -0
  134. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/environments/models.py +0 -0
  135. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/environments/multi_step.py +0 -0
  136. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/environments/rlcards_env.py +0 -0
  137. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/environments/single_step.py +0 -0
  138. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/environments/tic_tac_toe.py +0 -0
  139. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/extractors/__init__.py +0 -0
  140. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/extractors/base.py +0 -0
  141. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/extractors/python_strategies.py +0 -0
  142. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/generators.py +0 -0
  143. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/human.py +0 -0
  144. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/interpreters/__init__.py +0 -0
  145. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/interpreters/base.py +0 -0
  146. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/interpreters/docker/Dockerfile +0 -0
  147. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/interpreters/docker_interpreter.py +0 -0
  148. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/interpreters/e2b_interpreter.py +0 -0
  149. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/interpreters/internal_python_interpreter.py +0 -0
  150. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/interpreters/interpreter_error.py +0 -0
  151. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/interpreters/ipython_interpreter.py +0 -0
  152. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/interpreters/subprocess_interpreter.py +0 -0
  153. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/loaders/__init__.py +0 -0
  154. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/loaders/apify_reader.py +0 -0
  155. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/loaders/base_io.py +0 -0
  156. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/loaders/base_loader.py +0 -0
  157. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/loaders/chunkr_reader.py +0 -0
  158. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/loaders/crawl4ai_reader.py +0 -0
  159. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/loaders/firecrawl_reader.py +0 -0
  160. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/loaders/jina_url_reader.py +0 -0
  161. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/loaders/markitdown.py +0 -0
  162. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/loaders/mineru_extractor.py +0 -0
  163. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/loaders/mistral_reader.py +0 -0
  164. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/loaders/pandas_reader.py +0 -0
  165. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/loaders/scrapegraph_reader.py +0 -0
  166. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/loaders/unstructured_io.py +0 -0
  167. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/logger.py +0 -0
  168. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/memories/__init__.py +0 -0
  169. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/memories/agent_memories.py +0 -0
  170. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/memories/base.py +0 -0
  171. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/memories/blocks/__init__.py +0 -0
  172. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/memories/blocks/chat_history_block.py +0 -0
  173. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/memories/blocks/vectordb_block.py +0 -0
  174. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/memories/context_creators/__init__.py +0 -0
  175. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/memories/context_creators/score_based.py +0 -0
  176. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/memories/records.py +0 -0
  177. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/messages/__init__.py +0 -0
  178. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/messages/base.py +0 -0
  179. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/messages/conversion/__init__.py +0 -0
  180. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/messages/conversion/alpaca.py +0 -0
  181. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/messages/conversion/conversation_models.py +0 -0
  182. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/messages/conversion/sharegpt/__init__.py +0 -0
  183. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/messages/conversion/sharegpt/function_call_formatter.py +0 -0
  184. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/messages/conversion/sharegpt/hermes/__init__.py +0 -0
  185. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +0 -0
  186. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/messages/func_message.py +0 -0
  187. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/__init__.py +0 -0
  188. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/_utils.py +0 -0
  189. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/aiml_model.py +0 -0
  190. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/anthropic_model.py +0 -0
  191. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/aws_bedrock_model.py +0 -0
  192. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/azure_openai_model.py +0 -0
  193. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/base_audio_model.py +0 -0
  194. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/base_model.py +0 -0
  195. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/cohere_model.py +0 -0
  196. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/crynux_model.py +0 -0
  197. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/deepseek_model.py +0 -0
  198. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/fish_audio_model.py +0 -0
  199. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/gemini_model.py +0 -0
  200. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/groq_model.py +0 -0
  201. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/internlm_model.py +0 -0
  202. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/litellm_model.py +0 -0
  203. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/lmstudio_model.py +0 -0
  204. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/mistral_model.py +0 -0
  205. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/model_factory.py +0 -0
  206. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/model_manager.py +0 -0
  207. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/modelscope_model.py +0 -0
  208. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/nemotron_model.py +0 -0
  209. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/netmind_model.py +0 -0
  210. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/novita_model.py +0 -0
  211. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/nvidia_model.py +0 -0
  212. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/ollama_model.py +0 -0
  213. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/openai_audio_models.py +0 -0
  214. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/openai_compatible_model.py +0 -0
  215. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/openai_model.py +0 -0
  216. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/openrouter_model.py +0 -0
  217. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/ppio_model.py +0 -0
  218. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/qianfan_model.py +0 -0
  219. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/qwen_model.py +0 -0
  220. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/reka_model.py +0 -0
  221. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/reward/__init__.py +0 -0
  222. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/reward/base_reward_model.py +0 -0
  223. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/reward/evaluator.py +0 -0
  224. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/reward/nemotron_model.py +0 -0
  225. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/reward/skywork_model.py +0 -0
  226. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/samba_model.py +0 -0
  227. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/sglang_model.py +0 -0
  228. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/siliconflow_model.py +0 -0
  229. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/stub_model.py +0 -0
  230. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/togetherai_model.py +0 -0
  231. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/vllm_model.py +0 -0
  232. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/volcano_model.py +0 -0
  233. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/watsonx_model.py +0 -0
  234. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/yi_model.py +0 -0
  235. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/models/zhipuai_model.py +0 -0
  236. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/personas/__init__.py +0 -0
  237. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/personas/persona.py +0 -0
  238. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/personas/persona_hub.py +0 -0
  239. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/__init__.py +0 -0
  240. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/ai_society.py +0 -0
  241. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/base.py +0 -0
  242. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/code.py +0 -0
  243. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/evaluation.py +0 -0
  244. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/generate_text_embedding_data.py +0 -0
  245. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/image_craft.py +0 -0
  246. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/misalignment.py +0 -0
  247. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/multi_condition_image_craft.py +0 -0
  248. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/object_recognition.py +0 -0
  249. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/persona_hub.py +0 -0
  250. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/prompt_templates.py +0 -0
  251. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/role_description_prompt_template.py +0 -0
  252. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/solution_extraction.py +0 -0
  253. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/task_prompt_template.py +0 -0
  254. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/translation.py +0 -0
  255. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/prompts/video_description_prompt.py +0 -0
  256. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/py.typed +0 -0
  257. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/responses/__init__.py +0 -0
  258. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/responses/agent_responses.py +0 -0
  259. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/retrievers/__init__.py +0 -0
  260. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/retrievers/auto_retriever.py +0 -0
  261. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/retrievers/base.py +0 -0
  262. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/retrievers/bm25_retriever.py +0 -0
  263. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/retrievers/cohere_rerank_retriever.py +0 -0
  264. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/retrievers/hybrid_retrival.py +0 -0
  265. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/retrievers/vector_retriever.py +0 -0
  266. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/runtimes/__init__.py +0 -0
  267. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/runtimes/api.py +0 -0
  268. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/runtimes/base.py +0 -0
  269. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/runtimes/configs.py +0 -0
  270. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/runtimes/daytona_runtime.py +0 -0
  271. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/runtimes/docker_runtime.py +0 -0
  272. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/runtimes/llm_guard_runtime.py +0 -0
  273. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/runtimes/remote_http_runtime.py +0 -0
  274. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/runtimes/ubuntu_docker_runtime.py +0 -0
  275. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/runtimes/utils/__init__.py +0 -0
  276. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/runtimes/utils/function_risk_toolkit.py +0 -0
  277. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/runtimes/utils/ignore_risk_toolkit.py +0 -0
  278. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/schemas/__init__.py +0 -0
  279. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/schemas/base.py +0 -0
  280. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/schemas/openai_converter.py +0 -0
  281. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/schemas/outlines_converter.py +0 -0
  282. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/services/agent_openapi_server.py +0 -0
  283. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/societies/__init__.py +0 -0
  284. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/societies/babyagi_playing.py +0 -0
  285. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/societies/role_playing.py +0 -0
  286. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/societies/workforce/__init__.py +0 -0
  287. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/societies/workforce/base.py +0 -0
  288. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/societies/workforce/single_agent_worker.py +0 -0
  289. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/societies/workforce/structured_output_handler.py +0 -0
  290. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/societies/workforce/task_channel.py +0 -0
  291. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/societies/workforce/utils.py +0 -0
  292. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/societies/workforce/workforce_logger.py +0 -0
  293. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/__init__.py +0 -0
  294. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/graph_storages/__init__.py +0 -0
  295. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/graph_storages/base.py +0 -0
  296. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/graph_storages/graph_element.py +0 -0
  297. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/graph_storages/nebula_graph.py +0 -0
  298. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/graph_storages/neo4j_graph.py +0 -0
  299. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/key_value_storages/__init__.py +0 -0
  300. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/key_value_storages/base.py +0 -0
  301. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/key_value_storages/in_memory.py +0 -0
  302. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/key_value_storages/json.py +0 -0
  303. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/key_value_storages/mem0_cloud.py +0 -0
  304. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/key_value_storages/redis.py +0 -0
  305. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/object_storages/__init__.py +0 -0
  306. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/object_storages/amazon_s3.py +0 -0
  307. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/object_storages/azure_blob.py +0 -0
  308. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/object_storages/base.py +0 -0
  309. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/object_storages/google_cloud.py +0 -0
  310. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/vectordb_storages/__init__.py +0 -0
  311. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/vectordb_storages/base.py +0 -0
  312. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/vectordb_storages/chroma.py +0 -0
  313. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/vectordb_storages/faiss.py +0 -0
  314. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/vectordb_storages/milvus.py +0 -0
  315. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/vectordb_storages/oceanbase.py +0 -0
  316. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/vectordb_storages/pgvector.py +0 -0
  317. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/vectordb_storages/qdrant.py +0 -0
  318. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/vectordb_storages/tidb.py +0 -0
  319. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/storages/vectordb_storages/weaviate.py +0 -0
  320. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/tasks/__init__.py +0 -0
  321. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/tasks/task_prompt.py +0 -0
  322. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/terminators/__init__.py +0 -0
  323. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/terminators/base.py +0 -0
  324. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/terminators/response_terminator.py +0 -0
  325. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/terminators/token_limit_terminator.py +0 -0
  326. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/__init__.py +0 -0
  327. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/aci_toolkit.py +0 -0
  328. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/arxiv_toolkit.py +0 -0
  329. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/ask_news_toolkit.py +0 -0
  330. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/async_browser_toolkit.py +0 -0
  331. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/audio_analysis_toolkit.py +0 -0
  332. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/base.py +0 -0
  333. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/bohrium_toolkit.py +0 -0
  334. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/browser_toolkit.py +0 -0
  335. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/browser_toolkit_commons.py +0 -0
  336. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/code_execution.py +0 -0
  337. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/craw4ai_toolkit.py +0 -0
  338. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/dappier_toolkit.py +0 -0
  339. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/data_commons_toolkit.py +0 -0
  340. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/edgeone_pages_mcp_toolkit.py +0 -0
  341. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/excel_toolkit.py +0 -0
  342. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/file_write_toolkit.py +0 -0
  343. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/function_tool.py +0 -0
  344. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/github_toolkit.py +0 -0
  345. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/google_calendar_toolkit.py +0 -0
  346. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/google_drive_mcp_toolkit.py +0 -0
  347. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/google_maps_toolkit.py +0 -0
  348. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/google_scholar_toolkit.py +0 -0
  349. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/human_toolkit.py +0 -0
  350. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/hybrid_browser_toolkit/__init__.py +0 -0
  351. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/hybrid_browser_toolkit/actions.py +0 -0
  352. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/hybrid_browser_toolkit/agent.py +0 -0
  353. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/hybrid_browser_toolkit/browser_session.py +0 -0
  354. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/hybrid_browser_toolkit/config_loader.py +0 -0
  355. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py +0 -0
  356. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/hybrid_browser_toolkit/snapshot.py +0 -0
  357. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/hybrid_browser_toolkit/stealth_script.js +0 -0
  358. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/hybrid_browser_toolkit/unified_analyzer.js +0 -0
  359. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/image_analysis_toolkit.py +0 -0
  360. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/jina_reranker_toolkit.py +0 -0
  361. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/klavis_toolkit.py +0 -0
  362. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/linkedin_toolkit.py +0 -0
  363. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/markitdown_toolkit.py +0 -0
  364. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/math_toolkit.py +0 -0
  365. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/mcp_toolkit.py +0 -0
  366. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/memory_toolkit.py +0 -0
  367. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/meshy_toolkit.py +0 -0
  368. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/message_agent_toolkit.py +0 -0
  369. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/mineru_toolkit.py +0 -0
  370. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/networkx_toolkit.py +0 -0
  371. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/note_taking_toolkit.py +0 -0
  372. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/notion_toolkit.py +0 -0
  373. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/biztoc/__init__.py +0 -0
  374. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/biztoc/ai-plugin.json +0 -0
  375. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/biztoc/openapi.yaml +0 -0
  376. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/coursera/__init__.py +0 -0
  377. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/coursera/openapi.yaml +0 -0
  378. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/create_qr_code/__init__.py +0 -0
  379. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/create_qr_code/openapi.yaml +0 -0
  380. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/klarna/__init__.py +0 -0
  381. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/klarna/openapi.yaml +0 -0
  382. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/nasa_apod/__init__.py +0 -0
  383. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/nasa_apod/openapi.yaml +0 -0
  384. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/outschool/__init__.py +0 -0
  385. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/outschool/ai-plugin.json +0 -0
  386. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/outschool/openapi.yaml +0 -0
  387. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/outschool/paths/__init__.py +0 -0
  388. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/outschool/paths/get_classes.py +0 -0
  389. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +0 -0
  390. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/security_config.py +0 -0
  391. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/speak/__init__.py +0 -0
  392. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/speak/openapi.yaml +0 -0
  393. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/web_scraper/__init__.py +0 -0
  394. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +0 -0
  395. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/web_scraper/openapi.yaml +0 -0
  396. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +0 -0
  397. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +0 -0
  398. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/open_api_toolkit.py +0 -0
  399. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/openai_agent_toolkit.py +0 -0
  400. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/openai_image_toolkit.py +0 -0
  401. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/openbb_toolkit.py +0 -0
  402. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/page_script.js +0 -0
  403. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/playwright_mcp_toolkit.py +0 -0
  404. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/pptx_toolkit.py +0 -0
  405. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/pubmed_toolkit.py +0 -0
  406. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/pulse_mcp_search_toolkit.py +0 -0
  407. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/pyautogui_toolkit.py +0 -0
  408. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/reddit_toolkit.py +0 -0
  409. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/retrieval_toolkit.py +0 -0
  410. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/searxng_toolkit.py +0 -0
  411. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/semantic_scholar_toolkit.py +0 -0
  412. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/slack_toolkit.py +0 -0
  413. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/stripe_toolkit.py +0 -0
  414. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/sympy_toolkit.py +0 -0
  415. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/task_planning_toolkit.py +0 -0
  416. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/terminal_toolkit.py +0 -0
  417. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/thinking_toolkit.py +0 -0
  418. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/twitter_toolkit.py +0 -0
  419. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/video_analysis_toolkit.py +0 -0
  420. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/video_download_toolkit.py +0 -0
  421. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/weather_toolkit.py +0 -0
  422. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/whatsapp_toolkit.py +0 -0
  423. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/wolfram_alpha_toolkit.py +0 -0
  424. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/toolkits/zapier_toolkit.py +0 -0
  425. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/types/__init__.py +0 -0
  426. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/types/agents/__init__.py +0 -0
  427. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/types/agents/tool_calling_record.py +0 -0
  428. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/types/enums.py +0 -0
  429. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/types/mcp_registries.py +0 -0
  430. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/types/openai_types.py +0 -0
  431. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/types/unified_model_type.py +0 -0
  432. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/__init__.py +0 -0
  433. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/async_func.py +0 -0
  434. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/chunker/__init__.py +0 -0
  435. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/chunker/base.py +0 -0
  436. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/chunker/code_chunker.py +0 -0
  437. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/chunker/uio_chunker.py +0 -0
  438. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/commons.py +0 -0
  439. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/constants.py +0 -0
  440. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/deduplication.py +0 -0
  441. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/filename.py +0 -0
  442. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/langfuse.py +0 -0
  443. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/mcp.py +0 -0
  444. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/mcp_client.py +0 -0
  445. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/message_summarizer.py +0 -0
  446. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/response_format.py +0 -0
  447. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/utils/token_counting.py +0 -0
  448. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/verifiers/__init__.py +0 -0
  449. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/verifiers/base.py +0 -0
  450. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/verifiers/math_verifier.py +0 -0
  451. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/verifiers/models.py +0 -0
  452. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/camel/verifiers/physics_verifier.py +0 -0
  453. {camel_ai-0.2.71a11 → camel_ai-0.2.72a0}/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.71a11
3
+ Version: 0.2.72a0
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.71a11'
17
+ __version__ = '0.2.72a0'
18
18
 
19
19
  __all__ = [
20
20
  '__version__',
@@ -1236,7 +1236,7 @@ class ChatAgent(BaseAgent):
1236
1236
  if not message.parsed:
1237
1237
  logger.warning(
1238
1238
  f"Failed to parse JSON from response: "
1239
- f"{content[:100]}..."
1239
+ f"{content}"
1240
1240
  )
1241
1241
 
1242
1242
  except Exception as e:
@@ -20,6 +20,7 @@ from pydantic import BaseModel
20
20
 
21
21
  from camel.configs import MOONSHOT_API_PARAMS, MoonshotConfig
22
22
  from camel.messages import OpenAIMessage
23
+ from camel.models._utils import try_modify_message_with_format
23
24
  from camel.models.openai_compatible_model import OpenAICompatibleModel
24
25
  from camel.types import (
25
26
  ChatCompletion,
@@ -106,6 +107,38 @@ class MoonshotModel(OpenAICompatibleModel):
106
107
  **kwargs,
107
108
  )
108
109
 
110
+ def _prepare_request(
111
+ self,
112
+ messages: List[OpenAIMessage],
113
+ response_format: Optional[Type[BaseModel]] = None,
114
+ tools: Optional[List[Dict[str, Any]]] = None,
115
+ ) -> Dict[str, Any]:
116
+ r"""Prepare the request configuration for Moonshot API.
117
+
118
+ Args:
119
+ messages (List[OpenAIMessage]): Message list with the chat history
120
+ in OpenAI API format.
121
+ response_format (Optional[Type[BaseModel]]): The format of the
122
+ response.
123
+ tools (Optional[List[Dict[str, Any]]]): The schema of the tools to
124
+ use for the request.
125
+
126
+ Returns:
127
+ Dict[str, Any]: The prepared request configuration.
128
+ """
129
+ import copy
130
+
131
+ request_config = copy.deepcopy(self.model_config_dict)
132
+
133
+ if tools:
134
+ request_config["tools"] = tools
135
+ elif response_format:
136
+ # Use the same approach as DeepSeek for structured output
137
+ try_modify_message_with_format(messages[-1], response_format)
138
+ request_config["response_format"] = {"type": "json_object"}
139
+
140
+ return request_config
141
+
109
142
  @observe()
110
143
  async def _arun(
111
144
  self,
@@ -141,10 +174,9 @@ class MoonshotModel(OpenAICompatibleModel):
141
174
  tags=["CAMEL-AI", str(self.model_type)],
142
175
  )
143
176
 
144
- request_config = self.model_config_dict.copy()
145
-
146
- if tools:
147
- request_config["tools"] = tools
177
+ request_config = self._prepare_request(
178
+ messages, response_format, tools
179
+ )
148
180
 
149
181
  return await self._async_client.chat.completions.create(
150
182
  messages=messages,
@@ -147,7 +147,7 @@ Here is the content of the parent task for you to refer to:
147
147
  Here are results of some prerequisite tasks that you can refer to:
148
148
 
149
149
  ==============================
150
- {dependency_task_info}
150
+ {dependency_tasks_info}
151
151
  ==============================
152
152
 
153
153
  Here are some additional information about the task:
@@ -122,7 +122,7 @@ class RolePlayingWorker(Worker):
122
122
  prompt = ROLEPLAY_PROCESS_TASK_PROMPT.format(
123
123
  content=task.content,
124
124
  parent_task_content=task.parent.content if task.parent else "",
125
- dependency_task_info=dependency_tasks_info,
125
+ dependency_tasks_info=dependency_tasks_info,
126
126
  additional_info=task.additional_info,
127
127
  )
128
128
  role_play_session = RolePlaying(
@@ -89,7 +89,7 @@ class Worker(BaseNode, ABC):
89
89
  )
90
90
 
91
91
  # Process the task
92
- task_state = await self._process_task(task, [])
92
+ task_state = await self._process_task(task, task.dependencies)
93
93
 
94
94
  # Update the result and status of the task
95
95
  task.set_state(task_state)
@@ -1008,7 +1008,7 @@ class Workforce(BaseNode):
1008
1008
  if not validate_task_content(new_content, task_id):
1009
1009
  logger.warning(
1010
1010
  f"Task {task_id} content modification rejected: "
1011
- f"Invalid content. Content preview: '{new_content[:50]}...'"
1011
+ f"Invalid content. Content preview: '{new_content}'"
1012
1012
  )
1013
1013
  return False
1014
1014
 
@@ -1194,7 +1194,7 @@ class Workforce(BaseNode):
1194
1194
  task.result = "Task failed: Invalid or empty content provided"
1195
1195
  logger.warning(
1196
1196
  f"Task {task.id} rejected: Invalid or empty content. "
1197
- f"Content preview: '{task.content[:50]}...'"
1197
+ f"Content preview: '{task.content}'"
1198
1198
  )
1199
1199
  return task
1200
1200
 
@@ -1327,7 +1327,7 @@ class Workforce(BaseNode):
1327
1327
  task.result = "Task failed: Invalid or empty content provided"
1328
1328
  logger.warning(
1329
1329
  f"Task {task.id} rejected: Invalid or empty content. "
1330
- f"Content preview: '{task.content[:50]}...'"
1330
+ f"Content preview: '{task.content}'"
1331
1331
  )
1332
1332
  return task
1333
1333
 
@@ -1721,23 +1721,51 @@ class Workforce(BaseNode):
1721
1721
 
1722
1722
  def _get_child_nodes_info(self) -> str:
1723
1723
  r"""Get the information of all the child nodes under this node."""
1724
- info = ""
1725
- for child in self._children:
1726
- if isinstance(child, Workforce):
1727
- additional_info = "A Workforce node"
1728
- elif isinstance(child, SingleAgentWorker):
1729
- additional_info = "tools: " + (
1730
- ", ".join(child.worker.tool_dict.keys())
1731
- )
1732
- elif isinstance(child, RolePlayingWorker):
1733
- additional_info = "A Role playing node"
1724
+ return "".join(
1725
+ f"<{child.node_id}>:<{child.description}>:<{self._get_node_info(child)}>\n"
1726
+ for child in self._children
1727
+ )
1728
+
1729
+ def _get_node_info(self, node) -> str:
1730
+ r"""Get descriptive information for a specific node type."""
1731
+ if isinstance(node, Workforce):
1732
+ return "A Workforce node"
1733
+ elif isinstance(node, SingleAgentWorker):
1734
+ return self._get_single_agent_info(node)
1735
+ elif isinstance(node, RolePlayingWorker):
1736
+ return "A Role playing node"
1737
+ else:
1738
+ return "Unknown node"
1739
+
1740
+ def _get_single_agent_info(self, worker: 'SingleAgentWorker') -> str:
1741
+ r"""Get formatted information for a SingleAgentWorker node."""
1742
+ toolkit_tools = self._group_tools_by_toolkit(worker.worker.tool_dict)
1743
+
1744
+ if not toolkit_tools:
1745
+ return "no tools available"
1746
+
1747
+ toolkit_info = []
1748
+ for toolkit_name, tools in sorted(toolkit_tools.items()):
1749
+ tools_str = ', '.join(sorted(tools))
1750
+ toolkit_info.append(f"{toolkit_name}({tools_str})")
1751
+
1752
+ return " | ".join(toolkit_info)
1753
+
1754
+ def _group_tools_by_toolkit(self, tool_dict: dict) -> dict[str, list[str]]:
1755
+ r"""Group tools by their parent toolkit class names."""
1756
+ toolkit_tools: dict[str, list[str]] = {}
1757
+
1758
+ for tool_name, tool in tool_dict.items():
1759
+ if hasattr(tool.func, '__self__'):
1760
+ toolkit_name = tool.func.__self__.__class__.__name__
1734
1761
  else:
1735
- additional_info = "Unknown node"
1736
- info += (
1737
- f"<{child.node_id}>:<{child.description}>:<"
1738
- f"{additional_info}>\n"
1739
- )
1740
- return info
1762
+ toolkit_name = "Standalone"
1763
+
1764
+ if toolkit_name not in toolkit_tools:
1765
+ toolkit_tools[toolkit_name] = []
1766
+ toolkit_tools[toolkit_name].append(tool_name)
1767
+
1768
+ return toolkit_tools
1741
1769
 
1742
1770
  def _get_valid_worker_ids(self) -> set:
1743
1771
  r"""Get all valid worker IDs from child nodes.
@@ -1853,7 +1881,7 @@ class Workforce(BaseNode):
1853
1881
  logger.error(
1854
1882
  f"JSON parsing error in task assignment: Invalid response "
1855
1883
  f"format - {e}. Response content: "
1856
- f"{response.msg.content[:50]}..."
1884
+ f"{response.msg.content}"
1857
1885
  )
1858
1886
  return TaskAssignResult(assignments=[])
1859
1887
 
@@ -1985,6 +2013,37 @@ class Workforce(BaseNode):
1985
2013
 
1986
2014
  return final_assignments
1987
2015
 
2016
+ def _update_task_dependencies_from_assignments(
2017
+ self, assignments: List[TaskAssignment], tasks: List[Task]
2018
+ ) -> None:
2019
+ r"""Update Task.dependencies with actual Task objects based on
2020
+ assignments.
2021
+
2022
+ Args:
2023
+ assignments (List[TaskAssignment]): The task assignments
2024
+ containing dependency IDs.
2025
+ tasks (List[Task]): The tasks that were assigned.
2026
+ """
2027
+ # Create a lookup map for all available tasks
2028
+ all_tasks = {}
2029
+ for task_list in [self._completed_tasks, self._pending_tasks, tasks]:
2030
+ for task in task_list:
2031
+ all_tasks[task.id] = task
2032
+
2033
+ # Update dependencies for each assigned task
2034
+ for assignment in assignments:
2035
+ if not assignment.dependencies:
2036
+ continue
2037
+
2038
+ matching_tasks = [t for t in tasks if t.id == assignment.task_id]
2039
+ if matching_tasks:
2040
+ task = matching_tasks[0]
2041
+ task.dependencies = [
2042
+ all_tasks[dep_id]
2043
+ for dep_id in assignment.dependencies
2044
+ if dep_id in all_tasks
2045
+ ]
2046
+
1988
2047
  async def _find_assignee(
1989
2048
  self,
1990
2049
  tasks: List[Task],
@@ -2021,19 +2080,24 @@ class Workforce(BaseNode):
2021
2080
 
2022
2081
  # if all assignments are valid and all tasks are assigned, return early
2023
2082
  if not invalid_assignments and not unassigned_tasks:
2083
+ self._update_task_dependencies_from_assignments(
2084
+ valid_assignments, tasks
2085
+ )
2024
2086
  return TaskAssignResult(assignments=valid_assignments)
2025
2087
 
2026
- # handle retry and fallback for
2027
- # invalid assignments and unassigned tasks
2028
- all_problem_assignments = invalid_assignments
2088
+ # handle retry and fallback for invalid assignments and unassigned
2089
+ # tasks
2029
2090
  retry_and_fallback_assignments = (
2030
2091
  await self._handle_assignment_retry_and_fallback(
2031
- all_problem_assignments, tasks, valid_worker_ids
2092
+ invalid_assignments, tasks, valid_worker_ids
2032
2093
  )
2033
2094
  )
2034
- valid_assignments.extend(retry_and_fallback_assignments)
2095
+ all_assignments = valid_assignments + retry_and_fallback_assignments
2096
+
2097
+ # Update Task.dependencies for all final assignments
2098
+ self._update_task_dependencies_from_assignments(all_assignments, tasks)
2035
2099
 
2036
- return TaskAssignResult(assignments=valid_assignments)
2100
+ return TaskAssignResult(assignments=all_assignments)
2037
2101
 
2038
2102
  async def _post_task(self, task: Task, assignee_id: str) -> None:
2039
2103
  # Record the start time when a task is posted
@@ -2107,7 +2171,7 @@ class Workforce(BaseNode):
2107
2171
  )
2108
2172
  new_node_conf = WorkerConf(
2109
2173
  description=f"Fallback worker for task: "
2110
- f"{task.content[:50]}...",
2174
+ f"{task.content}",
2111
2175
  role="General Assistant",
2112
2176
  sys_msg="You are a general assistant that can help "
2113
2177
  "with various tasks.",
@@ -2117,8 +2181,7 @@ class Workforce(BaseNode):
2117
2181
  response.msg.content,
2118
2182
  schema=WorkerConf,
2119
2183
  fallback_values={
2120
- "description": f"Worker for task: "
2121
- f"{task.content[:50]}...",
2184
+ "description": f"Worker for task: " f"{task.content}",
2122
2185
  "role": "Task Specialist",
2123
2186
  "sys_msg": f"You are a specialist for: {task.content}",
2124
2187
  },
@@ -2130,7 +2193,7 @@ class Workforce(BaseNode):
2130
2193
  new_node_conf = WorkerConf(**result)
2131
2194
  else:
2132
2195
  new_node_conf = WorkerConf(
2133
- description=f"Worker for task: {task.content[:50]}...",
2196
+ description=f"Worker for task: {task.content}",
2134
2197
  role="Task Specialist",
2135
2198
  sys_msg=f"You are a specialist for: {task.content}",
2136
2199
  )
@@ -2147,7 +2210,7 @@ class Workforce(BaseNode):
2147
2210
  # Create a fallback worker configuration
2148
2211
  new_node_conf = WorkerConf(
2149
2212
  description=f"Fallback worker for "
2150
- f"task: {task.content[:50]}...",
2213
+ f"task: {task.content}",
2151
2214
  role="General Assistant",
2152
2215
  sys_msg="You are a general assistant that can help "
2153
2216
  "with various tasks.",
@@ -2160,7 +2223,7 @@ class Workforce(BaseNode):
2160
2223
  logger.error(
2161
2224
  f"JSON parsing error in worker creation: Invalid "
2162
2225
  f"response format - {e}. Response content: "
2163
- f"{response.msg.content[:100]}..."
2226
+ f"{response.msg.content}"
2164
2227
  )
2165
2228
  raise RuntimeError(
2166
2229
  f"Failed to create worker for task {task.id}: "
@@ -2364,7 +2427,7 @@ class Workforce(BaseNode):
2364
2427
  f"Task {task.id} has exceeded maximum retry attempts "
2365
2428
  f"({MAX_TASK_RETRIES}). Final failure "
2366
2429
  f"reason: {detailed_error}. "
2367
- f"Task content: '{task.content[:100]}...'"
2430
+ f"Task content: '{task.content}'"
2368
2431
  )
2369
2432
  self._cleanup_task_tracking(task.id)
2370
2433
  # Mark task as completed for dependency tracking before halting
@@ -2793,7 +2856,7 @@ class Workforce(BaseNode):
2793
2856
  # useful results
2794
2857
  if is_task_result_insufficient(returned_task):
2795
2858
  result_preview = (
2796
- returned_task.result[:100] + "..."
2859
+ returned_task.result
2797
2860
  if returned_task.result
2798
2861
  else "No result"
2799
2862
  )
@@ -99,7 +99,7 @@ def validate_task_content(
99
99
  logger.warning(
100
100
  f"Task {task_id}: Content too short ({len(stripped_content)} "
101
101
  f"chars < {min_length} minimum). Content preview: "
102
- f"'{stripped_content[:50]}...'"
102
+ f"'{stripped_content}'"
103
103
  )
104
104
  return False
105
105
 
@@ -124,7 +124,7 @@ def validate_task_content(
124
124
  if any(indicator in content_lower for indicator in failure_indicators):
125
125
  logger.warning(
126
126
  f"Task {task_id}: Failure indicator detected in result. "
127
- f"Content preview: '{stripped_content[:100]}...'"
127
+ f"Content preview: '{stripped_content}'"
128
128
  )
129
129
  return False
130
130
 
@@ -132,7 +132,7 @@ def validate_task_content(
132
132
  if content_lower.startswith(("error", "failed", "cannot", "unable")):
133
133
  logger.warning(
134
134
  f"Task {task_id}: Error/refusal pattern detected at start. "
135
- f"Content preview: '{stripped_content[:100]}...'"
135
+ f"Content preview: '{stripped_content}'"
136
136
  )
137
137
  return False
138
138
 
@@ -195,7 +195,7 @@ def parse_response(
195
195
  logger.warning(
196
196
  f"Skipping invalid subtask {task_id}.{i} "
197
197
  f"during decomposition: "
198
- f"Content '{stripped_content[:50]}...' failed validation"
198
+ f"Content '{stripped_content}' failed validation"
199
199
  )
200
200
  return tasks
201
201
 
@@ -233,6 +233,8 @@ class Task(BaseModel):
233
233
  (default: :obj:`0`)
234
234
  assigned_worker_id (Optional[str]): The ID of the worker assigned to
235
235
  this task. (default: :obj:`None`)
236
+ dependencies (List[Task]): The dependencies for the task.
237
+ (default: :obj:`[]`)
236
238
  additional_info (Optional[Dict[str, Any]]): Additional information for
237
239
  the task. (default: :obj:`None`)
238
240
  image_list (Optional[List[Image.Image]]): Optional list of PIL Image
@@ -265,6 +267,8 @@ class Task(BaseModel):
265
267
 
266
268
  assigned_worker_id: Optional[str] = None
267
269
 
270
+ dependencies: List["Task"] = []
271
+
268
272
  additional_info: Optional[Dict[str, Any]] = None
269
273
 
270
274
  image_list: Optional[List[Image.Image]] = None
@@ -530,7 +534,7 @@ class Task(BaseModel):
530
534
  logger.warning(
531
535
  f"Skipping invalid subtask {task_id}.{i} "
532
536
  f"during streaming decomposition: "
533
- f"Content '{stripped_content[:50]}...' failed validation"
537
+ f"Content '{stripped_content}' failed validation"
534
538
  )
535
539
  return tasks
536
540