camel-ai 0.2.67__py3-none-any.whl → 0.2.69a1__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (43) hide show
  1. camel/__init__.py +1 -1
  2. camel/agents/chat_agent.py +170 -11
  3. camel/configs/vllm_config.py +2 -0
  4. camel/datagen/self_improving_cot.py +1 -1
  5. camel/environments/__init__.py +12 -0
  6. camel/environments/rlcards_env.py +860 -0
  7. camel/interpreters/docker/Dockerfile +2 -5
  8. camel/loaders/firecrawl_reader.py +4 -4
  9. camel/memories/blocks/vectordb_block.py +8 -1
  10. camel/memories/context_creators/score_based.py +185 -39
  11. camel/models/anthropic_model.py +114 -2
  12. camel/runtimes/configs.py +11 -11
  13. camel/runtimes/daytona_runtime.py +4 -4
  14. camel/runtimes/docker_runtime.py +6 -6
  15. camel/runtimes/remote_http_runtime.py +5 -5
  16. camel/societies/workforce/prompts.py +55 -21
  17. camel/societies/workforce/single_agent_worker.py +274 -14
  18. camel/societies/workforce/task_channel.py +9 -2
  19. camel/societies/workforce/utils.py +10 -2
  20. camel/societies/workforce/worker.py +74 -16
  21. camel/societies/workforce/workforce.py +90 -35
  22. camel/tasks/task.py +18 -12
  23. camel/toolkits/__init__.py +2 -0
  24. camel/toolkits/aci_toolkit.py +19 -19
  25. camel/toolkits/arxiv_toolkit.py +6 -6
  26. camel/toolkits/dappier_toolkit.py +5 -5
  27. camel/toolkits/file_write_toolkit.py +10 -10
  28. camel/toolkits/github_toolkit.py +3 -3
  29. camel/toolkits/non_visual_browser_toolkit/__init__.py +18 -0
  30. camel/toolkits/non_visual_browser_toolkit/actions.py +196 -0
  31. camel/toolkits/non_visual_browser_toolkit/agent.py +278 -0
  32. camel/toolkits/non_visual_browser_toolkit/browser_non_visual_toolkit.py +363 -0
  33. camel/toolkits/non_visual_browser_toolkit/nv_browser_session.py +175 -0
  34. camel/toolkits/non_visual_browser_toolkit/snapshot.js +188 -0
  35. camel/toolkits/non_visual_browser_toolkit/snapshot.py +164 -0
  36. camel/toolkits/pptx_toolkit.py +4 -4
  37. camel/toolkits/sympy_toolkit.py +1 -1
  38. camel/toolkits/task_planning_toolkit.py +3 -3
  39. camel/toolkits/thinking_toolkit.py +1 -1
  40. {camel_ai-0.2.67.dist-info → camel_ai-0.2.69a1.dist-info}/METADATA +2 -1
  41. {camel_ai-0.2.67.dist-info → camel_ai-0.2.69a1.dist-info}/RECORD +43 -35
  42. {camel_ai-0.2.67.dist-info → camel_ai-0.2.69a1.dist-info}/WHEEL +0 -0
  43. {camel_ai-0.2.67.dist-info → camel_ai-0.2.69a1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,188 @@
1
+ (() => {
2
+ // Store each element as {text, priority, depth}
3
+ const elements = [];
4
+
5
+ // Maximum lines allowed before we start dropping lower-priority nodes
6
+ const MAX_LINES = 400;
7
+
8
+ // Priority helper – lower number = higher priority
9
+ function getPriority(tag, role, text) {
10
+ // 1. Interactive elements
11
+ if (["input", "button", "a", "select", "textarea"].includes(tag)) return 1;
12
+ if (["checkbox", "radio"].includes(role)) return 1;
13
+
14
+ // 2. Labels / descriptive adjacent text (label elements)
15
+ if (tag === "label") return 2;
16
+
17
+ // 3. General visible text
18
+ if (text) return 3;
19
+
20
+ // 4. Low-value structural nodes
21
+ return 4;
22
+ }
23
+
24
+ function isVisible(node) {
25
+ const rect = node.getBoundingClientRect();
26
+ if (rect.width === 0 || rect.height === 0) return false;
27
+
28
+ const style = window.getComputedStyle(node);
29
+ if (style.display === 'none' || style.visibility === 'hidden') return false;
30
+
31
+ return true;
32
+ }
33
+
34
+ function getRole(node) {
35
+ const tag = node.tagName.toLowerCase();
36
+ const type = node.getAttribute('type');
37
+
38
+ if (node.getAttribute('role')) return node.getAttribute('role');
39
+
40
+ if (tag === 'input') {
41
+ if (type === 'checkbox') return 'checkbox';
42
+ if (type === 'radio') return 'radio';
43
+ return 'input';
44
+ }
45
+
46
+ if (tag === 'button') return 'button';
47
+ if (tag === 'a') return 'link';
48
+ if (tag === 'select') return 'select';
49
+ if (tag === 'textarea') return 'textarea';
50
+ if (tag === 'p') return 'paragraph';
51
+ if (tag === 'span') return 'text';
52
+
53
+ return 'generic';
54
+ }
55
+
56
+ function getAccessibleName(node) {
57
+ if (node.hasAttribute('aria-label')) {
58
+ return node.getAttribute('aria-label');
59
+ }
60
+ if (node.hasAttribute('aria-labelledby')) {
61
+ const id = node.getAttribute('aria-labelledby');
62
+ const labelEl = document.getElementById(id);
63
+ if (labelEl) return labelEl.textContent.trim();
64
+ }
65
+ if (node.hasAttribute('title')) {
66
+ return node.getAttribute('title');
67
+ }
68
+
69
+ const tagName = node.tagName?.toLowerCase();
70
+ if (['style', 'script', 'meta', 'noscript', 'svg'].includes(tagName)) {
71
+ return '';
72
+ }
73
+
74
+ const text = node.textContent?.trim() || '';
75
+
76
+ // Ignore styles, tokens, or long CSS-like expressions
77
+ if (/^[.#]?[a-zA-Z0-9\-_]+\s*\{[^}]*\}/.test(text)) return '';
78
+ if ((text.match(/[;:{}]/g)?.length || 0) > 2) return '';
79
+
80
+ return text.replace(/[^\w\u4e00-\u9fa5\s\-.,?!'"()()]/g, '').trim();
81
+ }
82
+
83
+ let refCounter = 1;
84
+
85
+ function traverse(node, depth) {
86
+ if (node.nodeType !== Node.ELEMENT_NODE) return;
87
+ if (!isVisible(node)) return;
88
+
89
+ const tagName = node.tagName.toLowerCase();
90
+ const text = getAccessibleName(node).slice(0, 50);
91
+
92
+ // Skip unlabeled links (anchors without any accessible name)
93
+ if (tagName === 'a' && !text) {
94
+ // Skip unlabeled links; process children if any
95
+ for (const child of node.children) {
96
+ traverse(child, depth + 1);
97
+ }
98
+ return;
99
+ }
100
+
101
+ const hasRoleOrText = ['button', 'a', 'input', 'select', 'textarea', 'p', 'span'].includes(tagName) ||
102
+ node.getAttribute('role') || text;
103
+
104
+ if (hasRoleOrText) {
105
+ const role = getRole(node);
106
+ const ref = `e${refCounter++}`;
107
+ const label = text ? `"${text}"` : '';
108
+
109
+ // Raw line (without indent) – we will apply indentation later once we know
110
+ // which ancestor lines survive filtering so that indentation always reflects
111
+ // the visible hierarchy.
112
+ const lineText = `- ${role}${label ? ` ${label}` : ''} [ref=${ref}]`;
113
+ const priority = getPriority(tagName, role, text);
114
+
115
+ elements.push({ text: lineText, priority, depth });
116
+
117
+ // Always inject ref so Playwright can still locate the element even if line is later filtered out.
118
+ node.setAttribute('aria-ref', ref);
119
+ }
120
+
121
+ for (const child of node.children) {
122
+ traverse(child, depth + 1);
123
+ }
124
+ }
125
+
126
+ function processDocument(doc, depth = 0) {
127
+ try {
128
+ traverse(doc.body, depth);
129
+ } catch (e) {
130
+ // Handle docs without body (e.g., about:blank)
131
+ }
132
+
133
+ const frames = doc.querySelectorAll('iframe');
134
+ for (const frame of frames) {
135
+ try {
136
+ if (frame.contentDocument) {
137
+ processDocument(frame.contentDocument, depth + 1);
138
+ }
139
+ } catch (e) {
140
+ // Skip cross-origin iframes
141
+ }
142
+ }
143
+ }
144
+
145
+ processDocument(document);
146
+
147
+ // Always drop priority-4 nodes (low-value structural or invisible)
148
+ let finalElements = elements.filter(el => el.priority <= 3);
149
+
150
+ // Additional size condensation when still exceeding MAX_LINES
151
+ if (finalElements.length > MAX_LINES) {
152
+ const filterBy = (maxPriority) => finalElements.filter(el => el.priority <= maxPriority);
153
+
154
+ // Progressively tighten: keep 1-3, then 1-2, finally only 1
155
+ for (const limit of [3, 2, 1]) {
156
+ const candidate = filterBy(limit);
157
+ if (candidate.length <= MAX_LINES || limit === 1) {
158
+ finalElements = candidate;
159
+ break;
160
+ }
161
+ }
162
+ }
163
+
164
+ // ------------------------------------------------------------------
165
+ // Re-apply indentation so that it matches the *visible* hierarchy only.
166
+ // Whenever an ancestor element is removed due to priority rules, its
167
+ // children will be re-indented one level up so the structure remains
168
+ // intuitive.
169
+ // ------------------------------------------------------------------
170
+ const outputLines = [];
171
+ const depthStack = []; // keeps track of kept original depths
172
+
173
+ for (const el of finalElements) {
174
+ // Pop depths that are not ancestors of current element
175
+ while (depthStack.length && depthStack[depthStack.length - 1] >= el.depth) {
176
+ depthStack.pop();
177
+ }
178
+
179
+ // Push the current depth so future descendants know their ancestor chain
180
+ depthStack.push(el.depth);
181
+
182
+ const compressedDepth = depthStack.length - 1; // root level has zero indent
183
+ const indent = '\t'.repeat(compressedDepth);
184
+ outputLines.push(indent + el.text);
185
+ }
186
+
187
+ return outputLines.join('\n');
188
+ })();
@@ -0,0 +1,164 @@
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
+ from pathlib import Path
15
+ from typing import TYPE_CHECKING, Dict, List, Optional
16
+
17
+ if TYPE_CHECKING:
18
+ from playwright.async_api import Page
19
+
20
+ # Logging support
21
+ from camel.logger import get_logger
22
+
23
+ logger = get_logger(__name__)
24
+
25
+
26
+ class PageSnapshot:
27
+ """Utility for capturing YAML-like page snapshots and diff-only
28
+ variants."""
29
+
30
+ MAX_TIMEOUT_MS = 5000 # wait_for_load_state timeout
31
+
32
+ def __init__(self, page: "Page"):
33
+ self.page = page
34
+ self.snapshot_data: Optional[str] = None # last full snapshot
35
+ self._last_url: Optional[str] = None
36
+ self.last_info: Dict[str, List[int] | bool] = {
37
+ "is_diff": False,
38
+ "priorities": [1, 2, 3],
39
+ }
40
+
41
+ # ---------------------------------------------------------------------
42
+ # Public API
43
+ # ---------------------------------------------------------------------
44
+ async def capture(
45
+ self, *, force_refresh: bool = False, diff_only: bool = False
46
+ ) -> str:
47
+ """Return current snapshot or just the diff to previous one."""
48
+ try:
49
+ current_url = self.page.url
50
+
51
+ # Serve cached copy (unless diff requested)
52
+ if (
53
+ not force_refresh
54
+ and current_url == self._last_url
55
+ and self.snapshot_data
56
+ and not diff_only
57
+ ):
58
+ return self.snapshot_data
59
+
60
+ # ensure DOM stability
61
+ await self.page.wait_for_load_state(
62
+ 'domcontentloaded', timeout=self.MAX_TIMEOUT_MS
63
+ )
64
+
65
+ logger.debug("Capturing page snapshot …")
66
+ snapshot_text = await self._get_snapshot_direct()
67
+ formatted = self._format_snapshot(snapshot_text or "<empty>")
68
+
69
+ output = formatted
70
+ if diff_only and self.snapshot_data:
71
+ output = self._compute_diff(self.snapshot_data, formatted)
72
+
73
+ # update cache with *full* snapshot (not diff)
74
+ self._last_url = current_url
75
+ self.snapshot_data = formatted
76
+
77
+ # analyse priorities present (only for non-diff)
78
+ priorities_included = self._detect_priorities(
79
+ formatted if not diff_only else self.snapshot_data or formatted
80
+ )
81
+ self.last_info = {
82
+ "is_diff": diff_only and self.snapshot_data is not None,
83
+ "priorities": priorities_included,
84
+ }
85
+
86
+ logger.debug(
87
+ "Snapshot captured. Diff_only=%s, priorities=%s",
88
+ diff_only,
89
+ self.last_info["priorities"],
90
+ )
91
+ return output
92
+ except Exception as exc:
93
+ logger.error("Snapshot capture failed: %s", exc)
94
+ return f"Error: Could not capture page snapshot {exc}"
95
+
96
+ # ------------------------------------------------------------------
97
+ # Internal helpers
98
+ # ------------------------------------------------------------------
99
+ _snapshot_js_cache: Optional[str] = None # class-level cache
100
+
101
+ async def _get_snapshot_direct(self) -> Optional[str]:
102
+ try:
103
+ if PageSnapshot._snapshot_js_cache is None:
104
+ js_path = Path(__file__).parent / "snapshot.js"
105
+ PageSnapshot._snapshot_js_cache = js_path.read_text(
106
+ encoding="utf-8"
107
+ )
108
+ return await self.page.evaluate(PageSnapshot._snapshot_js_cache)
109
+ except Exception as e:
110
+ logger.warning("Failed to execute snapshot JavaScript: %s", e)
111
+ return None
112
+
113
+ @staticmethod
114
+ def _format_snapshot(text: str) -> str:
115
+ return "\n".join(["- Page Snapshot", "```yaml", text, "```"])
116
+
117
+ @staticmethod
118
+ def _compute_diff(old: str, new: str) -> str:
119
+ if not old or not new:
120
+ return "- Page Snapshot (error: missing data for diff)"
121
+
122
+ import difflib
123
+
124
+ diff = list(
125
+ difflib.unified_diff(
126
+ old.splitlines(False),
127
+ new.splitlines(False),
128
+ fromfile='prev',
129
+ tofile='curr',
130
+ lineterm='',
131
+ )
132
+ )
133
+ if not diff:
134
+ return "- Page Snapshot (no structural changes)"
135
+ return "\n".join(["- Page Snapshot (diff)", "```diff", *diff, "```"])
136
+
137
+ # ------------------------------------------------------------------
138
+ def _detect_priorities(self, snapshot_yaml: str) -> List[int]:
139
+ """Return sorted list of priorities present (1,2,3)."""
140
+ priorities = set()
141
+ for line in snapshot_yaml.splitlines():
142
+ if '[ref=' not in line:
143
+ continue
144
+ lower_line = line.lower()
145
+ if any(
146
+ r in lower_line
147
+ for r in (
148
+ "input",
149
+ "button",
150
+ "select",
151
+ "textarea",
152
+ "checkbox",
153
+ "radio",
154
+ "link",
155
+ )
156
+ ):
157
+ priorities.add(1)
158
+ elif 'label' in lower_line:
159
+ priorities.add(2)
160
+ else:
161
+ priorities.add(3)
162
+ if not priorities:
163
+ priorities.add(3)
164
+ return sorted(priorities)
@@ -62,7 +62,7 @@ class PPTXToolkit(BaseToolkit):
62
62
  output_dir (str): The default directory for output files.
63
63
  Defaults to the current working directory.
64
64
  timeout (Optional[float]): The timeout for the toolkit.
65
- (default: :obj: `None`)
65
+ (default: :obj:`None`)
66
66
  """
67
67
  super().__init__(timeout=timeout)
68
68
  self.output_dir = Path(output_dir).resolve()
@@ -120,7 +120,7 @@ class PPTXToolkit(BaseToolkit):
120
120
  frame_paragraph: The paragraph to format.
121
121
  text (str): The text to format.
122
122
  set_color_to_white (bool): Whether to set the color to white.
123
- (default: :obj: `False`)
123
+ (default: :obj:`False`)
124
124
  """
125
125
  from pptx.dml.color import RGBColor
126
126
 
@@ -170,7 +170,7 @@ class PPTXToolkit(BaseToolkit):
170
170
  flat_items_list (List[Tuple[str, int]]): The list of items to be
171
171
  displayed.
172
172
  set_color_to_white (bool): Whether to set the font color to white.
173
- (default: :obj: `False`)
173
+ (default: :obj:`False`)
174
174
  """
175
175
  if not flat_items_list:
176
176
  logger.warning("Empty bullet point list provided")
@@ -368,7 +368,7 @@ class PPTXToolkit(BaseToolkit):
368
368
  supplied, it is resolved to self.output_dir.
369
369
  template (Optional[str]): The path to the template PPTX file.
370
370
  Initializes a presentation from a given template file Or PPTX
371
- file. (default: :obj: `None`)
371
+ file. (default: :obj:`None`)
372
372
 
373
373
  Returns:
374
374
  str: A success message indicating the file was created.
@@ -39,7 +39,7 @@ class SymPyToolkit(BaseToolkit):
39
39
 
40
40
  Args:
41
41
  default_variable (str): The default variable for
42
- operations (default: :obj: `x`)
42
+ operations (default: :obj:`x`)
43
43
  """
44
44
  super().__init__(timeout=timeout)
45
45
  self.default_variable = default_variable
@@ -32,7 +32,7 @@ class TaskPlanningToolkit(BaseToolkit):
32
32
 
33
33
  Args:
34
34
  timeout (Optional[float]): The timeout for the toolkit.
35
- (default: :obj: `None`)
35
+ (default: :obj:`None`)
36
36
  """
37
37
  super().__init__(timeout=timeout)
38
38
 
@@ -53,7 +53,7 @@ class TaskPlanningToolkit(BaseToolkit):
53
53
  string is the content for a new sub-task.
54
54
  original_task_id (Optional[str]): The id of the task to be
55
55
  decomposed. If not provided, a new id will be generated.
56
- (default: :obj: `None`)
56
+ (default: :obj:`None`)
57
57
 
58
58
  Returns:
59
59
  List[Task]: A list of newly created sub-task objects.
@@ -99,7 +99,7 @@ class TaskPlanningToolkit(BaseToolkit):
99
99
  sub_task_contents (List[str]): A list of strings, where each
100
100
  string is the content for a new sub-task.
101
101
  original_task_id (Optional[str]): The id of the task to be
102
- decomposed. (default: :obj: `None`)
102
+ decomposed. (default: :obj:`None`)
103
103
 
104
104
  Returns:
105
105
  List[Task]: Reordered or modified tasks.
@@ -32,7 +32,7 @@ class ThinkingToolkit(BaseToolkit):
32
32
 
33
33
  Args:
34
34
  timeout (Optional[float]): The timeout for the toolkit.
35
- (default: :obj: `None`)
35
+ (default: :obj:`None`)
36
36
  """
37
37
  super().__init__(timeout=timeout)
38
38
  self.plans: List[str] = []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: camel-ai
3
- Version: 0.2.67
3
+ Version: 0.2.69a1
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
@@ -109,6 +109,7 @@ Requires-Dist: rank-bm25<0.3,>=0.2.2; extra == 'all'
109
109
  Requires-Dist: redis<6,>=5.0.6; extra == 'all'
110
110
  Requires-Dist: reka-api<4,>=3.0.8; extra == 'all'
111
111
  Requires-Dist: requests-oauthlib<2,>=1.3.1; extra == 'all'
112
+ Requires-Dist: rlcard<1.3.0,>=1.0.0; extra == 'all'
112
113
  Requires-Dist: rouge<2,>=1.0.1; extra == 'all'
113
114
  Requires-Dist: scenedetect>=0.6.5.2; extra == 'all'
114
115
  Requires-Dist: scholarly[tor]==1.7.11; extra == 'all'
@@ -1,4 +1,4 @@
1
- camel/__init__.py,sha256=TCwqjg1v17Gr_PGr5HJ87K5VPxlP1O7yl8fxz4lHKeg,899
1
+ camel/__init__.py,sha256=1jdrogMF4lEAc0fG6MGwLdfMt_c4luht9mj7KUDk-ts,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=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=hv5tVY17U8n1v7NskNWWbkdGWzu_4UW0Wpw_tkRT348,73141
10
+ camel/agents/chat_agent.py,sha256=6Bv_RWMnl2sS73hXkm7An2_Rg62e5FDlLn8eHHCGo9A,79389
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
@@ -74,7 +74,7 @@ camel/configs/samba_config.py,sha256=t7jm6LEen6_d3TBohdIu_fOiYU0rscra2CFttnoOiDg
74
74
  camel/configs/sglang_config.py,sha256=GgqfDiuAHYJH0HfzBpkP8DvoDc7FYLO1ZP6kNnmKEdo,3943
75
75
  camel/configs/siliconflow_config.py,sha256=o1mRul-Krb-r3HCZQZfV_UgEJL6nXTH9qu9bUemaoGU,4115
76
76
  camel/configs/togetherai_config.py,sha256=7tge2Tarri68B1AS9FXWPm89jjcIbo6fB3aJaEMYwTc,5449
77
- camel/configs/vllm_config.py,sha256=oxskavzcgwLaqGjFYfbXCsEmhv-wZf-zBREjaRvCmac,6125
77
+ camel/configs/vllm_config.py,sha256=JOwLAW4xkRUZGKY06AjzUsnmaYzdcScaDfMSg1-nfKc,6253
78
78
  camel/configs/watsonx_config.py,sha256=Ox_xZVCHp-42vKtWSWZtROt9rle7y2aNjVUYEXZ-AnE,4688
79
79
  camel/configs/yi_config.py,sha256=EJVp6SWX6XuQFMxqgpg-HnBPkr_HvsCJIgQiK5R-i1I,2720
80
80
  camel/configs/zhipuai_config.py,sha256=RQrUrWFXKvyrXo8mbGeyUsal5YRbWCKAwU4s6_4yeu4,3560
@@ -84,7 +84,7 @@ camel/data_collectors/base.py,sha256=Rn0aJBBvpMZYYTLT1yNjIalIvDuVVwOx6iawKlzocZQ
84
84
  camel/data_collectors/sharegpt_collector.py,sha256=Et5Q7imvnPdEDKBoTMJOchfTGHunHimFnUmQygRAeFU,7617
85
85
  camel/datagen/__init__.py,sha256=EPF-eZ4rg7qbeSVZhfQ0iME0WDRSqRwBGbW-s0ZJ2EA,949
86
86
  camel/datagen/cot_datagen.py,sha256=_KuXa0ksUkGy9UdIyWC-ld9C8rISnGCVI8Ef1H0SUIo,17345
87
- camel/datagen/self_improving_cot.py,sha256=5Mznv7EASZTgfwAjg3d1CQSy_YvKICnHbv9-N0IYH9s,34284
87
+ camel/datagen/self_improving_cot.py,sha256=BIqYr1Hv2mITjp4VR45bRKX8FrcxY8H4v1KL131SCN4,34283
88
88
  camel/datagen/evol_instruct/__init__.py,sha256=cajmED2eAPBUBH4EfabTJsgYehMtsTPwEYHWX-uTXTQ,827
89
89
  camel/datagen/evol_instruct/evol_instruct.py,sha256=JEh3w5r0BybElfQgpBwptFSPMx0jfLztm4oSGGrM1Xc,16269
90
90
  camel/datagen/evol_instruct/scorer.py,sha256=Ae2iZQVcvKEgwVWVsuQyxCDYQAyO292YxfnaKAMeukA,6237
@@ -121,9 +121,10 @@ camel/embeddings/openai_embedding.py,sha256=zix0O8KdbiVarol4hktKi-0I060epsnj8qAE
121
121
  camel/embeddings/sentence_transformers_embeddings.py,sha256=q9jR_C5y58R-35WGaluT5q5gOwVRWz3-uo-Ivisbsj4,2732
122
122
  camel/embeddings/together_embedding.py,sha256=Nl7uyk3pxyI4-l147LEkc1zj5O-H17RbJtb8pYb2K7Q,4765
123
123
  camel/embeddings/vlm_embedding.py,sha256=ydmU1n-3ecqkqsRH5crvLfbRlfNcWnpHBuE6B_5_HuQ,5708
124
- camel/environments/__init__.py,sha256=fwk74TJO5OaOhL5Pmiz6s6h77B_-DGav5m_HbfS1oUQ,1053
124
+ camel/environments/__init__.py,sha256=VXNFb4jGImUYBVWR_G6D-_fUd4n7yZw_t_BVlZNOUxg,1276
125
125
  camel/environments/models.py,sha256=jVcCyU7xObKoWPnkshmPqyyKi3AOiMVVtUZA-tWEYUU,4194
126
126
  camel/environments/multi_step.py,sha256=HPIH2W-iWsmtDLeN1gjxo7LoAnMQQZzdmfjhmRoBAxg,8534
127
+ camel/environments/rlcards_env.py,sha256=OclnrJf7HgjuGUgYP6lISBmzTyG_gThHgPKwTUrG9y8,29861
127
128
  camel/environments/single_step.py,sha256=zrAXLOBGGKQFnGENasUnmFO_T-rjppGPK2CRBLGu7aQ,23019
128
129
  camel/environments/tic_tac_toe.py,sha256=axRDN9yUVH8PzACkD6zenWiQKFDaupGsQ7NmSvbJCIc,19080
129
130
  camel/extractors/__init__.py,sha256=lgtDl8zWvN826fJVKqRv05w556YZ-EdrHwdzKphywgA,1097
@@ -137,13 +138,13 @@ camel/interpreters/internal_python_interpreter.py,sha256=TU4ITQTsR8TXsklN11xWEcC
137
138
  camel/interpreters/interpreter_error.py,sha256=uEhcmHmmcajt5C9PLeHs21h1fE6cmyt23tCAGie1kTA,880
138
139
  camel/interpreters/ipython_interpreter.py,sha256=V-Z_nIwaKmmivv_gD6nwdzmqfBUW4IoN4vZ0IOaUTZU,6582
139
140
  camel/interpreters/subprocess_interpreter.py,sha256=DMLJIlTiHk0QA_pH5CXESHdJk-5olKo3aUh0KNECqJI,17759
140
- camel/interpreters/docker/Dockerfile,sha256=SbbuKS_Rwv9JTKRlVOlsO4QuPTFA9zbsN5CZp9KeUMk,1777
141
+ camel/interpreters/docker/Dockerfile,sha256=n3oXzcJhELuN2oYzOyEItICga6RqtwRyjPtS-Qes-F4,1625
141
142
  camel/loaders/__init__.py,sha256=NfXLr0gQUhfyMeB5KpU9EUvhhFLp3X5KNinDs2WO0Q0,1548
142
143
  camel/loaders/apify_reader.py,sha256=oaVjKyNhJhG-hTuIwrpZ2hsB4XTL0M-kUksgSL2R0ck,7952
143
144
  camel/loaders/base_io.py,sha256=zsbdBPHgSPFyQrtiUgAsHvy39QHWUObRYNaVvr-pPk0,10190
144
145
  camel/loaders/chunkr_reader.py,sha256=LC2zZvq2BiT1j2ukWPCttgo8a3RlOhFDfijYsEEQ_9I,6452
145
146
  camel/loaders/crawl4ai_reader.py,sha256=ugfGMpWhfLnKf_XEOyDGI2ekpViDnSATg9eSxHyWX7M,7653
146
- camel/loaders/firecrawl_reader.py,sha256=wCPHEWbfLv_q2x9MdTiSvJ_LDqUPO88lzPf0mmOBsME,5667
147
+ camel/loaders/firecrawl_reader.py,sha256=whHBhixQkCtJZYhhr7TgU7aMcbnfDR8LXx5If5Ci_kg,5687
147
148
  camel/loaders/jina_url_reader.py,sha256=dL9J5JlsFKEhi4gU_vYIxKvvf_RJ4LY9gG6i8P8JpcA,3601
148
149
  camel/loaders/markitdown.py,sha256=2tc9Tf2pMJFkFzJwTAge-2kdmgRBBAV3sXHjcbo9AVE,7058
149
150
  camel/loaders/mineru_extractor.py,sha256=nKa5n7f3ergv1TURcbXZJP5mQpnSCIFdlWrxWn4hBz8,9070
@@ -157,9 +158,9 @@ camel/memories/base.py,sha256=3BGuExfwwkbkVpxw1uYms8O37F-PD8ArcmYnFKYUcI4,5652
157
158
  camel/memories/records.py,sha256=NoiwDuwnKYObhrXPHSRGw8xdxAqyZDDiarOAN6-d17I,4451
158
159
  camel/memories/blocks/__init__.py,sha256=ci7_WU11222cNd1Zkv-a0z5E2ux95NMjAYm_cDzF0pE,854
159
160
  camel/memories/blocks/chat_history_block.py,sha256=ZAQZ9NqbwZ_w8XebQ3vVPSTA2sfUNooOfI4oNrGxdDo,6679
160
- camel/memories/blocks/vectordb_block.py,sha256=lf0ipY4cJMB--tQDvpInqsmHZCn7sD1pkmjC70vTtn4,3941
161
+ camel/memories/blocks/vectordb_block.py,sha256=r0mRGLV14YUr8aruLdylBjKdSm11oprsiNEWl0EJJhQ,4166
161
162
  camel/memories/context_creators/__init__.py,sha256=pqzkBM2ro5JZD7RhWg05TjinphhCq0QTIqBJlIL1sJ0,800
162
- camel/memories/context_creators/score_based.py,sha256=b35GNjioYgFueXIFr-Yk2NlJHLlaOvLj3Yh_b_qRrrA,10313
163
+ camel/memories/context_creators/score_based.py,sha256=26YCaPQbIF4_0QpLyhAhFgGZaq0vwCAEgqpu4yyg6vA,16246
163
164
  camel/messages/__init__.py,sha256=Px-gTFp2Kcgbeb2sZQ_f4tqjoLHE-QEOiMHIMfPrvTw,1949
164
165
  camel/messages/base.py,sha256=4tW240FyYWBoNhvfFClCjCGoiHiAdhHqMqsbg2_nX44,19760
165
166
  camel/messages/func_message.py,sha256=2fv35Ruyhhf-wmqtCPiqC-ZujnR-hJH-rEoSgPTKdA8,5959
@@ -173,7 +174,7 @@ camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py,sha256=-9
173
174
  camel/models/__init__.py,sha256=leNjmPCEeO8jZAvY8op1XeFPMuSnF349buZRGCE3aBU,3385
174
175
  camel/models/_utils.py,sha256=hob1ehnS5xZitMCdYToHVgaTB55JnaP4_DSWnTEfVsg,2045
175
176
  camel/models/aiml_model.py,sha256=tQeJcS0RlRwMK-sapFVUSIr-r5cJyCt0UNphzD8O2oI,4070
176
- camel/models/anthropic_model.py,sha256=BsMg_GQhrs0PUU5OR5IV8r3hLRoQfGty1uiIUtZEC5Y,4648
177
+ camel/models/anthropic_model.py,sha256=m5J1-RabKyYf-2ejA7A8r4qbRLpS9oRtHWapzHs0BnM,8878
177
178
  camel/models/aws_bedrock_model.py,sha256=bcQBiHVdVuJXyPEkSdymQlGx2zHIVj5d4ouFuF8CSY0,4670
178
179
  camel/models/azure_openai_model.py,sha256=FGQ6Cls-a7uzStsgPmBPffgm7TgTEzN3R2SWlAmiBeY,15164
179
180
  camel/models/base_audio_model.py,sha256=_VUWh1L3rh8mldNvM5R6jBOKtvmTeBKJyRxAdPJmPlY,3324
@@ -252,11 +253,11 @@ camel/retrievers/vector_retriever.py,sha256=Fp6k7FkoeUXLiUokqsMIO74Dh2mJcmJP2TrC
252
253
  camel/runtimes/__init__.py,sha256=bFbqDIST69V6LC_Oe5YBz-8qlUaJt4zWGFFT0ctiMLI,1273
253
254
  camel/runtimes/api.py,sha256=JfkHqQ_Xs3ZNl4TXC_obV3Ymi21ltP1LAkXzBA3H_Lo,3227
254
255
  camel/runtimes/base.py,sha256=KKBLO6PwWEWBXbYaVtO9JXqBT8110iYpMhgNSIxQvYQ,1512
255
- camel/runtimes/configs.py,sha256=7swJ6shD5CAnQj16D_j1BWJjRDHLue8_BJcQ1-YiKJI,2431
256
- camel/runtimes/daytona_runtime.py,sha256=pdKSxR91JIZPbvt-ciwQYVmHxuHbT8GII7vU7BcvXbA,9166
257
- camel/runtimes/docker_runtime.py,sha256=CASeKz3zqcZdD8VHyBm0hIeNwsprhH1wtG56vWhJAyI,13579
256
+ camel/runtimes/configs.py,sha256=xPTfryhNyBW4ON7UuJnvp1--RHscKZSipjAazoUC8Fw,2420
257
+ camel/runtimes/daytona_runtime.py,sha256=Gy6M_fXYAGHaCQp_rIdN09ZmSxI6XvriyhtGjhZTMmg,9162
258
+ camel/runtimes/docker_runtime.py,sha256=m2rJKXN_JwHHSPQ-C_9ksLl9xpVwUcGt1R24O92guws,13573
258
259
  camel/runtimes/llm_guard_runtime.py,sha256=nSV-_tKzxgtT44PSq_CMSh4GTIlxzfUIa1dy4oeU1Ds,8103
259
- camel/runtimes/remote_http_runtime.py,sha256=flGlxkx1DiH2y4_sJ1yie-ZWK96HqPpxXiUa7nz4C90,6670
260
+ camel/runtimes/remote_http_runtime.py,sha256=DMQonuUX1sad4-WtEAaWxnotYTXTd-RkljA42ekkneM,6665
260
261
  camel/runtimes/ubuntu_docker_runtime.py,sha256=l_1kmFY5o59BC_v-2DUqZrRLsMtrm6hTf9K9ENhq-cY,12467
261
262
  camel/runtimes/utils/__init__.py,sha256=_4kT7j4gW9t5Zd_AbFa2mcHe8rpLB0tVlgAhQHxfwQQ,875
262
263
  camel/runtimes/utils/function_risk_toolkit.py,sha256=0A9IN61JSziwKYB0AtCTZByXV9A3zWDRcNATG2V2dmA,2356
@@ -270,13 +271,13 @@ camel/societies/babyagi_playing.py,sha256=KbTdpHfZ2V8AripVck0bNTOyF-RSaMPCRARz3D
270
271
  camel/societies/role_playing.py,sha256=1TsQbGYmN91BeQ0DGM5PpSJ9TMbn1F3maJNuv4fQ5zI,31749
271
272
  camel/societies/workforce/__init__.py,sha256=bkTI-PE-MSK9AQ2V2gR6cR2WY-R7Jqy_NmXRtAoqo8o,920
272
273
  camel/societies/workforce/base.py,sha256=z2DmbTP5LL5-aCAAqglznQqCLfPmnyM5zD3w6jjtsb8,2175
273
- camel/societies/workforce/prompts.py,sha256=kjUkfH6JAORt_zXyO_rH-isdQDLc6bQhGvZreCSs7pA,8710
274
+ camel/societies/workforce/prompts.py,sha256=_l7OUkzH5p7KOd8HMZle9zB9W3jKza_Yb_6elFKiZ2s,11813
274
275
  camel/societies/workforce/role_playing_worker.py,sha256=pWPCtkLx-xbc4SWyZBfMwvWr-R5ZpANhN7g6PDuH8Po,7615
275
- camel/societies/workforce/single_agent_worker.py,sha256=0p69HrMtqIkuBUL8QOJF4pYYxbxGrZGq8FuQy-qsOdI,4675
276
- camel/societies/workforce/task_channel.py,sha256=fj2Srkgzk8CKjNH8dkvbKSJZLPlV3wJupGPiWshVF-o,6998
277
- camel/societies/workforce/utils.py,sha256=klqTSjUnIUaFo_AnFMmozNNnwclxx_RicfujDspc0l0,5861
278
- camel/societies/workforce/worker.py,sha256=xdUWBW8Qifhhrh4jdK5S_q4LiSEL4NxKuDZN1fgQESA,4135
279
- camel/societies/workforce/workforce.py,sha256=3iAsAZNOUeSuLq3JGJZbDnAEtbE2tNJFBbJneZUpgfI,86296
276
+ camel/societies/workforce/single_agent_worker.py,sha256=NIP0cHueDNQZxzN-MikmwIe-1LoT3V8Z1LgqdiPidCE,14438
277
+ camel/societies/workforce/task_channel.py,sha256=uqQQI67Tr4awbR4bjZXdx8_4gL6-ON5IjQk_H_ryqT4,7431
278
+ camel/societies/workforce/utils.py,sha256=Gjlz7pLo4r1b6iNHtlIMxeEuat4d6tEEQMI40JAU3kY,6190
279
+ camel/societies/workforce/worker.py,sha256=36tkOyz4G2wfBdrFjt9NBPXsx4UbE6uL5on8sP2aoqk,6414
280
+ camel/societies/workforce/workforce.py,sha256=gLbjcGeAXwHCyk6jGs7mBHJnpEG7xcvEcwjA2ibi6-0,88526
280
281
  camel/societies/workforce/workforce_logger.py,sha256=2xGMMYQPphC5WlPbgWWp9SEY2hGpP-GkhgsNC19irns,24237
281
282
  camel/storages/__init__.py,sha256=bFpvvAS2QyZoIr-tnwhMWsZRL411kIRq6IMUHcI7KHs,1989
282
283
  camel/storages/graph_storages/__init__.py,sha256=G29BNn651C0WTOpjCl4QnVM-4B9tcNh8DdmsCiONH8Y,948
@@ -304,15 +305,15 @@ camel/storages/vectordb_storages/qdrant.py,sha256=a_cT0buSCHQ2CPZy852-mdvMDwy5zo
304
305
  camel/storages/vectordb_storages/tidb.py,sha256=w83bxgKgso43MtHqlpf2EMSpn1_Nz6ZZtY4fPw_-vgs,11192
305
306
  camel/storages/vectordb_storages/weaviate.py,sha256=wDUE4KvfmOl3DqHFU4uF0VKbHu-q9vKhZDe8FZ6QXsk,27888
306
307
  camel/tasks/__init__.py,sha256=MuHwkw5GRQc8NOCzj8tjtBrr2Xg9KrcKp-ed_-2ZGIM,906
307
- camel/tasks/task.py,sha256=7RelHquorAhIZfPogZFK--ju4gm5JluZAMk0-EcjgRs,16135
308
+ camel/tasks/task.py,sha256=RXRGbzDc00UZQ6f6EIFyaLLlGVKoyhXMWQr9ooLwg18,16337
308
309
  camel/tasks/task_prompt.py,sha256=3KZmKYKUPcTKe8EAZOZBN3G05JHRVt7oHY9ORzLVu1g,2150
309
310
  camel/terminators/__init__.py,sha256=t8uqrkUnXEOYMXQDgaBkMFJ0EXFKI0kmx4cUimli3Ls,991
310
311
  camel/terminators/base.py,sha256=xmJzERX7GdSXcxZjAHHODa0rOxRChMSRboDCNHWSscs,1511
311
312
  camel/terminators/response_terminator.py,sha256=n3G5KP6Oj7-7WlRN0yFcrtLpqAJKaKS0bmhrWlFfCgQ,4982
312
313
  camel/terminators/token_limit_terminator.py,sha256=YWv6ZR8R9yI2Qnf_3xES5bEE_O5bb2CxQ0EUXfMh34c,2118
313
- camel/toolkits/__init__.py,sha256=R6sXzRRAULMIhITki83Ipy93l1NI1SK4p2DHGPqornA,5026
314
- camel/toolkits/aci_toolkit.py,sha256=jhXMQggG22hd3dXdT3iJm7qWTH3KJC-TUVk1txoNWrM,16079
315
- camel/toolkits/arxiv_toolkit.py,sha256=Bs2-K1yfmqhEhHoQ0j00KoI8LpOd8M3ApXcvI_-ApVw,6303
314
+ camel/toolkits/__init__.py,sha256=2Cf42WOw5v4kKo8WyoyHILoqtPdfV7_Xx4YuFcZt76o,5121
315
+ camel/toolkits/aci_toolkit.py,sha256=39AsXloBb16hHB7DKi6mFU6NPZ3iVpM2FZgaP4o4eLE,16060
316
+ camel/toolkits/arxiv_toolkit.py,sha256=mw629nIN_ozaAxNv3nbvhonJKNI2-97ScRCBS3gVqNo,6297
316
317
  camel/toolkits/ask_news_toolkit.py,sha256=WfWaqwEo1Apbil3-Rb5y65Ws43NU4rAFWZu5VHe4los,23448
317
318
  camel/toolkits/async_browser_toolkit.py,sha256=dHXV8uCDetLKN7no5otyP3hHDnQIRhGY0msJRJrFbIY,50436
318
319
  camel/toolkits/audio_analysis_toolkit.py,sha256=dnDtQJbztVBwBpamSyCfigPw2GBnDAfi3fOPgql4Y50,8941
@@ -322,12 +323,12 @@ camel/toolkits/browser_toolkit.py,sha256=Ntn_LmCrhqqIBWq9HtiIKw-M0cL5ebn74Ej1GBo
322
323
  camel/toolkits/browser_toolkit_commons.py,sha256=uuc1V5tN3YJmTSe6NHAVJqwsL4iYD7IiSZWxPLYW67A,22196
323
324
  camel/toolkits/code_execution.py,sha256=ptexsx8t9teGse8ROnAHCYaLlDg843p-9p1ek-8JpWU,5620
324
325
  camel/toolkits/dalle_toolkit.py,sha256=GSnV7reQsVmhMi9sbQy1Ks_5Vs57Dlir_AbT2PPCZwo,6153
325
- camel/toolkits/dappier_toolkit.py,sha256=ewhXeeUj7e4DiTzuWDA-gHGhrLdyoZ4l9pbijvF3py0,8199
326
+ camel/toolkits/dappier_toolkit.py,sha256=OEHOYXX_oXhgbVtWYAy13nO9uXf9i5qEXSwY4PexNFg,8194
326
327
  camel/toolkits/data_commons_toolkit.py,sha256=aHZUSL1ACpnYGaf1rE2csVKTmXTmN8lMGRUBYhZ_YEk,14168
327
328
  camel/toolkits/excel_toolkit.py,sha256=DSjBXl24_LrJubGFFmB_vqliKzzWTbT1TH309YQVUO8,6653
328
- camel/toolkits/file_write_toolkit.py,sha256=3JF_6fFXXQUlZv3VjkXVXDOodyGHHev0GJgSyZpkEH8,16483
329
+ camel/toolkits/file_write_toolkit.py,sha256=i1CivjvqTpHakYK_EynNvNikjZZYsusxkjT2v-f9EYc,16473
329
330
  camel/toolkits/function_tool.py,sha256=045I_vyqvB6PorcoVaEbxYjGe-fD-FBKtO4lfpZ2eVw,33535
330
- camel/toolkits/github_toolkit.py,sha256=Xq4KynmvIW_2924BJBS98I9TaF0ugmN62Y74kcNv_us,13102
331
+ camel/toolkits/github_toolkit.py,sha256=iUyRrjWGAW_iljZVfNyfkm1Vi55wJxK6PsDAQs9pOag,13099
331
332
  camel/toolkits/google_calendar_toolkit.py,sha256=E-sdgdbtNBs_CXbhht9t1dsVr4DsTr5NguHkx4fvSmc,15410
332
333
  camel/toolkits/google_maps_toolkit.py,sha256=WTnkURpGri9KcY5OwV7AJJHOzmpu5RNmYE1QCVqvwWM,12023
333
334
  camel/toolkits/google_scholar_toolkit.py,sha256=WQ9a0HQr0vro1Uo1m--alCUXvMmaHVKeQYqGCxXc2s8,7562
@@ -348,7 +349,7 @@ camel/toolkits/openai_agent_toolkit.py,sha256=hT2ancdQigngAiY1LNnGJzZeiBDHUxrRGv
348
349
  camel/toolkits/openbb_toolkit.py,sha256=8yBZL9E2iSgskosBQhD3pTP56oV6gerWpFjIJc_2UMo,28935
349
350
  camel/toolkits/page_script.js,sha256=mXepZPnQNVLp_Wgb64lv7DMQIJYl_XIHJHLVt1OFZO4,13146
350
351
  camel/toolkits/playwright_mcp_toolkit.py,sha256=TRweKatFu-7UzfiuXrud2D_4OQjbf4tdP_sCBJ69FG8,3018
351
- camel/toolkits/pptx_toolkit.py,sha256=6iu4Hi2X0RinwQ93ge0EOMR73feSuyiq3yH1eFNA8LY,28566
352
+ camel/toolkits/pptx_toolkit.py,sha256=r30gSigVYOq8knphTxCl_G1c84jaD4Mvbuf06KhMrGg,28562
352
353
  camel/toolkits/pubmed_toolkit.py,sha256=VGl8KeyWi7pjb2kEhFBLmpBlP9ezv8JyWRHtEVTQ6nQ,12227
353
354
  camel/toolkits/pulse_mcp_search_toolkit.py,sha256=uLUpm19uC_4xLJow0gGVS9f-5T5EW2iRAXdJ4nqJG-A,4783
354
355
  camel/toolkits/pyautogui_toolkit.py,sha256=Q810fm8cFvElRory7B74aqS2YV6BOpdRE6jkewoM8xc,16093
@@ -359,10 +360,10 @@ camel/toolkits/searxng_toolkit.py,sha256=a2GtE4FGSrmaIVvX6Yide-abBYD1wsHqitnDlx9
359
360
  camel/toolkits/semantic_scholar_toolkit.py,sha256=Rh7eA_YPxV5pvPIzhjjvpr3vtlaCniJicrqzkPWW9_I,11634
360
361
  camel/toolkits/slack_toolkit.py,sha256=Nb3w-TbUmnUWEvHE9Hbf_wkpSepm_zKQj7m19UyoFio,11194
361
362
  camel/toolkits/stripe_toolkit.py,sha256=07swo5znGTnorafC1uYLKB4NRcJIOPOx19J7tkpLYWk,10102
362
- camel/toolkits/sympy_toolkit.py,sha256=dkzGp7C7Oy-qP1rVziEk_ZOPRb37d5LoI7JKCLiTEo4,33758
363
- camel/toolkits/task_planning_toolkit.py,sha256=rsFafEc6J0UOlHFYVyzC0K5PztcFsfj5jgIG6Aawnaw,4858
363
+ camel/toolkits/sympy_toolkit.py,sha256=BAQnI8EFJydNUpKQWXBdleQ1Cm-srDBhFlqp9V9pbPQ,33757
364
+ camel/toolkits/task_planning_toolkit.py,sha256=Ttw9fHae4omGC1SA-6uaeXVHJ1YkwiVloz_hO-fm1gw,4855
364
365
  camel/toolkits/terminal_toolkit.py,sha256=gupuTvNkwnFzcFwDB_irSJ9-dXRr8yEAsYq5ChEkkHg,37230
365
- camel/toolkits/thinking_toolkit.py,sha256=NyA6rDFG-WbCNt7NFODBTpqOIDtP6he6GhnZpPlA2To,8001
366
+ camel/toolkits/thinking_toolkit.py,sha256=nZYLvKWIx2BM1DYu69I9B5EISAG7aYcLYXKv9663BVk,8000
366
367
  camel/toolkits/twitter_toolkit.py,sha256=Px4N8aUxUzy01LhGSWkdrC2JgwKkrY3cvxgMeJ2XYfU,15939
367
368
  camel/toolkits/video_analysis_toolkit.py,sha256=Mf7kZ2UDKFzIq8XjJc6EhL8qXQnEomQ8OBy_eyjD49A,20647
368
369
  camel/toolkits/video_download_toolkit.py,sha256=jBb2SQ9OA5HIuGF7FbNQ0KrvvwMWPxUnvUyCHjbHuQQ,7501
@@ -370,6 +371,13 @@ camel/toolkits/weather_toolkit.py,sha256=fs9x9aC38Wsvni6A4PPpbRX6-aBnZiqs2Jix39y
370
371
  camel/toolkits/whatsapp_toolkit.py,sha256=udUQXkXyeWsmrUlOJZsGBhHtc_jhB05Axe_TchhibsU,5760
371
372
  camel/toolkits/wolfram_alpha_toolkit.py,sha256=qeIM8ySn5ilcExBWtx-hDOc35bNcebLVnZ67kt1H3mQ,9295
372
373
  camel/toolkits/zapier_toolkit.py,sha256=A83y1UcfuopH7Fx82pORzypl1StbhBjB2HhyOqYa300,7124
374
+ camel/toolkits/non_visual_browser_toolkit/__init__.py,sha256=mXAjf6qkl8BgJrBKPR5d2C3B2m4pOHvq6sRavmgOweA,812
375
+ camel/toolkits/non_visual_browser_toolkit/actions.py,sha256=pue7Q5ZGLhqcmbkuahrN_JBYdeV0xtqu9i4gr9mqGWU,7113
376
+ camel/toolkits/non_visual_browser_toolkit/agent.py,sha256=y6sAWlPXScVn7f2bPueS8yd8IQ3CkJ0HutP4DChs6P8,10330
377
+ camel/toolkits/non_visual_browser_toolkit/browser_non_visual_toolkit.py,sha256=C3RLqSDmYCmPiSijRBrcwdzRb5eGMQCSaIpMF72o4h0,12925
378
+ camel/toolkits/non_visual_browser_toolkit/nv_browser_session.py,sha256=qJSYc081tIdJ-T_KqsEUWQz_gQs-Uif1SuYhn6CC3sg,6289
379
+ camel/toolkits/non_visual_browser_toolkit/snapshot.js,sha256=4MHtRGlbvJWxs1gQC9RS0ButppPeLZPIHTwZ7AS7hFQ,6627
380
+ camel/toolkits/non_visual_browser_toolkit/snapshot.py,sha256=aJi_IP8E4RXFAt1waS2Eft3t7vbdtU_2m3ALjOJ1dic,5952
373
381
  camel/toolkits/open_api_specs/security_config.py,sha256=ZVnBa_zEifaE_ao2xsvV5majuJHpn2Tn7feMDOnj-eo,898
374
382
  camel/toolkits/open_api_specs/biztoc/__init__.py,sha256=OKCZrQCDwaWtXIN_2rA9FSqEvgpQRieRoHh7Ek6N16A,702
375
383
  camel/toolkits/open_api_specs/biztoc/ai-plugin.json,sha256=IJinQbLv5MFPGFwdN7PbOhwArFVExSEZdJspe-mOBIo,866
@@ -423,7 +431,7 @@ camel/verifiers/math_verifier.py,sha256=tA1D4S0sm8nsWISevxSN0hvSVtIUpqmJhzqfbuMo
423
431
  camel/verifiers/models.py,sha256=GdxYPr7UxNrR1577yW4kyroRcLGfd-H1GXgv8potDWU,2471
424
432
  camel/verifiers/physics_verifier.py,sha256=c1grrRddcrVN7szkxhv2QirwY9viIRSITWeWFF5HmLs,30187
425
433
  camel/verifiers/python_verifier.py,sha256=ogTz77wODfEcDN4tMVtiSkRQyoiZbHPY2fKybn59lHw,20558
426
- camel_ai-0.2.67.dist-info/METADATA,sha256=eVXDS9Q3bIEBBfcPcumWsQyv3FLifHMYHcQo5ptYlT0,44783
427
- camel_ai-0.2.67.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
428
- camel_ai-0.2.67.dist-info/licenses/LICENSE,sha256=id0nB2my5kG0xXeimIu5zZrbHLS6EQvxvkKkzIHaT2k,11343
429
- camel_ai-0.2.67.dist-info/RECORD,,
434
+ camel_ai-0.2.69a1.dist-info/METADATA,sha256=jl-Gs6_fECtoyaAusXMrlvSrTx1WvMmSAx39z4biZT8,44837
435
+ camel_ai-0.2.69a1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
436
+ camel_ai-0.2.69a1.dist-info/licenses/LICENSE,sha256=id0nB2my5kG0xXeimIu5zZrbHLS6EQvxvkKkzIHaT2k,11343
437
+ camel_ai-0.2.69a1.dist-info/RECORD,,