swarms 7.6.1__py3-none-any.whl → 7.6.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.
@@ -0,0 +1,273 @@
1
+ import os
2
+ from typing import List
3
+ from swarms.structs.agent import Agent
4
+ from swarms.structs.conversation import Conversation
5
+ from swarms.structs.swarm_router import SwarmRouter
6
+ from swarms.utils.history_output_formatter import (
7
+ history_output_formatter,
8
+ )
9
+ from concurrent.futures import ThreadPoolExecutor, as_completed
10
+ from typing import Union, Callable
11
+
12
+ tools = [
13
+ {
14
+ "type": "function",
15
+ "function": {
16
+ "name": "select_swarm",
17
+ "description": "Analyzes the input task and selects the most appropriate swarm configuration, outputting both the swarm name and the formatted task.",
18
+ "parameters": {
19
+ "type": "object",
20
+ "properties": {
21
+ "reasoning": {
22
+ "type": "string",
23
+ "description": "The reasoning behind the selection of the swarm and task description.",
24
+ },
25
+ "swarm_name": {
26
+ "type": "string",
27
+ "description": "The name of the selected swarm that is most appropriate for handling the given task.",
28
+ },
29
+ "task_description": {
30
+ "type": "string",
31
+ "description": "A clear and structured description of the task to be performed by the swarm.",
32
+ },
33
+ },
34
+ "required": [
35
+ "reasoning",
36
+ "swarm_name",
37
+ "task_description",
38
+ ],
39
+ },
40
+ },
41
+ },
42
+ ]
43
+
44
+ router_system_prompt = """
45
+ You are an intelligent Router Agent responsible for analyzing tasks and directing them to the most appropriate swarm in our system. Your role is critical in ensuring optimal task execution and resource utilization.
46
+
47
+ Key Responsibilities:
48
+ 1. Task Analysis:
49
+ - Carefully analyze the input task's requirements, complexity, and domain
50
+ - Identify key components and dependencies
51
+ - Determine the specialized skills needed for completion
52
+
53
+ 2. Swarm Selection Criteria:
54
+ - Match task requirements with swarm capabilities
55
+ - Consider swarm specializations and past performance
56
+ - Evaluate computational resources needed
57
+ - Account for task priority and time constraints
58
+
59
+ 3. Decision Making Framework:
60
+ - Use a systematic approach to evaluate all available swarms
61
+ - Consider load balancing across the system
62
+ - Factor in swarm availability and current workload
63
+ - Assess potential risks and failure points
64
+
65
+ 4. Output Requirements:
66
+ - Provide clear justification for swarm selection
67
+ - Structure the task description in a way that maximizes swarm efficiency
68
+ - Include any relevant context or constraints
69
+ - Ensure all critical information is preserved
70
+
71
+ Best Practices:
72
+ - Always prefer specialized swarms for domain-specific tasks
73
+ - Consider breaking complex tasks into subtasks when appropriate
74
+ - Maintain consistency in task formatting across different swarms
75
+ - Include error handling considerations in task descriptions
76
+
77
+ Your output must strictly follow the required format:
78
+ {
79
+ "swarm_name": "Name of the selected swarm",
80
+ "task_description": "Detailed and structured task description"
81
+ }
82
+
83
+ Remember: Your selection directly impacts the overall system performance and task completion success rate. Take all factors into account before making your final decision.
84
+ """
85
+
86
+
87
+ class HybridHierarchicalClusterSwarm:
88
+ """
89
+ A class representing a Hybrid Hierarchical-Cluster Swarm that routes tasks to appropriate swarms.
90
+
91
+ Attributes:
92
+ name (str): The name of the swarm.
93
+ description (str): A description of the swarm's functionality.
94
+ swarms (List[SwarmRouter]): A list of available swarm routers.
95
+ max_loops (int): The maximum number of loops for task processing.
96
+ output_type (str): The format of the output (e.g., list).
97
+ conversation (Conversation): An instance of the Conversation class to manage interactions.
98
+ router_agent (Agent): An instance of the Agent class responsible for routing tasks.
99
+ """
100
+
101
+ def __init__(
102
+ self,
103
+ name: str = "Hybrid Hierarchical-Cluster Swarm",
104
+ description: str = "A swarm that uses a hybrid hierarchical-peer model to solve complex tasks.",
105
+ swarms: List[Union[SwarmRouter, Callable]] = [],
106
+ max_loops: int = 1,
107
+ output_type: str = "list",
108
+ router_agent_model_name: str = "gpt-4o-mini",
109
+ *args,
110
+ **kwargs,
111
+ ):
112
+ self.name = name
113
+ self.description = description
114
+ self.swarms = swarms
115
+ self.max_loops = max_loops
116
+ self.output_type = output_type
117
+
118
+ self.conversation = Conversation()
119
+
120
+ self.router_agent = Agent(
121
+ agent_name="Router Agent",
122
+ agent_description="A router agent that routes tasks to the appropriate swarms.",
123
+ system_prompt=f"{router_system_prompt}\n\n{self.get_swarms_info()}",
124
+ tools_list_dictionary=tools,
125
+ model_name=router_agent_model_name,
126
+ max_loops=1,
127
+ )
128
+
129
+ def run(self, task: str, *args, **kwargs):
130
+ """
131
+ Runs the routing process for a given task.
132
+
133
+ Args:
134
+ task (str): The task to be processed by the swarm.
135
+
136
+ Returns:
137
+ str: The formatted history output of the conversation.
138
+
139
+ Raises:
140
+ ValueError: If the task is empty or invalid.
141
+ """
142
+ if not task:
143
+ raise ValueError("Task cannot be empty.")
144
+
145
+ self.conversation.add(role="User", content=task)
146
+
147
+ response = self.router_agent.run(task=task)
148
+
149
+ # Handle response whether it's a string or dictionary
150
+ if isinstance(response, str):
151
+ try:
152
+ import json
153
+
154
+ response = json.loads(response)
155
+ except json.JSONDecodeError:
156
+ raise ValueError(
157
+ "Invalid JSON response from router agent"
158
+ )
159
+
160
+ swarm_name = response.get("swarm_name")
161
+ task_description = response.get("task_description")
162
+
163
+ if not swarm_name or not task_description:
164
+ raise ValueError(
165
+ "Invalid response from router agent: missing swarm_name or task_description."
166
+ )
167
+
168
+ self.route_task(swarm_name, task_description)
169
+
170
+ return history_output_formatter(
171
+ self.conversation, self.output_type
172
+ )
173
+
174
+ def find_swarm_by_name(self, swarm_name: str):
175
+ """
176
+ Finds a swarm by its name.
177
+
178
+ Args:
179
+ swarm_name (str): The name of the swarm to find.
180
+
181
+ Returns:
182
+ SwarmRouter: The found swarm router, or None if not found.
183
+ """
184
+ for swarm in self.swarms:
185
+ if swarm.name == swarm_name:
186
+ return swarm
187
+ return None
188
+
189
+ def route_task(self, swarm_name: str, task_description: str):
190
+ """
191
+ Routes the task to the specified swarm.
192
+
193
+ Args:
194
+ swarm_name (str): The name of the swarm to route the task to.
195
+ task_description (str): The description of the task to be executed.
196
+
197
+ Raises:
198
+ ValueError: If the swarm is not found.
199
+ """
200
+ swarm = self.find_swarm_by_name(swarm_name)
201
+
202
+ if swarm:
203
+ output = swarm.run(task_description)
204
+ self.conversation.add(role=swarm.name, content=output)
205
+ else:
206
+ raise ValueError(f"Swarm '{swarm_name}' not found.")
207
+
208
+ def batched_run(self, tasks: List[str]):
209
+ """
210
+ Runs the routing process for a list of tasks in batches.
211
+
212
+ Args:
213
+ tasks (List[str]): A list of tasks to be processed by the swarm.
214
+
215
+ Returns:
216
+ List[str]: A list of formatted history outputs for each batch.
217
+
218
+ Raises:
219
+ ValueError: If the task list is empty or invalid.
220
+ """
221
+ if not tasks:
222
+ raise ValueError("Task list cannot be empty.")
223
+
224
+ max_workers = os.cpu_count() * 2
225
+
226
+ results = []
227
+
228
+ with ThreadPoolExecutor(max_workers=max_workers) as executor:
229
+ # Submit all tasks to the executor
230
+ future_to_task = {
231
+ executor.submit(self.run, task): task
232
+ for task in tasks
233
+ }
234
+
235
+ # Collect results as they complete
236
+ for future in as_completed(future_to_task):
237
+ try:
238
+ result = future.result()
239
+ results.append(result)
240
+ except Exception as e:
241
+ # Handle any errors that occurred during task execution
242
+ results.append(f"Error processing task: {str(e)}")
243
+
244
+ return results
245
+
246
+ def get_swarms_info(self) -> str:
247
+ """
248
+ Fetches and formats information about all available swarms in the system.
249
+
250
+ Returns:
251
+ str: A formatted string containing names and descriptions of all swarms.
252
+ """
253
+ if not self.swarms:
254
+ return "No swarms currently available in the system."
255
+
256
+ swarm_info = [
257
+ "Available Swarms:",
258
+ "",
259
+ ] # Empty string for line spacing
260
+
261
+ for idx, swarm in enumerate(self.swarms, 1):
262
+ swarm_info.extend(
263
+ [
264
+ f"[Swarm {idx}]",
265
+ f"Name: {swarm.name}",
266
+ f"Description: {swarm.description}",
267
+ f"Length of Agents: {len(swarm.agents)}",
268
+ f"Swarm Type: {swarm.swarm_type}",
269
+ "", # Empty string for line spacing between swarms
270
+ ]
271
+ )
272
+
273
+ return "\n".join(swarm_info).strip()
@@ -9,7 +9,7 @@ from typing import Any, Callable, List, Optional
9
9
  from swarms.structs.agent import Agent
10
10
  from swarms.structs.conversation import Conversation
11
11
  from swarms.structs.multi_agent_exec import run_agents_concurrently
12
- from swarms.structs.output_type import OutputType
12
+ from swarms.structs.output_types import OutputType
13
13
  from swarms.utils.formatter import formatter
14
14
  from swarms.utils.loguru_logger import initialize_logger
15
15
 
@@ -11,7 +11,7 @@ from swarms.schemas.agent_step_schemas import ManySteps
11
11
  from swarms.prompts.ag_prompt import aggregator_system_prompt
12
12
  from swarms.utils.loguru_logger import initialize_logger
13
13
  import concurrent.futures
14
- from swarms.structs.output_type import OutputType
14
+ from swarms.structs.output_types import OutputType
15
15
  from swarms.structs.conversation import Conversation
16
16
 
17
17
  logger = initialize_logger(log_folder="mixture_of_agents")
@@ -18,7 +18,7 @@ from pydantic import BaseModel, Field
18
18
  from swarms.utils.function_caller_model import OpenAIFunctionCaller
19
19
  from swarms.structs.agent import Agent
20
20
  from swarms.structs.conversation import Conversation
21
- from swarms.structs.output_type import OutputType
21
+ from swarms.structs.output_types import OutputType
22
22
  from swarms.utils.any_to_str import any_to_str
23
23
 
24
24
 
@@ -14,3 +14,6 @@ OutputType = Literal[
14
14
  "string",
15
15
  "str",
16
16
  ]
17
+
18
+ # Use the OutputType for type annotations
19
+ output_type: OutputType
@@ -15,7 +15,7 @@ from swarms.structs.base_swarm import BaseSwarm
15
15
  from swarms.utils.loguru_logger import initialize_logger
16
16
  from swarms.telemetry.main import log_agent_data
17
17
  from swarms.structs.conversation import Conversation
18
- from swarms.structs.output_type import OutputType
18
+ from swarms.structs.output_types import OutputType
19
19
 
20
20
  logger = initialize_logger(log_folder="rearrange")
21
21
 
@@ -1,7 +1,7 @@
1
1
  from typing import List, Optional
2
2
  from swarms.structs.agent import Agent
3
3
  from swarms.structs.rearrange import AgentRearrange
4
- from swarms.structs.output_type import OutputType
4
+ from swarms.structs.output_types import OutputType
5
5
  from concurrent.futures import ThreadPoolExecutor, as_completed
6
6
  from swarms.utils.loguru_logger import initialize_logger
7
7
 
@@ -18,7 +18,7 @@ from swarms.structs.rearrange import AgentRearrange
18
18
  from swarms.structs.sequential_workflow import SequentialWorkflow
19
19
  from swarms.structs.spreadsheet_swarm import SpreadSheetSwarm
20
20
  from swarms.structs.swarm_matcher import swarm_matcher
21
- from swarms.structs.output_type import OutputType
21
+ from swarms.structs.output_types import OutputType
22
22
  from swarms.utils.loguru_logger import initialize_logger
23
23
  from swarms.structs.malt import MALT
24
24
  from swarms.structs.deep_research_swarm import DeepResearchSwarm
swarms/telemetry/main.py CHANGED
@@ -1,5 +1,4 @@
1
1
  import hashlib
2
- import os
3
2
  import platform
4
3
  import socket
5
4
  import subprocess
@@ -279,12 +278,17 @@ def log_agent_data(data_dict: dict) -> dict | None:
279
278
  url = "https://swarms.world/api/get-agents/log-agents"
280
279
  headers = {
281
280
  "Content-Type": "application/json",
282
- "Authorization": os.getenv("SWARMS_API_KEY"),
281
+ "Authorization": "sk-33979fd9a4e8e6b670090e4900a33dbe7452a15ccc705745f4eca2a70c88ea24",
282
+ }
283
+
284
+ data_input = {
285
+ "data": data_dict,
286
+ "system_data": get_user_device_data(),
283
287
  }
284
288
 
285
289
  try:
286
290
  response = requests.post(
287
- url, json=data_dict, headers=headers, timeout=10
291
+ url, json=data_input, headers=headers, timeout=10
288
292
  )
289
293
  if (
290
294
  response.ok and response.text.strip()
@@ -0,0 +1,57 @@
1
+ from typing import Any, Dict, List, Optional
2
+ from pydantic import BaseModel
3
+
4
+
5
+ class PropertySchema(BaseModel):
6
+ type: str
7
+ description: Optional[str] = None
8
+ enum: Optional[List[str]] = None
9
+ items: Optional[Dict[str, Any]] = None
10
+ properties: Optional[Dict[str, "PropertySchema"]] = None
11
+ required: Optional[List[str]] = None
12
+
13
+
14
+ class ParameterSchema(BaseModel):
15
+ type: str
16
+ properties: Dict[str, PropertySchema]
17
+ required: Optional[List[str]] = None
18
+
19
+
20
+ class FunctionDefinition(BaseModel):
21
+ name: str
22
+ description: str
23
+ parameters: ParameterSchema
24
+
25
+
26
+ class Tool(BaseModel):
27
+ type: str
28
+ function: FunctionDefinition
29
+
30
+
31
+ class ToolSet(BaseModel):
32
+ tools: List[Tool]
33
+
34
+
35
+ # model = ToolSet(
36
+ # tools=[
37
+ # Tool(
38
+ # type="function",
39
+ # function=FunctionDefinition(
40
+ # name="test",
41
+ # description="test",
42
+ # parameters=ParameterSchema(
43
+ # type="object",
44
+ # properties={
45
+ # "weather_tool": PropertySchema(
46
+ # type="string",
47
+ # description="Get the weather in a given location",
48
+ # )
49
+ # },
50
+ # required=["weather_tool"],
51
+ # ),
52
+ # ),
53
+ # ),
54
+ # ]
55
+ # )
56
+
57
+ # print(model.model_dump_json(indent=4))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: swarms
3
- Version: 7.6.1
3
+ Version: 7.6.2
4
4
  Summary: Swarms - TGSC
5
5
  Home-page: https://github.com/kyegomez/swarms
6
6
  License: MIT
@@ -1,5 +1,5 @@
1
1
  swarms/__init__.py,sha256=DDfir3E4H8z1PlQqpc2HzovJQtNvIAzye4Fs165J0o8,512
2
- swarms/agents/__init__.py,sha256=VHXOjvtKqNuSkZn4kH3o09jbrTM5dpK81R89ce8UxrM,1174
2
+ swarms/agents/__init__.py,sha256=a0vqrSGmY93Z2Zi5uBg-B5WQJnEX0Wr0C2nfTcQAWCI,1225
3
3
  swarms/agents/agent_judge.py,sha256=xT242CX5mV64cq2B-3RGkuEHiV5aD04P_Zq8_s64iMQ,3967
4
4
  swarms/agents/agent_print.py,sha256=SXqWA2ZzXwRFdv8hkuYwOPMTasvaGTG6U29413qRCAA,918
5
5
  swarms/agents/ape_agent.py,sha256=1kz_65LJgjLlY1yv2WLBeVMs7sP9BgEVWk0w1f67YLc,1563
@@ -10,7 +10,7 @@ swarms/agents/flexion_agent.py,sha256=gVkQi5DDMLnYdyp2hkpgBnagDlMlKbnfnlWEaA8YrC
10
10
  swarms/agents/gkp_agent.py,sha256=5Jms3zHQ2qwJ6-PHDh9X-cFtAlH4dSUoDgRqN-xZzog,21067
11
11
  swarms/agents/i_agent.py,sha256=_eKUcgPfiVqQpF5Q-Sv1tT-JZxIeNl9Fp7OrnjVUtz8,12276
12
12
  swarms/agents/openai_assistant.py,sha256=mTSEtj26J0mc5pCeWrmMY0EXzTRYQfyfw_BtOqtcCHc,11044
13
- swarms/agents/reasoning_agents.py,sha256=tDb7J6NPrkDtmjyeC8tyPqMDDmN3pqx-4wxtIuO7n48,5402
13
+ swarms/agents/reasoning_agents.py,sha256=tF7K710lj-VZQVc2VjqxMWGLNGMsEWRarXcJnXz1wkc,5741
14
14
  swarms/agents/reasoning_duo.py,sha256=s9SnXoproQaBrShLtiruGJituy8sJlZJATc5Vy_FdwI,3875
15
15
  swarms/agents/tool_agent.py,sha256=G7rhBACsHsGUMT4H9eF5aY7e3Gx-5jOmJkhCF1jm9mU,5087
16
16
  swarms/artifacts/__init__.py,sha256=M111xTw7IVVt8gLDwW7Kau5n1YdwkL3vbCJPVeEWktI,83
@@ -78,15 +78,13 @@ swarms/schemas/__init__.py,sha256=EqqtVcpoptF1kfy19Wykp22ut4AA0z-yMQ5H9WB7ptA,18
78
78
  swarms/schemas/agent_input_schema.py,sha256=qhPyThMx2on91yG9mzNdP_08GpMh1IRDHDwFna29jPs,6345
79
79
  swarms/schemas/agent_step_schemas.py,sha256=a14gb58vR0xOwB_fwSJQbN6yb9HddEaT30E6hUrzEQA,2573
80
80
  swarms/schemas/base_schemas.py,sha256=UvBLVWg2qRen4tK5GJz50v42SiX95EQ5qK7hfyAHTEU,3267
81
- swarms/structs/__init__.py,sha256=m0O-UtgLjQxU2aQKkqsJW1d45fc-5F6EtnzAfLQILmE,4444
82
- swarms/structs/agent.py,sha256=tcGFYvQGdv-2VD9kaQvIKcdBxhv4H9WhWmEMzNcFeYc,96232
81
+ swarms/structs/__init__.py,sha256=S-I4b0CT6uZoUJht66JDFuKwi8yZ50TSW7rGjszEBdY,4578
82
+ swarms/structs/agent.py,sha256=X1IG7pB1PkHOdqOiUh9NbPhU-oZ6TuGqX8FwFoHOKVQ,97286
83
83
  swarms/structs/agent_builder.py,sha256=tYNpfO4_8cgfMHfgA5DAOWffHnt70p6CLt59esqfVCY,12133
84
84
  swarms/structs/agent_registry.py,sha256=il507cO1NF-d4ChyANVLuWrN8bXsEAi8_7bLJ_sTU6A,12112
85
85
  swarms/structs/agent_roles.py,sha256=8XEw6RjOOZelaZaWt4gXaYQm5WMLEhSO7W6Z8sQjmFg,582
86
86
  swarms/structs/agent_router.py,sha256=YZw5AaK2yTvxkOA7ouED_4MoYgn0XZggvo1wrglp-4E,13017
87
- swarms/structs/agent_security.py,sha256=uDQ6zoCm6mY2eMGSpjo-vidZrnLSdd-LTD75OpXDpKw,10618
88
87
  swarms/structs/agents_available.py,sha256=SedxDim-0IWgGsNwJZxRIUMfKyAFFXdvXSYeBNu0zGw,2804
89
- swarms/structs/airflow_swarm.py,sha256=3wekDOYx4eLLO68eVvSO89_sv5G-4-uMpXTmrhsHPuE,14250
90
88
  swarms/structs/async_workflow.py,sha256=7YWsLPyGY-1-mMxoIXWQ0FnYH6F227nxsS9PFAJoF9Q,26214
91
89
  swarms/structs/auto_swarm.py,sha256=AHWswlEWDL_i3V8IP362tx6pi_B2arlZhALykrkI5OA,8215
92
90
  swarms/structs/auto_swarm_builder.py,sha256=vPM5Kq59D_FvuWJB8hxgHuEvTXsxDxovlBnHGVQsM4o,10938
@@ -94,34 +92,35 @@ swarms/structs/base_structure.py,sha256=GDu4QJQQmhU7IyuFJHIh9UVThACCva-L7uoMbVD9
94
92
  swarms/structs/base_swarm.py,sha256=_pggyl32BoEq-W2Cg-03h0z9xpPT_wXFjss4Yvysoxc,24033
95
93
  swarms/structs/base_workflow.py,sha256=DTfFwX3AdFYxACDYwUDqhsbcDZnITlg5TeEYyxmJBCc,11414
96
94
  swarms/structs/concat.py,sha256=utezSxNyh1mIwXgdf8-dJ803NDPyEy79WE8zJHuooGk,732
97
- swarms/structs/concurrent_workflow.py,sha256=8myerrLcOfEDGPlfp4xYbf79qBBAzxh80zrw1Dv7OXY,15525
95
+ swarms/structs/concurrent_workflow.py,sha256=MgK6xPjwCUrLHC1UzM4O45BELnVBoomgaw6CPa_9SgQ,15526
98
96
  swarms/structs/conversation.py,sha256=7oh3x5XFyscnG1TAIMyL1BKJ4jC-unDEv-RFRVmxJO8,17966
99
97
  swarms/structs/csv_to_agent.py,sha256=ug9JqQFPguXeU9JQpSUXuVtOpHYdJhlpKJUJBovo694,9443
100
98
  swarms/structs/de_hallucination_swarm.py,sha256=Aa1kIJLmyXXrFl6qpmAq6mfkSaItQYD0MPgQ_e-nPvc,10305
101
99
  swarms/structs/deep_research_swarm.py,sha256=h4jtrcuiAKMWMYo8I7oaq6eFn8cJpqHhml58EveNbZ4,16756
100
+ swarms/structs/dynamic_conversational_swarm.py,sha256=n_d1jDCzBwiGb0QjJpW_MlXxqEkhGEhC1ttaebH7f3Q,8098
102
101
  swarms/structs/graph_swarm.py,sha256=HPHlLWwdSPSe4o-I06ZOIgtBg72a06llEnv8-aglf3Q,20962
103
102
  swarms/structs/graph_workflow.py,sha256=TAaUG_J3898hhghPOp0WEAV3Zf0in6s48ZSVbSTX-vQ,8629
104
103
  swarms/structs/groupchat.py,sha256=oLaWLuZ0ObHVXN9k3K8CpLSDSZwnCHBgJHsdGmHqAS8,15906
105
- swarms/structs/hiearchical_swarm.py,sha256=-qepZLY7RLxHlT4dU-dMEWSKnfBHEVrFr6HRn8lGh1Q,35273
106
- swarms/structs/majority_voting.py,sha256=1-FQGMxDwg5mYeoP5rXTgiXEXF8Yc4vTc93ByGoInK4,10121
104
+ swarms/structs/hiearchical_swarm.py,sha256=XDEdy5kAISmWKraMR26VX47eCT4YgGTI2FNcBQzIvLE,35274
105
+ swarms/structs/hybrid_hiearchical_peer_swarm.py,sha256=s6ievLmSo93feHB9xwHAQJIohPgLqco04dngvAFRxQw,9680
106
+ swarms/structs/majority_voting.py,sha256=F_t_MOC3YCRyMw5N6qKdFThpaXZxwixRw592Ku5Uhto,10122
107
107
  swarms/structs/malt.py,sha256=0ZOuLfOzaJ4vAVOM6J1aZ3yWAiKxfMkNIBNp8pjsEqE,19392
108
108
  swarms/structs/matrix_swarm.py,sha256=qHuhOYrTyOv6ujHMe8PrQT-h-WmaCPCfX4ghv5L8UFI,9765
109
109
  swarms/structs/meme_agent_persona_generator.py,sha256=b3kKlumhsV4KV88-GS3CUnGO1UfKTU3fT8SAMj0ZlwQ,10645
110
- swarms/structs/mixture_of_agents.py,sha256=OGCTvyRQjHk9os4ZDYixdbDIIMeLMxfseeznS9rzdko,10574
110
+ swarms/structs/mixture_of_agents.py,sha256=G8_MVMrDd0-ZD_gJ5YZgtTCUjl7COha9Me-vOYMXsAE,10575
111
111
  swarms/structs/model_router.py,sha256=V5pZHYlxSmCvAA2Gsns7LaCz8dXtRi7pCvb-oLGHYIY,12739
112
112
  swarms/structs/multi_agent_collab.py,sha256=odh2NQRR23LidsphCxUfAke369lDdgL__w3Xovu9jkA,7731
113
113
  swarms/structs/multi_agent_exec.py,sha256=NbR-CnxxBuCa0Ll3Os9wfKdkIsQiCpqsTgFX9hWRefw,17421
114
- swarms/structs/multi_agent_orchestrator.py,sha256=MsCqBGrirhbdx4aZqY_1MRa9hRqt_ZF3HLmt7JCsINI,13399
114
+ swarms/structs/multi_agent_orchestrator.py,sha256=_trjXCW31ZeVR7N2hURLUPDZhYa-Wa3ADMk1wnNJdcQ,13400
115
115
  swarms/structs/octotools.py,sha256=GZo0qtFM69W7vvewk6_k09vicgw0c0_v7MiPvEZCagE,31406
116
116
  swarms/structs/omni_agent_types.py,sha256=RdKLfZ-lXDJrEa0aJT_Rfx9TypJQo8SISqKz4fnLkAk,230
117
- swarms/structs/output_type.py,sha256=56bALerdISngZ86Q-7LLlmHZw6edAFkea2bPlKdM_oE,279
118
- swarms/structs/output_types.py,sha256=i56WfkzUR6YgP1qINJ8t-By8OVS_sdbO64IvCmV-pbM,213
117
+ swarms/structs/output_types.py,sha256=F1jNbDLJrubRIUyheMGMahJfGikbWZ_yNmbE9QVIz9A,280
119
118
  swarms/structs/pulsar_swarm.py,sha256=4_L0GqPBgnA3AJajpNLgO4IAG6U36nIntFK9WNJScv8,15968
120
119
  swarms/structs/queue_swarm.py,sha256=8vcA-rh280midcdgfA5IwJzBmMgdn71nRH6KndWu-DA,6770
121
- swarms/structs/rearrange.py,sha256=KVBZVvoTd5vA7-kzpFHHpoQWzss0NZurCI1K-QR-MJc,28638
120
+ swarms/structs/rearrange.py,sha256=_WiWNab5NFRhpeXrlO_57o2Q0j194A-6k405Gwr4hQU,28639
122
121
  swarms/structs/round_robin.py,sha256=MGk623KiN9uSxTMG6MY_BIAkvEDh1RPwyl5Min7GLOU,7573
123
122
  swarms/structs/safe_loading.py,sha256=gmYX8G9TsvAIp6OCvREBZt5mwSFc-p-t1rSnDBfhEmE,7124
124
- swarms/structs/sequential_workflow.py,sha256=B0obj_tawZjeHN6i6GWAbLFpLdJMemmpz7NutmHjOpY,8684
123
+ swarms/structs/sequential_workflow.py,sha256=KrIfR9SToNTdyBTDd3DYvXbYa3SNELxUbeYDdjVhUZo,8685
125
124
  swarms/structs/spreadsheet_swarm.py,sha256=ToX56QJjlm_nnC3MYppvKC_NTr9Zy_orkBzfxNLdwbA,14845
126
125
  swarms/structs/stopping_conditions.py,sha256=Z0Jx0U2feAfQfuVV_IJGgal62DoVsGPN8K6HkkqB_bM,484
127
126
  swarms/structs/swarm_arange.py,sha256=6fexCPsXRgdLbpY0p9rp_REipeXzsbv1_GOtD9B4HaI,15179
@@ -132,7 +131,7 @@ swarms/structs/swarm_load_balancer.py,sha256=pUCc5FEBcuJ_GmOFeTWBPfXlUdiTOjYcJqV
132
131
  swarms/structs/swarm_matcher.py,sha256=E2KwHHEJxmW-UfTeMPWZ6VCmYdQ_I9_fwrfJbxD02GY,23322
133
132
  swarms/structs/swarm_output_type.py,sha256=tW8Iqar1Jaf2Lzw66nAPc6MDk7-srQl5_XUKFvzoam4,755
134
133
  swarms/structs/swarm_registry.py,sha256=P0XRrqp1qBNyt0BycqPQljUzKv9jClaQMhtaBMinhYg,5578
135
- swarms/structs/swarm_router.py,sha256=BXdh4VR2U1E-hF0m26YJcgGSAhlsrIrGHJu6ZHym4FI,26802
134
+ swarms/structs/swarm_router.py,sha256=A7efNKGkyj_Tqjv8v-bJJVkl22zyiNBLAlJqWNFtWjM,26803
136
135
  swarms/structs/swarming_architectures.py,sha256=VvkSA9nQnF91V2C5-ALwSY1peZckeM1G4pPeQS7IVsE,13109
137
136
  swarms/structs/swarms_api.py,sha256=f-RpvfKfRK2AaapkyPN2ihXJvIGN4JWB_A7pJu4WyiU,13735
138
137
  swarms/structs/talk_hier.py,sha256=npyEuL52SCgQmMynIvGjfatNqOz4toq0EyhEtSNmQhQ,25649
@@ -142,7 +141,7 @@ swarms/structs/various_alt_swarms.py,sha256=qdBuOF31UjatlKRu-9bxwyRQzIjohRhTv_63
142
141
  swarms/structs/workspace_manager.py,sha256=t0OgUP9dDU7xS6N3mAT2PbXvjHTsUK3nf2mxppcfZ70,5473
143
142
  swarms/telemetry/__init__.py,sha256=yibtkHEbQRPUv6ir1FhDHlAO_3nwKJPQH4LjzBC2AuQ,661
144
143
  swarms/telemetry/bootup.py,sha256=tBuhOb3m7o2q7nMjb2j9v2ib5Hx2E9Oya8yff5z4zIA,1655
145
- swarms/telemetry/main.py,sha256=xVdcKlfNONtNkOkcW7lLDCr3PseT_CaJc25sFCPSFKo,8287
144
+ swarms/telemetry/main.py,sha256=ZoVvf4XInh0Q5CcfwBFj9KmpxrQjOm2Aje70CElgGZA,8420
146
145
  swarms/tools/__init__.py,sha256=pqIMcRQr4gtoNdbyI1N5k4upkYSBMxACJbxfB9yrV4c,1493
147
146
  swarms/tools/base_tool.py,sha256=BiBCFHin8AyZO3FYOGA-n3M2o-F36xUeIBUiybnZYjI,15179
148
147
  swarms/tools/cohere_func_call_schema.py,sha256=XJ6_yBMXCrV9KjN7v9Bk1iFj69TRlGIWYKsUTA1oGiQ,600
@@ -159,6 +158,7 @@ swarms/tools/py_func_to_openai_func_str.py,sha256=W112Gu0CmAiHrNWnRMcnoGiVZEy2Fx
159
158
  swarms/tools/pydantic_to_json.py,sha256=-tjUBwKVnKUWWtEGfYGLEfJbIOCrSVF-p1e6kT4_Geg,3850
160
159
  swarms/tools/tool_parse_exec.py,sha256=FW5XzkuNEs2YrroybjKChbCzDvaCs7ypknSDpYhfkd4,8717
161
160
  swarms/tools/tool_registry.py,sha256=ULZmIKBTx9XRCJRD9hwXfY3iQw9v94arw-VV6jcuftY,7992
161
+ swarms/tools/tool_schema_base_model.py,sha256=0biTGIoibsPPP3fOrkC6WvNU5vXaalyccVKC1fpO_eg,1409
162
162
  swarms/tools/tool_utils.py,sha256=yXzzqG7Ytd8ybB8bsjNUNLaXIuIp9JbbpUKCiHxQqo8,2816
163
163
  swarms/utils/__init__.py,sha256=9qKE_11pxom74j3qExSm6Z_LwR5lrpC5YG17v22eLlo,975
164
164
  swarms/utils/agent_ops_check.py,sha256=08UomeSv1uw_oEDlum0yG-5SsKkxqPRbeIWeKC75b08,685
@@ -183,8 +183,8 @@ swarms/utils/swarm_reliability_checks.py,sha256=MsgUULt3HYg72D0HifZNmtCyJYpLA2UD
183
183
  swarms/utils/try_except_wrapper.py,sha256=appEGu9Afy3TmdkNNXUgQ9yU9lj2j0uNkIoW0JhVzzY,3917
184
184
  swarms/utils/visualizer.py,sha256=0ylohEk62MAS6iPRaDOV03m9qo2k5J56tWlKJk_46p4,16927
185
185
  swarms/utils/wrapper_clusterop.py,sha256=PMSCVM7ZT1vgj1D_MYAe835RR3SMLYxA-si2JS02yNQ,4220
186
- swarms-7.6.1.dist-info/LICENSE,sha256=jwRtEmTWjLrEsvFB6QFdYs2cEeZPRMdj-UMOFkPF8_0,11363
187
- swarms-7.6.1.dist-info/METADATA,sha256=H8okUgrlI17pc34FtFetrNNoh6EXsg53OJgXKNdngGQ,105115
188
- swarms-7.6.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
189
- swarms-7.6.1.dist-info/entry_points.txt,sha256=2K0rTtfO1X1WaO-waJlXIKw5Voa_EpAL_yU0HXE2Jgc,47
190
- swarms-7.6.1.dist-info/RECORD,,
186
+ swarms-7.6.2.dist-info/LICENSE,sha256=jwRtEmTWjLrEsvFB6QFdYs2cEeZPRMdj-UMOFkPF8_0,11363
187
+ swarms-7.6.2.dist-info/METADATA,sha256=WGZDZCWtB66TM0b9VrFeXvKaD1fKdAkQi2itc4u7mkA,105115
188
+ swarms-7.6.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
189
+ swarms-7.6.2.dist-info/entry_points.txt,sha256=2K0rTtfO1X1WaO-waJlXIKw5Voa_EpAL_yU0HXE2Jgc,47
190
+ swarms-7.6.2.dist-info/RECORD,,