camel-ai 0.2.69a6__py3-none-any.whl → 0.2.70__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.

@@ -176,26 +176,40 @@ class FileWriteToolkit(BaseToolkit):
176
176
 
177
177
  doc = Document(documentclass="article")
178
178
  doc.packages.append(Command('usepackage', 'amsmath'))
179
-
180
179
  with doc.create(Section('Generated Content')):
181
180
  for line in content.split('\n'):
182
- # Remove leading whitespace
183
181
  stripped_line = line.strip()
184
- # Check if the line is intended as a standalone math
185
- # expression
182
+
183
+ # Skip empty lines
184
+ if not stripped_line:
185
+ continue
186
+
187
+ # Convert Markdown-like headers
188
+ if stripped_line.startswith('## '):
189
+ header = stripped_line[3:]
190
+ doc.append(NoEscape(r'\subsection*{%s}' % header))
191
+ continue
192
+ elif stripped_line.startswith('# '):
193
+ header = stripped_line[2:]
194
+ doc.append(NoEscape(r'\section*{%s}' % header))
195
+ continue
196
+ elif stripped_line.strip() == '---':
197
+ doc.append(NoEscape(r'\hrule'))
198
+ continue
199
+
200
+ # Detect standalone math expressions like $...$
186
201
  if (
187
202
  stripped_line.startswith('$')
188
203
  and stripped_line.endswith('$')
189
204
  and len(stripped_line) > 1
190
205
  ):
191
- # Extract content between the '$' delimiters
192
206
  math_data = stripped_line[1:-1]
193
207
  doc.append(Math(data=math_data))
194
208
  else:
195
- doc.append(NoEscape(line))
209
+ doc.append(NoEscape(stripped_line))
196
210
  doc.append(NoEscape(r'\par'))
197
211
 
198
- doc.generate_pdf(str(file_path), clean_tex=False)
212
+ doc.generate_pdf(str(file_path), clean_tex=True)
199
213
 
200
214
  logger.info(f"Wrote PDF (with LaTeX) to {file_path}")
201
215
  else:
@@ -0,0 +1,73 @@
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 List, Optional
16
+
17
+ from camel.toolkits import BaseToolkit, FunctionTool
18
+
19
+ from .mcp_toolkit import MCPToolkit
20
+
21
+
22
+ class GoogleDriveMCPToolkit(BaseToolkit):
23
+ r"""GoogleDriveMCPToolkit provides an interface for interacting with
24
+ Google Drive using the Google Drive MCP server.
25
+
26
+ Attributes:
27
+ timeout (Optional[float]): Connection timeout in seconds.
28
+ (default: :obj:`None`)
29
+ """
30
+
31
+ def __init__(
32
+ self,
33
+ timeout: Optional[float] = None,
34
+ credentials_path: Optional[str] = None,
35
+ ) -> None:
36
+ r"""Initializes the GoogleDriveMCPToolkit.
37
+
38
+ Args:
39
+ timeout (Optional[float]): Connection timeout in seconds.
40
+ (default: :obj:`None`)
41
+ credentials_path (Optional[str]): Path to the Google Drive
42
+ credentials file. (default: :obj:`None`)
43
+ """
44
+ super().__init__(timeout=timeout)
45
+
46
+ self._mcp_toolkit = MCPToolkit(
47
+ config_dict={
48
+ "mcpServers": {
49
+ "gdrive": {
50
+ "command": "npx",
51
+ "args": ["-y", "@modelcontextprotocol/server-gdrive"],
52
+ "env": {"GDRIVE_CREDENTIALS_PATH": credentials_path},
53
+ }
54
+ }
55
+ },
56
+ timeout=timeout,
57
+ )
58
+
59
+ async def connect(self):
60
+ r"""Explicitly connect to the Google Drive MCP server."""
61
+ await self._mcp_toolkit.connect()
62
+
63
+ async def disconnect(self):
64
+ r"""Explicitly disconnect from the Google Drive MCP server."""
65
+ await self._mcp_toolkit.disconnect()
66
+
67
+ def get_tools(self) -> List[FunctionTool]:
68
+ r"""Returns a list of tools provided by the GoogleDriveMCPToolkit.
69
+
70
+ Returns:
71
+ List[FunctionTool]: List of available tools.
72
+ """
73
+ return self._mcp_toolkit.get_tools()
@@ -457,7 +457,37 @@ class MCPToolkit(BaseToolkit):
457
457
  try:
458
458
  schema = tool.get_openai_tool_schema()
459
459
 
460
- # Check if the tool already has strict mode enabled
460
+ # Check if any object in the schema has additionalProperties: true
461
+ def _has_additional_properties_true(obj):
462
+ r"""Recursively check if any object has additionalProperties: true""" # noqa: E501
463
+ if isinstance(obj, dict):
464
+ if obj.get("additionalProperties") is True:
465
+ return True
466
+ for value in obj.values():
467
+ if _has_additional_properties_true(value):
468
+ return True
469
+ elif isinstance(obj, list):
470
+ for item in obj:
471
+ if _has_additional_properties_true(item):
472
+ return True
473
+ return False
474
+
475
+ # FIRST: Check if the schema contains additionalProperties: true
476
+ # This must be checked before strict mode validation
477
+ if _has_additional_properties_true(schema):
478
+ # Force strict mode to False and log warning
479
+ if "function" in schema:
480
+ schema["function"]["strict"] = False
481
+ tool.set_openai_tool_schema(schema)
482
+ logger.warning(
483
+ f"Tool '{tool.get_function_name()}' contains "
484
+ f"additionalProperties: true which is incompatible with "
485
+ f"OpenAI strict mode. Setting strict=False for this tool."
486
+ )
487
+ return tool
488
+
489
+ # SECOND: Check if the tool already has strict mode enabled
490
+ # Only do this if there are no additionalProperties conflicts
461
491
  if schema.get("function", {}).get("strict") is True:
462
492
  return tool
463
493
 
@@ -187,7 +187,8 @@ class TerminalToolkit(BaseToolkit):
187
187
  logger.error(f"Failed to create environment: {e}")
188
188
 
189
189
  def _create_terminal(self):
190
- r"""Create a terminal GUI."""
190
+ r"""Create a terminal GUI. If GUI creation fails, fallback
191
+ to file output."""
191
192
 
192
193
  try:
193
194
  import tkinter as tk
@@ -239,7 +240,12 @@ class TerminalToolkit(BaseToolkit):
239
240
  self.root.mainloop()
240
241
 
241
242
  except Exception as e:
242
- logger.error(f"Failed to create terminal: {e}")
243
+ logger.warning(
244
+ f"Failed to create GUI terminal: {e}, "
245
+ f"falling back to file output mode"
246
+ )
247
+ # Fallback to file output mode when GUI creation fails
248
+ self._setup_file_output()
243
249
  self.terminal_ready.set()
244
250
 
245
251
  def _update_terminal_output(self, output: str):
@@ -249,8 +255,9 @@ class TerminalToolkit(BaseToolkit):
249
255
  output (str): The output to be sent to the agent
250
256
  """
251
257
  try:
252
- # If it is macOS , only write to file
253
- if self.is_macos:
258
+ # If it is macOS or if we have a log_file (fallback mode),
259
+ # write to file
260
+ if self.is_macos or hasattr(self, 'log_file'):
254
261
  if hasattr(self, 'log_file'):
255
262
  with open(self.log_file, "a") as f:
256
263
  f.write(output)
camel/types/enums.py CHANGED
@@ -185,8 +185,8 @@ class ModelType(UnifiedModelType, Enum):
185
185
  NVIDIA_LLAMA3_3_70B_INSTRUCT = "meta/llama-3.3-70b-instruct"
186
186
 
187
187
  # Gemini models
188
- GEMINI_2_5_FLASH_PREVIEW = "gemini-2.5-flash-preview-04-17"
189
- GEMINI_2_5_PRO_PREVIEW = "gemini-2.5-pro-preview-06-05"
188
+ GEMINI_2_5_FLASH = "gemini-2.5-flash"
189
+ GEMINI_2_5_PRO = "gemini-2.5-pro"
190
190
  GEMINI_2_0_FLASH = "gemini-2.0-flash"
191
191
  GEMINI_2_0_FLASH_EXP = "gemini-2.0-flash-exp"
192
192
  GEMINI_2_0_FLASH_THINKING = "gemini-2.0-flash-thinking-exp"
@@ -209,6 +209,7 @@ class ModelType(UnifiedModelType, Enum):
209
209
  MISTRAL_PIXTRAL_12B = "pixtral-12b-2409"
210
210
  MISTRAL_MEDIUM_3 = "mistral-medium-latest"
211
211
  MAGISTRAL_MEDIUM = "magistral-medium-2506"
212
+ MISTRAL_SMALL_3_2 = "mistral-small-2506"
212
213
 
213
214
  # Reka models
214
215
  REKA_CORE = "reka-core"
@@ -646,6 +647,7 @@ class ModelType(UnifiedModelType, Enum):
646
647
  ModelType.MISTRAL_3B,
647
648
  ModelType.MISTRAL_MEDIUM_3,
648
649
  ModelType.MAGISTRAL_MEDIUM,
650
+ ModelType.MISTRAL_SMALL_3_2,
649
651
  }
650
652
 
651
653
  @property
@@ -674,8 +676,8 @@ class ModelType(UnifiedModelType, Enum):
674
676
  bool: Whether this type of models is gemini.
675
677
  """
676
678
  return self in {
677
- ModelType.GEMINI_2_5_FLASH_PREVIEW,
678
- ModelType.GEMINI_2_5_PRO_PREVIEW,
679
+ ModelType.GEMINI_2_5_FLASH,
680
+ ModelType.GEMINI_2_5_PRO,
679
681
  ModelType.GEMINI_2_0_FLASH,
680
682
  ModelType.GEMINI_2_0_FLASH_EXP,
681
683
  ModelType.GEMINI_2_0_FLASH_THINKING,
@@ -1166,6 +1168,7 @@ class ModelType(UnifiedModelType, Enum):
1166
1168
  ModelType.MISTRAL_PIXTRAL_12B,
1167
1169
  ModelType.MISTRAL_8B,
1168
1170
  ModelType.MISTRAL_3B,
1171
+ ModelType.MISTRAL_SMALL_3_2,
1169
1172
  ModelType.QWEN_2_5_CODER_32B,
1170
1173
  ModelType.QWEN_2_5_VL_72B,
1171
1174
  ModelType.QWEN_2_5_72B,
@@ -1278,8 +1281,8 @@ class ModelType(UnifiedModelType, Enum):
1278
1281
  }:
1279
1282
  return 512_000
1280
1283
  elif self in {
1281
- ModelType.GEMINI_2_5_FLASH_PREVIEW,
1282
- ModelType.GEMINI_2_5_PRO_PREVIEW,
1284
+ ModelType.GEMINI_2_5_FLASH,
1285
+ ModelType.GEMINI_2_5_PRO,
1283
1286
  ModelType.GEMINI_2_0_FLASH,
1284
1287
  ModelType.GEMINI_2_0_FLASH_EXP,
1285
1288
  ModelType.GEMINI_2_0_FLASH_THINKING,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: camel-ai
3
- Version: 0.2.69a6
3
+ Version: 0.2.70
4
4
  Summary: Communicative Agents for AI Society Study
5
5
  Project-URL: Homepage, https://www.camel-ai.org/
6
6
  Project-URL: Repository, https://github.com/camel-ai/camel
@@ -31,6 +31,7 @@ Requires-Dist: arxiv<3,>=2.1.3; extra == 'all'
31
31
  Requires-Dist: azure-storage-blob<13,>=12.21.0; extra == 'all'
32
32
  Requires-Dist: beautifulsoup4<5,>=4; extra == 'all'
33
33
  Requires-Dist: botocore<2,>=1.35.3; extra == 'all'
34
+ Requires-Dist: chromadb<1.0.0,>=0.6.0; extra == 'all'
34
35
  Requires-Dist: chunkr-ai>=0.0.50; extra == 'all'
35
36
  Requires-Dist: cohere<6,>=5.11.0; extra == 'all'
36
37
  Requires-Dist: crawl4ai>=0.3.745; extra == 'all'
@@ -86,10 +87,12 @@ Requires-Dist: openapi-spec-validator<0.8,>=0.7.1; extra == 'all'
86
87
  Requires-Dist: openpyxl>=3.1.5; extra == 'all'
87
88
  Requires-Dist: pandas<2,>=1.5.3; extra == 'all'
88
89
  Requires-Dist: pandasai<3,>=2.3.0; extra == 'all'
90
+ Requires-Dist: pgvector<0.3,>=0.2.4; extra == 'all'
89
91
  Requires-Dist: playwright>=1.50.0; extra == 'all'
90
92
  Requires-Dist: prance<24,>=23.6.21.0; extra == 'all'
91
93
  Requires-Dist: praw<8,>=7.7.1; extra == 'all'
92
94
  Requires-Dist: pre-commit<4,>=3; extra == 'all'
95
+ Requires-Dist: psycopg[binary]<4,>=3.1.18; extra == 'all'
93
96
  Requires-Dist: pyautogui<0.10,>=0.9.54; extra == 'all'
94
97
  Requires-Dist: pydub<0.26,>=0.25.1; extra == 'all'
95
98
  Requires-Dist: pygithub<3,>=2.6.0; extra == 'all'
@@ -288,6 +291,7 @@ Requires-Dist: wikipedia<2,>=1; extra == 'owl'
288
291
  Requires-Dist: xls2xlsx>=0.2.0; extra == 'owl'
289
292
  Requires-Dist: yt-dlp<2025,>=2024.11.4; extra == 'owl'
290
293
  Provides-Extra: rag
294
+ Requires-Dist: chromadb<1.0.0,>=0.6.0; extra == 'rag'
291
295
  Requires-Dist: chunkr-ai>=0.0.50; extra == 'rag'
292
296
  Requires-Dist: cohere<6,>=5.11.0; extra == 'rag'
293
297
  Requires-Dist: crawl4ai>=0.3.745; extra == 'rag'
@@ -311,11 +315,14 @@ Requires-Dist: scholarly[tor]==1.7.11; extra == 'research-tools'
311
315
  Provides-Extra: storage
312
316
  Requires-Dist: azure-storage-blob<13,>=12.21.0; extra == 'storage'
313
317
  Requires-Dist: botocore<2,>=1.35.3; extra == 'storage'
318
+ Requires-Dist: chromadb<1.0.0,>=0.6.0; extra == 'storage'
314
319
  Requires-Dist: faiss-cpu<2,>=1.7.2; extra == 'storage'
315
320
  Requires-Dist: google-cloud-storage<3,>=2.18.0; extra == 'storage'
316
321
  Requires-Dist: mem0ai>=0.1.73; extra == 'storage'
317
322
  Requires-Dist: nebula3-python==3.8.2; extra == 'storage'
318
323
  Requires-Dist: neo4j<6,>=5.18.0; extra == 'storage'
324
+ Requires-Dist: pgvector<0.3,>=0.2.4; extra == 'storage'
325
+ Requires-Dist: psycopg[binary]<4,>=3.1.18; extra == 'storage'
319
326
  Requires-Dist: pymilvus<3,>=2.4.0; extra == 'storage'
320
327
  Requires-Dist: pyobvector>=0.1.18; extra == 'storage'
321
328
  Requires-Dist: pytidb-experimental==0.0.1.dev4; extra == 'storage'
@@ -1,4 +1,4 @@
1
- camel/__init__.py,sha256=A5ziO5SRxLf3bwmM8EImvN3SUQiBmZraUQyvySPP66A,901
1
+ camel/__init__.py,sha256=rtQ7MDzPTxNXpydxnv9IwyW7crRkyL7PBwDGcQg017U,899
2
2
  camel/generators.py,sha256=JRqj9_m1PF4qT6UtybzTQ-KBT9MJQt18OAAYvQ_fr2o,13844
3
3
  camel/human.py,sha256=Xg8x1cS5KK4bQ1SDByiHZnzsRpvRP-KZViNvmu38xo4,5475
4
4
  camel/logger.py,sha256=rZVeOVYuQ9RYJ5Tqyv0usqy0g4zaVEq4qSfZ9nd2640,5755
@@ -7,7 +7,7 @@ camel/agents/__init__.py,sha256=64weKqdvmpZcGWyVkO-OKASAmVUdrQjv60JApgPk_SA,1644
7
7
  camel/agents/_types.py,sha256=ryPRmEXnpNtbFT23GoAcwK-zxWWsIOqYu64mxMx_PhI,1430
8
8
  camel/agents/_utils.py,sha256=AR7Qqgbkmn4X2edYUQf1rdksGUyV5hm3iK1z-Dn0Mcg,6266
9
9
  camel/agents/base.py,sha256=c4bJYL3G3Z41SaFdMPMn8ZjLdFiFaVOFO6EQIfuCVR8,1124
10
- camel/agents/chat_agent.py,sha256=x0-PgQ2ptvqHYv_nu2tcWdWn7szl8o6TzYjr739U4Rk,79407
10
+ camel/agents/chat_agent.py,sha256=4cHBlg2GHR_NCV7WbEGaAIRYLdSIuwqkqs6PCbrJS9E,87440
11
11
  camel/agents/critic_agent.py,sha256=L6cTbYjyZB0DCa51tQ6LZLA6my8kHLC4nktHySH78H4,10433
12
12
  camel/agents/deductive_reasoner_agent.py,sha256=6BZGaq1hR6hKJuQtOfoYQnk_AkZpw_Mr7mUy2MspQgs,13540
13
13
  camel/agents/embodied_agent.py,sha256=XBxBu5ZMmSJ4B2U3Z7SMwvLlgp6yNpaBe8HNQmY9CZA,7536
@@ -160,9 +160,9 @@ camel/memories/blocks/__init__.py,sha256=ci7_WU11222cNd1Zkv-a0z5E2ux95NMjAYm_cDz
160
160
  camel/memories/blocks/chat_history_block.py,sha256=ZAQZ9NqbwZ_w8XebQ3vVPSTA2sfUNooOfI4oNrGxdDo,6679
161
161
  camel/memories/blocks/vectordb_block.py,sha256=r0mRGLV14YUr8aruLdylBjKdSm11oprsiNEWl0EJJhQ,4166
162
162
  camel/memories/context_creators/__init__.py,sha256=pqzkBM2ro5JZD7RhWg05TjinphhCq0QTIqBJlIL1sJ0,800
163
- camel/memories/context_creators/score_based.py,sha256=26YCaPQbIF4_0QpLyhAhFgGZaq0vwCAEgqpu4yyg6vA,16246
163
+ camel/memories/context_creators/score_based.py,sha256=OQ7eEECkzu4Op5sS9qS1dVgZl-cchSkUZj8Puh8C024,16488
164
164
  camel/messages/__init__.py,sha256=Px-gTFp2Kcgbeb2sZQ_f4tqjoLHE-QEOiMHIMfPrvTw,1949
165
- camel/messages/base.py,sha256=4tW240FyYWBoNhvfFClCjCGoiHiAdhHqMqsbg2_nX44,19760
165
+ camel/messages/base.py,sha256=901eWwx-fU_xmInCtVPnXwBbH3vh9lwh4yW1OWujiOY,19762
166
166
  camel/messages/func_message.py,sha256=2fv35Ruyhhf-wmqtCPiqC-ZujnR-hJH-rEoSgPTKdA8,5959
167
167
  camel/messages/conversion/__init__.py,sha256=8B4C-0wj-dm925YRKNyx31WYK25PWpME7Q9jPtx2jkY,1047
168
168
  camel/messages/conversion/alpaca.py,sha256=jBU2bMhzNjzptGuoasThYvFov_cYPCYt3pEfs0T7z7U,4163
@@ -268,7 +268,7 @@ camel/schemas/openai_converter.py,sha256=SEnYsYcboZgVmjcC1YP5xke3c0MYPESPRmYQWsD
268
268
  camel/schemas/outlines_converter.py,sha256=OYKPR1fNyrYs9eh5RiXEAccMbnRc9WTwSVJYbh9HkKE,8738
269
269
  camel/societies/__init__.py,sha256=NOHjtlsY-gV9UCF2xXgcbG-xXyuigmbwbpLpNsDgEJ4,826
270
270
  camel/societies/babyagi_playing.py,sha256=KbTdpHfZ2V8AripVck0bNTOyF-RSaMPCRARz3DvzWfQ,11855
271
- camel/societies/role_playing.py,sha256=1TsQbGYmN91BeQ0DGM5PpSJ9TMbn1F3maJNuv4fQ5zI,31749
271
+ camel/societies/role_playing.py,sha256=0XScr3WfxX1QOC71RhBLmrcS5y2c7DMQB_mAFOHU34M,31421
272
272
  camel/societies/workforce/__init__.py,sha256=bkTI-PE-MSK9AQ2V2gR6cR2WY-R7Jqy_NmXRtAoqo8o,920
273
273
  camel/societies/workforce/base.py,sha256=z2DmbTP5LL5-aCAAqglznQqCLfPmnyM5zD3w6jjtsb8,2175
274
274
  camel/societies/workforce/prompts.py,sha256=_l7OUkzH5p7KOd8HMZle9zB9W3jKza_Yb_6elFKiZ2s,11813
@@ -277,9 +277,9 @@ camel/societies/workforce/single_agent_worker.py,sha256=ZDVq5doJUoUY0Uuvhkucf4U-
277
277
  camel/societies/workforce/task_channel.py,sha256=uqQQI67Tr4awbR4bjZXdx8_4gL6-ON5IjQk_H_ryqT4,7431
278
278
  camel/societies/workforce/utils.py,sha256=Gjlz7pLo4r1b6iNHtlIMxeEuat4d6tEEQMI40JAU3kY,6190
279
279
  camel/societies/workforce/worker.py,sha256=36tkOyz4G2wfBdrFjt9NBPXsx4UbE6uL5on8sP2aoqk,6414
280
- camel/societies/workforce/workforce.py,sha256=xiWLSoRHOC1yz9WK0uXImwQkblr7XIJ6BXdNrEUf7Rk,88755
281
- camel/societies/workforce/workforce_logger.py,sha256=2xGMMYQPphC5WlPbgWWp9SEY2hGpP-GkhgsNC19irns,24237
282
- camel/storages/__init__.py,sha256=bFpvvAS2QyZoIr-tnwhMWsZRL411kIRq6IMUHcI7KHs,1989
280
+ camel/societies/workforce/workforce.py,sha256=Nm7TML3I_rZVo22lLxt27fpBUopfFkG1MacVKCPJRIY,100497
281
+ camel/societies/workforce/workforce_logger.py,sha256=7xOnmsqeHNoNiwqhFyh3SUtfOHCslCoX6aB2MMCnb0M,24865
282
+ camel/storages/__init__.py,sha256=RwpEyvxpMbJzVDZJJygeBg4AzyYMkTjjkfB53hTuqGo,2141
283
283
  camel/storages/graph_storages/__init__.py,sha256=G29BNn651C0WTOpjCl4QnVM-4B9tcNh8DdmsCiONH8Y,948
284
284
  camel/storages/graph_storages/base.py,sha256=uSe9jWuLudfm5jtfo6E-L_kNzITwK1_Ef-6L4HWw-JM,2852
285
285
  camel/storages/graph_storages/graph_element.py,sha256=X_2orbQOMaQd00xxzAoJLfEcrVNE1mgCqMJv0orMAKA,2733
@@ -296,22 +296,24 @@ camel/storages/object_storages/amazon_s3.py,sha256=9Yvyyyb1LGHxr8REEza7oGopbVtLE
296
296
  camel/storages/object_storages/azure_blob.py,sha256=66dHcvjE2ZNdb339oBU6LbFiKzPYrnlb4tQ_3m2Yazc,5992
297
297
  camel/storages/object_storages/base.py,sha256=pImWylYJm7Wt8q87lBE1Cxk26IJ9sRtXq_OJmV6bJlg,3796
298
298
  camel/storages/object_storages/google_cloud.py,sha256=59AvGar_GDoGYHhzUi5KBtInv2KaUVnw8SalsL43410,5332
299
- camel/storages/vectordb_storages/__init__.py,sha256=GJomO2FAFw-QuRoDnucqBhvnWNAic9pU47VgASeVQoQ,1296
299
+ camel/storages/vectordb_storages/__init__.py,sha256=ZxN9EWkhh4W9LGfpwmnQkpiaY1dEfvVERd6QZ-jN4Bs,1412
300
300
  camel/storages/vectordb_storages/base.py,sha256=EP_WbEtI3SJPHro9rjNkIq9UDUP1AAHmxZgeya94Lgk,6738
301
+ camel/storages/vectordb_storages/chroma.py,sha256=wXuLUYsgkC2VvdyLrlL5VqEDVzJDBUo7OdimK8hBLmg,27553
301
302
  camel/storages/vectordb_storages/faiss.py,sha256=MHE3db9kJmVuu0aScXsSo8p60TCtc2Ot0rO77zcPgt8,26760
302
303
  camel/storages/vectordb_storages/milvus.py,sha256=ChQyEuaXCWCKxytLN2z4QrkEthx2xE6bQPO6KCS9RgQ,13535
303
304
  camel/storages/vectordb_storages/oceanbase.py,sha256=eNBelw4D6r3OWlhHzGJ8Xw-ej9nU1uTZ6CYoXdbxDkI,17054
305
+ camel/storages/vectordb_storages/pgvector.py,sha256=p-5RGCVT46zP-Yop85thWi2m0ZnHILSJFpu2A-7qWnk,12438
304
306
  camel/storages/vectordb_storages/qdrant.py,sha256=a_cT0buSCHQ2CPZy852-mdvMDwy5zodCvAKMaa4zIvg,18017
305
307
  camel/storages/vectordb_storages/tidb.py,sha256=w83bxgKgso43MtHqlpf2EMSpn1_Nz6ZZtY4fPw_-vgs,11192
306
308
  camel/storages/vectordb_storages/weaviate.py,sha256=wDUE4KvfmOl3DqHFU4uF0VKbHu-q9vKhZDe8FZ6QXsk,27888
307
309
  camel/tasks/__init__.py,sha256=MuHwkw5GRQc8NOCzj8tjtBrr2Xg9KrcKp-ed_-2ZGIM,906
308
- camel/tasks/task.py,sha256=RXRGbzDc00UZQ6f6EIFyaLLlGVKoyhXMWQr9ooLwg18,16337
310
+ camel/tasks/task.py,sha256=kH36nIw4PXeTNvm3gDQIaItfJDHK00ov6fVIizgAhWA,17554
309
311
  camel/tasks/task_prompt.py,sha256=3KZmKYKUPcTKe8EAZOZBN3G05JHRVt7oHY9ORzLVu1g,2150
310
312
  camel/terminators/__init__.py,sha256=t8uqrkUnXEOYMXQDgaBkMFJ0EXFKI0kmx4cUimli3Ls,991
311
313
  camel/terminators/base.py,sha256=xmJzERX7GdSXcxZjAHHODa0rOxRChMSRboDCNHWSscs,1511
312
314
  camel/terminators/response_terminator.py,sha256=n3G5KP6Oj7-7WlRN0yFcrtLpqAJKaKS0bmhrWlFfCgQ,4982
313
315
  camel/terminators/token_limit_terminator.py,sha256=YWv6ZR8R9yI2Qnf_3xES5bEE_O5bb2CxQ0EUXfMh34c,2118
314
- camel/toolkits/__init__.py,sha256=hgg25B07IzPdJWmDVm_XQzLRHjtiNwCaroJDfvAiDOQ,5356
316
+ camel/toolkits/__init__.py,sha256=5yiCSYevRW2yufHTk48LGS8J6hm5WviAcTlgKaxAj8o,5444
315
317
  camel/toolkits/aci_toolkit.py,sha256=39AsXloBb16hHB7DKi6mFU6NPZ3iVpM2FZgaP4o4eLE,16060
316
318
  camel/toolkits/arxiv_toolkit.py,sha256=mw629nIN_ozaAxNv3nbvhonJKNI2-97ScRCBS3gVqNo,6297
317
319
  camel/toolkits/ask_news_toolkit.py,sha256=WfWaqwEo1Apbil3-Rb5y65Ws43NU4rAFWZu5VHe4los,23448
@@ -327,11 +329,12 @@ camel/toolkits/dalle_toolkit.py,sha256=GSnV7reQsVmhMi9sbQy1Ks_5Vs57Dlir_AbT2PPCZ
327
329
  camel/toolkits/dappier_toolkit.py,sha256=OEHOYXX_oXhgbVtWYAy13nO9uXf9i5qEXSwY4PexNFg,8194
328
330
  camel/toolkits/data_commons_toolkit.py,sha256=aHZUSL1ACpnYGaf1rE2csVKTmXTmN8lMGRUBYhZ_YEk,14168
329
331
  camel/toolkits/edgeone_pages_mcp_toolkit.py,sha256=1TFpAGHUNLggFQeN1OEw7P5laijwnlrCkfxBtgxFuUY,2331
330
- camel/toolkits/excel_toolkit.py,sha256=DSjBXl24_LrJubGFFmB_vqliKzzWTbT1TH309YQVUO8,6653
331
- camel/toolkits/file_write_toolkit.py,sha256=i1CivjvqTpHakYK_EynNvNikjZZYsusxkjT2v-f9EYc,16473
332
+ camel/toolkits/excel_toolkit.py,sha256=9Uk5GLWl719c4W-NcGPJTNMtodAbEE5gUgLsFkIInbk,32564
333
+ camel/toolkits/file_write_toolkit.py,sha256=8G7swo_9EXpbt5IO-hCy-Wf5BPd70ewfpCHqErPsCXU,17072
332
334
  camel/toolkits/function_tool.py,sha256=xCDzjxTRCVj_kmbnMFBuwK-3NuzM4JNe_kv9HLtjnIA,33644
333
335
  camel/toolkits/github_toolkit.py,sha256=iUyRrjWGAW_iljZVfNyfkm1Vi55wJxK6PsDAQs9pOag,13099
334
336
  camel/toolkits/google_calendar_toolkit.py,sha256=E-sdgdbtNBs_CXbhht9t1dsVr4DsTr5NguHkx4fvSmc,15410
337
+ camel/toolkits/google_drive_mcp_toolkit.py,sha256=NubrRdPV8_t8bM4vP-7eKSVMuVwSEBXLfubWR_Hba7k,2583
335
338
  camel/toolkits/google_maps_toolkit.py,sha256=WTnkURpGri9KcY5OwV7AJJHOzmpu5RNmYE1QCVqvwWM,12023
336
339
  camel/toolkits/google_scholar_toolkit.py,sha256=WQ9a0HQr0vro1Uo1m--alCUXvMmaHVKeQYqGCxXc2s8,7562
337
340
  camel/toolkits/human_toolkit.py,sha256=ZbhXPA0G3mQkcNW_jPwywReAft2pIJG0WkVXOG48s1w,2328
@@ -341,7 +344,7 @@ camel/toolkits/klavis_toolkit.py,sha256=ZKerhgz5e-AV-iv0ftf07HgWikknIHjB3EOQswfu
341
344
  camel/toolkits/linkedin_toolkit.py,sha256=wn4eXwYYlVA7doTna7k7WYhUqTBF83W79S-UJs_IQr0,8065
342
345
  camel/toolkits/markitdown_toolkit.py,sha256=7jxPbaE2CIq1FpT41q52Fznw-Gx05ITWn1t9O5IytA4,2867
343
346
  camel/toolkits/math_toolkit.py,sha256=KdI8AJ9Dbq5cfWboAYJUYgSkmADMCO5eZ6yqYkWuiIQ,3686
344
- camel/toolkits/mcp_toolkit.py,sha256=czGYgZ-Vd9NdAcPe_hoA7ZYxSV2QKhsxuJNZNg3Rof4,25459
347
+ camel/toolkits/mcp_toolkit.py,sha256=da7QLwGKIKnKvMx5mOOiC56w0hKV1bvD1Z9PgrSHOtA,26999
345
348
  camel/toolkits/memory_toolkit.py,sha256=TeKYd5UMwgjVpuS2orb-ocFL13eUNKujvrFOruDCpm8,4436
346
349
  camel/toolkits/meshy_toolkit.py,sha256=NbgdOBD3FYLtZf-AfonIv6-Q8-8DW129jsaP1PqI2rs,7126
347
350
  camel/toolkits/mineru_toolkit.py,sha256=vRX9LholLNkpbJ6axfEN4pTG85aWb0PDmlVy3rAAXhg,6868
@@ -365,7 +368,7 @@ camel/toolkits/slack_toolkit.py,sha256=Nb3w-TbUmnUWEvHE9Hbf_wkpSepm_zKQj7m19UyoF
365
368
  camel/toolkits/stripe_toolkit.py,sha256=07swo5znGTnorafC1uYLKB4NRcJIOPOx19J7tkpLYWk,10102
366
369
  camel/toolkits/sympy_toolkit.py,sha256=BAQnI8EFJydNUpKQWXBdleQ1Cm-srDBhFlqp9V9pbPQ,33757
367
370
  camel/toolkits/task_planning_toolkit.py,sha256=Ttw9fHae4omGC1SA-6uaeXVHJ1YkwiVloz_hO-fm1gw,4855
368
- camel/toolkits/terminal_toolkit.py,sha256=gupuTvNkwnFzcFwDB_irSJ9-dXRr8yEAsYq5ChEkkHg,37230
371
+ camel/toolkits/terminal_toolkit.py,sha256=15pEz281g_6sJq5xGPdFFonjjHEDPf-NGJtfM-csOu0,37559
369
372
  camel/toolkits/thinking_toolkit.py,sha256=nZYLvKWIx2BM1DYu69I9B5EISAG7aYcLYXKv9663BVk,8000
370
373
  camel/toolkits/twitter_toolkit.py,sha256=Px4N8aUxUzy01LhGSWkdrC2JgwKkrY3cvxgMeJ2XYfU,15939
371
374
  camel/toolkits/video_analysis_toolkit.py,sha256=Wh08MAVvs3PtgXN88Sk0TXYaGfVmQAol8FPCXMPPpIM,23375
@@ -407,7 +410,7 @@ camel/toolkits/open_api_specs/web_scraper/openapi.yaml,sha256=u_WalQ01e8W1D27VnZ
407
410
  camel/toolkits/open_api_specs/web_scraper/paths/__init__.py,sha256=OKCZrQCDwaWtXIN_2rA9FSqEvgpQRieRoHh7Ek6N16A,702
408
411
  camel/toolkits/open_api_specs/web_scraper/paths/scraper.py,sha256=aWy1_ppV4NVVEZfnbN3tu9XA9yAPAC9bRStJ5JuXMRU,1117
409
412
  camel/types/__init__.py,sha256=pFTg3CWGSCfwFdoxPDTf4dKV8DdJS1x-bBPuEOmtdf0,2549
410
- camel/types/enums.py,sha256=hJ1q_9Za5Z5iufB3b6n8FNr3-QXwbQLZ-FVvyrUbTcE,62963
413
+ camel/types/enums.py,sha256=FsUh5p4xo_c-h1Z5xzE7HeSue-pYUR7s4zzkYEDRBwI,63014
411
414
  camel/types/mcp_registries.py,sha256=dl4LgYtSaUhsqAKpz28k_SA9La11qxqBvDLaEuyzrFE,4971
412
415
  camel/types/openai_types.py,sha256=8ZFzLe-zGmKNPfuVZFzxlxAX98lGf18gtrPhOgMmzus,2104
413
416
  camel/types/unified_model_type.py,sha256=ZweHiS4MQ1QbDEX3a3oUc-pvgueYP27Zt0SlAPcYg_4,5623
@@ -434,7 +437,7 @@ camel/verifiers/math_verifier.py,sha256=tA1D4S0sm8nsWISevxSN0hvSVtIUpqmJhzqfbuMo
434
437
  camel/verifiers/models.py,sha256=GdxYPr7UxNrR1577yW4kyroRcLGfd-H1GXgv8potDWU,2471
435
438
  camel/verifiers/physics_verifier.py,sha256=c1grrRddcrVN7szkxhv2QirwY9viIRSITWeWFF5HmLs,30187
436
439
  camel/verifiers/python_verifier.py,sha256=ogTz77wODfEcDN4tMVtiSkRQyoiZbHPY2fKybn59lHw,20558
437
- camel_ai-0.2.69a6.dist-info/METADATA,sha256=LkkXRk2a3WfankzmWhW2GWnrWQzTA6gNgGpAnq50fvA,44882
438
- camel_ai-0.2.69a6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
439
- camel_ai-0.2.69a6.dist-info/licenses/LICENSE,sha256=id0nB2my5kG0xXeimIu5zZrbHLS6EQvxvkKkzIHaT2k,11343
440
- camel_ai-0.2.69a6.dist-info/RECORD,,
440
+ camel_ai-0.2.70.dist-info/METADATA,sha256=rcJwA1uI37kPW3D5P9jRroWihc_DLTbLGmyksOqCDew,45274
441
+ camel_ai-0.2.70.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
442
+ camel_ai-0.2.70.dist-info/licenses/LICENSE,sha256=id0nB2my5kG0xXeimIu5zZrbHLS6EQvxvkKkzIHaT2k,11343
443
+ camel_ai-0.2.70.dist-info/RECORD,,