camel-ai 0.2.73a4__py3-none-any.whl → 0.2.80a2__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.
Files changed (173) hide show
  1. camel/__init__.py +1 -1
  2. camel/agents/_utils.py +38 -0
  3. camel/agents/chat_agent.py +2217 -519
  4. camel/agents/mcp_agent.py +30 -27
  5. camel/configs/__init__.py +15 -0
  6. camel/configs/aihubmix_config.py +88 -0
  7. camel/configs/amd_config.py +70 -0
  8. camel/configs/cometapi_config.py +104 -0
  9. camel/configs/minimax_config.py +93 -0
  10. camel/configs/nebius_config.py +103 -0
  11. camel/data_collectors/alpaca_collector.py +15 -6
  12. camel/datasets/base_generator.py +39 -10
  13. camel/environments/single_step.py +28 -3
  14. camel/environments/tic_tac_toe.py +1 -1
  15. camel/interpreters/__init__.py +2 -0
  16. camel/interpreters/docker/Dockerfile +3 -12
  17. camel/interpreters/e2b_interpreter.py +34 -1
  18. camel/interpreters/microsandbox_interpreter.py +395 -0
  19. camel/loaders/__init__.py +11 -2
  20. camel/loaders/chunkr_reader.py +9 -0
  21. camel/memories/agent_memories.py +48 -4
  22. camel/memories/base.py +26 -0
  23. camel/memories/blocks/chat_history_block.py +122 -4
  24. camel/memories/context_creators/score_based.py +25 -384
  25. camel/memories/records.py +88 -8
  26. camel/messages/base.py +153 -34
  27. camel/models/__init__.py +10 -0
  28. camel/models/aihubmix_model.py +83 -0
  29. camel/models/aiml_model.py +1 -16
  30. camel/models/amd_model.py +101 -0
  31. camel/models/anthropic_model.py +6 -19
  32. camel/models/aws_bedrock_model.py +2 -33
  33. camel/models/azure_openai_model.py +114 -89
  34. camel/models/base_audio_model.py +3 -1
  35. camel/models/base_model.py +32 -14
  36. camel/models/cohere_model.py +1 -16
  37. camel/models/cometapi_model.py +83 -0
  38. camel/models/crynux_model.py +1 -16
  39. camel/models/deepseek_model.py +1 -16
  40. camel/models/fish_audio_model.py +6 -0
  41. camel/models/gemini_model.py +36 -18
  42. camel/models/groq_model.py +1 -17
  43. camel/models/internlm_model.py +1 -16
  44. camel/models/litellm_model.py +1 -16
  45. camel/models/lmstudio_model.py +1 -17
  46. camel/models/minimax_model.py +83 -0
  47. camel/models/mistral_model.py +1 -16
  48. camel/models/model_factory.py +27 -1
  49. camel/models/modelscope_model.py +1 -16
  50. camel/models/moonshot_model.py +105 -24
  51. camel/models/nebius_model.py +83 -0
  52. camel/models/nemotron_model.py +0 -5
  53. camel/models/netmind_model.py +1 -16
  54. camel/models/novita_model.py +1 -16
  55. camel/models/nvidia_model.py +1 -16
  56. camel/models/ollama_model.py +4 -19
  57. camel/models/openai_compatible_model.py +62 -41
  58. camel/models/openai_model.py +62 -57
  59. camel/models/openrouter_model.py +1 -17
  60. camel/models/ppio_model.py +1 -16
  61. camel/models/qianfan_model.py +1 -16
  62. camel/models/qwen_model.py +1 -16
  63. camel/models/reka_model.py +1 -16
  64. camel/models/samba_model.py +34 -47
  65. camel/models/sglang_model.py +64 -31
  66. camel/models/siliconflow_model.py +1 -16
  67. camel/models/stub_model.py +0 -4
  68. camel/models/togetherai_model.py +1 -16
  69. camel/models/vllm_model.py +1 -16
  70. camel/models/volcano_model.py +0 -17
  71. camel/models/watsonx_model.py +1 -16
  72. camel/models/yi_model.py +1 -16
  73. camel/models/zhipuai_model.py +60 -16
  74. camel/parsers/__init__.py +18 -0
  75. camel/parsers/mcp_tool_call_parser.py +176 -0
  76. camel/retrievers/auto_retriever.py +1 -0
  77. camel/runtimes/daytona_runtime.py +11 -12
  78. camel/societies/__init__.py +2 -0
  79. camel/societies/workforce/__init__.py +2 -0
  80. camel/societies/workforce/events.py +122 -0
  81. camel/societies/workforce/prompts.py +146 -66
  82. camel/societies/workforce/role_playing_worker.py +15 -11
  83. camel/societies/workforce/single_agent_worker.py +302 -65
  84. camel/societies/workforce/structured_output_handler.py +30 -18
  85. camel/societies/workforce/task_channel.py +163 -27
  86. camel/societies/workforce/utils.py +107 -13
  87. camel/societies/workforce/workflow_memory_manager.py +772 -0
  88. camel/societies/workforce/workforce.py +1949 -579
  89. camel/societies/workforce/workforce_callback.py +74 -0
  90. camel/societies/workforce/workforce_logger.py +168 -145
  91. camel/societies/workforce/workforce_metrics.py +33 -0
  92. camel/storages/key_value_storages/json.py +15 -2
  93. camel/storages/key_value_storages/mem0_cloud.py +48 -47
  94. camel/storages/object_storages/google_cloud.py +1 -1
  95. camel/storages/vectordb_storages/oceanbase.py +13 -13
  96. camel/storages/vectordb_storages/qdrant.py +3 -3
  97. camel/storages/vectordb_storages/tidb.py +8 -6
  98. camel/tasks/task.py +4 -3
  99. camel/toolkits/__init__.py +20 -7
  100. camel/toolkits/aci_toolkit.py +45 -0
  101. camel/toolkits/base.py +6 -4
  102. camel/toolkits/code_execution.py +28 -1
  103. camel/toolkits/context_summarizer_toolkit.py +684 -0
  104. camel/toolkits/dappier_toolkit.py +5 -1
  105. camel/toolkits/dingtalk.py +1135 -0
  106. camel/toolkits/edgeone_pages_mcp_toolkit.py +11 -31
  107. camel/toolkits/excel_toolkit.py +1 -1
  108. camel/toolkits/{file_write_toolkit.py → file_toolkit.py} +430 -36
  109. camel/toolkits/function_tool.py +13 -3
  110. camel/toolkits/github_toolkit.py +104 -17
  111. camel/toolkits/gmail_toolkit.py +1839 -0
  112. camel/toolkits/google_calendar_toolkit.py +38 -4
  113. camel/toolkits/google_drive_mcp_toolkit.py +12 -31
  114. camel/toolkits/hybrid_browser_toolkit/config_loader.py +15 -0
  115. camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py +77 -8
  116. camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py +884 -88
  117. camel/toolkits/hybrid_browser_toolkit/installer.py +203 -0
  118. camel/toolkits/hybrid_browser_toolkit/ts/package-lock.json +5 -612
  119. camel/toolkits/hybrid_browser_toolkit/ts/package.json +0 -1
  120. camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts +959 -89
  121. camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts +9 -2
  122. camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts +281 -213
  123. camel/toolkits/hybrid_browser_toolkit/ts/src/parent-child-filter.ts +226 -0
  124. camel/toolkits/hybrid_browser_toolkit/ts/src/snapshot-parser.ts +219 -0
  125. camel/toolkits/hybrid_browser_toolkit/ts/src/som-screenshot-injected.ts +543 -0
  126. camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts +23 -3
  127. camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js +72 -7
  128. camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py +582 -132
  129. camel/toolkits/hybrid_browser_toolkit_py/actions.py +158 -0
  130. camel/toolkits/hybrid_browser_toolkit_py/browser_session.py +55 -8
  131. camel/toolkits/hybrid_browser_toolkit_py/config_loader.py +43 -0
  132. camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py +321 -8
  133. camel/toolkits/hybrid_browser_toolkit_py/snapshot.py +10 -4
  134. camel/toolkits/hybrid_browser_toolkit_py/unified_analyzer.js +45 -4
  135. camel/toolkits/{openai_image_toolkit.py → image_generation_toolkit.py} +151 -53
  136. camel/toolkits/klavis_toolkit.py +5 -1
  137. camel/toolkits/markitdown_toolkit.py +27 -1
  138. camel/toolkits/math_toolkit.py +64 -10
  139. camel/toolkits/mcp_toolkit.py +366 -71
  140. camel/toolkits/memory_toolkit.py +5 -1
  141. camel/toolkits/message_integration.py +18 -13
  142. camel/toolkits/minimax_mcp_toolkit.py +195 -0
  143. camel/toolkits/note_taking_toolkit.py +19 -10
  144. camel/toolkits/notion_mcp_toolkit.py +16 -26
  145. camel/toolkits/openbb_toolkit.py +5 -1
  146. camel/toolkits/origene_mcp_toolkit.py +8 -49
  147. camel/toolkits/playwright_mcp_toolkit.py +12 -31
  148. camel/toolkits/resend_toolkit.py +168 -0
  149. camel/toolkits/search_toolkit.py +264 -91
  150. camel/toolkits/slack_toolkit.py +64 -10
  151. camel/toolkits/terminal_toolkit/__init__.py +18 -0
  152. camel/toolkits/terminal_toolkit/terminal_toolkit.py +957 -0
  153. camel/toolkits/terminal_toolkit/utils.py +532 -0
  154. camel/toolkits/vertex_ai_veo_toolkit.py +590 -0
  155. camel/toolkits/video_analysis_toolkit.py +17 -11
  156. camel/toolkits/wechat_official_toolkit.py +483 -0
  157. camel/toolkits/zapier_toolkit.py +5 -1
  158. camel/types/__init__.py +2 -2
  159. camel/types/enums.py +274 -7
  160. camel/types/openai_types.py +2 -2
  161. camel/types/unified_model_type.py +15 -0
  162. camel/utils/commons.py +36 -5
  163. camel/utils/constants.py +3 -0
  164. camel/utils/context_utils.py +1003 -0
  165. camel/utils/mcp.py +138 -4
  166. camel/utils/token_counting.py +43 -20
  167. {camel_ai-0.2.73a4.dist-info → camel_ai-0.2.80a2.dist-info}/METADATA +223 -83
  168. {camel_ai-0.2.73a4.dist-info → camel_ai-0.2.80a2.dist-info}/RECORD +170 -141
  169. camel/loaders/pandas_reader.py +0 -368
  170. camel/toolkits/openai_agent_toolkit.py +0 -135
  171. camel/toolkits/terminal_toolkit.py +0 -1550
  172. {camel_ai-0.2.73a4.dist-info → camel_ai-0.2.80a2.dist-info}/WHEEL +0 -0
  173. {camel_ai-0.2.73a4.dist-info → camel_ai-0.2.80a2.dist-info}/licenses/LICENSE +0 -0
@@ -14,6 +14,7 @@
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.
@@ -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.
@@ -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,7 +281,9 @@ 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:
@@ -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)