camel-ai 0.2.76a0__py3-none-any.whl → 0.2.76a1__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 -1
- camel/agents/chat_agent.py +8 -1
- camel/memories/__init__.py +2 -1
- camel/memories/agent_memories.py +3 -1
- camel/memories/blocks/chat_history_block.py +17 -2
- camel/societies/workforce/single_agent_worker.py +44 -38
- camel/storages/object_storages/google_cloud.py +1 -1
- camel/toolkits/__init__.py +9 -2
- camel/toolkits/aci_toolkit.py +45 -0
- camel/toolkits/context_summarizer_toolkit.py +683 -0
- camel/toolkits/{file_write_toolkit.py → file_toolkit.py} +194 -34
- camel/toolkits/hybrid_browser_toolkit/config_loader.py +4 -0
- camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py +7 -2
- camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py +62 -45
- camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts +489 -60
- camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts +5 -2
- camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts +72 -12
- camel/toolkits/hybrid_browser_toolkit/ts/src/snapshot-parser.ts +2 -14
- camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts +1 -0
- camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py +196 -60
- camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py +4 -4
- camel/toolkits/markitdown_toolkit.py +27 -1
- camel/toolkits/note_taking_toolkit.py +18 -8
- camel/toolkits/vertex_ai_veo_toolkit.py +590 -0
- camel/toolkits/wechat_official_toolkit.py +483 -0
- camel/utils/context_utils.py +395 -0
- {camel_ai-0.2.76a0.dist-info → camel_ai-0.2.76a1.dist-info}/METADATA +2 -1
- {camel_ai-0.2.76a0.dist-info → camel_ai-0.2.76a1.dist-info}/RECORD +30 -26
- {camel_ai-0.2.76a0.dist-info → camel_ai-0.2.76a1.dist-info}/WHEEL +0 -0
- {camel_ai-0.2.76a0.dist-info → camel_ai-0.2.76a1.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,395 @@
|
|
|
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
|
+
import os
|
|
16
|
+
from datetime import datetime
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Optional
|
|
19
|
+
|
|
20
|
+
from camel.logger import get_logger
|
|
21
|
+
|
|
22
|
+
if TYPE_CHECKING:
|
|
23
|
+
from camel.agents import ChatAgent
|
|
24
|
+
from camel.memories.records import MemoryRecord
|
|
25
|
+
|
|
26
|
+
logger = get_logger(__name__)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class ContextUtility:
|
|
30
|
+
r"""Utility class for context management and file operations.
|
|
31
|
+
|
|
32
|
+
This utility provides generic functionality for managing context files,
|
|
33
|
+
markdown generation, and session management that can be used by
|
|
34
|
+
context-related features.
|
|
35
|
+
|
|
36
|
+
Key features:
|
|
37
|
+
- Session-based directory management
|
|
38
|
+
- Generic markdown file operations
|
|
39
|
+
- Text-based search through files
|
|
40
|
+
- File metadata handling
|
|
41
|
+
- Agent memory record retrieval
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
def __init__(self, working_directory: Optional[str] = None):
|
|
45
|
+
r"""Initialize the ContextUtility.
|
|
46
|
+
|
|
47
|
+
Args:
|
|
48
|
+
working_directory (str, optional): The directory path where files
|
|
49
|
+
will be stored. If not provided, a default directory will be
|
|
50
|
+
used.
|
|
51
|
+
"""
|
|
52
|
+
self.working_directory_param = working_directory
|
|
53
|
+
self._setup_storage(working_directory)
|
|
54
|
+
|
|
55
|
+
def _setup_storage(self, working_directory: Optional[str]) -> None:
|
|
56
|
+
r"""Initialize session-specific storage paths and create directory
|
|
57
|
+
structure for context file management."""
|
|
58
|
+
self.session_id = self._generate_session_id()
|
|
59
|
+
|
|
60
|
+
if working_directory:
|
|
61
|
+
self.working_directory = Path(working_directory).resolve()
|
|
62
|
+
else:
|
|
63
|
+
camel_workdir = os.environ.get("CAMEL_WORKDIR")
|
|
64
|
+
if camel_workdir:
|
|
65
|
+
self.working_directory = Path(camel_workdir) / "context_files"
|
|
66
|
+
else:
|
|
67
|
+
self.working_directory = Path("context_files")
|
|
68
|
+
|
|
69
|
+
# Create session-specific directory
|
|
70
|
+
self.working_directory = self.working_directory / self.session_id
|
|
71
|
+
self.working_directory.mkdir(parents=True, exist_ok=True)
|
|
72
|
+
|
|
73
|
+
def _generate_session_id(self) -> str:
|
|
74
|
+
r"""Create timestamp-based unique identifier for isolating
|
|
75
|
+
current session files from other sessions."""
|
|
76
|
+
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S_%f')
|
|
77
|
+
return f"session_{timestamp}"
|
|
78
|
+
|
|
79
|
+
# ========= GENERIC FILE MANAGEMENT METHODS =========
|
|
80
|
+
|
|
81
|
+
def _create_or_update_note(self, note_name: str, content: str) -> str:
|
|
82
|
+
r"""Write content to markdown file, creating new file or
|
|
83
|
+
overwriting existing one with UTF-8 encoding.
|
|
84
|
+
|
|
85
|
+
Args:
|
|
86
|
+
note_name (str): Name of the note (without .md extension).
|
|
87
|
+
content (str): Content to write to the note.
|
|
88
|
+
|
|
89
|
+
Returns:
|
|
90
|
+
str: Success message.
|
|
91
|
+
"""
|
|
92
|
+
try:
|
|
93
|
+
file_path = self.working_directory / f"{note_name}.md"
|
|
94
|
+
with open(file_path, 'w', encoding='utf-8') as f:
|
|
95
|
+
f.write(content)
|
|
96
|
+
return f"Note '{note_name}.md' created successfully"
|
|
97
|
+
except Exception as e:
|
|
98
|
+
logger.error(f"Error creating note {note_name}: {e}")
|
|
99
|
+
return f"Error creating note: {e}"
|
|
100
|
+
|
|
101
|
+
def save_markdown_file(
|
|
102
|
+
self,
|
|
103
|
+
filename: str,
|
|
104
|
+
content: str,
|
|
105
|
+
title: Optional[str] = None,
|
|
106
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
107
|
+
) -> str:
|
|
108
|
+
r"""Generic method to save any markdown content to a file.
|
|
109
|
+
|
|
110
|
+
Args:
|
|
111
|
+
filename (str): Name without .md extension.
|
|
112
|
+
content (str): Main content to save.
|
|
113
|
+
title (str, optional): Title for the markdown file.
|
|
114
|
+
metadata (Dict, optional): Additional metadata to include.
|
|
115
|
+
|
|
116
|
+
Returns:
|
|
117
|
+
str: Success message or error message.
|
|
118
|
+
"""
|
|
119
|
+
try:
|
|
120
|
+
markdown_content = ""
|
|
121
|
+
|
|
122
|
+
# Add title if provided
|
|
123
|
+
if title:
|
|
124
|
+
markdown_content += f"# {title}\n\n"
|
|
125
|
+
|
|
126
|
+
# Add metadata section if provided
|
|
127
|
+
if metadata:
|
|
128
|
+
markdown_content += "## Metadata\n\n"
|
|
129
|
+
for key, value in metadata.items():
|
|
130
|
+
markdown_content += f"- {key}: {value}\n"
|
|
131
|
+
markdown_content += "\n"
|
|
132
|
+
|
|
133
|
+
# Add main content
|
|
134
|
+
markdown_content += content
|
|
135
|
+
|
|
136
|
+
self._create_or_update_note(filename, markdown_content)
|
|
137
|
+
logger.info(
|
|
138
|
+
f"Markdown file saved to "
|
|
139
|
+
f"{self.working_directory / f'{filename}.md'}"
|
|
140
|
+
)
|
|
141
|
+
return f"Markdown file '{filename}.md' saved successfully"
|
|
142
|
+
|
|
143
|
+
except Exception as e:
|
|
144
|
+
logger.error(f"Error saving markdown file {filename}: {e}")
|
|
145
|
+
return f"Error saving markdown file: {e}"
|
|
146
|
+
|
|
147
|
+
def load_markdown_file(self, filename: str) -> str:
|
|
148
|
+
r"""Generic method to load any markdown file.
|
|
149
|
+
|
|
150
|
+
Args:
|
|
151
|
+
filename (str): Name without .md extension.
|
|
152
|
+
|
|
153
|
+
Returns:
|
|
154
|
+
str: File content or empty string if not found.
|
|
155
|
+
"""
|
|
156
|
+
try:
|
|
157
|
+
file_path = self.working_directory / f"{filename}.md"
|
|
158
|
+
if file_path.exists():
|
|
159
|
+
return file_path.read_text(encoding="utf-8")
|
|
160
|
+
return ""
|
|
161
|
+
except Exception as e:
|
|
162
|
+
logger.error(f"Error loading markdown file {filename}: {e}")
|
|
163
|
+
return ""
|
|
164
|
+
|
|
165
|
+
def file_exists(self, filename: str) -> bool:
|
|
166
|
+
r"""Verify presence of markdown file in current session directory.
|
|
167
|
+
|
|
168
|
+
Args:
|
|
169
|
+
filename (str): Name without .md extension.
|
|
170
|
+
|
|
171
|
+
Returns:
|
|
172
|
+
bool: True if file exists, False otherwise.
|
|
173
|
+
"""
|
|
174
|
+
file_path = self.working_directory / f"{filename}.md"
|
|
175
|
+
return file_path.exists()
|
|
176
|
+
|
|
177
|
+
def list_markdown_files(self) -> List[str]:
|
|
178
|
+
r"""Discover all markdown files in current session directory
|
|
179
|
+
and return their base names for reference.
|
|
180
|
+
|
|
181
|
+
Returns:
|
|
182
|
+
List[str]: List of filenames without .md extension.
|
|
183
|
+
"""
|
|
184
|
+
try:
|
|
185
|
+
md_files = list(self.working_directory.glob("*.md"))
|
|
186
|
+
return [f.stem for f in md_files]
|
|
187
|
+
except Exception as e:
|
|
188
|
+
logger.error(f"Error listing markdown files: {e}")
|
|
189
|
+
return []
|
|
190
|
+
|
|
191
|
+
# ========= GENERIC AGENT MEMORY METHODS =========
|
|
192
|
+
|
|
193
|
+
def get_agent_memory_records(
|
|
194
|
+
self, agent: "ChatAgent"
|
|
195
|
+
) -> List["MemoryRecord"]:
|
|
196
|
+
r"""Retrieve conversation history from agent's memory system.
|
|
197
|
+
|
|
198
|
+
Args:
|
|
199
|
+
agent (ChatAgent): The agent to extract memory records from.
|
|
200
|
+
|
|
201
|
+
Returns:
|
|
202
|
+
List[MemoryRecord]: List of memory records from the agent.
|
|
203
|
+
"""
|
|
204
|
+
try:
|
|
205
|
+
context_records = agent.memory.retrieve()
|
|
206
|
+
return [cr.memory_record for cr in context_records]
|
|
207
|
+
except Exception as e:
|
|
208
|
+
logger.error(f"Error extracting memory records: {e}")
|
|
209
|
+
return []
|
|
210
|
+
|
|
211
|
+
def format_memory_as_conversation(
|
|
212
|
+
self, memory_records: List["MemoryRecord"]
|
|
213
|
+
) -> str:
|
|
214
|
+
r"""Transform structured memory records into human-readable
|
|
215
|
+
conversation format with role labels and message content.
|
|
216
|
+
|
|
217
|
+
Args:
|
|
218
|
+
memory_records (List[MemoryRecord]): Memory records to format.
|
|
219
|
+
|
|
220
|
+
Returns:
|
|
221
|
+
str: Formatted conversation text.
|
|
222
|
+
"""
|
|
223
|
+
conversation_lines = []
|
|
224
|
+
|
|
225
|
+
for record in memory_records:
|
|
226
|
+
role = (
|
|
227
|
+
record.role_at_backend.value
|
|
228
|
+
if hasattr(record.role_at_backend, 'value')
|
|
229
|
+
else str(record.role_at_backend)
|
|
230
|
+
)
|
|
231
|
+
content = record.message.content
|
|
232
|
+
conversation_lines.append(f"{role}: {content}")
|
|
233
|
+
|
|
234
|
+
return "\n".join(conversation_lines)
|
|
235
|
+
|
|
236
|
+
# ========= SESSION MANAGEMENT METHODS =========
|
|
237
|
+
|
|
238
|
+
def create_session_directory(
|
|
239
|
+
self, base_dir: Optional[str] = None, session_id: Optional[str] = None
|
|
240
|
+
) -> Path:
|
|
241
|
+
r"""Create a session-specific directory.
|
|
242
|
+
|
|
243
|
+
Args:
|
|
244
|
+
base_dir (str, optional): Base directory. If None, uses current
|
|
245
|
+
working directory.
|
|
246
|
+
session_id (str, optional): Custom session ID. If None, generates
|
|
247
|
+
new one.
|
|
248
|
+
|
|
249
|
+
Returns:
|
|
250
|
+
Path: The created session directory path.
|
|
251
|
+
"""
|
|
252
|
+
if session_id is None:
|
|
253
|
+
session_id = self._generate_session_id()
|
|
254
|
+
|
|
255
|
+
if base_dir:
|
|
256
|
+
base_path = Path(base_dir).resolve()
|
|
257
|
+
else:
|
|
258
|
+
base_path = self.working_directory.parent
|
|
259
|
+
|
|
260
|
+
session_dir = base_path / session_id
|
|
261
|
+
session_dir.mkdir(parents=True, exist_ok=True)
|
|
262
|
+
return session_dir
|
|
263
|
+
|
|
264
|
+
def get_session_metadata(self) -> Dict[str, Any]:
|
|
265
|
+
r"""Collect comprehensive session information including identifiers,
|
|
266
|
+
timestamps, and directory paths for tracking and reference.
|
|
267
|
+
|
|
268
|
+
Returns:
|
|
269
|
+
Dict[str, Any]: Session metadata including ID, timestamp,
|
|
270
|
+
directory.
|
|
271
|
+
"""
|
|
272
|
+
return {
|
|
273
|
+
'session_id': self.session_id,
|
|
274
|
+
'working_directory': str(self.working_directory),
|
|
275
|
+
'created_at': datetime.now().isoformat(),
|
|
276
|
+
'base_directory': str(self.working_directory.parent),
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
def list_sessions(self, base_dir: Optional[str] = None) -> List[str]:
|
|
280
|
+
r"""Discover all available session directories for browsing
|
|
281
|
+
historical conversations and context files.
|
|
282
|
+
|
|
283
|
+
Args:
|
|
284
|
+
base_dir (str, optional): Base directory to search. If None, uses
|
|
285
|
+
parent of working directory.
|
|
286
|
+
|
|
287
|
+
Returns:
|
|
288
|
+
List[str]: List of session directory names.
|
|
289
|
+
"""
|
|
290
|
+
try:
|
|
291
|
+
if base_dir:
|
|
292
|
+
search_dir = Path(base_dir)
|
|
293
|
+
else:
|
|
294
|
+
search_dir = self.working_directory.parent
|
|
295
|
+
|
|
296
|
+
session_dirs = [
|
|
297
|
+
d.name
|
|
298
|
+
for d in search_dir.iterdir()
|
|
299
|
+
if d.is_dir() and d.name.startswith('session_')
|
|
300
|
+
]
|
|
301
|
+
return sorted(session_dirs)
|
|
302
|
+
except Exception as e:
|
|
303
|
+
logger.error(f"Error listing sessions: {e}")
|
|
304
|
+
return []
|
|
305
|
+
|
|
306
|
+
# ========= GENERIC SEARCH METHODS =========
|
|
307
|
+
|
|
308
|
+
def search_in_file(
|
|
309
|
+
self, file_path: Path, keywords: List[str], top_k: int = 4
|
|
310
|
+
) -> str:
|
|
311
|
+
r"""Perform keyword-based search through file sections,
|
|
312
|
+
ranking results by keyword frequency and returning top matches.
|
|
313
|
+
|
|
314
|
+
Args:
|
|
315
|
+
file_path (Path): Path to the file to search.
|
|
316
|
+
keywords (List[str]): Keywords to search for.
|
|
317
|
+
top_k (int): Maximum number of results to return.
|
|
318
|
+
|
|
319
|
+
Returns:
|
|
320
|
+
str: Formatted search results.
|
|
321
|
+
"""
|
|
322
|
+
results: List[Dict[str, Any]] = []
|
|
323
|
+
keyword_terms = [keyword.lower() for keyword in keywords]
|
|
324
|
+
|
|
325
|
+
try:
|
|
326
|
+
if not file_path.exists():
|
|
327
|
+
return ""
|
|
328
|
+
|
|
329
|
+
with open(file_path, 'r', encoding='utf-8') as f:
|
|
330
|
+
content = f.read()
|
|
331
|
+
|
|
332
|
+
# Split content into sections (assuming ### headers)
|
|
333
|
+
sections = content.split('### ')[1:] # Skip the header part
|
|
334
|
+
|
|
335
|
+
for i, section in enumerate(sections):
|
|
336
|
+
if not section.strip():
|
|
337
|
+
continue
|
|
338
|
+
|
|
339
|
+
section_lower = section.lower()
|
|
340
|
+
|
|
341
|
+
# count how many keywords appear in this section
|
|
342
|
+
keyword_matches = sum(
|
|
343
|
+
1 for keyword in keyword_terms if keyword in section_lower
|
|
344
|
+
)
|
|
345
|
+
|
|
346
|
+
if keyword_matches > 0:
|
|
347
|
+
results.append(
|
|
348
|
+
{
|
|
349
|
+
'content': f"### {section.strip()}",
|
|
350
|
+
'keyword_count': keyword_matches,
|
|
351
|
+
'section_num': i + 1,
|
|
352
|
+
}
|
|
353
|
+
)
|
|
354
|
+
|
|
355
|
+
except Exception as e:
|
|
356
|
+
logger.warning(f"Error reading file {file_path}: {e}")
|
|
357
|
+
return ""
|
|
358
|
+
|
|
359
|
+
# sort by keyword count and limit results
|
|
360
|
+
results.sort(key=lambda x: x['keyword_count'], reverse=True)
|
|
361
|
+
results = results[:top_k]
|
|
362
|
+
|
|
363
|
+
if not results:
|
|
364
|
+
return ""
|
|
365
|
+
|
|
366
|
+
# format results
|
|
367
|
+
formatted_sections = []
|
|
368
|
+
for result in results:
|
|
369
|
+
formatted_sections.append(
|
|
370
|
+
f"Section {result['section_num']} "
|
|
371
|
+
f"(keyword matches: {result['keyword_count']}):\n"
|
|
372
|
+
f"{result['content']}\n"
|
|
373
|
+
)
|
|
374
|
+
|
|
375
|
+
return "\n---\n".join(formatted_sections)
|
|
376
|
+
|
|
377
|
+
# ========= UTILITY METHODS =========
|
|
378
|
+
|
|
379
|
+
def get_working_directory(self) -> Path:
|
|
380
|
+
r"""Retrieve the session-specific directory path where
|
|
381
|
+
all context files are stored.
|
|
382
|
+
|
|
383
|
+
Returns:
|
|
384
|
+
Path: The working directory path.
|
|
385
|
+
"""
|
|
386
|
+
return self.working_directory
|
|
387
|
+
|
|
388
|
+
def get_session_id(self) -> str:
|
|
389
|
+
r"""Retrieve the unique identifier for the current session
|
|
390
|
+
used for file organization and tracking.
|
|
391
|
+
|
|
392
|
+
Returns:
|
|
393
|
+
str: The session ID.
|
|
394
|
+
"""
|
|
395
|
+
return self.session_id
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: camel-ai
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.76a1
|
|
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
|
|
@@ -57,6 +57,7 @@ Requires-Dist: flask>=2.0; extra == 'all'
|
|
|
57
57
|
Requires-Dist: google-api-python-client==2.166.0; extra == 'all'
|
|
58
58
|
Requires-Dist: google-auth-httplib2==0.2.0; extra == 'all'
|
|
59
59
|
Requires-Dist: google-auth-oauthlib==1.2.1; extra == 'all'
|
|
60
|
+
Requires-Dist: google-cloud-aiplatform>=1.111.0; extra == 'all'
|
|
60
61
|
Requires-Dist: google-cloud-storage<3,>=2.18.0; extra == 'all'
|
|
61
62
|
Requires-Dist: google-genai>=1.13.0; extra == 'all'
|
|
62
63
|
Requires-Dist: googlemaps<5,>=4.10.0; extra == 'all'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
camel/__init__.py,sha256=
|
|
1
|
+
camel/__init__.py,sha256=6I-bm5fZpPWlOpBZ5pxXypAQXhzfcXQx0Ah3FJJSZVk,901
|
|
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=WgEwael_eT6D-lVAKHpKIpwXSTjvLbny5jbV1Ab8lnA,5760
|
|
@@ -7,7 +7,7 @@ camel/agents/__init__.py,sha256=64weKqdvmpZcGWyVkO-OKASAmVUdrQjv60JApgPk_SA,1644
|
|
|
7
7
|
camel/agents/_types.py,sha256=MeFZzay2kJA6evALQ-MbBTKW-0lu_0wBuKsxzH_4gWI,1552
|
|
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=
|
|
10
|
+
camel/agents/chat_agent.py,sha256=GJZTjSSZf_xceq6LaM9arOuJKXaoqCPIMXuFVUq85iY,158849
|
|
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
|
|
@@ -156,12 +156,12 @@ camel/loaders/mistral_reader.py,sha256=N9y6mqxPri9w4wE3nfQ2Ch4ph9oxeMR5yJo2oOcQl
|
|
|
156
156
|
camel/loaders/pandas_reader.py,sha256=zTVrUWsnR6oeOqeL8KLlnapJeaB4El0wyIrEPY1aLus,11922
|
|
157
157
|
camel/loaders/scrapegraph_reader.py,sha256=k8EOV5-p41DHDr2ITV8BR1sMqBsvN41CN8Byj2cf5kY,3120
|
|
158
158
|
camel/loaders/unstructured_io.py,sha256=wA3fkDeS4mSPFkMDnWZzJYKDltio7l72BU9D3EGfoUs,17423
|
|
159
|
-
camel/memories/__init__.py,sha256=
|
|
160
|
-
camel/memories/agent_memories.py,sha256=
|
|
159
|
+
camel/memories/__init__.py,sha256=vaStmUZNcHI884Fg9IQTezd50x4Me5fhDej0uK0O5fk,1404
|
|
160
|
+
camel/memories/agent_memories.py,sha256=M8L4WyFqrT1Ec-uBjZXa4puHnKFMBcU6a3AXneOJb2I,10895
|
|
161
161
|
camel/memories/base.py,sha256=LRhCmPwQl7ADBb8bE0Izd0vmo5VhOSymtR8Q58fvrYA,5971
|
|
162
162
|
camel/memories/records.py,sha256=NoiwDuwnKYObhrXPHSRGw8xdxAqyZDDiarOAN6-d17I,4451
|
|
163
163
|
camel/memories/blocks/__init__.py,sha256=ci7_WU11222cNd1Zkv-a0z5E2ux95NMjAYm_cDzF0pE,854
|
|
164
|
-
camel/memories/blocks/chat_history_block.py,sha256=
|
|
164
|
+
camel/memories/blocks/chat_history_block.py,sha256=JGdCZkMIiKs8Qa6HEDtlXcNfKbsDbegK8xCddgD6vCg,7107
|
|
165
165
|
camel/memories/blocks/vectordb_block.py,sha256=r0mRGLV14YUr8aruLdylBjKdSm11oprsiNEWl0EJJhQ,4166
|
|
166
166
|
camel/memories/context_creators/__init__.py,sha256=pqzkBM2ro5JZD7RhWg05TjinphhCq0QTIqBJlIL1sJ0,800
|
|
167
167
|
camel/memories/context_creators/score_based.py,sha256=OQ7eEECkzu4Op5sS9qS1dVgZl-cchSkUZj8Puh8C024,16488
|
|
@@ -280,7 +280,7 @@ camel/societies/workforce/__init__.py,sha256=bkTI-PE-MSK9AQ2V2gR6cR2WY-R7Jqy_NmX
|
|
|
280
280
|
camel/societies/workforce/base.py,sha256=z2DmbTP5LL5-aCAAqglznQqCLfPmnyM5zD3w6jjtsb8,2175
|
|
281
281
|
camel/societies/workforce/prompts.py,sha256=WetbTS0x_vb2XZ8AsotxhGXUhnPHJ6ndeR9Z_jQuJtI,19058
|
|
282
282
|
camel/societies/workforce/role_playing_worker.py,sha256=Zm89lZTlV0T3o9C-DJ0HAV68Iq2Kdg8QqJRWs1TV9_A,10320
|
|
283
|
-
camel/societies/workforce/single_agent_worker.py,sha256=
|
|
283
|
+
camel/societies/workforce/single_agent_worker.py,sha256=STgGJ_nPM6OjraZHTXKl26jFBXvU6npzfeY1HaL2CoI,19584
|
|
284
284
|
camel/societies/workforce/structured_output_handler.py,sha256=xr8szFN86hg3jQ825aEkJTjkSFQnTlbinVg4j1vZJVI,17870
|
|
285
285
|
camel/societies/workforce/task_channel.py,sha256=TXRwiqtmRPdelEmFCVN3jhd5XpgaSLwy9uHPtGecujA,11418
|
|
286
286
|
camel/societies/workforce/utils.py,sha256=THgNHSeZsNVnjTzQTur3qCJhi72MrDS8X2gPET174cI,8434
|
|
@@ -303,7 +303,7 @@ camel/storages/object_storages/__init__.py,sha256=26yATVTD9yVH-p9KueD30JakstTGiD
|
|
|
303
303
|
camel/storages/object_storages/amazon_s3.py,sha256=9Yvyyyb1LGHxr8REEza7oGopbVtLEfOyXWJc18ZwgqA,7418
|
|
304
304
|
camel/storages/object_storages/azure_blob.py,sha256=66dHcvjE2ZNdb339oBU6LbFiKzPYrnlb4tQ_3m2Yazc,5992
|
|
305
305
|
camel/storages/object_storages/base.py,sha256=pImWylYJm7Wt8q87lBE1Cxk26IJ9sRtXq_OJmV6bJlg,3796
|
|
306
|
-
camel/storages/object_storages/google_cloud.py,sha256=
|
|
306
|
+
camel/storages/object_storages/google_cloud.py,sha256=YxkrBgXK7GgZC5b4qitkvzaRGcCzWajh8PSzSJA4Arg,5362
|
|
307
307
|
camel/storages/vectordb_storages/__init__.py,sha256=Nztyo6ZvEYJ7yWz6Id4ImCpTvGaMTM0v8wFM2dMjOBg,1470
|
|
308
308
|
camel/storages/vectordb_storages/base.py,sha256=EP_WbEtI3SJPHro9rjNkIq9UDUP1AAHmxZgeya94Lgk,6738
|
|
309
309
|
camel/storages/vectordb_storages/chroma.py,sha256=wXuLUYsgkC2VvdyLrlL5VqEDVzJDBUo7OdimK8hBLmg,27553
|
|
@@ -322,8 +322,8 @@ camel/terminators/__init__.py,sha256=t8uqrkUnXEOYMXQDgaBkMFJ0EXFKI0kmx4cUimli3Ls
|
|
|
322
322
|
camel/terminators/base.py,sha256=xmJzERX7GdSXcxZjAHHODa0rOxRChMSRboDCNHWSscs,1511
|
|
323
323
|
camel/terminators/response_terminator.py,sha256=n3G5KP6Oj7-7WlRN0yFcrtLpqAJKaKS0bmhrWlFfCgQ,4982
|
|
324
324
|
camel/terminators/token_limit_terminator.py,sha256=YWv6ZR8R9yI2Qnf_3xES5bEE_O5bb2CxQ0EUXfMh34c,2118
|
|
325
|
-
camel/toolkits/__init__.py,sha256
|
|
326
|
-
camel/toolkits/aci_toolkit.py,sha256=
|
|
325
|
+
camel/toolkits/__init__.py,sha256=MOAc1RizrBhwMkkJ2DdZNabRb51ij8OyDUVMO_oZu-M,6457
|
|
326
|
+
camel/toolkits/aci_toolkit.py,sha256=0rRvj5fzcBsd-TU9cxOzk4lFxZvyWGEhY8BwOtWkM4g,17900
|
|
327
327
|
camel/toolkits/arxiv_toolkit.py,sha256=mw629nIN_ozaAxNv3nbvhonJKNI2-97ScRCBS3gVqNo,6297
|
|
328
328
|
camel/toolkits/ask_news_toolkit.py,sha256=WfWaqwEo1Apbil3-Rb5y65Ws43NU4rAFWZu5VHe4los,23448
|
|
329
329
|
camel/toolkits/async_browser_toolkit.py,sha256=dHXV8uCDetLKN7no5otyP3hHDnQIRhGY0msJRJrFbIY,50436
|
|
@@ -333,12 +333,13 @@ camel/toolkits/bohrium_toolkit.py,sha256=453t-m0h0IGjurG6tCHUejGzfRAN2SAkhIoY8V-
|
|
|
333
333
|
camel/toolkits/browser_toolkit.py,sha256=Ntn_LmCrhqqIBWq9HtiIKw-M0cL5ebn74Ej1GBoZiC8,44400
|
|
334
334
|
camel/toolkits/browser_toolkit_commons.py,sha256=uuc1V5tN3YJmTSe6NHAVJqwsL4iYD7IiSZWxPLYW67A,22196
|
|
335
335
|
camel/toolkits/code_execution.py,sha256=3LoSgKdIMlB3fMr7qFuFXt_9QXnTXS8pBfcld580N-k,6785
|
|
336
|
+
camel/toolkits/context_summarizer_toolkit.py,sha256=PD3Mq8ZtsaLMpFkVDmOcrY8H853FdxT6FI7RBGgPl28,25687
|
|
336
337
|
camel/toolkits/craw4ai_toolkit.py,sha256=av8mqY68QgMSm27htnSdq0aqE6z3yWMVDSrNafQ6ORw,3298
|
|
337
338
|
camel/toolkits/dappier_toolkit.py,sha256=OEHOYXX_oXhgbVtWYAy13nO9uXf9i5qEXSwY4PexNFg,8194
|
|
338
339
|
camel/toolkits/data_commons_toolkit.py,sha256=aHZUSL1ACpnYGaf1rE2csVKTmXTmN8lMGRUBYhZ_YEk,14168
|
|
339
340
|
camel/toolkits/edgeone_pages_mcp_toolkit.py,sha256=1TFpAGHUNLggFQeN1OEw7P5laijwnlrCkfxBtgxFuUY,2331
|
|
340
341
|
camel/toolkits/excel_toolkit.py,sha256=tQaonygk0yDTPZHWWQKG5osTN-R_EawR0bJIKLsLg08,35768
|
|
341
|
-
camel/toolkits/
|
|
342
|
+
camel/toolkits/file_toolkit.py,sha256=NV6NBcx2vEYQlIa3IiS-ScKNPzC7Cqa8CdQ508z_t_Y,45518
|
|
342
343
|
camel/toolkits/function_tool.py,sha256=ke02awKhiHJo2FBHLewvimcJKf4DaAzgJ-fdA5RmrDo,34542
|
|
343
344
|
camel/toolkits/github_toolkit.py,sha256=TYkrAiQuLgAolatTKSMZQkI9wKuV85B26HcLao1CCWw,16380
|
|
344
345
|
camel/toolkits/google_calendar_toolkit.py,sha256=E-sdgdbtNBs_CXbhht9t1dsVr4DsTr5NguHkx4fvSmc,15410
|
|
@@ -351,7 +352,7 @@ camel/toolkits/image_generation_toolkit.py,sha256=n70inKbGLy0vjKS5Fhdl4nmrw8_Fmn
|
|
|
351
352
|
camel/toolkits/jina_reranker_toolkit.py,sha256=koTjToI5aPeyQQMJ60a3ikGQJNUQLD834wrg7D2rtK8,11911
|
|
352
353
|
camel/toolkits/klavis_toolkit.py,sha256=ZKerhgz5e-AV-iv0ftf07HgWikknIHjB3EOQswfuR80,9864
|
|
353
354
|
camel/toolkits/linkedin_toolkit.py,sha256=wn4eXwYYlVA7doTna7k7WYhUqTBF83W79S-UJs_IQr0,8065
|
|
354
|
-
camel/toolkits/markitdown_toolkit.py,sha256=
|
|
355
|
+
camel/toolkits/markitdown_toolkit.py,sha256=lwN6qQY8TLZkNWOqzeKZG3Fku-HMpGFrdRwhtPaJSlw,3844
|
|
355
356
|
camel/toolkits/math_toolkit.py,sha256=SJbzT6akHRlmqo1QwCj1f7-6pEv0sNKJbcYvYAylHQw,5439
|
|
356
357
|
camel/toolkits/mcp_toolkit.py,sha256=FbBKyz7f6y2hA-lBVsh3K-_gyz2rVDwe3uvaK8OsuRc,41442
|
|
357
358
|
camel/toolkits/memory_toolkit.py,sha256=TeKYd5UMwgjVpuS2orb-ocFL13eUNKujvrFOruDCpm8,4436
|
|
@@ -361,7 +362,7 @@ camel/toolkits/message_integration.py,sha256=-dcf91DJzj8asXP2cc7mMy1BH2xzifhH-MM
|
|
|
361
362
|
camel/toolkits/mineru_toolkit.py,sha256=vRX9LholLNkpbJ6axfEN4pTG85aWb0PDmlVy3rAAXhg,6868
|
|
362
363
|
camel/toolkits/minimax_mcp_toolkit.py,sha256=fazHJGeH4l-A--s5lQYVxqSBr9fUGJUfJz3KpqK1yJc,6846
|
|
363
364
|
camel/toolkits/networkx_toolkit.py,sha256=C7pUCZTzzGkFyqdkrmhRKpAHmHWfLKeuzYHC_BHPtbk,8826
|
|
364
|
-
camel/toolkits/note_taking_toolkit.py,sha256=
|
|
365
|
+
camel/toolkits/note_taking_toolkit.py,sha256=dT9eWSOnhcw5TI-7PhQHlGWBFJl_sWJ1_x9ppMX3eIk,11086
|
|
365
366
|
camel/toolkits/notion_mcp_toolkit.py,sha256=ie_6Z-7DqDhgTiwYX8L3X47rfWGwzgwQH_s2DaK1ckc,8362
|
|
366
367
|
camel/toolkits/notion_toolkit.py,sha256=jmmVWk_WazRNWnx4r9DAvhFTAL-n_ige0tb32UHJ_ik,9752
|
|
367
368
|
camel/toolkits/open_api_toolkit.py,sha256=Venfq8JwTMQfzRzzB7AYmYUMEX35hW0BjIv_ozFMiNk,23316
|
|
@@ -386,37 +387,39 @@ camel/toolkits/task_planning_toolkit.py,sha256=Ttw9fHae4omGC1SA-6uaeXVHJ1YkwiVlo
|
|
|
386
387
|
camel/toolkits/terminal_toolkit.py,sha256=COhtGmE4So8nAciGJYmsx3PrvzDf1Y3pal5YWmjIoZc,69154
|
|
387
388
|
camel/toolkits/thinking_toolkit.py,sha256=nZYLvKWIx2BM1DYu69I9B5EISAG7aYcLYXKv9663BVk,8000
|
|
388
389
|
camel/toolkits/twitter_toolkit.py,sha256=Px4N8aUxUzy01LhGSWkdrC2JgwKkrY3cvxgMeJ2XYfU,15939
|
|
390
|
+
camel/toolkits/vertex_ai_veo_toolkit.py,sha256=RFLUSG3pJxxDQq64EgcG43f7dmCpwPuecdTGwABaaZ0,21971
|
|
389
391
|
camel/toolkits/video_analysis_toolkit.py,sha256=nTV1XxY8dcq8Ef7elbGXYGuSLBfrujU8tE4NhVGP-rE,23568
|
|
390
392
|
camel/toolkits/video_download_toolkit.py,sha256=0dOzsG9vpCHr31bW4Iiqz4iMkQ7uxkAyTMgiculvenk,7567
|
|
391
393
|
camel/toolkits/weather_toolkit.py,sha256=fs9x9aC38Wsvni6A4PPpbRX6-aBnZiqs2Jix39yoULU,7413
|
|
392
394
|
camel/toolkits/web_deploy_toolkit.py,sha256=jUiU8ur759Q0Aiw5TUcvhu7Iv10W36Y1RS0hEHZIb4U,46154
|
|
395
|
+
camel/toolkits/wechat_official_toolkit.py,sha256=hCpGo4CtQp4ZjRYUrZTJcboJBMZFiCFsExTTMz6SmMo,16202
|
|
393
396
|
camel/toolkits/whatsapp_toolkit.py,sha256=udUQXkXyeWsmrUlOJZsGBhHtc_jhB05Axe_TchhibsU,5760
|
|
394
397
|
camel/toolkits/wolfram_alpha_toolkit.py,sha256=qeIM8ySn5ilcExBWtx-hDOc35bNcebLVnZ67kt1H3mQ,9295
|
|
395
398
|
camel/toolkits/zapier_toolkit.py,sha256=A83y1UcfuopH7Fx82pORzypl1StbhBjB2HhyOqYa300,7124
|
|
396
399
|
camel/toolkits/hybrid_browser_toolkit/__init__.py,sha256=vxjWhq7GjUKE5I9RGQU_GoikZJ-AVK4ertdvEqp9pd0,802
|
|
397
|
-
camel/toolkits/hybrid_browser_toolkit/config_loader.py,sha256=
|
|
398
|
-
camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py,sha256=
|
|
399
|
-
camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py,sha256=
|
|
400
|
-
camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py,sha256=
|
|
400
|
+
camel/toolkits/hybrid_browser_toolkit/config_loader.py,sha256=1FVZzDucDsC9IB6EcfP9TMgD3Z60vOniY4dk5TB1dsg,7595
|
|
401
|
+
camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py,sha256=lKZqDiRPVi07flrACCjFtANDsp-n6kstE1iF7OOhDa4,8930
|
|
402
|
+
camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py,sha256=KGvtdJdUJ86VacPmL4BYd0EZjscH6Z2wXtraXAQud1Y,56214
|
|
403
|
+
camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py,sha256=Ts30Ue9MEcwJU4C0KSYANvEw_YZmjeGe3quzZJ8O5Ek,37160
|
|
401
404
|
camel/toolkits/hybrid_browser_toolkit/ts/package-lock.json,sha256=_-YE9S_C1XT59A6upQp9lLuZcC67cV9QlbwAsEKkfyw,156337
|
|
402
405
|
camel/toolkits/hybrid_browser_toolkit/ts/package.json,sha256=pUQm0xwXR7ZyWNv6O2QtHW00agnfAoX9F_XGXZlAxl4,745
|
|
403
406
|
camel/toolkits/hybrid_browser_toolkit/ts/tsconfig.json,sha256=SwpQnq4Q-rwRobF2iWrP96mgmgwaVPZEv-nii5QIYEU,523
|
|
404
407
|
camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js,sha256=lh-j0zkPS8WLUMRysVp2vPQ9lgnImw2ELMYgXGYyaek,10954
|
|
405
408
|
camel/toolkits/hybrid_browser_toolkit/ts/src/browser-scripts.js,sha256=NNwM_H2xaDrlrdac0PJK1iUBwdiuQsg9qKaMhHAvZuI,3160
|
|
406
|
-
camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts,sha256=
|
|
407
|
-
camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts,sha256=
|
|
408
|
-
camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts,sha256=
|
|
409
|
+
camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts,sha256=jXYVb0UMneY1ee2_Ck68surynC8oRVbcCw3COaFbYlw,65903
|
|
410
|
+
camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts,sha256=80W5K5NTWzGF8sJdbP6MmwQDndT5EW1G8ENVa5xisis,6575
|
|
411
|
+
camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts,sha256=2I4gJdzHP6YP2rL4rZDH0_QHhxtU8v_pzkbJ7T5A5wQ,18221
|
|
409
412
|
camel/toolkits/hybrid_browser_toolkit/ts/src/index.ts,sha256=uJGHmGs640iCrjllqXDXwDE4hGW1VJA2YL6BkFkzYNs,353
|
|
410
413
|
camel/toolkits/hybrid_browser_toolkit/ts/src/parent-child-filter.ts,sha256=tQIy5Vw8BGRU861lJ8e47lMjA4NsW5nsy2VwS12kXHY,6820
|
|
411
|
-
camel/toolkits/hybrid_browser_toolkit/ts/src/snapshot-parser.ts,sha256=
|
|
414
|
+
camel/toolkits/hybrid_browser_toolkit/ts/src/snapshot-parser.ts,sha256=6PDTGbOJyPsc3Nt7AyPgctlDST0Lh1pqP9aE4yxQAb8,8233
|
|
412
415
|
camel/toolkits/hybrid_browser_toolkit/ts/src/som-screenshot-injected.ts,sha256=I1jhVoZn3fchsNXrMJI9b4g93rgqPbeM9wGyxNcpRQc,22503
|
|
413
|
-
camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts,sha256=
|
|
416
|
+
camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts,sha256=WvWW06BX1HgrEbK_JAMGFogWnv5NNHe54XO4d7JQXgw,3074
|
|
414
417
|
camel/toolkits/hybrid_browser_toolkit_py/__init__.py,sha256=tPQloCw-Ayl1lPfyvzGJkMFa1ze3ilXJq_1Oz5jg5s4,796
|
|
415
418
|
camel/toolkits/hybrid_browser_toolkit_py/actions.py,sha256=S77VLL9hOq5M2RdPQrIAgjxinwS2ETd6kH6m6vtub5o,20935
|
|
416
419
|
camel/toolkits/hybrid_browser_toolkit_py/agent.py,sha256=0ifwhYUDJ5GLxfdpC5KquPaW1a0QBAutp2Y9y0YFujw,11685
|
|
417
420
|
camel/toolkits/hybrid_browser_toolkit_py/browser_session.py,sha256=BZrbUrGcbLbI2TjaS5WSCn2SIMFW1k0bK_53A4cZYI4,28687
|
|
418
421
|
camel/toolkits/hybrid_browser_toolkit_py/config_loader.py,sha256=wFiEJhCBlDTQvl6FxXONX8kvJz5EzzGht2gQEk0RY6g,16723
|
|
419
|
-
camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py,sha256=
|
|
422
|
+
camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py,sha256=pxycYHuV2dQwmXa0ksrmFmOhOYY2oREahx-MYizN6sA,92044
|
|
420
423
|
camel/toolkits/hybrid_browser_toolkit_py/snapshot.py,sha256=zVd8FVeF_H-2z3d2xOMandylT6N421yfRmxUZegLYaQ,8706
|
|
421
424
|
camel/toolkits/hybrid_browser_toolkit_py/stealth_script.js,sha256=z4XRSVUpAS87Sj36s3bY8XXhvRcHBlgsUOyMxV2HI80,27650
|
|
422
425
|
camel/toolkits/hybrid_browser_toolkit_py/unified_analyzer.js,sha256=1FFw0J1h65_WZ3IqMhiuzcLG-qJ2BKlAMcBQdJi6fxI,42285
|
|
@@ -456,6 +459,7 @@ camel/utils/__init__.py,sha256=qQeMHZJ8Bbgpm4tBu-LWc_P3iFjXBlVfALdKTiD_s8I,3305
|
|
|
456
459
|
camel/utils/async_func.py,sha256=KqoktGSWjZBuAMQ2CV0X6FRgHGlzCKLfeaWvp-f1Qz8,1568
|
|
457
460
|
camel/utils/commons.py,sha256=xEhN__xkM1AT0dvvlAHZiPkGvfpwpj9BhCAWD51qJQ0,37163
|
|
458
461
|
camel/utils/constants.py,sha256=cqnxmpUeOwrtsR-tRO4bbOc6ZP19TLj7avjm3FONMJs,1410
|
|
462
|
+
camel/utils/context_utils.py,sha256=PIYCAAb9WGJo9GGC644rVuPDmRMlqEoeDAuQayr4a9E,13609
|
|
459
463
|
camel/utils/deduplication.py,sha256=UHikAtOW1TTDunf2t_wa2kFbmkrXWf7HfOKwLvwCxzo,8958
|
|
460
464
|
camel/utils/filename.py,sha256=HYNc1wbSCgNR1CN21cwHxdAhpnsf5ySJ6jUDfeqOK20,2532
|
|
461
465
|
camel/utils/langfuse.py,sha256=OowR6A790XG-b0UHiTYduYvS18PvSGFdmqki2Poogo0,8578
|
|
@@ -475,7 +479,7 @@ camel/verifiers/math_verifier.py,sha256=tA1D4S0sm8nsWISevxSN0hvSVtIUpqmJhzqfbuMo
|
|
|
475
479
|
camel/verifiers/models.py,sha256=GdxYPr7UxNrR1577yW4kyroRcLGfd-H1GXgv8potDWU,2471
|
|
476
480
|
camel/verifiers/physics_verifier.py,sha256=c1grrRddcrVN7szkxhv2QirwY9viIRSITWeWFF5HmLs,30187
|
|
477
481
|
camel/verifiers/python_verifier.py,sha256=ogTz77wODfEcDN4tMVtiSkRQyoiZbHPY2fKybn59lHw,20558
|
|
478
|
-
camel_ai-0.2.
|
|
479
|
-
camel_ai-0.2.
|
|
480
|
-
camel_ai-0.2.
|
|
481
|
-
camel_ai-0.2.
|
|
482
|
+
camel_ai-0.2.76a1.dist-info/METADATA,sha256=_UR_r1rpykgqO_LbYlG7VBIkWS_uGEJqqRJYUQ0e5T4,52058
|
|
483
|
+
camel_ai-0.2.76a1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
484
|
+
camel_ai-0.2.76a1.dist-info/licenses/LICENSE,sha256=id0nB2my5kG0xXeimIu5zZrbHLS6EQvxvkKkzIHaT2k,11343
|
|
485
|
+
camel_ai-0.2.76a1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|