camel-ai 0.2.57__py3-none-any.whl → 0.2.59__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.
- camel/__init__.py +1 -2
- camel/agents/chat_agent.py +136 -9
- camel/agents/critic_agent.py +73 -8
- camel/agents/mcp_agent.py +296 -83
- camel/benchmarks/__init__.py +2 -0
- camel/benchmarks/browsecomp.py +854 -0
- camel/human.py +14 -0
- camel/loaders/__init__.py +2 -0
- camel/loaders/markitdown.py +204 -0
- camel/models/openai_compatible_model.py +3 -3
- camel/societies/role_playing.py +50 -0
- camel/societies/workforce/role_playing_worker.py +17 -8
- camel/societies/workforce/workforce.py +74 -18
- camel/toolkits/__init__.py +4 -0
- camel/toolkits/async_browser_toolkit.py +1800 -0
- camel/toolkits/base.py +12 -1
- camel/toolkits/browser_toolkit.py +19 -3
- camel/toolkits/excel_toolkit.py +3 -2
- camel/toolkits/function_tool.py +1 -1
- camel/toolkits/mcp_toolkit.py +134 -6
- camel/toolkits/search_toolkit.py +0 -169
- camel/toolkits/wolfram_alpha_toolkit.py +237 -0
- camel/types/__init__.py +10 -0
- camel/types/enums.py +3 -3
- camel/types/mcp_registries.py +157 -0
- {camel_ai-0.2.57.dist-info → camel_ai-0.2.59.dist-info}/METADATA +4 -2
- {camel_ai-0.2.57.dist-info → camel_ai-0.2.59.dist-info}/RECORD +29 -24
- {camel_ai-0.2.57.dist-info → camel_ai-0.2.59.dist-info}/WHEEL +0 -0
- {camel_ai-0.2.57.dist-info → camel_ai-0.2.59.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,237 @@
|
|
|
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
|
+
import os
|
|
15
|
+
import xml.etree.ElementTree as ET
|
|
16
|
+
from typing import Any, Dict, List, Union
|
|
17
|
+
|
|
18
|
+
import requests
|
|
19
|
+
|
|
20
|
+
from camel.toolkits.base import BaseToolkit
|
|
21
|
+
from camel.toolkits.function_tool import FunctionTool
|
|
22
|
+
from camel.utils import MCPServer, api_keys_required, dependencies_required
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@MCPServer()
|
|
26
|
+
class WolframAlphaToolkit(BaseToolkit):
|
|
27
|
+
r"""A class representing a toolkit for WolframAlpha.
|
|
28
|
+
|
|
29
|
+
Wolfram|Alpha is an answer engine developed by Wolfram Research.
|
|
30
|
+
It is offered as an online service that answers factual queries
|
|
31
|
+
by computing answers from externally sourced data.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
@api_keys_required(
|
|
35
|
+
[
|
|
36
|
+
(None, "WOLFRAMALPHA_APP_ID"),
|
|
37
|
+
]
|
|
38
|
+
)
|
|
39
|
+
@dependencies_required("wolframalpha")
|
|
40
|
+
def query_wolfram_alpha(
|
|
41
|
+
self, query: str, is_detailed: bool = False
|
|
42
|
+
) -> Union[str, Dict[str, Any]]:
|
|
43
|
+
r"""Queries Wolfram|Alpha and returns the result.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
query (str): The query to send to Wolfram Alpha.
|
|
47
|
+
is_detailed (bool): Whether to include additional details
|
|
48
|
+
including step by step information in the result.
|
|
49
|
+
(default: :obj:`False`)
|
|
50
|
+
|
|
51
|
+
Returns:
|
|
52
|
+
Union[str, Dict[str, Any]]: The result from Wolfram Alpha.
|
|
53
|
+
Returns a string if `is_detailed` is False, otherwise returns
|
|
54
|
+
a dictionary with detailed information.
|
|
55
|
+
"""
|
|
56
|
+
import wolframalpha
|
|
57
|
+
|
|
58
|
+
WOLFRAMALPHA_APP_ID = os.environ.get("WOLFRAMALPHA_APP_ID", "")
|
|
59
|
+
|
|
60
|
+
try:
|
|
61
|
+
client = wolframalpha.Client(WOLFRAMALPHA_APP_ID)
|
|
62
|
+
res = client.query(query)
|
|
63
|
+
|
|
64
|
+
except Exception as e:
|
|
65
|
+
return f"Wolfram Alpha wasn't able to answer it. Error: {e}"
|
|
66
|
+
|
|
67
|
+
pased_result = self._parse_wolfram_result(res)
|
|
68
|
+
|
|
69
|
+
if is_detailed:
|
|
70
|
+
step_info = self._get_wolframalpha_step_by_step_solution(
|
|
71
|
+
WOLFRAMALPHA_APP_ID, query
|
|
72
|
+
)
|
|
73
|
+
pased_result["steps"] = step_info
|
|
74
|
+
return pased_result
|
|
75
|
+
|
|
76
|
+
return pased_result["final_answer"]
|
|
77
|
+
|
|
78
|
+
@api_keys_required(
|
|
79
|
+
[
|
|
80
|
+
(None, "WOLFRAMALPHA_APP_ID"),
|
|
81
|
+
]
|
|
82
|
+
)
|
|
83
|
+
def query_wolfram_llm(self, query: str) -> str:
|
|
84
|
+
r"""Queries Wolfram|Alpha LLM API and returns the result.
|
|
85
|
+
|
|
86
|
+
Args:
|
|
87
|
+
query (str): The query to send to Wolfram Alpha LLM.
|
|
88
|
+
|
|
89
|
+
Returns:
|
|
90
|
+
str: The result from Wolfram Alpha as a string.
|
|
91
|
+
"""
|
|
92
|
+
|
|
93
|
+
WOLFRAMALPHA_APP_ID = os.environ.get("WOLFRAMALPHA_APP_ID", "")
|
|
94
|
+
|
|
95
|
+
try:
|
|
96
|
+
url = "https://www.wolframalpha.com/api/v1/llm-api"
|
|
97
|
+
params = {"input": query, "appid": WOLFRAMALPHA_APP_ID}
|
|
98
|
+
|
|
99
|
+
response = requests.get(url, params=params)
|
|
100
|
+
response.raise_for_status()
|
|
101
|
+
return response.text
|
|
102
|
+
|
|
103
|
+
except Exception as e:
|
|
104
|
+
return f"Wolfram Alpha wasn't able to answer it. Error: {e}"
|
|
105
|
+
|
|
106
|
+
def _parse_wolfram_result(self, result) -> Dict[str, Any]:
|
|
107
|
+
r"""Parses a Wolfram Alpha API result into a structured dictionary
|
|
108
|
+
format.
|
|
109
|
+
|
|
110
|
+
Args:
|
|
111
|
+
result: The API result returned from a Wolfram Alpha
|
|
112
|
+
query, structured with multiple pods, each containing specific
|
|
113
|
+
information related to the query.
|
|
114
|
+
|
|
115
|
+
Returns:
|
|
116
|
+
Dict[str, Any]: A structured dictionary with the original query
|
|
117
|
+
and the final answer.
|
|
118
|
+
"""
|
|
119
|
+
|
|
120
|
+
# Extract the original query
|
|
121
|
+
query = result.get("@inputstring", "")
|
|
122
|
+
|
|
123
|
+
# Initialize a dictionary to hold structured output
|
|
124
|
+
output = {"query": query, "pod_info": [], "final_answer": None}
|
|
125
|
+
|
|
126
|
+
# Loop through each pod to extract the details
|
|
127
|
+
for pod in result.get("pod", []):
|
|
128
|
+
# Handle the case where subpod might be a list
|
|
129
|
+
subpod_data = pod.get("subpod", {})
|
|
130
|
+
if isinstance(subpod_data, list):
|
|
131
|
+
# If it's a list, get the first item for 'plaintext' and 'img'
|
|
132
|
+
description, image_url = next(
|
|
133
|
+
(
|
|
134
|
+
(data["plaintext"], data["img"])
|
|
135
|
+
for data in subpod_data
|
|
136
|
+
if "plaintext" in data and "img" in data
|
|
137
|
+
),
|
|
138
|
+
("", ""),
|
|
139
|
+
)
|
|
140
|
+
else:
|
|
141
|
+
# Otherwise, handle it as a dictionary
|
|
142
|
+
description = subpod_data.get("plaintext", "")
|
|
143
|
+
image_url = subpod_data.get("img", {}).get("@src", "")
|
|
144
|
+
|
|
145
|
+
pod_info = {
|
|
146
|
+
"title": pod.get("@title", ""),
|
|
147
|
+
"description": description,
|
|
148
|
+
"image_url": image_url,
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
# For Results pod, collect all plaintext values from subpods
|
|
152
|
+
if pod.get("@title") == "Results":
|
|
153
|
+
results_text = []
|
|
154
|
+
if isinstance(subpod_data, list):
|
|
155
|
+
for subpod in subpod_data:
|
|
156
|
+
if subpod.get("plaintext"):
|
|
157
|
+
results_text.append(subpod["plaintext"])
|
|
158
|
+
else:
|
|
159
|
+
if description:
|
|
160
|
+
results_text.append(description)
|
|
161
|
+
pod_info["description"] = "\n".join(results_text)
|
|
162
|
+
|
|
163
|
+
# Add to steps list
|
|
164
|
+
output["pod_info"].append(pod_info)
|
|
165
|
+
|
|
166
|
+
# Get final answer
|
|
167
|
+
if pod.get("@primary", False):
|
|
168
|
+
output["final_answer"] = description
|
|
169
|
+
|
|
170
|
+
return output
|
|
171
|
+
|
|
172
|
+
def _get_wolframalpha_step_by_step_solution(
|
|
173
|
+
self, app_id: str, query: str
|
|
174
|
+
) -> dict:
|
|
175
|
+
r"""Retrieve a step-by-step solution from the Wolfram Alpha API for a
|
|
176
|
+
given query.
|
|
177
|
+
|
|
178
|
+
Args:
|
|
179
|
+
app_id (str): Your Wolfram Alpha API application ID.
|
|
180
|
+
query (str): The mathematical or computational query to solve.
|
|
181
|
+
|
|
182
|
+
Returns:
|
|
183
|
+
dict: The step-by-step solution response text from the Wolfram
|
|
184
|
+
Alpha API.
|
|
185
|
+
"""
|
|
186
|
+
# Define the base URL
|
|
187
|
+
url = "https://api.wolframalpha.com/v2/query"
|
|
188
|
+
|
|
189
|
+
# Set up the query parameters
|
|
190
|
+
params = {
|
|
191
|
+
"appid": app_id,
|
|
192
|
+
"input": query,
|
|
193
|
+
"podstate": ["Result__Step-by-step solution", "Show all steps"],
|
|
194
|
+
"format": "plaintext",
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
# Send the request
|
|
198
|
+
response = requests.get(url, params=params)
|
|
199
|
+
root = ET.fromstring(response.text)
|
|
200
|
+
|
|
201
|
+
# Extracting step-by-step steps, including 'SBSStep' and 'SBSHintStep'
|
|
202
|
+
steps = []
|
|
203
|
+
# Find all subpods within the 'Results' pod
|
|
204
|
+
for subpod in root.findall(".//pod[@title='Results']//subpod"):
|
|
205
|
+
# Check if the subpod has the desired stepbystepcontenttype
|
|
206
|
+
content_type = subpod.find("stepbystepcontenttype")
|
|
207
|
+
if content_type is not None and content_type.text in [
|
|
208
|
+
"SBSStep",
|
|
209
|
+
"SBSHintStep",
|
|
210
|
+
]:
|
|
211
|
+
plaintext = subpod.find("plaintext")
|
|
212
|
+
if plaintext is not None and plaintext.text:
|
|
213
|
+
step_text = plaintext.text.strip()
|
|
214
|
+
cleaned_step = step_text.replace(
|
|
215
|
+
"Hint: |", ""
|
|
216
|
+
).strip() # Remove 'Hint: |' if present
|
|
217
|
+
steps.append(cleaned_step)
|
|
218
|
+
|
|
219
|
+
# Structuring the steps into a dictionary
|
|
220
|
+
structured_steps = {}
|
|
221
|
+
for i, step in enumerate(steps, start=1):
|
|
222
|
+
structured_steps[f"step{i}"] = step
|
|
223
|
+
|
|
224
|
+
return structured_steps
|
|
225
|
+
|
|
226
|
+
def get_tools(self) -> List[FunctionTool]:
|
|
227
|
+
r"""Returns a list of FunctionTool objects representing the
|
|
228
|
+
functions in the toolkit.
|
|
229
|
+
|
|
230
|
+
Returns:
|
|
231
|
+
List[FunctionTool]: A list of FunctionTool objects
|
|
232
|
+
representing the functions in the toolkit.
|
|
233
|
+
"""
|
|
234
|
+
return [
|
|
235
|
+
FunctionTool(self.query_wolfram_alpha),
|
|
236
|
+
FunctionTool(self.query_wolfram_llm),
|
|
237
|
+
]
|
camel/types/__init__.py
CHANGED
|
@@ -29,6 +29,12 @@ from .enums import (
|
|
|
29
29
|
VectorDistance,
|
|
30
30
|
VoiceType,
|
|
31
31
|
)
|
|
32
|
+
from .mcp_registries import (
|
|
33
|
+
ACIRegistryConfig,
|
|
34
|
+
BaseMCPRegistryConfig,
|
|
35
|
+
MCPRegistryType,
|
|
36
|
+
SmitheryRegistryConfig,
|
|
37
|
+
)
|
|
32
38
|
from .openai_types import (
|
|
33
39
|
NOT_GIVEN,
|
|
34
40
|
ChatCompletion,
|
|
@@ -79,4 +85,8 @@ __all__ = [
|
|
|
79
85
|
'GeminiEmbeddingTaskType',
|
|
80
86
|
'NOT_GIVEN',
|
|
81
87
|
'NotGiven',
|
|
88
|
+
'BaseMCPRegistryConfig',
|
|
89
|
+
'MCPRegistryType',
|
|
90
|
+
'SmitheryRegistryConfig',
|
|
91
|
+
'ACIRegistryConfig',
|
|
82
92
|
]
|
camel/types/enums.py
CHANGED
|
@@ -180,7 +180,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
180
180
|
NVIDIA_LLAMA3_3_70B_INSTRUCT = "meta/llama-3.3-70b-instruct"
|
|
181
181
|
|
|
182
182
|
# Gemini models
|
|
183
|
-
|
|
183
|
+
GEMINI_2_5_PRO_PREVIEW = "gemini-2.5-pro-preview-05-06"
|
|
184
184
|
GEMINI_2_0_FLASH = "gemini-2.0-flash-exp"
|
|
185
185
|
GEMINI_2_0_FLASH_THINKING = "gemini-2.0-flash-thinking-exp"
|
|
186
186
|
GEMINI_2_0_PRO_EXP = "gemini-2.0-pro-exp-02-05"
|
|
@@ -629,7 +629,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
629
629
|
bool: Whether this type of models is gemini.
|
|
630
630
|
"""
|
|
631
631
|
return self in {
|
|
632
|
-
ModelType.
|
|
632
|
+
ModelType.GEMINI_2_5_PRO_PREVIEW,
|
|
633
633
|
ModelType.GEMINI_2_0_FLASH,
|
|
634
634
|
ModelType.GEMINI_1_5_FLASH,
|
|
635
635
|
ModelType.GEMINI_1_5_PRO,
|
|
@@ -1181,7 +1181,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
1181
1181
|
}:
|
|
1182
1182
|
return 512_000
|
|
1183
1183
|
elif self in {
|
|
1184
|
-
ModelType.
|
|
1184
|
+
ModelType.GEMINI_2_5_PRO_PREVIEW,
|
|
1185
1185
|
ModelType.GEMINI_2_0_FLASH,
|
|
1186
1186
|
ModelType.GEMINI_1_5_FLASH,
|
|
1187
1187
|
ModelType.GEMINI_1_5_PRO,
|
|
@@ -0,0 +1,157 @@
|
|
|
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
|
+
import os
|
|
15
|
+
import platform
|
|
16
|
+
from enum import Enum, auto
|
|
17
|
+
from typing import Any, Dict, List, Literal, Optional
|
|
18
|
+
|
|
19
|
+
from pydantic import BaseModel, Field, model_validator
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class MCPRegistryType(Enum):
|
|
23
|
+
r"""Enum for different types of MCP registries."""
|
|
24
|
+
|
|
25
|
+
SMITHERY = auto()
|
|
26
|
+
ACI = auto()
|
|
27
|
+
CUSTOM = auto()
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class BaseMCPRegistryConfig(BaseModel):
|
|
31
|
+
r"""Base configuration for an MCP registry.
|
|
32
|
+
|
|
33
|
+
Attributes:
|
|
34
|
+
type (MCPRegistryType): The type of the registry.
|
|
35
|
+
os (Literal["darwin", "linux", "windows"]): The operating system. It
|
|
36
|
+
is automatically set to "darwin" for MacOS, "linux" for Linux, and
|
|
37
|
+
"windows" for Windows.
|
|
38
|
+
api_key (Optional[str]): API key for the registry.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
type: MCPRegistryType
|
|
42
|
+
os: Literal["darwin", "linux", "windows"]
|
|
43
|
+
api_key: Optional[str] = None
|
|
44
|
+
|
|
45
|
+
def get_config(self) -> Dict[str, Any]:
|
|
46
|
+
r"""Generate configuration based on registry type and API key.
|
|
47
|
+
|
|
48
|
+
Returns:
|
|
49
|
+
Dict[str, Any]: The complete configuration for the registry.
|
|
50
|
+
"""
|
|
51
|
+
return {}
|
|
52
|
+
|
|
53
|
+
@model_validator(mode='before')
|
|
54
|
+
@classmethod
|
|
55
|
+
def set_default_os(cls, values: Dict) -> Dict:
|
|
56
|
+
r"""Set the default OS based on the current platform if not provided.
|
|
57
|
+
|
|
58
|
+
Args:
|
|
59
|
+
values (Dict): The values dictionary from the model validation.
|
|
60
|
+
|
|
61
|
+
Returns:
|
|
62
|
+
Dict: The updated values dictionary with the OS set.
|
|
63
|
+
|
|
64
|
+
Raises:
|
|
65
|
+
ValueError: If the current system is not supported.
|
|
66
|
+
"""
|
|
67
|
+
if 'os' not in values or values['os'] is None:
|
|
68
|
+
system = platform.system().lower()
|
|
69
|
+
if system in ('darwin', 'linux', 'windows'):
|
|
70
|
+
values['os'] = system
|
|
71
|
+
else:
|
|
72
|
+
raise ValueError(f"Unsupported system: {system}")
|
|
73
|
+
return values
|
|
74
|
+
|
|
75
|
+
def _prepare_command_args(
|
|
76
|
+
self, command: str, args: List[str]
|
|
77
|
+
) -> Dict[str, Any]:
|
|
78
|
+
r"""Prepare command and arguments based on OS.
|
|
79
|
+
|
|
80
|
+
Args:
|
|
81
|
+
command (str): The base command to run.
|
|
82
|
+
args (List[str]): The arguments for the command.
|
|
83
|
+
|
|
84
|
+
Returns:
|
|
85
|
+
Dict[str, Any]: Command configuration with OS-specific adjustments.
|
|
86
|
+
"""
|
|
87
|
+
if self.os == "windows":
|
|
88
|
+
return {"command": "cmd", "args": ["/c", command, *args]}
|
|
89
|
+
else: # darwin or linux
|
|
90
|
+
return {"command": command, "args": args}
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class SmitheryRegistryConfig(BaseMCPRegistryConfig):
|
|
94
|
+
r"""Configuration for Smithery registry."""
|
|
95
|
+
|
|
96
|
+
type: MCPRegistryType = MCPRegistryType.SMITHERY
|
|
97
|
+
profile: str = Field(
|
|
98
|
+
..., description="The profile to use for the registry."
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
def get_config(self) -> Dict[str, Any]:
|
|
102
|
+
r"""Generate configuration for Smithery registry.
|
|
103
|
+
|
|
104
|
+
Returns:
|
|
105
|
+
Dict[str, Any]: The complete configuration for the registry.
|
|
106
|
+
"""
|
|
107
|
+
api_key = self.api_key or os.environ.get("SMITHERY_API_KEY")
|
|
108
|
+
|
|
109
|
+
args = [
|
|
110
|
+
"-y",
|
|
111
|
+
"@smithery/cli@latest",
|
|
112
|
+
"run",
|
|
113
|
+
"@smithery/toolbox",
|
|
114
|
+
"--key",
|
|
115
|
+
api_key,
|
|
116
|
+
"--profile",
|
|
117
|
+
self.profile,
|
|
118
|
+
]
|
|
119
|
+
|
|
120
|
+
cmd_config = self._prepare_command_args("npx", args) # type: ignore[arg-type]
|
|
121
|
+
|
|
122
|
+
return {"mcpServers": {"toolbox": cmd_config}}
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
class ACIRegistryConfig(BaseMCPRegistryConfig):
|
|
126
|
+
r"""Configuration for ACI registry."""
|
|
127
|
+
|
|
128
|
+
type: MCPRegistryType = MCPRegistryType.ACI
|
|
129
|
+
linked_account_owner_id: str = Field(
|
|
130
|
+
..., description="The owner ID of the linked account."
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
def get_config(self) -> Dict[str, Any]:
|
|
134
|
+
r"""Generate configuration for ACI registry.
|
|
135
|
+
|
|
136
|
+
Returns:
|
|
137
|
+
Dict[str, Any]: The complete configuration for the registry.
|
|
138
|
+
"""
|
|
139
|
+
api_key = self.api_key or os.environ.get("ACI_API_KEY")
|
|
140
|
+
|
|
141
|
+
args = [
|
|
142
|
+
"aci-mcp",
|
|
143
|
+
"unified-server",
|
|
144
|
+
"--linked-account-owner-id",
|
|
145
|
+
self.linked_account_owner_id,
|
|
146
|
+
]
|
|
147
|
+
|
|
148
|
+
cmd_config = self._prepare_command_args("uvx", args)
|
|
149
|
+
|
|
150
|
+
return {
|
|
151
|
+
"mcpServers": {
|
|
152
|
+
"aci-mcp-unified": {
|
|
153
|
+
**cmd_config,
|
|
154
|
+
"env": {"ACI_API_KEY": api_key},
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: camel-ai
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.59
|
|
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
|
|
@@ -65,6 +65,7 @@ Requires-Dist: ipykernel<7,>=6.0.0; extra == 'all'
|
|
|
65
65
|
Requires-Dist: jupyter-client<9,>=8.6.2; extra == 'all'
|
|
66
66
|
Requires-Dist: linkup-sdk<0.3,>=0.2.1; extra == 'all'
|
|
67
67
|
Requires-Dist: litellm<2,>=1.38.1; extra == 'all'
|
|
68
|
+
Requires-Dist: markitdown==0.1.1; extra == 'all'
|
|
68
69
|
Requires-Dist: math-verify<0.8,>=0.7.0; extra == 'all'
|
|
69
70
|
Requires-Dist: mcp>=1.3.0; extra == 'all'
|
|
70
71
|
Requires-Dist: mem0ai>=0.1.67; extra == 'all'
|
|
@@ -196,6 +197,7 @@ Requires-Dist: crawl4ai>=0.3.745; extra == 'document-tools'
|
|
|
196
197
|
Requires-Dist: docx2txt<0.9,>=0.8; extra == 'document-tools'
|
|
197
198
|
Requires-Dist: docx>=0.2.4; extra == 'document-tools'
|
|
198
199
|
Requires-Dist: fpdf>=1.7.2; extra == 'document-tools'
|
|
200
|
+
Requires-Dist: markitdown==0.1.1; extra == 'document-tools'
|
|
199
201
|
Requires-Dist: numpy~=1.26; extra == 'document-tools'
|
|
200
202
|
Requires-Dist: openapi-spec-validator<0.8,>=0.7.1; extra == 'document-tools'
|
|
201
203
|
Requires-Dist: openpyxl>=3.1.5; extra == 'document-tools'
|
|
@@ -598,7 +600,7 @@ Please reach out to us on [CAMEL discord](https://discord.camel-ai.org/) if you
|
|
|
598
600
|
|
|
599
601
|
<div align="center">
|
|
600
602
|
<a href="https://docs.camel-ai.org">
|
|
601
|
-
<img src="
|
|
603
|
+
<img src="https://camel-ai.github.io/camel_asset/graphics/techstack.png" alt="TechStack">
|
|
602
604
|
</a>
|
|
603
605
|
</div>
|
|
604
606
|
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
camel/__init__.py,sha256=
|
|
1
|
+
camel/__init__.py,sha256=cNw7Nfkek0Zqhs2d7EOms-FvYE37ClsE6Rafn9zGv7g,899
|
|
2
2
|
camel/generators.py,sha256=JRqj9_m1PF4qT6UtybzTQ-KBT9MJQt18OAAYvQ_fr2o,13844
|
|
3
|
-
camel/human.py,sha256=
|
|
3
|
+
camel/human.py,sha256=Xg8x1cS5KK4bQ1SDByiHZnzsRpvRP-KZViNvmu38xo4,5475
|
|
4
4
|
camel/logger.py,sha256=rZVeOVYuQ9RYJ5Tqyv0usqy0g4zaVEq4qSfZ9nd2640,5755
|
|
5
5
|
camel/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
6
|
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=
|
|
11
|
-
camel/agents/critic_agent.py,sha256=
|
|
10
|
+
camel/agents/chat_agent.py,sha256=IjEs6-2BAhf8cQd-WcirlRUZoFWK-axfhgZBuoUdASA,65008
|
|
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
|
|
14
14
|
camel/agents/knowledge_graph_agent.py,sha256=7Tchhyvm1s8tQ3at7iGKZt70xWZllRXu2vwUFR37p10,9681
|
|
15
|
-
camel/agents/mcp_agent.py,sha256=
|
|
15
|
+
camel/agents/mcp_agent.py,sha256=tNX7Y1ldjM0Ou8UxcArnRGI68i6s5YluZOQicNAnMFI,16432
|
|
16
16
|
camel/agents/multi_hop_generator_agent.py,sha256=aYsZNsEFHxIq8_wDN8lZRkvRbfhlOYGBKezWr87y8Bs,4325
|
|
17
17
|
camel/agents/programmed_agent_instruction.py,sha256=99fLe41che3X6wPpNPJXRwl4If6EoQqQVWIoT3DKE1s,7124
|
|
18
18
|
camel/agents/repo_agent.py,sha256=ZzZ9zvh0vgdJv1KNY3GEaEPDdDxxXrjUZxjjHjVEWtE,22187
|
|
@@ -22,10 +22,11 @@ camel/agents/task_agent.py,sha256=KfJvZ5vOjjbrn20UGqSMnf6lds5ydfXdb7eNMxBU5vs,14
|
|
|
22
22
|
camel/agents/tool_agents/__init__.py,sha256=hhd1kQYDshfvszN5JHBorINH9L3dI6xdDfKnbAAaKa0,856
|
|
23
23
|
camel/agents/tool_agents/base.py,sha256=T6G5OaAJd4L_yHSFoWcrtqkMEyhge42ppVjx7lYD3Cg,1393
|
|
24
24
|
camel/agents/tool_agents/hugging_face_tool_agent.py,sha256=nNySkdBRYaD05rLyPxzmq8W7D9WPcNHCY9h1jD6S0Hk,8717
|
|
25
|
-
camel/benchmarks/__init__.py,sha256=
|
|
25
|
+
camel/benchmarks/__init__.py,sha256=6a2CrCz7CeCqBSvDwi2HpXC35I-HKCMwupI1_uX4xVA,1193
|
|
26
26
|
camel/benchmarks/apibank.py,sha256=kZyyFqqlk8aI5gPD7-zWnrSioME8BMRbk3vtEohYNGg,21429
|
|
27
27
|
camel/benchmarks/apibench.py,sha256=87wRpKP73nKr8e4q9qecNt6Muaf6tdMWB9-nd1Z64PA,19068
|
|
28
28
|
camel/benchmarks/base.py,sha256=GHbcE0KAenEiYb3x8orLgyGPp40KTdLHwahVFhI-cgE,4594
|
|
29
|
+
camel/benchmarks/browsecomp.py,sha256=SlsDynCooeEor-GPh7CAoyONv2B_2vo-sYlfIwU_xbk,30816
|
|
29
30
|
camel/benchmarks/gaia.py,sha256=TKUZr1XsPAVsJHxkpy0HUi64BMz0x3LAUUSRHlG2SxM,16858
|
|
30
31
|
camel/benchmarks/nexus.py,sha256=Yp1UGyaD3_857QKoUTOeSeB4MKqP08znaxa9hzm5gRk,18207
|
|
31
32
|
camel/benchmarks/ragbench.py,sha256=XlBV6YK_eZSH0yscNMX10BFHsVOXDfLqj4b8QHgsjlk,11079
|
|
@@ -130,13 +131,14 @@ camel/interpreters/interpreter_error.py,sha256=uEhcmHmmcajt5C9PLeHs21h1fE6cmyt23
|
|
|
130
131
|
camel/interpreters/ipython_interpreter.py,sha256=-erOR6imuh5pUtpbUYky3zoLDr30Y5E7lm59BwwxzNs,5976
|
|
131
132
|
camel/interpreters/subprocess_interpreter.py,sha256=xmACW9SeZ1yLogvD2rX_e63ixNE277XgQ3GaTb0c8KY,16639
|
|
132
133
|
camel/interpreters/docker/Dockerfile,sha256=6_k33dlpxgf8V9vfywWmjLuOgHmT2s-a8Lb8VbFRv4s,253
|
|
133
|
-
camel/loaders/__init__.py,sha256=
|
|
134
|
+
camel/loaders/__init__.py,sha256=qk-sJoauNdY_iGs9QBw1feV4RWvoa67OlqIUYp_xo0U,1439
|
|
134
135
|
camel/loaders/apify_reader.py,sha256=oaVjKyNhJhG-hTuIwrpZ2hsB4XTL0M-kUksgSL2R0ck,7952
|
|
135
136
|
camel/loaders/base_io.py,sha256=zsbdBPHgSPFyQrtiUgAsHvy39QHWUObRYNaVvr-pPk0,10190
|
|
136
137
|
camel/loaders/chunkr_reader.py,sha256=Vzc0a1ac28DHQ5z40Va4ce2noOxaGnhRi3Clf60R1lc,6140
|
|
137
138
|
camel/loaders/crawl4ai_reader.py,sha256=ugfGMpWhfLnKf_XEOyDGI2ekpViDnSATg9eSxHyWX7M,7653
|
|
138
139
|
camel/loaders/firecrawl_reader.py,sha256=wCPHEWbfLv_q2x9MdTiSvJ_LDqUPO88lzPf0mmOBsME,5667
|
|
139
140
|
camel/loaders/jina_url_reader.py,sha256=dL9J5JlsFKEhi4gU_vYIxKvvf_RJ4LY9gG6i8P8JpcA,3601
|
|
141
|
+
camel/loaders/markitdown.py,sha256=2tc9Tf2pMJFkFzJwTAge-2kdmgRBBAV3sXHjcbo9AVE,7058
|
|
140
142
|
camel/loaders/mineru_extractor.py,sha256=nKa5n7f3ergv1TURcbXZJP5mQpnSCIFdlWrxWn4hBz8,9070
|
|
141
143
|
camel/loaders/pandas_reader.py,sha256=zTVrUWsnR6oeOqeL8KLlnapJeaB4El0wyIrEPY1aLus,11922
|
|
142
144
|
camel/loaders/scrapegraph_reader.py,sha256=k8EOV5-p41DHDr2ITV8BR1sMqBsvN41CN8Byj2cf5kY,3120
|
|
@@ -187,7 +189,7 @@ camel/models/novita_model.py,sha256=tU8RXsV-4wYmQhXcZkPXdlXRvLwsnj_pEJVSxnhXiXc,
|
|
|
187
189
|
camel/models/nvidia_model.py,sha256=XkHBZJ94nkYB1j9AgyPsorYfvgO1Ys6S6_z3Qh3vrhM,3766
|
|
188
190
|
camel/models/ollama_model.py,sha256=sc49XZT9KQeUWjvLqXn17kKa1jgAyAHiy2MHiUjQrzw,4416
|
|
189
191
|
camel/models/openai_audio_models.py,sha256=BSixkXlc8xirQLl2qCla-g6_y9wDLnMZVHukHrhzw98,13344
|
|
190
|
-
camel/models/openai_compatible_model.py,sha256=
|
|
192
|
+
camel/models/openai_compatible_model.py,sha256=1u-INN5GIoVMWcPmn2yBY3VAkqbdVw3fz_1MklY0C4w,10532
|
|
191
193
|
camel/models/openai_model.py,sha256=atxW2N6xcA9kqGAE6moqKYZD3IxIxOjmKcQnBs7ff7w,12826
|
|
192
194
|
camel/models/openrouter_model.py,sha256=WAZxAtl_lVMMuc0HGjWHmfs3K0zt7G0dXM55TIsZ4d0,3866
|
|
193
195
|
camel/models/ppio_model.py,sha256=Fn7TTaKkRfg5bIRIxbBSlvAXKLTcJf71iJdgQmSuBSk,3891
|
|
@@ -255,16 +257,16 @@ camel/schemas/openai_converter.py,sha256=SEnYsYcboZgVmjcC1YP5xke3c0MYPESPRmYQWsD
|
|
|
255
257
|
camel/schemas/outlines_converter.py,sha256=OYKPR1fNyrYs9eh5RiXEAccMbnRc9WTwSVJYbh9HkKE,8738
|
|
256
258
|
camel/societies/__init__.py,sha256=NOHjtlsY-gV9UCF2xXgcbG-xXyuigmbwbpLpNsDgEJ4,826
|
|
257
259
|
camel/societies/babyagi_playing.py,sha256=KbTdpHfZ2V8AripVck0bNTOyF-RSaMPCRARz3DvzWfQ,11855
|
|
258
|
-
camel/societies/role_playing.py,sha256=
|
|
260
|
+
camel/societies/role_playing.py,sha256=1TsQbGYmN91BeQ0DGM5PpSJ9TMbn1F3maJNuv4fQ5zI,31749
|
|
259
261
|
camel/societies/workforce/__init__.py,sha256=bkTI-PE-MSK9AQ2V2gR6cR2WY-R7Jqy_NmXRtAoqo8o,920
|
|
260
262
|
camel/societies/workforce/base.py,sha256=4uSTmBQsWk_UX1xUrEbjo0X7OuYRbGWoroTV71Tvg8U,1947
|
|
261
263
|
camel/societies/workforce/prompts.py,sha256=4OGp-1-XFYIZ8ZERubSsG-hwXti8fhjtwc3n5-WEgsA,7821
|
|
262
|
-
camel/societies/workforce/role_playing_worker.py,sha256=
|
|
264
|
+
camel/societies/workforce/role_playing_worker.py,sha256=rNI0q_pq0yCXT1_YQs5ViLcaemdT5ZGuUzrhUHRag4Y,7511
|
|
263
265
|
camel/societies/workforce/single_agent_worker.py,sha256=2pWmUNv5Ru5pZjcEtejuG062byXv4GnL-FhWIH6Jj_o,3465
|
|
264
266
|
camel/societies/workforce/task_channel.py,sha256=9t5hoinfGYnbRavX4kx34Jk1FOy05SnJZYbNzb5M-CQ,7140
|
|
265
267
|
camel/societies/workforce/utils.py,sha256=yPbcLx8lNZStl15C4UXRBl5qsTrGA-hiIGynnGi53WQ,2384
|
|
266
268
|
camel/societies/workforce/worker.py,sha256=Do6FDpEraICQVptBH-LiG5KDYYQzD83sLoYO9J8NAbc,3933
|
|
267
|
-
camel/societies/workforce/workforce.py,sha256=
|
|
269
|
+
camel/societies/workforce/workforce.py,sha256=jlr7Us6GhVfKh_FTDUN-K5kRBqCOoVBKn0U1hE1bMKs,21599
|
|
268
270
|
camel/storages/__init__.py,sha256=slOLuoxK45LEmLzogqkSmAfbItwYGa4ytzwZopSvhK0,1840
|
|
269
271
|
camel/storages/graph_storages/__init__.py,sha256=G29BNn651C0WTOpjCl4QnVM-4B9tcNh8DdmsCiONH8Y,948
|
|
270
272
|
camel/storages/graph_storages/base.py,sha256=uSe9jWuLudfm5jtfo6E-L_kNzITwK1_Ef-6L4HWw-JM,2852
|
|
@@ -295,20 +297,21 @@ camel/terminators/__init__.py,sha256=t8uqrkUnXEOYMXQDgaBkMFJ0EXFKI0kmx4cUimli3Ls
|
|
|
295
297
|
camel/terminators/base.py,sha256=xmJzERX7GdSXcxZjAHHODa0rOxRChMSRboDCNHWSscs,1511
|
|
296
298
|
camel/terminators/response_terminator.py,sha256=n3G5KP6Oj7-7WlRN0yFcrtLpqAJKaKS0bmhrWlFfCgQ,4982
|
|
297
299
|
camel/terminators/token_limit_terminator.py,sha256=YWv6ZR8R9yI2Qnf_3xES5bEE_O5bb2CxQ0EUXfMh34c,2118
|
|
298
|
-
camel/toolkits/__init__.py,sha256=
|
|
300
|
+
camel/toolkits/__init__.py,sha256=NDZxXqKBcvAVyFJdkaQ4EqL_5ODn8ycCN83mSU0xFqs,4821
|
|
299
301
|
camel/toolkits/aci_toolkit.py,sha256=jhXMQggG22hd3dXdT3iJm7qWTH3KJC-TUVk1txoNWrM,16079
|
|
300
302
|
camel/toolkits/arxiv_toolkit.py,sha256=Bs2-K1yfmqhEhHoQ0j00KoI8LpOd8M3ApXcvI_-ApVw,6303
|
|
301
303
|
camel/toolkits/ask_news_toolkit.py,sha256=WfWaqwEo1Apbil3-Rb5y65Ws43NU4rAFWZu5VHe4los,23448
|
|
304
|
+
camel/toolkits/async_browser_toolkit.py,sha256=RNQEExzMXCdLHRgewlDad0jPYbLCFzN3VC0ddFzdDDY,65844
|
|
302
305
|
camel/toolkits/audio_analysis_toolkit.py,sha256=dnDtQJbztVBwBpamSyCfigPw2GBnDAfi3fOPgql4Y50,8941
|
|
303
|
-
camel/toolkits/base.py,sha256=
|
|
304
|
-
camel/toolkits/browser_toolkit.py,sha256=
|
|
306
|
+
camel/toolkits/base.py,sha256=7vW2Je9HZqsA1yKwH3aXEGAsjRN1cqeCnsIWfHp6yfE,2386
|
|
307
|
+
camel/toolkits/browser_toolkit.py,sha256=AKm44-xk4ssL5AxSFMjgrjmZcR7Yss9xYBp1BtjokGs,55977
|
|
305
308
|
camel/toolkits/code_execution.py,sha256=6nI5wSBE6W8Ha05UfoPRoe7dtyszGUZ7W55_3HUgUoY,4626
|
|
306
309
|
camel/toolkits/dalle_toolkit.py,sha256=WqQiFYer686awAIc9p4o7CQyA0mJ0G7lH6-nxiF6zpE,6040
|
|
307
310
|
camel/toolkits/dappier_toolkit.py,sha256=ewhXeeUj7e4DiTzuWDA-gHGhrLdyoZ4l9pbijvF3py0,8199
|
|
308
311
|
camel/toolkits/data_commons_toolkit.py,sha256=aHZUSL1ACpnYGaf1rE2csVKTmXTmN8lMGRUBYhZ_YEk,14168
|
|
309
|
-
camel/toolkits/excel_toolkit.py,sha256=
|
|
312
|
+
camel/toolkits/excel_toolkit.py,sha256=8SuK5lTVQF990rR-EvjnXrJ2oocy0eC3Y41PsYwTRYQ,6421
|
|
310
313
|
camel/toolkits/file_write_toolkit.py,sha256=UiN5G7hX3dqSkktqvpMq0WhQQJW_fKbiPiOhUeuSWYU,14351
|
|
311
|
-
camel/toolkits/function_tool.py,sha256=
|
|
314
|
+
camel/toolkits/function_tool.py,sha256=3y0snbYnHHijz4WYkS0xs6GInuTCRJAPACLjR7iutX4,30365
|
|
312
315
|
camel/toolkits/github_toolkit.py,sha256=x9QBsnZbLqAng4eGmnJrGxMSScrGzIA9yri9zAqfuwQ,12242
|
|
313
316
|
camel/toolkits/google_calendar_toolkit.py,sha256=E-sdgdbtNBs_CXbhht9t1dsVr4DsTr5NguHkx4fvSmc,15410
|
|
314
317
|
camel/toolkits/google_maps_toolkit.py,sha256=WTnkURpGri9KcY5OwV7AJJHOzmpu5RNmYE1QCVqvwWM,12023
|
|
@@ -319,7 +322,7 @@ camel/toolkits/jina_reranker_toolkit.py,sha256=U-V9qZ7SKP3SPTh_0CsE7ZKNqS9jNkmKY
|
|
|
319
322
|
camel/toolkits/klavis_toolkit.py,sha256=ZKerhgz5e-AV-iv0ftf07HgWikknIHjB3EOQswfuR80,9864
|
|
320
323
|
camel/toolkits/linkedin_toolkit.py,sha256=wn4eXwYYlVA7doTna7k7WYhUqTBF83W79S-UJs_IQr0,8065
|
|
321
324
|
camel/toolkits/math_toolkit.py,sha256=KdI8AJ9Dbq5cfWboAYJUYgSkmADMCO5eZ6yqYkWuiIQ,3686
|
|
322
|
-
camel/toolkits/mcp_toolkit.py,sha256=
|
|
325
|
+
camel/toolkits/mcp_toolkit.py,sha256=MU0Z7OOnrONLYGVwFnOReX-C9DfLD-jcNzI71Buq_DE,26486
|
|
323
326
|
camel/toolkits/memory_toolkit.py,sha256=TeKYd5UMwgjVpuS2orb-ocFL13eUNKujvrFOruDCpm8,4436
|
|
324
327
|
camel/toolkits/meshy_toolkit.py,sha256=NbgdOBD3FYLtZf-AfonIv6-Q8-8DW129jsaP1PqI2rs,7126
|
|
325
328
|
camel/toolkits/mineru_toolkit.py,sha256=vRX9LholLNkpbJ6axfEN4pTG85aWb0PDmlVy3rAAXhg,6868
|
|
@@ -335,7 +338,7 @@ camel/toolkits/pulse_mcp_search_toolkit.py,sha256=uLUpm19uC_4xLJow0gGVS9f-5T5EW2
|
|
|
335
338
|
camel/toolkits/pyautogui_toolkit.py,sha256=Q810fm8cFvElRory7B74aqS2YV6BOpdRE6jkewoM8xc,16093
|
|
336
339
|
camel/toolkits/reddit_toolkit.py,sha256=x0XAT1zQJVNHUr1R1HwWCgIlkamU-kPmbfb_H1WIv-w,8036
|
|
337
340
|
camel/toolkits/retrieval_toolkit.py,sha256=BKjEyOqW3cGEPTS5yHPYb-Qg795iNNPIs1wjowfuq3U,3825
|
|
338
|
-
camel/toolkits/search_toolkit.py,sha256=
|
|
341
|
+
camel/toolkits/search_toolkit.py,sha256=5BOBQS5LV33mpRwO9vnnexn9Lsqu6MkO3IgaXJBp7ZQ,43742
|
|
339
342
|
camel/toolkits/searxng_toolkit.py,sha256=a2GtE4FGSrmaIVvX6Yide-abBYD1wsHqitnDlx9fdVg,7664
|
|
340
343
|
camel/toolkits/semantic_scholar_toolkit.py,sha256=Rh7eA_YPxV5pvPIzhjjvpr3vtlaCniJicrqzkPWW9_I,11634
|
|
341
344
|
camel/toolkits/slack_toolkit.py,sha256=Nb3w-TbUmnUWEvHE9Hbf_wkpSepm_zKQj7m19UyoFio,11194
|
|
@@ -348,6 +351,7 @@ camel/toolkits/video_analysis_toolkit.py,sha256=-BkRklGawy2KbeOfXFp4LC4FzvVQiF9N
|
|
|
348
351
|
camel/toolkits/video_download_toolkit.py,sha256=6e6Cjmb2Xw7ayJ0BHQBrzsgt5MWzNC-nybWuV98CkPo,7389
|
|
349
352
|
camel/toolkits/weather_toolkit.py,sha256=fs9x9aC38Wsvni6A4PPpbRX6-aBnZiqs2Jix39yoULU,7413
|
|
350
353
|
camel/toolkits/whatsapp_toolkit.py,sha256=udUQXkXyeWsmrUlOJZsGBhHtc_jhB05Axe_TchhibsU,5760
|
|
354
|
+
camel/toolkits/wolfram_alpha_toolkit.py,sha256=_cIOR-gn08dgWsFaWzG5_yBuf7MWZ54fwuAXJZ2kkN0,8557
|
|
351
355
|
camel/toolkits/zapier_toolkit.py,sha256=A83y1UcfuopH7Fx82pORzypl1StbhBjB2HhyOqYa300,7124
|
|
352
356
|
camel/toolkits/open_api_specs/security_config.py,sha256=ZVnBa_zEifaE_ao2xsvV5majuJHpn2Tn7feMDOnj-eo,898
|
|
353
357
|
camel/toolkits/open_api_specs/biztoc/__init__.py,sha256=OKCZrQCDwaWtXIN_2rA9FSqEvgpQRieRoHh7Ek6N16A,702
|
|
@@ -374,8 +378,9 @@ camel/toolkits/open_api_specs/web_scraper/ai-plugin.json,sha256=jjHvbj0DQ4AYcL9J
|
|
|
374
378
|
camel/toolkits/open_api_specs/web_scraper/openapi.yaml,sha256=u_WalQ01e8W1D27VnZviOylpGmJ-zssYrfAgkzqdoyk,2191
|
|
375
379
|
camel/toolkits/open_api_specs/web_scraper/paths/__init__.py,sha256=OKCZrQCDwaWtXIN_2rA9FSqEvgpQRieRoHh7Ek6N16A,702
|
|
376
380
|
camel/toolkits/open_api_specs/web_scraper/paths/scraper.py,sha256=aWy1_ppV4NVVEZfnbN3tu9XA9yAPAC9bRStJ5JuXMRU,1117
|
|
377
|
-
camel/types/__init__.py,sha256=
|
|
378
|
-
camel/types/enums.py,sha256=
|
|
381
|
+
camel/types/__init__.py,sha256=pFTg3CWGSCfwFdoxPDTf4dKV8DdJS1x-bBPuEOmtdf0,2549
|
|
382
|
+
camel/types/enums.py,sha256=vOWppL5bYLTCZUwpv6KieAVaRRUaW0ASwjBu-3HaMlc,58527
|
|
383
|
+
camel/types/mcp_registries.py,sha256=dl4LgYtSaUhsqAKpz28k_SA9La11qxqBvDLaEuyzrFE,4971
|
|
379
384
|
camel/types/openai_types.py,sha256=8ZFzLe-zGmKNPfuVZFzxlxAX98lGf18gtrPhOgMmzus,2104
|
|
380
385
|
camel/types/unified_model_type.py,sha256=TpiUmJ3IuX8LNLtTUeUcVM7U82r4ClSq3ZQlNX3ODKs,5351
|
|
381
386
|
camel/types/agents/__init__.py,sha256=cbvVkogPoZgcwZrgxLH6EtpGXk0kavF79nOic0Dc1vg,786
|
|
@@ -399,7 +404,7 @@ camel/verifiers/math_verifier.py,sha256=tA1D4S0sm8nsWISevxSN0hvSVtIUpqmJhzqfbuMo
|
|
|
399
404
|
camel/verifiers/models.py,sha256=GdxYPr7UxNrR1577yW4kyroRcLGfd-H1GXgv8potDWU,2471
|
|
400
405
|
camel/verifiers/physics_verifier.py,sha256=c1grrRddcrVN7szkxhv2QirwY9viIRSITWeWFF5HmLs,30187
|
|
401
406
|
camel/verifiers/python_verifier.py,sha256=ogTz77wODfEcDN4tMVtiSkRQyoiZbHPY2fKybn59lHw,20558
|
|
402
|
-
camel_ai-0.2.
|
|
403
|
-
camel_ai-0.2.
|
|
404
|
-
camel_ai-0.2.
|
|
405
|
-
camel_ai-0.2.
|
|
407
|
+
camel_ai-0.2.59.dist-info/METADATA,sha256=gIZZ35HcLU6Jc-ULT7T3drUunf6Eg4ZXik-8nMC4xKI,44399
|
|
408
|
+
camel_ai-0.2.59.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
409
|
+
camel_ai-0.2.59.dist-info/licenses/LICENSE,sha256=id0nB2my5kG0xXeimIu5zZrbHLS6EQvxvkKkzIHaT2k,11343
|
|
410
|
+
camel_ai-0.2.59.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|