Spaces:
Sleeping
Sleeping
Update ui_components.py
Browse files- ui_components.py +26 -16
ui_components.py
CHANGED
|
@@ -8,7 +8,6 @@ from config import AppConfig, CUSTOM_CSS
|
|
| 8 |
from chat_handler import ChatHandler
|
| 9 |
from server_manager import ServerManager
|
| 10 |
from mcp_client import UniversalMCPClient
|
| 11 |
-
from mcp_spaces_finder import create_simple_mcp_selector
|
| 12 |
|
| 13 |
class UIComponents:
|
| 14 |
"""Manages Gradio UI components and event handlers"""
|
|
@@ -70,11 +69,17 @@ class UIComponents:
|
|
| 70 |
with gr.Accordion("⚙️ Manage Servers", open=False):
|
| 71 |
gr.Markdown("**Add MCP Servers**")
|
| 72 |
|
| 73 |
-
#
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 78 |
)
|
| 79 |
|
| 80 |
# Server title input
|
|
@@ -157,10 +162,10 @@ class UIComponents:
|
|
| 157 |
"""Handle adding a server and update displays"""
|
| 158 |
# Check if both title and space are provided
|
| 159 |
if not server_title or not server_title.strip():
|
| 160 |
-
return "❌ Please provide a server title", "", *update_server_display(), ""
|
| 161 |
|
| 162 |
-
if not selected_space
|
| 163 |
-
return "❌ Please select a HuggingFace space from the dropdown", "", *update_server_display(), ""
|
| 164 |
|
| 165 |
# Use the selected space from dropdown
|
| 166 |
status_msg, details_html = self.server_manager.add_custom_server(server_title.strip(), selected_space)
|
|
@@ -168,7 +173,7 @@ class UIComponents:
|
|
| 168 |
# Update sidebar server display
|
| 169 |
count_text, list_text = update_server_display()
|
| 170 |
|
| 171 |
-
return status_msg, details_html, count_text, list_text, ""
|
| 172 |
|
| 173 |
def handle_refresh_status():
|
| 174 |
"""Handle refresh status button"""
|
|
@@ -182,21 +187,26 @@ class UIComponents:
|
|
| 182 |
# Clear cache and get fresh spaces
|
| 183 |
refresh_mcp_spaces()
|
| 184 |
spaces = _finder.get_mcp_spaces()
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 188 |
|
| 189 |
# Connect server management events
|
| 190 |
self.add_server_btn.click(
|
| 191 |
handle_add_server,
|
| 192 |
-
inputs=[self.server_name, self.
|
| 193 |
outputs=[
|
| 194 |
self.add_server_output,
|
| 195 |
self.add_server_details,
|
| 196 |
self.server_count_display,
|
| 197 |
self.server_list_display,
|
| 198 |
-
self.server_name
|
| 199 |
-
self.selected_space_textbox # Clear the selected space display
|
| 200 |
]
|
| 201 |
)
|
| 202 |
|
|
|
|
| 8 |
from chat_handler import ChatHandler
|
| 9 |
from server_manager import ServerManager
|
| 10 |
from mcp_client import UniversalMCPClient
|
|
|
|
| 11 |
|
| 12 |
class UIComponents:
|
| 13 |
"""Manages Gradio UI components and event handlers"""
|
|
|
|
| 69 |
with gr.Accordion("⚙️ Manage Servers", open=False):
|
| 70 |
gr.Markdown("**Add MCP Servers**")
|
| 71 |
|
| 72 |
+
# Get MCP spaces count for dropdown label
|
| 73 |
+
from mcp_spaces_finder import _finder
|
| 74 |
+
spaces = _finder.get_mcp_spaces()
|
| 75 |
+
spaces_count = len(spaces)
|
| 76 |
+
|
| 77 |
+
# Create MCP spaces dropdown (without the textbox)
|
| 78 |
+
self.mcp_dropdown = gr.Dropdown(
|
| 79 |
+
choices=spaces,
|
| 80 |
+
label=f"🤖 Select from {spaces_count} Available MCP Server Spaces",
|
| 81 |
+
value=None,
|
| 82 |
+
info="Choose a HuggingFace space that provides MCP server functionality"
|
| 83 |
)
|
| 84 |
|
| 85 |
# Server title input
|
|
|
|
| 162 |
"""Handle adding a server and update displays"""
|
| 163 |
# Check if both title and space are provided
|
| 164 |
if not server_title or not server_title.strip():
|
| 165 |
+
return "❌ Please provide a server title", "", *update_server_display(), ""
|
| 166 |
|
| 167 |
+
if not selected_space:
|
| 168 |
+
return "❌ Please select a HuggingFace space from the dropdown", "", *update_server_display(), ""
|
| 169 |
|
| 170 |
# Use the selected space from dropdown
|
| 171 |
status_msg, details_html = self.server_manager.add_custom_server(server_title.strip(), selected_space)
|
|
|
|
| 173 |
# Update sidebar server display
|
| 174 |
count_text, list_text = update_server_display()
|
| 175 |
|
| 176 |
+
return status_msg, details_html, count_text, list_text, "" # Clear server name input
|
| 177 |
|
| 178 |
def handle_refresh_status():
|
| 179 |
"""Handle refresh status button"""
|
|
|
|
| 187 |
# Clear cache and get fresh spaces
|
| 188 |
refresh_mcp_spaces()
|
| 189 |
spaces = _finder.get_mcp_spaces()
|
| 190 |
+
spaces_count = len(spaces)
|
| 191 |
+
|
| 192 |
+
# Update dropdown choices with new count
|
| 193 |
+
return gr.Dropdown(
|
| 194 |
+
choices=spaces,
|
| 195 |
+
value=None,
|
| 196 |
+
label=f"🤖 Select from {spaces_count} Available MCP Server Spaces",
|
| 197 |
+
info="Choose a HuggingFace space that provides MCP server functionality"
|
| 198 |
+
)
|
| 199 |
|
| 200 |
# Connect server management events
|
| 201 |
self.add_server_btn.click(
|
| 202 |
handle_add_server,
|
| 203 |
+
inputs=[self.server_name, self.mcp_dropdown], # Use dropdown directly
|
| 204 |
outputs=[
|
| 205 |
self.add_server_output,
|
| 206 |
self.add_server_details,
|
| 207 |
self.server_count_display,
|
| 208 |
self.server_list_display,
|
| 209 |
+
self.server_name # Clear server name input
|
|
|
|
| 210 |
]
|
| 211 |
)
|
| 212 |
|