camel-ai 0.2.74a5__py3-none-any.whl → 0.2.75a0__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 (62) hide show
  1. camel/__init__.py +1 -1
  2. camel/interpreters/e2b_interpreter.py +34 -1
  3. camel/models/aiml_model.py +1 -16
  4. camel/models/anthropic_model.py +6 -22
  5. camel/models/aws_bedrock_model.py +1 -16
  6. camel/models/azure_openai_model.py +1 -16
  7. camel/models/base_model.py +0 -12
  8. camel/models/cohere_model.py +1 -16
  9. camel/models/crynux_model.py +1 -16
  10. camel/models/deepseek_model.py +1 -16
  11. camel/models/gemini_model.py +1 -16
  12. camel/models/groq_model.py +1 -17
  13. camel/models/internlm_model.py +1 -16
  14. camel/models/litellm_model.py +1 -16
  15. camel/models/lmstudio_model.py +1 -17
  16. camel/models/mistral_model.py +1 -16
  17. camel/models/modelscope_model.py +1 -16
  18. camel/models/moonshot_model.py +1 -16
  19. camel/models/nemotron_model.py +0 -5
  20. camel/models/netmind_model.py +1 -16
  21. camel/models/novita_model.py +1 -16
  22. camel/models/nvidia_model.py +1 -16
  23. camel/models/ollama_model.py +1 -16
  24. camel/models/openai_compatible_model.py +0 -3
  25. camel/models/openai_model.py +1 -16
  26. camel/models/openrouter_model.py +1 -17
  27. camel/models/ppio_model.py +1 -16
  28. camel/models/qianfan_model.py +1 -16
  29. camel/models/qwen_model.py +1 -16
  30. camel/models/reka_model.py +1 -16
  31. camel/models/samba_model.py +0 -32
  32. camel/models/sglang_model.py +1 -16
  33. camel/models/siliconflow_model.py +1 -16
  34. camel/models/stub_model.py +0 -4
  35. camel/models/togetherai_model.py +1 -16
  36. camel/models/vllm_model.py +1 -16
  37. camel/models/volcano_model.py +0 -17
  38. camel/models/watsonx_model.py +1 -16
  39. camel/models/yi_model.py +1 -16
  40. camel/models/zhipuai_model.py +1 -16
  41. camel/toolkits/hybrid_browser_toolkit/config_loader.py +3 -0
  42. camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py +225 -0
  43. camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts +164 -8
  44. camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts +2 -0
  45. camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts +106 -1
  46. camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts +19 -1
  47. camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js +20 -0
  48. camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py +41 -0
  49. camel/toolkits/hybrid_browser_toolkit_py/actions.py +158 -0
  50. camel/toolkits/hybrid_browser_toolkit_py/browser_session.py +55 -8
  51. camel/toolkits/hybrid_browser_toolkit_py/config_loader.py +43 -0
  52. camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py +312 -3
  53. camel/toolkits/hybrid_browser_toolkit_py/snapshot.py +10 -4
  54. camel/toolkits/hybrid_browser_toolkit_py/unified_analyzer.js +45 -4
  55. camel/toolkits/search_toolkit.py +182 -30
  56. camel/types/enums.py +9 -0
  57. camel/utils/mcp.py +2 -2
  58. camel/utils/token_counting.py +13 -2
  59. {camel_ai-0.2.74a5.dist-info → camel_ai-0.2.75a0.dist-info}/METADATA +6 -6
  60. {camel_ai-0.2.74a5.dist-info → camel_ai-0.2.75a0.dist-info}/RECORD +62 -62
  61. {camel_ai-0.2.74a5.dist-info → camel_ai-0.2.75a0.dist-info}/WHEEL +0 -0
  62. {camel_ai-0.2.74a5.dist-info → camel_ai-0.2.75a0.dist-info}/licenses/LICENSE +0 -0
@@ -13,6 +13,7 @@
13
13
  # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
14
14
  import os
15
15
  from typing import Any, Dict, List, Literal, Optional, TypeAlias, Union, cast
16
+ from urllib.parse import quote
16
17
 
17
18
  import requests
18
19
 
@@ -516,6 +517,29 @@ class SearchToolkit(BaseToolkit):
516
517
  """
517
518
  import requests
518
519
 
520
+ # Validate input parameters
521
+ if not isinstance(start_page, int) or start_page < 1:
522
+ raise ValueError("start_page must be a positive integer")
523
+
524
+ if (
525
+ not isinstance(number_of_result_pages, int)
526
+ or number_of_result_pages < 1
527
+ ):
528
+ raise ValueError(
529
+ "number_of_result_pages must be a positive integer"
530
+ )
531
+
532
+ # Google Custom Search API has a limit of 10 results per request
533
+ if number_of_result_pages > 10:
534
+ logger.warning(
535
+ f"Google API limits results to 10 per request. "
536
+ f"Requested {number_of_result_pages}, using 10 instead."
537
+ )
538
+ number_of_result_pages = 10
539
+
540
+ if search_type not in ["web", "image"]:
541
+ raise ValueError("search_type must be either 'web' or 'image'")
542
+
519
543
  # https://developers.google.com/custom-search/v1/overview
520
544
  GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")
521
545
  # https://cse.google.com/cse/all
@@ -535,11 +559,13 @@ class SearchToolkit(BaseToolkit):
535
559
  modified_query = f"{query} {exclusion_terms}"
536
560
  logger.debug(f"Excluded domains, modified query: {modified_query}")
537
561
 
562
+ encoded_query = quote(modified_query)
563
+
538
564
  # Constructing the URL
539
565
  # Doc: https://developers.google.com/custom-search/v1/using_rest
540
566
  base_url = (
541
567
  f"https://www.googleapis.com/customsearch/v1?"
542
- f"key={GOOGLE_API_KEY}&cx={SEARCH_ENGINE_ID}&q={modified_query}&start="
568
+ f"key={GOOGLE_API_KEY}&cx={SEARCH_ENGINE_ID}&q={encoded_query}&start="
543
569
  f"{start_page_idx}&lr={search_language}&num={number_of_result_pages}"
544
570
  )
545
571
 
@@ -552,8 +578,8 @@ class SearchToolkit(BaseToolkit):
552
578
  responses = []
553
579
  # Fetch the results given the URL
554
580
  try:
555
- # Make the get
556
- result = requests.get(url)
581
+ result = requests.get(url, timeout=30)
582
+ result.raise_for_status() # Raise exception for bad status codes
557
583
  data = result.json()
558
584
 
559
585
  # Get the result items
@@ -592,28 +618,31 @@ class SearchToolkit(BaseToolkit):
592
618
 
593
619
  responses.append(response)
594
620
  else:
595
- # Process web search results (existing logic)
596
- # Check metatags are present
597
- if "pagemap" not in search_item:
598
- continue
599
- if "metatags" not in search_item["pagemap"]:
600
- continue
621
+ title = search_item.get("title", "")
622
+ snippet = search_item.get("snippet", "")
623
+ link = search_item.get("link", "")
624
+
625
+ long_description = "N/A"
601
626
  if (
602
- "og:description"
603
- in search_item["pagemap"]["metatags"][0]
627
+ "pagemap" in search_item
628
+ and "metatags" in search_item["pagemap"]
604
629
  ):
605
- long_description = search_item["pagemap"][
606
- "metatags"
607
- ][0]["og:description"]
608
- else:
609
- long_description = "N/A"
610
- # Get the page title
611
- title = search_item.get("title")
612
- # Page snippet
613
- snippet = search_item.get("snippet")
630
+ metatags = search_item["pagemap"]["metatags"]
631
+ if metatags and len(metatags) > 0:
632
+ meta = metatags[0]
633
+ long_description = (
634
+ meta.get("og:description")
635
+ or meta.get("description")
636
+ or meta.get("twitter:description")
637
+ or "N/A"
638
+ )
639
+
640
+ if not title and not snippet and not link:
641
+ logger.debug(
642
+ f"Skipping result {i} due to missing essential fields"
643
+ )
644
+ continue
614
645
 
615
- # Extract the page url
616
- link = search_item.get("link")
617
646
  response = {
618
647
  "result_id": i,
619
648
  "title": title,
@@ -623,19 +652,74 @@ class SearchToolkit(BaseToolkit):
623
652
  }
624
653
  responses.append(response)
625
654
  else:
655
+ logger.debug(f"Google API response without items: {data}")
626
656
  error_info = data.get("error", {})
627
- logger.error(
628
- f"Google search failed - API response: {error_info}"
629
- )
657
+ if error_info:
658
+ error_code = error_info.get("code", "Unknown")
659
+ error_message = error_info.get("message", "Unknown error")
660
+ error_details = f"Error {error_code}: {error_message}"
661
+ else:
662
+ error_details = (
663
+ "No results found or API returned empty response"
664
+ )
665
+
666
+ logger.error(f"Google search failed - {error_details}")
630
667
  responses.append(
631
- {
632
- "error": f"Google search failed - "
633
- f"API response: {error_info}"
634
- }
668
+ {"error": f"Google search failed - {error_details}"}
635
669
  )
636
670
 
671
+ except requests.exceptions.Timeout:
672
+ logger.error("Google search request timed out")
673
+ responses.append(
674
+ {"error": "Google search request timed out after 30 seconds"}
675
+ )
676
+ except requests.exceptions.HTTPError as e:
677
+ error_message = f"Google API HTTP error: {e}"
678
+ try:
679
+ error_data = e.response.json()
680
+ if "error" in error_data and "message" in error_data["error"]:
681
+ api_error_message = error_data["error"]["message"]
682
+ error_code = error_data["error"].get(
683
+ "code", e.response.status_code
684
+ )
685
+ error_message = (
686
+ f"Google API error {error_code}: {api_error_message}"
687
+ )
688
+
689
+ if e.response.status_code == 429:
690
+ error_message = f"Google API rate limit exceeded: {api_error_message}"
691
+ elif e.response.status_code == 400:
692
+ if "API key" in api_error_message:
693
+ error_message = (
694
+ f"Invalid Google API key: {api_error_message}"
695
+ )
696
+ else:
697
+ error_message = f"Bad request to Google API: {api_error_message}"
698
+ except (ValueError, KeyError):
699
+ if e.response.status_code == 429:
700
+ error_message = "Google API rate limit exceeded. Please try again later."
701
+ elif e.response.status_code == 400:
702
+ error_message = "Google API bad request. Please check your API key and search engine ID."
703
+ elif e.response.status_code == 403:
704
+ error_message = "Google API access forbidden. Please check your API key permissions."
705
+
706
+ logger.error(error_message)
707
+ responses.append({"error": error_message})
708
+ except requests.exceptions.RequestException as e:
709
+ logger.error(f"Google search network error: {e}")
710
+ responses.append(
711
+ {"error": f"Network error during Google search: {e!s}"}
712
+ )
713
+ except ValueError as e:
714
+ logger.error(f"Google search response parsing error: {e}")
715
+ responses.append(
716
+ {"error": f"Failed to parse Google search response: {e!s}"}
717
+ )
637
718
  except Exception as e:
638
- responses.append({"error": f"google search failed: {e!s}"})
719
+ logger.error(f"Unexpected error during Google search: {e}")
720
+ responses.append(
721
+ {"error": f"Unexpected error during Google search: {e!s}"}
722
+ )
639
723
  return responses
640
724
 
641
725
  def tavily_search(
@@ -1233,6 +1317,73 @@ class SearchToolkit(BaseToolkit):
1233
1317
  f"search: {e!s}"
1234
1318
  }
1235
1319
 
1320
+ @api_keys_required([(None, 'METASO_API_KEY')])
1321
+ def search_metaso(
1322
+ self,
1323
+ query: str,
1324
+ page: int = 1,
1325
+ include_summary: bool = False,
1326
+ include_raw_content: bool = False,
1327
+ concise_snippet: bool = False,
1328
+ scope: Literal[
1329
+ "webpage", "document", "scholar", "image", "video", "podcast"
1330
+ ] = "webpage",
1331
+ ) -> Dict[str, Any]:
1332
+ r"""Perform a web search using the metaso.cn API.
1333
+
1334
+ Args:
1335
+ query (str): The search query string.
1336
+ page (int): Page number. (default: :obj:`1`)
1337
+ include_summary (bool): Whether to include summary in the result.
1338
+ (default: :obj:`False`)
1339
+ include_raw_content (bool): Whether to include raw content in the
1340
+ result. (default: :obj:`False`)
1341
+ concise_snippet (bool): Whether to return concise snippet.
1342
+ (default: :obj:`False`)
1343
+ scope (Literal["webpage", "document", "scholar", "image", "video",
1344
+ "podcast"]): Search scope. (default: :obj:`"webpage"`)
1345
+
1346
+ Returns:
1347
+ Dict[str, Any]: Search results or error information.
1348
+ """
1349
+ import http.client
1350
+ import json
1351
+
1352
+ # It is recommended to put the token in environment variable for
1353
+ # security
1354
+
1355
+ METASO_API_KEY = os.getenv("METASO_API_KEY")
1356
+
1357
+ conn = http.client.HTTPSConnection("metaso.cn")
1358
+ payload = json.dumps(
1359
+ {
1360
+ "q": query,
1361
+ "scope": scope,
1362
+ "includeSummary": include_summary,
1363
+ "page": str(page),
1364
+ "includeRawContent": include_raw_content,
1365
+ "conciseSnippet": concise_snippet,
1366
+ }
1367
+ )
1368
+ headers = {
1369
+ 'Authorization': f'Bearer {METASO_API_KEY}',
1370
+ 'Accept': 'application/json',
1371
+ 'Content-Type': 'application/json',
1372
+ }
1373
+ try:
1374
+ conn.request("POST", "/api/v1/search", payload, headers)
1375
+ res = conn.getresponse()
1376
+ data = res.read()
1377
+ result = data.decode("utf-8")
1378
+ try:
1379
+ return json.loads(result)
1380
+ except Exception:
1381
+ return {
1382
+ "error": f"Metaso returned content could not be parsed: {result}"
1383
+ }
1384
+ except Exception as e:
1385
+ return {"error": f"Metaso search failed: {e}"}
1386
+
1236
1387
  def get_tools(self) -> List[FunctionTool]:
1237
1388
  r"""Returns a list of FunctionTool objects representing the
1238
1389
  functions in the toolkit.
@@ -1253,4 +1404,5 @@ class SearchToolkit(BaseToolkit):
1253
1404
  FunctionTool(self.search_bing),
1254
1405
  FunctionTool(self.search_exa),
1255
1406
  FunctionTool(self.search_alibaba_tongxiao),
1407
+ FunctionTool(self.search_metaso),
1256
1408
  ]
camel/types/enums.py CHANGED
@@ -59,6 +59,7 @@ class ModelType(UnifiedModelType, Enum):
59
59
  AWS_LLAMA_3_2_11B_INSTRUCT = "us.meta.llama3-2-11b-instruct-v1:0"
60
60
  AWS_CLAUDE_SONNET_4 = "anthropic.claude-sonnet-4-20250514-v1:0"
61
61
  AWS_CLAUDE_OPUS_4 = "anthropic.claude-opus-4-20250514-v1:0"
62
+ AWS_CLAUDE_OPUS_4_1 = "anthropic.claude-opus-4-1-20250805-v1:0"
62
63
 
63
64
  GLM_4 = "glm-4"
64
65
  GLM_4V = "glm-4v"
@@ -91,6 +92,7 @@ class ModelType(UnifiedModelType, Enum):
91
92
  OPENROUTER_LLAMA_4_SCOUT = "meta-llama/llama-4-scout"
92
93
  OPENROUTER_LLAMA_4_SCOUT_FREE = "meta-llama/llama-4-scout:free"
93
94
  OPENROUTER_OLYMPICODER_7B = "open-r1/olympiccoder-7b:free"
95
+ OPENROUTER_HORIZON_ALPHA = "openrouter/horizon-alpha"
94
96
 
95
97
  # LMStudio models
96
98
  LMSTUDIO_GEMMA_3_1B = "gemma-3-1b"
@@ -157,6 +159,7 @@ class ModelType(UnifiedModelType, Enum):
157
159
  CLAUDE_3_7_SONNET = "claude-3-7-sonnet-latest"
158
160
  CLAUDE_SONNET_4 = "claude-sonnet-4-20250514"
159
161
  CLAUDE_OPUS_4 = "claude-opus-4-20250514"
162
+ CLAUDE_OPUS_4_1 = "claude-opus-4-1-20250805"
160
163
 
161
164
  # Netmind models
162
165
  NETMIND_LLAMA_4_MAVERICK_17B_128E_INSTRUCT = (
@@ -513,6 +516,7 @@ class ModelType(UnifiedModelType, Enum):
513
516
  ModelType.AWS_LLAMA_3_2_11B_INSTRUCT,
514
517
  ModelType.AWS_CLAUDE_SONNET_4,
515
518
  ModelType.AWS_CLAUDE_OPUS_4,
519
+ ModelType.AWS_CLAUDE_OPUS_4_1,
516
520
  }
517
521
 
518
522
  @property
@@ -577,6 +581,7 @@ class ModelType(UnifiedModelType, Enum):
577
581
  ModelType.CLAUDE_3_7_SONNET,
578
582
  ModelType.CLAUDE_SONNET_4,
579
583
  ModelType.CLAUDE_OPUS_4,
584
+ ModelType.CLAUDE_OPUS_4_1,
580
585
  }
581
586
 
582
587
  @property
@@ -603,6 +608,7 @@ class ModelType(UnifiedModelType, Enum):
603
608
  ModelType.OPENROUTER_LLAMA_4_SCOUT,
604
609
  ModelType.OPENROUTER_LLAMA_4_SCOUT_FREE,
605
610
  ModelType.OPENROUTER_OLYMPICODER_7B,
611
+ ModelType.OPENROUTER_HORIZON_ALPHA,
606
612
  }
607
613
 
608
614
  @property
@@ -1262,6 +1268,7 @@ class ModelType(UnifiedModelType, Enum):
1262
1268
  ModelType.CLAUDE_3_7_SONNET,
1263
1269
  ModelType.CLAUDE_SONNET_4,
1264
1270
  ModelType.CLAUDE_OPUS_4,
1271
+ ModelType.CLAUDE_OPUS_4_1,
1265
1272
  ModelType.YI_MEDIUM_200K,
1266
1273
  ModelType.AWS_CLAUDE_3_5_SONNET,
1267
1274
  ModelType.AWS_CLAUDE_3_HAIKU,
@@ -1269,6 +1276,7 @@ class ModelType(UnifiedModelType, Enum):
1269
1276
  ModelType.AWS_CLAUDE_3_7_SONNET,
1270
1277
  ModelType.AWS_CLAUDE_SONNET_4,
1271
1278
  ModelType.AWS_CLAUDE_OPUS_4,
1279
+ ModelType.AWS_CLAUDE_OPUS_4_1,
1272
1280
  ModelType.O4_MINI,
1273
1281
  ModelType.O3,
1274
1282
  }:
@@ -1276,6 +1284,7 @@ class ModelType(UnifiedModelType, Enum):
1276
1284
  elif self in {
1277
1285
  ModelType.MISTRAL_CODESTRAL_MAMBA,
1278
1286
  ModelType.OPENROUTER_LLAMA_4_MAVERICK_FREE,
1287
+ ModelType.OPENROUTER_HORIZON_ALPHA,
1279
1288
  }:
1280
1289
  return 256_000
1281
1290
 
camel/utils/mcp.py CHANGED
@@ -106,11 +106,11 @@ class MCPServer:
106
106
  """
107
107
  from mcp.server.fastmcp import FastMCP
108
108
 
109
- from camel.toolkits.base import BaseToolkit
110
-
111
109
  original_init = cls.__init__
112
110
 
113
111
  def new_init(instance, *args, **kwargs):
112
+ from camel.toolkits.base import BaseToolkit
113
+
114
114
  original_init(instance, *args, **kwargs)
115
115
  self.server_name = self.server_name or cls.__name__
116
116
  instance.mcp = FastMCP(self.server_name)
@@ -280,15 +280,26 @@ class OpenAITokenCounter(BaseTokenCounter):
280
280
 
281
281
  class AnthropicTokenCounter(BaseTokenCounter):
282
282
  @dependencies_required('anthropic')
283
- def __init__(self, model: str):
283
+ def __init__(
284
+ self,
285
+ model: str,
286
+ api_key: Optional[str] = None,
287
+ base_url: Optional[str] = None,
288
+ ):
284
289
  r"""Constructor for the token counter for Anthropic models.
285
290
 
286
291
  Args:
287
292
  model (str): The name of the Anthropic model being used.
293
+ api_key (Optional[str], optional): The API key for authenticating
294
+ with the Anthropic service. If not provided, it will use the
295
+ ANTHROPIC_API_KEY environment variable. (default: :obj:`None`)
296
+ base_url (Optional[str], optional): The URL of the Anthropic
297
+ service. If not provided, it will use the default Anthropic
298
+ URL. (default: :obj:`None`)
288
299
  """
289
300
  from anthropic import Anthropic
290
301
 
291
- self.client = Anthropic()
302
+ self.client = Anthropic(api_key=api_key, base_url=base_url)
292
303
  self.model = model
293
304
 
294
305
  @dependencies_required('anthropic')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: camel-ai
3
- Version: 0.2.74a5
3
+ Version: 0.2.75a0
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
@@ -32,7 +32,7 @@ Requires-Dist: azure-storage-blob<13,>=12.21.0; extra == 'all'
32
32
  Requires-Dist: beautifulsoup4<5,>=4; extra == 'all'
33
33
  Requires-Dist: botocore<2,>=1.35.3; extra == 'all'
34
34
  Requires-Dist: chromadb<1.0.0,>=0.6.0; extra == 'all'
35
- Requires-Dist: chunkr-ai>=0.0.50; extra == 'all'
35
+ Requires-Dist: chunkr-ai<0.1.0,>=0.0.50; extra == 'all'
36
36
  Requires-Dist: cohere<6,>=5.11.0; extra == 'all'
37
37
  Requires-Dist: crawl4ai>=0.4.0; extra == 'all'
38
38
  Requires-Dist: dappier<0.4,>=0.3.3; extra == 'all'
@@ -206,7 +206,7 @@ Requires-Dist: sphinx<8,>=7; extra == 'docs'
206
206
  Requires-Dist: sphinxext-rediraffe<0.3,>=0.2.7; extra == 'docs'
207
207
  Provides-Extra: document-tools
208
208
  Requires-Dist: beautifulsoup4<5,>=4; extra == 'document-tools'
209
- Requires-Dist: chunkr-ai>=0.0.50; extra == 'document-tools'
209
+ Requires-Dist: chunkr-ai<0.1.0,>=0.0.50; extra == 'document-tools'
210
210
  Requires-Dist: crawl4ai>=0.3.745; extra == 'document-tools'
211
211
  Requires-Dist: docx2txt<0.9,>=0.8; extra == 'document-tools'
212
212
  Requires-Dist: docx>=0.2.4; extra == 'document-tools'
@@ -227,8 +227,8 @@ Requires-Dist: xls2xlsx>=0.2.0; extra == 'document-tools'
227
227
  Provides-Extra: eigent
228
228
  Requires-Dist: aci-sdk>=1.0.0b1; extra == 'eigent'
229
229
  Requires-Dist: anthropic<0.50.0,>=0.47.0; extra == 'eigent'
230
+ Requires-Dist: chunkr-ai<0.1.0,>=0.0.50; extra == 'eigent'
230
231
  Requires-Dist: chunkr-ai>=0.0.41; extra == 'eigent'
231
- Requires-Dist: chunkr-ai>=0.0.50; extra == 'eigent'
232
232
  Requires-Dist: crawl4ai>=0.3.745; extra == 'eigent'
233
233
  Requires-Dist: datasets<4,>=3; extra == 'eigent'
234
234
  Requires-Dist: docx>=0.2.4; extra == 'eigent'
@@ -286,8 +286,8 @@ Provides-Extra: owl
286
286
  Requires-Dist: aci-sdk>=1.0.0b1; extra == 'owl'
287
287
  Requires-Dist: anthropic<0.50.0,>=0.47.0; extra == 'owl'
288
288
  Requires-Dist: beautifulsoup4<5,>=4; extra == 'owl'
289
+ Requires-Dist: chunkr-ai<0.1.0,>=0.0.50; extra == 'owl'
289
290
  Requires-Dist: chunkr-ai>=0.0.41; extra == 'owl'
290
- Requires-Dist: chunkr-ai>=0.0.50; extra == 'owl'
291
291
  Requires-Dist: crawl4ai>=0.3.745; extra == 'owl'
292
292
  Requires-Dist: datasets<4,>=3; extra == 'owl'
293
293
  Requires-Dist: docx2txt<0.9,>=0.8; extra == 'owl'
@@ -335,7 +335,7 @@ Requires-Dist: xls2xlsx>=0.2.0; extra == 'owl'
335
335
  Requires-Dist: yt-dlp<2025,>=2024.11.4; extra == 'owl'
336
336
  Provides-Extra: rag
337
337
  Requires-Dist: chromadb<1.0.0,>=0.6.0; extra == 'rag'
338
- Requires-Dist: chunkr-ai>=0.0.50; extra == 'rag'
338
+ Requires-Dist: chunkr-ai<0.1.0,>=0.0.50; extra == 'rag'
339
339
  Requires-Dist: cohere<6,>=5.11.0; extra == 'rag'
340
340
  Requires-Dist: crawl4ai>=0.3.745; extra == 'rag'
341
341
  Requires-Dist: faiss-cpu<2,>=1.7.2; extra == 'rag'
@@ -1,4 +1,4 @@
1
- camel/__init__.py,sha256=2aR45K2ZUBgUESjOowZG7UOImQt7DCtRKqyEU2xYaEI,901
1
+ camel/__init__.py,sha256=ZL8kyz2leHtcCUSj1kezLiqKMrsRPPabrpaGy_1tv14,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
@@ -133,7 +133,7 @@ camel/extractors/python_strategies.py,sha256=zHAkshnO9o-uvLtCuVOCKoA2PzetBTnkNx1
133
133
  camel/interpreters/__init__.py,sha256=NOQUsg7gR84zO8nBXu4JGUatsxSDJqZS6otltjXfop4,1265
134
134
  camel/interpreters/base.py,sha256=J3DVt_dGzq1v09-gn8j2XRgEM2WoPrhKFyH9koAjkCU,2281
135
135
  camel/interpreters/docker_interpreter.py,sha256=h5BLl6Hs6GIH1teAFfax2OBOMvs7lpBY1zzXP9S0JM8,11372
136
- camel/interpreters/e2b_interpreter.py,sha256=lNtIsVJWdSdqLoILZS8f5_7WlHI3n457RzLjmeOqH-A,5319
136
+ camel/interpreters/e2b_interpreter.py,sha256=9RxWgHBPYP1m5A6nZLXaKTLyBITw1ozjVceL3_q8X4s,6519
137
137
  camel/interpreters/internal_python_interpreter.py,sha256=HjCIfB-HYv2cJz6nUg_8w53zHFB7DwSycqr7H22O_RI,24806
138
138
  camel/interpreters/interpreter_error.py,sha256=uEhcmHmmcajt5C9PLeHs21h1fE6cmyt23tCAGie1kTA,880
139
139
  camel/interpreters/ipython_interpreter.py,sha256=V-Z_nIwaKmmivv_gD6nwdzmqfBUW4IoN4vZ0IOaUTZU,6582
@@ -174,49 +174,49 @@ camel/messages/conversion/sharegpt/hermes/__init__.py,sha256=mxuMSm-neaTgInIjYXu
174
174
  camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py,sha256=-9TT8iOQ-ieKSKR_PmJSA5Bi0uBx-qR7WQ6vxuFkorM,4639
175
175
  camel/models/__init__.py,sha256=leNjmPCEeO8jZAvY8op1XeFPMuSnF349buZRGCE3aBU,3385
176
176
  camel/models/_utils.py,sha256=hob1ehnS5xZitMCdYToHVgaTB55JnaP4_DSWnTEfVsg,2045
177
- camel/models/aiml_model.py,sha256=tQeJcS0RlRwMK-sapFVUSIr-r5cJyCt0UNphzD8O2oI,4070
178
- camel/models/anthropic_model.py,sha256=cJaKsqFdFrKda0E4J-3OZpRdm6TF3Mi60nKFVjdhKog,8983
179
- camel/models/aws_bedrock_model.py,sha256=bcQBiHVdVuJXyPEkSdymQlGx2zHIVj5d4ouFuF8CSY0,4670
180
- camel/models/azure_openai_model.py,sha256=-hnzGlV8NJAzR9wVfhe-YDazbGU43ECtw6_uFICKnPU,18393
177
+ camel/models/aiml_model.py,sha256=jmkQlqA7NkDXn2xN-98wtanI2KHbcMWQwNPjc38wyLI,3507
178
+ camel/models/anthropic_model.py,sha256=GlerIhIc7uGhzIsQoZw-_8CGOdcZT8DC_95V3hx3q-4,8350
179
+ camel/models/aws_bedrock_model.py,sha256=0JdsLxfi-coI8LtSPNewsaeR43CwC0qG2Gm_iY-ZCdo,4073
180
+ camel/models/azure_openai_model.py,sha256=MSjb5E3b6BHQg896P-Mj00Q0xPq0ibi0tO2T87Fj25s,17802
181
181
  camel/models/base_audio_model.py,sha256=_VUWh1L3rh8mldNvM5R6jBOKtvmTeBKJyRxAdPJmPlY,3324
182
- camel/models/base_model.py,sha256=NouoYjMPo2K6KmKCIeU7smyEFnDkqnLL71Dh9SyJoa4,19486
183
- camel/models/cohere_model.py,sha256=6KvYnYxoBZ8kLMmRp5wcJisY65KhCTl6kiG1W3xOkJQ,17292
184
- camel/models/crynux_model.py,sha256=leEiFz1RcRtVJLJvYt_Ydyg5jkSk3VEJphgmHFz67bw,4118
185
- camel/models/deepseek_model.py,sha256=MXOdmpFQFbxpgh5DiTETzx3qDFUkKiFjnEjTMDeWk2k,11015
182
+ camel/models/base_model.py,sha256=82MVxlWQXEN_gmVTgbAr0vP02opn0bn8pDK6K-3OtQE,19128
183
+ camel/models/cohere_model.py,sha256=9H2F8bjwxPgwSwgPPRoOy090dQKBboQxnlk-94FoDIk,16719
184
+ camel/models/crynux_model.py,sha256=rslcj7FbbeKZzYS2n23fEe5Ua77FY1gXmUAy6TBY2Yw,3545
185
+ camel/models/deepseek_model.py,sha256=qk5RrzYddKn3usddsB9NsRG5UfNR-dh2Ymwqw-NsYNs,10432
186
186
  camel/models/fish_audio_model.py,sha256=RCwORRIdCbjZXWWjjctpksPI2DnS0b68JjxunHBQ1xk,5981
187
- camel/models/gemini_model.py,sha256=tXElVatzgk66NirfzXxaYiene-3Iv26VKrvF2DAv_1Y,14231
188
- camel/models/groq_model.py,sha256=TK3zlvCy1-nYqLJrVSfIcJGKm5hKVp_k91cFcI420N0,4091
189
- camel/models/internlm_model.py,sha256=sbLEttl3PTaNlSU-5N047TQLe2-DQHDyFD86I26KbPQ,4691
190
- camel/models/litellm_model.py,sha256=IEYVfzk1u32oTkwSHPTvoSojLG1aai3Caw8ri5lzF8Y,8485
191
- camel/models/lmstudio_model.py,sha256=atxga0rKGspbejZWtOEjO-_YXFjE3hvaYS5sH5h4oA8,4019
192
- camel/models/mistral_model.py,sha256=ipOVPk2boGqyGAypgKeQ9syaP0znKFQQSOqeVtockjk,16008
187
+ camel/models/gemini_model.py,sha256=K8Ldi5g_6tXHJs2A0so-6-4OQESwtnwDj59SC3KTAo0,13658
188
+ camel/models/groq_model.py,sha256=veNsJ0U3EZicoTgSfoxK_jFqvibn-p0mMSFma8_2TO8,3458
189
+ camel/models/internlm_model.py,sha256=_P0ehH7TkMRgXzq8XhTD1Xppb09ycX1aZjop6psnLtw,4108
190
+ camel/models/litellm_model.py,sha256=NL2sGsBmSwh3e5cbx11ovv9Bw-OY7tBA3DvYy1BcpAY,7922
191
+ camel/models/lmstudio_model.py,sha256=MEc3pRYhpv2UmhnXJ1wjFHxjZFzFFAZ0jOECZ46EM4I,3362
192
+ camel/models/mistral_model.py,sha256=m8ssQ04bWSevkexXNj4MJ_IcJb1HCxaEFx-oCt3dSNs,15430
193
193
  camel/models/model_factory.py,sha256=8b-LEXovPnpmD3GFKOdbtcgjCwpa91IPCJxikPxhdMs,12114
194
194
  camel/models/model_manager.py,sha256=ln3bCV_QWM3V5BrwKwjmxIeRN8ojIvPEBMMHun0MliU,9942
195
- camel/models/modelscope_model.py,sha256=meO7KCAwZtHpUVgwtuKe0j4jYh0IWsxa8e3mwyhGLvg,10804
196
- camel/models/moonshot_model.py,sha256=sghzSd9Ya7AysHYW5gqVSUTThusvwFWFeLRj-6okkLk,7662
197
- camel/models/nemotron_model.py,sha256=PzRuQoAEmBRZ2wcotQ8-MRz5wYachKa_CUNenMQg-3U,3091
198
- camel/models/netmind_model.py,sha256=YKHfntqsKqBxfh6qryn4L7CzHOIAYtyPXwJNK6NxNi4,4276
199
- camel/models/novita_model.py,sha256=V-g0Wrf1Zh1il6oPKh1LVy_U0nveOwJq9YBVzGp4GOI,4238
200
- camel/models/nvidia_model.py,sha256=WBn9PUz3FxqrSf8cfO3O6pyWL_0_9RYD8_t5qiEjGRQ,4083
201
- camel/models/ollama_model.py,sha256=srHz0-gC4w6S19l3AfVIEXbTlRCSJwRijXxXMoHkm8Y,4733
195
+ camel/models/modelscope_model.py,sha256=OgZiFi2XBrElRZ8fqBZiqyXDeS5msTWejn1vuTARKYg,10211
196
+ camel/models/moonshot_model.py,sha256=S83DyBOmIuuTAkmJSdFFLHZldKygMryA_xmx8CvqRIg,7079
197
+ camel/models/nemotron_model.py,sha256=onAFWR7pbAFbqhx68LelUPIyQb9r6yMvXWJYWwq3qkA,2952
198
+ camel/models/netmind_model.py,sha256=wfI3XUxiIa3aZbBN1WJDkZBbixfa2SUX1ouvGlMLKKA,3698
199
+ camel/models/novita_model.py,sha256=9rmiAShSQOIxTzdhxZaI7Xw1ZQkYeQ-yiL1VmIWqsWc,3665
200
+ camel/models/nvidia_model.py,sha256=C26XCUQRe2O7ySGIqTihySovDHRk19WN0GOsSHupYQE,3510
201
+ camel/models/ollama_model.py,sha256=UO6NObVwGfl6GulZ0K-hRUI2o13nqUHz7dIEQ6RhUUQ,4160
202
202
  camel/models/openai_audio_models.py,sha256=BSixkXlc8xirQLl2qCla-g6_y9wDLnMZVHukHrhzw98,13344
203
- camel/models/openai_compatible_model.py,sha256=CVKKMx34xyQh1t3Nx3RpUcS9dzIWAHKMGwKCS-mXK2c,16913
204
- camel/models/openai_model.py,sha256=5wBYBEAKEHMnP4Aej36nV1wA61K8SYLfMuMqR2Gr15U,20355
205
- camel/models/openrouter_model.py,sha256=mzWn_mSlp_2Ssnzyv_rs2ybGXkNOxqUzTkyyQFGkokw,4183
206
- camel/models/ppio_model.py,sha256=LoEyRNdcHI0z80AHJ2R1JO6JWtrIB0TnCcYa-71SOMw,4208
207
- camel/models/qianfan_model.py,sha256=7q8GkLBhPVzq5LxBxxQhbJrt7YZh7WwHxe8pILVZuqI,4292
208
- camel/models/qwen_model.py,sha256=ze6bpDsIJGTxNfHDQJvLWR1Nhbv3yWFHkdO-rWPyP9o,10602
209
- camel/models/reka_model.py,sha256=jrEsRignjZ3z7auHplBml-VylXL_PGdrlprsSpTi5hw,13068
210
- camel/models/samba_model.py,sha256=iKLfbeh5yKsH6K1QMYhxaOMD51J7qrUs2-ysRnSHUUI,25621
211
- camel/models/sglang_model.py,sha256=NjQGFauIjdZEQ5degntNA5FKU6aFxwlFlT1iJYMtcJw,17405
212
- camel/models/siliconflow_model.py,sha256=j8wSgYO3YKe5HUB1iXw_U_dVCStsttPUVggxU6ZUhVQ,4749
213
- camel/models/stub_model.py,sha256=akYru77Vp1yfG2OSNInA4sD2DX3QmVAMfh9SUHPECXM,6071
214
- camel/models/togetherai_model.py,sha256=A0i5nk2azCJ89OdA9YmpdtdFXN3ctrbLEsNt6XillAM,4254
215
- camel/models/vllm_model.py,sha256=hdXiJcNcC6U_-XdvDplY9IqT3tEA4-ZHdXXw-c7NsNk,4798
216
- camel/models/volcano_model.py,sha256=d7BlX5lOBt6knRz_ffgOx9bQPzaeH40b32gjdmqGEtk,4040
217
- camel/models/watsonx_model.py,sha256=5wLIvNMgMpEcCchivzWATguiefaMiuHvobM25l5rSxw,11454
218
- camel/models/yi_model.py,sha256=2k80ETLLhcT0ad4kepGzeUjPl0253Di5lr0c52Yvsbs,4059
219
- camel/models/zhipuai_model.py,sha256=-UFsk8oZlUo6asZMeZcAdIZR6GFLJzP0jUjXCVmqMXY,4150
203
+ camel/models/openai_compatible_model.py,sha256=6racVSQlKeB4-0sHdDdkc_XEhPLBoij0kgdQcxEmQq4,16865
204
+ camel/models/openai_model.py,sha256=DRWw8rqZmTeRJFvQh1PGfxNWHF1Qt9AM3Qz92mjbPNU,19782
205
+ camel/models/openrouter_model.py,sha256=V1DKBPoYJ6oCDDBqNK0RrK2JWq4oOWlbo3qu0lT4CbA,3514
206
+ camel/models/ppio_model.py,sha256=G559Seb4KLU4FlYgSQ2UD_A6xOacX0eL6DrE_Hhmpv0,3645
207
+ camel/models/qianfan_model.py,sha256=NI899k8p_N-70zmQFTwf08S_--8_-69iJgjvjXH1UYA,3714
208
+ camel/models/qwen_model.py,sha256=oEXGUpG7-M2DK_EB1yEhsscg_UJT9KrnOI90EYx60dQ,10039
209
+ camel/models/reka_model.py,sha256=k5H8d9kTOVRMPVVX23UywjSSPORaK1C2fS026vihQWU,12505
210
+ camel/models/samba_model.py,sha256=3UmvK960AZL6OtScIgiqWhSOMoPvCeFX5DtPuale888,24401
211
+ camel/models/sglang_model.py,sha256=0u1YT9u6LvqQ6LVoBvn2luCdZMsdKDMvxyL4-we0uXE,16832
212
+ camel/models/siliconflow_model.py,sha256=9dXXFF9ymx5kI1fOTLodJpJaA98YK_KDGHT5RHaO1DQ,4151
213
+ camel/models/stub_model.py,sha256=Gfyw5BI_g-vIOb4XgBSAMXR2ZDpf7skzz9D1h0LOviM,5956
214
+ camel/models/togetherai_model.py,sha256=gKAQV-PjDEved9lqxdmbe3WkWqyNsivUMT_HSZbJZsw,3661
215
+ camel/models/vllm_model.py,sha256=PwotGvmYo0zNsY5WVfd1R8IgCt2oQHO7ccmnlqVyDCs,4233
216
+ camel/models/volcano_model.py,sha256=joWFRGbsEpHFzRYRF7nv91mVADe-Y77NozEhfCnevSo,3375
217
+ camel/models/watsonx_model.py,sha256=24sN5vrniwNI2mPjcByyF4tArFiwqo1FnyRQ1L5yPbE,10876
218
+ camel/models/yi_model.py,sha256=exlJCQkUu2_Gx7qDwo3yBf6RrL6h8yMFRFMq6AXLwew,3506
219
+ camel/models/zhipuai_model.py,sha256=k8Xu4Y7JvGhBUApbf3BxMnIQ0K-xLyM4DvYWrHpjoQY,3573
220
220
  camel/models/reward/__init__.py,sha256=MqPN6wXh7Y1SoeNoFlYaMG6xHzLG0CYsv_3kB2atIQk,984
221
221
  camel/models/reward/base_reward_model.py,sha256=erCmBCl51oFNjEHCXWxdHKIPNVJnQlNGgYBDn2bFD-Q,2064
222
222
  camel/models/reward/evaluator.py,sha256=54ev5MuQ_5Tp0-LGO59EIuIkGrVMbtXXqpBR5Ps9kCM,2426
@@ -371,7 +371,7 @@ camel/toolkits/pyautogui_toolkit.py,sha256=Q810fm8cFvElRory7B74aqS2YV6BOpdRE6jke
371
371
  camel/toolkits/reddit_toolkit.py,sha256=x0XAT1zQJVNHUr1R1HwWCgIlkamU-kPmbfb_H1WIv-w,8036
372
372
  camel/toolkits/retrieval_toolkit.py,sha256=BKjEyOqW3cGEPTS5yHPYb-Qg795iNNPIs1wjowfuq3U,3825
373
373
  camel/toolkits/screenshot_toolkit.py,sha256=IwfvfLSfqrEywvPlDbtYJe1qcbrO5uC3Mxxv87VYveo,8237
374
- camel/toolkits/search_toolkit.py,sha256=XarRj0YbGFP7s3ZacvYC16Ch84by-_3EKWtVXiSgJPA,51130
374
+ camel/toolkits/search_toolkit.py,sha256=nco3_EQhYz4S_RupWTgcH5r5-nH-K0f6WAwUZ4DteXc,57654
375
375
  camel/toolkits/searxng_toolkit.py,sha256=a2GtE4FGSrmaIVvX6Yide-abBYD1wsHqitnDlx9fdVg,7664
376
376
  camel/toolkits/semantic_scholar_toolkit.py,sha256=Rh7eA_YPxV5pvPIzhjjvpr3vtlaCniJicrqzkPWW9_I,11634
377
377
  camel/toolkits/slack_toolkit.py,sha256=iBVkDIpfsR5QwaNCqA4O4UkCwpdLhJjYCA8Gka7U9e8,12050
@@ -389,29 +389,29 @@ camel/toolkits/whatsapp_toolkit.py,sha256=udUQXkXyeWsmrUlOJZsGBhHtc_jhB05Axe_Tch
389
389
  camel/toolkits/wolfram_alpha_toolkit.py,sha256=qeIM8ySn5ilcExBWtx-hDOc35bNcebLVnZ67kt1H3mQ,9295
390
390
  camel/toolkits/zapier_toolkit.py,sha256=A83y1UcfuopH7Fx82pORzypl1StbhBjB2HhyOqYa300,7124
391
391
  camel/toolkits/hybrid_browser_toolkit/__init__.py,sha256=vxjWhq7GjUKE5I9RGQU_GoikZJ-AVK4ertdvEqp9pd0,802
392
- camel/toolkits/hybrid_browser_toolkit/config_loader.py,sha256=UwBh7wG4-owoI2VfiNMum0O7dPWMYiEDxQKtq_GazU4,6903
392
+ camel/toolkits/hybrid_browser_toolkit/config_loader.py,sha256=yUmbmt-TWLbCyxGa63lVJ47KRdZsEJI6-2y3x0SfdBM,7040
393
393
  camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py,sha256=gotOOlXJjfjv9Qnn89PLNhJ4_Rw_aMMU6gTJcG-uCf8,7938
394
- camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py,sha256=8ArSGFCx1bIrZR8cdRVUX6axy5Fxgk5ADEgiSrPQ_Bo,45269
395
- camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py,sha256=gyJsqHDvvpXa86zxqn8nsitS0QYqwmIHGgvPmcxVsYc,20445
394
+ camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py,sha256=OXvXTRJMqS4tQqrOeNbK4EVv3meO8I8bfz_3azSJFZA,53547
395
+ camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py,sha256=UJFxHuGBJR3C9UmtWoC_F2bm_Uwnf9EurhkSseAqrBI,21888
396
396
  camel/toolkits/hybrid_browser_toolkit/ts/package-lock.json,sha256=_-YE9S_C1XT59A6upQp9lLuZcC67cV9QlbwAsEKkfyw,156337
397
397
  camel/toolkits/hybrid_browser_toolkit/ts/package.json,sha256=pUQm0xwXR7ZyWNv6O2QtHW00agnfAoX9F_XGXZlAxl4,745
398
398
  camel/toolkits/hybrid_browser_toolkit/ts/tsconfig.json,sha256=SwpQnq4Q-rwRobF2iWrP96mgmgwaVPZEv-nii5QIYEU,523
399
- camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js,sha256=WsH16sf1zP1TPTKdVgbZAx42eHtgeQGqcTef2FPdR6Y,8556
399
+ camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js,sha256=qj8Rr7bl17yciJ0ndB-rVsm25LxVUk3Mk_Kft_Z2p2o,9387
400
400
  camel/toolkits/hybrid_browser_toolkit/ts/src/browser-scripts.js,sha256=NNwM_H2xaDrlrdac0PJK1iUBwdiuQsg9qKaMhHAvZuI,3160
401
- camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts,sha256=csJ6yelay5r0QULBzWybakO3IB7dQ5QpbrSdCxLlrwE,33165
402
- camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts,sha256=jYsu9qFuwpFIS5y8rQ5R6aX_HDlDEh2YsvFH6CQLhmg,6181
403
- camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts,sha256=VLhaKGQ2rz9OMRTluQ4h9kC0MMJz6-y29WxR-DQEu-c,16551
401
+ camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts,sha256=e-epyloFdIOHWKXL-mTeeHxmRssMHs2E7mP9qRzFAgM,38704
402
+ camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts,sha256=xt5dyj-6LK7T8IRSQ4sb4RBvD-xYPG68vWKqCET1QU4,6235
403
+ camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts,sha256=RFfmwYWmHd9VJkXQPaONiqbqKp652c17T0YKo4RFYBY,19708
404
404
  camel/toolkits/hybrid_browser_toolkit/ts/src/index.ts,sha256=uJGHmGs640iCrjllqXDXwDE4hGW1VJA2YL6BkFkzYNs,353
405
- camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts,sha256=Soid_nh1Ft829pKe_Xt1wxGf3pMSY2vDx4MJHGlhzaA,2442
405
+ camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts,sha256=ZT_5P9tun4ZCasIlDSS2tBTtpiI2DfcD4kOIpmXjrDw,2801
406
406
  camel/toolkits/hybrid_browser_toolkit_py/__init__.py,sha256=tPQloCw-Ayl1lPfyvzGJkMFa1ze3ilXJq_1Oz5jg5s4,796
407
- camel/toolkits/hybrid_browser_toolkit_py/actions.py,sha256=x6X-kEdQx3K1ID-BBwdQEciX6C0KMt5QUszpnksnj3A,15003
407
+ camel/toolkits/hybrid_browser_toolkit_py/actions.py,sha256=S77VLL9hOq5M2RdPQrIAgjxinwS2ETd6kH6m6vtub5o,20935
408
408
  camel/toolkits/hybrid_browser_toolkit_py/agent.py,sha256=0ifwhYUDJ5GLxfdpC5KquPaW1a0QBAutp2Y9y0YFujw,11685
409
- camel/toolkits/hybrid_browser_toolkit_py/browser_session.py,sha256=fgV1o4pWOQ_fUvmpk7UHYcJCqHY_cmivoY_OB0ZKv3s,26866
410
- camel/toolkits/hybrid_browser_toolkit_py/config_loader.py,sha256=0zpDq3aFKEva2jc38kgLHnyxypIDk9SOcMjoP26tozo,15414
411
- camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py,sha256=z-v49Su2XTWCERJuv2AR3GeJHpv5Iad2fa3tenz40eQ,80190
412
- camel/toolkits/hybrid_browser_toolkit_py/snapshot.py,sha256=3vQaFK5C1P8WnkK2eDMaFOizrZf4uUAW0LxdeoF4F2w,8539
409
+ camel/toolkits/hybrid_browser_toolkit_py/browser_session.py,sha256=BZrbUrGcbLbI2TjaS5WSCn2SIMFW1k0bK_53A4cZYI4,28687
410
+ camel/toolkits/hybrid_browser_toolkit_py/config_loader.py,sha256=wFiEJhCBlDTQvl6FxXONX8kvJz5EzzGht2gQEk0RY6g,16723
411
+ camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py,sha256=3JW-cocFn2QZR_SRHjUxwU7Jr1CIo9nhDMrx178HAnE,91755
412
+ camel/toolkits/hybrid_browser_toolkit_py/snapshot.py,sha256=zVd8FVeF_H-2z3d2xOMandylT6N421yfRmxUZegLYaQ,8706
413
413
  camel/toolkits/hybrid_browser_toolkit_py/stealth_script.js,sha256=z4XRSVUpAS87Sj36s3bY8XXhvRcHBlgsUOyMxV2HI80,27650
414
- camel/toolkits/hybrid_browser_toolkit_py/unified_analyzer.js,sha256=VnzIn0KcEtxuncJi-OPZzdWbLSeSHCH-7sviFAGNM8g,40823
414
+ camel/toolkits/hybrid_browser_toolkit_py/unified_analyzer.js,sha256=1FFw0J1h65_WZ3IqMhiuzcLG-qJ2BKlAMcBQdJi6fxI,42285
415
415
  camel/toolkits/open_api_specs/security_config.py,sha256=ZVnBa_zEifaE_ao2xsvV5majuJHpn2Tn7feMDOnj-eo,898
416
416
  camel/toolkits/open_api_specs/biztoc/__init__.py,sha256=OKCZrQCDwaWtXIN_2rA9FSqEvgpQRieRoHh7Ek6N16A,702
417
417
  camel/toolkits/open_api_specs/biztoc/ai-plugin.json,sha256=IJinQbLv5MFPGFwdN7PbOhwArFVExSEZdJspe-mOBIo,866
@@ -438,7 +438,7 @@ camel/toolkits/open_api_specs/web_scraper/openapi.yaml,sha256=u_WalQ01e8W1D27VnZ
438
438
  camel/toolkits/open_api_specs/web_scraper/paths/__init__.py,sha256=OKCZrQCDwaWtXIN_2rA9FSqEvgpQRieRoHh7Ek6N16A,702
439
439
  camel/toolkits/open_api_specs/web_scraper/paths/scraper.py,sha256=aWy1_ppV4NVVEZfnbN3tu9XA9yAPAC9bRStJ5JuXMRU,1117
440
440
  camel/types/__init__.py,sha256=pFTg3CWGSCfwFdoxPDTf4dKV8DdJS1x-bBPuEOmtdf0,2549
441
- camel/types/enums.py,sha256=JolxBxgOfAGXAD-Z6DzMLiQ51I8H-6GrAO__1dEB_MQ,63239
441
+ camel/types/enums.py,sha256=5iIyQ2ZBGovKkRUahwJK8oG4FuOyyZGlmFYyS5s6HvY,63674
442
442
  camel/types/mcp_registries.py,sha256=dl4LgYtSaUhsqAKpz28k_SA9La11qxqBvDLaEuyzrFE,4971
443
443
  camel/types/openai_types.py,sha256=8ZFzLe-zGmKNPfuVZFzxlxAX98lGf18gtrPhOgMmzus,2104
444
444
  camel/types/unified_model_type.py,sha256=U3NUZux7QuMIxPW2H0qDp9BOyDJFHAx6jUmDNw5_9KM,5912
@@ -451,11 +451,11 @@ camel/utils/constants.py,sha256=cqnxmpUeOwrtsR-tRO4bbOc6ZP19TLj7avjm3FONMJs,1410
451
451
  camel/utils/deduplication.py,sha256=UHikAtOW1TTDunf2t_wa2kFbmkrXWf7HfOKwLvwCxzo,8958
452
452
  camel/utils/filename.py,sha256=HYNc1wbSCgNR1CN21cwHxdAhpnsf5ySJ6jUDfeqOK20,2532
453
453
  camel/utils/langfuse.py,sha256=OowR6A790XG-b0UHiTYduYvS18PvSGFdmqki2Poogo0,8578
454
- camel/utils/mcp.py,sha256=iuthL8VuUXIRU34Nvx8guq7frfglpZoxewUKuAg3e1s,5077
454
+ camel/utils/mcp.py,sha256=igLAww4tB2Oippb5nlfhWoj6TI6Td5boKfpoxkxZlQI,5081
455
455
  camel/utils/mcp_client.py,sha256=o-EPdJ5EL5M9sjkSADvLBz9IoHhtXteKGidauIxw3ps,37584
456
456
  camel/utils/message_summarizer.py,sha256=7AvPDlevle5uU3mXtfvSFS--nDjp9yqfrf546qTe9rE,5939
457
457
  camel/utils/response_format.py,sha256=xZcx6xBxeg3A0e7R0JCMJdNm2oQ1-diqVLs0JsiCkZU,5319
458
- camel/utils/token_counting.py,sha256=apkERzNoVc4sgvJvWVosvepX3KH8pVypVjrL4AA7RB4,17521
458
+ camel/utils/token_counting.py,sha256=l7gNU5Ggksusj0ZVH5u1Xr4Mx5YVrdwnSqSKXDVxit0,18084
459
459
  camel/utils/tool_result.py,sha256=0dKMb22cwuxnjeO4K9wbM4gwwPHV1yfoSJquLTUJVXs,1813
460
460
  camel/utils/chunker/__init__.py,sha256=6iN6HL6sblIjDuJTILk-9qKcHBZ97t8b6tZCWPZ0OYI,899
461
461
  camel/utils/chunker/base.py,sha256=9CuqymFCRncyAdEST-IcRonB732YAPhusznqH-RES3E,960
@@ -467,7 +467,7 @@ camel/verifiers/math_verifier.py,sha256=tA1D4S0sm8nsWISevxSN0hvSVtIUpqmJhzqfbuMo
467
467
  camel/verifiers/models.py,sha256=GdxYPr7UxNrR1577yW4kyroRcLGfd-H1GXgv8potDWU,2471
468
468
  camel/verifiers/physics_verifier.py,sha256=c1grrRddcrVN7szkxhv2QirwY9viIRSITWeWFF5HmLs,30187
469
469
  camel/verifiers/python_verifier.py,sha256=ogTz77wODfEcDN4tMVtiSkRQyoiZbHPY2fKybn59lHw,20558
470
- camel_ai-0.2.74a5.dist-info/METADATA,sha256=X-Y3HO2CVCYOih9vVqMbzZefgdBgxgZwbmp02XbpMjk,52186
471
- camel_ai-0.2.74a5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
472
- camel_ai-0.2.74a5.dist-info/licenses/LICENSE,sha256=id0nB2my5kG0xXeimIu5zZrbHLS6EQvxvkKkzIHaT2k,11343
473
- camel_ai-0.2.74a5.dist-info/RECORD,,
470
+ camel_ai-0.2.75a0.dist-info/METADATA,sha256=D_Q2rnHl_K05FdNr9TPHLnN6pY3FrdyQmWx0jlcJOyU,52221
471
+ camel_ai-0.2.75a0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
472
+ camel_ai-0.2.75a0.dist-info/licenses/LICENSE,sha256=id0nB2my5kG0xXeimIu5zZrbHLS6EQvxvkKkzIHaT2k,11343
473
+ camel_ai-0.2.75a0.dist-info/RECORD,,