camel-ai 0.2.73a1__tar.gz → 0.2.73a2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of camel-ai might be problematic. Click here for more details.
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/PKG-INFO +1 -1
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/__init__.py +1 -1
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/chat_agent.py +26 -1
- camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py +177 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js +46 -2
- camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/__init__.py +17 -0
- camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/actions.py +417 -0
- camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/agent.py +311 -0
- camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/browser_session.py +740 -0
- camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/config_loader.py +447 -0
- camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py +1994 -0
- camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/snapshot.py +227 -0
- camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/stealth_script.js +0 -0
- camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit_py/unified_analyzer.js +1002 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/slack_toolkit.py +38 -48
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/pyproject.toml +1 -1
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/.gitignore +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/LICENSE +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/README.md +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/_types.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/_utils.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/critic_agent.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/deductive_reasoner_agent.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/embodied_agent.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/knowledge_graph_agent.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/mcp_agent.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/multi_hop_generator_agent.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/programmed_agent_instruction.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/repo_agent.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/role_assignment_agent.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/search_agent.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/task_agent.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/tool_agents/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/tool_agents/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/agents/tool_agents/hugging_face_tool_agent.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/apibank.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/apibench.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/browsecomp.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/gaia.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/mock_website/README.md +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/mock_website/mock_web.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/mock_website/requirements.txt +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/mock_website/shopping_mall/app.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/mock_website/task.json +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/nexus.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/benchmarks/ragbench.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/discord/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/discord/discord_app.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/discord/discord_installation.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/discord/discord_store.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/slack/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/slack/models.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/slack/slack_app.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/bots/telegram_bot.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/aiml_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/anthropic_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/base_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/bedrock_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/cohere_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/crynux_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/deepseek_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/gemini_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/groq_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/internlm_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/litellm_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/lmstudio_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/mistral_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/modelscope_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/moonshot_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/netmind_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/novita_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/nvidia_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/ollama_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/openai_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/openrouter_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/ppio_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/qianfan_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/qwen_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/reka_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/samba_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/sglang_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/siliconflow_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/togetherai_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/vllm_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/watsonx_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/yi_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/configs/zhipuai_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/data_collectors/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/data_collectors/alpaca_collector.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/data_collectors/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/data_collectors/sharegpt_collector.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/cot_datagen.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/evol_instruct/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/evol_instruct/evol_instruct.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/evol_instruct/scorer.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/evol_instruct/templates.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_improving_cot.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_instruct/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_instruct/filter/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_instruct/filter/filter_function.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_instruct/filter/filter_registry.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_instruct/filter/instruction_filter.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_instruct/self_instruct.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/self_instruct/templates.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/source2synth/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/source2synth/data_processor.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/source2synth/models.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datagen/source2synth/user_data_processor_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datahubs/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datahubs/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datahubs/huggingface.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datahubs/models.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datasets/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datasets/base_generator.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datasets/few_shot_generator.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datasets/models.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datasets/self_instruct_generator.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/datasets/static_dataset.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/azure_embedding.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/gemini_embedding.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/jina_embedding.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/mistral_embedding.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/openai_compatible_embedding.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/openai_embedding.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/sentence_transformers_embeddings.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/together_embedding.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/embeddings/vlm_embedding.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/environments/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/environments/models.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/environments/multi_step.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/environments/rlcards_env.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/environments/single_step.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/environments/tic_tac_toe.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/extractors/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/extractors/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/extractors/python_strategies.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/generators.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/human.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/docker/Dockerfile +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/docker_interpreter.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/e2b_interpreter.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/internal_python_interpreter.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/interpreter_error.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/ipython_interpreter.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/interpreters/subprocess_interpreter.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/apify_reader.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/base_io.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/base_loader.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/chunkr_reader.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/crawl4ai_reader.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/firecrawl_reader.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/jina_url_reader.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/markitdown.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/mineru_extractor.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/mistral_reader.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/pandas_reader.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/scrapegraph_reader.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/loaders/unstructured_io.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/logger.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/agent_memories.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/blocks/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/blocks/chat_history_block.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/blocks/vectordb_block.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/context_creators/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/context_creators/score_based.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/memories/records.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/conversion/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/conversion/alpaca.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/conversion/conversation_models.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/conversion/sharegpt/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/conversion/sharegpt/function_call_formatter.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/conversion/sharegpt/hermes/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/messages/func_message.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/_utils.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/aiml_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/anthropic_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/aws_bedrock_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/azure_openai_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/base_audio_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/base_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/cohere_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/crynux_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/deepseek_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/fish_audio_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/gemini_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/groq_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/internlm_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/litellm_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/lmstudio_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/mistral_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/model_factory.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/model_manager.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/modelscope_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/moonshot_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/nemotron_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/netmind_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/novita_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/nvidia_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/ollama_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/openai_audio_models.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/openai_compatible_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/openai_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/openrouter_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/ppio_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/qianfan_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/qwen_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/reka_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/reward/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/reward/base_reward_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/reward/evaluator.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/reward/nemotron_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/reward/skywork_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/samba_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/sglang_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/siliconflow_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/stub_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/togetherai_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/vllm_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/volcano_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/watsonx_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/yi_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/models/zhipuai_model.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/personas/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/personas/persona.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/personas/persona_hub.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/ai_society.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/code.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/evaluation.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/generate_text_embedding_data.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/image_craft.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/misalignment.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/multi_condition_image_craft.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/object_recognition.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/persona_hub.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/prompt_templates.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/role_description_prompt_template.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/solution_extraction.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/task_prompt_template.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/translation.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/prompts/video_description_prompt.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/py.typed +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/responses/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/responses/agent_responses.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/retrievers/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/retrievers/auto_retriever.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/retrievers/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/retrievers/bm25_retriever.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/retrievers/cohere_rerank_retriever.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/retrievers/hybrid_retrival.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/retrievers/vector_retriever.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/api.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/configs.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/daytona_runtime.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/docker_runtime.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/llm_guard_runtime.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/remote_http_runtime.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/ubuntu_docker_runtime.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/utils/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/utils/function_risk_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/runtimes/utils/ignore_risk_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/schemas/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/schemas/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/schemas/openai_converter.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/schemas/outlines_converter.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/services/agent_openapi_server.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/babyagi_playing.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/role_playing.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/prompts.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/role_playing_worker.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/single_agent_worker.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/structured_output_handler.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/task_channel.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/utils.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/worker.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/workforce.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/societies/workforce/workforce_logger.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/graph_storages/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/graph_storages/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/graph_storages/graph_element.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/graph_storages/nebula_graph.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/graph_storages/neo4j_graph.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/key_value_storages/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/key_value_storages/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/key_value_storages/in_memory.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/key_value_storages/json.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/key_value_storages/mem0_cloud.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/key_value_storages/redis.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/object_storages/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/object_storages/amazon_s3.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/object_storages/azure_blob.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/object_storages/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/object_storages/google_cloud.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/chroma.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/faiss.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/milvus.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/oceanbase.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/pgvector.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/qdrant.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/surreal.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/tidb.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/storages/vectordb_storages/weaviate.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/tasks/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/tasks/task.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/tasks/task_prompt.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/terminators/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/terminators/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/terminators/response_terminator.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/terminators/token_limit_terminator.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/aci_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/arxiv_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/ask_news_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/async_browser_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/audio_analysis_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/bohrium_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/browser_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/browser_toolkit_commons.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/code_execution.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/craw4ai_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/dappier_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/data_commons_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/edgeone_pages_mcp_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/excel_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/file_write_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/function_tool.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/github_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/google_calendar_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/google_drive_mcp_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/google_maps_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/google_scholar_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/human_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/config_loader.py +0 -0
- /camel_ai-0.2.73a1/camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py → /camel_ai-0.2.73a2/camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/package-lock.json +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/package.json +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/browser-scripts.js +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/index.ts +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/tsconfig.json +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/image_analysis_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/jina_reranker_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/klavis_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/linkedin_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/markitdown_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/math_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/mcp_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/memory_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/meshy_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/message_agent_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/message_integration.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/mineru_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/networkx_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/note_taking_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/notion_mcp_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/notion_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/biztoc/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/biztoc/ai-plugin.json +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/biztoc/openapi.yaml +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/coursera/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/coursera/openapi.yaml +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/create_qr_code/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/create_qr_code/openapi.yaml +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/klarna/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/klarna/openapi.yaml +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/nasa_apod/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/nasa_apod/openapi.yaml +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/outschool/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/outschool/ai-plugin.json +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/outschool/openapi.yaml +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/outschool/paths/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/outschool/paths/get_classes.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/security_config.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/speak/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/speak/openapi.yaml +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/web_scraper/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/web_scraper/openapi.yaml +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/open_api_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/openai_agent_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/openai_image_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/openbb_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/origene_mcp_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/page_script.js +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/playwright_mcp_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/pptx_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/pubmed_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/pulse_mcp_search_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/pyautogui_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/reddit_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/retrieval_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/screenshot_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/search_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/searxng_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/semantic_scholar_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/stripe_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/sympy_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/task_planning_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/terminal_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/thinking_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/twitter_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/video_analysis_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/video_download_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/weather_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/web_deploy_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/whatsapp_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/wolfram_alpha_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/zapier_toolkit.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/types/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/types/agents/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/types/agents/tool_calling_record.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/types/enums.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/types/mcp_registries.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/types/openai_types.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/types/unified_model_type.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/async_func.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/chunker/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/chunker/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/chunker/code_chunker.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/chunker/uio_chunker.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/commons.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/constants.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/deduplication.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/filename.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/langfuse.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/mcp.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/mcp_client.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/message_summarizer.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/response_format.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/token_counting.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/utils/tool_result.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/verifiers/__init__.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/verifiers/base.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/verifiers/math_verifier.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/verifiers/models.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/verifiers/physics_verifier.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/verifiers/python_verifier.py +0 -0
- {camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/hatch_build_npm.py +0 -0
|
@@ -2929,7 +2929,32 @@ class ChatAgent(BaseAgent):
|
|
|
2929
2929
|
if function_name in self._internal_tools:
|
|
2930
2930
|
tool = self._internal_tools[function_name]
|
|
2931
2931
|
try:
|
|
2932
|
-
|
|
2932
|
+
# Try different invocation paths in order of preference
|
|
2933
|
+
if hasattr(tool, 'func') and hasattr(
|
|
2934
|
+
tool.func, 'async_call'
|
|
2935
|
+
):
|
|
2936
|
+
# Case: FunctionTool wrapping an MCP tool
|
|
2937
|
+
result = await tool.func.async_call(**args)
|
|
2938
|
+
|
|
2939
|
+
elif hasattr(tool, 'async_call') and callable(
|
|
2940
|
+
tool.async_call
|
|
2941
|
+
):
|
|
2942
|
+
# Case: tool itself has async_call
|
|
2943
|
+
result = await tool.async_call(**args)
|
|
2944
|
+
|
|
2945
|
+
elif hasattr(tool, 'func') and asyncio.iscoroutinefunction(
|
|
2946
|
+
tool.func
|
|
2947
|
+
):
|
|
2948
|
+
# Case: tool wraps a direct async function
|
|
2949
|
+
result = await tool.func(**args)
|
|
2950
|
+
|
|
2951
|
+
elif asyncio.iscoroutinefunction(tool):
|
|
2952
|
+
# Case: tool is itself a coroutine function
|
|
2953
|
+
result = await tool(**args)
|
|
2954
|
+
|
|
2955
|
+
else:
|
|
2956
|
+
# Fallback: synchronous call
|
|
2957
|
+
result = tool(**args)
|
|
2933
2958
|
|
|
2934
2959
|
# Only record the tool response message, not the assistant
|
|
2935
2960
|
# message assistant message with tool_calls was already
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
# you may not use this file except in compliance with the License.
|
|
4
|
+
# You may obtain a copy of the License at
|
|
5
|
+
#
|
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
#
|
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
# See the License for the specific language governing permissions and
|
|
12
|
+
# limitations under the License.
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
|
+
|
|
15
|
+
from typing import Any, List, Literal, Optional
|
|
16
|
+
|
|
17
|
+
from camel.models import BaseModelBackend
|
|
18
|
+
from camel.toolkits.base import BaseToolkit
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class HybridBrowserToolkit(BaseToolkit):
|
|
22
|
+
r"""A hybrid browser toolkit that can switch between TypeScript and Python
|
|
23
|
+
implementations.
|
|
24
|
+
|
|
25
|
+
This wrapper allows users to choose between:
|
|
26
|
+
- 'typescript': WebSocket-based implementation using TypeScript/Node.js
|
|
27
|
+
- 'python': Pure Python implementation using Playwright directly
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
def __new__(
|
|
31
|
+
cls,
|
|
32
|
+
*,
|
|
33
|
+
mode: Literal["typescript", "python"] = "typescript",
|
|
34
|
+
headless: bool = True,
|
|
35
|
+
user_data_dir: Optional[str] = None,
|
|
36
|
+
stealth: bool = False,
|
|
37
|
+
web_agent_model: Optional[BaseModelBackend] = None,
|
|
38
|
+
cache_dir: str = "tmp/",
|
|
39
|
+
enabled_tools: Optional[List[str]] = None,
|
|
40
|
+
browser_log_to_file: bool = False,
|
|
41
|
+
session_id: Optional[str] = None,
|
|
42
|
+
default_start_url: str = "https://google.com/",
|
|
43
|
+
default_timeout: Optional[int] = None,
|
|
44
|
+
short_timeout: Optional[int] = None,
|
|
45
|
+
navigation_timeout: Optional[int] = None,
|
|
46
|
+
network_idle_timeout: Optional[int] = None,
|
|
47
|
+
screenshot_timeout: Optional[int] = None,
|
|
48
|
+
page_stability_timeout: Optional[int] = None,
|
|
49
|
+
dom_content_loaded_timeout: Optional[int] = None,
|
|
50
|
+
viewport_limit: bool = False,
|
|
51
|
+
connect_over_cdp: bool = False,
|
|
52
|
+
cdp_url: Optional[str] = None,
|
|
53
|
+
**kwargs: Any,
|
|
54
|
+
) -> Any:
|
|
55
|
+
r"""Create a HybridBrowserToolkit instance with the specified mode.
|
|
56
|
+
|
|
57
|
+
Args:
|
|
58
|
+
mode (Literal["typescript", "python"]): Implementation mode.
|
|
59
|
+
- 'typescript': Uses WebSocket-based TypeScript implementation
|
|
60
|
+
- 'python': Uses pure Python Playwright implementation
|
|
61
|
+
Defaults to "typescript".
|
|
62
|
+
headless (bool): Whether to run browser in headless mode.
|
|
63
|
+
Defaults to True.
|
|
64
|
+
user_data_dir (Optional[str]): Directory for user data
|
|
65
|
+
persistence. Defaults to None.
|
|
66
|
+
stealth (bool): Whether to enable stealth mode. Defaults to
|
|
67
|
+
False.
|
|
68
|
+
web_agent_model (Optional[BaseModelBackend]): Model for web
|
|
69
|
+
agent operations. Defaults to None.
|
|
70
|
+
cache_dir (str): Directory for caching. Defaults to "tmp/".
|
|
71
|
+
enabled_tools (Optional[List[str]]): List of enabled tools.
|
|
72
|
+
Defaults to None.
|
|
73
|
+
browser_log_to_file (bool): Whether to log browser actions to
|
|
74
|
+
file. Defaults to False.
|
|
75
|
+
session_id (Optional[str]): Session identifier. Defaults to None.
|
|
76
|
+
default_start_url (str): Default URL to start with. Defaults
|
|
77
|
+
to "https://google.com/".
|
|
78
|
+
default_timeout (Optional[int]): Default timeout in
|
|
79
|
+
milliseconds. Defaults to None.
|
|
80
|
+
short_timeout (Optional[int]): Short timeout in milliseconds.
|
|
81
|
+
Defaults to None.
|
|
82
|
+
navigation_timeout (Optional[int]): Navigation timeout in
|
|
83
|
+
milliseconds. Defaults to None.
|
|
84
|
+
network_idle_timeout (Optional[int]): Network idle timeout in
|
|
85
|
+
milliseconds. Defaults to None.
|
|
86
|
+
screenshot_timeout (Optional[int]): Screenshot timeout in
|
|
87
|
+
milliseconds. Defaults to None.
|
|
88
|
+
page_stability_timeout (Optional[int]): Page stability timeout
|
|
89
|
+
in milliseconds. Defaults to None.
|
|
90
|
+
dom_content_loaded_timeout (Optional[int]): DOM content loaded
|
|
91
|
+
timeout in milliseconds. Defaults to None.
|
|
92
|
+
viewport_limit (bool): Whether to filter page snapshot
|
|
93
|
+
elements to only those visible in the current viewport.
|
|
94
|
+
Defaults to False.
|
|
95
|
+
connect_over_cdp (bool): Whether to connect to an existing
|
|
96
|
+
browser via Chrome DevTools Protocol. Defaults to False.
|
|
97
|
+
(Only supported in TypeScript mode)
|
|
98
|
+
cdp_url (Optional[str]): WebSocket endpoint URL for CDP
|
|
99
|
+
connection. Required when connect_over_cdp is True.
|
|
100
|
+
Defaults to None. (Only supported in TypeScript mode)
|
|
101
|
+
**kwargs: Additional keyword arguments passed to the
|
|
102
|
+
implementation.
|
|
103
|
+
|
|
104
|
+
Returns:
|
|
105
|
+
HybridBrowserToolkit instance of the specified implementation.
|
|
106
|
+
"""
|
|
107
|
+
if mode == "typescript":
|
|
108
|
+
from .hybrid_browser_toolkit_ts import (
|
|
109
|
+
HybridBrowserToolkit as TSToolkit,
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
return TSToolkit(
|
|
113
|
+
headless=headless,
|
|
114
|
+
user_data_dir=user_data_dir,
|
|
115
|
+
stealth=stealth,
|
|
116
|
+
web_agent_model=web_agent_model,
|
|
117
|
+
cache_dir=cache_dir,
|
|
118
|
+
enabled_tools=enabled_tools,
|
|
119
|
+
browser_log_to_file=browser_log_to_file,
|
|
120
|
+
session_id=session_id,
|
|
121
|
+
default_start_url=default_start_url,
|
|
122
|
+
default_timeout=default_timeout,
|
|
123
|
+
short_timeout=short_timeout,
|
|
124
|
+
navigation_timeout=navigation_timeout,
|
|
125
|
+
network_idle_timeout=network_idle_timeout,
|
|
126
|
+
screenshot_timeout=screenshot_timeout,
|
|
127
|
+
page_stability_timeout=page_stability_timeout,
|
|
128
|
+
dom_content_loaded_timeout=dom_content_loaded_timeout,
|
|
129
|
+
viewport_limit=viewport_limit,
|
|
130
|
+
connect_over_cdp=connect_over_cdp,
|
|
131
|
+
cdp_url=cdp_url,
|
|
132
|
+
**kwargs,
|
|
133
|
+
)
|
|
134
|
+
elif mode == "python":
|
|
135
|
+
from ..hybrid_browser_toolkit_py import (
|
|
136
|
+
HybridBrowserToolkit as PyToolkit,
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
# Note: Python implementation doesn't support CDP connection
|
|
140
|
+
if connect_over_cdp:
|
|
141
|
+
raise ValueError(
|
|
142
|
+
"CDP connection is only supported in TypeScript mode"
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
# Note: Python implementation doesn't support viewport_limit
|
|
146
|
+
if viewport_limit:
|
|
147
|
+
import warnings
|
|
148
|
+
|
|
149
|
+
warnings.warn(
|
|
150
|
+
"viewport_limit is not supported "
|
|
151
|
+
"in Python mode and will be ignored",
|
|
152
|
+
UserWarning,
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
return PyToolkit(
|
|
156
|
+
headless=headless,
|
|
157
|
+
user_data_dir=user_data_dir,
|
|
158
|
+
stealth=stealth,
|
|
159
|
+
web_agent_model=web_agent_model,
|
|
160
|
+
cache_dir=cache_dir,
|
|
161
|
+
enabled_tools=enabled_tools,
|
|
162
|
+
browser_log_to_file=browser_log_to_file,
|
|
163
|
+
session_id=session_id,
|
|
164
|
+
default_start_url=default_start_url,
|
|
165
|
+
default_timeout=default_timeout,
|
|
166
|
+
short_timeout=short_timeout,
|
|
167
|
+
navigation_timeout=navigation_timeout,
|
|
168
|
+
network_idle_timeout=network_idle_timeout,
|
|
169
|
+
screenshot_timeout=screenshot_timeout,
|
|
170
|
+
page_stability_timeout=page_stability_timeout,
|
|
171
|
+
dom_content_loaded_timeout=dom_content_loaded_timeout,
|
|
172
|
+
**kwargs,
|
|
173
|
+
)
|
|
174
|
+
else:
|
|
175
|
+
raise ValueError(
|
|
176
|
+
f"Invalid mode: {mode}. Must be 'typescript' or 'python'."
|
|
177
|
+
)
|
{camel_ai-0.2.73a1 → camel_ai-0.2.73a2}/camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js
RENAMED
|
@@ -78,8 +78,52 @@ class WebSocketBrowserServer {
|
|
|
78
78
|
switch (command) {
|
|
79
79
|
case 'init':
|
|
80
80
|
console.log('Initializing toolkit with params:', JSON.stringify(params, null, 2));
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
|
|
82
|
+
// Check if CDP is available first
|
|
83
|
+
let useCdp = false;
|
|
84
|
+
let cdpUrl = params.cdpUrl || 'http://localhost:9222';
|
|
85
|
+
|
|
86
|
+
// Extract base URL and port for validation
|
|
87
|
+
const baseUrl = cdpUrl.includes('/devtools/') ? cdpUrl.split('/devtools/')[0] : cdpUrl;
|
|
88
|
+
|
|
89
|
+
try {
|
|
90
|
+
// Test if Chrome debug port is accessible and get page URL
|
|
91
|
+
const response = await fetch(`${baseUrl}/json`);
|
|
92
|
+
if (response.ok) {
|
|
93
|
+
const pages = await response.json();
|
|
94
|
+
if (pages && pages.length > 0) {
|
|
95
|
+
// If user provided a specific page URL, use it; otherwise use first available
|
|
96
|
+
if (cdpUrl.includes('/devtools/page/') || cdpUrl.includes('/devtools/browser/')) {
|
|
97
|
+
useCdp = true;
|
|
98
|
+
console.log(`Using provided CDP URL: ${cdpUrl}`);
|
|
99
|
+
} else {
|
|
100
|
+
// Use the first available page
|
|
101
|
+
const firstPage = pages[0];
|
|
102
|
+
const pageUrl = firstPage.devtoolsFrontendUrl;
|
|
103
|
+
const pageId = pageUrl.match(/ws=localhost:\d+(.*)$/)?.[1];
|
|
104
|
+
|
|
105
|
+
if (pageId) {
|
|
106
|
+
useCdp = true;
|
|
107
|
+
cdpUrl = `${baseUrl}${pageId}`;
|
|
108
|
+
console.log(`Chrome debug port detected, using CDP connection to: ${pageId}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
} catch (error) {
|
|
114
|
+
console.log('Chrome debug port not accessible, will start new browser instance');
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
const config = {
|
|
118
|
+
connectOverCdp: useCdp,
|
|
119
|
+
cdpUrl: useCdp ? cdpUrl : undefined,
|
|
120
|
+
headless: false,
|
|
121
|
+
...params
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
console.log('Final config:', JSON.stringify(config, null, 2));
|
|
125
|
+
this.toolkit = new HybridBrowserToolkit(config);
|
|
126
|
+
return { message: 'Toolkit initialized with CDP connection' };
|
|
83
127
|
|
|
84
128
|
case 'open_browser':
|
|
85
129
|
if (!this.toolkit) throw new Error('Toolkit not initialized');
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
# you may not use this file except in compliance with the License.
|
|
4
|
+
# You may obtain a copy of the License at
|
|
5
|
+
#
|
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
#
|
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
# See the License for the specific language governing permissions and
|
|
12
|
+
# limitations under the License.
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
|
+
|
|
15
|
+
from .hybrid_browser_toolkit import HybridBrowserToolkit
|
|
16
|
+
|
|
17
|
+
__all__ = ["HybridBrowserToolkit"]
|