swarms 7.7.1__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.
@@ -1,7 +1,6 @@
1
1
  from swarms.structs.agent import Agent
2
2
  from swarms.structs.agent_builder import AgentsBuilder
3
3
  from swarms.structs.agents_available import showcase_available_agents
4
- from swarms.structs.async_workflow import AsyncWorkflow
5
4
  from swarms.structs.base_structure import BaseStructure
6
5
  from swarms.structs.base_swarm import BaseSwarm
7
6
  from swarms.structs.base_workflow import BaseWorkflow
@@ -48,7 +47,7 @@ from swarms.structs.multi_agent_exec import (
48
47
  get_agents_info,
49
48
  get_swarms_info,
50
49
  )
51
- from swarms.structs.multi_agent_orchestrator import MultiAgentRouter
50
+ from swarms.structs.multi_agent_router import MultiAgentRouter
52
51
  from swarms.structs.queue_swarm import TaskQueueSwarm
53
52
  from swarms.structs.rearrange import AgentRearrange, rearrange
54
53
  from swarms.structs.round_robin import RoundRobinSwarm
@@ -83,7 +82,6 @@ from swarms.structs.swarming_architectures import (
83
82
 
84
83
  __all__ = [
85
84
  "Agent",
86
- "AsyncWorkflow",
87
85
  "BaseStructure",
88
86
  "BaseSwarm",
89
87
  "BaseWorkflow",
@@ -136,7 +134,6 @@ __all__ = [
136
134
  "run_agent_with_timeout",
137
135
  "run_agents_with_resource_monitoring",
138
136
  "swarm_router",
139
- "AsyncWorkflow",
140
137
  "run_agents_with_tasks_concurrently",
141
138
  "showcase_available_agents",
142
139
  "GroupChat",
swarms/structs/agent.py CHANGED
@@ -1194,8 +1194,7 @@ class Agent:
1194
1194
  if self.autosave is True:
1195
1195
  log_agent_data(self.to_dict())
1196
1196
 
1197
- if self.autosave is True:
1198
- self.save()
1197
+ self.save()
1199
1198
 
1200
1199
  # log_agent_data(self.to_dict())
1201
1200
 
@@ -1223,7 +1222,7 @@ class Agent:
1223
1222
  except KeyboardInterrupt as error:
1224
1223
  self._handle_run_error(error)
1225
1224
 
1226
- def _handle_run_error(self, error: any):
1225
+ def __handle_run_error(self, error: any):
1227
1226
  log_agent_data(self.to_dict())
1228
1227
 
1229
1228
  if self.autosave is True:
@@ -1234,6 +1233,14 @@ class Agent:
1234
1233
  )
1235
1234
  raise error
1236
1235
 
1236
+ def _handle_run_error(self, error: any):
1237
+ process_thread = threading.Thread(
1238
+ target=self.__handle_run_error,
1239
+ args=(error,),
1240
+ daemon=True,
1241
+ )
1242
+ process_thread.start()
1243
+
1237
1244
  async def arun(
1238
1245
  self,
1239
1246
  task: Optional[str] = None,
@@ -105,7 +105,7 @@ class Conversation(BaseStructure):
105
105
  if tokenizer is not None:
106
106
  self.truncate_memory_with_tokenizer()
107
107
 
108
- def add(
108
+ def _add(
109
109
  self,
110
110
  role: str,
111
111
  content: Union[str, dict, list],
@@ -118,8 +118,6 @@ class Conversation(BaseStructure):
118
118
  role (str): The role of the speaker (e.g., 'User', 'System').
119
119
  content (Union[str, dict, list]): The content of the message to be added.
120
120
  """
121
- now = datetime.datetime.now()
122
- now.strftime("%Y-%m-%d %H:%M:%S")
123
121
 
124
122
  # Base message with role
125
123
  message = {
@@ -131,7 +129,7 @@ class Conversation(BaseStructure):
131
129
  message["content"] = content
132
130
  elif self.time_enabled:
133
131
  message["content"] = (
134
- f"Time: {now.strftime('%Y-%m-%d %H:%M:%S')} \n {content}"
132
+ f"Time: {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')} \n {content}"
135
133
  )
136
134
  else:
137
135
  message["content"] = content
@@ -159,9 +157,21 @@ class Conversation(BaseStructure):
159
157
  True # Make thread terminate when main program exits
160
158
  )
161
159
  token_thread.start()
162
- elif self.autosave:
163
- # If token counting is disabled but autosave is enabled, save immediately
164
- self.save_as_json(self.save_filepath)
160
+
161
+ def add(self, role: str, content: Union[str, dict, list]):
162
+ """Add a message to the conversation history.
163
+
164
+ Args:
165
+ role (str): The role of the speaker (e.g., 'User', 'System').
166
+ content (Union[str, dict, list]): The content of the message to be added.
167
+ """
168
+ process_thread = threading.Thread(
169
+ target=self._add,
170
+ args=(role, content),
171
+ daemon=True,
172
+ )
173
+ process_thread.start()
174
+ # process_thread.join()
165
175
 
166
176
  def delete(self, index: str):
167
177
  """Delete a message from the conversation history.
@@ -540,7 +550,7 @@ class Conversation(BaseStructure):
540
550
  """
541
551
  return "\n".join(
542
552
  [
543
- f"{msg['role']}: {msg['content']}"
553
+ f"{msg['content']}"
544
554
  for msg in self.conversation_history[2:]
545
555
  ]
546
556
  )
@@ -13,7 +13,7 @@ from swarms.structs.groupchat import GroupChat
13
13
  from swarms.structs.hiearchical_swarm import HierarchicalSwarm
14
14
  from swarms.structs.majority_voting import MajorityVoting
15
15
  from swarms.structs.mixture_of_agents import MixtureOfAgents
16
- from swarms.structs.multi_agent_orchestrator import MultiAgentRouter
16
+ from swarms.structs.multi_agent_router import MultiAgentRouter
17
17
  from swarms.structs.rearrange import AgentRearrange
18
18
  from swarms.structs.sequential_workflow import SequentialWorkflow
19
19
  from swarms.structs.spreadsheet_swarm import SpreadSheetSwarm
swarms/telemetry/main.py CHANGED
@@ -1,4 +1,4 @@
1
- # Add these imports at the top
1
+ import threading
2
2
  import asyncio
3
3
 
4
4
 
@@ -351,7 +351,7 @@ async def log_agent_data_async(data_dict: dict):
351
351
  return None
352
352
 
353
353
 
354
- def log_agent_data(data_dict: dict):
354
+ def _log_agent_data(data_dict: dict):
355
355
  """
356
356
  Enhanced log_agent_data with both sync and async capabilities
357
357
  """
@@ -390,3 +390,13 @@ def log_agent_data(data_dict: dict):
390
390
  return response.json()
391
391
  except Exception:
392
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()
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 print_panel(
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: swarms
3
- Version: 7.7.1
3
+ Version: 7.7.2
4
4
  Summary: Swarms - TGSC
5
5
  Home-page: https://github.com/kyegomez/swarms
6
6
  License: MIT
@@ -82,22 +82,21 @@ swarms/schemas/__init__.py,sha256=EqqtVcpoptF1kfy19Wykp22ut4AA0z-yMQ5H9WB7ptA,18
82
82
  swarms/schemas/agent_input_schema.py,sha256=qhPyThMx2on91yG9mzNdP_08GpMh1IRDHDwFna29jPs,6345
83
83
  swarms/schemas/agent_step_schemas.py,sha256=a14gb58vR0xOwB_fwSJQbN6yb9HddEaT30E6hUrzEQA,2573
84
84
  swarms/schemas/base_schemas.py,sha256=UvBLVWg2qRen4tK5GJz50v42SiX95EQ5qK7hfyAHTEU,3267
85
- swarms/structs/__init__.py,sha256=gzD4B2KvKsS_WU7OOdJUlOwjAefTdhBPnBgsVz3RYCY,4247
86
- swarms/structs/agent.py,sha256=Qzg2eWwJ5lHgYYGpjeBVV3E2EazTfAWH3Owbi-OHOHo,98868
85
+ swarms/structs/__init__.py,sha256=HXWoa7nLUzPx6Cfyr3_llGcU58cIlc1OiEUVgrTqY_s,4143
86
+ swarms/structs/agent.py,sha256=Hkgo4WhEvX6ReAku-eTBzhQ405F65U2LKYHWTNF-Tlg,99049
87
87
  swarms/structs/agent_builder.py,sha256=tYNpfO4_8cgfMHfgA5DAOWffHnt70p6CLt59esqfVCY,12133
88
88
  swarms/structs/agent_registry.py,sha256=il507cO1NF-d4ChyANVLuWrN8bXsEAi8_7bLJ_sTU6A,12112
89
89
  swarms/structs/agent_roles.py,sha256=8XEw6RjOOZelaZaWt4gXaYQm5WMLEhSO7W6Z8sQjmFg,582
90
90
  swarms/structs/agent_router.py,sha256=YZw5AaK2yTvxkOA7ouED_4MoYgn0XZggvo1wrglp-4E,13017
91
91
  swarms/structs/agents_available.py,sha256=SedxDim-0IWgGsNwJZxRIUMfKyAFFXdvXSYeBNu0zGw,2804
92
92
  swarms/structs/aop.py,sha256=hmyxK0W_I1baW3EQ5U27uJjkDqNT4PHfIbWl8bvYW1I,17154
93
- swarms/structs/async_workflow.py,sha256=7YWsLPyGY-1-mMxoIXWQ0FnYH6F227nxsS9PFAJoF9Q,26214
94
93
  swarms/structs/auto_swarm_builder.py,sha256=vPM5Kq59D_FvuWJB8hxgHuEvTXsxDxovlBnHGVQsM4o,10938
95
94
  swarms/structs/base_structure.py,sha256=GDu4QJQQmhU7IyuFJHIh9UVThACCva-L7uoMbVD9l4s,15901
96
95
  swarms/structs/base_swarm.py,sha256=LSGJDPJdyUCcK6698mNtjxoC1OU3s_J2NxC2k_ccGUs,23779
97
96
  swarms/structs/base_workflow.py,sha256=DTfFwX3AdFYxACDYwUDqhsbcDZnITlg5TeEYyxmJBCc,11414
98
97
  swarms/structs/concat.py,sha256=utezSxNyh1mIwXgdf8-dJ803NDPyEy79WE8zJHuooGk,732
99
98
  swarms/structs/concurrent_workflow.py,sha256=d1_slbALpxrdEGzZffUSAcEbONW0kc7fyTpVZTBmzi4,15517
100
- swarms/structs/conversation.py,sha256=696T1QHhaZozLleQFZyeAHEcecdJpNPRB0aCkUdh6OI,18995
99
+ swarms/structs/conversation.py,sha256=i3Iqc4Wa11PQKvAv76Qs8pEr6KsGXpc70DeD2EoIrlk,19267
101
100
  swarms/structs/csv_to_agent.py,sha256=ug9JqQFPguXeU9JQpSUXuVtOpHYdJhlpKJUJBovo694,9443
102
101
  swarms/structs/de_hallucination_swarm.py,sha256=9cC0rSSXGwYu6SRDwpeMbCcQ40C1WI1RE9SNapKRLOQ,10309
103
102
  swarms/structs/deep_research_swarm.py,sha256=axhzSK43-TViQJntt2Gz2AUhAc6zoBPzj9weRmQ8yE8,16733
@@ -115,11 +114,9 @@ swarms/structs/mixture_of_agents.py,sha256=G8_MVMrDd0-ZD_gJ5YZgtTCUjl7COha9Me-vO
115
114
  swarms/structs/model_router.py,sha256=V5pZHYlxSmCvAA2Gsns7LaCz8dXtRi7pCvb-oLGHYIY,12739
116
115
  swarms/structs/multi_agent_collab.py,sha256=odh2NQRR23LidsphCxUfAke369lDdgL__w3Xovu9jkA,7731
117
116
  swarms/structs/multi_agent_exec.py,sha256=Gxwr9mHADX3n29pdxor-dQDnKPSNdnicpCxBLmPwnLg,14344
118
- swarms/structs/multi_agent_orchestrator.py,sha256=_trjXCW31ZeVR7N2hURLUPDZhYa-Wa3ADMk1wnNJdcQ,13400
119
- swarms/structs/octotools.py,sha256=GZo0qtFM69W7vvewk6_k09vicgw0c0_v7MiPvEZCagE,31406
117
+ swarms/structs/multi_agent_router.py,sha256=_trjXCW31ZeVR7N2hURLUPDZhYa-Wa3ADMk1wnNJdcQ,13400
120
118
  swarms/structs/omni_agent_types.py,sha256=RdKLfZ-lXDJrEa0aJT_Rfx9TypJQo8SISqKz4fnLkAk,230
121
119
  swarms/structs/output_types.py,sha256=F1jNbDLJrubRIUyheMGMahJfGikbWZ_yNmbE9QVIz9A,280
122
- swarms/structs/pulsar_swarm.py,sha256=4_L0GqPBgnA3AJajpNLgO4IAG6U36nIntFK9WNJScv8,15968
123
120
  swarms/structs/queue_swarm.py,sha256=8vcA-rh280midcdgfA5IwJzBmMgdn71nRH6KndWu-DA,6770
124
121
  swarms/structs/rearrange.py,sha256=5u7HwTVVH414w9rhEQvLdltW1ACHjgwn-zS8-8JEXmA,22576
125
122
  swarms/structs/round_robin.py,sha256=MGk623KiN9uSxTMG6MY_BIAkvEDh1RPwyl5Min7GLOU,7573
@@ -131,19 +128,17 @@ swarms/structs/swarm_arange.py,sha256=6fexCPsXRgdLbpY0p9rp_REipeXzsbv1_GOtD9B4Ha
131
128
  swarms/structs/swarm_builder.py,sha256=TqxD4bIE11gPZBqi_awXem5-svnQ-IJVAhRquX0ErQg,13054
132
129
  swarms/structs/swarm_eval.py,sha256=148E2R2zaCmt_LZYx15nmdFjybXHiQ2CZbl6pk77jNs,11635
133
130
  swarms/structs/swarm_id_generator.py,sha256=Wly7AtGM9e6VgzhYmfg8_gSOdxAdsOvWHJFK81cpQNQ,68
134
- swarms/structs/swarm_load_balancer.py,sha256=pUCc5FEBcuJ_GmOFeTWBPfXlUdiTOjYcJqVq_ymGHlM,11374
135
131
  swarms/structs/swarm_matcher.py,sha256=E2KwHHEJxmW-UfTeMPWZ6VCmYdQ_I9_fwrfJbxD02GY,23322
136
132
  swarms/structs/swarm_output_type.py,sha256=tW8Iqar1Jaf2Lzw66nAPc6MDk7-srQl5_XUKFvzoam4,755
137
133
  swarms/structs/swarm_registry.py,sha256=P0XRrqp1qBNyt0BycqPQljUzKv9jClaQMhtaBMinhYg,5578
138
- swarms/structs/swarm_router.py,sha256=05G0weYMUUo-20xgSeUnwCaH1lf6p1epXllI_iXo18Y,26854
134
+ swarms/structs/swarm_router.py,sha256=qSPIF7ocQcg-z1WnUXBfzGCnEmQMCpO4cxmpefpf5P4,26848
139
135
  swarms/structs/swarming_architectures.py,sha256=VvkSA9nQnF91V2C5-ALwSY1peZckeM1G4pPeQS7IVsE,13109
140
- swarms/structs/talk_hier.py,sha256=npyEuL52SCgQmMynIvGjfatNqOz4toq0EyhEtSNmQhQ,25649
141
136
  swarms/structs/tree_swarm.py,sha256=AnIxrt0KhWxAQN8uGjfCcOq-XCmsuTJiH8Ex4mXy8V8,12500
142
137
  swarms/structs/utils.py,sha256=Mo6wHQYOB8baWZUKnAJN5Dsgubpo81umNwJIEDitb2A,1873
143
138
  swarms/structs/various_alt_swarms.py,sha256=qdBuOF31UjatlKRu-9bxwyRQzIjohRhTv_63YoUeYEY,27866
144
139
  swarms/telemetry/__init__.py,sha256=yibtkHEbQRPUv6ir1FhDHlAO_3nwKJPQH4LjzBC2AuQ,661
145
140
  swarms/telemetry/bootup.py,sha256=0leCNCy5rhzL19EsOsqHWSDI85KVcWO6_5hLDS0h4sY,1155
146
- swarms/telemetry/main.py,sha256=ADJ1daQQKZpMwa9y1sAPFLrzwoY1raPgeb6p8-_3jFo,11205
141
+ swarms/telemetry/main.py,sha256=FGJ5w4YEqzqWcaGr4RnyGwGpKuGGxl_yra7alDbcNnE,11408
147
142
  swarms/tools/__init__.py,sha256=pqIMcRQr4gtoNdbyI1N5k4upkYSBMxACJbxfB9yrV4c,1493
148
143
  swarms/tools/base_tool.py,sha256=BiBCFHin8AyZO3FYOGA-n3M2o-F36xUeIBUiybnZYjI,15179
149
144
  swarms/tools/cohere_func_call_schema.py,sha256=XJ6_yBMXCrV9KjN7v9Bk1iFj69TRlGIWYKsUTA1oGiQ,600
@@ -170,7 +165,7 @@ swarms/utils/calculate_func_metrics.py,sha256=Nb5r7rWf809m5F7mWIYXZ0H_WeyGr78A2U
170
165
  swarms/utils/data_to_text.py,sha256=1PUoWokylp7MOrGNk1cmO3cJlfskdAIiImGk9ECwsKU,3427
171
166
  swarms/utils/disable_logging.py,sha256=KKPKQVfQqLPFgj03uveOoyeHOTlfEJt-yfLc3SA53Rk,2470
172
167
  swarms/utils/file_processing.py,sha256=QjQCIPTcwicQlfy656BXBYpIzMR0s2343E7ftnok5Uo,4865
173
- swarms/utils/formatter.py,sha256=YykmcuWXkxvQ7a2Vq6OzWuqUDiIwro6VrtSt4ITbXcU,4194
168
+ swarms/utils/formatter.py,sha256=e15FsyTIIkyRreMUApkkZCzJC1Sm67w5Zd6EQcUkMwA,4533
174
169
  swarms/utils/function_caller_model.py,sha256=ZfgCMzOizNnuZipYLclTziECNHszH9p8RQcUq7VNr4Q,4156
175
170
  swarms/utils/history_output_formatter.py,sha256=5Gc-FLUDTkTYfzZVbfq4EL-wAZqPN0mD3K3h62CB71k,1379
176
171
  swarms/utils/litellm_tokenizer.py,sha256=0AAj4NffBe2eHii_3_5SpQAhSiBbunJR8MzaBTIm7hg,484
@@ -184,8 +179,8 @@ swarms/utils/try_except_wrapper.py,sha256=appEGu9Afy3TmdkNNXUgQ9yU9lj2j0uNkIoW0J
184
179
  swarms/utils/visualizer.py,sha256=0ylohEk62MAS6iPRaDOV03m9qo2k5J56tWlKJk_46p4,16927
185
180
  swarms/utils/vllm_wrapper.py,sha256=OIGnU9Vf81vE_hul1FK-xEhChFK8fxqZX6-fhQeW22c,4987
186
181
  swarms/utils/wrapper_clusterop.py,sha256=PMSCVM7ZT1vgj1D_MYAe835RR3SMLYxA-si2JS02yNQ,4220
187
- swarms-7.7.1.dist-info/LICENSE,sha256=jwRtEmTWjLrEsvFB6QFdYs2cEeZPRMdj-UMOFkPF8_0,11363
188
- swarms-7.7.1.dist-info/METADATA,sha256=_rVOKIek6LO--J4jqcewJ0aRKD2t63raUHk8C9v9GXk,104909
189
- swarms-7.7.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
190
- swarms-7.7.1.dist-info/entry_points.txt,sha256=2K0rTtfO1X1WaO-waJlXIKw5Voa_EpAL_yU0HXE2Jgc,47
191
- swarms-7.7.1.dist-info/RECORD,,
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,,