azettl commited on
Commit
41a73f0
Β·
verified Β·
1 Parent(s): e2b2f3e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -7
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
- agent = OpenFloorAgent(url)
238
- if agent.get_manifest():
239
- _agents_cache[url] = agent
240
- _floor_manager.register_agent_from_openfloor_agent(agent)
241
- print(f"βœ… Discovered and registered agent: {agent.name} at {url}")
242
- else:
243
- print(f"❌ Failed to get manifest from: {url}")
 
 
 
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