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
+ /* Chat History Component Styles */
2
+ .chat-history-pane {
3
+ background-color: var(--bg-chat-history-pane);
4
+ padding: 0;
5
+ margin: 0;
6
+ display: flex;
7
+ flex-direction: column;
8
+ height: 100%;
9
+ overflow: hidden;
10
+ flex: 0 1 auto;
11
+ border-top-left-radius: 0 !important;
12
+ }
13
+
14
+ /* Chat History Header */
15
+ .chat-history-header {
16
+ display: block;
17
+ align-items: center;
18
+ justify-content: space-between;
19
+ padding: 10px 15px;
20
+ background-color: var(--bg-chat-history-header);
21
+ border-bottom: 1px solid var(--border-color);
22
+ position: sticky;
23
+ top: 0;
24
+ z-index: 10;
25
+ }
26
+
27
+ .chat-history-header > div {
28
+ display: flex;
29
+ align-items: center;
30
+ justify-content: flex-start; /* Align buttons to the left */
31
+ gap: 10px; /* Space between buttons */
32
+ flex-wrap: nowrap; /* Prevent wrapping */
33
+ width: 100%; /* Ensure full width for horizontal layout */
34
+ }
35
+
36
+ .new-chat-button {
37
+ margin-left: auto;
38
+ font-size: 1rem;
39
+ }
40
+
41
+ /* Style for Header Buttons */
42
+ .chat-history-header .input-button {
43
+ background: none;
44
+ border: none;
45
+ cursor: pointer;
46
+ padding: 8px;
47
+ display: flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ transition: background-color 0.3s, transform 0.2s;
51
+ }
52
+
53
+ .chat-history-header .input-button:hover {
54
+ background-color: rgba(0, 0, 0, 0.2);
55
+ transform: scale(1.05);
56
+ }
57
+
58
+ .chat-history-header .input-button .icon {
59
+ width: 20px;
60
+ height: 20px;
61
+ filter: var(--icon-filter);
62
+ transition: filter 0.3s ease;
63
+ }
64
+
65
+ /* Chat History List */
66
+ .chat-history-list {
67
+ list-style: none;
68
+ padding: 10px 15px;
69
+ margin: 0;
70
+ overflow-y: auto;
71
+ flex: 1;
72
+ }
73
+
74
+ /* Chat History Items */
75
+ .chat-history-item {
76
+ position: relative;
77
+ padding: 5px 8px;
78
+ margin-bottom: 5px;
79
+ border: none;
80
+ font-size: 0.9rem;
81
+ font-weight: normal;
82
+ transition: background-color var(--transition-duration);
83
+ }
84
+
85
+ .chat-history-item:hover {
86
+ background-color: rgba(255, 255, 255, 0.1);
87
+ cursor: pointer;
88
+ }
89
+
90
+ /* Details and Summaries */
91
+ .chat-history-pane details {
92
+ padding: 5px 8px;
93
+ cursor: pointer;
94
+ transition: background-color var(--transition-duration);
95
+ background-color: var(--bg-chat-history-pane);
96
+ }
97
+
98
+ .chat-history-pane details[open] {
99
+ background-color: var(--bg-message-other);
100
+ }
101
+
102
+ .chat-history-pane summary {
103
+ font-weight: normal;
104
+ font-size: 0.95rem;
105
+ cursor: pointer;
106
+ list-style: none;
107
+ display: block;
108
+ position: relative;
109
+ }
110
+
111
+ /* Hide Default Disclosure Triangle */
112
+ .chat-history-pane summary::-webkit-details-marker {
113
+ display: none;
114
+ }
115
+
116
+ .chat-history-pane summary::marker {
117
+ display: none;
118
+ }
119
+
120
+ /* Custom Indicator (Down/Up Arrow) */
121
+ .chat-history-pane summary::after {
122
+ content: '▼';
123
+ position: absolute;
124
+ right: 0;
125
+ top: 50%;
126
+ transform: translateY(-50%);
127
+ transition: transform 0.3s ease;
128
+ font-size: 0.8rem;
129
+ color: var(--text-secondary);
130
+ }
131
+
132
+ .chat-history-pane details[open] summary::after {
133
+ content: '▲';
134
+ }
135
+
136
+ /* Default State: Hide Details Content */
137
+ .chat-history-pane details:not([open]) > *:not(summary) {
138
+ display: none;
139
+ }
140
+
141
+ /* Open State: Show Details Content */
142
+ .chat-history-pane details[open] > *:not(summary) {
143
+ display: block;
144
+ }
145
+
146
+ .chat-history-pane details {
147
+ overflow: hidden;
148
+ transition: max-height 0.3s ease;
149
+ }
150
+
151
+ /* Chat History Text */
152
+ .chat-history-pane p {
153
+ margin: 10px 0 0;
154
+ color: var(--text-secondary);
155
+ font-size: 0.85rem;
156
+ }
157
+
158
+ /* Chat Item Time and Tools */
159
+ .chat-item-time {
160
+ font-size: 12px;
161
+ color: #888;
162
+ }
163
+
164
+ /* Updated: Chat Item Tools */
165
+ .chat-item-tools {
166
+ display: flex;
167
+ align-items: center;
168
+ gap: 10px;
169
+ margin-top: 5px;
170
+ }
171
+
172
+ /* Updated: Container for Tag Buttons and Delete Button */
173
+ .chat-item-tags {
174
+ display: flex;
175
+ gap: 8px;
176
+ width: 100%;
177
+ align-items: center;
178
+ }
179
+
180
+ /* New Addition: Push Delete Button to the Right */
181
+ .chat-item-tags .delete-chat-btn {
182
+ margin-left: auto;
183
+ }
184
+
185
+ /* Style for Each Tag Button */
186
+ .tag-button {
187
+ background-color: #e0e0e0;
188
+ border: none;
189
+ border-radius: 999px;
190
+ padding: 4px 12px;
191
+ font-size: 0.85rem;
192
+ cursor: pointer;
193
+ transition: background-color 0.3s, transform 0.2s;
194
+ color: #333;
195
+ }
196
+
197
+ .tag-button:hover {
198
+ background-color: #c0c0c0;
199
+ transform: translateY(-2px);
200
+ }
201
+
202
+ /* Style for Add Tag Button */
203
+ .add-tag-btn {
204
+ background-color: #d0d0d0;
205
+ }
206
+
207
+ /* Ensure the delete button remains on the right */
208
+ .toolbar-btn.delete-chat-btn {
209
+ background: none;
210
+ border: none;
211
+ cursor: pointer;
212
+ padding: 5px;
213
+ display: flex;
214
+ align-items: center;
215
+ justify-content: center;
216
+ transition: opacity 0.3s ease, transform 0.3s ease;
217
+ }
218
+
219
+ .toolbar-btn.delete-chat-btn .trash-icon {
220
+ filter: var(--icon-filter);
221
+ transition: filter 0.3s ease;
222
+ }
223
+
224
+ .toolbar-btn.delete-chat-btn:hover {
225
+ opacity: 1;
226
+ transform: scale(1.1);
227
+ }
228
+
229
+ /* Read More Link */
230
+ .read-more {
231
+ color: var(--button-primary);
232
+ text-decoration: underline;
233
+ cursor: pointer;
234
+ }
235
+
236
+ /* Responsive Design for Small Screens */
237
+ @media (max-width: 600px) {
238
+ .chat-history-pane {
239
+ flex: 1;
240
+ width: 100%;
241
+ }
242
+
243
+ .side-panes {
244
+ flex-direction: column;
245
+ max-width: 100%;
246
+ gap: 10px;
247
+ }
248
+
249
+ .chat-item-tags {
250
+ flex-wrap: wrap;
251
+ }
252
+
253
+ .chat-item-tools {
254
+ flex-direction: column;
255
+ align-items: flex-start;
256
+ }
257
+
258
+ .toolbar-btn.delete-chat-btn {
259
+ margin-top: 5px;
260
+ }
261
+
262
+ .chat-history-pane summary::after {
263
+ font-size: 0.7rem;
264
+ }
265
+
266
+ .chat-history-header .input-button {
267
+ padding: 6px;
268
+ }
269
+
270
+ .chat-history-header .input-button .icon {
271
+ width: 18px;
272
+ height: 18px;
273
+ }
274
+ }
275
+
276
+ /* CSS Variables for Theming */
277
+ :root {
278
+ --bg-chat-history-pane: #050505;
279
+ --border-color: #888888;
280
+ --text-secondary: #555555;
281
+ --bg-message-other: #999999;
282
+ --icon-color: #007bff;
283
+ --button-primary: #007bff;
284
+ --transition-duration: 0.3s;
285
+ --icon-filter: none;
286
+ }
@@ -0,0 +1,251 @@
1
+ /* General Form Container Styling */
2
+ .form-container {
3
+ display: flex;
4
+ flex-direction: column; /* Stack rows vertically */
5
+ align-items: stretch; /* Full-width rows */
6
+ gap: 5px; /* Space between rows */
7
+ width: 100%; /* Full width of parent */
8
+ padding: 10px;
9
+ border-radius: 8px;
10
+ box-sizing: border-box;
11
+ }
12
+
13
+ /* Input and Submit Button Row */
14
+ .send-container {
15
+ display: flex;
16
+ align-items: stretch; /* Ensure button matches input height */
17
+ width: 100%;
18
+ margin-bottom: 5px; /* Space below this row */
19
+ position: relative; /* Allow absolute positioning for dropdown */
20
+ border-radius: 20px; /* Match rounded corners */
21
+ overflow: hidden; /* Ensure elements visually align with rounded corners */
22
+ }
23
+
24
+ /* Input Field Styling */
25
+ .rounded-input {
26
+ flex-grow: 1; /* Take available space */
27
+ /* padding: 10px 15px; */
28
+ border: none; /* Remove internal border */
29
+ border-radius: 0; /* Reset radius to align with container */
30
+ outline: none;
31
+ box-sizing: border-box;
32
+ font-size: 18px;
33
+ margin: 0;
34
+ width: 100%;
35
+ color: var(--text-primary); /* Match app theme */
36
+ background-color: var(--bg-secondary); /* Match app theme */
37
+ }
38
+
39
+ /* Submit Button Styling */
40
+ .half-cut-button {
41
+ padding: 0 20px;
42
+ background-color: #707070;
43
+ color: white;
44
+ border: none;
45
+ border-radius: 0; /* Reset radius */
46
+ cursor: pointer;
47
+ font-size: 16px;
48
+ font-weight: bold;
49
+ white-space: nowrap;
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: center;
53
+ height: auto;
54
+ transition: background-color 0.3s ease;
55
+ margin: 0;
56
+ }
57
+
58
+ /* Adjusted Rounded Corners */
59
+ .send-container .rounded-input {
60
+ border-radius: 20px 0 0 20px; /* Rounded corners only on the left */
61
+ }
62
+
63
+ .send-container .half-cut-button {
64
+ border-radius: 0 20px 20px 0; /* Rounded corners only on the right */
65
+ }
66
+
67
+ .half-cut-button:hover {
68
+ background-color: #505050;
69
+ }
70
+
71
+ /* Dropdown and Buttons Group */
72
+ .dropdown-buttons-container {
73
+ display: flex;
74
+ align-items: stretch; /* Ensure items are vertically aligned */
75
+ gap: 10px; /* Space between dropdown and buttons */
76
+ border: 2px solid var(--border-color);
77
+ border-radius: 20px; /* Rounded corners for entire group */
78
+ padding: 5px; /* Internal spacing */
79
+ box-sizing: border-box;
80
+ width: 99%;
81
+ margin-left: 10px; /* Adjust value to control the shift */
82
+ }
83
+
84
+ /* Dropdown Styling */
85
+ .blueprint-dropdown {
86
+ flex-grow: 1; /* Take available space */
87
+ border: none; /* Remove internal border */
88
+ background-color: var(--border-color);
89
+ border-radius: 20px; /* Match group corners */
90
+ outline: none;
91
+ padding: 10px;
92
+ font-size: 14px;
93
+ color: var(--text-primary);
94
+ background-color: transparent; /* Match container background */
95
+ appearance: none; /* Remove default dropdown arrow styling */
96
+ }
97
+
98
+ /* Buttons in Dropdown Group */
99
+ .input-button {
100
+ background-color: var(--button-primary);
101
+ border: none;
102
+ padding: 10px;
103
+ border-radius: 4px;
104
+ cursor: pointer;
105
+ display: flex;
106
+ align-items: center;
107
+ justify-content: center;
108
+ transition: background-color 0.3s ease;
109
+ margin-top: 2px;
110
+ margin-right: 6px;
111
+ }
112
+
113
+ .button-row {
114
+ display: flex; /* Use flexbox layout */
115
+ gap: 3px; /* Add space between buttons */
116
+ border-radius: 2;
117
+ align-items: center; /* Center vertically */
118
+ justify-content: start; /* Align buttons to the left (or use center/end as needed) */
119
+ flex-wrap: wrap; /* Allow buttons to wrap if the container width is too small */
120
+ }
121
+
122
+ .input-button-subtle {
123
+ padding: 8px 12px; /* Add padding */
124
+ font-size: 1rem; /* Ensure consistent size */
125
+ cursor: pointer; /* Pointer on hover */
126
+ transition: background-color 0.3s ease; /* Smooth hover effect */
127
+ background-color: #6c757d; /* Grey background */
128
+ border: none;
129
+ /* border-radius: 4px; */
130
+ cursor: pointer;
131
+ display: flex;
132
+ align-items: center;
133
+ justify-content: center;
134
+ transition: background-color 0.3s ease;
135
+ /* margin-top: 2px; */
136
+ /* margin-right: 6px; */
137
+ }
138
+
139
+ .input-button-subtle:hover {
140
+ background-color: #007bff; /* Blue on hover */
141
+ }
142
+
143
+ .input-button-subtle img {
144
+ width: 1.3em;
145
+ height: 1.3em;
146
+ }
147
+
148
+ .input-button img {
149
+ width: 1.5em;
150
+ height: 1.5em;
151
+ }
152
+
153
+ .input-button:hover {
154
+ background-color: var(--button-hover-bg);
155
+ }
156
+
157
+ /* Hover Effects */
158
+ .half-cut-button:hover,
159
+ .input-button:hover {
160
+ background-color: #505050;
161
+ color: #fff;
162
+ }
163
+
164
+ /* Quick Prompts Styling */
165
+ .quick-prompts-container {
166
+ display: flex;
167
+ flex-wrap: wrap; /* Allow wrapping */
168
+ gap: 10px; /* Space between quick prompts */
169
+ margin: 10px 0; /* Vertical spacing */
170
+ justify-content: start; /* Align prompts to the left */
171
+ }
172
+
173
+ .quick-prompt-button {
174
+ background-color: var(--button-primary);
175
+ color: white;
176
+ border: none;
177
+ border-radius: 5px;
178
+ padding: 5px 10px;
179
+ font-size: 0.85rem;
180
+ cursor: pointer;
181
+ transition: background-color 0.2s ease;
182
+ }
183
+
184
+ .quick-prompt-button:hover {
185
+ background-color: var(--button-hover-bg);
186
+ }
187
+
188
+ .message {
189
+ position: relative;
190
+ padding: 10px;
191
+ margin: 5px 0;
192
+ background-color: #f9f9f9;
193
+ border-radius: 5px;
194
+ transition: background-color 0.2s, height 0.3s ease;
195
+ overflow: hidden; /* Ensure toolbar doesn’t overflow the container */
196
+ }
197
+
198
+ .message-toolbar {
199
+ position: relative; /* Allow the toolbar to expand the container */
200
+ height: 0; /* Hidden initially */
201
+ overflow: hidden; /* Hide contents when collapsed */
202
+ display: flex;
203
+ gap: 5px;
204
+ opacity: 0;
205
+ transition: height 0.3s ease, opacity 0.3s ease;
206
+ }
207
+
208
+ .message:hover .message-toolbar {
209
+ height: 50px; /* Adjust to the desired toolbar height */
210
+ opacity: 1;
211
+ }
212
+
213
+ .message-toolbar .toolbar-btn {
214
+ flex: 1;
215
+ opacity: 0.3; /* Slightly visible by default */
216
+ visibility: visible; /* Ensure buttons remain interactable */
217
+ background: none;
218
+ border: none;
219
+ padding: 5px;
220
+ cursor: pointer;
221
+ display: flex;
222
+ align-items: center;
223
+ justify-content: center;
224
+ transition: opacity 0.3s ease, transform 0.3s ease;
225
+ }
226
+ .toggle-chat-button {
227
+ background-color: #6c757d; /* Grey */
228
+ color: #fff;
229
+ border: none;
230
+ border-radius: 4px;
231
+ cursor: pointer;
232
+ display: flex;
233
+ align-items: center;
234
+ justify-content: center;
235
+ transition: background-color 0.3s ease;
236
+ margin-top: 2px;
237
+ margin-right: 6px;
238
+ }
239
+
240
+ .toggle-chat-button:hover {
241
+ background-color: #007bff; /* Blue on hover */
242
+ }
243
+
244
+ .message-toolbar .toolbar-btn:hover {
245
+ opacity: 1; /* Fully visible on hover */
246
+ transform: scale(1.1); /* Slight zoom-in effect */
247
+ }
248
+
249
+ .message-toolbar .toolbar-gap {
250
+ width: 14px; /* Gap size between button groups */
251
+ }
@@ -0,0 +1,74 @@
1
+ .chatbot-input-container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ padding: 10px;
5
+ background: #2F2F2F;
6
+ border-radius: 10px;
7
+ margin: 10px;
8
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
9
+ }
10
+ .chatbot-input {
11
+ width: 100%;
12
+ padding: 12px 15px;
13
+ font-size: 16px;
14
+ border: none;
15
+ border-radius: 5px;
16
+ background: #3F3F3F;
17
+ color: #D3D3D3;
18
+ margin-bottom: 8px;
19
+ outline: none;
20
+ }
21
+ .chatbot-input::placeholder {
22
+ color: #A0A0A0;
23
+ }
24
+ .input-actions {
25
+ display: flex;
26
+ justify-content: space-between;
27
+ align-items: center;
28
+ flex-wrap: wrap;
29
+ gap: 5px;
30
+ }
31
+ .blueprint-dropdown {
32
+ padding: 8px;
33
+ border-radius: 5px;
34
+ background: #3F3F3F;
35
+ color: #D3D3D3;
36
+ border: none;
37
+ margin-right: 5px;
38
+ max-width: 150px;
39
+ }
40
+ .mode-button {
41
+ background: none;
42
+ border: none;
43
+ padding: 8px;
44
+ cursor: pointer;
45
+ color: #A0A0A0;
46
+ transition: color 0.2s;
47
+ }
48
+ .mode-button img {
49
+ width: 20px;
50
+ height: 20px;
51
+ filter: invert(70%) sepia(10%) hue-rotate(180deg);
52
+ }
53
+ .mode-button:hover {
54
+ color: #D3D3D3;
55
+ }
56
+ .mode-button:hover img {
57
+ filter: invert(90%) sepia(20%) hue-rotate(180deg);
58
+ }
59
+ @media (max-width: 600px) {
60
+ .input-actions {
61
+ flex-direction: column;
62
+ align-items: flex-start;
63
+ }
64
+ .blueprint-dropdown {
65
+ width: 100%;
66
+ margin-bottom: 5px;
67
+ }
68
+ .mode-button {
69
+ padding: 5px;
70
+ }
71
+ }
72
+ .chat-history-pane {
73
+ border-top-left-radius: 0 !important;
74
+ }
@@ -0,0 +1,62 @@
1
+ .container[data-theme-layout="chatgpt-layout"] {
2
+ display: flex;
3
+ height: 100vh;
4
+ }
5
+ .blueprint-sidebar {
6
+ width: 250px;
7
+ background: #f4f4f4;
8
+ padding: 10px;
9
+ border-right: 1px solid #ddd;
10
+ }
11
+ .sidebar-header {
12
+ display: flex;
13
+ justify-content: space-between;
14
+ }
15
+ .blueprint-list {
16
+ list-style: none;
17
+ padding: 0;
18
+ }
19
+ .blueprint-list li {
20
+ padding: 10px;
21
+ cursor: pointer;
22
+ }
23
+ .blueprint-list li:hover {
24
+ background: #e0e0e0;
25
+ }
26
+ .main-pane {
27
+ flex-grow: 1;
28
+ display: flex;
29
+ flex-direction: column;
30
+ }
31
+ .message-container {
32
+ flex-grow: 1;
33
+ overflow-y: auto;
34
+ padding: 20px;
35
+ }
36
+ .user-message {
37
+ background: #DCF8C6;
38
+ padding: 10px;
39
+ margin: 5px 0;
40
+ border-radius: 5px;
41
+ align-self: flex-end;
42
+ max-width: 70%;
43
+ }
44
+ .assistant-message {
45
+ background: #E6E6E6;
46
+ padding: 10px;
47
+ margin: 5px 0;
48
+ border-radius: 5px;
49
+ align-self: flex-start;
50
+ max-width: 70%;
51
+ }
52
+ .error-message {
53
+ background: #F8D7DA;
54
+ color: #721C24;
55
+ padding: 10px;
56
+ margin: 5px 0;
57
+ border-radius: 5px;
58
+ }
59
+ .send-container {
60
+ padding: 10px;
61
+ border-top: 1px solid #ddd;
62
+ }