swarms 7.7.1__tar.gz → 7.7.2__tar.gz

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.
Files changed (190) hide show
  1. {swarms-7.7.1 → swarms-7.7.2}/PKG-INFO +1 -1
  2. {swarms-7.7.1 → swarms-7.7.2}/pyproject.toml +1 -1
  3. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/__init__.py +1 -4
  4. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/agent.py +10 -3
  5. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/conversation.py +18 -8
  6. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/swarm_router.py +1 -1
  7. {swarms-7.7.1 → swarms-7.7.2}/swarms/telemetry/main.py +12 -2
  8. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/formatter.py +15 -1
  9. swarms-7.7.1/swarms/structs/async_workflow.py +0 -818
  10. swarms-7.7.1/swarms/structs/octotools.py +0 -844
  11. swarms-7.7.1/swarms/structs/pulsar_swarm.py +0 -469
  12. swarms-7.7.1/swarms/structs/swarm_load_balancer.py +0 -344
  13. swarms-7.7.1/swarms/structs/talk_hier.py +0 -729
  14. {swarms-7.7.1 → swarms-7.7.2}/LICENSE +0 -0
  15. {swarms-7.7.1 → swarms-7.7.2}/README.md +0 -0
  16. {swarms-7.7.1 → swarms-7.7.2}/swarms/__init__.py +0 -0
  17. {swarms-7.7.1 → swarms-7.7.2}/swarms/agents/__init__.py +0 -0
  18. {swarms-7.7.1 → swarms-7.7.2}/swarms/agents/agent_judge.py +0 -0
  19. {swarms-7.7.1 → swarms-7.7.2}/swarms/agents/agent_print.py +0 -0
  20. {swarms-7.7.1 → swarms-7.7.2}/swarms/agents/ape_agent.py +0 -0
  21. {swarms-7.7.1 → swarms-7.7.2}/swarms/agents/auto_generate_swarm_config.py +0 -0
  22. {swarms-7.7.1 → swarms-7.7.2}/swarms/agents/consistency_agent.py +0 -0
  23. {swarms-7.7.1 → swarms-7.7.2}/swarms/agents/create_agents_from_yaml.py +0 -0
  24. {swarms-7.7.1 → swarms-7.7.2}/swarms/agents/flexion_agent.py +0 -0
  25. {swarms-7.7.1 → swarms-7.7.2}/swarms/agents/gkp_agent.py +0 -0
  26. {swarms-7.7.1 → swarms-7.7.2}/swarms/agents/i_agent.py +0 -0
  27. {swarms-7.7.1 → swarms-7.7.2}/swarms/agents/openai_assistant.py +0 -0
  28. {swarms-7.7.1 → swarms-7.7.2}/swarms/agents/reasoning_agents.py +0 -0
  29. {swarms-7.7.1 → swarms-7.7.2}/swarms/agents/reasoning_duo.py +0 -0
  30. {swarms-7.7.1 → swarms-7.7.2}/swarms/agents/tool_agent.py +0 -0
  31. {swarms-7.7.1 → swarms-7.7.2}/swarms/artifacts/__init__.py +0 -0
  32. {swarms-7.7.1 → swarms-7.7.2}/swarms/artifacts/main_artifact.py +0 -0
  33. {swarms-7.7.1 → swarms-7.7.2}/swarms/cli/__init__.py +0 -0
  34. {swarms-7.7.1 → swarms-7.7.2}/swarms/cli/create_agent.py +0 -0
  35. {swarms-7.7.1 → swarms-7.7.2}/swarms/cli/main.py +0 -0
  36. {swarms-7.7.1 → swarms-7.7.2}/swarms/cli/onboarding_process.py +0 -0
  37. {swarms-7.7.1 → swarms-7.7.2}/swarms/client/__init__.py +0 -0
  38. {swarms-7.7.1 → swarms-7.7.2}/swarms/client/main.py +0 -0
  39. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/__init__.py +0 -0
  40. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/accountant_swarm_prompts.py +0 -0
  41. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/ag_prompt.py +0 -0
  42. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/aga.py +0 -0
  43. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/agent_judge_prompt.py +0 -0
  44. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/agent_prompt.py +0 -0
  45. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/agent_prompts.py +0 -0
  46. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/agent_system_prompts.py +0 -0
  47. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/ai_research_team.py +0 -0
  48. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/aot_prompt.py +0 -0
  49. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/autobloggen.py +0 -0
  50. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/autoswarm.py +0 -0
  51. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/chat_prompt.py +0 -0
  52. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/code_interpreter.py +0 -0
  53. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/code_spawner.py +0 -0
  54. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/debate.py +0 -0
  55. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/documentation.py +0 -0
  56. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/education.py +0 -0
  57. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/finance_agent_prompt.py +0 -0
  58. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/finance_agent_sys_prompt.py +0 -0
  59. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/growth_agent_prompt.py +0 -0
  60. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/idea2img.py +0 -0
  61. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/legal_agent_prompt.py +0 -0
  62. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/logistics.py +0 -0
  63. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/meta_system_prompt.py +0 -0
  64. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/multi_agent_collab_prompt.py +0 -0
  65. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/multi_modal_autonomous_instruction_prompt.py +0 -0
  66. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/multi_modal_prompts.py +0 -0
  67. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/multi_modal_visual_prompts.py +0 -0
  68. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/operations_agent_prompt.py +0 -0
  69. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/paper_idea_agent.py +0 -0
  70. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/personal_stylist.py +0 -0
  71. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/product_agent_prompt.py +0 -0
  72. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/programming.py +0 -0
  73. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/project_manager.py +0 -0
  74. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/prompt.py +0 -0
  75. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/prompt_generator.py +0 -0
  76. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/prompt_generator_optimizer.py +0 -0
  77. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/python.py +0 -0
  78. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/react.py +0 -0
  79. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/reasoning_prompt.py +0 -0
  80. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/refiner_agent_prompt.py +0 -0
  81. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/sales.py +0 -0
  82. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/sales_prompts.py +0 -0
  83. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/security_team.py +0 -0
  84. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/self_operating_prompt.py +0 -0
  85. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/sop_generator_agent_prompt.py +0 -0
  86. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/summaries_prompts.py +0 -0
  87. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/support_agent_prompt.py +0 -0
  88. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/swarm_manager_agent.py +0 -0
  89. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/task_assignment_prompt.py +0 -0
  90. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/tests.py +0 -0
  91. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/tools.py +0 -0
  92. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/urban_planning.py +0 -0
  93. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/visual_cot.py +0 -0
  94. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/worker_prompt.py +0 -0
  95. {swarms-7.7.1 → swarms-7.7.2}/swarms/prompts/xray_swarm_prompt.py +0 -0
  96. {swarms-7.7.1 → swarms-7.7.2}/swarms/schemas/__init__.py +0 -0
  97. {swarms-7.7.1 → swarms-7.7.2}/swarms/schemas/agent_input_schema.py +0 -0
  98. {swarms-7.7.1 → swarms-7.7.2}/swarms/schemas/agent_step_schemas.py +0 -0
  99. {swarms-7.7.1 → swarms-7.7.2}/swarms/schemas/base_schemas.py +0 -0
  100. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/agent_builder.py +0 -0
  101. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/agent_registry.py +0 -0
  102. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/agent_roles.py +0 -0
  103. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/agent_router.py +0 -0
  104. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/agents_available.py +0 -0
  105. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/aop.py +0 -0
  106. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/auto_swarm_builder.py +0 -0
  107. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/base_structure.py +0 -0
  108. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/base_swarm.py +0 -0
  109. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/base_workflow.py +0 -0
  110. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/concat.py +0 -0
  111. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/concurrent_workflow.py +0 -0
  112. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/csv_to_agent.py +0 -0
  113. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/de_hallucination_swarm.py +0 -0
  114. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/deep_research_swarm.py +0 -0
  115. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/dynamic_conversational_swarm.py +0 -0
  116. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/graph_swarm.py +0 -0
  117. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/graph_workflow.py +0 -0
  118. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/groupchat.py +0 -0
  119. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/hiearchical_swarm.py +0 -0
  120. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/hybrid_hiearchical_peer_swarm.py +0 -0
  121. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/majority_voting.py +0 -0
  122. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/malt.py +0 -0
  123. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/matrix_swarm.py +0 -0
  124. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/meme_agent_persona_generator.py +0 -0
  125. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/mixture_of_agents.py +0 -0
  126. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/model_router.py +0 -0
  127. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/multi_agent_collab.py +0 -0
  128. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/multi_agent_exec.py +0 -0
  129. /swarms-7.7.1/swarms/structs/multi_agent_orchestrator.py → /swarms-7.7.2/swarms/structs/multi_agent_router.py +0 -0
  130. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/omni_agent_types.py +0 -0
  131. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/output_types.py +0 -0
  132. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/queue_swarm.py +0 -0
  133. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/rearrange.py +0 -0
  134. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/round_robin.py +0 -0
  135. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/safe_loading.py +0 -0
  136. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/sequential_workflow.py +0 -0
  137. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/spreadsheet_swarm.py +0 -0
  138. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/stopping_conditions.py +0 -0
  139. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/swarm_arange.py +0 -0
  140. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/swarm_builder.py +0 -0
  141. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/swarm_eval.py +0 -0
  142. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/swarm_id_generator.py +0 -0
  143. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/swarm_matcher.py +0 -0
  144. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/swarm_output_type.py +0 -0
  145. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/swarm_registry.py +0 -0
  146. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/swarming_architectures.py +0 -0
  147. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/tree_swarm.py +0 -0
  148. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/utils.py +0 -0
  149. {swarms-7.7.1 → swarms-7.7.2}/swarms/structs/various_alt_swarms.py +0 -0
  150. {swarms-7.7.1 → swarms-7.7.2}/swarms/telemetry/__init__.py +0 -0
  151. {swarms-7.7.1 → swarms-7.7.2}/swarms/telemetry/bootup.py +0 -0
  152. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/__init__.py +0 -0
  153. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/base_tool.py +0 -0
  154. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/cohere_func_call_schema.py +0 -0
  155. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/func_calling_utils.py +0 -0
  156. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/func_to_str.py +0 -0
  157. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/function_util.py +0 -0
  158. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/json_former.py +0 -0
  159. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/json_utils.py +0 -0
  160. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/logits_processor.py +0 -0
  161. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/mcp_client.py +0 -0
  162. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/mcp_integration.py +0 -0
  163. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/openai_func_calling_schema_pydantic.py +0 -0
  164. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/openai_tool_creator_decorator.py +0 -0
  165. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/py_func_to_openai_func_str.py +0 -0
  166. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/pydantic_to_json.py +0 -0
  167. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/tool_parse_exec.py +0 -0
  168. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/tool_registry.py +0 -0
  169. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/tool_schema_base_model.py +0 -0
  170. {swarms-7.7.1 → swarms-7.7.2}/swarms/tools/tool_utils.py +0 -0
  171. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/__init__.py +0 -0
  172. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/any_to_str.py +0 -0
  173. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/auto_download_check_packages.py +0 -0
  174. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/calculate_func_metrics.py +0 -0
  175. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/data_to_text.py +0 -0
  176. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/disable_logging.py +0 -0
  177. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/file_processing.py +0 -0
  178. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/function_caller_model.py +0 -0
  179. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/history_output_formatter.py +0 -0
  180. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/litellm_tokenizer.py +0 -0
  181. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/litellm_wrapper.py +0 -0
  182. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/loguru_logger.py +0 -0
  183. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/markdown_message.py +0 -0
  184. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/parse_code.py +0 -0
  185. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/pdf_to_text.py +0 -0
  186. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/str_to_dict.py +0 -0
  187. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/try_except_wrapper.py +0 -0
  188. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/visualizer.py +0 -0
  189. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/vllm_wrapper.py +0 -0
  190. {swarms-7.7.1 → swarms-7.7.2}/swarms/utils/wrapper_clusterop.py +0 -0
@@ -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
@@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
5
5
 
6
6
  [tool.poetry]
7
7
  name = "swarms"
8
- version = "7.7.1"
8
+ version = "7.7.2"
9
9
  description = "Swarms - TGSC"
10
10
  license = "MIT"
11
11
  authors = ["Kye Gomez <kye@apac.ai>"]
@@ -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",
@@ -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
@@ -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()
@@ -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: