camel-ai 0.2.65__py3-none-any.whl → 0.2.82__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of camel-ai might be problematic. Click here for more details.

Files changed (505) hide show
  1. camel/__init__.py +3 -3
  2. camel/agents/__init__.py +2 -2
  3. camel/agents/_types.py +9 -4
  4. camel/agents/_utils.py +40 -2
  5. camel/agents/base.py +2 -2
  6. camel/agents/chat_agent.py +4835 -947
  7. camel/agents/critic_agent.py +2 -2
  8. camel/agents/deductive_reasoner_agent.py +56 -56
  9. camel/agents/embodied_agent.py +2 -2
  10. camel/agents/knowledge_graph_agent.py +20 -20
  11. camel/agents/mcp_agent.py +35 -36
  12. camel/agents/multi_hop_generator_agent.py +3 -3
  13. camel/agents/programmed_agent_instruction.py +2 -2
  14. camel/agents/repo_agent.py +4 -3
  15. camel/agents/role_assignment_agent.py +2 -2
  16. camel/agents/search_agent.py +2 -2
  17. camel/agents/task_agent.py +2 -2
  18. camel/agents/tool_agents/__init__.py +2 -2
  19. camel/agents/tool_agents/base.py +2 -2
  20. camel/agents/tool_agents/hugging_face_tool_agent.py +3 -3
  21. camel/benchmarks/__init__.py +2 -2
  22. camel/benchmarks/apibank.py +5 -5
  23. camel/benchmarks/apibench.py +2 -2
  24. camel/benchmarks/base.py +2 -2
  25. camel/benchmarks/browsecomp.py +44 -33
  26. camel/benchmarks/gaia.py +17 -13
  27. camel/benchmarks/mock_website/README.md +1 -3
  28. camel/benchmarks/mock_website/mock_web.py +2 -2
  29. camel/benchmarks/mock_website/requirements.txt +1 -1
  30. camel/benchmarks/mock_website/shopping_mall/app.py +2 -2
  31. camel/benchmarks/mock_website/task.json +1 -1
  32. camel/benchmarks/nexus.py +3 -3
  33. camel/benchmarks/ragbench.py +2 -2
  34. camel/bots/__init__.py +2 -2
  35. camel/bots/discord/__init__.py +2 -2
  36. camel/bots/discord/discord_app.py +2 -2
  37. camel/bots/discord/discord_installation.py +2 -2
  38. camel/bots/discord/discord_store.py +3 -3
  39. camel/bots/slack/__init__.py +2 -2
  40. camel/bots/slack/models.py +4 -4
  41. camel/bots/slack/slack_app.py +2 -2
  42. camel/bots/telegram_bot.py +2 -2
  43. camel/configs/__init__.py +23 -2
  44. camel/configs/aihubmix_config.py +90 -0
  45. camel/configs/aiml_config.py +2 -2
  46. camel/configs/amd_config.py +70 -0
  47. camel/configs/anthropic_config.py +2 -2
  48. camel/configs/base_config.py +2 -2
  49. camel/configs/bedrock_config.py +5 -3
  50. camel/configs/cerebras_config.py +98 -0
  51. camel/configs/cohere_config.py +2 -2
  52. camel/configs/cometapi_config.py +106 -0
  53. camel/configs/crynux_config.py +2 -2
  54. camel/configs/deepseek_config.py +9 -8
  55. camel/configs/gemini_config.py +6 -4
  56. camel/configs/groq_config.py +6 -4
  57. camel/configs/internlm_config.py +6 -4
  58. camel/configs/litellm_config.py +2 -2
  59. camel/configs/lmstudio_config.py +6 -4
  60. camel/configs/minimax_config.py +95 -0
  61. camel/configs/mistral_config.py +2 -2
  62. camel/configs/modelscope_config.py +5 -3
  63. camel/configs/moonshot_config.py +2 -2
  64. camel/configs/nebius_config.py +105 -0
  65. camel/configs/netmind_config.py +2 -2
  66. camel/configs/novita_config.py +2 -2
  67. camel/configs/nvidia_config.py +2 -2
  68. camel/configs/ollama_config.py +2 -2
  69. camel/configs/openai_config.py +5 -3
  70. camel/configs/openrouter_config.py +6 -4
  71. camel/configs/ppio_config.py +2 -2
  72. camel/configs/qianfan_config.py +85 -0
  73. camel/configs/qwen_config.py +2 -2
  74. camel/configs/reka_config.py +2 -2
  75. camel/configs/samba_config.py +6 -4
  76. camel/configs/sglang_config.py +2 -2
  77. camel/configs/siliconflow_config.py +2 -2
  78. camel/configs/togetherai_config.py +2 -2
  79. camel/configs/vllm_config.py +4 -2
  80. camel/configs/watsonx_config.py +2 -2
  81. camel/configs/yi_config.py +6 -4
  82. camel/configs/zhipuai_config.py +6 -4
  83. camel/data_collectors/__init__.py +2 -2
  84. camel/data_collectors/alpaca_collector.py +18 -9
  85. camel/data_collectors/base.py +2 -2
  86. camel/data_collectors/sharegpt_collector.py +2 -2
  87. camel/datagen/__init__.py +2 -2
  88. camel/datagen/cot_datagen.py +3 -3
  89. camel/datagen/evol_instruct/__init__.py +2 -2
  90. camel/datagen/evol_instruct/evol_instruct.py +2 -2
  91. camel/datagen/evol_instruct/scorer.py +12 -12
  92. camel/datagen/evol_instruct/templates.py +16 -16
  93. camel/datagen/self_improving_cot.py +5 -5
  94. camel/datagen/self_instruct/__init__.py +2 -2
  95. camel/datagen/self_instruct/filter/__init__.py +2 -2
  96. camel/datagen/self_instruct/filter/filter_function.py +2 -2
  97. camel/datagen/self_instruct/filter/filter_registry.py +2 -2
  98. camel/datagen/self_instruct/filter/instruction_filter.py +2 -2
  99. camel/datagen/self_instruct/self_instruct.py +2 -2
  100. camel/datagen/self_instruct/templates.py +47 -47
  101. camel/datagen/source2synth/__init__.py +2 -2
  102. camel/datagen/source2synth/data_processor.py +2 -2
  103. camel/datagen/source2synth/models.py +2 -2
  104. camel/datagen/source2synth/user_data_processor_config.py +2 -2
  105. camel/datahubs/__init__.py +2 -2
  106. camel/datahubs/base.py +2 -2
  107. camel/datahubs/huggingface.py +2 -2
  108. camel/datahubs/models.py +2 -2
  109. camel/datasets/__init__.py +2 -2
  110. camel/datasets/base_generator.py +41 -12
  111. camel/datasets/few_shot_generator.py +18 -18
  112. camel/datasets/models.py +2 -2
  113. camel/datasets/self_instruct_generator.py +2 -2
  114. camel/datasets/static_dataset.py +2 -2
  115. camel/embeddings/__init__.py +2 -2
  116. camel/embeddings/azure_embedding.py +2 -2
  117. camel/embeddings/base.py +2 -2
  118. camel/embeddings/gemini_embedding.py +2 -2
  119. camel/embeddings/jina_embedding.py +2 -2
  120. camel/embeddings/mistral_embedding.py +2 -2
  121. camel/embeddings/openai_compatible_embedding.py +2 -2
  122. camel/embeddings/openai_embedding.py +2 -2
  123. camel/embeddings/sentence_transformers_embeddings.py +2 -2
  124. camel/embeddings/together_embedding.py +2 -2
  125. camel/embeddings/vlm_embedding.py +2 -2
  126. camel/environments/__init__.py +14 -2
  127. camel/environments/models.py +2 -2
  128. camel/environments/multi_step.py +2 -2
  129. camel/environments/rlcards_env.py +860 -0
  130. camel/environments/single_step.py +30 -5
  131. camel/environments/tic_tac_toe.py +3 -3
  132. camel/extractors/__init__.py +2 -2
  133. camel/extractors/base.py +2 -2
  134. camel/extractors/python_strategies.py +2 -2
  135. camel/generators.py +2 -2
  136. camel/human.py +2 -2
  137. camel/interpreters/__init__.py +4 -2
  138. camel/interpreters/base.py +2 -2
  139. camel/interpreters/docker/Dockerfile +14 -24
  140. camel/interpreters/docker_interpreter.py +5 -4
  141. camel/interpreters/e2b_interpreter.py +36 -3
  142. camel/interpreters/internal_python_interpreter.py +53 -4
  143. camel/interpreters/interpreter_error.py +2 -2
  144. camel/interpreters/ipython_interpreter.py +2 -2
  145. camel/interpreters/microsandbox_interpreter.py +395 -0
  146. camel/interpreters/subprocess_interpreter.py +2 -2
  147. camel/loaders/__init__.py +13 -4
  148. camel/loaders/apify_reader.py +2 -2
  149. camel/loaders/base_io.py +2 -2
  150. camel/loaders/base_loader.py +85 -0
  151. camel/loaders/chunkr_reader.py +11 -2
  152. camel/loaders/crawl4ai_reader.py +2 -2
  153. camel/loaders/firecrawl_reader.py +6 -6
  154. camel/loaders/jina_url_reader.py +2 -2
  155. camel/loaders/markitdown.py +2 -2
  156. camel/loaders/mineru_extractor.py +2 -2
  157. camel/loaders/mistral_reader.py +2 -2
  158. camel/loaders/scrapegraph_reader.py +2 -2
  159. camel/loaders/unstructured_io.py +2 -2
  160. camel/logger.py +5 -5
  161. camel/memories/__init__.py +2 -2
  162. camel/memories/agent_memories.py +86 -3
  163. camel/memories/base.py +36 -2
  164. camel/memories/blocks/__init__.py +2 -2
  165. camel/memories/blocks/chat_history_block.py +125 -7
  166. camel/memories/blocks/vectordb_block.py +10 -3
  167. camel/memories/context_creators/__init__.py +2 -2
  168. camel/memories/context_creators/score_based.py +31 -239
  169. camel/memories/records.py +90 -10
  170. camel/messages/__init__.py +2 -2
  171. camel/messages/base.py +178 -43
  172. camel/messages/conversion/__init__.py +2 -2
  173. camel/messages/conversion/alpaca.py +2 -2
  174. camel/messages/conversion/conversation_models.py +2 -2
  175. camel/messages/conversion/sharegpt/__init__.py +2 -2
  176. camel/messages/conversion/sharegpt/function_call_formatter.py +2 -2
  177. camel/messages/conversion/sharegpt/hermes/__init__.py +2 -2
  178. camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +2 -2
  179. camel/messages/func_message.py +54 -17
  180. camel/models/__init__.py +16 -2
  181. camel/models/_utils.py +3 -3
  182. camel/models/aihubmix_model.py +83 -0
  183. camel/models/aiml_model.py +11 -18
  184. camel/models/amd_model.py +101 -0
  185. camel/models/anthropic_model.py +127 -20
  186. camel/models/aws_bedrock_model.py +12 -35
  187. camel/models/azure_openai_model.py +212 -89
  188. camel/models/base_audio_model.py +5 -3
  189. camel/models/base_model.py +195 -26
  190. camel/models/cerebras_model.py +83 -0
  191. camel/models/cohere_model.py +16 -21
  192. camel/models/cometapi_model.py +83 -0
  193. camel/models/crynux_model.py +11 -18
  194. camel/models/deepseek_model.py +18 -58
  195. camel/models/fish_audio_model.py +8 -2
  196. camel/models/gemini_model.py +389 -26
  197. camel/models/groq_model.py +11 -19
  198. camel/models/internlm_model.py +11 -18
  199. camel/models/litellm_model.py +56 -34
  200. camel/models/lmstudio_model.py +17 -20
  201. camel/models/minimax_model.py +83 -0
  202. camel/models/mistral_model.py +18 -19
  203. camel/models/model_factory.py +37 -3
  204. camel/models/model_manager.py +26 -8
  205. camel/models/modelscope_model.py +13 -193
  206. camel/models/moonshot_model.py +195 -21
  207. camel/models/nebius_model.py +83 -0
  208. camel/models/nemotron_model.py +19 -9
  209. camel/models/netmind_model.py +11 -18
  210. camel/models/novita_model.py +11 -18
  211. camel/models/nvidia_model.py +11 -18
  212. camel/models/ollama_model.py +14 -21
  213. camel/models/openai_audio_models.py +2 -2
  214. camel/models/openai_compatible_model.py +188 -45
  215. camel/models/openai_model.py +216 -71
  216. camel/models/openrouter_model.py +11 -19
  217. camel/models/ppio_model.py +11 -18
  218. camel/models/qianfan_model.py +89 -0
  219. camel/models/qwen_model.py +13 -193
  220. camel/models/reka_model.py +21 -21
  221. camel/models/reward/__init__.py +2 -2
  222. camel/models/reward/base_reward_model.py +2 -2
  223. camel/models/reward/evaluator.py +2 -2
  224. camel/models/reward/nemotron_model.py +2 -2
  225. camel/models/reward/skywork_model.py +2 -2
  226. camel/models/samba_model.py +48 -47
  227. camel/models/sglang_model.py +88 -40
  228. camel/models/siliconflow_model.py +12 -35
  229. camel/models/stub_model.py +10 -7
  230. camel/models/togetherai_model.py +11 -18
  231. camel/models/vllm_model.py +10 -18
  232. camel/models/volcano_model.py +16 -20
  233. camel/models/watsonx_model.py +7 -19
  234. camel/models/yi_model.py +11 -18
  235. camel/models/zhipuai_model.py +70 -18
  236. camel/parsers/__init__.py +18 -0
  237. camel/parsers/mcp_tool_call_parser.py +176 -0
  238. camel/personas/__init__.py +2 -2
  239. camel/personas/persona.py +2 -2
  240. camel/personas/persona_hub.py +2 -2
  241. camel/prompts/__init__.py +2 -2
  242. camel/prompts/ai_society.py +2 -2
  243. camel/prompts/base.py +2 -2
  244. camel/prompts/code.py +2 -2
  245. camel/prompts/evaluation.py +2 -2
  246. camel/prompts/generate_text_embedding_data.py +2 -2
  247. camel/prompts/image_craft.py +2 -2
  248. camel/prompts/misalignment.py +2 -2
  249. camel/prompts/multi_condition_image_craft.py +2 -2
  250. camel/prompts/object_recognition.py +2 -2
  251. camel/prompts/persona_hub.py +3 -3
  252. camel/prompts/prompt_templates.py +2 -2
  253. camel/prompts/role_description_prompt_template.py +2 -2
  254. camel/prompts/solution_extraction.py +8 -8
  255. camel/prompts/task_prompt_template.py +2 -2
  256. camel/prompts/translation.py +2 -2
  257. camel/prompts/video_description_prompt.py +3 -3
  258. camel/responses/__init__.py +2 -2
  259. camel/responses/agent_responses.py +2 -2
  260. camel/retrievers/__init__.py +2 -2
  261. camel/retrievers/auto_retriever.py +3 -2
  262. camel/retrievers/base.py +2 -2
  263. camel/retrievers/bm25_retriever.py +2 -2
  264. camel/retrievers/cohere_rerank_retriever.py +2 -2
  265. camel/retrievers/hybrid_retrival.py +2 -2
  266. camel/retrievers/vector_retriever.py +2 -2
  267. camel/runtimes/Dockerfile.multi-toolkit +90 -0
  268. camel/runtimes/__init__.py +2 -2
  269. camel/runtimes/api.py +79 -23
  270. camel/runtimes/base.py +2 -2
  271. camel/runtimes/configs.py +13 -13
  272. camel/runtimes/daytona_runtime.py +17 -18
  273. camel/runtimes/docker_runtime.py +12 -12
  274. camel/runtimes/llm_guard_runtime.py +26 -26
  275. camel/runtimes/remote_http_runtime.py +11 -11
  276. camel/runtimes/ubuntu_docker_runtime.py +2 -2
  277. camel/runtimes/utils/__init__.py +2 -2
  278. camel/runtimes/utils/function_risk_toolkit.py +2 -2
  279. camel/runtimes/utils/ignore_risk_toolkit.py +2 -2
  280. camel/schemas/__init__.py +2 -2
  281. camel/schemas/base.py +2 -2
  282. camel/schemas/openai_converter.py +3 -3
  283. camel/schemas/outlines_converter.py +2 -2
  284. camel/services/agent_openapi_server.py +380 -0
  285. camel/societies/__init__.py +4 -2
  286. camel/societies/babyagi_playing.py +2 -2
  287. camel/societies/role_playing.py +201 -80
  288. camel/societies/workforce/__init__.py +10 -3
  289. camel/societies/workforce/base.py +2 -2
  290. camel/societies/workforce/events.py +143 -0
  291. camel/societies/workforce/prompts.py +258 -33
  292. camel/societies/workforce/role_playing_worker.py +88 -31
  293. camel/societies/workforce/single_agent_worker.py +638 -40
  294. camel/societies/workforce/structured_output_handler.py +512 -0
  295. camel/societies/workforce/task_channel.py +182 -38
  296. camel/societies/workforce/utils.py +780 -65
  297. camel/societies/workforce/worker.py +92 -26
  298. camel/societies/workforce/workflow_memory_manager.py +1746 -0
  299. camel/societies/workforce/workforce.py +5276 -355
  300. camel/societies/workforce/workforce_callback.py +103 -0
  301. camel/societies/workforce/workforce_logger.py +647 -0
  302. camel/societies/workforce/workforce_metrics.py +33 -0
  303. camel/storages/__init__.py +6 -2
  304. camel/storages/graph_storages/__init__.py +2 -2
  305. camel/storages/graph_storages/base.py +2 -2
  306. camel/storages/graph_storages/graph_element.py +2 -2
  307. camel/storages/graph_storages/nebula_graph.py +4 -4
  308. camel/storages/graph_storages/neo4j_graph.py +7 -7
  309. camel/storages/key_value_storages/__init__.py +2 -2
  310. camel/storages/key_value_storages/base.py +2 -2
  311. camel/storages/key_value_storages/in_memory.py +2 -2
  312. camel/storages/key_value_storages/json.py +17 -4
  313. camel/storages/key_value_storages/mem0_cloud.py +50 -49
  314. camel/storages/key_value_storages/redis.py +2 -2
  315. camel/storages/object_storages/__init__.py +2 -2
  316. camel/storages/object_storages/amazon_s3.py +2 -2
  317. camel/storages/object_storages/azure_blob.py +2 -2
  318. camel/storages/object_storages/base.py +2 -2
  319. camel/storages/object_storages/google_cloud.py +3 -3
  320. camel/storages/vectordb_storages/__init__.py +8 -2
  321. camel/storages/vectordb_storages/base.py +2 -2
  322. camel/storages/vectordb_storages/chroma.py +731 -0
  323. camel/storages/vectordb_storages/faiss.py +2 -2
  324. camel/storages/vectordb_storages/milvus.py +2 -2
  325. camel/storages/vectordb_storages/oceanbase.py +15 -15
  326. camel/storages/vectordb_storages/pgvector.py +349 -0
  327. camel/storages/vectordb_storages/qdrant.py +6 -6
  328. camel/storages/vectordb_storages/surreal.py +372 -0
  329. camel/storages/vectordb_storages/tidb.py +11 -8
  330. camel/storages/vectordb_storages/weaviate.py +2 -2
  331. camel/tasks/__init__.py +2 -2
  332. camel/tasks/task.py +348 -26
  333. camel/tasks/task_prompt.py +3 -3
  334. camel/terminators/__init__.py +2 -2
  335. camel/terminators/base.py +2 -2
  336. camel/terminators/response_terminator.py +2 -2
  337. camel/terminators/token_limit_terminator.py +2 -2
  338. camel/toolkits/__init__.py +54 -10
  339. camel/toolkits/aci_toolkit.py +66 -21
  340. camel/toolkits/arxiv_toolkit.py +8 -8
  341. camel/toolkits/ask_news_toolkit.py +2 -2
  342. camel/toolkits/async_browser_toolkit.py +4 -4
  343. camel/toolkits/audio_analysis_toolkit.py +3 -3
  344. camel/toolkits/base.py +65 -7
  345. camel/toolkits/bohrium_toolkit.py +2 -2
  346. camel/toolkits/browser_toolkit.py +34 -21
  347. camel/toolkits/browser_toolkit_commons.py +4 -4
  348. camel/toolkits/code_execution.py +31 -4
  349. camel/toolkits/context_summarizer_toolkit.py +684 -0
  350. camel/toolkits/craw4ai_toolkit.py +93 -0
  351. camel/toolkits/dappier_toolkit.py +12 -8
  352. camel/toolkits/data_commons_toolkit.py +2 -2
  353. camel/toolkits/dingtalk.py +1135 -0
  354. camel/toolkits/earth_science_toolkit.py +5367 -0
  355. camel/toolkits/edgeone_pages_mcp_toolkit.py +49 -0
  356. camel/toolkits/excel_toolkit.py +905 -71
  357. camel/toolkits/file_toolkit.py +1402 -0
  358. camel/toolkits/function_tool.py +126 -18
  359. camel/toolkits/github_toolkit.py +109 -22
  360. camel/toolkits/gmail_toolkit.py +1839 -0
  361. camel/toolkits/google_calendar_toolkit.py +40 -6
  362. camel/toolkits/google_drive_mcp_toolkit.py +54 -0
  363. camel/toolkits/google_maps_toolkit.py +2 -2
  364. camel/toolkits/google_scholar_toolkit.py +2 -2
  365. camel/toolkits/human_toolkit.py +36 -12
  366. camel/toolkits/hybrid_browser_toolkit/__init__.py +18 -0
  367. camel/toolkits/hybrid_browser_toolkit/config_loader.py +185 -0
  368. camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py +246 -0
  369. camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py +1973 -0
  370. camel/toolkits/hybrid_browser_toolkit/installer.py +203 -0
  371. camel/toolkits/hybrid_browser_toolkit/ts/package-lock.json +4589 -0
  372. camel/toolkits/hybrid_browser_toolkit/ts/package.json +33 -0
  373. camel/toolkits/hybrid_browser_toolkit/ts/src/browser-scripts.js +125 -0
  374. camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts +1929 -0
  375. camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts +233 -0
  376. camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts +589 -0
  377. camel/toolkits/hybrid_browser_toolkit/ts/src/index.ts +7 -0
  378. camel/toolkits/hybrid_browser_toolkit/ts/src/parent-child-filter.ts +226 -0
  379. camel/toolkits/hybrid_browser_toolkit/ts/src/snapshot-parser.ts +219 -0
  380. camel/toolkits/hybrid_browser_toolkit/ts/src/som-screenshot-injected.ts +543 -0
  381. camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts +129 -0
  382. camel/toolkits/hybrid_browser_toolkit/ts/tsconfig.json +27 -0
  383. camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js +319 -0
  384. camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py +1037 -0
  385. camel/toolkits/hybrid_browser_toolkit_py/__init__.py +17 -0
  386. camel/toolkits/hybrid_browser_toolkit_py/actions.py +575 -0
  387. camel/toolkits/hybrid_browser_toolkit_py/agent.py +311 -0
  388. camel/toolkits/hybrid_browser_toolkit_py/browser_session.py +787 -0
  389. camel/toolkits/hybrid_browser_toolkit_py/config_loader.py +490 -0
  390. camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py +2390 -0
  391. camel/toolkits/hybrid_browser_toolkit_py/snapshot.py +233 -0
  392. camel/toolkits/hybrid_browser_toolkit_py/stealth_script.js +0 -0
  393. camel/toolkits/hybrid_browser_toolkit_py/unified_analyzer.js +1043 -0
  394. camel/toolkits/image_analysis_toolkit.py +3 -6
  395. camel/toolkits/image_generation_toolkit.py +390 -0
  396. camel/toolkits/jina_reranker_toolkit.py +5 -6
  397. camel/toolkits/klavis_toolkit.py +7 -3
  398. camel/toolkits/linkedin_toolkit.py +2 -2
  399. camel/toolkits/markitdown_toolkit.py +104 -0
  400. camel/toolkits/math_toolkit.py +66 -12
  401. camel/toolkits/mcp_toolkit.py +412 -36
  402. camel/toolkits/memory_toolkit.py +7 -3
  403. camel/toolkits/meshy_toolkit.py +2 -2
  404. camel/toolkits/message_agent_toolkit.py +608 -0
  405. camel/toolkits/message_integration.py +724 -0
  406. camel/toolkits/mineru_toolkit.py +2 -2
  407. camel/toolkits/minimax_mcp_toolkit.py +195 -0
  408. camel/toolkits/networkx_toolkit.py +2 -2
  409. camel/toolkits/note_taking_toolkit.py +277 -0
  410. camel/toolkits/notion_mcp_toolkit.py +224 -0
  411. camel/toolkits/notion_toolkit.py +2 -2
  412. camel/toolkits/open_api_specs/biztoc/__init__.py +2 -2
  413. camel/toolkits/open_api_specs/biztoc/ai-plugin.json +1 -1
  414. camel/toolkits/open_api_specs/coursera/__init__.py +2 -2
  415. camel/toolkits/open_api_specs/create_qr_code/__init__.py +2 -2
  416. camel/toolkits/open_api_specs/klarna/__init__.py +2 -2
  417. camel/toolkits/open_api_specs/nasa_apod/__init__.py +2 -2
  418. camel/toolkits/open_api_specs/outschool/__init__.py +2 -2
  419. camel/toolkits/open_api_specs/outschool/ai-plugin.json +1 -1
  420. camel/toolkits/open_api_specs/outschool/openapi.yaml +1 -1
  421. camel/toolkits/open_api_specs/outschool/paths/__init__.py +2 -2
  422. camel/toolkits/open_api_specs/outschool/paths/get_classes.py +2 -2
  423. camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +2 -2
  424. camel/toolkits/open_api_specs/security_config.py +2 -2
  425. camel/toolkits/open_api_specs/speak/__init__.py +2 -2
  426. camel/toolkits/open_api_specs/web_scraper/__init__.py +2 -2
  427. camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +1 -1
  428. camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +2 -2
  429. camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +2 -2
  430. camel/toolkits/open_api_toolkit.py +2 -2
  431. camel/toolkits/openbb_toolkit.py +7 -3
  432. camel/toolkits/origene_mcp_toolkit.py +56 -0
  433. camel/toolkits/page_script.js +53 -53
  434. camel/toolkits/playwright_mcp_toolkit.py +13 -31
  435. camel/toolkits/pptx_toolkit.py +36 -23
  436. camel/toolkits/pubmed_toolkit.py +2 -2
  437. camel/toolkits/pulse_mcp_search_toolkit.py +2 -2
  438. camel/toolkits/pyautogui_toolkit.py +2 -2
  439. camel/toolkits/reddit_toolkit.py +2 -2
  440. camel/toolkits/resend_toolkit.py +168 -0
  441. camel/toolkits/retrieval_toolkit.py +2 -2
  442. camel/toolkits/screenshot_toolkit.py +213 -0
  443. camel/toolkits/search_toolkit.py +539 -146
  444. camel/toolkits/searxng_toolkit.py +2 -2
  445. camel/toolkits/semantic_scholar_toolkit.py +2 -2
  446. camel/toolkits/slack_toolkit.py +108 -58
  447. camel/toolkits/sql_toolkit.py +712 -0
  448. camel/toolkits/stripe_toolkit.py +2 -2
  449. camel/toolkits/sympy_toolkit.py +3 -3
  450. camel/toolkits/task_planning_toolkit.py +5 -5
  451. camel/toolkits/terminal_toolkit/__init__.py +18 -0
  452. camel/toolkits/terminal_toolkit/terminal_toolkit.py +1070 -0
  453. camel/toolkits/terminal_toolkit/utils.py +532 -0
  454. camel/toolkits/thinking_toolkit.py +3 -3
  455. camel/toolkits/twitter_toolkit.py +2 -2
  456. camel/toolkits/vertex_ai_veo_toolkit.py +590 -0
  457. camel/toolkits/video_analysis_toolkit.py +109 -29
  458. camel/toolkits/video_download_toolkit.py +19 -16
  459. camel/toolkits/weather_toolkit.py +2 -2
  460. camel/toolkits/web_deploy_toolkit.py +1219 -0
  461. camel/toolkits/wechat_official_toolkit.py +483 -0
  462. camel/toolkits/whatsapp_toolkit.py +2 -2
  463. camel/toolkits/wolfram_alpha_toolkit.py +2 -2
  464. camel/toolkits/zapier_toolkit.py +7 -3
  465. camel/types/__init__.py +4 -4
  466. camel/types/agents/__init__.py +2 -2
  467. camel/types/agents/tool_calling_record.py +6 -3
  468. camel/types/enums.py +378 -39
  469. camel/types/mcp_registries.py +2 -2
  470. camel/types/openai_types.py +4 -4
  471. camel/types/unified_model_type.py +38 -6
  472. camel/utils/__init__.py +2 -2
  473. camel/utils/async_func.py +2 -2
  474. camel/utils/chunker/__init__.py +2 -2
  475. camel/utils/chunker/base.py +2 -2
  476. camel/utils/chunker/code_chunker.py +2 -2
  477. camel/utils/chunker/uio_chunker.py +2 -2
  478. camel/utils/commons.py +38 -7
  479. camel/utils/constants.py +5 -2
  480. camel/utils/context_utils.py +1134 -0
  481. camel/utils/deduplication.py +2 -2
  482. camel/utils/filename.py +2 -2
  483. camel/utils/langfuse.py +2 -2
  484. camel/utils/mcp.py +140 -6
  485. camel/utils/mcp_client.py +48 -38
  486. camel/utils/message_summarizer.py +148 -0
  487. camel/utils/response_format.py +2 -2
  488. camel/utils/token_counting.py +45 -22
  489. camel/utils/tool_result.py +44 -0
  490. camel/verifiers/__init__.py +2 -2
  491. camel/verifiers/base.py +2 -2
  492. camel/verifiers/math_verifier.py +2 -2
  493. camel/verifiers/models.py +2 -2
  494. camel/verifiers/physics_verifier.py +2 -2
  495. camel/verifiers/python_verifier.py +2 -2
  496. {camel_ai-0.2.65.dist-info → camel_ai-0.2.82.dist-info}/METADATA +327 -94
  497. camel_ai-0.2.82.dist-info/RECORD +507 -0
  498. {camel_ai-0.2.65.dist-info → camel_ai-0.2.82.dist-info}/WHEEL +1 -1
  499. {camel_ai-0.2.65.dist-info → camel_ai-0.2.82.dist-info}/licenses/LICENSE +1 -1
  500. camel/loaders/pandas_reader.py +0 -368
  501. camel/toolkits/dalle_toolkit.py +0 -175
  502. camel/toolkits/file_write_toolkit.py +0 -444
  503. camel/toolkits/openai_agent_toolkit.py +0 -135
  504. camel/toolkits/terminal_toolkit.py +0 -1037
  505. camel_ai-0.2.65.dist-info/RECORD +0 -426
@@ -1,4 +1,4 @@
1
- # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
1
+ # ========= Copyright 2023-2025 @ CAMEL-AI.org. All Rights Reserved. =========
2
2
  # Licensed under the Apache License, Version 2.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
@@ -10,12 +10,15 @@
10
10
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
11
  # See the License for the specific language governing permissions and
12
12
  # limitations under the License.
13
- # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
13
+ # ========= Copyright 2023-2025 @ CAMEL-AI.org. All Rights Reserved. =========
14
14
  import ast
15
+ import asyncio
16
+ import functools
15
17
  import inspect
16
18
  import logging
17
19
  import textwrap
18
20
  import warnings
21
+ from concurrent.futures import ThreadPoolExecutor
19
22
  from inspect import Parameter, getsource, signature
20
23
  from typing import Any, Callable, Dict, Mapping, Optional, Tuple, Type
21
24
 
@@ -31,6 +34,9 @@ from camel.utils import get_pydantic_object_schema, to_pascal
31
34
 
32
35
  logger = logging.getLogger(__name__)
33
36
 
37
+ # Shared thread pool for running sync tools without blocking the event loop
38
+ _SYNC_TOOL_EXECUTOR = ThreadPoolExecutor(max_workers=64)
39
+
34
40
 
35
41
  def _remove_a_key(d: Dict, remove_key: Any) -> None:
36
42
  r"""Remove a key from a dictionary recursively."""
@@ -156,7 +162,12 @@ def get_openai_tool_schema(func: Callable) -> Dict[str, Any]:
156
162
  if (name := param.arg_name) in parameters_dict["properties"] and (
157
163
  description := param.description
158
164
  ):
159
- parameters_dict["properties"][name]["description"] = description
165
+ # OpenAI does not allow descriptions on properties that use $ref.
166
+ # To avoid schema errors, we only add the description if "$ref" is
167
+ # not present.
168
+ prop = parameters_dict["properties"][name]
169
+ if "$ref" not in prop:
170
+ prop["description"] = description
160
171
 
161
172
  short_description = docstring.short_description or ""
162
173
  long_description = docstring.long_description or ""
@@ -190,7 +201,9 @@ def sanitize_and_enforce_required(parameters_dict):
190
201
  r"""Cleans and updates the function schema to conform with OpenAI's
191
202
  requirements:
192
203
  - Removes invalid 'default' fields from the parameters schema.
193
- - Ensures all fields or function parameters are marked as required.
204
+ - Ensures all fields are marked as required or have null type for optional
205
+ fields.
206
+ - Recursively adds additionalProperties: false to all nested objects.
194
207
 
195
208
  Args:
196
209
  parameters_dict (dict): The dictionary representing the function
@@ -198,8 +211,38 @@ def sanitize_and_enforce_required(parameters_dict):
198
211
 
199
212
  Returns:
200
213
  dict: The updated dictionary with invalid defaults removed and all
201
- fields set as required.
214
+ fields properly configured for strict mode.
202
215
  """
216
+
217
+ def _add_additional_properties_false(obj):
218
+ r"""Recursively add additionalProperties: false to all objects."""
219
+ if isinstance(obj, dict):
220
+ if (
221
+ obj.get("type") == "object"
222
+ and "additionalProperties" not in obj
223
+ ):
224
+ obj["additionalProperties"] = False
225
+
226
+ # Process nested structures
227
+ for key, value in obj.items():
228
+ if key == "properties" and isinstance(value, dict):
229
+ for prop_value in value.values():
230
+ _add_additional_properties_false(prop_value)
231
+ elif key in [
232
+ "items",
233
+ "allOf",
234
+ "oneOf",
235
+ "anyOf",
236
+ ] and isinstance(value, (dict, list)):
237
+ if isinstance(value, dict):
238
+ _add_additional_properties_false(value)
239
+ elif isinstance(value, list):
240
+ for item in value:
241
+ _add_additional_properties_false(item)
242
+ elif key == "$defs" and isinstance(value, dict):
243
+ for def_value in value.values():
244
+ _add_additional_properties_false(def_value)
245
+
203
246
  # Check if 'function' and 'parameters' exist
204
247
  if (
205
248
  'function' in parameters_dict
@@ -209,12 +252,65 @@ def sanitize_and_enforce_required(parameters_dict):
209
252
  parameters = parameters_dict['function']['parameters']
210
253
  properties = parameters.get('properties', {})
211
254
 
212
- # Remove 'default' key from each property
213
- for field in properties.values():
214
- field.pop('default', None)
255
+ # Track which fields should be required vs optional
256
+ required_fields = []
257
+
258
+ # Process each property
259
+ for field_name, field_schema in properties.items():
260
+ # Check if this field had a default value (making it optional)
261
+ had_default = 'default' in field_schema
262
+
263
+ # Remove 'default' key from field schema as required by OpenAI
264
+ field_schema.pop('default', None)
265
+
266
+ if had_default:
267
+ # This field is optional - add null to its type
268
+ current_type = field_schema.get('type')
269
+ has_ref = '$ref' in field_schema
270
+ has_any_of = 'anyOf' in field_schema
271
+
272
+ if has_ref:
273
+ # Fields with $ref shouldn't have additional type field
274
+ # The $ref itself defines the type structure
275
+ pass
276
+ elif has_any_of:
277
+ # Field already has anyOf
278
+ any_of_types = field_schema['anyOf']
279
+ has_null_type = any(
280
+ item.get('type') == 'null' for item in any_of_types
281
+ )
282
+ if not has_null_type:
283
+ # Add null type to anyOf
284
+ field_schema['anyOf'].append({'type': 'null'})
285
+ # Remove conflicting type field if it exists
286
+ if 'type' in field_schema:
287
+ del field_schema['type']
288
+ elif current_type:
289
+ if isinstance(current_type, str):
290
+ # Single type - convert to array with null
291
+ field_schema['type'] = [current_type, 'null']
292
+ elif (
293
+ isinstance(current_type, list)
294
+ and 'null' not in current_type
295
+ ):
296
+ # Array of types - add null if not present
297
+ field_schema['type'] = [*current_type, 'null']
298
+ else:
299
+ # No type specified, add null type
300
+ field_schema['type'] = ['null']
301
+
302
+ # Optional fields are still marked as required in strict mode
303
+ # but with null type to indicate they can be omitted
304
+ required_fields.append(field_name)
305
+ else:
306
+ # This field is required
307
+ required_fields.append(field_name)
308
+
309
+ # Set all fields as required (strict mode requirement)
310
+ parameters['required'] = required_fields
215
311
 
216
- # Mark all keys in 'properties' as required
217
- parameters['required'] = list(properties.keys())
312
+ # Recursively add additionalProperties: false to all objects
313
+ _add_additional_properties_false(parameters)
218
314
 
219
315
  return parameters_dict
220
316
 
@@ -392,10 +488,15 @@ class FunctionTool:
392
488
  result = self.func(*args, **kwargs)
393
489
  return result
394
490
  except Exception as e:
491
+ parts = []
492
+ if args:
493
+ parts.append(f"args={args}")
494
+ if kwargs:
495
+ parts.append(f"kwargs={kwargs}")
496
+ args_str = ", ".join(parts) if parts else "no arguments"
395
497
  raise ValueError(
396
498
  f"Execution of function {self.func.__name__} failed with "
397
- f"arguments {args} and {kwargs}. "
398
- f"Error: {e}"
499
+ f"{args_str}. Error: {e}"
399
500
  )
400
501
 
401
502
  async def async_call(self, *args: Any, **kwargs: Any) -> Any:
@@ -405,7 +506,13 @@ class FunctionTool:
405
506
  if self.is_async:
406
507
  return await self.func(*args, **kwargs)
407
508
  else:
408
- return self.func(*args, **kwargs)
509
+ # Run sync function in executor to avoid blocking event loop
510
+ # Use functools.partial to properly capture args/kwargs
511
+ loop = asyncio.get_running_loop()
512
+ return await loop.run_in_executor(
513
+ _SYNC_TOOL_EXECUTOR,
514
+ functools.partial(self.func, *args, **kwargs),
515
+ )
409
516
 
410
517
  @property
411
518
  def is_async(self) -> bool:
@@ -437,8 +544,8 @@ class FunctionTool:
437
544
 
438
545
  # Check the function description, if no description then raise warming
439
546
  if not openai_tool_schema["function"].get("description"):
440
- warnings.warn(f"""Function description is missing for
441
- {openai_tool_schema['function']['name']}. This may
547
+ warnings.warn(f"""Function description is missing for
548
+ {openai_tool_schema['function']['name']}. This may
442
549
  affect the quality of tool calling.""")
443
550
 
444
551
  # Validate whether parameters
@@ -459,9 +566,10 @@ class FunctionTool:
459
566
  param_dict = properties[param_name]
460
567
  if "description" not in param_dict:
461
568
  warnings.warn(
462
- f"Parameter description is missing "
463
- f"for {param_dict}. This may affect the "
464
- f"quality of tool calling."
569
+ f"Parameter description is missing for the "
570
+ f"function '{openai_tool_schema['function']['name']}'. "
571
+ f"The parameter definition is {param_dict}. "
572
+ f"This may affect the quality of tool calling."
465
573
  )
466
574
 
467
575
  def get_openai_tool_schema(self) -> Dict[str, Any]:
@@ -1,4 +1,4 @@
1
- # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
1
+ # ========= Copyright 2023-2025 @ CAMEL-AI.org. All Rights Reserved. =========
2
2
  # Licensed under the Apache License, Version 2.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
@@ -10,10 +10,11 @@
10
10
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
11
  # See the License for the specific language governing permissions and
12
12
  # limitations under the License.
13
- # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
13
+ # ========= Copyright 2023-2025 @ CAMEL-AI.org. All Rights Reserved. =========
14
14
 
15
15
  import logging
16
16
  import os
17
+ import warnings
17
18
  from typing import Dict, List, Literal, Optional, Union
18
19
 
19
20
  from camel.toolkits import FunctionTool
@@ -80,7 +81,7 @@ class GithubToolkit(BaseToolkit):
80
81
  )
81
82
  return GITHUB_ACCESS_TOKEN
82
83
 
83
- def create_pull_request(
84
+ def github_create_pull_request(
84
85
  self,
85
86
  repo_name: str,
86
87
  file_path: str,
@@ -150,7 +151,7 @@ class GithubToolkit(BaseToolkit):
150
151
  else:
151
152
  raise ValueError("PRs with multiple files aren't supported yet.")
152
153
 
153
- def get_issue_list(
154
+ def github_get_issue_list(
154
155
  self, repo_name: str, state: Literal["open", "closed", "all"] = "all"
155
156
  ) -> List[Dict[str, object]]:
156
157
  r"""Retrieves all issues from the GitHub repository.
@@ -158,7 +159,7 @@ class GithubToolkit(BaseToolkit):
158
159
  Args:
159
160
  repo_name (str): The name of the GitHub repository.
160
161
  state (Literal["open", "closed", "all"]): The state of pull
161
- requests to retrieve. (default: :obj: `all`)
162
+ requests to retrieve. (default: :obj:`all`)
162
163
  Options are:
163
164
  - "open": Retrieve only open pull requests.
164
165
  - "closed": Retrieve only closed pull requests.
@@ -177,7 +178,9 @@ class GithubToolkit(BaseToolkit):
177
178
 
178
179
  return issues_info
179
180
 
180
- def get_issue_content(self, repo_name: str, issue_number: int) -> str:
181
+ def github_get_issue_content(
182
+ self, repo_name: str, issue_number: int
183
+ ) -> str:
181
184
  r"""Retrieves the content of a specific issue by its number.
182
185
 
183
186
  Args:
@@ -194,7 +197,7 @@ class GithubToolkit(BaseToolkit):
194
197
  except Exception as e:
195
198
  return f"can't get Issue number {issue_number}: {e!s}"
196
199
 
197
- def get_pull_request_list(
200
+ def github_get_pull_request_list(
198
201
  self, repo_name: str, state: Literal["open", "closed", "all"] = "all"
199
202
  ) -> List[Dict[str, object]]:
200
203
  r"""Retrieves all pull requests from the GitHub repository.
@@ -202,7 +205,7 @@ class GithubToolkit(BaseToolkit):
202
205
  Args:
203
206
  repo_name (str): The name of the GitHub repository.
204
207
  state (Literal["open", "closed", "all"]): The state of pull
205
- requests to retrieve. (default: :obj: `all`)
208
+ requests to retrieve. (default: :obj:`all`)
206
209
  Options are:
207
210
  - "open": Retrieve only open pull requests.
208
211
  - "closed": Retrieve only closed pull requests.
@@ -221,7 +224,7 @@ class GithubToolkit(BaseToolkit):
221
224
 
222
225
  return pull_requests_info
223
226
 
224
- def get_pull_request_code(
227
+ def github_get_pull_request_code(
225
228
  self, repo_name: str, pr_number: int
226
229
  ) -> List[Dict[str, str]]:
227
230
  r"""Retrieves the code changes of a specific pull request.
@@ -253,7 +256,7 @@ class GithubToolkit(BaseToolkit):
253
256
 
254
257
  return files_changed
255
258
 
256
- def get_pull_request_comments(
259
+ def github_get_pull_request_comments(
257
260
  self, repo_name: str, pr_number: int
258
261
  ) -> List[Dict[str, str]]:
259
262
  r"""Retrieves the comments from a specific pull request.
@@ -278,14 +281,16 @@ class GithubToolkit(BaseToolkit):
278
281
 
279
282
  return comments
280
283
 
281
- def get_all_file_paths(self, repo_name: str, path: str = "") -> List[str]:
284
+ def github_get_all_file_paths(
285
+ self, repo_name: str, path: str = ""
286
+ ) -> List[str]:
282
287
  r"""Recursively retrieves all file paths in the GitHub repository.
283
288
 
284
289
  Args:
285
290
  repo_name (str): The name of the GitHub repository.
286
291
  path (str): The repository path to start the traversal from.
287
292
  empty string means starts from the root directory.
288
- (default: :obj: `""`)
293
+ (default: :obj:`""`)
289
294
 
290
295
  Returns:
291
296
  List[str]: A list of file paths within the specified directory
@@ -308,13 +313,15 @@ class GithubToolkit(BaseToolkit):
308
313
  for content in contents:
309
314
  if content.type == "dir":
310
315
  # If it's a directory, recursively retrieve its file paths
311
- files.extend(self.get_all_file_paths(content.path))
316
+ files.extend(self.github_get_all_file_paths(content.path))
312
317
  else:
313
318
  # If it's a file, add its path to the list
314
319
  files.append(content.path)
315
320
  return files
316
321
 
317
- def retrieve_file_content(self, repo_name: str, file_path: str) -> str:
322
+ def github_retrieve_file_content(
323
+ self, repo_name: str, file_path: str
324
+ ) -> str:
318
325
  r"""Retrieves the content of a file from the GitHub repository.
319
326
 
320
327
  Args:
@@ -343,12 +350,92 @@ class GithubToolkit(BaseToolkit):
343
350
  the functions in the toolkit.
344
351
  """
345
352
  return [
346
- FunctionTool(self.create_pull_request),
347
- FunctionTool(self.get_issue_list),
348
- FunctionTool(self.get_issue_content),
349
- FunctionTool(self.get_pull_request_list),
350
- FunctionTool(self.get_pull_request_code),
351
- FunctionTool(self.get_pull_request_comments),
352
- FunctionTool(self.get_all_file_paths),
353
- FunctionTool(self.retrieve_file_content),
353
+ FunctionTool(self.github_create_pull_request),
354
+ FunctionTool(self.github_get_issue_list),
355
+ FunctionTool(self.github_get_issue_content),
356
+ FunctionTool(self.github_get_pull_request_list),
357
+ FunctionTool(self.github_get_pull_request_code),
358
+ FunctionTool(self.github_get_pull_request_comments),
359
+ FunctionTool(self.github_get_all_file_paths),
360
+ FunctionTool(self.github_retrieve_file_content),
354
361
  ]
362
+
363
+ # Deprecated method aliases for backward compatibility
364
+ def create_pull_request(self, *args, **kwargs):
365
+ r"""Deprecated: Use github_create_pull_request instead."""
366
+ warnings.warn(
367
+ "create_pull_request is deprecated. Use "
368
+ "github_create_pull_request instead.",
369
+ DeprecationWarning,
370
+ stacklevel=2,
371
+ )
372
+ return self.github_create_pull_request(*args, **kwargs)
373
+
374
+ def get_issue_list(self, *args, **kwargs):
375
+ r"""Deprecated: Use github_get_issue_list instead."""
376
+ warnings.warn(
377
+ "get_issue_list is deprecated. Use github_get_issue_list instead.",
378
+ DeprecationWarning,
379
+ stacklevel=2,
380
+ )
381
+ return self.github_get_issue_list(*args, **kwargs)
382
+
383
+ def get_issue_content(self, *args, **kwargs):
384
+ r"""Deprecated: Use github_get_issue_content instead."""
385
+ warnings.warn(
386
+ "get_issue_content is deprecated. Use "
387
+ "github_get_issue_content instead.",
388
+ DeprecationWarning,
389
+ stacklevel=2,
390
+ )
391
+ return self.github_get_issue_content(*args, **kwargs)
392
+
393
+ def get_pull_request_list(self, *args, **kwargs):
394
+ r"""Deprecated: Use github_get_pull_request_list instead."""
395
+ warnings.warn(
396
+ "get_pull_request_list is deprecated. "
397
+ "Use github_get_pull_request_list instead.",
398
+ DeprecationWarning,
399
+ stacklevel=2,
400
+ )
401
+ return self.github_get_pull_request_list(*args, **kwargs)
402
+
403
+ def get_pull_request_code(self, *args, **kwargs):
404
+ r"""Deprecated: Use github_get_pull_request_code instead."""
405
+ warnings.warn(
406
+ "get_pull_request_code is deprecated. Use "
407
+ "github_get_pull_request_code instead.",
408
+ DeprecationWarning,
409
+ stacklevel=2,
410
+ )
411
+ return self.github_get_pull_request_code(*args, **kwargs)
412
+
413
+ def get_pull_request_comments(self, *args, **kwargs):
414
+ r"""Deprecated: Use github_get_pull_request_comments instead."""
415
+ warnings.warn(
416
+ "get_pull_request_comments is deprecated. "
417
+ "Use github_get_pull_request_comments instead.",
418
+ DeprecationWarning,
419
+ stacklevel=2,
420
+ )
421
+ return self.github_get_pull_request_comments(*args, **kwargs)
422
+
423
+ def get_all_file_paths(self, *args, **kwargs):
424
+ r"""Deprecated: Use github_get_all_file_paths instead."""
425
+ warnings.warn(
426
+ "get_all_file_paths is deprecated. Use "
427
+ "github_get_all_file_paths instead.",
428
+ DeprecationWarning,
429
+ stacklevel=2,
430
+ )
431
+ return self.github_get_all_file_paths(*args, **kwargs)
432
+
433
+ def retrieve_file_content(self, *args, **kwargs):
434
+ r"""Deprecated: Use github_retrieve_file_content instead."""
435
+ warnings.warn(
436
+ "retrieve_file_content is deprecated. "
437
+ "Use github_retrieve_file_content instead.",
438
+ DeprecationWarning,
439
+ stacklevel=2,
440
+ )
441
+ return self.github_retrieve_file_content(*args, **kwargs)