Update app.py
Browse files
app.py
CHANGED
@@ -196,8 +196,36 @@ class BuiltInFloorManager:
|
|
196 |
|
197 |
_agents_cache: Dict[str, OpenFloorAgent] = {}
|
198 |
_floor_manager = BuiltInFloorManager()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
|
200 |
def _discover_agents_from_env_and_headers(request: gr.Request) -> Dict[str, OpenFloorAgent]:
|
|
|
|
|
201 |
agent_urls = []
|
202 |
|
203 |
# Environment variable
|
@@ -234,13 +262,16 @@ def _discover_agents_from_env_and_headers(request: gr.Request) -> Dict[str, Open
|
|
234 |
# Register agents
|
235 |
for url in unique_urls:
|
236 |
if url and url not in _agents_cache:
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
|
|
|
|
|
|
244 |
|
245 |
return _agents_cache
|
246 |
|
|
|
196 |
|
197 |
_agents_cache: Dict[str, OpenFloorAgent] = {}
|
198 |
_floor_manager = BuiltInFloorManager()
|
199 |
+
_initialized = False
|
200 |
+
|
201 |
+
def _ensure_initialization():
|
202 |
+
"""Ensure MCP server is properly initialized"""
|
203 |
+
global _initialized
|
204 |
+
if not _initialized:
|
205 |
+
print("π§ Initializing MCP-OpenFloor Bridge...")
|
206 |
+
# Pre-discover agents from environment if available
|
207 |
+
env_agents = os.getenv("OPENFLOOR_AGENTS", "")
|
208 |
+
if env_agents:
|
209 |
+
env_urls = [url.strip() for url in env_agents.split(",") if url.strip()]
|
210 |
+
print(f"π Pre-loading {len(env_urls)} agents from environment...")
|
211 |
+
for url in env_urls:
|
212 |
+
if url and url not in _agents_cache:
|
213 |
+
try:
|
214 |
+
agent = OpenFloorAgent(url)
|
215 |
+
if agent.get_manifest():
|
216 |
+
_agents_cache[url] = agent
|
217 |
+
_floor_manager.register_agent_from_openfloor_agent(agent)
|
218 |
+
print(f"β
Pre-loaded agent: {agent.name} at {url}")
|
219 |
+
else:
|
220 |
+
print(f"β Failed to pre-load agent from: {url}")
|
221 |
+
except Exception as e:
|
222 |
+
print(f"β Error pre-loading agent {url}: {e}")
|
223 |
+
_initialized = True
|
224 |
+
print("π MCP-OpenFloor Bridge initialized")
|
225 |
|
226 |
def _discover_agents_from_env_and_headers(request: gr.Request) -> Dict[str, OpenFloorAgent]:
|
227 |
+
_ensure_initialization()
|
228 |
+
|
229 |
agent_urls = []
|
230 |
|
231 |
# Environment variable
|
|
|
262 |
# Register agents
|
263 |
for url in unique_urls:
|
264 |
if url and url not in _agents_cache:
|
265 |
+
try:
|
266 |
+
agent = OpenFloorAgent(url)
|
267 |
+
if agent.get_manifest():
|
268 |
+
_agents_cache[url] = agent
|
269 |
+
_floor_manager.register_agent_from_openfloor_agent(agent)
|
270 |
+
print(f"β
Discovered and registered agent: {agent.name} at {url}")
|
271 |
+
else:
|
272 |
+
print(f"β Failed to get manifest from: {url}")
|
273 |
+
except Exception as e:
|
274 |
+
print(f"β Error discovering agent {url}: {e}")
|
275 |
|
276 |
return _agents_cache
|
277 |
|