escobar 0.1.71__py3-none-any.whl → 0.1.73__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 (27) hide show
  1. escobar/_version.py +1 -1
  2. escobar/handlers.py +24 -6
  3. escobar/labextension/package.json +2 -2
  4. escobar/labextension/schemas/escobar/package.json.orig +1 -1
  5. escobar/labextension/static/{589.e9177228e4243ad215e5.js → 589.d1cb43ef7438dbdd0369.js} +1 -1
  6. escobar/labextension/static/{remoteEntry.5f59b6b055a4fae459b0.js → remoteEntry.c7b59f5a7472168cb072.js} +1 -1
  7. {escobar-0.1.71.data → escobar-0.1.73.data}/data/share/jupyter/labextensions/escobar/package.json +2 -2
  8. {escobar-0.1.71.data → escobar-0.1.73.data}/data/share/jupyter/labextensions/escobar/schemas/escobar/package.json.orig +1 -1
  9. escobar-0.1.71.data/data/share/jupyter/labextensions/escobar/static/589.e9177228e4243ad215e5.js → escobar-0.1.73.data/data/share/jupyter/labextensions/escobar/static/589.d1cb43ef7438dbdd0369.js +1 -1
  10. escobar-0.1.71.data/data/share/jupyter/labextensions/escobar/static/remoteEntry.5f59b6b055a4fae459b0.js → escobar-0.1.73.data/data/share/jupyter/labextensions/escobar/static/remoteEntry.c7b59f5a7472168cb072.js +1 -1
  11. {escobar-0.1.71.dist-info → escobar-0.1.73.dist-info}/METADATA +1 -1
  12. {escobar-0.1.71.dist-info → escobar-0.1.73.dist-info}/RECORD +27 -27
  13. {escobar-0.1.71.data → escobar-0.1.73.data}/data/share/jupyter/labextensions/escobar/install.json +0 -0
  14. {escobar-0.1.71.data → escobar-0.1.73.data}/data/share/jupyter/labextensions/escobar/schemas/escobar/plugin.json +0 -0
  15. {escobar-0.1.71.data → escobar-0.1.73.data}/data/share/jupyter/labextensions/escobar/static/304.bf7e91be734e5b36cdc9.js +0 -0
  16. {escobar-0.1.71.data → escobar-0.1.73.data}/data/share/jupyter/labextensions/escobar/static/346.8a1e61ca6789b6fddfa7.js +0 -0
  17. {escobar-0.1.71.data → escobar-0.1.73.data}/data/share/jupyter/labextensions/escobar/static/379.40dd59dc19d4a6b42d25.js +0 -0
  18. {escobar-0.1.71.data → escobar-0.1.73.data}/data/share/jupyter/labextensions/escobar/static/57.17e53b4b9a954f39c4d8.js +0 -0
  19. {escobar-0.1.71.data → escobar-0.1.73.data}/data/share/jupyter/labextensions/escobar/static/648.a7d314faeacc762d891d.js +0 -0
  20. {escobar-0.1.71.data → escobar-0.1.73.data}/data/share/jupyter/labextensions/escobar/static/666.3bc65aac3a3be183ee19.js +0 -0
  21. {escobar-0.1.71.data → escobar-0.1.73.data}/data/share/jupyter/labextensions/escobar/static/874.c539726f31a1baa0267e.js +0 -0
  22. {escobar-0.1.71.data → escobar-0.1.73.data}/data/share/jupyter/labextensions/escobar/static/986.cbcf9d7c1cd8d06be435.js +0 -0
  23. {escobar-0.1.71.data → escobar-0.1.73.data}/data/share/jupyter/labextensions/escobar/static/style.js +0 -0
  24. {escobar-0.1.71.data → escobar-0.1.73.data}/data/share/jupyter/labextensions/escobar/static/third-party-licenses.json +0 -0
  25. {escobar-0.1.71.dist-info → escobar-0.1.73.dist-info}/WHEEL +0 -0
  26. {escobar-0.1.71.dist-info → escobar-0.1.73.dist-info}/entry_points.txt +0 -0
  27. {escobar-0.1.71.dist-info → escobar-0.1.73.dist-info}/licenses/LICENSE +0 -0
escobar/_version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # This file is auto-generated by Hatchling. As such, do not:
2
2
  # - modify
3
3
  # - track in version control e.g. be sure to add to .gitignore
4
- __version__ = VERSION = '0.1.71'
4
+ __version__ = VERSION = '0.1.73'
escobar/handlers.py CHANGED
@@ -183,7 +183,15 @@ class WebSocketProxyHandler(tornado.websocket.WebSocketHandler):
183
183
  async def open(self):
184
184
  """Called when websocket connection is opened"""
185
185
  start_time = time.time()
186
+
187
+ # Log which endpoint was accessed and path normalization
188
+ request_path = self.request.path
186
189
  print(f"[ESCOBAR-WS] === CLIENT CONNECTION OPENED ===")
190
+ print(f"[ESCOBAR-WS] Client connected via: {request_path}")
191
+ print(f"[ESCOBAR-WS] Target remains: {self.target_url}")
192
+ if request_path != "/ws":
193
+ print(f"[ESCOBAR-WS] Path normalization: {request_path} → /ws")
194
+
187
195
  print(f"[ESCOBAR-WS] Connection attempt started at {start_time}")
188
196
  print(f"[ESCOBAR-WS] Client origin: {self.request.headers.get('Origin', 'NO_ORIGIN')}")
189
197
  print(f"[ESCOBAR-WS] Client remote IP: {self.request.remote_ip}")
@@ -247,7 +255,7 @@ class WebSocketProxyHandler(tornado.websocket.WebSocketHandler):
247
255
  print(f"[ESCOBAR-WS] === END CONNECTION FAILED ===")
248
256
 
249
257
  logging.error(f"Failed to connect to target websocket {self.target_url}: {str(e)}")
250
- self.close(code=1011, reason="Failed to connect to target server")
258
+ self.close(code=1011, reason=f"Failed to connect to target server: {self.target_url}")
251
259
 
252
260
  async def on_message(self, message):
253
261
  """Called when a message is received from the client"""
@@ -369,13 +377,21 @@ def setup_handlers(web_app):
369
377
  proxy_pattern = url_path_join(base_url, "proxy", "(.*)")
370
378
  print(f"[ESCOBAR-WS] Proxy pattern: {proxy_pattern}")
371
379
 
372
- # Register the /ws websocket proxy endpoint
373
- ws_proxy_pattern = url_path_join(base_url, "ws")
374
- print(f"[ESCOBAR-WS] WebSocket proxy pattern: {ws_proxy_pattern}")
380
+ # Register multiple WebSocket proxy endpoints that all route to the same backend
381
+ ws_patterns = [
382
+ url_path_join(base_url, "ws"), # /ws
383
+ url_path_join(base_url, "hub", "ws"), # /hub/ws
384
+ url_path_join(base_url, "voitta", "ws") # /voitta/ws
385
+ ]
386
+
387
+ print(f"[ESCOBAR-WS] WebSocket proxy patterns:")
388
+ for pattern in ws_patterns:
389
+ print(f"[ESCOBAR-WS] - {pattern}")
375
390
 
391
+ # Build handlers list with all WebSocket patterns
376
392
  handlers = [
377
393
  (proxy_pattern, ProxyHandler),
378
- (ws_proxy_pattern, WebSocketProxyHandler)
394
+ *[(pattern, WebSocketProxyHandler) for pattern in ws_patterns]
379
395
  ]
380
396
 
381
397
  print(f"[ESCOBAR-WS] Registering {len(handlers)} handlers")
@@ -384,5 +400,7 @@ def setup_handlers(web_app):
384
400
  web_app.add_handlers(host_pattern, handlers)
385
401
 
386
402
  print(f"[ESCOBAR-WS] Handlers registered successfully")
387
- print(f"[ESCOBAR-WS] WebSocket proxy available at: {ws_proxy_pattern}")
403
+ print(f"[ESCOBAR-WS] WebSocket proxy endpoints available:")
404
+ for pattern in ws_patterns:
405
+ print(f"[ESCOBAR-WS] - {pattern} → ws://localhost:8777/ws")
388
406
  print(f"[ESCOBAR-WS] === END SETTING UP HANDLERS ===")
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "escobar",
3
- "version": "0.1.71",
3
+ "version": "0.1.73",
4
4
  "description": "AI CHAT EXTENSION",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -123,7 +123,7 @@
123
123
  "outputDir": "escobar/labextension",
124
124
  "schemaDir": "schema",
125
125
  "_build": {
126
- "load": "static/remoteEntry.5f59b6b055a4fae459b0.js",
126
+ "load": "static/remoteEntry.c7b59f5a7472168cb072.js",
127
127
  "extension": "./extension",
128
128
  "style": "./style"
129
129
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "escobar",
3
- "version": "0.1.71",
3
+ "version": "0.1.73",
4
4
  "description": "AI CHAT EXTENSION",
5
5
  "keywords": [
6
6
  "jupyter",