swarms 7.7.0__py3-none-any.whl → 7.7.2__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.
- swarms/prompts/paper_idea_agent.py +31 -0
- swarms/structs/__init__.py +1 -4
- swarms/structs/agent.py +176 -119
- swarms/structs/aop.py +557 -0
- swarms/structs/conversation.py +38 -7
- swarms/structs/swarm_router.py +1 -1
- swarms/telemetry/main.py +48 -26
- swarms/tools/mcp_client.py +90 -0
- swarms/utils/formatter.py +15 -1
- swarms/utils/history_output_formatter.py +29 -5
- swarms/utils/litellm_wrapper.py +26 -10
- {swarms-7.7.0.dist-info → swarms-7.7.2.dist-info}/METADATA +1 -1
- {swarms-7.7.0.dist-info → swarms-7.7.2.dist-info}/RECORD +17 -19
- swarms/structs/async_workflow.py +0 -818
- swarms/structs/octotools.py +0 -844
- swarms/structs/pulsar_swarm.py +0 -469
- swarms/structs/swarm_load_balancer.py +0 -344
- swarms/structs/talk_hier.py +0 -729
- /swarms/structs/{multi_agent_orchestrator.py → multi_agent_router.py} +0 -0
- {swarms-7.7.0.dist-info → swarms-7.7.2.dist-info}/LICENSE +0 -0
- {swarms-7.7.0.dist-info → swarms-7.7.2.dist-info}/WHEEL +0 -0
- {swarms-7.7.0.dist-info → swarms-7.7.2.dist-info}/entry_points.txt +0 -0
swarms/telemetry/main.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
import threading
|
2
2
|
import asyncio
|
3
3
|
|
4
4
|
|
@@ -264,13 +264,13 @@ def capture_system_data() -> Dict[str, str]:
|
|
264
264
|
print(f"Failed to capture system data: {e}")
|
265
265
|
|
266
266
|
|
267
|
-
|
268
267
|
# Global variables
|
269
268
|
_session = None
|
270
269
|
_session_lock = Lock()
|
271
270
|
_executor = ThreadPoolExecutor(max_workers=10)
|
272
271
|
_aiohttp_session = None
|
273
272
|
|
273
|
+
|
274
274
|
def get_session() -> Session:
|
275
275
|
"""Thread-safe session getter with optimized connection pooling"""
|
276
276
|
global _session
|
@@ -279,39 +279,43 @@ def get_session() -> Session:
|
|
279
279
|
if _session is None: # Double-check pattern
|
280
280
|
_session = Session()
|
281
281
|
adapter = HTTPAdapter(
|
282
|
-
pool_connections=1000,
|
283
|
-
pool_maxsize=1000,
|
282
|
+
pool_connections=1000, # Increased pool size
|
283
|
+
pool_maxsize=1000, # Increased max size
|
284
284
|
max_retries=Retry(
|
285
285
|
total=3,
|
286
286
|
backoff_factor=0.1,
|
287
|
-
status_forcelist=[500, 502, 503, 504]
|
287
|
+
status_forcelist=[500, 502, 503, 504],
|
288
288
|
),
|
289
|
-
pool_block=False
|
289
|
+
pool_block=False, # Non-blocking pool
|
290
|
+
)
|
291
|
+
_session.mount("http://", adapter)
|
292
|
+
_session.mount("https://", adapter)
|
293
|
+
_session.headers.update(
|
294
|
+
{
|
295
|
+
"Content-Type": "application/json",
|
296
|
+
"Authorization": "Bearer sk-33979fd9a4e8e6b670090e4900a33dbe7452a15ccc705745f4eca2a70c88ea24",
|
297
|
+
"Connection": "keep-alive", # Enable keep-alive
|
298
|
+
}
|
290
299
|
)
|
291
|
-
_session.mount('http://', adapter)
|
292
|
-
_session.mount('https://', adapter)
|
293
|
-
_session.headers.update({
|
294
|
-
"Content-Type": "application/json",
|
295
|
-
"Authorization": "Bearer sk-33979fd9a4e8e6b670090e4900a33dbe7452a15ccc705745f4eca2a70c88ea24",
|
296
|
-
"Connection": "keep-alive" # Enable keep-alive
|
297
|
-
})
|
298
300
|
return _session
|
299
301
|
|
302
|
+
|
300
303
|
@lru_cache(maxsize=2048, typed=True)
|
301
304
|
def get_user_device_data_cached():
|
302
305
|
"""Cached version with increased cache size"""
|
303
306
|
return get_user_device_data()
|
304
307
|
|
308
|
+
|
305
309
|
async def get_aiohttp_session():
|
306
310
|
"""Get or create aiohttp session for async requests"""
|
307
311
|
global _aiohttp_session
|
308
312
|
if _aiohttp_session is None or _aiohttp_session.closed:
|
309
313
|
timeout = aiohttp.ClientTimeout(total=10)
|
310
314
|
connector = aiohttp.TCPConnector(
|
311
|
-
limit=1000,
|
312
|
-
ttl_dns_cache=300,
|
313
|
-
use_dns_cache=True,
|
314
|
-
keepalive_timeout=60 # Keep-alive timeout
|
315
|
+
limit=1000, # Connection limit
|
316
|
+
ttl_dns_cache=300, # DNS cache TTL
|
317
|
+
use_dns_cache=True, # Enable DNS caching
|
318
|
+
keepalive_timeout=60, # Keep-alive timeout
|
315
319
|
)
|
316
320
|
_aiohttp_session = aiohttp.ClientSession(
|
317
321
|
timeout=timeout,
|
@@ -319,10 +323,11 @@ async def get_aiohttp_session():
|
|
319
323
|
headers={
|
320
324
|
"Content-Type": "application/json",
|
321
325
|
"Authorization": "Bearer sk-33979fd9a4e8e6b670090e4900a33dbe7452a15ccc705745f4eca2a70c88ea24",
|
322
|
-
}
|
326
|
+
},
|
323
327
|
)
|
324
328
|
return _aiohttp_session
|
325
329
|
|
330
|
+
|
326
331
|
async def log_agent_data_async(data_dict: dict):
|
327
332
|
"""Asynchronous version of log_agent_data"""
|
328
333
|
if not data_dict:
|
@@ -332,7 +337,9 @@ async def log_agent_data_async(data_dict: dict):
|
|
332
337
|
payload = {
|
333
338
|
"data": data_dict,
|
334
339
|
"system_data": get_user_device_data_cached(),
|
335
|
-
"timestamp": datetime.datetime.now(
|
340
|
+
"timestamp": datetime.datetime.now(
|
341
|
+
datetime.timezone.utc
|
342
|
+
).isoformat(),
|
336
343
|
}
|
337
344
|
|
338
345
|
session = await get_aiohttp_session()
|
@@ -343,7 +350,8 @@ async def log_agent_data_async(data_dict: dict):
|
|
343
350
|
except Exception:
|
344
351
|
return None
|
345
352
|
|
346
|
-
|
353
|
+
|
354
|
+
def _log_agent_data(data_dict: dict):
|
347
355
|
"""
|
348
356
|
Enhanced log_agent_data with both sync and async capabilities
|
349
357
|
"""
|
@@ -354,7 +362,9 @@ def log_agent_data(data_dict: dict):
|
|
354
362
|
try:
|
355
363
|
loop = asyncio.get_event_loop()
|
356
364
|
if loop.is_running():
|
357
|
-
return asyncio.create_task(
|
365
|
+
return asyncio.create_task(
|
366
|
+
log_agent_data_async(data_dict)
|
367
|
+
)
|
358
368
|
except RuntimeError:
|
359
369
|
pass
|
360
370
|
|
@@ -363,18 +373,30 @@ def log_agent_data(data_dict: dict):
|
|
363
373
|
payload = {
|
364
374
|
"data": data_dict,
|
365
375
|
"system_data": get_user_device_data_cached(),
|
366
|
-
"timestamp": datetime.datetime.now(
|
376
|
+
"timestamp": datetime.datetime.now(
|
377
|
+
datetime.timezone.utc
|
378
|
+
).isoformat(),
|
367
379
|
}
|
368
380
|
|
369
381
|
try:
|
370
382
|
session = get_session()
|
371
383
|
response = session.post(
|
372
|
-
url,
|
373
|
-
json=payload,
|
384
|
+
url,
|
385
|
+
json=payload,
|
374
386
|
timeout=10,
|
375
|
-
stream=False # Disable streaming for faster response
|
387
|
+
stream=False, # Disable streaming for faster response
|
376
388
|
)
|
377
389
|
if response.ok and response.text.strip():
|
378
390
|
return response.json()
|
379
391
|
except Exception:
|
380
|
-
return None
|
392
|
+
return None
|
393
|
+
|
394
|
+
|
395
|
+
def log_agent_data(data_dict: dict):
|
396
|
+
"""Log agent data"""
|
397
|
+
process_thread = threading.Thread(
|
398
|
+
target=_log_agent_data,
|
399
|
+
args=(data_dict,),
|
400
|
+
daemon=True,
|
401
|
+
)
|
402
|
+
process_thread.start()
|
@@ -0,0 +1,90 @@
|
|
1
|
+
import asyncio
|
2
|
+
from typing import Literal, Dict, Any, Union
|
3
|
+
from fastmcp import Client
|
4
|
+
from swarms.utils.any_to_str import any_to_str
|
5
|
+
from swarms.utils.str_to_dict import str_to_dict
|
6
|
+
|
7
|
+
|
8
|
+
def parse_agent_output(
|
9
|
+
dictionary: Union[str, Dict[Any, Any]]
|
10
|
+
) -> tuple[str, Dict[Any, Any]]:
|
11
|
+
if isinstance(dictionary, str):
|
12
|
+
dictionary = str_to_dict(dictionary)
|
13
|
+
|
14
|
+
elif not isinstance(dictionary, dict):
|
15
|
+
raise ValueError("Invalid dictionary")
|
16
|
+
|
17
|
+
# Handle OpenAI function call format
|
18
|
+
if "function_call" in dictionary:
|
19
|
+
name = dictionary["function_call"]["name"]
|
20
|
+
# arguments is a JSON string, so we need to parse it
|
21
|
+
params = str_to_dict(dictionary["function_call"]["arguments"])
|
22
|
+
return name, params
|
23
|
+
|
24
|
+
# Handle OpenAI tool calls format
|
25
|
+
if "tool_calls" in dictionary:
|
26
|
+
# Get the first tool call (or you could handle multiple if needed)
|
27
|
+
tool_call = dictionary["tool_calls"][0]
|
28
|
+
name = tool_call["function"]["name"]
|
29
|
+
params = str_to_dict(tool_call["function"]["arguments"])
|
30
|
+
return name, params
|
31
|
+
|
32
|
+
# Handle regular dictionary format
|
33
|
+
if "name" in dictionary:
|
34
|
+
name = dictionary["name"]
|
35
|
+
params = dictionary.get("arguments", {})
|
36
|
+
return name, params
|
37
|
+
|
38
|
+
raise ValueError("Invalid function call format")
|
39
|
+
|
40
|
+
|
41
|
+
async def _execute_mcp_tool(
|
42
|
+
url: str,
|
43
|
+
method: Literal["stdio", "sse"] = "sse",
|
44
|
+
parameters: Dict[Any, Any] = None,
|
45
|
+
output_type: Literal["str", "dict"] = "str",
|
46
|
+
*args,
|
47
|
+
**kwargs,
|
48
|
+
) -> Dict[Any, Any]:
|
49
|
+
|
50
|
+
if "sse" or "stdio" not in url:
|
51
|
+
raise ValueError("Invalid URL")
|
52
|
+
|
53
|
+
url = f"{url}/{method}"
|
54
|
+
|
55
|
+
name, params = parse_agent_output(parameters)
|
56
|
+
|
57
|
+
if output_type == "str":
|
58
|
+
async with Client(url, *args, **kwargs) as client:
|
59
|
+
out = await client.call_tool(
|
60
|
+
name=name,
|
61
|
+
arguments=params,
|
62
|
+
)
|
63
|
+
return any_to_str(out)
|
64
|
+
elif output_type == "dict":
|
65
|
+
async with Client(url, *args, **kwargs) as client:
|
66
|
+
out = await client.call_tool(
|
67
|
+
name=name,
|
68
|
+
arguments=params,
|
69
|
+
)
|
70
|
+
return out
|
71
|
+
else:
|
72
|
+
raise ValueError(f"Invalid output type: {output_type}")
|
73
|
+
|
74
|
+
|
75
|
+
def execute_mcp_tool(
|
76
|
+
url: str,
|
77
|
+
tool_name: str = None,
|
78
|
+
method: Literal["stdio", "sse"] = "sse",
|
79
|
+
parameters: Dict[Any, Any] = None,
|
80
|
+
output_type: Literal["str", "dict"] = "str",
|
81
|
+
) -> Dict[Any, Any]:
|
82
|
+
return asyncio.run(
|
83
|
+
_execute_mcp_tool(
|
84
|
+
url=url,
|
85
|
+
tool_name=tool_name,
|
86
|
+
method=method,
|
87
|
+
parameters=parameters,
|
88
|
+
output_type=output_type,
|
89
|
+
)
|
90
|
+
)
|
swarms/utils/formatter.py
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import threading
|
1
2
|
import time
|
2
3
|
from typing import Any, Callable, Dict, List
|
3
4
|
|
@@ -20,7 +21,7 @@ class Formatter:
|
|
20
21
|
"""
|
21
22
|
self.console = Console()
|
22
23
|
|
23
|
-
def
|
24
|
+
def _print_panel(
|
24
25
|
self, content: str, title: str = "", style: str = "bold blue"
|
25
26
|
) -> None:
|
26
27
|
"""
|
@@ -48,6 +49,19 @@ class Formatter:
|
|
48
49
|
)
|
49
50
|
self.console.print(panel)
|
50
51
|
|
52
|
+
def print_panel(
|
53
|
+
self,
|
54
|
+
content: str,
|
55
|
+
title: str = "",
|
56
|
+
style: str = "bold blue",
|
57
|
+
) -> None:
|
58
|
+
process_thread = threading.Thread(
|
59
|
+
target=self._print_panel,
|
60
|
+
args=(content, title, style),
|
61
|
+
daemon=True,
|
62
|
+
)
|
63
|
+
process_thread.start()
|
64
|
+
|
51
65
|
def print_table(
|
52
66
|
self, title: str, data: Dict[str, List[str]]
|
53
67
|
) -> None:
|
@@ -1,17 +1,35 @@
|
|
1
1
|
import yaml
|
2
2
|
from swarms.structs.conversation import Conversation
|
3
3
|
|
4
|
+
from typing import Literal, Union, List, Dict, Any
|
5
|
+
|
6
|
+
HistoryOutputType = Literal[
|
7
|
+
"list",
|
8
|
+
"dict",
|
9
|
+
"dictionary",
|
10
|
+
"string",
|
11
|
+
"str",
|
12
|
+
"final",
|
13
|
+
"last",
|
14
|
+
"json",
|
15
|
+
"all",
|
16
|
+
"yaml",
|
17
|
+
# "dict-final",
|
18
|
+
"dict-all-except-first",
|
19
|
+
"str-all-except-first",
|
20
|
+
]
|
21
|
+
|
4
22
|
|
5
23
|
def history_output_formatter(
|
6
|
-
conversation: Conversation, type:
|
7
|
-
):
|
24
|
+
conversation: Conversation, type: HistoryOutputType = "list"
|
25
|
+
) -> Union[List[Dict[str, Any]], Dict[str, Any], str]:
|
8
26
|
if type == "list":
|
9
27
|
return conversation.return_messages_as_list()
|
10
|
-
elif type
|
28
|
+
elif type in ["dict", "dictionary"]:
|
11
29
|
return conversation.to_dict()
|
12
|
-
elif type
|
30
|
+
elif type in ["string", "str"]:
|
13
31
|
return conversation.get_str()
|
14
|
-
elif type
|
32
|
+
elif type in ["final", "last"]:
|
15
33
|
return conversation.get_final_message_content()
|
16
34
|
elif type == "json":
|
17
35
|
return conversation.to_json()
|
@@ -19,5 +37,11 @@ def history_output_formatter(
|
|
19
37
|
return conversation.get_str()
|
20
38
|
elif type == "yaml":
|
21
39
|
return yaml.safe_dump(conversation.to_dict(), sort_keys=False)
|
40
|
+
# elif type == "dict-final":
|
41
|
+
# return conversation.to_dict()
|
42
|
+
elif type == "dict-all-except-first":
|
43
|
+
return conversation.return_all_except_first()
|
44
|
+
elif type == "str-all-except-first":
|
45
|
+
return conversation.return_all_except_first_string()
|
22
46
|
else:
|
23
47
|
raise ValueError(f"Invalid type: {type}")
|
swarms/utils/litellm_wrapper.py
CHANGED
@@ -254,16 +254,32 @@ class LiteLLM:
|
|
254
254
|
self.messages
|
255
255
|
) # Use modality-processed messages
|
256
256
|
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
257
|
+
if (
|
258
|
+
self.model_name == "openai/o4-mini"
|
259
|
+
or self.model_name == "openai/o3-2025-04-16"
|
260
|
+
):
|
261
|
+
# Prepare common completion parameters
|
262
|
+
completion_params = {
|
263
|
+
"model": self.model_name,
|
264
|
+
"messages": messages,
|
265
|
+
"stream": self.stream,
|
266
|
+
# "temperature": self.temperature,
|
267
|
+
"max_completion_tokens": self.max_tokens,
|
268
|
+
"caching": self.caching,
|
269
|
+
**kwargs,
|
270
|
+
}
|
271
|
+
|
272
|
+
else:
|
273
|
+
# Prepare common completion parameters
|
274
|
+
completion_params = {
|
275
|
+
"model": self.model_name,
|
276
|
+
"messages": messages,
|
277
|
+
"stream": self.stream,
|
278
|
+
"temperature": self.temperature,
|
279
|
+
"max_tokens": self.max_tokens,
|
280
|
+
"caching": self.caching,
|
281
|
+
**kwargs,
|
282
|
+
}
|
267
283
|
|
268
284
|
# Handle tool-based completion
|
269
285
|
if self.tools_list_dictionary is not None:
|
@@ -51,6 +51,7 @@ swarms/prompts/multi_modal_autonomous_instruction_prompt.py,sha256=SHfaKs5Hj9sV4
|
|
51
51
|
swarms/prompts/multi_modal_prompts.py,sha256=yvE9_RAFTKU1QhN0rNOelrO7jn5fjDARpcKussbBc2c,3511
|
52
52
|
swarms/prompts/multi_modal_visual_prompts.py,sha256=Apv5vqTzB7nBj7nnoMPO0fog3PL9KLrteEjYM_SjaEE,3225
|
53
53
|
swarms/prompts/operations_agent_prompt.py,sha256=7ioHxH-xMVqo7vy-wuwHvs9OXQjx-sDQbHFgExZVobI,3454
|
54
|
+
swarms/prompts/paper_idea_agent.py,sha256=I__fp0Rbpa5yr09C9UWPDZI7_jVRpejt9jrUSqcZHEw,1107
|
54
55
|
swarms/prompts/personal_stylist.py,sha256=_14TSdWdHs6WCnBSK5--1QXcHv5qK466O6A781jif7c,2149
|
55
56
|
swarms/prompts/product_agent_prompt.py,sha256=RN24ZeXA-QEVYWFoobJRtpXzQJ0shPhcUpCbNLkArTc,8333
|
56
57
|
swarms/prompts/programming.py,sha256=Bg_PV5CexJFLqadJjjliU6t89q8IeQTEp2ZyEF9kO0g,10144
|
@@ -81,21 +82,21 @@ swarms/schemas/__init__.py,sha256=EqqtVcpoptF1kfy19Wykp22ut4AA0z-yMQ5H9WB7ptA,18
|
|
81
82
|
swarms/schemas/agent_input_schema.py,sha256=qhPyThMx2on91yG9mzNdP_08GpMh1IRDHDwFna29jPs,6345
|
82
83
|
swarms/schemas/agent_step_schemas.py,sha256=a14gb58vR0xOwB_fwSJQbN6yb9HddEaT30E6hUrzEQA,2573
|
83
84
|
swarms/schemas/base_schemas.py,sha256=UvBLVWg2qRen4tK5GJz50v42SiX95EQ5qK7hfyAHTEU,3267
|
84
|
-
swarms/structs/__init__.py,sha256=
|
85
|
-
swarms/structs/agent.py,sha256=
|
85
|
+
swarms/structs/__init__.py,sha256=HXWoa7nLUzPx6Cfyr3_llGcU58cIlc1OiEUVgrTqY_s,4143
|
86
|
+
swarms/structs/agent.py,sha256=Hkgo4WhEvX6ReAku-eTBzhQ405F65U2LKYHWTNF-Tlg,99049
|
86
87
|
swarms/structs/agent_builder.py,sha256=tYNpfO4_8cgfMHfgA5DAOWffHnt70p6CLt59esqfVCY,12133
|
87
88
|
swarms/structs/agent_registry.py,sha256=il507cO1NF-d4ChyANVLuWrN8bXsEAi8_7bLJ_sTU6A,12112
|
88
89
|
swarms/structs/agent_roles.py,sha256=8XEw6RjOOZelaZaWt4gXaYQm5WMLEhSO7W6Z8sQjmFg,582
|
89
90
|
swarms/structs/agent_router.py,sha256=YZw5AaK2yTvxkOA7ouED_4MoYgn0XZggvo1wrglp-4E,13017
|
90
91
|
swarms/structs/agents_available.py,sha256=SedxDim-0IWgGsNwJZxRIUMfKyAFFXdvXSYeBNu0zGw,2804
|
91
|
-
swarms/structs/
|
92
|
+
swarms/structs/aop.py,sha256=hmyxK0W_I1baW3EQ5U27uJjkDqNT4PHfIbWl8bvYW1I,17154
|
92
93
|
swarms/structs/auto_swarm_builder.py,sha256=vPM5Kq59D_FvuWJB8hxgHuEvTXsxDxovlBnHGVQsM4o,10938
|
93
94
|
swarms/structs/base_structure.py,sha256=GDu4QJQQmhU7IyuFJHIh9UVThACCva-L7uoMbVD9l4s,15901
|
94
95
|
swarms/structs/base_swarm.py,sha256=LSGJDPJdyUCcK6698mNtjxoC1OU3s_J2NxC2k_ccGUs,23779
|
95
96
|
swarms/structs/base_workflow.py,sha256=DTfFwX3AdFYxACDYwUDqhsbcDZnITlg5TeEYyxmJBCc,11414
|
96
97
|
swarms/structs/concat.py,sha256=utezSxNyh1mIwXgdf8-dJ803NDPyEy79WE8zJHuooGk,732
|
97
98
|
swarms/structs/concurrent_workflow.py,sha256=d1_slbALpxrdEGzZffUSAcEbONW0kc7fyTpVZTBmzi4,15517
|
98
|
-
swarms/structs/conversation.py,sha256=
|
99
|
+
swarms/structs/conversation.py,sha256=i3Iqc4Wa11PQKvAv76Qs8pEr6KsGXpc70DeD2EoIrlk,19267
|
99
100
|
swarms/structs/csv_to_agent.py,sha256=ug9JqQFPguXeU9JQpSUXuVtOpHYdJhlpKJUJBovo694,9443
|
100
101
|
swarms/structs/de_hallucination_swarm.py,sha256=9cC0rSSXGwYu6SRDwpeMbCcQ40C1WI1RE9SNapKRLOQ,10309
|
101
102
|
swarms/structs/deep_research_swarm.py,sha256=axhzSK43-TViQJntt2Gz2AUhAc6zoBPzj9weRmQ8yE8,16733
|
@@ -113,11 +114,9 @@ swarms/structs/mixture_of_agents.py,sha256=G8_MVMrDd0-ZD_gJ5YZgtTCUjl7COha9Me-vO
|
|
113
114
|
swarms/structs/model_router.py,sha256=V5pZHYlxSmCvAA2Gsns7LaCz8dXtRi7pCvb-oLGHYIY,12739
|
114
115
|
swarms/structs/multi_agent_collab.py,sha256=odh2NQRR23LidsphCxUfAke369lDdgL__w3Xovu9jkA,7731
|
115
116
|
swarms/structs/multi_agent_exec.py,sha256=Gxwr9mHADX3n29pdxor-dQDnKPSNdnicpCxBLmPwnLg,14344
|
116
|
-
swarms/structs/
|
117
|
-
swarms/structs/octotools.py,sha256=GZo0qtFM69W7vvewk6_k09vicgw0c0_v7MiPvEZCagE,31406
|
117
|
+
swarms/structs/multi_agent_router.py,sha256=_trjXCW31ZeVR7N2hURLUPDZhYa-Wa3ADMk1wnNJdcQ,13400
|
118
118
|
swarms/structs/omni_agent_types.py,sha256=RdKLfZ-lXDJrEa0aJT_Rfx9TypJQo8SISqKz4fnLkAk,230
|
119
119
|
swarms/structs/output_types.py,sha256=F1jNbDLJrubRIUyheMGMahJfGikbWZ_yNmbE9QVIz9A,280
|
120
|
-
swarms/structs/pulsar_swarm.py,sha256=4_L0GqPBgnA3AJajpNLgO4IAG6U36nIntFK9WNJScv8,15968
|
121
120
|
swarms/structs/queue_swarm.py,sha256=8vcA-rh280midcdgfA5IwJzBmMgdn71nRH6KndWu-DA,6770
|
122
121
|
swarms/structs/rearrange.py,sha256=5u7HwTVVH414w9rhEQvLdltW1ACHjgwn-zS8-8JEXmA,22576
|
123
122
|
swarms/structs/round_robin.py,sha256=MGk623KiN9uSxTMG6MY_BIAkvEDh1RPwyl5Min7GLOU,7573
|
@@ -129,19 +128,17 @@ swarms/structs/swarm_arange.py,sha256=6fexCPsXRgdLbpY0p9rp_REipeXzsbv1_GOtD9B4Ha
|
|
129
128
|
swarms/structs/swarm_builder.py,sha256=TqxD4bIE11gPZBqi_awXem5-svnQ-IJVAhRquX0ErQg,13054
|
130
129
|
swarms/structs/swarm_eval.py,sha256=148E2R2zaCmt_LZYx15nmdFjybXHiQ2CZbl6pk77jNs,11635
|
131
130
|
swarms/structs/swarm_id_generator.py,sha256=Wly7AtGM9e6VgzhYmfg8_gSOdxAdsOvWHJFK81cpQNQ,68
|
132
|
-
swarms/structs/swarm_load_balancer.py,sha256=pUCc5FEBcuJ_GmOFeTWBPfXlUdiTOjYcJqVq_ymGHlM,11374
|
133
131
|
swarms/structs/swarm_matcher.py,sha256=E2KwHHEJxmW-UfTeMPWZ6VCmYdQ_I9_fwrfJbxD02GY,23322
|
134
132
|
swarms/structs/swarm_output_type.py,sha256=tW8Iqar1Jaf2Lzw66nAPc6MDk7-srQl5_XUKFvzoam4,755
|
135
133
|
swarms/structs/swarm_registry.py,sha256=P0XRrqp1qBNyt0BycqPQljUzKv9jClaQMhtaBMinhYg,5578
|
136
|
-
swarms/structs/swarm_router.py,sha256=
|
134
|
+
swarms/structs/swarm_router.py,sha256=qSPIF7ocQcg-z1WnUXBfzGCnEmQMCpO4cxmpefpf5P4,26848
|
137
135
|
swarms/structs/swarming_architectures.py,sha256=VvkSA9nQnF91V2C5-ALwSY1peZckeM1G4pPeQS7IVsE,13109
|
138
|
-
swarms/structs/talk_hier.py,sha256=npyEuL52SCgQmMynIvGjfatNqOz4toq0EyhEtSNmQhQ,25649
|
139
136
|
swarms/structs/tree_swarm.py,sha256=AnIxrt0KhWxAQN8uGjfCcOq-XCmsuTJiH8Ex4mXy8V8,12500
|
140
137
|
swarms/structs/utils.py,sha256=Mo6wHQYOB8baWZUKnAJN5Dsgubpo81umNwJIEDitb2A,1873
|
141
138
|
swarms/structs/various_alt_swarms.py,sha256=qdBuOF31UjatlKRu-9bxwyRQzIjohRhTv_63YoUeYEY,27866
|
142
139
|
swarms/telemetry/__init__.py,sha256=yibtkHEbQRPUv6ir1FhDHlAO_3nwKJPQH4LjzBC2AuQ,661
|
143
140
|
swarms/telemetry/bootup.py,sha256=0leCNCy5rhzL19EsOsqHWSDI85KVcWO6_5hLDS0h4sY,1155
|
144
|
-
swarms/telemetry/main.py,sha256=
|
141
|
+
swarms/telemetry/main.py,sha256=FGJ5w4YEqzqWcaGr4RnyGwGpKuGGxl_yra7alDbcNnE,11408
|
145
142
|
swarms/tools/__init__.py,sha256=pqIMcRQr4gtoNdbyI1N5k4upkYSBMxACJbxfB9yrV4c,1493
|
146
143
|
swarms/tools/base_tool.py,sha256=BiBCFHin8AyZO3FYOGA-n3M2o-F36xUeIBUiybnZYjI,15179
|
147
144
|
swarms/tools/cohere_func_call_schema.py,sha256=XJ6_yBMXCrV9KjN7v9Bk1iFj69TRlGIWYKsUTA1oGiQ,600
|
@@ -151,6 +148,7 @@ swarms/tools/function_util.py,sha256=DAnAPO0Ik__TAqL7IJzFmkukHnhpsW_QtALl3yj837g
|
|
151
148
|
swarms/tools/json_former.py,sha256=4ugLQ_EZpghhuhFsVKsy-ehin9K64pqVE2gLU7BTO_M,14376
|
152
149
|
swarms/tools/json_utils.py,sha256=WKMZjcJ0Vt6lgIjiTBenslcfjgRSLX4UWs4uDkKFMQI,1316
|
153
150
|
swarms/tools/logits_processor.py,sha256=NifZZ5w9yemWGJAJ5nHFrphtZVX1XlyesgvYZTxK1GM,2965
|
151
|
+
swarms/tools/mcp_client.py,sha256=tXlZsh0KKyYw0RIsazlxZ5XsloY569sgQZUlsUdx2bM,2683
|
154
152
|
swarms/tools/mcp_integration.py,sha256=rUXxC9NvXQ3V4B7Lt1AoI4ZYiCl2-T4FW3_689HTRZk,12839
|
155
153
|
swarms/tools/openai_func_calling_schema_pydantic.py,sha256=6BAH9kuaVTvJIbjgSSJ5XvHhWvWszPxgarkfUuE5Ads,978
|
156
154
|
swarms/tools/openai_tool_creator_decorator.py,sha256=SYZjHnARjWvnH9cBdj7Kc_Yy1muvNxMT3RQz8KkA2SE,2578
|
@@ -167,11 +165,11 @@ swarms/utils/calculate_func_metrics.py,sha256=Nb5r7rWf809m5F7mWIYXZ0H_WeyGr78A2U
|
|
167
165
|
swarms/utils/data_to_text.py,sha256=1PUoWokylp7MOrGNk1cmO3cJlfskdAIiImGk9ECwsKU,3427
|
168
166
|
swarms/utils/disable_logging.py,sha256=KKPKQVfQqLPFgj03uveOoyeHOTlfEJt-yfLc3SA53Rk,2470
|
169
167
|
swarms/utils/file_processing.py,sha256=QjQCIPTcwicQlfy656BXBYpIzMR0s2343E7ftnok5Uo,4865
|
170
|
-
swarms/utils/formatter.py,sha256=
|
168
|
+
swarms/utils/formatter.py,sha256=e15FsyTIIkyRreMUApkkZCzJC1Sm67w5Zd6EQcUkMwA,4533
|
171
169
|
swarms/utils/function_caller_model.py,sha256=ZfgCMzOizNnuZipYLclTziECNHszH9p8RQcUq7VNr4Q,4156
|
172
|
-
swarms/utils/history_output_formatter.py,sha256=
|
170
|
+
swarms/utils/history_output_formatter.py,sha256=5Gc-FLUDTkTYfzZVbfq4EL-wAZqPN0mD3K3h62CB71k,1379
|
173
171
|
swarms/utils/litellm_tokenizer.py,sha256=0AAj4NffBe2eHii_3_5SpQAhSiBbunJR8MzaBTIm7hg,484
|
174
|
-
swarms/utils/litellm_wrapper.py,sha256=
|
172
|
+
swarms/utils/litellm_wrapper.py,sha256=xdRRj2MvO-4RtfD1SHOCKoidX1UTKRj__I7CvWxQV3o,15145
|
175
173
|
swarms/utils/loguru_logger.py,sha256=hIoSK3NHLpe7eAmjHRURrEYzNXYC2gbR7_Vv63Yaydk,685
|
176
174
|
swarms/utils/markdown_message.py,sha256=RThHNnMf6ZLTlYK4vKn3yuewChaxWAYAWb0Xm_pTyIU,652
|
177
175
|
swarms/utils/parse_code.py,sha256=XFOLymbdP3HzMZuqsj7pwUyisvUmTm0ev9iThR_ambI,1987
|
@@ -181,8 +179,8 @@ swarms/utils/try_except_wrapper.py,sha256=appEGu9Afy3TmdkNNXUgQ9yU9lj2j0uNkIoW0J
|
|
181
179
|
swarms/utils/visualizer.py,sha256=0ylohEk62MAS6iPRaDOV03m9qo2k5J56tWlKJk_46p4,16927
|
182
180
|
swarms/utils/vllm_wrapper.py,sha256=OIGnU9Vf81vE_hul1FK-xEhChFK8fxqZX6-fhQeW22c,4987
|
183
181
|
swarms/utils/wrapper_clusterop.py,sha256=PMSCVM7ZT1vgj1D_MYAe835RR3SMLYxA-si2JS02yNQ,4220
|
184
|
-
swarms-7.7.
|
185
|
-
swarms-7.7.
|
186
|
-
swarms-7.7.
|
187
|
-
swarms-7.7.
|
188
|
-
swarms-7.7.
|
182
|
+
swarms-7.7.2.dist-info/LICENSE,sha256=jwRtEmTWjLrEsvFB6QFdYs2cEeZPRMdj-UMOFkPF8_0,11363
|
183
|
+
swarms-7.7.2.dist-info/METADATA,sha256=NbVlheMq824t9bP3EnHmcUdryKiko2CllUTg5Od-ys4,104909
|
184
|
+
swarms-7.7.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
185
|
+
swarms-7.7.2.dist-info/entry_points.txt,sha256=2K0rTtfO1X1WaO-waJlXIKw5Voa_EpAL_yU0HXE2Jgc,47
|
186
|
+
swarms-7.7.2.dist-info/RECORD,,
|