camel-ai 0.2.71a9__tar.gz → 0.2.71a11__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.
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/PKG-INFO +3 -3
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/__init__.py +1 -1
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/cohere_model.py +4 -1
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/moonshot_model.py +54 -1
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/societies/workforce/prompts.py +40 -16
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/societies/workforce/worker.py +1 -7
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/societies/workforce/workforce.py +2 -2
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/function_tool.py +13 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py +165 -218
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/hybrid_browser_toolkit/unified_analyzer.js +3 -3
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/search_toolkit.py +44 -14
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/slack_toolkit.py +10 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/types/enums.py +3 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/pyproject.toml +6 -3
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/.gitignore +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/LICENSE +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/README.md +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/_types.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/_utils.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/chat_agent.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/critic_agent.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/deductive_reasoner_agent.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/embodied_agent.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/knowledge_graph_agent.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/mcp_agent.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/multi_hop_generator_agent.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/programmed_agent_instruction.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/repo_agent.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/role_assignment_agent.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/search_agent.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/task_agent.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/tool_agents/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/tool_agents/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/agents/tool_agents/hugging_face_tool_agent.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/benchmarks/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/benchmarks/apibank.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/benchmarks/apibench.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/benchmarks/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/benchmarks/browsecomp.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/benchmarks/gaia.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/benchmarks/mock_website/README.md +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/benchmarks/mock_website/mock_web.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/benchmarks/mock_website/requirements.txt +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/benchmarks/mock_website/shopping_mall/app.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/benchmarks/mock_website/task.json +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/benchmarks/nexus.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/benchmarks/ragbench.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/bots/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/bots/discord/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/bots/discord/discord_app.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/bots/discord/discord_installation.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/bots/discord/discord_store.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/bots/slack/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/bots/slack/models.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/bots/slack/slack_app.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/bots/telegram_bot.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/aiml_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/anthropic_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/base_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/bedrock_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/cohere_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/crynux_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/deepseek_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/gemini_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/groq_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/internlm_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/litellm_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/lmstudio_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/mistral_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/modelscope_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/moonshot_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/netmind_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/novita_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/nvidia_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/ollama_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/openai_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/openrouter_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/ppio_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/qianfan_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/qwen_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/reka_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/samba_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/sglang_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/siliconflow_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/togetherai_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/vllm_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/watsonx_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/yi_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/configs/zhipuai_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/data_collectors/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/data_collectors/alpaca_collector.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/data_collectors/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/data_collectors/sharegpt_collector.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/cot_datagen.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/evol_instruct/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/evol_instruct/evol_instruct.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/evol_instruct/scorer.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/evol_instruct/templates.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/self_improving_cot.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/self_instruct/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/self_instruct/filter/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/self_instruct/filter/filter_function.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/self_instruct/filter/filter_registry.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/self_instruct/filter/instruction_filter.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/self_instruct/self_instruct.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/self_instruct/templates.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/source2synth/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/source2synth/data_processor.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/source2synth/models.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datagen/source2synth/user_data_processor_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datahubs/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datahubs/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datahubs/huggingface.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datahubs/models.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datasets/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datasets/base_generator.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datasets/few_shot_generator.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datasets/models.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datasets/self_instruct_generator.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/datasets/static_dataset.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/embeddings/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/embeddings/azure_embedding.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/embeddings/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/embeddings/gemini_embedding.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/embeddings/jina_embedding.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/embeddings/mistral_embedding.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/embeddings/openai_compatible_embedding.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/embeddings/openai_embedding.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/embeddings/sentence_transformers_embeddings.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/embeddings/together_embedding.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/embeddings/vlm_embedding.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/environments/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/environments/models.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/environments/multi_step.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/environments/rlcards_env.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/environments/single_step.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/environments/tic_tac_toe.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/extractors/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/extractors/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/extractors/python_strategies.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/generators.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/human.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/interpreters/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/interpreters/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/interpreters/docker/Dockerfile +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/interpreters/docker_interpreter.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/interpreters/e2b_interpreter.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/interpreters/internal_python_interpreter.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/interpreters/interpreter_error.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/interpreters/ipython_interpreter.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/interpreters/subprocess_interpreter.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/loaders/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/loaders/apify_reader.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/loaders/base_io.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/loaders/base_loader.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/loaders/chunkr_reader.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/loaders/crawl4ai_reader.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/loaders/firecrawl_reader.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/loaders/jina_url_reader.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/loaders/markitdown.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/loaders/mineru_extractor.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/loaders/mistral_reader.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/loaders/pandas_reader.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/loaders/scrapegraph_reader.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/loaders/unstructured_io.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/logger.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/memories/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/memories/agent_memories.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/memories/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/memories/blocks/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/memories/blocks/chat_history_block.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/memories/blocks/vectordb_block.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/memories/context_creators/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/memories/context_creators/score_based.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/memories/records.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/messages/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/messages/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/messages/conversion/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/messages/conversion/alpaca.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/messages/conversion/conversation_models.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/messages/conversion/sharegpt/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/messages/conversion/sharegpt/function_call_formatter.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/messages/conversion/sharegpt/hermes/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/messages/func_message.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/_utils.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/aiml_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/anthropic_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/aws_bedrock_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/azure_openai_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/base_audio_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/base_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/crynux_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/deepseek_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/fish_audio_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/gemini_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/groq_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/internlm_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/litellm_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/lmstudio_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/mistral_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/model_factory.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/model_manager.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/modelscope_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/nemotron_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/netmind_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/novita_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/nvidia_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/ollama_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/openai_audio_models.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/openai_compatible_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/openai_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/openrouter_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/ppio_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/qianfan_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/qwen_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/reka_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/reward/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/reward/base_reward_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/reward/evaluator.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/reward/nemotron_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/reward/skywork_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/samba_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/sglang_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/siliconflow_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/stub_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/togetherai_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/vllm_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/volcano_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/watsonx_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/yi_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/models/zhipuai_model.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/personas/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/personas/persona.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/personas/persona_hub.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/ai_society.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/code.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/evaluation.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/generate_text_embedding_data.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/image_craft.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/misalignment.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/multi_condition_image_craft.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/object_recognition.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/persona_hub.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/prompt_templates.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/role_description_prompt_template.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/solution_extraction.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/task_prompt_template.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/translation.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/prompts/video_description_prompt.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/py.typed +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/responses/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/responses/agent_responses.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/retrievers/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/retrievers/auto_retriever.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/retrievers/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/retrievers/bm25_retriever.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/retrievers/cohere_rerank_retriever.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/retrievers/hybrid_retrival.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/retrievers/vector_retriever.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/runtimes/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/runtimes/api.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/runtimes/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/runtimes/configs.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/runtimes/daytona_runtime.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/runtimes/docker_runtime.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/runtimes/llm_guard_runtime.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/runtimes/remote_http_runtime.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/runtimes/ubuntu_docker_runtime.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/runtimes/utils/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/runtimes/utils/function_risk_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/runtimes/utils/ignore_risk_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/schemas/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/schemas/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/schemas/openai_converter.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/schemas/outlines_converter.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/services/agent_openapi_server.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/societies/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/societies/babyagi_playing.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/societies/role_playing.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/societies/workforce/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/societies/workforce/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/societies/workforce/role_playing_worker.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/societies/workforce/single_agent_worker.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/societies/workforce/structured_output_handler.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/societies/workforce/task_channel.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/societies/workforce/utils.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/societies/workforce/workforce_logger.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/graph_storages/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/graph_storages/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/graph_storages/graph_element.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/graph_storages/nebula_graph.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/graph_storages/neo4j_graph.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/key_value_storages/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/key_value_storages/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/key_value_storages/in_memory.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/key_value_storages/json.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/key_value_storages/mem0_cloud.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/key_value_storages/redis.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/object_storages/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/object_storages/amazon_s3.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/object_storages/azure_blob.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/object_storages/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/object_storages/google_cloud.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/vectordb_storages/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/vectordb_storages/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/vectordb_storages/chroma.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/vectordb_storages/faiss.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/vectordb_storages/milvus.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/vectordb_storages/oceanbase.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/vectordb_storages/pgvector.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/vectordb_storages/qdrant.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/vectordb_storages/tidb.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/storages/vectordb_storages/weaviate.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/tasks/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/tasks/task.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/tasks/task_prompt.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/terminators/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/terminators/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/terminators/response_terminator.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/terminators/token_limit_terminator.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/aci_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/arxiv_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/ask_news_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/async_browser_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/audio_analysis_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/bohrium_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/browser_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/browser_toolkit_commons.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/code_execution.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/craw4ai_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/dappier_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/data_commons_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/edgeone_pages_mcp_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/excel_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/file_write_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/github_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/google_calendar_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/google_drive_mcp_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/google_maps_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/google_scholar_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/human_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/hybrid_browser_toolkit/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/hybrid_browser_toolkit/actions.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/hybrid_browser_toolkit/agent.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/hybrid_browser_toolkit/browser_session.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/hybrid_browser_toolkit/config_loader.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/hybrid_browser_toolkit/snapshot.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/hybrid_browser_toolkit/stealth_script.js +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/image_analysis_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/jina_reranker_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/klavis_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/linkedin_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/markitdown_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/math_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/mcp_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/memory_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/meshy_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/message_agent_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/mineru_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/networkx_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/note_taking_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/notion_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/biztoc/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/biztoc/ai-plugin.json +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/biztoc/openapi.yaml +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/coursera/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/coursera/openapi.yaml +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/create_qr_code/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/create_qr_code/openapi.yaml +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/klarna/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/klarna/openapi.yaml +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/nasa_apod/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/nasa_apod/openapi.yaml +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/outschool/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/outschool/ai-plugin.json +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/outschool/openapi.yaml +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/outschool/paths/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/outschool/paths/get_classes.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/security_config.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/speak/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/speak/openapi.yaml +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/web_scraper/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/web_scraper/openapi.yaml +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/open_api_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/openai_agent_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/openai_image_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/openbb_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/page_script.js +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/playwright_mcp_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/pptx_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/pubmed_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/pulse_mcp_search_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/pyautogui_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/reddit_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/retrieval_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/searxng_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/semantic_scholar_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/stripe_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/sympy_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/task_planning_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/terminal_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/thinking_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/twitter_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/video_analysis_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/video_download_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/weather_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/whatsapp_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/wolfram_alpha_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/toolkits/zapier_toolkit.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/types/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/types/agents/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/types/agents/tool_calling_record.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/types/mcp_registries.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/types/openai_types.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/types/unified_model_type.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/async_func.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/chunker/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/chunker/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/chunker/code_chunker.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/chunker/uio_chunker.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/commons.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/constants.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/deduplication.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/filename.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/langfuse.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/mcp.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/mcp_client.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/message_summarizer.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/response_format.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/token_counting.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/utils/tool_result.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/verifiers/__init__.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/verifiers/base.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/verifiers/math_verifier.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/verifiers/models.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/camel/verifiers/physics_verifier.py +0 -0
- {camel_ai-0.2.71a9 → camel_ai-0.2.71a11}/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.
|
|
3
|
+
Version: 0.2.71a11
|
|
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
|
|
@@ -127,7 +127,7 @@ Requires-Dist: sympy<2,>=1.13.3; extra == 'all'
|
|
|
127
127
|
Requires-Dist: tabulate>=0.9.0; extra == 'all'
|
|
128
128
|
Requires-Dist: tavily-python<0.6,>=0.5.0; extra == 'all'
|
|
129
129
|
Requires-Dist: textblob<0.18,>=0.17.1; extra == 'all'
|
|
130
|
-
Requires-Dist: traceroot==0.0.
|
|
130
|
+
Requires-Dist: traceroot==0.0.3; extra == 'all'
|
|
131
131
|
Requires-Dist: transformers<5,>=4; extra == 'all'
|
|
132
132
|
Requires-Dist: tree-sitter-python<0.24,>=0.23.6; extra == 'all'
|
|
133
133
|
Requires-Dist: tree-sitter<0.24,>=0.23.2; extra == 'all'
|
|
@@ -191,7 +191,7 @@ Requires-Dist: ipykernel<7,>=6.0.0; extra == 'dev-tools'
|
|
|
191
191
|
Requires-Dist: jupyter-client<9,>=8.6.2; extra == 'dev-tools'
|
|
192
192
|
Requires-Dist: langfuse>=2.60.5; extra == 'dev-tools'
|
|
193
193
|
Requires-Dist: mcp>=1.3.0; extra == 'dev-tools'
|
|
194
|
-
Requires-Dist: traceroot==0.0.
|
|
194
|
+
Requires-Dist: traceroot==0.0.3; extra == 'dev-tools'
|
|
195
195
|
Requires-Dist: tree-sitter-python<0.24,>=0.23.6; extra == 'dev-tools'
|
|
196
196
|
Requires-Dist: tree-sitter<0.24,>=0.23.2; extra == 'dev-tools'
|
|
197
197
|
Requires-Dist: typer>=0.15.2; extra == 'dev-tools'
|
|
@@ -21,7 +21,10 @@ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Type, Union
|
|
|
21
21
|
from pydantic import BaseModel
|
|
22
22
|
|
|
23
23
|
if TYPE_CHECKING:
|
|
24
|
-
from cohere.types import
|
|
24
|
+
from cohere.types import ( # type: ignore[attr-defined]
|
|
25
|
+
ChatMessageV2,
|
|
26
|
+
ChatResponse,
|
|
27
|
+
)
|
|
25
28
|
|
|
26
29
|
from camel.configs import COHERE_API_PARAMS, CohereConfig
|
|
27
30
|
from camel.messages import OpenAIMessage
|
|
@@ -29,8 +29,23 @@ from camel.types import (
|
|
|
29
29
|
from camel.utils import (
|
|
30
30
|
BaseTokenCounter,
|
|
31
31
|
api_keys_required,
|
|
32
|
+
get_current_agent_session_id,
|
|
33
|
+
update_langfuse_trace,
|
|
32
34
|
)
|
|
33
35
|
|
|
36
|
+
if os.environ.get("LANGFUSE_ENABLED", "False").lower() == "true":
|
|
37
|
+
try:
|
|
38
|
+
from langfuse.decorators import observe
|
|
39
|
+
except ImportError:
|
|
40
|
+
from camel.utils import observe
|
|
41
|
+
elif os.environ.get("TRACEROOT_ENABLED", "False").lower() == "true":
|
|
42
|
+
try:
|
|
43
|
+
from traceroot import trace as observe # type: ignore[import]
|
|
44
|
+
except ImportError:
|
|
45
|
+
from camel.utils import observe
|
|
46
|
+
else:
|
|
47
|
+
from camel.utils import observe
|
|
48
|
+
|
|
34
49
|
|
|
35
50
|
class MoonshotModel(OpenAICompatibleModel):
|
|
36
51
|
r"""Moonshot API in a unified OpenAICompatibleModel interface.
|
|
@@ -91,13 +106,51 @@ class MoonshotModel(OpenAICompatibleModel):
|
|
|
91
106
|
**kwargs,
|
|
92
107
|
)
|
|
93
108
|
|
|
109
|
+
@observe()
|
|
94
110
|
async def _arun(
|
|
95
111
|
self,
|
|
96
112
|
messages: List[OpenAIMessage],
|
|
97
113
|
response_format: Optional[Type[BaseModel]] = None,
|
|
98
114
|
tools: Optional[List[Dict[str, Any]]] = None,
|
|
99
115
|
) -> Union[ChatCompletion, AsyncStream[ChatCompletionChunk]]:
|
|
100
|
-
|
|
116
|
+
r"""Runs inference of Moonshot chat completion asynchronously.
|
|
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
|
+
Union[ChatCompletion, AsyncStream[ChatCompletionChunk]]:
|
|
128
|
+
`ChatCompletion` in the non-stream mode, or
|
|
129
|
+
`AsyncStream[ChatCompletionChunk]` in the stream mode.
|
|
130
|
+
"""
|
|
131
|
+
|
|
132
|
+
# Update Langfuse trace with current agent session and metadata
|
|
133
|
+
agent_session_id = get_current_agent_session_id()
|
|
134
|
+
if agent_session_id:
|
|
135
|
+
update_langfuse_trace(
|
|
136
|
+
session_id=agent_session_id,
|
|
137
|
+
metadata={
|
|
138
|
+
"agent_id": agent_session_id,
|
|
139
|
+
"model_type": str(self.model_type),
|
|
140
|
+
},
|
|
141
|
+
tags=["CAMEL-AI", str(self.model_type)],
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
request_config = self.model_config_dict.copy()
|
|
145
|
+
|
|
146
|
+
if tools:
|
|
147
|
+
request_config["tools"] = tools
|
|
148
|
+
|
|
149
|
+
return await self._async_client.chat.completions.create(
|
|
150
|
+
messages=messages,
|
|
151
|
+
model=self.model_type,
|
|
152
|
+
**request_config,
|
|
153
|
+
)
|
|
101
154
|
|
|
102
155
|
def check_model_config(self):
|
|
103
156
|
r"""Check whether the model configuration contains any
|
|
@@ -196,7 +196,11 @@ Now you should summarize the scenario and return the result of the task.
|
|
|
196
196
|
"""
|
|
197
197
|
)
|
|
198
198
|
|
|
199
|
-
|
|
199
|
+
TASK_DECOMPOSE_PROMPT = r"""You need to decompose the given task into subtasks according to the workers available in the group, following these important principles to maximize efficiency, parallelism, and clarity for the executing agents:
|
|
200
|
+
|
|
201
|
+
1. **Self-Contained Subtasks**: This is critical principle. Each subtask's description **must be fully self-sufficient and independently understandable**. The agent executing the subtask has **no knowledge** of the parent task, other subtasks, or the overall workflow.
|
|
202
|
+
* **DO NOT** use relative references like "the first task," "the paper mentioned above," or "the result from the previous step."
|
|
203
|
+
* **DO** write explicit instructions. For example, instead of "Analyze the document," write "Analyze the document titled 'The Future of AI'." The system will automatically provide the necessary inputs (like the document itself) from previous steps.
|
|
200
204
|
|
|
201
205
|
1. **Strategic Grouping for Sequential Work**:
|
|
202
206
|
* If a series of steps must be done in order *and* can be handled by the same worker type, group them into a single subtask to maintain flow and minimize handoffs.
|
|
@@ -216,23 +220,42 @@ These principles aim to reduce overall completion time by maximizing concurrent
|
|
|
216
220
|
|
|
217
221
|
**EXAMPLE FORMAT ONLY** (DO NOT use this example content for actual task decomposition):
|
|
218
222
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
* Poor decomposition (monolithic):
|
|
222
|
-
`<tasks><task>Do all research, analysis, and write final report.</task></tasks>`
|
|
223
|
+
***
|
|
224
|
+
**Example 1: Sequential Task for a Single Worker**
|
|
223
225
|
|
|
224
|
-
*
|
|
226
|
+
* **Overall Task**: "Create a short blog post about the benefits of Python. First, research the key benefits. Then, write a 300-word article. Finally, find a suitable image to go with it."
|
|
227
|
+
* **Available Workers**:
|
|
228
|
+
* `Document Agent`: A worker that can research topics, write articles, and find images.
|
|
229
|
+
* **Correct Decomposition**:
|
|
230
|
+
```xml
|
|
231
|
+
<tasks>
|
|
232
|
+
<task>Create a short blog post about the benefits of Python by researching key benefits, writing a 300-word article, and finding a suitable image.</task>
|
|
233
|
+
</tasks>
|
|
225
234
|
```
|
|
235
|
+
* **Reasoning**: All steps are sequential and can be handled by the same worker type (`Document Agent`). Grouping them into one subtask is efficient and maintains the workflow, following the "Strategic Grouping" principle.
|
|
236
|
+
|
|
237
|
+
***
|
|
238
|
+
**Example 2: Parallel Task Across Different Workers**
|
|
239
|
+
|
|
240
|
+
* **Overall Task**: "Write a report on the Q2 performance of Apple (AAPL) and Google (GOOGL). The report needs a financial summary and a market sentiment analysis for each company."
|
|
241
|
+
* **Available Workers**:
|
|
242
|
+
* `financial_analyst_1`: A worker that can analyze financial data and create summaries.
|
|
243
|
+
* `market_researcher_1`: A worker that can perform market sentiment analysis.
|
|
244
|
+
* `report_writer_1`: A worker that compiles information into a final report.
|
|
245
|
+
* **Correct Decomposition**:
|
|
246
|
+
```xml
|
|
226
247
|
<tasks>
|
|
227
|
-
<task>
|
|
228
|
-
<task>
|
|
229
|
-
<task>
|
|
230
|
-
<task>
|
|
231
|
-
<task>
|
|
248
|
+
<task>Create a financial summary for Apple (AAPL) for Q2.</task>
|
|
249
|
+
<task>Create a financial summary for Google (GOOGL) for Q2.</task>
|
|
250
|
+
<task>Perform market sentiment analysis for Apple (AAPL) for Q2.</task>
|
|
251
|
+
<task>Perform market sentiment analysis for Google (GOOGL) for Q2.</task>
|
|
252
|
+
<task>Compile the provided financial summaries and market sentiment analyses for Apple (AAPL) and Google (GOOGL) into a single Q2 performance report.</task>
|
|
232
253
|
</tasks>
|
|
233
254
|
```
|
|
255
|
+
* **Reasoning**: The financial analysis and market research can be done in parallel for both companies. The final report depends on all previous steps. This decomposition leverages worker specialization and parallelism, following the "Aggressive Parallelization" principle.
|
|
256
|
+
***
|
|
234
257
|
|
|
235
|
-
**END OF
|
|
258
|
+
**END OF EXAMPLES** - Now, apply these principles and examples to decompose the following task.
|
|
236
259
|
|
|
237
260
|
The content of the task is:
|
|
238
261
|
|
|
@@ -261,10 +284,11 @@ You must return the subtasks as a list of individual subtasks within <tasks> tag
|
|
|
261
284
|
</tasks>
|
|
262
285
|
|
|
263
286
|
Each subtask should be:
|
|
264
|
-
-
|
|
265
|
-
-
|
|
266
|
-
-
|
|
267
|
-
-
|
|
287
|
+
- **Self-contained and independently understandable.**
|
|
288
|
+
- Clear and concise.
|
|
289
|
+
- Achievable by a single worker.
|
|
290
|
+
- Containing all sequential steps that should be performed by the same worker type.
|
|
291
|
+
- Written without any relative references (e.g., "the previous task").
|
|
268
292
|
"""
|
|
269
293
|
|
|
270
294
|
FAILURE_ANALYSIS_PROMPT = TextPrompt(
|
|
@@ -87,15 +87,9 @@ class Worker(BaseNode, ABC):
|
|
|
87
87
|
f"{Fore.YELLOW}{self} get task {task.id}: {task.content}"
|
|
88
88
|
f"{Fore.RESET}"
|
|
89
89
|
)
|
|
90
|
-
# Get the Task instance of dependencies
|
|
91
|
-
dependency_ids = await self._channel.get_dependency_ids()
|
|
92
|
-
task_dependencies = [
|
|
93
|
-
await self._channel.get_task_by_id(dep_id)
|
|
94
|
-
for dep_id in dependency_ids
|
|
95
|
-
]
|
|
96
90
|
|
|
97
91
|
# Process the task
|
|
98
|
-
task_state = await self._process_task(task,
|
|
92
|
+
task_state = await self._process_task(task, [])
|
|
99
93
|
|
|
100
94
|
# Update the result and status of the task
|
|
101
95
|
task.set_state(task_state)
|
|
@@ -44,7 +44,7 @@ from camel.societies.workforce.prompts import (
|
|
|
44
44
|
ASSIGN_TASK_PROMPT,
|
|
45
45
|
CREATE_NODE_PROMPT,
|
|
46
46
|
FAILURE_ANALYSIS_PROMPT,
|
|
47
|
-
|
|
47
|
+
TASK_DECOMPOSE_PROMPT,
|
|
48
48
|
)
|
|
49
49
|
from camel.societies.workforce.role_playing_worker import RolePlayingWorker
|
|
50
50
|
from camel.societies.workforce.single_agent_worker import SingleAgentWorker
|
|
@@ -730,7 +730,7 @@ class Workforce(BaseNode):
|
|
|
730
730
|
Union[List[Task], Generator[List[Task], None, None]]:
|
|
731
731
|
The subtasks or generator of subtasks.
|
|
732
732
|
"""
|
|
733
|
-
decompose_prompt =
|
|
733
|
+
decompose_prompt = TASK_DECOMPOSE_PROMPT.format(
|
|
734
734
|
content=task.content,
|
|
735
735
|
child_nodes_info=self._get_child_nodes_info(),
|
|
736
736
|
additional_info=task.additional_info,
|
|
@@ -256,11 +256,24 @@ def sanitize_and_enforce_required(parameters_dict):
|
|
|
256
256
|
# This field is optional - add null to its type
|
|
257
257
|
current_type = field_schema.get('type')
|
|
258
258
|
has_ref = '$ref' in field_schema
|
|
259
|
+
has_any_of = 'anyOf' in field_schema
|
|
259
260
|
|
|
260
261
|
if has_ref:
|
|
261
262
|
# Fields with $ref shouldn't have additional type field
|
|
262
263
|
# The $ref itself defines the type structure
|
|
263
264
|
pass
|
|
265
|
+
elif has_any_of:
|
|
266
|
+
# Field already has anyOf
|
|
267
|
+
any_of_types = field_schema['anyOf']
|
|
268
|
+
has_null_type = any(
|
|
269
|
+
item.get('type') == 'null' for item in any_of_types
|
|
270
|
+
)
|
|
271
|
+
if not has_null_type:
|
|
272
|
+
# Add null type to anyOf
|
|
273
|
+
field_schema['anyOf'].append({'type': 'null'})
|
|
274
|
+
# Remove conflicting type field if it exists
|
|
275
|
+
if 'type' in field_schema:
|
|
276
|
+
del field_schema['type']
|
|
264
277
|
elif current_type:
|
|
265
278
|
if isinstance(current_type, str):
|
|
266
279
|
# Single type - convert to array with null
|