open-swarm 0.1.1745275181__tar.gz → 0.1.1748636259__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 (478) hide show
  1. open_swarm-0.1.1748636259/PKG-INFO +188 -0
  2. open_swarm-0.1.1748636259/README.md +144 -0
  3. open_swarm-0.1.1748636259/pyproject.toml +62 -0
  4. open_swarm-0.1.1748636259/setup.cfg +4 -0
  5. open_swarm-0.1.1748636259/src/open_swarm.egg-info/PKG-INFO +188 -0
  6. open_swarm-0.1.1748636259/src/open_swarm.egg-info/SOURCES.txt +117 -0
  7. open_swarm-0.1.1748636259/src/open_swarm.egg-info/entry_points.txt +3 -0
  8. open_swarm-0.1.1748636259/src/open_swarm.egg-info/requires.txt +36 -0
  9. open_swarm-0.1.1748636259/src/open_swarm.egg-info/top_level.txt +1 -0
  10. open_swarm-0.1.1748636259/src/swarm/agent/agent.py +49 -0
  11. open_swarm-0.1.1748636259/src/swarm/auth.py +56 -0
  12. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/consumers.py +0 -19
  13. open_swarm-0.1.1748636259/src/swarm/extensions/blueprint/__init__.py +36 -0
  14. {open_swarm-0.1.1745275181/src/swarm/core → open_swarm-0.1.1748636259/src/swarm/extensions/blueprint}/agent_utils.py +1 -1
  15. open_swarm-0.1.1748636259/src/swarm/extensions/blueprint/blueprint_base.py +458 -0
  16. open_swarm-0.1.1748636259/src/swarm/extensions/blueprint/blueprint_discovery.py +112 -0
  17. open_swarm-0.1.1748636259/src/swarm/extensions/blueprint/output_utils.py +95 -0
  18. {open_swarm-0.1.1745275181/src/swarm/core → open_swarm-0.1.1748636259/src/swarm/extensions/blueprint}/spinner.py +21 -30
  19. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/cli/cli_args.py +0 -6
  20. open_swarm-0.1.1748636259/src/swarm/extensions/cli/commands/blueprint_management.py +31 -0
  21. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/cli/commands/config_management.py +6 -5
  22. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/cli/commands/edit_config.py +7 -16
  23. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/cli/commands/list_blueprints.py +1 -1
  24. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/cli/commands/validate_env.py +4 -11
  25. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/cli/commands/validate_envvars.py +6 -6
  26. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/cli/interactive_shell.py +2 -16
  27. open_swarm-0.1.1748636259/src/swarm/extensions/config/config_loader.py +208 -0
  28. {open_swarm-0.1.1745275181/src/swarm/core → open_swarm-0.1.1748636259/src/swarm/extensions/config}/config_manager.py +38 -50
  29. {open_swarm-0.1.1745275181/src/swarm/core → open_swarm-0.1.1748636259/src/swarm/extensions/config}/server_config.py +0 -32
  30. open_swarm-0.1.1748636259/src/swarm/extensions/launchers/build_launchers.py +14 -0
  31. open_swarm-0.1.1748636259/src/swarm/extensions/launchers/swarm_cli.py +304 -0
  32. open_swarm-0.1.1748636259/src/swarm/llm/chat_completion.py +195 -0
  33. open_swarm-0.1.1748636259/src/swarm/serializers.py +12 -0
  34. open_swarm-0.1.1748636259/src/swarm/settings.py +189 -0
  35. open_swarm-0.1.1748636259/src/swarm/urls.py +89 -0
  36. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/utils/context_utils.py +4 -10
  37. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/utils/general_utils.py +0 -21
  38. open_swarm-0.1.1748636259/src/swarm/utils/redact.py +68 -0
  39. open_swarm-0.1.1748636259/src/swarm/views/api_views.py +46 -0
  40. open_swarm-0.1.1748636259/src/swarm/views/chat_views.py +76 -0
  41. open_swarm-0.1.1748636259/src/swarm/views/core_views.py +118 -0
  42. open_swarm-0.1.1748636259/src/swarm/views/model_views.py +135 -0
  43. open_swarm-0.1.1748636259/src/swarm/views/utils.py +457 -0
  44. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/views/web_views.py +2 -2
  45. open_swarm-0.1.1748636259/tests/test_apps.py +11 -0
  46. open_swarm-0.1.1748636259/tests/test_blueprint_base.py +155 -0
  47. open_swarm-0.1.1748636259/tests/test_blueprint_base_unit.py +85 -0
  48. open_swarm-0.1.1748636259/tests/test_blueprint_discovery.py +146 -0
  49. open_swarm-0.1.1748636259/tests/test_blueprint_filter.py +24 -0
  50. open_swarm-0.1.1748636259/tests/test_blueprint_runner.py +71 -0
  51. open_swarm-0.1.1748636259/tests/test_blueprints.py +118 -0
  52. open_swarm-0.1.1748636259/tests/test_chat.py +153 -0
  53. open_swarm-0.1.1748636259/tests/test_config_loader.py +369 -0
  54. open_swarm-0.1.1748636259/tests/test_core_chatmessage.py +15 -0
  55. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/tests/test_core_truncate_message_history.py +1 -0
  56. open_swarm-0.1.1748636259/tests/test_list_models.py +104 -0
  57. open_swarm-0.1.1748636259/tests/test_message_sequence.py +102 -0
  58. open_swarm-0.1.1748636259/tests/test_models.py +58 -0
  59. open_swarm-0.1.1748636259/tests/test_openai_api_key_handling.py +34 -0
  60. open_swarm-0.1.1748636259/tests/test_redact.py +104 -0
  61. open_swarm-0.1.1748636259/tests/test_resource_timeout.py +59 -0
  62. open_swarm-0.1.1748636259/tests/test_settings.py +16 -0
  63. open_swarm-0.1.1748636259/tests/test_setup_wizard.py +113 -0
  64. open_swarm-0.1.1748636259/tests/test_swarm_init.py +66 -0
  65. open_swarm-0.1.1748636259/tests/test_swarm_types.py +36 -0
  66. open_swarm-0.1.1748636259/tests/test_util.py +16 -0
  67. open_swarm-0.1.1748636259/tests/test_utils_coverage.py +79 -0
  68. open_swarm-0.1.1748636259/tests/test_views.py +116 -0
  69. open_swarm-0.1.1748636259/tests/test_wsgi.py +10 -0
  70. open_swarm-0.1.1745275181/.gitignore +0 -200
  71. open_swarm-0.1.1745275181/PKG-INFO +0 -874
  72. open_swarm-0.1.1745275181/README.md +0 -786
  73. open_swarm-0.1.1745275181/pyproject.toml +0 -168
  74. open_swarm-0.1.1745275181/src/swarm/auth.py +0 -121
  75. open_swarm-0.1.1745275181/src/swarm/blueprints/README.md +0 -68
  76. open_swarm-0.1.1745275181/src/swarm/blueprints/blueprint_audit_status.json +0 -27
  77. open_swarm-0.1.1745275181/src/swarm/blueprints/chatbot/README.md +0 -40
  78. open_swarm-0.1.1745275181/src/swarm/blueprints/chatbot/blueprint_chatbot.py +0 -471
  79. open_swarm-0.1.1745275181/src/swarm/blueprints/chatbot/metadata.json +0 -23
  80. open_swarm-0.1.1745275181/src/swarm/blueprints/chatbot/templates/chatbot/chatbot.html +0 -33
  81. open_swarm-0.1.1745275181/src/swarm/blueprints/chucks_angels/README.md +0 -11
  82. open_swarm-0.1.1745275181/src/swarm/blueprints/chucks_angels/blueprint_chucks_angels.py +0 -7
  83. open_swarm-0.1.1745275181/src/swarm/blueprints/chucks_angels/test_basic.py +0 -3
  84. open_swarm-0.1.1745275181/src/swarm/blueprints/codey/CODEY.md +0 -15
  85. open_swarm-0.1.1745275181/src/swarm/blueprints/codey/README.md +0 -115
  86. open_swarm-0.1.1745275181/src/swarm/blueprints/codey/blueprint_codey.py +0 -1072
  87. open_swarm-0.1.1745275181/src/swarm/blueprints/codey/codey_cli.py +0 -373
  88. open_swarm-0.1.1745275181/src/swarm/blueprints/codey/instructions.md +0 -17
  89. open_swarm-0.1.1745275181/src/swarm/blueprints/codey/metadata.json +0 -23
  90. open_swarm-0.1.1745275181/src/swarm/blueprints/common/operation_box_utils.py +0 -83
  91. open_swarm-0.1.1745275181/src/swarm/blueprints/digitalbutlers/README.md +0 -11
  92. open_swarm-0.1.1745275181/src/swarm/blueprints/digitalbutlers/__init__.py +0 -1
  93. open_swarm-0.1.1745275181/src/swarm/blueprints/digitalbutlers/blueprint_digitalbutlers.py +0 -7
  94. open_swarm-0.1.1745275181/src/swarm/blueprints/digitalbutlers/test_basic.py +0 -3
  95. open_swarm-0.1.1745275181/src/swarm/blueprints/divine_code/README.md +0 -3
  96. open_swarm-0.1.1745275181/src/swarm/blueprints/divine_code/__init__.py +0 -10
  97. open_swarm-0.1.1745275181/src/swarm/blueprints/divine_code/apps.py +0 -11
  98. open_swarm-0.1.1745275181/src/swarm/blueprints/divine_code/blueprint_divine_code.py +0 -270
  99. open_swarm-0.1.1745275181/src/swarm/blueprints/django_chat/apps.py +0 -6
  100. open_swarm-0.1.1745275181/src/swarm/blueprints/django_chat/blueprint_django_chat.py +0 -268
  101. open_swarm-0.1.1745275181/src/swarm/blueprints/django_chat/templates/django_chat/django_chat_webpage.html +0 -37
  102. open_swarm-0.1.1745275181/src/swarm/blueprints/django_chat/urls.py +0 -8
  103. open_swarm-0.1.1745275181/src/swarm/blueprints/django_chat/views.py +0 -32
  104. open_swarm-0.1.1745275181/src/swarm/blueprints/echocraft/blueprint_echocraft.py +0 -384
  105. open_swarm-0.1.1745275181/src/swarm/blueprints/flock/README.md +0 -11
  106. open_swarm-0.1.1745275181/src/swarm/blueprints/flock/__init__.py +0 -8
  107. open_swarm-0.1.1745275181/src/swarm/blueprints/flock/blueprint_flock.py +0 -7
  108. open_swarm-0.1.1745275181/src/swarm/blueprints/flock/test_basic.py +0 -3
  109. open_swarm-0.1.1745275181/src/swarm/blueprints/geese/README.md +0 -10
  110. open_swarm-0.1.1745275181/src/swarm/blueprints/geese/__init__.py +0 -8
  111. open_swarm-0.1.1745275181/src/swarm/blueprints/geese/blueprint_geese.py +0 -384
  112. open_swarm-0.1.1745275181/src/swarm/blueprints/geese/geese_cli.py +0 -102
  113. open_swarm-0.1.1745275181/src/swarm/blueprints/jeeves/README.md +0 -41
  114. open_swarm-0.1.1745275181/src/swarm/blueprints/jeeves/blueprint_jeeves.py +0 -722
  115. open_swarm-0.1.1745275181/src/swarm/blueprints/jeeves/jeeves_cli.py +0 -55
  116. open_swarm-0.1.1745275181/src/swarm/blueprints/jeeves/metadata.json +0 -24
  117. open_swarm-0.1.1745275181/src/swarm/blueprints/mcp_demo/blueprint_mcp_demo.py +0 -473
  118. open_swarm-0.1.1745275181/src/swarm/blueprints/messenger/templates/messenger/messenger.html +0 -46
  119. open_swarm-0.1.1745275181/src/swarm/blueprints/mission_improbable/blueprint_mission_improbable.py +0 -423
  120. open_swarm-0.1.1745275181/src/swarm/blueprints/monkai_magic/blueprint_monkai_magic.py +0 -340
  121. open_swarm-0.1.1745275181/src/swarm/blueprints/nebula_shellz/blueprint_nebula_shellz.py +0 -265
  122. open_swarm-0.1.1745275181/src/swarm/blueprints/omniplex/blueprint_omniplex.py +0 -298
  123. open_swarm-0.1.1745275181/src/swarm/blueprints/poets/blueprint_poets.py +0 -546
  124. open_swarm-0.1.1745275181/src/swarm/blueprints/poets/poets_cli.py +0 -23
  125. open_swarm-0.1.1745275181/src/swarm/blueprints/rue_code/README.md +0 -8
  126. open_swarm-0.1.1745275181/src/swarm/blueprints/rue_code/blueprint_rue_code.py +0 -448
  127. open_swarm-0.1.1745275181/src/swarm/blueprints/rue_code/rue_code_cli.py +0 -43
  128. open_swarm-0.1.1745275181/src/swarm/blueprints/stewie/apps.py +0 -12
  129. open_swarm-0.1.1745275181/src/swarm/blueprints/stewie/blueprint_family_ties.py +0 -349
  130. open_swarm-0.1.1745275181/src/swarm/blueprints/stewie/models.py +0 -19
  131. open_swarm-0.1.1745275181/src/swarm/blueprints/stewie/serializers.py +0 -10
  132. open_swarm-0.1.1745275181/src/swarm/blueprints/stewie/settings.py +0 -17
  133. open_swarm-0.1.1745275181/src/swarm/blueprints/stewie/urls.py +0 -11
  134. open_swarm-0.1.1745275181/src/swarm/blueprints/stewie/views.py +0 -26
  135. open_swarm-0.1.1745275181/src/swarm/blueprints/suggestion/blueprint_suggestion.py +0 -222
  136. open_swarm-0.1.1745275181/src/swarm/blueprints/whinge_surf/README.md +0 -22
  137. open_swarm-0.1.1745275181/src/swarm/blueprints/whinge_surf/__init__.py +0 -1
  138. open_swarm-0.1.1745275181/src/swarm/blueprints/whinge_surf/blueprint_whinge_surf.py +0 -565
  139. open_swarm-0.1.1745275181/src/swarm/blueprints/whinge_surf/whinge_surf_cli.py +0 -99
  140. open_swarm-0.1.1745275181/src/swarm/blueprints/whiskeytango_foxtrot/apps.py +0 -11
  141. open_swarm-0.1.1745275181/src/swarm/blueprints/whiskeytango_foxtrot/blueprint_whiskeytango_foxtrot.py +0 -339
  142. open_swarm-0.1.1745275181/src/swarm/blueprints/zeus/__init__.py +0 -2
  143. open_swarm-0.1.1745275181/src/swarm/blueprints/zeus/apps.py +0 -4
  144. open_swarm-0.1.1745275181/src/swarm/blueprints/zeus/blueprint_zeus.py +0 -270
  145. open_swarm-0.1.1745275181/src/swarm/blueprints/zeus/zeus_cli.py +0 -13
  146. open_swarm-0.1.1745275181/src/swarm/cli/async_input.py +0 -65
  147. open_swarm-0.1.1745275181/src/swarm/cli/async_input_demo.py +0 -32
  148. open_swarm-0.1.1745275181/src/swarm/core/blueprint_base.py +0 -769
  149. open_swarm-0.1.1745275181/src/swarm/core/blueprint_discovery.py +0 -125
  150. open_swarm-0.1.1745275181/src/swarm/core/blueprint_runner.py +0 -59
  151. open_swarm-0.1.1745275181/src/swarm/core/blueprint_ux.py +0 -109
  152. open_swarm-0.1.1745275181/src/swarm/core/build_launchers.py +0 -15
  153. open_swarm-0.1.1745275181/src/swarm/core/cli/commands/__init__.py +0 -1
  154. open_swarm-0.1.1745275181/src/swarm/core/cli/commands/blueprint_management.py +0 -7
  155. open_swarm-0.1.1745275181/src/swarm/core/cli/interactive_shell.py +0 -14
  156. open_swarm-0.1.1745275181/src/swarm/core/cli/main.py +0 -50
  157. open_swarm-0.1.1745275181/src/swarm/core/cli/utils/__init__.py +0 -1
  158. open_swarm-0.1.1745275181/src/swarm/core/cli/utils/discover_commands.py +0 -18
  159. open_swarm-0.1.1745275181/src/swarm/core/config_loader.py +0 -122
  160. open_swarm-0.1.1745275181/src/swarm/core/output_utils.py +0 -193
  161. open_swarm-0.1.1745275181/src/swarm/core/session_logger.py +0 -42
  162. open_swarm-0.1.1745275181/src/swarm/core/slash_commands.py +0 -89
  163. open_swarm-0.1.1745275181/src/swarm/core/swarm_cli.py +0 -216
  164. open_swarm-0.1.1745275181/src/swarm/extensions/blueprint/__init__.py +0 -50
  165. open_swarm-0.1.1745275181/src/swarm/extensions/blueprint/cli_handler.py +0 -197
  166. open_swarm-0.1.1745275181/src/swarm/extensions/blueprint/runnable_blueprint.py +0 -42
  167. open_swarm-0.1.1745275181/src/swarm/extensions/cli/commands/__init__.py +0 -0
  168. open_swarm-0.1.1745275181/src/swarm/extensions/cli/commands/blueprint_management.py +0 -69
  169. open_swarm-0.1.1745275181/src/swarm/extensions/cli/utils/__init__.py +0 -1
  170. open_swarm-0.1.1745275181/src/swarm/extensions/cli/utils/async_input.py +0 -46
  171. open_swarm-0.1.1745275181/src/swarm/extensions/cli/utils/prompt_user.py +0 -3
  172. open_swarm-0.1.1745275181/src/swarm/extensions/config/config_loader.py +0 -114
  173. open_swarm-0.1.1745275181/src/swarm/extensions/launchers/swarm_api.py +0 -12
  174. open_swarm-0.1.1745275181/src/swarm/extensions/launchers/swarm_cli.py +0 -12
  175. open_swarm-0.1.1745275181/src/swarm/management/__init__.py +0 -0
  176. open_swarm-0.1.1745275181/src/swarm/management/commands/__init__.py +0 -0
  177. open_swarm-0.1.1745275181/src/swarm/management/commands/runserver.py +0 -58
  178. open_swarm-0.1.1745275181/src/swarm/middleware.py +0 -65
  179. open_swarm-0.1.1745275181/src/swarm/migrations/__init__.py +0 -0
  180. open_swarm-0.1.1745275181/src/swarm/permissions.py +0 -38
  181. open_swarm-0.1.1745275181/src/swarm/serializers.py +0 -103
  182. open_swarm-0.1.1745275181/src/swarm/settings.py +0 -177
  183. open_swarm-0.1.1745275181/src/swarm/static/contrib/fonts/fontawesome-webfont.ttf +0 -7
  184. open_swarm-0.1.1745275181/src/swarm/static/contrib/fonts/fontawesome-webfont.woff +0 -7
  185. open_swarm-0.1.1745275181/src/swarm/static/contrib/fonts/fontawesome-webfont.woff2 +0 -7
  186. open_swarm-0.1.1745275181/src/swarm/static/contrib/markedjs/marked.min.js +0 -6
  187. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/adjustments-horizontal.svg +0 -27
  188. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/alert-triangle.svg +0 -21
  189. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/archive.svg +0 -21
  190. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/artboard.svg +0 -27
  191. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/automatic-gearbox.svg +0 -23
  192. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/box-multiple.svg +0 -19
  193. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/carambola.svg +0 -19
  194. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/copy.svg +0 -20
  195. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/download.svg +0 -21
  196. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/edit.svg +0 -21
  197. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/filled/carambola.svg +0 -13
  198. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/filled/paint.svg +0 -13
  199. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/headset.svg +0 -22
  200. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/layout-sidebar-left-collapse.svg +0 -21
  201. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/layout-sidebar-left-expand.svg +0 -21
  202. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/layout-sidebar-right-collapse.svg +0 -21
  203. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/layout-sidebar-right-expand.svg +0 -21
  204. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/message-chatbot.svg +0 -22
  205. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/message-star.svg +0 -22
  206. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/message-x.svg +0 -23
  207. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/message.svg +0 -21
  208. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/paperclip.svg +0 -18
  209. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/playlist-add.svg +0 -22
  210. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/robot.svg +0 -26
  211. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/search.svg +0 -19
  212. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/settings.svg +0 -20
  213. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/thumb-down.svg +0 -19
  214. open_swarm-0.1.1745275181/src/swarm/static/contrib/tabler-icons/thumb-up.svg +0 -19
  215. open_swarm-0.1.1745275181/src/swarm/static/css/dropdown.css +0 -22
  216. open_swarm-0.1.1745275181/src/swarm/static/htmx/htmx.min.js +0 -0
  217. open_swarm-0.1.1745275181/src/swarm/static/js/dropdown.js +0 -23
  218. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/base.css +0 -470
  219. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/chat-history.css +0 -286
  220. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/chat.css +0 -251
  221. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/chatbot.css +0 -74
  222. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/chatgpt.css +0 -62
  223. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/colors/corporate.css +0 -74
  224. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/colors/pastel.css +0 -81
  225. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/colors/tropical.css +0 -82
  226. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/general.css +0 -142
  227. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/layout.css +0 -167
  228. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/layouts/messenger-layout.css +0 -17
  229. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/layouts/minimalist-layout.css +0 -57
  230. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/layouts/mobile-layout.css +0 -8
  231. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/messages.css +0 -84
  232. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/messenger.css +0 -135
  233. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/settings.css +0 -91
  234. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/simple.css +0 -44
  235. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/slack.css +0 -58
  236. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/style.css +0 -156
  237. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/theme.css +0 -30
  238. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/css/toast.css +0 -40
  239. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/auth.js +0 -9
  240. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/blueprint.js +0 -41
  241. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/blueprintUtils.js +0 -12
  242. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/chatLogic.js +0 -79
  243. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/debug.js +0 -63
  244. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/events.js +0 -98
  245. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/main.js +0 -19
  246. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/messages.js +0 -264
  247. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/messengerLogic.js +0 -355
  248. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/modules/apiService.js +0 -84
  249. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/modules/blueprintManager.js +0 -162
  250. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/modules/chatHistory.js +0 -110
  251. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/modules/debugLogger.js +0 -14
  252. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/modules/eventHandlers.js +0 -107
  253. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/modules/messageProcessor.js +0 -120
  254. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/modules/state.js +0 -7
  255. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/modules/userInteractions.js +0 -29
  256. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/modules/validation.js +0 -23
  257. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/rendering.js +0 -119
  258. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/settings.js +0 -130
  259. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/sidebar.js +0 -94
  260. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/simpleLogic.js +0 -37
  261. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/slackLogic.js +0 -66
  262. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/splash.js +0 -76
  263. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/theme.js +0 -111
  264. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/toast.js +0 -36
  265. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/ui.js +0 -265
  266. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/js/validation.js +0 -57
  267. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/animated_spinner.svg +0 -12
  268. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/arrow_down.svg +0 -5
  269. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/arrow_left.svg +0 -5
  270. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/arrow_right.svg +0 -5
  271. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/arrow_up.svg +0 -5
  272. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/attach.svg +0 -8
  273. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/avatar.svg +0 -7
  274. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/canvas.svg +0 -6
  275. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/chat_history.svg +0 -4
  276. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/close.svg +0 -5
  277. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/copy.svg +0 -4
  278. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/dark_mode.svg +0 -3
  279. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/edit.svg +0 -5
  280. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/layout.svg +0 -9
  281. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/logo.svg +0 -29
  282. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/logout.svg +0 -5
  283. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/mobile.svg +0 -5
  284. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/new_chat.svg +0 -4
  285. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/not_visible.svg +0 -5
  286. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/plus.svg +0 -7
  287. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/run_code.svg +0 -6
  288. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/save.svg +0 -4
  289. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/search.svg +0 -6
  290. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/settings.svg +0 -4
  291. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/speaker.svg +0 -5
  292. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/stop.svg +0 -6
  293. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/thumbs_down.svg +0 -3
  294. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/thumbs_up.svg +0 -3
  295. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/toggle_off.svg +0 -6
  296. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/toggle_on.svg +0 -6
  297. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/trash.svg +0 -10
  298. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/undo.svg +0 -3
  299. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/visible.svg +0 -8
  300. open_swarm-0.1.1745275181/src/swarm/static/rest_mode/svg/voice.svg +0 -10
  301. open_swarm-0.1.1745275181/src/swarm/templates/account/login.html +0 -22
  302. open_swarm-0.1.1745275181/src/swarm/templates/account/signup.html +0 -32
  303. open_swarm-0.1.1745275181/src/swarm/templates/base.html +0 -30
  304. open_swarm-0.1.1745275181/src/swarm/templates/chat.html +0 -43
  305. open_swarm-0.1.1745275181/src/swarm/templates/index.html +0 -35
  306. open_swarm-0.1.1745275181/src/swarm/templates/rest_mode/components/chat_sidebar.html +0 -55
  307. open_swarm-0.1.1745275181/src/swarm/templates/rest_mode/components/header.html +0 -45
  308. open_swarm-0.1.1745275181/src/swarm/templates/rest_mode/components/main_chat_pane.html +0 -41
  309. open_swarm-0.1.1745275181/src/swarm/templates/rest_mode/components/settings_dialog.html +0 -97
  310. open_swarm-0.1.1745275181/src/swarm/templates/rest_mode/components/splash_screen.html +0 -7
  311. open_swarm-0.1.1745275181/src/swarm/templates/rest_mode/components/top_bar.html +0 -28
  312. open_swarm-0.1.1745275181/src/swarm/templates/rest_mode/message_ui.html +0 -50
  313. open_swarm-0.1.1745275181/src/swarm/templates/rest_mode/slackbot.html +0 -30
  314. open_swarm-0.1.1745275181/src/swarm/templates/simple_blueprint_page.html +0 -24
  315. open_swarm-0.1.1745275181/src/swarm/templates/websocket_partials/final_system_message.html +0 -3
  316. open_swarm-0.1.1745275181/src/swarm/templates/websocket_partials/system_message.html +0 -4
  317. open_swarm-0.1.1745275181/src/swarm/templates/websocket_partials/user_message.html +0 -5
  318. open_swarm-0.1.1745275181/src/swarm/urls.py +0 -72
  319. open_swarm-0.1.1745275181/src/swarm/utils/ansi_box.py +0 -34
  320. open_swarm-0.1.1745275181/src/swarm/utils/disable_tracing.py +0 -38
  321. open_swarm-0.1.1745275181/src/swarm/utils/log_utils.py +0 -63
  322. open_swarm-0.1.1745275181/src/swarm/utils/openai_patch.py +0 -33
  323. open_swarm-0.1.1745275181/src/swarm/utils/redact.py +0 -55
  324. open_swarm-0.1.1745275181/src/swarm/ux/ansi_box.py +0 -43
  325. open_swarm-0.1.1745275181/src/swarm/ux/spinner.py +0 -53
  326. open_swarm-0.1.1745275181/src/swarm/views/api_views.py +0 -55
  327. open_swarm-0.1.1745275181/src/swarm/views/chat_views.py +0 -243
  328. open_swarm-0.1.1745275181/src/swarm/views/core_views.py +0 -111
  329. open_swarm-0.1.1745275181/src/swarm/views/model_views.py +0 -78
  330. open_swarm-0.1.1745275181/src/swarm/views/utils.py +0 -81
  331. open_swarm-0.1.1745275181/tests/__init__.py +0 -0
  332. open_swarm-0.1.1745275181/tests/api/conftest.py +0 -32
  333. open_swarm-0.1.1745275181/tests/api/test_chat_completions_auth_async.py +0 -175
  334. open_swarm-0.1.1745275181/tests/api/test_chat_completions_failing_async.py +0 -152
  335. open_swarm-0.1.1745275181/tests/api/test_chat_completions_validation_async.py +0 -166
  336. open_swarm-0.1.1745275181/tests/blueprints/test_chatbot.py +0 -89
  337. open_swarm-0.1.1745275181/tests/blueprints/test_codey.py +0 -42
  338. open_swarm-0.1.1745275181/tests/blueprints/test_codey_approval_mode.py +0 -84
  339. open_swarm-0.1.1745275181/tests/blueprints/test_codey_blueprint.py +0 -132
  340. open_swarm-0.1.1745275181/tests/blueprints/test_codey_blueprint_full.py +0 -344
  341. open_swarm-0.1.1745275181/tests/blueprints/test_codey_context.py +0 -40
  342. open_swarm-0.1.1745275181/tests/blueprints/test_codey_feedback.py +0 -20
  343. open_swarm-0.1.1745275181/tests/blueprints/test_codey_github.py +0 -47
  344. open_swarm-0.1.1745275181/tests/blueprints/test_codey_history.py +0 -42
  345. open_swarm-0.1.1745275181/tests/blueprints/test_codey_instructions.py +0 -37
  346. open_swarm-0.1.1745275181/tests/blueprints/test_codey_invalid_model.py +0 -55
  347. open_swarm-0.1.1745275181/tests/blueprints/test_codey_output.py +0 -23
  348. open_swarm-0.1.1745275181/tests/blueprints/test_codey_spinner_and_box.py +0 -59
  349. open_swarm-0.1.1745275181/tests/blueprints/test_dilbot_universe.py +0 -74
  350. open_swarm-0.1.1745275181/tests/blueprints/test_divine_code.py +0 -83
  351. open_swarm-0.1.1745275181/tests/blueprints/test_echocraft.py +0 -76
  352. open_swarm-0.1.1745275181/tests/blueprints/test_family_ties.py +0 -46
  353. open_swarm-0.1.1745275181/tests/blueprints/test_gaggle.py.disabled +0 -88
  354. open_swarm-0.1.1745275181/tests/blueprints/test_geese.py +0 -505
  355. open_swarm-0.1.1745275181/tests/blueprints/test_geese_agent_mcp_assignment.py +0 -50
  356. open_swarm-0.1.1745275181/tests/blueprints/test_geese_spinner_and_box.py +0 -126
  357. open_swarm-0.1.1745275181/tests/blueprints/test_gotchaman.py +0 -56
  358. open_swarm-0.1.1745275181/tests/blueprints/test_jeeves.py +0 -64
  359. open_swarm-0.1.1745275181/tests/blueprints/test_jeeves_progressive_tool.py +0 -41
  360. open_swarm-0.1.1745275181/tests/blueprints/test_jeeves_spinner_and_box.py +0 -60
  361. open_swarm-0.1.1745275181/tests/blueprints/test_mcp_demo.py +0 -127
  362. open_swarm-0.1.1745275181/tests/blueprints/test_mission_improbable.py +0 -85
  363. open_swarm-0.1.1745275181/tests/blueprints/test_monkai_magic.py +0 -67
  364. open_swarm-0.1.1745275181/tests/blueprints/test_nebula_shellz.py +0 -25
  365. open_swarm-0.1.1745275181/tests/blueprints/test_omniplex.py +0 -62
  366. open_swarm-0.1.1745275181/tests/blueprints/test_poets.py +0 -83
  367. open_swarm-0.1.1745275181/tests/blueprints/test_rue_code_cost.py +0 -12
  368. open_swarm-0.1.1745275181/tests/blueprints/test_rue_code_spinner_and_box.py +0 -62
  369. open_swarm-0.1.1745275181/tests/blueprints/test_suggestion.py +0 -63
  370. open_swarm-0.1.1745275181/tests/blueprints/test_whinge_surf.py +0 -61
  371. open_swarm-0.1.1745275181/tests/blueprints/test_whinge_surf_analysis.py +0 -8
  372. open_swarm-0.1.1745275181/tests/blueprints/test_whinge_surf_spinner_and_box.py +0 -38
  373. open_swarm-0.1.1745275181/tests/blueprints/test_whiskeytangofoxtrot.py +0 -101
  374. open_swarm-0.1.1745275181/tests/blueprints/test_zeus.py +0 -7
  375. open_swarm-0.1.1745275181/tests/blueprints/test_zeus_cli.py +0 -26
  376. open_swarm-0.1.1745275181/tests/blueprints/test_zeus_spinner_and_box.py +0 -55
  377. open_swarm-0.1.1745275181/tests/cli/test_cli_config.py +0 -108
  378. open_swarm-0.1.1745275181/tests/cli/test_launchers.py +0 -205
  379. open_swarm-0.1.1745275181/tests/cli/test_list_blueprints.py +0 -24
  380. open_swarm-0.1.1745275181/tests/conftest.py +0 -78
  381. open_swarm-0.1.1745275181/tests/core/test_blueprint_model_override.py +0 -47
  382. open_swarm-0.1.1745275181/tests/core/test_config_default_generation.py +0 -27
  383. open_swarm-0.1.1745275181/tests/core/test_config_discovery.py +0 -32
  384. open_swarm-0.1.1745275181/tests/core/test_config_loader.py +0 -96
  385. open_swarm-0.1.1745275181/tests/core/test_fallback_to_default_model.py +0 -23
  386. open_swarm-0.1.1745275181/tests/core/test_mcp_server_config.py +0 -58
  387. open_swarm-0.1.1745275181/tests/core/test_redact_sensitive_data.py +0 -45
  388. open_swarm-0.1.1745275181/tests/extensions/launchers/test_swarm_api_launcher.py +0 -129
  389. open_swarm-0.1.1745275181/tests/integration/test_cli_codey.py +0 -41
  390. open_swarm-0.1.1745275181/tests/integration/test_cli_commands.py +0 -53
  391. open_swarm-0.1.1745275181/tests/integration/test_cli_geese.py +0 -49
  392. open_swarm-0.1.1745275181/tests/integration/test_cli_jeeves.py +0 -41
  393. open_swarm-0.1.1745275181/tests/integration/test_cli_rue_code.py +0 -47
  394. open_swarm-0.1.1745275181/tests/integration/test_cli_whinge.py +0 -15
  395. open_swarm-0.1.1745275181/tests/integration/test_cli_zeus.py +0 -13
  396. open_swarm-0.1.1745275181/tests/manual/test_blueprintbase_init.py +0 -14
  397. open_swarm-0.1.1745275181/tests/swarm_config.json +0 -242
  398. open_swarm-0.1.1745275181/tests/system/test_chucks_angels.sh +0 -2
  399. open_swarm-0.1.1745275181/tests/system/test_codey_binary.py +0 -13
  400. open_swarm-0.1.1745275181/tests/system/test_digitalbutlers.sh +0 -1
  401. open_swarm-0.1.1745275181/tests/system/test_dilbot_universe.sh +0 -2
  402. open_swarm-0.1.1745275181/tests/system/test_divine_code.sh +0 -2
  403. open_swarm-0.1.1745275181/tests/system/test_django_chat.sh +0 -2
  404. open_swarm-0.1.1745275181/tests/system/test_echocraft.sh +0 -2
  405. open_swarm-0.1.1745275181/tests/system/test_family_ties.sh +0 -2
  406. open_swarm-0.1.1745275181/tests/system/test_flock.sh +0 -2
  407. open_swarm-0.1.1745275181/tests/system/test_gaggle.sh +0 -2
  408. open_swarm-0.1.1745275181/tests/system/test_gotchaman.sh +0 -2
  409. open_swarm-0.1.1745275181/tests/system/test_monkai-magic.sh +0 -2
  410. open_swarm-0.1.1745275181/tests/system/test_nebula_shellz.sh +0 -2
  411. open_swarm-0.1.1745275181/tests/system/test_omniplex.sh +0 -2
  412. open_swarm-0.1.1745275181/tests/system/test_poets.sh +0 -2
  413. open_swarm-0.1.1745275181/tests/system/test_rue-code.sh +0 -2
  414. open_swarm-0.1.1745275181/tests/system/test_rue_code_binary.py +0 -13
  415. open_swarm-0.1.1745275181/tests/system/test_suggestion.sh +0 -2
  416. open_swarm-0.1.1745275181/tests/system/test_university.sh +0 -2
  417. open_swarm-0.1.1745275181/tests/system/test_whinge_binary.py +0 -13
  418. open_swarm-0.1.1745275181/tests/system/test_whiskeytango_foxtrot.sh +0 -2
  419. open_swarm-0.1.1745275181/tests/system/test_zeus.sh +0 -3
  420. open_swarm-0.1.1745275181/tests/system/test_zeus_binary.py +0 -13
  421. open_swarm-0.1.1745275181/tests/unit/blueprints/rue_code/test_rue_code_tools.py +0 -78
  422. open_swarm-0.1.1745275181/tests/unit/test_ansi_box.py +0 -16
  423. open_swarm-0.1.1745275181/tests/unit/test_blueprint_base_config.py +0 -150
  424. open_swarm-0.1.1745275181/tests/unit/test_operation_box_utils.py +0 -71
  425. open_swarm-0.1.1745275181/tests/unit/test_output_utils.py +0 -36
  426. open_swarm-0.1.1745275181/tests/unit/test_redact.py +0 -39
  427. open_swarm-0.1.1745275181/tests/unit/test_slash_commands.py +0 -45
  428. open_swarm-0.1.1745275181/tests/unit/test_spinner.py +0 -17
  429. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/LICENSE +0 -0
  430. /open_swarm-0.1.1745275181/src/swarm/core/cli/__init__.py → /open_swarm-0.1.1748636259/src/open_swarm.egg-info/dependency_links.txt +0 -0
  431. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/__init__.py +0 -0
  432. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/agent/__init__.py +0 -0
  433. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/apps.py +0 -0
  434. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/__init__.py +0 -0
  435. {open_swarm-0.1.1745275181/src/swarm/core → open_swarm-0.1.1748636259/src/swarm/extensions/blueprint}/blueprint_utils.py +0 -0
  436. {open_swarm-0.1.1745275181/src/swarm/core → open_swarm-0.1.1748636259/src/swarm/extensions/blueprint}/common_utils.py +0 -0
  437. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/blueprint/django_utils.py +0 -0
  438. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/blueprint/interactive_mode.py +0 -0
  439. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/blueprint/modes/rest_mode.py +0 -0
  440. {open_swarm-0.1.1745275181/src/swarm/blueprints/rue_code → open_swarm-0.1.1748636259/src/swarm/extensions/cli}/__init__.py +0 -0
  441. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/cli/blueprint_runner.py +0 -0
  442. {open_swarm-0.1.1745275181/src/swarm/blueprints/whiskeytango_foxtrot → open_swarm-0.1.1748636259/src/swarm/extensions/cli/commands}/__init__.py +0 -0
  443. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/cli/main.py +0 -0
  444. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/cli/selection.py +0 -0
  445. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/cli/utils/discover_commands.py +0 -0
  446. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/cli/utils/env_setup.py +0 -0
  447. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/cli/utils.py +0 -0
  448. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/config/__init__.py +0 -0
  449. {open_swarm-0.1.1745275181/src/swarm/core → open_swarm-0.1.1748636259/src/swarm/extensions/config}/setup_wizard.py +0 -0
  450. {open_swarm-0.1.1745275181/src/swarm/core → open_swarm-0.1.1748636259/src/swarm/extensions/config}/utils/__init__.py +0 -0
  451. {open_swarm-0.1.1745275181/src/swarm/core → open_swarm-0.1.1748636259/src/swarm/extensions/config}/utils/logger.py +0 -0
  452. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/extensions/launchers/__init__.py +0 -0
  453. {open_swarm-0.1.1745275181/src/swarm/core → open_swarm-0.1.1748636259/src/swarm/extensions/launchers}/build_swarm_wrapper.py +0 -0
  454. {open_swarm-0.1.1745275181/src/swarm/core → open_swarm-0.1.1748636259/src/swarm/extensions/launchers}/swarm_api.py +0 -0
  455. {open_swarm-0.1.1745275181/src/swarm/core → open_swarm-0.1.1748636259/src/swarm/extensions/launchers}/swarm_wrapper.py +0 -0
  456. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/messages.py +0 -0
  457. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/migrations/0010_initial_chat_models.py +0 -0
  458. {open_swarm-0.1.1745275181/src/swarm/extensions/cli → open_swarm-0.1.1748636259/src/swarm/migrations}/__init__.py +0 -0
  459. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/models.py +0 -0
  460. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/repl/__init__.py +0 -0
  461. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/repl/repl.py +0 -0
  462. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/tool_executor.py +0 -0
  463. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/util.py +0 -0
  464. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/utils/color_utils.py +0 -0
  465. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/utils/logger.py +0 -0
  466. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/utils/logger_setup.py +0 -0
  467. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/utils/message_sequence.py +0 -0
  468. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/utils/message_utils.py +0 -0
  469. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/views/__init__.py +0 -0
  470. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/views/message_views.py +0 -0
  471. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/src/swarm/wsgi.py +0 -0
  472. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/tests/test_blueprint_loading.py +0 -0
  473. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/tests/test_cli_mode_selection.py +0 -0
  474. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/tests/test_core_filter_duplicate_system_messages.py +0 -0
  475. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/tests/test_core_filter_messages.py +0 -0
  476. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/tests/test_core_update_null_content.py +0 -0
  477. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/tests/test_dummy.py +0 -0
  478. {open_swarm-0.1.1745275181 → open_swarm-0.1.1748636259}/tests/test_truncate_message_history.py +0 -0
@@ -0,0 +1,188 @@
1
+ Metadata-Version: 2.4
2
+ Name: open-swarm
3
+ Version: 0.1.1748636259
4
+ Summary: A tool for orchestrating Swarm using both CLI and API.
5
+ Author-email: Matthew Hand <matthewhandau@gmail.com>
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: aiofiles>=24.1.0
10
+ Requires-Dist: aiohttp>=3.11.11
11
+ Requires-Dist: asyncio>=3.4.3
12
+ Requires-Dist: asynctest>=0.13.0
13
+ Requires-Dist: channels>=4.2.0
14
+ Requires-Dist: colorama>=0.4.6
15
+ Requires-Dist: django<5.0,>=4.2
16
+ Requires-Dist: django-allauth>=65.3.1
17
+ Requires-Dist: django-template-debug>=0.3.5
18
+ Requires-Dist: djangorestframework>=3.15.2
19
+ Requires-Dist: flask>=3.1.0
20
+ Requires-Dist: jmespath>=1.0.1
21
+ Requires-Dist: jsonschema-pydantic>=0.6
22
+ Requires-Dist: mcp>=1.2.0
23
+ Requires-Dist: openai>=1.58.1
24
+ Requires-Dist: python-dotenv>=1.0.1
25
+ Requires-Dist: redis>=5.2.1
26
+ Requires-Dist: requests>=2.32.3
27
+ Requires-Dist: whitenoise>=6.8.2
28
+ Requires-Dist: drf-spectacular>=0.23.0
29
+ Requires-Dist: pyinstaller>=6.12.0
30
+ Requires-Dist: tiktoken>=0.9.0
31
+ Requires-Dist: django-cors-headers>=4.7.0
32
+ Requires-Dist: cachetools>=5.5.2
33
+ Requires-Dist: openai-agents
34
+ Provides-Extra: dev
35
+ Requires-Dist: pytest>=8.3.4; extra == "dev"
36
+ Requires-Dist: pytest-asyncio>=0.25.1; extra == "dev"
37
+ Requires-Dist: pytest-cov>=6.0.0; extra == "dev"
38
+ Requires-Dist: pytest-django>=4.9.0; extra == "dev"
39
+ Requires-Dist: pytest-mock>=3.14.0; extra == "dev"
40
+ Requires-Dist: python-semantic-release>=9.20.0; extra == "dev"
41
+ Provides-Extra: experimental
42
+ Requires-Dist: nemoguardrails>=0.11.0; extra == "experimental"
43
+ Dynamic: license-file
44
+
45
+ Open-Swarm Update - 20250328
46
+
47
+ This project is now repurposed due to OpenAI officially supporting the Swarm framework under the new name "openai-agents(-python)".
48
+
49
+ Open-swarm now utilizes the openai-agents framework for enhanced capabilities, and the MCP logic has been offloaded to the openai-agents framework.
50
+
51
+ Key focus areas of this open-swarm framework include:
52
+ - **Blueprints**: A blueprint can be converted into an OpenAI-compatible REST endpoint (analogous to `/v1/chat/completions`, but with agents) and/or into CLI utilities on the shell.
53
+ - **Config Loader**: Blueprints and configuration management form a core aspect of the project.
54
+
55
+ Installation:
56
+ -------------
57
+ Open-swarm is available via PyPI. To install, run:
58
+ ```
59
+ pip install open-swarm
60
+ ```
61
+
62
+ Usage:
63
+ ------
64
+ In development, after cloning the repository (`github.com/matthewhand/open-swarm`), you can run a blueprint directly with:
65
+ ```
66
+ uv run blueprints/mcp_demo/blueprint_mcp_demo.py
67
+ ```
68
+
69
+ To run the blueprint with a specific instruction (for example, to list its tools), execute:
70
+ ```
71
+ uv run blueprints/mcp_demo/blueprint_mcp_demo.py --instruction "list your tools"
72
+ ```
73
+
74
+ Alternatively, you can run the blueprint as an API endpoint using the swarm-api utility:
75
+ ```
76
+ swarm-api --blueprint mcp_demo
77
+ ```
78
+
79
+ In production, you can use the swarm-cli utility to manage and run blueprints. For example, to add an example blueprint:
80
+ ```
81
+ swarm-cli add github:matthewhand/open-swarm/blueprints/mcp_demo
82
+ ```
83
+ This command saves the blueprint to:
84
+ ```
85
+ ~/.swarm/blueprints/mcp_demo/
86
+ ```
87
+ After adding the blueprint, you can convert it into a standalone CLI utility with:
88
+ ```
89
+ swarm-cli install mcp_demo
90
+ ```
91
+
92
+ Building a Basic Blueprint & Config File:
93
+ ------------------------------------------
94
+ You can create your own blueprint to extend open-swarm's capabilities. Here is a walkthrough:
95
+
96
+ 1. **Create a Blueprint File:**
97
+ - In the `blueprints/` directory, create a new Python file, for example `blueprints/my_blueprint.py`.
98
+ - Define a new class that inherits from `BlueprintBase` and implement the required abstract methods, such as `metadata` and `create_agents()`. For instance:
99
+ ```
100
+ from swarm.extensions.blueprint.blueprint_base import BlueprintBase
101
+
102
+ class MyBlueprint(BlueprintBase):
103
+ @property
104
+ def metadata(self):
105
+ return {
106
+ "title": "MyBlueprint",
107
+ "env_vars": [],
108
+ "required_mcp_servers": [],
109
+ "max_context_tokens": 8000,
110
+ "max_context_messages": 50
111
+ }
112
+
113
+ def create_agents(self):
114
+ # Create and return agents as a dictionary.
115
+ return {"MyAgent": ...} # Implement your agent creation logic here.
116
+
117
+ if __name__ == "__main__":
118
+ MyBlueprint.main()
119
+ ```
120
+
121
+ 2. **Create a Configuration File:**
122
+ - Create a configuration file (e.g., `swarm_config.json`) at the root of the project. This file can include settings for LLM models and MCP servers. For example:
123
+ ```
124
+ {
125
+ "llm": {
126
+ "default": {
127
+ "provider": "openai",
128
+ "model": "gpt-4",
129
+ "api_key": "your-openai-api-key",
130
+ "base_url": null
131
+ }
132
+ },
133
+ "mcpServers": {
134
+ "mcp_llms_txt_server": {
135
+ "command": "echo",
136
+ "args": [],
137
+ "env": {}
138
+ },
139
+ "everything_server": {
140
+ "command": "echo",
141
+ "args": [],
142
+ "env": {}
143
+ }
144
+ }
145
+ }
146
+ ```
147
+
148
+ 3. **Running Your Blueprint:**
149
+ - To run your blueprint in development mode, use:
150
+ ```
151
+ uv run blueprints/my_blueprint.py
152
+ ```
153
+ - Ensure your configuration file is properly loaded by your blueprint (this might require modifications in your blueprint's initialization logic or passing a `--config` parameter).
154
+
155
+ Installation & Deployment via swarm-cli:
156
+ --------------------------------------------
157
+ After creating your blueprint and config file, you can manage it with the swarm-cli utility. For example:
158
+ - **Adding your blueprint:**
159
+ ```
160
+ swarm-cli add github:matthewhand/open-swarm/blueprints/my_blueprint
161
+ ```
162
+ - **Installing as a standalone CLI utility:**
163
+ ```
164
+ swarm-cli install my_blueprint
165
+ ```
166
+
167
+ Examples:
168
+ ---------
169
+ **Blueprint "mcp_demo":**
170
+
171
+ The blueprint located in `blueprints/mcp_demo` demonstrates a key design principle:
172
+ - It creates a primary agent named **Sage** that leverages the MCP framework to incorporate external capabilities.
173
+ - **Sage** uses another agent, **Explorer**, as a tool to extend its functionality.
174
+
175
+ This hierarchical agent design illustrates how blueprints can compose agents that call on subagents as tools. This model serves as a prototype for creating powerful agent-driven workflows and can be deployed both as a REST endpoint and as a CLI tool.
176
+
177
+ Production Environment:
178
+ -----------------------
179
+ After installing the package via pip, you can manage blueprints with `swarm-cli` and launch them as standalone utilities or REST services.
180
+
181
+ For help with swarm-cli:
182
+ ```
183
+ swarm-cli --help
184
+ ```
185
+
186
+ For help with swarm-api:
187
+ ```
188
+ swarm-api --help
@@ -0,0 +1,144 @@
1
+ Open-Swarm Update - 20250328
2
+
3
+ This project is now repurposed due to OpenAI officially supporting the Swarm framework under the new name "openai-agents(-python)".
4
+
5
+ Open-swarm now utilizes the openai-agents framework for enhanced capabilities, and the MCP logic has been offloaded to the openai-agents framework.
6
+
7
+ Key focus areas of this open-swarm framework include:
8
+ - **Blueprints**: A blueprint can be converted into an OpenAI-compatible REST endpoint (analogous to `/v1/chat/completions`, but with agents) and/or into CLI utilities on the shell.
9
+ - **Config Loader**: Blueprints and configuration management form a core aspect of the project.
10
+
11
+ Installation:
12
+ -------------
13
+ Open-swarm is available via PyPI. To install, run:
14
+ ```
15
+ pip install open-swarm
16
+ ```
17
+
18
+ Usage:
19
+ ------
20
+ In development, after cloning the repository (`github.com/matthewhand/open-swarm`), you can run a blueprint directly with:
21
+ ```
22
+ uv run blueprints/mcp_demo/blueprint_mcp_demo.py
23
+ ```
24
+
25
+ To run the blueprint with a specific instruction (for example, to list its tools), execute:
26
+ ```
27
+ uv run blueprints/mcp_demo/blueprint_mcp_demo.py --instruction "list your tools"
28
+ ```
29
+
30
+ Alternatively, you can run the blueprint as an API endpoint using the swarm-api utility:
31
+ ```
32
+ swarm-api --blueprint mcp_demo
33
+ ```
34
+
35
+ In production, you can use the swarm-cli utility to manage and run blueprints. For example, to add an example blueprint:
36
+ ```
37
+ swarm-cli add github:matthewhand/open-swarm/blueprints/mcp_demo
38
+ ```
39
+ This command saves the blueprint to:
40
+ ```
41
+ ~/.swarm/blueprints/mcp_demo/
42
+ ```
43
+ After adding the blueprint, you can convert it into a standalone CLI utility with:
44
+ ```
45
+ swarm-cli install mcp_demo
46
+ ```
47
+
48
+ Building a Basic Blueprint & Config File:
49
+ ------------------------------------------
50
+ You can create your own blueprint to extend open-swarm's capabilities. Here is a walkthrough:
51
+
52
+ 1. **Create a Blueprint File:**
53
+ - In the `blueprints/` directory, create a new Python file, for example `blueprints/my_blueprint.py`.
54
+ - Define a new class that inherits from `BlueprintBase` and implement the required abstract methods, such as `metadata` and `create_agents()`. For instance:
55
+ ```
56
+ from swarm.extensions.blueprint.blueprint_base import BlueprintBase
57
+
58
+ class MyBlueprint(BlueprintBase):
59
+ @property
60
+ def metadata(self):
61
+ return {
62
+ "title": "MyBlueprint",
63
+ "env_vars": [],
64
+ "required_mcp_servers": [],
65
+ "max_context_tokens": 8000,
66
+ "max_context_messages": 50
67
+ }
68
+
69
+ def create_agents(self):
70
+ # Create and return agents as a dictionary.
71
+ return {"MyAgent": ...} # Implement your agent creation logic here.
72
+
73
+ if __name__ == "__main__":
74
+ MyBlueprint.main()
75
+ ```
76
+
77
+ 2. **Create a Configuration File:**
78
+ - Create a configuration file (e.g., `swarm_config.json`) at the root of the project. This file can include settings for LLM models and MCP servers. For example:
79
+ ```
80
+ {
81
+ "llm": {
82
+ "default": {
83
+ "provider": "openai",
84
+ "model": "gpt-4",
85
+ "api_key": "your-openai-api-key",
86
+ "base_url": null
87
+ }
88
+ },
89
+ "mcpServers": {
90
+ "mcp_llms_txt_server": {
91
+ "command": "echo",
92
+ "args": [],
93
+ "env": {}
94
+ },
95
+ "everything_server": {
96
+ "command": "echo",
97
+ "args": [],
98
+ "env": {}
99
+ }
100
+ }
101
+ }
102
+ ```
103
+
104
+ 3. **Running Your Blueprint:**
105
+ - To run your blueprint in development mode, use:
106
+ ```
107
+ uv run blueprints/my_blueprint.py
108
+ ```
109
+ - Ensure your configuration file is properly loaded by your blueprint (this might require modifications in your blueprint's initialization logic or passing a `--config` parameter).
110
+
111
+ Installation & Deployment via swarm-cli:
112
+ --------------------------------------------
113
+ After creating your blueprint and config file, you can manage it with the swarm-cli utility. For example:
114
+ - **Adding your blueprint:**
115
+ ```
116
+ swarm-cli add github:matthewhand/open-swarm/blueprints/my_blueprint
117
+ ```
118
+ - **Installing as a standalone CLI utility:**
119
+ ```
120
+ swarm-cli install my_blueprint
121
+ ```
122
+
123
+ Examples:
124
+ ---------
125
+ **Blueprint "mcp_demo":**
126
+
127
+ The blueprint located in `blueprints/mcp_demo` demonstrates a key design principle:
128
+ - It creates a primary agent named **Sage** that leverages the MCP framework to incorporate external capabilities.
129
+ - **Sage** uses another agent, **Explorer**, as a tool to extend its functionality.
130
+
131
+ This hierarchical agent design illustrates how blueprints can compose agents that call on subagents as tools. This model serves as a prototype for creating powerful agent-driven workflows and can be deployed both as a REST endpoint and as a CLI tool.
132
+
133
+ Production Environment:
134
+ -----------------------
135
+ After installing the package via pip, you can manage blueprints with `swarm-cli` and launch them as standalone utilities or REST services.
136
+
137
+ For help with swarm-cli:
138
+ ```
139
+ swarm-cli --help
140
+ ```
141
+
142
+ For help with swarm-api:
143
+ ```
144
+ swarm-api --help
@@ -0,0 +1,62 @@
1
+ [project]
2
+ name = "open-swarm"
3
+ version = "0.1.1748636259"
4
+ description = "A tool for orchestrating Swarm using both CLI and API."
5
+ readme = "README.md"
6
+ authors = [
7
+ { name = "Matthew Hand", email = "matthewhandau@gmail.com" }
8
+ ]
9
+ requires-python = ">=3.10"
10
+ dependencies = [
11
+ "aiofiles>=24.1.0",
12
+ "aiohttp>=3.11.11",
13
+ "asyncio>=3.4.3",
14
+ "asynctest>=0.13.0",
15
+ "channels>=4.2.0",
16
+ "colorama>=0.4.6",
17
+ "django>=4.2,<5.0",
18
+ "django-allauth>=65.3.1",
19
+ "django-template-debug>=0.3.5",
20
+ "djangorestframework>=3.15.2",
21
+ "flask>=3.1.0",
22
+ "jmespath>=1.0.1",
23
+ "jsonschema-pydantic>=0.6",
24
+ "mcp>=1.2.0",
25
+ "openai>=1.58.1",
26
+ "python-dotenv>=1.0.1",
27
+ "redis>=5.2.1",
28
+ "requests>=2.32.3",
29
+ "whitenoise>=6.8.2",
30
+ "drf-spectacular>=0.23.0",
31
+ "pyinstaller>=6.12.0",
32
+ "tiktoken>=0.9.0",
33
+ "django-cors-headers>=4.7.0",
34
+ "cachetools>=5.5.2",
35
+ "openai-agents",
36
+ ]
37
+
38
+ [project.scripts]
39
+ swarm-cli = "swarm.extensions.launchers.swarm_cli:main"
40
+ swarm-api = "swarm.extensions.launchers.swarm_api:main"
41
+
42
+ [project.optional-dependencies]
43
+ dev = [
44
+ "pytest>=8.3.4",
45
+ "pytest-asyncio>=0.25.1",
46
+ "pytest-cov>=6.0.0",
47
+ "pytest-django>=4.9.0",
48
+ "pytest-mock>=3.14.0",
49
+ "python-semantic-release>=9.20.0",
50
+ ]
51
+
52
+ experimental = [
53
+ "nemoguardrails>=0.11.0",
54
+ ]
55
+
56
+ [build-system]
57
+ requires = ["setuptools", "wheel"]
58
+ build-backend = "setuptools.build_meta"
59
+
60
+ [tool.pytest.ini_options]
61
+ DJANGO_SETTINGS_MODULE = "src.swarm.settings"
62
+ pythonpath = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,188 @@
1
+ Metadata-Version: 2.4
2
+ Name: open-swarm
3
+ Version: 0.1.1748636259
4
+ Summary: A tool for orchestrating Swarm using both CLI and API.
5
+ Author-email: Matthew Hand <matthewhandau@gmail.com>
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: aiofiles>=24.1.0
10
+ Requires-Dist: aiohttp>=3.11.11
11
+ Requires-Dist: asyncio>=3.4.3
12
+ Requires-Dist: asynctest>=0.13.0
13
+ Requires-Dist: channels>=4.2.0
14
+ Requires-Dist: colorama>=0.4.6
15
+ Requires-Dist: django<5.0,>=4.2
16
+ Requires-Dist: django-allauth>=65.3.1
17
+ Requires-Dist: django-template-debug>=0.3.5
18
+ Requires-Dist: djangorestframework>=3.15.2
19
+ Requires-Dist: flask>=3.1.0
20
+ Requires-Dist: jmespath>=1.0.1
21
+ Requires-Dist: jsonschema-pydantic>=0.6
22
+ Requires-Dist: mcp>=1.2.0
23
+ Requires-Dist: openai>=1.58.1
24
+ Requires-Dist: python-dotenv>=1.0.1
25
+ Requires-Dist: redis>=5.2.1
26
+ Requires-Dist: requests>=2.32.3
27
+ Requires-Dist: whitenoise>=6.8.2
28
+ Requires-Dist: drf-spectacular>=0.23.0
29
+ Requires-Dist: pyinstaller>=6.12.0
30
+ Requires-Dist: tiktoken>=0.9.0
31
+ Requires-Dist: django-cors-headers>=4.7.0
32
+ Requires-Dist: cachetools>=5.5.2
33
+ Requires-Dist: openai-agents
34
+ Provides-Extra: dev
35
+ Requires-Dist: pytest>=8.3.4; extra == "dev"
36
+ Requires-Dist: pytest-asyncio>=0.25.1; extra == "dev"
37
+ Requires-Dist: pytest-cov>=6.0.0; extra == "dev"
38
+ Requires-Dist: pytest-django>=4.9.0; extra == "dev"
39
+ Requires-Dist: pytest-mock>=3.14.0; extra == "dev"
40
+ Requires-Dist: python-semantic-release>=9.20.0; extra == "dev"
41
+ Provides-Extra: experimental
42
+ Requires-Dist: nemoguardrails>=0.11.0; extra == "experimental"
43
+ Dynamic: license-file
44
+
45
+ Open-Swarm Update - 20250328
46
+
47
+ This project is now repurposed due to OpenAI officially supporting the Swarm framework under the new name "openai-agents(-python)".
48
+
49
+ Open-swarm now utilizes the openai-agents framework for enhanced capabilities, and the MCP logic has been offloaded to the openai-agents framework.
50
+
51
+ Key focus areas of this open-swarm framework include:
52
+ - **Blueprints**: A blueprint can be converted into an OpenAI-compatible REST endpoint (analogous to `/v1/chat/completions`, but with agents) and/or into CLI utilities on the shell.
53
+ - **Config Loader**: Blueprints and configuration management form a core aspect of the project.
54
+
55
+ Installation:
56
+ -------------
57
+ Open-swarm is available via PyPI. To install, run:
58
+ ```
59
+ pip install open-swarm
60
+ ```
61
+
62
+ Usage:
63
+ ------
64
+ In development, after cloning the repository (`github.com/matthewhand/open-swarm`), you can run a blueprint directly with:
65
+ ```
66
+ uv run blueprints/mcp_demo/blueprint_mcp_demo.py
67
+ ```
68
+
69
+ To run the blueprint with a specific instruction (for example, to list its tools), execute:
70
+ ```
71
+ uv run blueprints/mcp_demo/blueprint_mcp_demo.py --instruction "list your tools"
72
+ ```
73
+
74
+ Alternatively, you can run the blueprint as an API endpoint using the swarm-api utility:
75
+ ```
76
+ swarm-api --blueprint mcp_demo
77
+ ```
78
+
79
+ In production, you can use the swarm-cli utility to manage and run blueprints. For example, to add an example blueprint:
80
+ ```
81
+ swarm-cli add github:matthewhand/open-swarm/blueprints/mcp_demo
82
+ ```
83
+ This command saves the blueprint to:
84
+ ```
85
+ ~/.swarm/blueprints/mcp_demo/
86
+ ```
87
+ After adding the blueprint, you can convert it into a standalone CLI utility with:
88
+ ```
89
+ swarm-cli install mcp_demo
90
+ ```
91
+
92
+ Building a Basic Blueprint & Config File:
93
+ ------------------------------------------
94
+ You can create your own blueprint to extend open-swarm's capabilities. Here is a walkthrough:
95
+
96
+ 1. **Create a Blueprint File:**
97
+ - In the `blueprints/` directory, create a new Python file, for example `blueprints/my_blueprint.py`.
98
+ - Define a new class that inherits from `BlueprintBase` and implement the required abstract methods, such as `metadata` and `create_agents()`. For instance:
99
+ ```
100
+ from swarm.extensions.blueprint.blueprint_base import BlueprintBase
101
+
102
+ class MyBlueprint(BlueprintBase):
103
+ @property
104
+ def metadata(self):
105
+ return {
106
+ "title": "MyBlueprint",
107
+ "env_vars": [],
108
+ "required_mcp_servers": [],
109
+ "max_context_tokens": 8000,
110
+ "max_context_messages": 50
111
+ }
112
+
113
+ def create_agents(self):
114
+ # Create and return agents as a dictionary.
115
+ return {"MyAgent": ...} # Implement your agent creation logic here.
116
+
117
+ if __name__ == "__main__":
118
+ MyBlueprint.main()
119
+ ```
120
+
121
+ 2. **Create a Configuration File:**
122
+ - Create a configuration file (e.g., `swarm_config.json`) at the root of the project. This file can include settings for LLM models and MCP servers. For example:
123
+ ```
124
+ {
125
+ "llm": {
126
+ "default": {
127
+ "provider": "openai",
128
+ "model": "gpt-4",
129
+ "api_key": "your-openai-api-key",
130
+ "base_url": null
131
+ }
132
+ },
133
+ "mcpServers": {
134
+ "mcp_llms_txt_server": {
135
+ "command": "echo",
136
+ "args": [],
137
+ "env": {}
138
+ },
139
+ "everything_server": {
140
+ "command": "echo",
141
+ "args": [],
142
+ "env": {}
143
+ }
144
+ }
145
+ }
146
+ ```
147
+
148
+ 3. **Running Your Blueprint:**
149
+ - To run your blueprint in development mode, use:
150
+ ```
151
+ uv run blueprints/my_blueprint.py
152
+ ```
153
+ - Ensure your configuration file is properly loaded by your blueprint (this might require modifications in your blueprint's initialization logic or passing a `--config` parameter).
154
+
155
+ Installation & Deployment via swarm-cli:
156
+ --------------------------------------------
157
+ After creating your blueprint and config file, you can manage it with the swarm-cli utility. For example:
158
+ - **Adding your blueprint:**
159
+ ```
160
+ swarm-cli add github:matthewhand/open-swarm/blueprints/my_blueprint
161
+ ```
162
+ - **Installing as a standalone CLI utility:**
163
+ ```
164
+ swarm-cli install my_blueprint
165
+ ```
166
+
167
+ Examples:
168
+ ---------
169
+ **Blueprint "mcp_demo":**
170
+
171
+ The blueprint located in `blueprints/mcp_demo` demonstrates a key design principle:
172
+ - It creates a primary agent named **Sage** that leverages the MCP framework to incorporate external capabilities.
173
+ - **Sage** uses another agent, **Explorer**, as a tool to extend its functionality.
174
+
175
+ This hierarchical agent design illustrates how blueprints can compose agents that call on subagents as tools. This model serves as a prototype for creating powerful agent-driven workflows and can be deployed both as a REST endpoint and as a CLI tool.
176
+
177
+ Production Environment:
178
+ -----------------------
179
+ After installing the package via pip, you can manage blueprints with `swarm-cli` and launch them as standalone utilities or REST services.
180
+
181
+ For help with swarm-cli:
182
+ ```
183
+ swarm-cli --help
184
+ ```
185
+
186
+ For help with swarm-api:
187
+ ```
188
+ swarm-api --help