open-swarm 0.1.1743070217__py3-none-any.whl → 0.1.1743364176__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.
Files changed (217) hide show
  1. open_swarm-0.1.1743364176.dist-info/METADATA +286 -0
  2. open_swarm-0.1.1743364176.dist-info/RECORD +260 -0
  3. {open_swarm-0.1.1743070217.dist-info → open_swarm-0.1.1743364176.dist-info}/WHEEL +1 -2
  4. open_swarm-0.1.1743364176.dist-info/entry_points.txt +2 -0
  5. swarm/__init__.py +0 -2
  6. swarm/auth.py +53 -49
  7. swarm/blueprints/README.md +67 -0
  8. swarm/blueprints/burnt_noodles/blueprint_burnt_noodles.py +412 -0
  9. swarm/blueprints/chatbot/blueprint_chatbot.py +98 -0
  10. swarm/blueprints/chatbot/templates/chatbot/chatbot.html +33 -0
  11. swarm/blueprints/digitalbutlers/blueprint_digitalbutlers.py +183 -0
  12. swarm/blueprints/dilbot_universe/blueprint_dilbot_universe.py +285 -0
  13. swarm/blueprints/divine_code/__init__.py +0 -0
  14. swarm/blueprints/divine_code/apps.py +11 -0
  15. swarm/blueprints/divine_code/blueprint_divine_code.py +219 -0
  16. swarm/blueprints/django_chat/apps.py +6 -0
  17. swarm/blueprints/django_chat/blueprint_django_chat.py +84 -0
  18. swarm/blueprints/django_chat/templates/django_chat/django_chat_webpage.html +37 -0
  19. swarm/blueprints/django_chat/urls.py +8 -0
  20. swarm/blueprints/django_chat/views.py +32 -0
  21. swarm/blueprints/echocraft/blueprint_echocraft.py +44 -0
  22. swarm/blueprints/family_ties/apps.py +11 -0
  23. swarm/blueprints/family_ties/blueprint_family_ties.py +152 -0
  24. swarm/blueprints/family_ties/models.py +19 -0
  25. swarm/blueprints/family_ties/serializers.py +7 -0
  26. swarm/blueprints/family_ties/settings.py +16 -0
  27. swarm/blueprints/family_ties/urls.py +10 -0
  28. swarm/blueprints/family_ties/views.py +26 -0
  29. swarm/blueprints/flock/__init__.py +0 -0
  30. swarm/blueprints/gaggle/blueprint_gaggle.py +184 -0
  31. swarm/blueprints/gotchaman/blueprint_gotchaman.py +232 -0
  32. swarm/blueprints/mcp_demo/blueprint_mcp_demo.py +133 -0
  33. swarm/blueprints/messenger/templates/messenger/messenger.html +46 -0
  34. swarm/blueprints/mission_improbable/blueprint_mission_improbable.py +234 -0
  35. swarm/blueprints/monkai_magic/blueprint_monkai_magic.py +248 -0
  36. swarm/blueprints/nebula_shellz/blueprint_nebula_shellz.py +156 -0
  37. swarm/blueprints/omniplex/blueprint_omniplex.py +221 -0
  38. swarm/blueprints/rue_code/__init__.py +0 -0
  39. swarm/blueprints/rue_code/blueprint_rue_code.py +291 -0
  40. swarm/blueprints/suggestion/blueprint_suggestion.py +110 -0
  41. swarm/blueprints/unapologetic_press/blueprint_unapologetic_press.py +298 -0
  42. swarm/blueprints/whiskeytango_foxtrot/__init__.py +0 -0
  43. swarm/blueprints/whiskeytango_foxtrot/apps.py +11 -0
  44. swarm/blueprints/whiskeytango_foxtrot/blueprint_whiskeytango_foxtrot.py +256 -0
  45. swarm/extensions/blueprint/__init__.py +30 -15
  46. swarm/extensions/blueprint/agent_utils.py +16 -40
  47. swarm/extensions/blueprint/blueprint_base.py +141 -543
  48. swarm/extensions/blueprint/blueprint_discovery.py +112 -98
  49. swarm/extensions/blueprint/cli_handler.py +185 -0
  50. swarm/extensions/blueprint/config_loader.py +122 -0
  51. swarm/extensions/blueprint/django_utils.py +181 -79
  52. swarm/extensions/blueprint/interactive_mode.py +1 -1
  53. swarm/extensions/config/config_loader.py +83 -200
  54. swarm/extensions/launchers/build_swarm_wrapper.py +0 -0
  55. swarm/extensions/launchers/swarm_cli.py +199 -287
  56. swarm/llm/chat_completion.py +26 -55
  57. swarm/management/__init__.py +0 -0
  58. swarm/management/commands/__init__.py +0 -0
  59. swarm/management/commands/runserver.py +58 -0
  60. swarm/permissions.py +38 -0
  61. swarm/serializers.py +96 -5
  62. swarm/settings.py +95 -110
  63. swarm/static/contrib/fonts/fontawesome-webfont.ttf +7 -0
  64. swarm/static/contrib/fonts/fontawesome-webfont.woff +7 -0
  65. swarm/static/contrib/fonts/fontawesome-webfont.woff2 +7 -0
  66. swarm/static/contrib/markedjs/marked.min.js +6 -0
  67. swarm/static/contrib/tabler-icons/adjustments-horizontal.svg +27 -0
  68. swarm/static/contrib/tabler-icons/alert-triangle.svg +21 -0
  69. swarm/static/contrib/tabler-icons/archive.svg +21 -0
  70. swarm/static/contrib/tabler-icons/artboard.svg +27 -0
  71. swarm/static/contrib/tabler-icons/automatic-gearbox.svg +23 -0
  72. swarm/static/contrib/tabler-icons/box-multiple.svg +19 -0
  73. swarm/static/contrib/tabler-icons/carambola.svg +19 -0
  74. swarm/static/contrib/tabler-icons/copy.svg +20 -0
  75. swarm/static/contrib/tabler-icons/download.svg +21 -0
  76. swarm/static/contrib/tabler-icons/edit.svg +21 -0
  77. swarm/static/contrib/tabler-icons/filled/carambola.svg +13 -0
  78. swarm/static/contrib/tabler-icons/filled/paint.svg +13 -0
  79. swarm/static/contrib/tabler-icons/headset.svg +22 -0
  80. swarm/static/contrib/tabler-icons/layout-sidebar-left-collapse.svg +21 -0
  81. swarm/static/contrib/tabler-icons/layout-sidebar-left-expand.svg +21 -0
  82. swarm/static/contrib/tabler-icons/layout-sidebar-right-collapse.svg +21 -0
  83. swarm/static/contrib/tabler-icons/layout-sidebar-right-expand.svg +21 -0
  84. swarm/static/contrib/tabler-icons/message-chatbot.svg +22 -0
  85. swarm/static/contrib/tabler-icons/message-star.svg +22 -0
  86. swarm/static/contrib/tabler-icons/message-x.svg +23 -0
  87. swarm/static/contrib/tabler-icons/message.svg +21 -0
  88. swarm/static/contrib/tabler-icons/paperclip.svg +18 -0
  89. swarm/static/contrib/tabler-icons/playlist-add.svg +22 -0
  90. swarm/static/contrib/tabler-icons/robot.svg +26 -0
  91. swarm/static/contrib/tabler-icons/search.svg +19 -0
  92. swarm/static/contrib/tabler-icons/settings.svg +20 -0
  93. swarm/static/contrib/tabler-icons/thumb-down.svg +19 -0
  94. swarm/static/contrib/tabler-icons/thumb-up.svg +19 -0
  95. swarm/static/css/dropdown.css +22 -0
  96. swarm/static/htmx/htmx.min.js +0 -0
  97. swarm/static/js/dropdown.js +23 -0
  98. swarm/static/rest_mode/css/base.css +470 -0
  99. swarm/static/rest_mode/css/chat-history.css +286 -0
  100. swarm/static/rest_mode/css/chat.css +251 -0
  101. swarm/static/rest_mode/css/chatbot.css +74 -0
  102. swarm/static/rest_mode/css/chatgpt.css +62 -0
  103. swarm/static/rest_mode/css/colors/corporate.css +74 -0
  104. swarm/static/rest_mode/css/colors/pastel.css +81 -0
  105. swarm/static/rest_mode/css/colors/tropical.css +82 -0
  106. swarm/static/rest_mode/css/general.css +142 -0
  107. swarm/static/rest_mode/css/layout.css +167 -0
  108. swarm/static/rest_mode/css/layouts/messenger-layout.css +17 -0
  109. swarm/static/rest_mode/css/layouts/minimalist-layout.css +57 -0
  110. swarm/static/rest_mode/css/layouts/mobile-layout.css +8 -0
  111. swarm/static/rest_mode/css/messages.css +84 -0
  112. swarm/static/rest_mode/css/messenger.css +135 -0
  113. swarm/static/rest_mode/css/settings.css +91 -0
  114. swarm/static/rest_mode/css/simple.css +44 -0
  115. swarm/static/rest_mode/css/slack.css +58 -0
  116. swarm/static/rest_mode/css/style.css +156 -0
  117. swarm/static/rest_mode/css/theme.css +30 -0
  118. swarm/static/rest_mode/css/toast.css +40 -0
  119. swarm/static/rest_mode/js/auth.js +9 -0
  120. swarm/static/rest_mode/js/blueprint.js +41 -0
  121. swarm/static/rest_mode/js/blueprintUtils.js +12 -0
  122. swarm/static/rest_mode/js/chatLogic.js +79 -0
  123. swarm/static/rest_mode/js/debug.js +63 -0
  124. swarm/static/rest_mode/js/events.js +98 -0
  125. swarm/static/rest_mode/js/main.js +19 -0
  126. swarm/static/rest_mode/js/messages.js +264 -0
  127. swarm/static/rest_mode/js/messengerLogic.js +355 -0
  128. swarm/static/rest_mode/js/modules/apiService.js +84 -0
  129. swarm/static/rest_mode/js/modules/blueprintManager.js +162 -0
  130. swarm/static/rest_mode/js/modules/chatHistory.js +110 -0
  131. swarm/static/rest_mode/js/modules/debugLogger.js +14 -0
  132. swarm/static/rest_mode/js/modules/eventHandlers.js +107 -0
  133. swarm/static/rest_mode/js/modules/messageProcessor.js +120 -0
  134. swarm/static/rest_mode/js/modules/state.js +7 -0
  135. swarm/static/rest_mode/js/modules/userInteractions.js +29 -0
  136. swarm/static/rest_mode/js/modules/validation.js +23 -0
  137. swarm/static/rest_mode/js/rendering.js +119 -0
  138. swarm/static/rest_mode/js/settings.js +130 -0
  139. swarm/static/rest_mode/js/sidebar.js +94 -0
  140. swarm/static/rest_mode/js/simpleLogic.js +37 -0
  141. swarm/static/rest_mode/js/slackLogic.js +66 -0
  142. swarm/static/rest_mode/js/splash.js +76 -0
  143. swarm/static/rest_mode/js/theme.js +111 -0
  144. swarm/static/rest_mode/js/toast.js +36 -0
  145. swarm/static/rest_mode/js/ui.js +265 -0
  146. swarm/static/rest_mode/js/validation.js +57 -0
  147. swarm/static/rest_mode/svg/animated_spinner.svg +12 -0
  148. swarm/static/rest_mode/svg/arrow_down.svg +5 -0
  149. swarm/static/rest_mode/svg/arrow_left.svg +5 -0
  150. swarm/static/rest_mode/svg/arrow_right.svg +5 -0
  151. swarm/static/rest_mode/svg/arrow_up.svg +5 -0
  152. swarm/static/rest_mode/svg/attach.svg +8 -0
  153. swarm/static/rest_mode/svg/avatar.svg +7 -0
  154. swarm/static/rest_mode/svg/canvas.svg +6 -0
  155. swarm/static/rest_mode/svg/chat_history.svg +4 -0
  156. swarm/static/rest_mode/svg/close.svg +5 -0
  157. swarm/static/rest_mode/svg/copy.svg +4 -0
  158. swarm/static/rest_mode/svg/dark_mode.svg +3 -0
  159. swarm/static/rest_mode/svg/edit.svg +5 -0
  160. swarm/static/rest_mode/svg/layout.svg +9 -0
  161. swarm/static/rest_mode/svg/logo.svg +29 -0
  162. swarm/static/rest_mode/svg/logout.svg +5 -0
  163. swarm/static/rest_mode/svg/mobile.svg +5 -0
  164. swarm/static/rest_mode/svg/new_chat.svg +4 -0
  165. swarm/static/rest_mode/svg/not_visible.svg +5 -0
  166. swarm/static/rest_mode/svg/plus.svg +7 -0
  167. swarm/static/rest_mode/svg/run_code.svg +6 -0
  168. swarm/static/rest_mode/svg/save.svg +4 -0
  169. swarm/static/rest_mode/svg/search.svg +6 -0
  170. swarm/static/rest_mode/svg/settings.svg +4 -0
  171. swarm/static/rest_mode/svg/speaker.svg +5 -0
  172. swarm/static/rest_mode/svg/stop.svg +6 -0
  173. swarm/static/rest_mode/svg/thumbs_down.svg +3 -0
  174. swarm/static/rest_mode/svg/thumbs_up.svg +3 -0
  175. swarm/static/rest_mode/svg/toggle_off.svg +6 -0
  176. swarm/static/rest_mode/svg/toggle_on.svg +6 -0
  177. swarm/static/rest_mode/svg/trash.svg +10 -0
  178. swarm/static/rest_mode/svg/undo.svg +3 -0
  179. swarm/static/rest_mode/svg/visible.svg +8 -0
  180. swarm/static/rest_mode/svg/voice.svg +10 -0
  181. swarm/templates/account/login.html +22 -0
  182. swarm/templates/account/signup.html +32 -0
  183. swarm/templates/base.html +30 -0
  184. swarm/templates/chat.html +43 -0
  185. swarm/templates/index.html +35 -0
  186. swarm/templates/rest_mode/components/chat_sidebar.html +55 -0
  187. swarm/templates/rest_mode/components/header.html +45 -0
  188. swarm/templates/rest_mode/components/main_chat_pane.html +41 -0
  189. swarm/templates/rest_mode/components/settings_dialog.html +97 -0
  190. swarm/templates/rest_mode/components/splash_screen.html +7 -0
  191. swarm/templates/rest_mode/components/top_bar.html +28 -0
  192. swarm/templates/rest_mode/message_ui.html +50 -0
  193. swarm/templates/rest_mode/slackbot.html +30 -0
  194. swarm/templates/simple_blueprint_page.html +24 -0
  195. swarm/templates/websocket_partials/final_system_message.html +3 -0
  196. swarm/templates/websocket_partials/system_message.html +4 -0
  197. swarm/templates/websocket_partials/user_message.html +5 -0
  198. swarm/urls.py +57 -74
  199. swarm/utils/log_utils.py +63 -0
  200. swarm/views/api_views.py +48 -39
  201. swarm/views/chat_views.py +156 -70
  202. swarm/views/core_views.py +85 -90
  203. swarm/views/model_views.py +64 -121
  204. swarm/views/utils.py +65 -441
  205. open_swarm-0.1.1743070217.dist-info/METADATA +0 -258
  206. open_swarm-0.1.1743070217.dist-info/RECORD +0 -89
  207. open_swarm-0.1.1743070217.dist-info/entry_points.txt +0 -3
  208. open_swarm-0.1.1743070217.dist-info/top_level.txt +0 -1
  209. swarm/agent/agent.py +0 -49
  210. swarm/core.py +0 -326
  211. swarm/extensions/mcp/__init__.py +0 -1
  212. swarm/extensions/mcp/cache_utils.py +0 -36
  213. swarm/extensions/mcp/mcp_client.py +0 -341
  214. swarm/extensions/mcp/mcp_constants.py +0 -7
  215. swarm/extensions/mcp/mcp_tool_provider.py +0 -110
  216. swarm/types.py +0 -126
  217. {open_swarm-0.1.1743070217.dist-info → open_swarm-0.1.1743364176.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,286 @@
1
+ Metadata-Version: 2.4
2
+ Name: open-swarm
3
+ Version: 0.1.1743364176
4
+ Summary: Open Swarm: Orchestrating AI Agent Swarms with Django
5
+ Project-URL: Homepage, https://github.com/yourusername/open-swarm
6
+ Project-URL: Documentation, https://github.com/yourusername/open-swarm/blob/main/README.md
7
+ Project-URL: Repository, https://github.com/yourusername/open-swarm.git
8
+ Project-URL: Changelog, https://github.com/yourusername/open-swarm/blob/main/CHANGELOG.md
9
+ Author-email: Matthew Hand <matthewhandau@gmail.com>
10
+ License-Expression: MIT
11
+ License-File: LICENSE
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Framework :: Django :: 4.2
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Natural Language :: English
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
22
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
23
+ Requires-Python: >=3.10
24
+ Requires-Dist: beautifulsoup4>=4.12.0
25
+ Requires-Dist: celery>=5.3.0
26
+ Requires-Dist: channels-redis>=4.0
27
+ Requires-Dist: channels>=4.0
28
+ Requires-Dist: django-cors-headers>=4.0.0
29
+ Requires-Dist: django-environ>=0.11.0
30
+ Requires-Dist: django-extensions>=3.2.0
31
+ Requires-Dist: django-filter>=23.0
32
+ Requires-Dist: django-model-utils>=4.3.0
33
+ Requires-Dist: django<5.0,>=4.2
34
+ Requires-Dist: djangorestframework<4.0,>=3.14
35
+ Requires-Dist: drf-spectacular>=0.28.0
36
+ Requires-Dist: drf-yasg>=1.21.0
37
+ Requires-Dist: google-api-python-client>=2.100.0
38
+ Requires-Dist: google-auth-httplib2>=0.1.0
39
+ Requires-Dist: google-auth-oauthlib>=1.2.1
40
+ Requires-Dist: gunicorn>=21.0.0
41
+ Requires-Dist: httpx<0.26.0,>=0.25.2
42
+ Requires-Dist: jinja2>=3.1.6
43
+ Requires-Dist: jmespath>=1.0.1
44
+ Requires-Dist: openai-agents>=0.0.1
45
+ Requires-Dist: openai<2.0.0,>=1.3.0
46
+ Requires-Dist: platformdirs>=4.0.0
47
+ Requires-Dist: psycopg2-binary>=2.9.0
48
+ Requires-Dist: pyinstaller>=5.13.0
49
+ Requires-Dist: python-dotenv>=1.0.0
50
+ Requires-Dist: pyyaml>=6.0
51
+ Requires-Dist: qdrant-client>=1.6.0
52
+ Requires-Dist: redis>=5.0.0
53
+ Requires-Dist: requests>=2.31.0
54
+ Requires-Dist: tiktoken>=0.5.0
55
+ Requires-Dist: typer>=0.9.0
56
+ Requires-Dist: uvicorn>=0.23.0
57
+ Provides-Extra: dev
58
+ Requires-Dist: factory-boy>=3.3.0; extra == 'dev'
59
+ Requires-Dist: ipdb; extra == 'dev'
60
+ Requires-Dist: ipython; extra == 'dev'
61
+ Requires-Dist: mypy>=1.5.0; extra == 'dev'
62
+ Requires-Dist: pre-commit>=3.5.0; extra == 'dev'
63
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
64
+ Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
65
+ Requires-Dist: pytest-django>=4.7.0; extra == 'dev'
66
+ Requires-Dist: pytest-mock>=3.11.0; extra == 'dev'
67
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
68
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
69
+ Requires-Dist: uv>=0.1.11; extra == 'dev'
70
+ Provides-Extra: docs
71
+ Requires-Dist: myst-parser>=2.0.0; extra == 'docs'
72
+ Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == 'docs'
73
+ Requires-Dist: sphinx>=7.0.0; extra == 'docs'
74
+ Provides-Extra: test
75
+ Requires-Dist: anyio>=4.0.0; extra == 'test'
76
+ Requires-Dist: factory-boy>=3.3.0; extra == 'test'
77
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'test'
78
+ Requires-Dist: pytest-cov>=4.1.0; extra == 'test'
79
+ Requires-Dist: pytest-django>=4.7.0; extra == 'test'
80
+ Requires-Dist: pytest-env>=1.0.0; extra == 'test'
81
+ Requires-Dist: pytest-mock>=3.11.0; extra == 'test'
82
+ Requires-Dist: pytest-xdist; extra == 'test'
83
+ Requires-Dist: pytest>=8.0.0; extra == 'test'
84
+ Requires-Dist: respx>=0.20.0; extra == 'test'
85
+ Requires-Dist: sseclient-py>=1.7.2; extra == 'test'
86
+ Description-Content-Type: text/markdown
87
+
88
+ # Open Swarm
89
+
90
+ <div align="center">
91
+ <img src="assets/images/openswarm-project-image.jpg" alt="Project Logo" width="70%"/>
92
+ </div>
93
+
94
+ **Open Swarm** is a Python framework for creating, managing, and deploying autonomous agent swarms. It leverages the `openai-agents` library for core agent functionality and provides a structured way to build complex, multi-agent workflows using **Blueprints**.
95
+
96
+ Open Swarm can be used in two primary ways:
97
+
98
+ 1. **As a CLI Utility (`swarm-cli`):** Manage, run, and install blueprints directly on your local machine. Ideal for personal use, testing, and creating standalone agent tools. (Recommended installation: PyPI)
99
+ 2. **As an API Service (`swarm-api`):** Deploy a web server that exposes your blueprints via an OpenAI-compatible REST API. Ideal for integrations, web UIs, and shared access. (Recommended deployment: Docker)
100
+
101
+ ---
102
+
103
+ ## Core Concepts
104
+
105
+ * **Agents:** Individual AI units performing specific tasks, powered by LLMs (like GPT-4, Claude, etc.). Built using the `openai-agents` SDK.
106
+ * **Blueprints:** Python classes (`BlueprintBase` subclasses) defining a swarm's structure, agents, coordination logic, and external dependencies (like required environment variables or MCP servers). They act as reusable templates for specific tasks (e.g., code generation, research, data analysis).
107
+ * **MCP (Mission Control Platform) Servers:** Optional external processes providing specialized capabilities (tools) to agents, such as filesystem access, web browsing, database interaction, or interacting with specific APIs (Slack, Monday.com, etc.). Agents interact with MCP servers via a standardized communication protocol.
108
+ * **Configuration (`swarm_config.json`):** A central JSON file defining available LLM profiles (API keys, models) and configurations for MCP servers. Typically managed via `swarm-cli` in `~/.config/swarm/`.
109
+ * **`swarm-cli`:** A command-line tool for managing blueprints (adding, listing, running, installing) and the `swarm_config.json` file. Uses XDG directories for storing blueprints (`~/.local/share/swarm/blueprints/`) and configuration (`~/.config/swarm/`).
110
+ * **`swarm-api`:** A launcher for the Django/DRF backend that exposes installed blueprints via an OpenAI-compatible REST API (`/v1/models`, `/v1/chat/completions`).
111
+
112
+ ---
113
+
114
+ ## Quickstart 1: Using `swarm-cli` Locally (via PyPI)
115
+
116
+ This is the recommended way to use `swarm-cli` for managing and running blueprints on your local machine.
117
+
118
+ **Prerequisites:**
119
+ * Python 3.10+
120
+ * `pip` (Python package installer)
121
+
122
+ **Steps:**
123
+
124
+ 1. **Install `open-swarm` from PyPI:**
125
+ ```bash
126
+ pip install open-swarm
127
+ ```
128
+ *(Using a virtual environment is recommended: `python -m venv .venv && source .venv/bin/activate`)*
129
+
130
+ 2. **Initial Configuration (First Run):**
131
+ * The first time you run a `swarm-cli` command that requires configuration (like `run` or `config`), it will automatically create a default `swarm_config.json` at `~/.config/swarm/swarm_config.json` if one doesn't exist.
132
+ * You **must** set the required environment variables (like `OPENAI_API_KEY`) in your shell for the configuration to work. Create a `.env` file in your working directory or export them:
133
+ ```bash
134
+ export OPENAI_API_KEY="sk-..."
135
+ # Add other keys as needed (GROQ_API_KEY, etc.)
136
+ ```
137
+ * You can customize the configuration further using `swarm-cli config` commands (see `USERGUIDE.md`).
138
+
139
+ 3. **Add a Blueprint:**
140
+ * Download or create a blueprint file (e.g., `my_blueprint.py`). Example blueprints are available in the [project repository](https://github.com/matthewhand/open-swarm/tree/main/src/swarm/blueprints).
141
+ * Add it using `swarm-cli`:
142
+ ```bash
143
+ # Example: Adding a downloaded blueprint file
144
+ swarm-cli add ./path/to/downloaded/blueprint_echocraft.py
145
+
146
+ # Example: Adding a directory containing a blueprint
147
+ swarm-cli add ./my_custom_blueprints/agent_smith --name agent_smith
148
+ ```
149
+
150
+ 4. **Run the Blueprint:**
151
+ * **Single Instruction:**
152
+ ```bash
153
+ swarm-cli run echocraft --instruction "Hello from CLI!"
154
+ ```
155
+ * **Interactive Mode:**
156
+ ```bash
157
+ swarm-cli run echocraft
158
+ # Now you can chat with the blueprint interactively
159
+ ```
160
+
161
+ 5. **(Optional) Install as Command:**
162
+ ```bash
163
+ swarm-cli install echocraft
164
+ # Now run (ensure ~/.local/share/swarm/bin is in your PATH):
165
+ echocraft --instruction "I am a command now!"
166
+ ```
167
+
168
+ ---
169
+
170
+ ## Quickstart 2: Deploying `swarm-api` Service (via Docker)
171
+
172
+ This section covers deploying the API service using Docker.
173
+
174
+ ### Option A: Docker Compose (Recommended for Flexibility)
175
+
176
+ This method uses `docker-compose.yaml` and is best if you need to customize volumes, environment variables easily, or manage related services (like Redis).
177
+
178
+ **Prerequisites:**
179
+ * Docker ([Install Docker](https://docs.docker.com/engine/install/))
180
+ * Docker Compose ([Install Docker Compose](https://docs.docker.com/compose/install/))
181
+ * Git
182
+
183
+ **Steps:**
184
+
185
+ 1. **Clone the Repository:** (Needed for `docker-compose.yaml` and config files)
186
+ ```bash
187
+ git clone https://github.com/matthewhand/open-swarm.git
188
+ cd open-swarm
189
+ ```
190
+
191
+ 2. **Configure Environment:**
192
+ * Copy `cp .env.example .env` and edit `.env` with your API keys (e.g., `OPENAI_API_KEY`, `SWARM_API_KEY`).
193
+
194
+ 3. **Prepare Blueprints & Config:**
195
+ * Place blueprints in `./blueprints`.
196
+ * Ensure `./swarm_config.json` exists and is configured.
197
+
198
+ 4. **Configure Overrides (Optional):**
199
+ * Copy `cp docker-compose.override.yaml.example docker-compose.override.yaml`.
200
+ * Edit the override file to mount additional volumes, change ports, etc.
201
+
202
+ 5. **Start the Service:**
203
+ ```bash
204
+ docker compose up -d
205
+ ```
206
+
207
+ 6. **Verify API:** (Default port 8000)
208
+ * Models: `curl http://localhost:8000/v1/models`
209
+ * Chat: `curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "echocraft", ...}'` (Add `-H "Authorization: Bearer <key>"` if needed).
210
+
211
+ ### Option B: Direct `docker run` (Simpler for Single Container)
212
+
213
+ This method runs the pre-built image directly from Docker Hub. Good for quick tests or simple deployments without cloning the repo. Customization requires careful use of `-v` (volume) and `-e` (environment) flags.
214
+
215
+ **Prerequisites:**
216
+ * Docker ([Install Docker](https://docs.docker.com/engine/install/))
217
+
218
+ **Steps:**
219
+
220
+ 1. **Prepare Local Files (If Customizing):**
221
+ * Create a directory for your blueprints (e.g., `~/my_swarm_blueprints`).
222
+ * Create your `swarm_config.json` file locally (e.g., `~/my_swarm_config.json`).
223
+ * Create a `.env` file locally (e.g., `~/swarm.env`) with your API keys (`OPENAI_API_KEY`, `SWARM_API_KEY`, etc.).
224
+
225
+ 2. **Run the Container:**
226
+ ```bash
227
+ docker run -d \
228
+ --name open-swarm-api \
229
+ -p 8000:8000 \
230
+ --env-file ~/swarm.env \
231
+ -v ~/my_swarm_blueprints:/app/blueprints:ro \
232
+ -v ~/my_swarm_config.json:/app/swarm_config.json:ro \
233
+ -v open_swarm_db:/app/db.sqlite3 \
234
+ --restart unless-stopped \
235
+ mhand79/open-swarm:latest
236
+ ```
237
+ * `-d`: Run detached (in background).
238
+ * `--name`: Assign a name to the container.
239
+ * `-p 8000:8000`: Map host port 8000 to container port 8000 (adjust if needed).
240
+ * `--env-file`: Load environment variables from your local file.
241
+ * `-v ...:/app/blueprints:ro`: Mount your local blueprints directory (read-only). **Required** if you want to use custom blueprints.
242
+ * `-v ...:/app/swarm_config.json:ro`: Mount your local config file (read-only). **Required** for custom LLM/MCP settings.
243
+ * `-v open_swarm_db:/app/db.sqlite3`: Use a named Docker volume for the database to persist data.
244
+ * `--restart unless-stopped`: Automatically restart the container unless manually stopped.
245
+ * `mhand79/open-swarm:latest`: The image name on Docker Hub.
246
+
247
+ 3. **Verify API:** (Same as Docker Compose)
248
+ * Models: `curl http://localhost:8000/v1/models`
249
+ * Chat: `curl http://localhost:8000/v1/chat/completions ...` (Add `-H "Authorization: Bearer <key>"` if needed).
250
+
251
+ ---
252
+
253
+ ## Usage Modes Summary
254
+
255
+ * **`swarm-api` (via Docker or `manage.py runserver`):** Exposes blueprints as an OpenAI-compatible REST API. Ideal for integrations. Requires `SWARM_API_KEY` for security in non-local deployments.
256
+ * **`swarm-cli run` (via PyPI install):** Executes managed blueprints locally, either with a single instruction or in interactive chat mode. Good for testing and local tasks.
257
+ * **`swarm-cli install` (via PyPI install):** Creates standalone command-line executables from managed blueprints.
258
+ * **Direct Python Execution (via Git clone):** Running `uv run python <blueprint_file.py>` is mainly for development and testing individual files.
259
+
260
+ ---
261
+
262
+ ## Further Documentation
263
+
264
+ This README provides a high-level overview and quickstart guides. For more detailed information, please refer to:
265
+
266
+ * **User Guide (`USERGUIDE.md`):** Detailed instructions on using `swarm-cli` commands for managing blueprints and configuration locally.
267
+ * **Development Guide (`DEVELOPMENT.md`):** Information for contributors and developers, including architecture details, testing strategies, project layout, API details, and advanced topics.
268
+ * **Example Blueprints (`src/swarm/blueprints/README.md`):** A list and description of the example blueprints included with the framework, showcasing various features and integration patterns.
269
+
270
+ ---
271
+
272
+ ## Contributing
273
+
274
+ Contributions are welcome! Please refer to the `CONTRIBUTING.md` file (if available) or open an issue/pull request on the repository.
275
+
276
+ ---
277
+
278
+ ## License
279
+
280
+ Open Swarm is provided under the MIT License. Refer to the [LICENSE](LICENSE) file for full details.
281
+
282
+ ---
283
+
284
+ ## Acknowledgements
285
+
286
+ This project builds upon concepts and code from the `openai-agents` library and potentially other open-source projects. Specific acknowledgements can be found in `DEVELOPMENT.md` or individual source files.
@@ -0,0 +1,260 @@
1
+ swarm/__init__.py,sha256=aT-yyX84tiZhihp0RAXYTADCo9dhOnmolQVfn4_NQa8,46
2
+ swarm/apps.py,sha256=up4C3m2JeyXeUcH-wYeReCuiOBVJ6404w9OfaRChLwM,2568
3
+ swarm/auth.py,sha256=M_29ksMrTgs5u-iyFTkIqZNOpRoYzkcm3drIokQYS9A,2654
4
+ swarm/consumers.py,sha256=wESLamkhbi4SEZt9k3yx6eU9ufOIZMCAL-OAXjJBGXE,5056
5
+ swarm/messages.py,sha256=CwADrjlj-uVmm-so1xIZvN1UkEWdzSn_hu7slfhuS8w,6549
6
+ swarm/models.py,sha256=Ix0WEYYqza2lbOEBNesikRCs3XGUPWmqQyMWzZYUaxM,1494
7
+ swarm/permissions.py,sha256=iM86fSL1TtgqJzgDkS3Dl82X6Xk7VDHWwdBDfs5RKWc,1671
8
+ swarm/serializers.py,sha256=4g3G2FdWpSIuLLC_SBKoNITw1b0G83Bxo7YHc-kjsro,4550
9
+ swarm/settings.py,sha256=rGPcnLSf6WetpeovBb6AhDzWi2GwaFbsQ8UZjRVTMtI,6334
10
+ swarm/tool_executor.py,sha256=KHM2mTGgbbTgWNN3fbV5c4MDY238OTLwaaqtkczFHFQ,12385
11
+ swarm/urls.py,sha256=9eRQWsB-Vs3Nmes4mtlZtk_Rvuixf4Y9uwrX9dVQ9Is,3292
12
+ swarm/util.py,sha256=G4x2hXopHhB7IdGCkUXGoykYWyiICnjxg7wcr-WqL8I,4644
13
+ swarm/wsgi.py,sha256=REM_u4HpMCkO0ddrOUXgtY-ITL-VTbRB1-WHvFJAtAU,408
14
+ swarm/agent/__init__.py,sha256=YESGu_UXEBxrlQwghodUMN0vmXZDwWMU7DclCUvoklA,104
15
+ swarm/blueprints/README.md,sha256=tsngbSB9N0tILcz_m1OGAjyKZQYlGTN-i5e5asq1GbE,8478
16
+ swarm/blueprints/burnt_noodles/blueprint_burnt_noodles.py,sha256=LwKVYTRRg6ceNpvbuzM-bl7NukBGNu3bOU9Q3h6WjOU,22834
17
+ swarm/blueprints/chatbot/blueprint_chatbot.py,sha256=D31OgSoxllhzn8f7cdVYflqzadN2SZ61rabPuK6EqQ8,4728
18
+ swarm/blueprints/chatbot/templates/chatbot/chatbot.html,sha256=REFnqNg0EHsXxAUfaCJe1YgOKiV_umBXuC6y8veF5CU,1568
19
+ swarm/blueprints/digitalbutlers/blueprint_digitalbutlers.py,sha256=JK_rmZgPMw4PdQFrMverrwgcjH0NRkuqkchYOJwXYuM,9809
20
+ swarm/blueprints/dilbot_universe/blueprint_dilbot_universe.py,sha256=w7i96KkRNmBOV2Kz9SJqQCirsRPEgENR-79iLOzpKaQ,16770
21
+ swarm/blueprints/divine_code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ swarm/blueprints/divine_code/apps.py,sha256=k615JHdfOuo_GwfVbC7ah8X9OblkAL2XWm9aLBjmMyY,306
23
+ swarm/blueprints/divine_code/blueprint_divine_code.py,sha256=YO-YE5ORvx4R_1VD2i60cPc21ZX6c8sXwOGTqmDk2Xw,13516
24
+ swarm/blueprints/django_chat/apps.py,sha256=rn1Eu11c4zZ6DYZeFb6AkCDMoM_dcQTzeNwW-IxXpCI,200
25
+ swarm/blueprints/django_chat/blueprint_django_chat.py,sha256=jROcPgqNJZv2E2efCoGzouXHnHZP1JJundj0R3VTNbM,3376
26
+ swarm/blueprints/django_chat/urls.py,sha256=TTTF3pgymvCYbuxpwi4WRBPv8ftQNH4pEoURT8sEVAg,147
27
+ swarm/blueprints/django_chat/views.py,sha256=MUKjXXjXsq8jMZtAb4RR9g2mEYrwFemN6Bqxpeyi7p4,1299
28
+ swarm/blueprints/django_chat/templates/django_chat/django_chat_webpage.html,sha256=wAEOI4Wg0JJ8drXaOcr2Pel6lW3JSHmyIpbocLS5tI8,1649
29
+ swarm/blueprints/echocraft/blueprint_echocraft.py,sha256=kd5EFDhveaF2oaaYXhycakA9TYyH7KuXluyb99V4Puo,1589
30
+ swarm/blueprints/family_ties/apps.py,sha256=EjV7AxDNsLM4gsLr_qMEiLAVbERuo1ZsdU9vPtOEYAY,287
31
+ swarm/blueprints/family_ties/blueprint_family_ties.py,sha256=XVcSZNHmqQNqyjDZM36wtUh2V2Qx2_lComjD7E7er1A,7986
32
+ swarm/blueprints/family_ties/models.py,sha256=C3_okdVVYuu9xOpoKRsaLoGrM2775cS_cU4UKYAkJ9s,903
33
+ swarm/blueprints/family_ties/serializers.py,sha256=kH3T6OgXjF534bO3gfAUr6GpXZ5Jx0BQkK58nvuEcqA,325
34
+ swarm/blueprints/family_ties/settings.py,sha256=5zcVsq7ny3GLWcJnOplZW4fMFNtyC3ba0ZOESRD2gh4,425
35
+ swarm/blueprints/family_ties/urls.py,sha256=awRZHb1gb1p3I6YZzfKMGSydd6kYPTLgax2jZ1ocS4U,294
36
+ swarm/blueprints/family_ties/views.py,sha256=FbPkDNlFEixtRFbSpkr51IyJ28FRkXa1W5xyO_KeXH0,1081
37
+ swarm/blueprints/flock/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ swarm/blueprints/gaggle/blueprint_gaggle.py,sha256=27KqO5M3x6vBQWN3AOWK6VJjuypygk05B1QeFWwZVEQ,10161
39
+ swarm/blueprints/gotchaman/blueprint_gotchaman.py,sha256=bElwOpesPINuLJB_H8-1UoYiPvhnF_lFFjxUFHz0T5M,12326
40
+ swarm/blueprints/mcp_demo/blueprint_mcp_demo.py,sha256=eUu5_BvLwVSdWiEonXWKuN7YgKsqz04JB_KbMPowryc,6599
41
+ swarm/blueprints/messenger/templates/messenger/messenger.html,sha256=izuFtFn40Gm7M4gSUAUT5CIezjBjmNv2w4_fwSlv7VA,2323
42
+ swarm/blueprints/mission_improbable/blueprint_mission_improbable.py,sha256=N4Tw0laErP4eCJM103XOaVrqbFNKZRUG1Bpze8g79MI,12753
43
+ swarm/blueprints/monkai_magic/blueprint_monkai_magic.py,sha256=r0q6fV6QNsF28UHwO5RtZTwofke2YfHrlRAZtGgT9Yo,13315
44
+ swarm/blueprints/nebula_shellz/blueprint_nebula_shellz.py,sha256=VjUjlDiEVkMhooRtItiU-0YzwksO6yyk2Sf1mVCKTSc,9750
45
+ swarm/blueprints/omniplex/blueprint_omniplex.py,sha256=GuoxSbI05NzlDgtnUcHnqZhsxJ62FN2Y7SO2pbPhY_M,11486
46
+ swarm/blueprints/rue_code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ swarm/blueprints/rue_code/blueprint_rue_code.py,sha256=Eh1MWT4m0_62WEVtgcijzTe_5kUUAUIvV7dB9BSqULo,14647
48
+ swarm/blueprints/suggestion/blueprint_suggestion.py,sha256=nN9PqQJyDIa4lVHQluEviKZthsoKU4hejDUV4ed6KiA,5682
49
+ swarm/blueprints/unapologetic_press/blueprint_unapologetic_press.py,sha256=e1-HpSHNp1PJAcb3-6sI1kE7KeJRQ2lGTUJPXYjvaY4,17648
50
+ swarm/blueprints/whiskeytango_foxtrot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
+ swarm/blueprints/whiskeytango_foxtrot/apps.py,sha256=V1QKvyb2Vz-EtDNhhNe4tw2W9LYhNDuiaIq_fAU4ilw,334
52
+ swarm/blueprints/whiskeytango_foxtrot/blueprint_whiskeytango_foxtrot.py,sha256=ithMeMjU6bMeX1AeaSBX22yRmu9yizfafGD4sjykoeo,14301
53
+ swarm/extensions/__init__.py,sha256=SadbzfxckByaaqzuKPfXMvqmj45-dcMlavlfQYhGnzE,56
54
+ swarm/extensions/blueprint/__init__.py,sha256=VHSlq8q3AeclMsp63f8RXc3vhcZyzHH0uEaYV6AW-ZI,1841
55
+ swarm/extensions/blueprint/agent_utils.py,sha256=YWpANYTaFKAK4inWSirRlvzbHwQAH1wNkgW0esHKIeg,542
56
+ swarm/extensions/blueprint/blueprint_base.py,sha256=vebDxZnQiaz2lhivPYElhZM886BwigJc6EG_zEEG09U,7513
57
+ swarm/extensions/blueprint/blueprint_discovery.py,sha256=oU7q1JeVMP5k52hfTGObDy1Jn2v5lJRufz9BNvP3W58,5531
58
+ swarm/extensions/blueprint/blueprint_utils.py,sha256=Ef_pu-RYomqzFjMg6LOSPSdbYFCbYXjEoSvK1OT49Eo,702
59
+ swarm/extensions/blueprint/cli_handler.py,sha256=ri812w0w2JzXtLSmwfSbpJCCveokgABnTfZEv4Iup2Y,9250
60
+ swarm/extensions/blueprint/common_utils.py,sha256=jeKcN3lMdrpOYWIpErH3L5am13jHjaImpVvk2b0mps4,462
61
+ swarm/extensions/blueprint/config_loader.py,sha256=ldQGtv4tXeDJzL2GCylDxykZxYBo4ALFY2kS0jZ79Eo,5652
62
+ swarm/extensions/blueprint/django_utils.py,sha256=ObtkmF1JW4H2OEYa7vC6ussUsMBtDsZTTVeHGHI-GOQ,17457
63
+ swarm/extensions/blueprint/interactive_mode.py,sha256=vGmMuAgC93TLjMi2RkXQ2FkWfIUblyOTFGHmVdGKLSQ,4572
64
+ swarm/extensions/blueprint/output_utils.py,sha256=8OtVE3gEvPeeTu4Juo6Ad6omSlMqSuAtckXXx7P1CyQ,4022
65
+ swarm/extensions/blueprint/spinner.py,sha256=3J0ZrNzoI5O5qR7hnCeRM3dZx2fLb_H3zkoj_AYt5LQ,3394
66
+ swarm/extensions/blueprint/modes/rest_mode.py,sha256=KZuB_j2NfomER7CmlsLBqRipU3DymKY-9RpoGilMH0I,1357
67
+ swarm/extensions/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
+ swarm/extensions/cli/blueprint_runner.py,sha256=CG6XfOiDWuc84I_qefBpkwxEs7JcIbvNJqce9jBYUxo,9158
69
+ swarm/extensions/cli/cli_args.py,sha256=Lws6Q3I-DNpzq9qSRN8ylUXg-lWly1SuqDSQF9n50bw,2980
70
+ swarm/extensions/cli/interactive_shell.py,sha256=ocHBP975uqJU5LQyM2IiMVW5lQ387lgYHe3sme9ucX4,1322
71
+ swarm/extensions/cli/main.py,sha256=NnmovA7h1Rj1eDQVYe9AN6-eraIbIclHesNVmQPjdk4,1002
72
+ swarm/extensions/cli/selection.py,sha256=etdG6hJFgnLuvD_sVJvXg8qFcgjzCjyL-vYyxWcU0TI,2002
73
+ swarm/extensions/cli/utils.py,sha256=amDW-jbiM12N-t72j2S0cHP3Mxgoo3nrcwq6CwN9HFY,3290
74
+ swarm/extensions/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
+ swarm/extensions/cli/commands/blueprint_management.py,sha256=dLNLLoTjInXQ1m9zRyNxu8NacDgwqYY50GvnhSiMQ_I,1116
76
+ swarm/extensions/cli/commands/config_management.py,sha256=RFu9AP437aqUnyy8RDoyoZgW0WfT7h88_CQJaUnCR9E,480
77
+ swarm/extensions/cli/commands/edit_config.py,sha256=O2Y-BKOSx7shSc-kspyseEQvtIeyQBUCD7Aj3r9dirw,2325
78
+ swarm/extensions/cli/commands/list_blueprints.py,sha256=TyZv_dqM_UTK84-s-Dp7UWUcvWHXsNuxnCRNNNymWio,768
79
+ swarm/extensions/cli/commands/validate_env.py,sha256=VXBjx9etvj4Re8qLwIPoHr4g5VwbwBCBdsr8gGLLYHI,1958
80
+ swarm/extensions/cli/commands/validate_envvars.py,sha256=7-BDPYzV7wsga7kOggHNuCscI-7z-oPjMEBhq-ndDXA,1588
81
+ swarm/extensions/cli/utils/discover_commands.py,sha256=aJdU3kSmLlpBxzGdfOA88AaCwpknHSD2cE0piCHZRUY,1053
82
+ swarm/extensions/cli/utils/env_setup.py,sha256=k7QxRjzIGx5HC6RVZP9QSaaXEKMkcKCewD66u0e7qfE,496
83
+ swarm/extensions/config/__init__.py,sha256=WjmGxMU5k3S40TNQxTfByYcT2YAchq_5gzXFWDLrLzU,141
84
+ swarm/extensions/config/config_loader.py,sha256=CCT6U-iduNcB7hoeyPRonZR9veFzqoBGvEP2pweci2Y,4813
85
+ swarm/extensions/config/config_manager.py,sha256=bBT-NGbRdsXoJ-lxZM5kjAf5FvVVGRVdbbCQJiCX1_0,9951
86
+ swarm/extensions/config/server_config.py,sha256=iBlQOaFQmkEPNLmVpAQvXlSWhTsu-YMIjEf-H-7QfUU,1882
87
+ swarm/extensions/config/setup_wizard.py,sha256=yAZ7MOgc8ZGti2kjZ72G6QLFBI0lbhXAa7Wi7SeXDYo,4567
88
+ swarm/extensions/config/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
+ swarm/extensions/config/utils/logger.py,sha256=sUkKdZsjRiCGGCEPfZ4YqeZDbiaUeGFOa3mdbVOTmvU,1242
90
+ swarm/extensions/launchers/__init__.py,sha256=RR4up00HKqXOOToxb63mKZ2o9fq-o75bUw7dZuxkAVk,56
91
+ swarm/extensions/launchers/build_launchers.py,sha256=Eh3ODR9L4KinG1GDK4-lF3NE0EZ-ArCrP3fxtGYhXgs,433
92
+ swarm/extensions/launchers/build_swarm_wrapper.py,sha256=c_9oR3To4M2cZyc1uYSiysHLhUGX5FkCAQk9AG7Va2Q,231
93
+ swarm/extensions/launchers/swarm_api.py,sha256=f8olTI5JVdayp923etVQWsP8WRquPG5Mw3Q40ItN6kY,2877
94
+ swarm/extensions/launchers/swarm_cli.py,sha256=dlvMq2HvUI2XlADuTzM8kpeedPkqzKB6k0oy7z2V_p0,9747
95
+ swarm/extensions/launchers/swarm_wrapper.py,sha256=3K58yqPN4Ct0c7zfSDKRIGdL1Q7WOBXmAVHXT-aaPj4,1004
96
+ swarm/llm/chat_completion.py,sha256=HnuuBtTooODJwU8egi3JSngmgo8076CBxF_0XqxDM2M,7634
97
+ swarm/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
+ swarm/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
+ swarm/management/commands/runserver.py,sha256=MQJxuV_4le4u_4RJu25OyiDgcEOyIB9StQ2U8xrkTOA,2621
100
+ swarm/migrations/0010_initial_chat_models.py,sha256=qJbvLReRBEOE08FkxjOWMcwu7Ny4epNI_eG1PF8wcWM,1900
101
+ swarm/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
+ swarm/repl/__init__.py,sha256=hNU3HxjJJi6w5xgx34n3253QJPspFltrK7AM0G_1TlE,32
103
+ swarm/repl/repl.py,sha256=sfVdSiDrStpZyxZehPn0nAxqaja2eySL9v9CfWhZEVc,2609
104
+ swarm/static/contrib/fonts/fontawesome-webfont.ttf,sha256=VffZ6ZuOLU4OGTsvAnVQHm2cHr0pytvqag2kioWH4-A,146
105
+ swarm/static/contrib/fonts/fontawesome-webfont.woff,sha256=VffZ6ZuOLU4OGTsvAnVQHm2cHr0pytvqag2kioWH4-A,146
106
+ swarm/static/contrib/fonts/fontawesome-webfont.woff2,sha256=VffZ6ZuOLU4OGTsvAnVQHm2cHr0pytvqag2kioWH4-A,146
107
+ swarm/static/contrib/markedjs/marked.min.js,sha256=ixCmFz1ST8bJe8lYm6g4PgIS1cDWF-FRnl9OagyfIk8,39249
108
+ swarm/static/contrib/tabler-icons/adjustments-horizontal.svg,sha256=vxgHX9-4TmrGFv5RLhP3quTD9LWh5SNAimbI627gx5o,640
109
+ swarm/static/contrib/tabler-icons/alert-triangle.svg,sha256=gxyaxDShS46IVXdYEM2XHP8EVzMAEKTDyB90Iz2-5f8,506
110
+ swarm/static/contrib/tabler-icons/archive.svg,sha256=CYCi5N6si5jV8i_q6wHCT1hatnkpBOH5QQ40F5gQ2gw,488
111
+ swarm/static/contrib/tabler-icons/artboard.svg,sha256=jPoQ3vfdeVoSoGJxUOg6VLCiPp-BP3oU_X6-3B5r9B4,604
112
+ swarm/static/contrib/tabler-icons/automatic-gearbox.svg,sha256=D7bNI-yKcn5sf2nufvMlV6FvmhTfaqack5QsZE4NzLo,594
113
+ swarm/static/contrib/tabler-icons/box-multiple.svg,sha256=ranHl2fyhPSasYvTWlwHh7ZOEo2cFiKBuiv18QIhEa4,498
114
+ swarm/static/contrib/tabler-icons/carambola.svg,sha256=rHpYxin07lR34uMzP1v1hU9cH5wZz8Dcluwol4GM5a8,611
115
+ swarm/static/contrib/tabler-icons/copy.svg,sha256=EyzzGI9ve5xPRMT8-TfAJt1-6hnLjkZwwSWGO5BOwp0,580
116
+ swarm/static/contrib/tabler-icons/download.svg,sha256=NJNt8BlcJhCyRorNPnjUvjhEPnwHa_tRMYJ9OtKCeiE,399
117
+ swarm/static/contrib/tabler-icons/edit.svg,sha256=R2_4UhC0AiAp8-g-uhbEsow2JIY07Uq7lxsum7RTrvg,481
118
+ swarm/static/contrib/tabler-icons/headset.svg,sha256=iqPoDoxHGSfpEQDW-o4yWNmcOSdH4C7GZdTAUzZgPbE,584
119
+ swarm/static/contrib/tabler-icons/layout-sidebar-left-collapse.svg,sha256=gGCwuGCGj4sQCx5N_ehAStbS3rx5XUBMEz0gHn-Ivxk,470
120
+ swarm/static/contrib/tabler-icons/layout-sidebar-left-expand.svg,sha256=qrQGKaVjBPXLhCN6AUvqo1d4LSH7-Wu8oMQZrDiJai8,470
121
+ swarm/static/contrib/tabler-icons/layout-sidebar-right-collapse.svg,sha256=hhRc_GF2iD2msRKn0QIlHeYcfpccqP3mpw-iebqpCZI,470
122
+ swarm/static/contrib/tabler-icons/layout-sidebar-right-expand.svg,sha256=A4vOygRo_-AvlSAL2pZojEy9TlgHnMjqx40ybA13ouU,471
123
+ swarm/static/contrib/tabler-icons/message-chatbot.svg,sha256=3kzJqimURtFYouNSU5xWN4AqzUk92oAvNf1GnNT90x8,516
124
+ swarm/static/contrib/tabler-icons/message-star.svg,sha256=EyJPjs5MGxIJ_uBFYEaMxBMVxeqbf7vNgi70ytj1muA,806
125
+ swarm/static/contrib/tabler-icons/message-x.svg,sha256=O42m_yEBWrkg0X_DVNQd7-2KZNvAzu-EUD-lyLTYmJQ,542
126
+ swarm/static/contrib/tabler-icons/message.svg,sha256=IpzYNETPNs0TBX5Hnka_HtfsC8LE-K6lqKY_DJGvLGs,484
127
+ swarm/static/contrib/tabler-icons/paperclip.svg,sha256=uGqKL5F5BllN3yD0xFCqu7njyYU-DFxccgAsTE8Z2TI,389
128
+ swarm/static/contrib/tabler-icons/playlist-add.svg,sha256=IZ3YfhAK8PAGq49TavITQ_L7NcZP65HsQAXlUmEPwtI,422
129
+ swarm/static/contrib/tabler-icons/robot.svg,sha256=clX91lxB8bXOcUZJ9Rfs42XVQzkNZRWzEbDUioV0Wwg,582
130
+ swarm/static/contrib/tabler-icons/search.svg,sha256=OD-rI7w852D0e-E6BV8oJWpoRp-0z52Moz_LCbzVP1E,376
131
+ swarm/static/contrib/tabler-icons/settings.svg,sha256=mPEM7wVxqbuvlUyKXTaBB8JHIV-taLxiprLH38DilkI,898
132
+ swarm/static/contrib/tabler-icons/thumb-down.svg,sha256=295gU94RFvRqDj57pcn5q1tJ5XgZ9mishMsdsoGNs4g,461
133
+ swarm/static/contrib/tabler-icons/thumb-up.svg,sha256=VErjBaOuYIWf0A-Q5wiv27wSADqfyczpSBW7637dCKc,465
134
+ swarm/static/contrib/tabler-icons/filled/carambola.svg,sha256=AJDlJ7UMFzo1DCLP5S9HTAMvtMNyWIm7UBDdYwWVdH4,625
135
+ swarm/static/contrib/tabler-icons/filled/paint.svg,sha256=ExnUx5q2P5L9gqAUIo7Yi3eSpFf70w0aDlrMcXNakGE,625
136
+ swarm/static/css/dropdown.css,sha256=cUzKXj4rFoXzTddU8LNj2gXz4bA_j7KdnD6Jnzc4A24,363
137
+ swarm/static/htmx/htmx.min.js,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
+ swarm/static/js/dropdown.js,sha256=Vy3FGUQz_DnstV_CgSuZQghpoAfxqVupEsW8aahZauk,1110
139
+ swarm/static/rest_mode/css/base.css,sha256=RrauHcOBb2UsFVK5Px0RA9LFW4etIpACfH54fskGGTQ,10190
140
+ swarm/static/rest_mode/css/chat-history.css,sha256=2dwpl6tp-dwY28ypHJyRr3tIo4ynmd7QwCqMaq_Yq0Q,5963
141
+ swarm/static/rest_mode/css/chat.css,sha256=TaW9m3i0tOaCHdLj_XnE0Bxgnf4YMBouC_CAuPC8vpg,6721
142
+ swarm/static/rest_mode/css/chatbot.css,sha256=amLMNJep-mReOl9fi7cooQLcTMy0wwav9EBziGLKepo,1475
143
+ swarm/static/rest_mode/css/chatgpt.css,sha256=_IWj_Pbh_FoHqCn4pLJFf_2KJkGVIhx3PFDPulTQTxQ,1126
144
+ swarm/static/rest_mode/css/general.css,sha256=onEYMsQ1ufBoQ4B9oz3y4qKL2J3Vm0QtV7IjmseOLhI,2035
145
+ swarm/static/rest_mode/css/layout.css,sha256=AFgJ_V6p51RYDveN8UBL8QLXrdjAmf66EnKCgzgbpyM,3254
146
+ swarm/static/rest_mode/css/messages.css,sha256=YHL5wNbP387gIEUI2rrc-D9YrD9N6kg1_ZO8D_Qup8Y,1566
147
+ swarm/static/rest_mode/css/messenger.css,sha256=PUPwjFq0ZmVy1QYWFlDwG7V6fhG1_AL4ltYrnoVylyg,2805
148
+ swarm/static/rest_mode/css/settings.css,sha256=h-CCaKo47W2UOUS9cmufg_CKXPEOnIsJcklXqs5vUJ0,2432
149
+ swarm/static/rest_mode/css/simple.css,sha256=yZWS1WtKbEoou3xhfBKVn6Pb06CA_CHn-BI3fO0mfmE,830
150
+ swarm/static/rest_mode/css/slack.css,sha256=gPCI-ff_zGcZ1U6r7SxjnxpZ20K_PP8oumcuPr5Qnuw,1022
151
+ swarm/static/rest_mode/css/style.css,sha256=5HUYyrf_OazZorAJ59U_I1YwQ3uWRHsRhAaQrDT7NPQ,3216
152
+ swarm/static/rest_mode/css/theme.css,sha256=NVEtV_UhcDXlA_gCFzCxKFcXe9P_CYeKyzf7mAMzFyI,903
153
+ swarm/static/rest_mode/css/toast.css,sha256=oxcrp7A3vWY4QBLeHTdaA0rft7x-iwvr2NvcDWepeXo,706
154
+ swarm/static/rest_mode/css/colors/corporate.css,sha256=1083vv4inVV35XrmqRZu5gqRsAhnflqxOoleqdJSzRE,2027
155
+ swarm/static/rest_mode/css/colors/pastel.css,sha256=9F70z98HRBu3hZLNlSepfZ24zAiyOslyqbfvaNn9wTE,2456
156
+ swarm/static/rest_mode/css/colors/tropical.css,sha256=oadHNGghCYkd2jNToTabckh7yrR5toQhddSQk0Txq9c,2528
157
+ swarm/static/rest_mode/css/layouts/messenger-layout.css,sha256=XuAx8LRjdaTGo1Adya-Ren8GiZeAe4UcWA8yXGO-LeU,321
158
+ swarm/static/rest_mode/css/layouts/minimalist-layout.css,sha256=4l06WNTuasTzaWuyUz_FHF7-knmxCzZrU10_QBaUs0U,1257
159
+ swarm/static/rest_mode/css/layouts/mobile-layout.css,sha256=-9ePbwt47wZ1qH_fF8wDSmN8q_bNk0no3LG6Roo5OxA,129
160
+ swarm/static/rest_mode/js/auth.js,sha256=6nw1ILMd5QEjR-k5DyKYSBeNTMUrg-sfUiC-G8kCV_w,202
161
+ swarm/static/rest_mode/js/blueprint.js,sha256=slQzz6jB_uP-zzWykmqQtDQc3yv28mUk-DZipKQjBlQ,1239
162
+ swarm/static/rest_mode/js/blueprintUtils.js,sha256=-0LkrPsBSZ8D8o7QmT2g7Rm_aQ4YTQ6fgbOMYE96UAc,461
163
+ swarm/static/rest_mode/js/chatLogic.js,sha256=XScNtw0qpPkhLwhk8cWctHBArv0MJbm5JExdWCBufKU,3053
164
+ swarm/static/rest_mode/js/debug.js,sha256=wQvouiFyxT62dL_sQ8VkdU7re99JxJ5zLckU6PvLHUk,2125
165
+ swarm/static/rest_mode/js/events.js,sha256=8UFyAmAHu4-HK4Bfckytatd4GBrAQwgfjY3xs5ZQRgM,3703
166
+ swarm/static/rest_mode/js/main.js,sha256=QhcVh7UocC4USpcdpsema8PHwy8K7ylGWPmT6pUtjjQ,580
167
+ swarm/static/rest_mode/js/messages.js,sha256=offtFtDA9joqMZejTUU7BbEeU0M2QpWtbtM4WGiuPfo,8301
168
+ swarm/static/rest_mode/js/messengerLogic.js,sha256=bWuFpsUyQsEDPePQZnGp9Zmc3Ikmu7vq-ZisFWr80sQ,14917
169
+ swarm/static/rest_mode/js/rendering.js,sha256=4pY0oGrgyqv2DmGBoYZ4bakzfYCgkGirW1jRRgBevOA,4517
170
+ swarm/static/rest_mode/js/settings.js,sha256=flinYM3_aAzLOPMJEiUp1CQAx8Mm-cq77kSTeSnqkTU,4383
171
+ swarm/static/rest_mode/js/sidebar.js,sha256=xYsShufjz8ve3Fsot9LlRI31Dj6jxpPzuq3py6VJAcg,3133
172
+ swarm/static/rest_mode/js/simpleLogic.js,sha256=9F85JmT5eJXVhKpv6wgsRtSSqtfWpD0jVvQnOcFDNHg,1464
173
+ swarm/static/rest_mode/js/slackLogic.js,sha256=S0ByXaXOj08EjruulNOgrXcqGE-8zZULRayJI76AUAw,2445
174
+ swarm/static/rest_mode/js/splash.js,sha256=B1p9BR2UsfjwNPqeVTDkzT_VQK0lZuOPwB1PWbOfnYI,2839
175
+ swarm/static/rest_mode/js/theme.js,sha256=X8YjouxHXGIVcY9FHVUDiJJpFABAxB7Orair_t1osjE,4233
176
+ swarm/static/rest_mode/js/toast.js,sha256=UKKaDoMeLudvS_Yp7FWQoXvcYn6eFC-MwGvG8aYRstI,1153
177
+ swarm/static/rest_mode/js/ui.js,sha256=In8MeGywkET2S_pKRFzZNE_VZo4QEaMQEJAwmF8fUPQ,8248
178
+ swarm/static/rest_mode/js/validation.js,sha256=yZLTu-YnYDDjP-kpss8NlCdjQt5TqiEBjneF6BpigYo,1593
179
+ swarm/static/rest_mode/js/modules/apiService.js,sha256=Mt5_5rwKjlTc36WLzE5b1hrYJEfj8i-kfMfIzt33V-Y,2924
180
+ swarm/static/rest_mode/js/modules/blueprintManager.js,sha256=xVImTb6PMCqShymeJ7FEeYgNeSkPKElzga1L2DaS4MQ,6112
181
+ swarm/static/rest_mode/js/modules/chatHistory.js,sha256=ALLjZvLHX8y43kbrM3StbQe3M8W-3rO3W1wakJLCjxw,4478
182
+ swarm/static/rest_mode/js/modules/debugLogger.js,sha256=aC66sQlqkSMLKlDSKOgfCM-IVz-H2DhECmZimmyZPwA,379
183
+ swarm/static/rest_mode/js/modules/eventHandlers.js,sha256=qxbGAQqXuMSP60r8DwZafQodCcp3EgKwG8gXxD1bpjQ,3910
184
+ swarm/static/rest_mode/js/modules/messageProcessor.js,sha256=5keCMqK_DrfI6X0hSV3QEbb4l-p5WPdf6dtzfAWI9CM,4450
185
+ swarm/static/rest_mode/js/modules/state.js,sha256=G-3XURThklkPfTkeK4fOw1tFLeyuXaHLxnKoCuV28dw,174
186
+ swarm/static/rest_mode/js/modules/userInteractions.js,sha256=3Z35T-LUulQr-ZSzR2hHFdL5ORrKcvL3Yx_ao_PG9IM,730
187
+ swarm/static/rest_mode/js/modules/validation.js,sha256=0cO0vRdTPeJGXUYpgfP4VPJPAzYvMq7r_WH2XvhaCJ4,849
188
+ swarm/static/rest_mode/svg/animated_spinner.svg,sha256=uX5a2UAU5Xm7zVw884hpuvnGO9qPYI6UBoA8whEd6Z8,416
189
+ swarm/static/rest_mode/svg/arrow_down.svg,sha256=1TULkQfk2sjYFikPS1ECfQM_vw7VCWYQmzfa59RKBqU,387
190
+ swarm/static/rest_mode/svg/arrow_left.svg,sha256=tEG2xRp3KVhRWCbnAEm4IDvDhBqOFTbCxk-znLhSOzg,389
191
+ swarm/static/rest_mode/svg/arrow_right.svg,sha256=nXbDN01H1ThNEIx1wyor4ClLX6h_H3zRtCWQWT1I0E0,387
192
+ swarm/static/rest_mode/svg/arrow_up.svg,sha256=yy0unxFyYaZI40JpMHA6NWSZmouyI7QToeHgSioh7Vg,388
193
+ swarm/static/rest_mode/svg/attach.svg,sha256=C71rmaz2O7TAeK9Occ2Zl0Zs9ZJn1VPqcFMnN6ieFVk,372
194
+ swarm/static/rest_mode/svg/avatar.svg,sha256=yk7nzKyV9_YfFr0b2Qf_wysYsdJd-qD1JJhPYBht2oY,389
195
+ swarm/static/rest_mode/svg/canvas.svg,sha256=3KKsRbWNMogd69XF3dAC60A9Srr2bb-lqx4zhBjdKtc,393
196
+ swarm/static/rest_mode/svg/chat_history.svg,sha256=QIJYGZB8pAoXLOCh_1gOeUazPEXpkiAS721tjlrDwCs,311
197
+ swarm/static/rest_mode/svg/close.svg,sha256=jvag87WkCHeSeta8xgHY9pS4o41Mi1-HNnECO3Jl8ME,380
198
+ swarm/static/rest_mode/svg/copy.svg,sha256=fy7rzebt6LFJCQZUx5NnQQzYbiAcc0ZUwv06uPH_GRE,267
199
+ swarm/static/rest_mode/svg/dark_mode.svg,sha256=03G2vhVx7VfsbwwqrWDklUhDoQ3McB06yNGQIa6z5HQ,200
200
+ swarm/static/rest_mode/svg/edit.svg,sha256=LagsxrwH462uLbnXSsO3DxrvE_2D8AfE3dTRuhcJPI8,370
201
+ swarm/static/rest_mode/svg/layout.svg,sha256=f2FCXQZ3bVHa1KGyjxjSGAsl5sUgNiFVfbzsFYR7jZE,653
202
+ swarm/static/rest_mode/svg/logo.svg,sha256=nKAKoOQa5BWwWIULebnx_i8n4AurFnDnw_7JNWWmvRk,597
203
+ swarm/static/rest_mode/svg/logout.svg,sha256=KwsIpmgRJUwJNQBOppGRw5WeklDNQSg1qAXgNDTDT4s,420
204
+ swarm/static/rest_mode/svg/mobile.svg,sha256=TPI_UDCHXWKFP6TMdzSIa4uCsvLdRqii89x7RSoNXho,263
205
+ swarm/static/rest_mode/svg/new_chat.svg,sha256=Al_Y_wJvoYJHPNDWSnk0pybUwAsYJa3a7uWQhf_7IKM,314
206
+ swarm/static/rest_mode/svg/not_visible.svg,sha256=3MAibmZQIYjOA8nliGMTDIu8YpNJdUsI8tO0qgrxPJE,774
207
+ swarm/static/rest_mode/svg/plus.svg,sha256=2dWAZGiSwNE8UdRnMSsREV3k7NxN11NILmt2VRnoGe8,428
208
+ swarm/static/rest_mode/svg/run_code.svg,sha256=bmxf2fHqjg4pZ5Sn6VG7cpiggwqIqTVpKI2GjOwekNI,302
209
+ swarm/static/rest_mode/svg/save.svg,sha256=5TudtKjW08KYLfMCiEcJuPcC9_OHzrAm57lM16q85aQ,242
210
+ swarm/static/rest_mode/svg/search.svg,sha256=lgQAvrGw9IJiIvYv0WgRg2kxKd63ZcVoTilHXfmp3_0,340
211
+ swarm/static/rest_mode/svg/settings.svg,sha256=WEtagh8nt7NnG6D8ebr46rugo_tnSsR-nVf1wO-WExQ,742
212
+ swarm/static/rest_mode/svg/speaker.svg,sha256=kQGhqH6Y5u9adwgUzEu_BFwhRQ3EE4I09PCYDIWBNkU,398
213
+ swarm/static/rest_mode/svg/stop.svg,sha256=b3JSTUS4stS5O2oYBN055pr6VqD9W0ihSMeLlNXiU_8,346
214
+ swarm/static/rest_mode/svg/thumbs_down.svg,sha256=msS4t_j_XkkKeusZvbvzWENjoRhhZuAzzBQq2_xzFcs,1574
215
+ swarm/static/rest_mode/svg/thumbs_up.svg,sha256=nybp8imzOK2mfQ6PqZP0X08UNbqO1_5JQf8sO61axnU,805
216
+ swarm/static/rest_mode/svg/toggle_off.svg,sha256=sKCoCQA-nijibG-JCh1yl5g0jM1PVy0XmS7flsLwOMk,345
217
+ swarm/static/rest_mode/svg/toggle_on.svg,sha256=ckSCIuW8I1aOhAitOxs_dr7uVXO3EFilWyBX7WaOOxc,372
218
+ swarm/static/rest_mode/svg/trash.svg,sha256=ynSZX5Xc0DlJeNNGUzC4n5IA4m_1xn105wxKF0zcsGg,576
219
+ swarm/static/rest_mode/svg/undo.svg,sha256=0pIAAA6nFlrrm5fxHT3LR5yeBoQYzsGDDf81ZsPdTHc,336
220
+ swarm/static/rest_mode/svg/visible.svg,sha256=dPKYA4sdjEyoqX6DG-gMuNc1_vsy3rQwRx28MLMtvn0,425
221
+ swarm/static/rest_mode/svg/voice.svg,sha256=rtTTy23nh9t_B2sqCMbvR1jetS-Lgdhr7CKJYBdRYUo,738
222
+ swarm/templates/base.html,sha256=yHhl6KDE6nwGKvijkS6QMueeIrK4Ql3CI2luZkIcNzM,1086
223
+ swarm/templates/chat.html,sha256=1OPRn3Q4bdg4dlX0w6a4ZZMMZdNyLrmsvYyuSRLxRSk,1657
224
+ swarm/templates/index.html,sha256=FbUCxo9rBOULi2f8RuAfTzeKFSUOIi0PawNvEHT1fIU,1368
225
+ swarm/templates/simple_blueprint_page.html,sha256=uHTqfDqQ2B5a4YV_nDEELM9T29aA-Vuf7h_ELZFCyas,1053
226
+ swarm/templates/account/login.html,sha256=PIOIg9ztWybty55v8lDX1cmwtHwPPjj2aWpv1f2wyOQ,705
227
+ swarm/templates/account/signup.html,sha256=HQMdaXKm2Ama-Jt3lbeU7EHYSGwzf8Kc5nJpoZb8ogg,1106
228
+ swarm/templates/rest_mode/message_ui.html,sha256=6niayyHGIs2DI3b-IPQ56RB11VmkByDSI6cGgacBLdE,2716
229
+ swarm/templates/rest_mode/slackbot.html,sha256=7-SiEt0ieTPiSGKBk7Epo8hgb7sU-Hy0RoJVn7Sl99U,1246
230
+ swarm/templates/rest_mode/components/chat_sidebar.html,sha256=cFm0lK09jRuQncS8HswpdlEOM2EXHkCkD68LGeYLFYE,2828
231
+ swarm/templates/rest_mode/components/header.html,sha256=Mg0cwV7tHEx1dcBmaYWDtfymQ0HDcTYUEhPBCOJv3qI,2078
232
+ swarm/templates/rest_mode/components/main_chat_pane.html,sha256=CnyYMGn46r4fJfuX4uqUrNabyVNPh6oJWG47WlkFc6U,2513
233
+ swarm/templates/rest_mode/components/settings_dialog.html,sha256=cH1pMCnigZWgTBp-Z5X_Bgm7rsZM_3oM7d_20DkM30U,5472
234
+ swarm/templates/rest_mode/components/splash_screen.html,sha256=ddtlCNtYER7bbFwpOlu_blKpPn9l60kmwMPvSxkKaeM,326
235
+ swarm/templates/rest_mode/components/top_bar.html,sha256=I-J0Bmmcr0c6_KXEEmM6mwTBVjIoTi8vth0fTObHSI8,836
236
+ swarm/templates/websocket_partials/final_system_message.html,sha256=hZeOez70ZvYsDrmq965kFzV6wh5dBkKkP2FTiXS0FWo,128
237
+ swarm/templates/websocket_partials/system_message.html,sha256=0eBzz9dJBmnwDwnh-X_7wDefSatbS1LepaLhXxN-qI4,171
238
+ swarm/templates/websocket_partials/user_message.html,sha256=-TjdT4-FKFVXeYsPglG3VayDYg1A2beE5gV6AQWu-00,149
239
+ swarm/utils/color_utils.py,sha256=utIfZ6ptGEdpHxIZiZ4gtfo5lLqZKQL5g0F8mEwMhTo,1184
240
+ swarm/utils/context_utils.py,sha256=2Eu372CsuDTt6ikZ0w3OkLrFp4t9hKdgU5Kkc8faDDM,19315
241
+ swarm/utils/general_utils.py,sha256=K3_Uy-189XSpLOxKGxl14fa2n7B0ZH28HgysL6vWG-M,7919
242
+ swarm/utils/log_utils.py,sha256=-qrTMYqxJKHLAgC_r-VeuwQHDUQv3zseVbks-9JQmCE,2523
243
+ swarm/utils/logger.py,sha256=g-ynqO3jqKx2rT2keiECsZ13aywFPsFlJAvo-SOeGlw,1679
244
+ swarm/utils/logger_setup.py,sha256=2A9bXicV03yAPpgMFJGQt5ePB1tLwdkk7sCo-0OiglU,714
245
+ swarm/utils/message_sequence.py,sha256=7Xa7YwGPgojfkrGcl-SbeR_BWwzXGDYNqAxq8F6XhDc,8616
246
+ swarm/utils/message_utils.py,sha256=oNTD7pfmnnu_Br24pR2VEX9afIZwFLwg2HJBLXs1blY,4074
247
+ swarm/utils/redact.py,sha256=L2lo927S575Ay7Jz6pUlK47Sxxzpd9IMybnDm6-WlC8,2955
248
+ swarm/views/__init__.py,sha256=AcLk0R7Y69FhIVgJK2hZs8M_gCR-h_5iqUywz89yuHM,1223
249
+ swarm/views/api_views.py,sha256=BbDEgI6Ftg-c-mMkE9DvRGZHIZ-WAZSfwqAB7j98WxM,1937
250
+ swarm/views/chat_views.py,sha256=ajTVOyQpMMjr3yK7m8chX8SszsHz83uB12mt3eJo3DU,11777
251
+ swarm/views/core_views.py,sha256=iGbits6HqVXE13vEkqvOBQHGS7LZb6Gg9Hcs6KjZmmk,5255
252
+ swarm/views/message_views.py,sha256=sDUnXyqKXC8WwIIMAlWf00s2_a2T9c75Na5FvYMJwBM,1596
253
+ swarm/views/model_views.py,sha256=aAbU4AZmrOTaPeKMWtoKK7FPYHdaN3Zbx55JfKzYTRY,2937
254
+ swarm/views/utils.py,sha256=geX3Z5ZDKFYyXYBMilc-4qgOSjhujK3AfRtvbXgFpXk,3643
255
+ swarm/views/web_views.py,sha256=ExQQeJpZ8CkLZQC_pXKOOmdnEy2qR3wEBP4LLp27DPU,7404
256
+ open_swarm-0.1.1743364176.dist-info/METADATA,sha256=M2N0GZ6eCr-zftMs_AnTpgGi8oxMLXyGci0VOf2-aMA,13680
257
+ open_swarm-0.1.1743364176.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
258
+ open_swarm-0.1.1743364176.dist-info/entry_points.txt,sha256=LudR3dBqGnglrE1n2zAeWo38Ck0m57sKPW36KfK-pzo,71
259
+ open_swarm-0.1.1743364176.dist-info/licenses/LICENSE,sha256=BU9bwRlnOt_JDIb6OT55Q4leLZx9RArDLTFnlDIrBEI,1062
260
+ open_swarm-0.1.1743364176.dist-info/RECORD,,
@@ -1,5 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.0)
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
-
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ swarm-cli = swarm.extensions.launchers.swarm_cli:app
swarm/__init__.py CHANGED
@@ -1,3 +1 @@
1
1
  default_app_config = 'swarm.apps.SwarmConfig'
2
-
3
- from .core import Swarm