open-swarm 0.1.1745275181__py3-none-any.whl → 0.1.1748636259__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 (296) hide show
  1. open_swarm-0.1.1748636259.dist-info/METADATA +188 -0
  2. open_swarm-0.1.1748636259.dist-info/RECORD +82 -0
  3. {open_swarm-0.1.1745275181.dist-info → open_swarm-0.1.1748636259.dist-info}/WHEEL +2 -1
  4. open_swarm-0.1.1748636259.dist-info/entry_points.txt +3 -0
  5. open_swarm-0.1.1748636259.dist-info/top_level.txt +1 -0
  6. swarm/agent/agent.py +49 -0
  7. swarm/auth.py +48 -113
  8. swarm/consumers.py +0 -19
  9. swarm/extensions/blueprint/__init__.py +16 -30
  10. swarm/{core → extensions/blueprint}/agent_utils.py +1 -1
  11. swarm/extensions/blueprint/blueprint_base.py +458 -0
  12. swarm/extensions/blueprint/blueprint_discovery.py +112 -0
  13. swarm/extensions/blueprint/output_utils.py +95 -0
  14. swarm/{core → extensions/blueprint}/spinner.py +21 -30
  15. swarm/extensions/cli/cli_args.py +0 -6
  16. swarm/extensions/cli/commands/blueprint_management.py +9 -47
  17. swarm/extensions/cli/commands/config_management.py +6 -5
  18. swarm/extensions/cli/commands/edit_config.py +7 -16
  19. swarm/extensions/cli/commands/list_blueprints.py +1 -1
  20. swarm/extensions/cli/commands/validate_env.py +4 -11
  21. swarm/extensions/cli/commands/validate_envvars.py +6 -6
  22. swarm/extensions/cli/interactive_shell.py +2 -16
  23. swarm/extensions/config/config_loader.py +201 -107
  24. swarm/{core → extensions/config}/config_manager.py +38 -50
  25. swarm/{core → extensions/config}/server_config.py +0 -32
  26. swarm/extensions/launchers/build_launchers.py +14 -0
  27. swarm/{core → extensions/launchers}/build_swarm_wrapper.py +0 -0
  28. swarm/extensions/launchers/swarm_api.py +64 -8
  29. swarm/extensions/launchers/swarm_cli.py +300 -8
  30. swarm/llm/chat_completion.py +195 -0
  31. swarm/serializers.py +5 -96
  32. swarm/settings.py +111 -99
  33. swarm/urls.py +74 -57
  34. swarm/utils/context_utils.py +4 -10
  35. swarm/utils/general_utils.py +0 -21
  36. swarm/utils/redact.py +36 -23
  37. swarm/views/api_views.py +39 -48
  38. swarm/views/chat_views.py +70 -237
  39. swarm/views/core_views.py +87 -80
  40. swarm/views/model_views.py +121 -64
  41. swarm/views/utils.py +441 -65
  42. swarm/views/web_views.py +2 -2
  43. open_swarm-0.1.1745275181.dist-info/METADATA +0 -874
  44. open_swarm-0.1.1745275181.dist-info/RECORD +0 -319
  45. open_swarm-0.1.1745275181.dist-info/entry_points.txt +0 -4
  46. swarm/blueprints/README.md +0 -68
  47. swarm/blueprints/blueprint_audit_status.json +0 -27
  48. swarm/blueprints/chatbot/README.md +0 -40
  49. swarm/blueprints/chatbot/blueprint_chatbot.py +0 -471
  50. swarm/blueprints/chatbot/metadata.json +0 -23
  51. swarm/blueprints/chatbot/templates/chatbot/chatbot.html +0 -33
  52. swarm/blueprints/chucks_angels/README.md +0 -11
  53. swarm/blueprints/chucks_angels/blueprint_chucks_angels.py +0 -7
  54. swarm/blueprints/chucks_angels/test_basic.py +0 -3
  55. swarm/blueprints/codey/CODEY.md +0 -15
  56. swarm/blueprints/codey/README.md +0 -115
  57. swarm/blueprints/codey/blueprint_codey.py +0 -1072
  58. swarm/blueprints/codey/codey_cli.py +0 -373
  59. swarm/blueprints/codey/instructions.md +0 -17
  60. swarm/blueprints/codey/metadata.json +0 -23
  61. swarm/blueprints/common/operation_box_utils.py +0 -83
  62. swarm/blueprints/digitalbutlers/README.md +0 -11
  63. swarm/blueprints/digitalbutlers/__init__.py +0 -1
  64. swarm/blueprints/digitalbutlers/blueprint_digitalbutlers.py +0 -7
  65. swarm/blueprints/digitalbutlers/test_basic.py +0 -3
  66. swarm/blueprints/divine_code/README.md +0 -3
  67. swarm/blueprints/divine_code/__init__.py +0 -10
  68. swarm/blueprints/divine_code/apps.py +0 -11
  69. swarm/blueprints/divine_code/blueprint_divine_code.py +0 -270
  70. swarm/blueprints/django_chat/apps.py +0 -6
  71. swarm/blueprints/django_chat/blueprint_django_chat.py +0 -268
  72. swarm/blueprints/django_chat/templates/django_chat/django_chat_webpage.html +0 -37
  73. swarm/blueprints/django_chat/urls.py +0 -8
  74. swarm/blueprints/django_chat/views.py +0 -32
  75. swarm/blueprints/echocraft/blueprint_echocraft.py +0 -384
  76. swarm/blueprints/flock/README.md +0 -11
  77. swarm/blueprints/flock/__init__.py +0 -8
  78. swarm/blueprints/flock/blueprint_flock.py +0 -7
  79. swarm/blueprints/flock/test_basic.py +0 -3
  80. swarm/blueprints/geese/README.md +0 -10
  81. swarm/blueprints/geese/__init__.py +0 -8
  82. swarm/blueprints/geese/blueprint_geese.py +0 -384
  83. swarm/blueprints/geese/geese_cli.py +0 -102
  84. swarm/blueprints/jeeves/README.md +0 -41
  85. swarm/blueprints/jeeves/blueprint_jeeves.py +0 -722
  86. swarm/blueprints/jeeves/jeeves_cli.py +0 -55
  87. swarm/blueprints/jeeves/metadata.json +0 -24
  88. swarm/blueprints/mcp_demo/blueprint_mcp_demo.py +0 -473
  89. swarm/blueprints/messenger/templates/messenger/messenger.html +0 -46
  90. swarm/blueprints/mission_improbable/blueprint_mission_improbable.py +0 -423
  91. swarm/blueprints/monkai_magic/blueprint_monkai_magic.py +0 -340
  92. swarm/blueprints/nebula_shellz/blueprint_nebula_shellz.py +0 -265
  93. swarm/blueprints/omniplex/blueprint_omniplex.py +0 -298
  94. swarm/blueprints/poets/blueprint_poets.py +0 -546
  95. swarm/blueprints/poets/poets_cli.py +0 -23
  96. swarm/blueprints/rue_code/README.md +0 -8
  97. swarm/blueprints/rue_code/blueprint_rue_code.py +0 -448
  98. swarm/blueprints/rue_code/rue_code_cli.py +0 -43
  99. swarm/blueprints/stewie/apps.py +0 -12
  100. swarm/blueprints/stewie/blueprint_family_ties.py +0 -349
  101. swarm/blueprints/stewie/models.py +0 -19
  102. swarm/blueprints/stewie/serializers.py +0 -10
  103. swarm/blueprints/stewie/settings.py +0 -17
  104. swarm/blueprints/stewie/urls.py +0 -11
  105. swarm/blueprints/stewie/views.py +0 -26
  106. swarm/blueprints/suggestion/blueprint_suggestion.py +0 -222
  107. swarm/blueprints/whinge_surf/README.md +0 -22
  108. swarm/blueprints/whinge_surf/__init__.py +0 -1
  109. swarm/blueprints/whinge_surf/blueprint_whinge_surf.py +0 -565
  110. swarm/blueprints/whinge_surf/whinge_surf_cli.py +0 -99
  111. swarm/blueprints/whiskeytango_foxtrot/__init__.py +0 -0
  112. swarm/blueprints/whiskeytango_foxtrot/apps.py +0 -11
  113. swarm/blueprints/whiskeytango_foxtrot/blueprint_whiskeytango_foxtrot.py +0 -339
  114. swarm/blueprints/zeus/__init__.py +0 -2
  115. swarm/blueprints/zeus/apps.py +0 -4
  116. swarm/blueprints/zeus/blueprint_zeus.py +0 -270
  117. swarm/blueprints/zeus/zeus_cli.py +0 -13
  118. swarm/cli/async_input.py +0 -65
  119. swarm/cli/async_input_demo.py +0 -32
  120. swarm/core/blueprint_base.py +0 -769
  121. swarm/core/blueprint_discovery.py +0 -125
  122. swarm/core/blueprint_runner.py +0 -59
  123. swarm/core/blueprint_ux.py +0 -109
  124. swarm/core/build_launchers.py +0 -15
  125. swarm/core/cli/__init__.py +0 -1
  126. swarm/core/cli/commands/__init__.py +0 -1
  127. swarm/core/cli/commands/blueprint_management.py +0 -7
  128. swarm/core/cli/interactive_shell.py +0 -14
  129. swarm/core/cli/main.py +0 -50
  130. swarm/core/cli/utils/__init__.py +0 -1
  131. swarm/core/cli/utils/discover_commands.py +0 -18
  132. swarm/core/config_loader.py +0 -122
  133. swarm/core/output_utils.py +0 -193
  134. swarm/core/session_logger.py +0 -42
  135. swarm/core/slash_commands.py +0 -89
  136. swarm/core/swarm_api.py +0 -68
  137. swarm/core/swarm_cli.py +0 -216
  138. swarm/core/utils/__init__.py +0 -0
  139. swarm/extensions/blueprint/cli_handler.py +0 -197
  140. swarm/extensions/blueprint/runnable_blueprint.py +0 -42
  141. swarm/extensions/cli/utils/__init__.py +0 -1
  142. swarm/extensions/cli/utils/async_input.py +0 -46
  143. swarm/extensions/cli/utils/prompt_user.py +0 -3
  144. swarm/management/__init__.py +0 -0
  145. swarm/management/commands/__init__.py +0 -0
  146. swarm/management/commands/runserver.py +0 -58
  147. swarm/middleware.py +0 -65
  148. swarm/permissions.py +0 -38
  149. swarm/static/contrib/fonts/fontawesome-webfont.ttf +0 -7
  150. swarm/static/contrib/fonts/fontawesome-webfont.woff +0 -7
  151. swarm/static/contrib/fonts/fontawesome-webfont.woff2 +0 -7
  152. swarm/static/contrib/markedjs/marked.min.js +0 -6
  153. swarm/static/contrib/tabler-icons/adjustments-horizontal.svg +0 -27
  154. swarm/static/contrib/tabler-icons/alert-triangle.svg +0 -21
  155. swarm/static/contrib/tabler-icons/archive.svg +0 -21
  156. swarm/static/contrib/tabler-icons/artboard.svg +0 -27
  157. swarm/static/contrib/tabler-icons/automatic-gearbox.svg +0 -23
  158. swarm/static/contrib/tabler-icons/box-multiple.svg +0 -19
  159. swarm/static/contrib/tabler-icons/carambola.svg +0 -19
  160. swarm/static/contrib/tabler-icons/copy.svg +0 -20
  161. swarm/static/contrib/tabler-icons/download.svg +0 -21
  162. swarm/static/contrib/tabler-icons/edit.svg +0 -21
  163. swarm/static/contrib/tabler-icons/filled/carambola.svg +0 -13
  164. swarm/static/contrib/tabler-icons/filled/paint.svg +0 -13
  165. swarm/static/contrib/tabler-icons/headset.svg +0 -22
  166. swarm/static/contrib/tabler-icons/layout-sidebar-left-collapse.svg +0 -21
  167. swarm/static/contrib/tabler-icons/layout-sidebar-left-expand.svg +0 -21
  168. swarm/static/contrib/tabler-icons/layout-sidebar-right-collapse.svg +0 -21
  169. swarm/static/contrib/tabler-icons/layout-sidebar-right-expand.svg +0 -21
  170. swarm/static/contrib/tabler-icons/message-chatbot.svg +0 -22
  171. swarm/static/contrib/tabler-icons/message-star.svg +0 -22
  172. swarm/static/contrib/tabler-icons/message-x.svg +0 -23
  173. swarm/static/contrib/tabler-icons/message.svg +0 -21
  174. swarm/static/contrib/tabler-icons/paperclip.svg +0 -18
  175. swarm/static/contrib/tabler-icons/playlist-add.svg +0 -22
  176. swarm/static/contrib/tabler-icons/robot.svg +0 -26
  177. swarm/static/contrib/tabler-icons/search.svg +0 -19
  178. swarm/static/contrib/tabler-icons/settings.svg +0 -20
  179. swarm/static/contrib/tabler-icons/thumb-down.svg +0 -19
  180. swarm/static/contrib/tabler-icons/thumb-up.svg +0 -19
  181. swarm/static/css/dropdown.css +0 -22
  182. swarm/static/htmx/htmx.min.js +0 -0
  183. swarm/static/js/dropdown.js +0 -23
  184. swarm/static/rest_mode/css/base.css +0 -470
  185. swarm/static/rest_mode/css/chat-history.css +0 -286
  186. swarm/static/rest_mode/css/chat.css +0 -251
  187. swarm/static/rest_mode/css/chatbot.css +0 -74
  188. swarm/static/rest_mode/css/chatgpt.css +0 -62
  189. swarm/static/rest_mode/css/colors/corporate.css +0 -74
  190. swarm/static/rest_mode/css/colors/pastel.css +0 -81
  191. swarm/static/rest_mode/css/colors/tropical.css +0 -82
  192. swarm/static/rest_mode/css/general.css +0 -142
  193. swarm/static/rest_mode/css/layout.css +0 -167
  194. swarm/static/rest_mode/css/layouts/messenger-layout.css +0 -17
  195. swarm/static/rest_mode/css/layouts/minimalist-layout.css +0 -57
  196. swarm/static/rest_mode/css/layouts/mobile-layout.css +0 -8
  197. swarm/static/rest_mode/css/messages.css +0 -84
  198. swarm/static/rest_mode/css/messenger.css +0 -135
  199. swarm/static/rest_mode/css/settings.css +0 -91
  200. swarm/static/rest_mode/css/simple.css +0 -44
  201. swarm/static/rest_mode/css/slack.css +0 -58
  202. swarm/static/rest_mode/css/style.css +0 -156
  203. swarm/static/rest_mode/css/theme.css +0 -30
  204. swarm/static/rest_mode/css/toast.css +0 -40
  205. swarm/static/rest_mode/js/auth.js +0 -9
  206. swarm/static/rest_mode/js/blueprint.js +0 -41
  207. swarm/static/rest_mode/js/blueprintUtils.js +0 -12
  208. swarm/static/rest_mode/js/chatLogic.js +0 -79
  209. swarm/static/rest_mode/js/debug.js +0 -63
  210. swarm/static/rest_mode/js/events.js +0 -98
  211. swarm/static/rest_mode/js/main.js +0 -19
  212. swarm/static/rest_mode/js/messages.js +0 -264
  213. swarm/static/rest_mode/js/messengerLogic.js +0 -355
  214. swarm/static/rest_mode/js/modules/apiService.js +0 -84
  215. swarm/static/rest_mode/js/modules/blueprintManager.js +0 -162
  216. swarm/static/rest_mode/js/modules/chatHistory.js +0 -110
  217. swarm/static/rest_mode/js/modules/debugLogger.js +0 -14
  218. swarm/static/rest_mode/js/modules/eventHandlers.js +0 -107
  219. swarm/static/rest_mode/js/modules/messageProcessor.js +0 -120
  220. swarm/static/rest_mode/js/modules/state.js +0 -7
  221. swarm/static/rest_mode/js/modules/userInteractions.js +0 -29
  222. swarm/static/rest_mode/js/modules/validation.js +0 -23
  223. swarm/static/rest_mode/js/rendering.js +0 -119
  224. swarm/static/rest_mode/js/settings.js +0 -130
  225. swarm/static/rest_mode/js/sidebar.js +0 -94
  226. swarm/static/rest_mode/js/simpleLogic.js +0 -37
  227. swarm/static/rest_mode/js/slackLogic.js +0 -66
  228. swarm/static/rest_mode/js/splash.js +0 -76
  229. swarm/static/rest_mode/js/theme.js +0 -111
  230. swarm/static/rest_mode/js/toast.js +0 -36
  231. swarm/static/rest_mode/js/ui.js +0 -265
  232. swarm/static/rest_mode/js/validation.js +0 -57
  233. swarm/static/rest_mode/svg/animated_spinner.svg +0 -12
  234. swarm/static/rest_mode/svg/arrow_down.svg +0 -5
  235. swarm/static/rest_mode/svg/arrow_left.svg +0 -5
  236. swarm/static/rest_mode/svg/arrow_right.svg +0 -5
  237. swarm/static/rest_mode/svg/arrow_up.svg +0 -5
  238. swarm/static/rest_mode/svg/attach.svg +0 -8
  239. swarm/static/rest_mode/svg/avatar.svg +0 -7
  240. swarm/static/rest_mode/svg/canvas.svg +0 -6
  241. swarm/static/rest_mode/svg/chat_history.svg +0 -4
  242. swarm/static/rest_mode/svg/close.svg +0 -5
  243. swarm/static/rest_mode/svg/copy.svg +0 -4
  244. swarm/static/rest_mode/svg/dark_mode.svg +0 -3
  245. swarm/static/rest_mode/svg/edit.svg +0 -5
  246. swarm/static/rest_mode/svg/layout.svg +0 -9
  247. swarm/static/rest_mode/svg/logo.svg +0 -29
  248. swarm/static/rest_mode/svg/logout.svg +0 -5
  249. swarm/static/rest_mode/svg/mobile.svg +0 -5
  250. swarm/static/rest_mode/svg/new_chat.svg +0 -4
  251. swarm/static/rest_mode/svg/not_visible.svg +0 -5
  252. swarm/static/rest_mode/svg/plus.svg +0 -7
  253. swarm/static/rest_mode/svg/run_code.svg +0 -6
  254. swarm/static/rest_mode/svg/save.svg +0 -4
  255. swarm/static/rest_mode/svg/search.svg +0 -6
  256. swarm/static/rest_mode/svg/settings.svg +0 -4
  257. swarm/static/rest_mode/svg/speaker.svg +0 -5
  258. swarm/static/rest_mode/svg/stop.svg +0 -6
  259. swarm/static/rest_mode/svg/thumbs_down.svg +0 -3
  260. swarm/static/rest_mode/svg/thumbs_up.svg +0 -3
  261. swarm/static/rest_mode/svg/toggle_off.svg +0 -6
  262. swarm/static/rest_mode/svg/toggle_on.svg +0 -6
  263. swarm/static/rest_mode/svg/trash.svg +0 -10
  264. swarm/static/rest_mode/svg/undo.svg +0 -3
  265. swarm/static/rest_mode/svg/visible.svg +0 -8
  266. swarm/static/rest_mode/svg/voice.svg +0 -10
  267. swarm/templates/account/login.html +0 -22
  268. swarm/templates/account/signup.html +0 -32
  269. swarm/templates/base.html +0 -30
  270. swarm/templates/chat.html +0 -43
  271. swarm/templates/index.html +0 -35
  272. swarm/templates/rest_mode/components/chat_sidebar.html +0 -55
  273. swarm/templates/rest_mode/components/header.html +0 -45
  274. swarm/templates/rest_mode/components/main_chat_pane.html +0 -41
  275. swarm/templates/rest_mode/components/settings_dialog.html +0 -97
  276. swarm/templates/rest_mode/components/splash_screen.html +0 -7
  277. swarm/templates/rest_mode/components/top_bar.html +0 -28
  278. swarm/templates/rest_mode/message_ui.html +0 -50
  279. swarm/templates/rest_mode/slackbot.html +0 -30
  280. swarm/templates/simple_blueprint_page.html +0 -24
  281. swarm/templates/websocket_partials/final_system_message.html +0 -3
  282. swarm/templates/websocket_partials/system_message.html +0 -4
  283. swarm/templates/websocket_partials/user_message.html +0 -5
  284. swarm/utils/ansi_box.py +0 -34
  285. swarm/utils/disable_tracing.py +0 -38
  286. swarm/utils/log_utils.py +0 -63
  287. swarm/utils/openai_patch.py +0 -33
  288. swarm/ux/ansi_box.py +0 -43
  289. swarm/ux/spinner.py +0 -53
  290. {open_swarm-0.1.1745275181.dist-info → open_swarm-0.1.1748636259.dist-info}/licenses/LICENSE +0 -0
  291. /swarm/{core → extensions/blueprint}/blueprint_utils.py +0 -0
  292. /swarm/{core → extensions/blueprint}/common_utils.py +0 -0
  293. /swarm/{core → extensions/config}/setup_wizard.py +0 -0
  294. /swarm/{blueprints/rue_code → extensions/config/utils}/__init__.py +0 -0
  295. /swarm/{core → extensions/config}/utils/logger.py +0 -0
  296. /swarm/{core → extensions/launchers}/swarm_wrapper.py +0 -0
@@ -1,135 +0,0 @@
1
- .container[data-theme-layout="messenger-layout"] {
2
- display: flex;
3
- height: 100vh;
4
- }
5
-
6
- .chat-history-pane {
7
- width: 250px;
8
- background: #361A42; /* Slack light sidebar purple */
9
- color: #FFFFFF; /* White text */
10
- padding: 10px;
11
- display: flex;
12
- flex-direction: column;
13
- }
14
-
15
- .chat-history-header {
16
- display: flex;
17
- align-items: center;
18
- justify-content: flex-start;
19
- padding: 10px 15px;
20
- background: #361A42; /* Match sidebar */
21
- border-bottom: 1px solid #4A2A55; /* Subtle purple border */
22
- }
23
-
24
- .chat-history-header > div {
25
- display: flex;
26
- flex-direction: row; /* Force horizontal */
27
- align-items: center;
28
- justify-content: flex-start;
29
- gap: 10px;
30
- flex-wrap: nowrap;
31
- width: 100%;
32
- }
33
-
34
- .chat-history-header .input-button {
35
- background: none;
36
- border: none;
37
- cursor: pointer;
38
- padding: 8px;
39
- display: flex;
40
- align-items: center;
41
- justify-content: center;
42
- transition: background-color 0.3s, transform 0.2s;
43
- }
44
-
45
- .chat-history-header .input-button:hover {
46
- background-color: rgba(255, 255, 255, 0.1); /* Light hover */
47
- transform: scale(1.05);
48
- }
49
-
50
- .chat-history-header .input-button img {
51
- width: 20px;
52
- height: 20px;
53
- filter: brightness(0) invert(1); /* White icons on purple */
54
- }
55
-
56
- .chat-history-list {
57
- list-style: none;
58
- padding: 0;
59
- flex-grow: 1;
60
- overflow-y: auto;
61
- }
62
-
63
- .chat-history-list li {
64
- padding: 10px;
65
- cursor: pointer;
66
- color: #FFFFFF;
67
- }
68
-
69
- .chat-history-list li:hover {
70
- background: #4A2A55; /* Darker purple hover */
71
- }
72
-
73
- .main-pane {
74
- flex-grow: 1;
75
- display: flex;
76
- flex-direction: column;
77
- background: #F5F5F5; /* Slack light main area */
78
- color: #2E2E2E;
79
- }
80
-
81
- /* Dark Mode Adjustments */
82
- [data-theme-dark="true"] .chat-history-pane {
83
- background: #2E0F36; /* Slack dark sidebar purple */
84
- }
85
-
86
- [data-theme-dark="true"] .chat-history-header {
87
- background: #2E0F36;
88
- border-bottom: 1px solid #3F1A48;
89
- }
90
-
91
- [data-theme-dark="true"] .chat-history-header .input-button:hover {
92
- background-color: rgba(255, 255, 255, 0.2); /* Light hover in dark mode */
93
- }
94
-
95
- [data-theme-dark="true"] .main-pane {
96
- background: #2E2E2E; /* Slack dark main area */
97
- color: #E0E0E0;
98
- }
99
-
100
- .message-container {
101
- flex-grow: 1;
102
- overflow-y: auto;
103
- padding: 20px;
104
- }
105
-
106
- .user-message {
107
- background: #DCF8C6;
108
- padding: 10px;
109
- margin: 5px 0;
110
- border-radius: 5px;
111
- align-self: flex-end;
112
- max-width: 70%;
113
- }
114
-
115
- .assistant-message {
116
- background: #E6E6E6;
117
- padding: 10px;
118
- margin: 5px 0;
119
- border-radius: 5px;
120
- align-self: flex-start;
121
- max-width: 70%;
122
- }
123
-
124
- .error-message {
125
- background: #F8D7DA;
126
- color: #721C24;
127
- padding: 10px;
128
- margin: 5px 0;
129
- border-radius: 5px;
130
- }
131
-
132
- .send-container {
133
- padding: 10px;
134
- border-top: 1px solid #ddd;
135
- }
@@ -1,91 +0,0 @@
1
- /* Full-Screen Settings Pane */
2
- .settings-dialog {
3
- position: fixed;
4
- top: 10%; /* Leave 10% margin from the top */
5
- left: 10%; /* Leave 10% margin from the left */
6
- width: 80%; /* Take up 80% of the viewport width */
7
- height: 80%; /* Take up 80% of the viewport height */
8
- background-color: var(--bg-primary); /* Match app's primary background color */
9
- border-radius: 8px; /* Slightly rounded corners */
10
- box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); /* Subtle shadow for pop-out effect */
11
- z-index: 1000; /* Higher than other elements */
12
- overflow-y: auto; /* Scroll if content overflows */
13
- padding: 20px;
14
- display: none; /* Initially hidden */
15
- }
16
-
17
- /* Visible settings pane */
18
- .settings-pane.visible {
19
- display: block; /* Make visible when toggled */
20
- }
21
-
22
- /* Overlay to dim the background */
23
- .settings-overlay {
24
- position: fixed;
25
- top: 0;
26
- left: 0;
27
- width: 100vw; /* Full viewport width */
28
- height: 100vh; /* Full viewport height */
29
- background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent black */
30
- z-index: 999; /* Just below the settings pane */
31
- display: none; /* Initially hidden */
32
- }
33
-
34
- /* Show overlay when settings are active */
35
- .settings-overlay.visible {
36
- display: block;
37
- }
38
-
39
- /* Shaded Container for Settings Sections */
40
- .settings-container-section {
41
- margin-bottom: 15px;
42
- padding: 10px;
43
- border-radius: 8px;
44
- border: 1px solid var(--border-primary, #ccc);
45
- }
46
-
47
- /* Collapsible Sections */
48
- .collapsible-toggle {
49
- cursor: pointer;
50
- font-weight: bold;
51
- margin-bottom: 5px;
52
- display: flex;
53
- justify-content: space-between;
54
- align-items: center;
55
- }
56
-
57
- .collapsible-content.hidden {
58
- display: none;
59
- }
60
-
61
- /* Inline Toggle Alignment */
62
- .toggle-title, .nested-toggle {
63
- display: flex;
64
- align-items: center; /* Align items vertically */
65
- justify-content: space-between; /* Push toggle to the right */
66
- padding: 5px 0; /* Add vertical spacing */
67
- }
68
-
69
- .toggle-title label, .nested-toggle label {
70
- font-weight: bold;
71
- color: var(--text-primary, #333); /* Default text color */
72
- flex: 1; /* Take up available space */
73
- margin-right: 10px; /* Add space between label and toggle */
74
- }
75
-
76
- /* SVG Toggles */
77
- .svg-toggle {
78
- width: 40px; /* Adjust toggle size */
79
- height: 20px;
80
- cursor: pointer;
81
- }
82
-
83
- .svg-toggle img {
84
- width: 100%;
85
- height: auto;
86
- }
87
-
88
- .svg-toggle.disabled {
89
- opacity: 0.5;
90
- pointer-events: none;
91
- }
@@ -1,44 +0,0 @@
1
- .container[data-theme-layout="simple-layout"] {
2
- display: flex;
3
- height: 100vh;
4
- justify-content: center;
5
- align-items: center;
6
- }
7
- .main-pane {
8
- width: 80%;
9
- max-width: 800px;
10
- display: flex;
11
- flex-direction: column;
12
- }
13
- .message-container {
14
- flex-grow: 1;
15
- overflow-y: auto;
16
- padding: 20px;
17
- }
18
- .user-message {
19
- background: #DCF8C6;
20
- padding: 10px;
21
- margin: 5px 0;
22
- border-radius: 5px;
23
- align-self: flex-end;
24
- max-width: 70%;
25
- }
26
- .assistant-message {
27
- background: #E6E6E6;
28
- padding: 10px;
29
- margin: 5px 0;
30
- border-radius: 5px;
31
- align-self: flex-start;
32
- max-width: 70%;
33
- }
34
- .error-message {
35
- background: #F8D7DA;
36
- color: #721C24;
37
- padding: 10px;
38
- margin: 5px 0;
39
- border-radius: 5px;
40
- }
41
- .send-container {
42
- padding: 10px;
43
- border-top: 1px solid #ddd;
44
- }
@@ -1,58 +0,0 @@
1
- .container[data-theme-layout="slack-layout"] {
2
- display: flex;
3
- height: 100vh;
4
- }
5
- .channel-pane {
6
- width: 250px;
7
- background: #3F0E40;
8
- color: white;
9
- padding: 10px;
10
- }
11
- .channel-list {
12
- list-style: none;
13
- padding: 0;
14
- }
15
- .channel-list li {
16
- padding: 10px;
17
- cursor: pointer;
18
- }
19
- .channel-list li:hover {
20
- background: #522653;
21
- }
22
- .main-pane {
23
- flex-grow: 1;
24
- display: flex;
25
- flex-direction: column;
26
- }
27
- .message-container {
28
- flex-grow: 1;
29
- overflow-y: auto;
30
- padding: 20px;
31
- }
32
- .user-message {
33
- background: #DCF8C6;
34
- padding: 10px;
35
- margin: 5px 0;
36
- border-radius: 5px;
37
- align-self: flex-end;
38
- max-width: 70%;
39
- }
40
- .assistant-message {
41
- background: #E6E6E6;
42
- padding: 10px;
43
- margin: 5px 0;
44
- border-radius: 5px;
45
- align-self: flex-start;
46
- max-width: 70%;
47
- }
48
- .error-message {
49
- background: #F8D7DA;
50
- color: #721C24;
51
- padding: 10px;
52
- margin: 5px 0;
53
- border-radius: 5px;
54
- }
55
- .send-container {
56
- padding: 10px;
57
- border-top: 1px solid #ddd;
58
- }
@@ -1,156 +0,0 @@
1
- /* style.css - Shared Styles and Modular Imports */
2
-
3
- /* Modular Imports */
4
- @import './layout.css';
5
- @import './theme.css';
6
- @import './toast.css';
7
-
8
- /* Base Styles */
9
- * {
10
- box-sizing: border-box;
11
- margin: 0;
12
- padding: 0;
13
- }
14
-
15
- body {
16
- font-family: Arial, sans-serif;
17
- border-style: solid;
18
- border-width: 0 0 0 0;
19
- background-color: var(--bg-primary);
20
- box-sizing: border-box;
21
- margin: 0 0 0 0;
22
- color: var(--text-primary);
23
- height: 100vh;
24
- justify-content: center;
25
- align-items: center;
26
- transition: background-color var(--transition-duration), color var(--transition-duration);
27
- overflow-x: visible;
28
- overflow-y: visible;
29
- }
30
-
31
- /* Sidebar Reveal Buttons */
32
- .sidebar-reveal-btn {
33
- position: absolute;
34
- top: 10px; /* Adjusted from 20px */
35
- z-index: 1000;
36
- background-color: var(--button-primary);
37
- color: #fff;
38
- border: none;
39
- border-radius: 50%;
40
- width: 40px;
41
- height: 40px;
42
- cursor: pointer;
43
- transition: background-color var(--transition-duration) ease;
44
- font-size: 1em;
45
- display: flex;
46
- align-items: center;
47
- justify-content: center;
48
- opacity: 0.7; /* Dimmed by default */
49
- }
50
-
51
- .sidebar-reveal-btn:hover {
52
- opacity: 1; /* Fully visible on hover */
53
- }
54
-
55
- .sidebar-reveal-btn + .sidebar-reveal-btn {
56
- top: 60px; /* Reduced gap between buttons */
57
- opacity: 0.7;
58
- }
59
-
60
- .sidebar-reveal-btn:hover + .sidebar-reveal-btn {
61
- opacity: 1;
62
- }
63
-
64
- /* Toast Container */
65
- .toast-container {
66
- position: fixed;
67
- top: 20px;
68
- right: 20px;
69
- z-index: 10000;
70
- display: flex;
71
- flex-direction: column;
72
- gap: 10px;
73
- }
74
-
75
- /* Logo Styling */
76
- .chat-logo {
77
- width: 90px;
78
- height: 90px;
79
- display: block;
80
- margin: 0 auto;
81
- }
82
-
83
- .logo-container {
84
- text-align: center;
85
- margin: 20px auto;
86
- }
87
-
88
- /* Form Container Adjustments */
89
- .form-container {
90
- display: flex;
91
- flex-direction: column;
92
- align-items: stretch;
93
- gap: 5px;
94
- width: 100%;
95
- padding: 10px;
96
- border-radius: 8px;
97
- box-sizing: border-box;
98
- }
99
-
100
- /* Input and Submit Button Row */
101
- .send-container {
102
- display: flex;
103
- align-items: stretch;
104
- width: 100%;
105
- margin-bottom: 5px;
106
- position: relative;
107
- border-radius: 20px;
108
- overflow: hidden;
109
- padding: 0; /* Remove extra padding causing gap */
110
- }
111
-
112
- /* Input Field Styling */
113
- .rounded-input {
114
- flex-grow: 1;
115
- border: none;
116
- border-radius: 0;
117
- outline: none;
118
- box-sizing: border-box;
119
- font-size: 18px;
120
- margin: 0;
121
- width: 100%;
122
- color: var(--text-primary);
123
- background-color: var(--bg-secondary);
124
- padding: 10px 15px; /* Ensure padding is consistent */
125
- }
126
-
127
- /* Submit Button Styling */
128
- .half-cut-button {
129
- padding: 0 20px;
130
- background-color: #707070;
131
- color: white;
132
- border: none;
133
- border-radius: 0;
134
- cursor: pointer;
135
- font-size: 16px;
136
- font-weight: bold;
137
- white-space: nowrap;
138
- display: flex;
139
- align-items: center;
140
- justify-content: center;
141
- height: auto;
142
- transition: background-color 0.3s ease;
143
- margin: 0;
144
- }
145
-
146
- .send-container .rounded-input {
147
- border-radius: 20px 0 0 20px;
148
- }
149
-
150
- .send-container .half-cut-button {
151
- border-radius: 0 20px 20px 0;
152
- }
153
-
154
- .half-cut-button:hover {
155
- background-color: #505050;
156
- }
@@ -1,30 +0,0 @@
1
- /* theme.css - Theme Variables and Colors */
2
-
3
- /* Light Mode Variables */
4
- :root {
5
- --bg-primary: #ffffff;
6
- --bg-container: #f0f8ff;
7
- --text-primary: #333333;
8
- --text-secondary: #666666;
9
- --border-color: #d3d3d3;
10
- --button-primary: #87cefa;
11
- --button-hover: #00bfff;
12
- --bg-hover: #e6f7ff; /* Light hover for messages */
13
- --bg-message-other: #f9f9f9; /* Subtle contrast for message toolbars */
14
- --transition-duration: 0.3s;
15
-
16
- --icon-size: 1.5rem; /* Shared size for SVG icons */
17
- }
18
-
19
- /* Dark Mode Variables */
20
- [data-theme-dark="true"] {
21
- --bg-primary: #1a1a1a;
22
- --bg-container: #2a2a2a;
23
- --text-primary: #f0f0f0;
24
- --text-secondary: #bbbbbb;
25
- --border-color: #555555;
26
- --button-primary: #00bfff;
27
- --button-hover: #87cefa;
28
- --bg-hover: #333333; /* Dark hover for messages */
29
- --bg-message-other: #444444; /* Subtle contrast for message toolbars */
30
- }
@@ -1,40 +0,0 @@
1
- #toastContainer {
2
- position: fixed;
3
- top: 20px;
4
- right: 20px;
5
- z-index: 9999;
6
- display: flex;
7
- flex-direction: column;
8
- gap: 10px;
9
- }
10
-
11
- .toast {
12
- padding: 10px 15px;
13
- border-radius: 5px;
14
- color: white;
15
- font-size: 0.9rem;
16
- box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
17
- opacity: 1;
18
- transition: opacity 0.5s ease-out;
19
- }
20
-
21
- .toast.info {
22
- background-color: #007bff; /* Blue for info */
23
- }
24
-
25
- .toast.success {
26
- background-color: #28a745; /* Green for success */
27
- }
28
-
29
- .toast.error {
30
- background-color: #dc3545; /* Red for error */
31
- }
32
-
33
- .toast.warning {
34
- background-color: #ffc107; /* Yellow for warning */
35
- }
36
-
37
- /* Fade-out animation */
38
- .toast.fade-out {
39
- opacity: 0;
40
- }
@@ -1,9 +0,0 @@
1
- import { showToast } from './toast.js';
2
-
3
- /**
4
- * Handles user logout.
5
- */
6
- export function handleLogout() {
7
- showToast("🚪 You have been logged out.", "info");
8
- window.location.href = "/login";
9
- }
@@ -1,41 +0,0 @@
1
- import { showToast } from './toast.js';
2
-
3
- const DEBUG_MODE = true;
4
-
5
- /**
6
- * Logs debug messages if debug mode is enabled.
7
- * @param {string} message - The message to log.
8
- * @param {any} data - Additional data to include in the log.
9
- */
10
- function debugLog(message, data = null) {
11
- if (DEBUG_MODE) {
12
- console.log(`[DEBUG] ${message}`, data);
13
- showToast(`${message}`, "info");
14
- }
15
- }
16
-
17
- /**
18
- * Fetches the list of blueprints (models) from the server.
19
- * @returns {Promise<Array>} - A promise resolving to the list of blueprints.
20
- */
21
- export async function fetchBlueprints() {
22
- debugLog("Fetching blueprints from /v1/models/...");
23
- try {
24
- const response = await fetch('/v1/models/');
25
- if (!response.ok) throw new Error(`HTTP Error: ${response.status}`);
26
-
27
- const data = await response.json();
28
- debugLog("Blueprints fetched successfully.", data);
29
-
30
- // Show an info notification
31
- showToast("Blueprints fetched successfully.", "success", 5000);
32
-
33
- return data.data || [];
34
- } catch (error) {
35
- console.error("Error fetching blueprints:", error);
36
- // Show an error notification
37
- showToast("Error fetching blueprints.", "error");
38
- throw error;
39
- }
40
- }
41
-
@@ -1,12 +0,0 @@
1
- export async function fetchBlueprints() {
2
- try {
3
- const response = await fetch('/v1/models/');
4
- if (!response.ok) throw new Error(`HTTP error! Status: ${response.status}`);
5
- const data = await response.json();
6
- console.log('Raw blueprint data:', data);
7
- return data.data.filter(model => model.object === 'model');
8
- } catch (error) {
9
- console.error('Error fetching blueprints:', error);
10
- return [];
11
- }
12
- }
@@ -1,79 +0,0 @@
1
- async function fetchBlueprints() {
2
- const response = await fetch('/v1/models/');
3
- const data = await response.json();
4
- return data.data.filter(model => model.object === 'model');
5
- }
6
-
7
- function populateBlueprintDropdown(blueprints) {
8
- const dropdown = document.getElementById('blueprintDropdown');
9
- dropdown.innerHTML = '<option value="">Select a Blueprint</option>';
10
- blueprints.forEach(bp => {
11
- const option = document.createElement('option');
12
- option.value = bp.id;
13
- option.textContent = bp.title;
14
- dropdown.appendChild(option);
15
- });
16
- }
17
-
18
- let currentBlueprint = null;
19
- let currentMode = 'default';
20
- function switchBlueprint(blueprintId) {
21
- currentBlueprint = blueprintId;
22
- document.getElementById('messageHistory').innerHTML = '';
23
- document.getElementById('blueprintTitle').textContent = blueprintId || 'No Blueprint Selected';
24
- console.log(`Switched to blueprint: ${blueprintId}, mode: ${currentMode}`);
25
- }
26
-
27
- function setMode(mode) {
28
- currentMode = mode;
29
- console.log(`Mode set to: ${mode}`);
30
- }
31
-
32
- async function handleSubmit(event) {
33
- event.preventDefault();
34
- const input = document.getElementById('userInput');
35
- const message = input.value.trim();
36
- if (!message || !currentBlueprint) {
37
- console.log('No message or blueprint selected');
38
- return;
39
- }
40
-
41
- input.value = '';
42
- const history = document.getElementById('messageHistory');
43
- history.innerHTML += `<div class="user-message">${message} (Mode: ${currentMode})</div>`;
44
-
45
- try {
46
- const response = await fetch('/v1/chat/completions/', {
47
- method: 'POST',
48
- headers: {
49
- 'Content-Type': 'application/json',
50
- 'X-CSRFToken': document.querySelector('meta[name="csrf-token"]').content
51
- },
52
- body: JSON.stringify({
53
- model: currentBlueprint,
54
- messages: [{ role: 'user', content: message }],
55
- context_variables: { mode: currentMode }
56
- })
57
- });
58
- const data = await response.json();
59
- history.innerHTML += `<div class="assistant-message">${data.choices[0].message.content}</div>`;
60
- history.scrollTop = history.scrollHeight;
61
- } catch (error) {
62
- history.innerHTML += `<div class="error-message">Error: ${error.message}</div>`;
63
- }
64
- }
65
-
66
- document.addEventListener('DOMContentLoaded', async () => {
67
- const blueprints = await fetchBlueprints();
68
- populateBlueprintDropdown(blueprints);
69
- if (blueprints.length > 0) switchBlueprint(blueprints[0].id);
70
-
71
- document.getElementById('blueprintDropdown').addEventListener('change', (e) => switchBlueprint(e.target.value));
72
- document.querySelectorAll('.mode-button').forEach(button => {
73
- button.addEventListener('click', () => setMode(button.dataset.mode));
74
- });
75
- document.getElementById('sendButton')?.addEventListener('click', handleSubmit);
76
- document.getElementById('userInput').addEventListener('keypress', (e) => {
77
- if (e.key === 'Enter') handleSubmit(e);
78
- });
79
- });