AdithyaSK HF Staff commited on
Commit
297cffc
·
verified ·
1 Parent(s): a9b575d

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. server/app.py +23 -36
server/app.py CHANGED
@@ -1,8 +1,8 @@
1
  """FastAPI application for the OpenCode Environment.
2
 
3
- The Gradio web UI is mounted at root (``/``). OpenEnv's standard API
4
- endpoints (``/health``, ``/reset``, ``/step``, ``/mcp``) are registered
5
- first and take precedence over Gradio routes.
6
 
7
  Usage::
8
 
@@ -20,40 +20,44 @@ from __future__ import annotations
20
 
21
  import os
22
 
23
- import gradio as gr
24
-
25
  try:
26
- from openenv.core.env_server.gradio_theme import (
27
- OPENENV_GRADIO_CSS,
28
- OPENENV_GRADIO_THEME,
29
- )
30
  from openenv.core.env_server.http_server import create_app
31
  from openenv.core.env_server.mcp_types import (
32
  CallToolAction,
33
  CallToolObservation,
34
  )
35
- from openenv.core.env_server.web_interface import WebInterfaceManager
36
 
37
  from .opencode_environment import OpenCodeEnvironment
38
  from .gradio_ui import opencode_ui_builder
39
  except ImportError:
40
- from openenv.core.env_server.gradio_theme import (
41
- OPENENV_GRADIO_CSS,
42
- OPENENV_GRADIO_THEME,
43
- )
44
  from openenv.core.env_server.http_server import create_app
45
  from openenv.core.env_server.mcp_types import (
46
  CallToolAction,
47
  CallToolObservation,
48
  )
49
- from openenv.core.env_server.web_interface import WebInterfaceManager
50
 
51
  from server.opencode_environment import OpenCodeEnvironment
52
  from server.gradio_ui import opencode_ui_builder
53
 
54
- # Build the HTTP API server with MCP routing. We mount our own Gradio UI
55
- # below, so disable the built-in web interface from create_app.
56
- os.environ["ENABLE_WEB_INTERFACE"] = "false"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
 
58
  app = create_app(
59
  OpenCodeEnvironment,
@@ -61,24 +65,7 @@ app = create_app(
61
  CallToolObservation,
62
  env_name="opencode_env",
63
  max_concurrent_envs=int(os.getenv("MAX_CONCURRENT_ENVS", "4")),
64
- )
65
-
66
- _web_manager = WebInterfaceManager(
67
- OpenCodeEnvironment,
68
- CallToolAction,
69
- CallToolObservation,
70
- )
71
-
72
- _demo = opencode_ui_builder(
73
- web_manager=_web_manager,
74
- )
75
-
76
- app = gr.mount_gradio_app(
77
- app,
78
- _demo,
79
- path="/web",
80
- theme=OPENENV_GRADIO_THEME,
81
- css=OPENENV_GRADIO_CSS,
82
  )
83
 
84
 
 
1
  """FastAPI application for the OpenCode Environment.
2
 
3
+ Mirrors the ``e2b_desktop`` pattern: pass a ``gradio_builder`` to
4
+ ``create_app`` and let OpenEnv handle the Gradio mount (including the
5
+ HF-Space-compatible ``/web`` path). No manual ``gr.mount_gradio_app``.
6
 
7
  Usage::
8
 
 
20
 
21
  import os
22
 
 
 
23
  try:
 
 
 
 
24
  from openenv.core.env_server.http_server import create_app
25
  from openenv.core.env_server.mcp_types import (
26
  CallToolAction,
27
  CallToolObservation,
28
  )
 
29
 
30
  from .opencode_environment import OpenCodeEnvironment
31
  from .gradio_ui import opencode_ui_builder
32
  except ImportError:
 
 
 
 
33
  from openenv.core.env_server.http_server import create_app
34
  from openenv.core.env_server.mcp_types import (
35
  CallToolAction,
36
  CallToolObservation,
37
  )
 
38
 
39
  from server.opencode_environment import OpenCodeEnvironment
40
  from server.gradio_ui import opencode_ui_builder
41
 
42
+
43
+ def _custom_gradio_builder(
44
+ web_manager,
45
+ action_fields,
46
+ metadata,
47
+ is_chat_env,
48
+ title,
49
+ quick_start_md,
50
+ ):
51
+ """Callback invoked by ``create_app`` to build our custom Gradio UI.
52
+
53
+ The ``web_manager`` lets the UI drive rollouts through the same
54
+ ``CallToolAction`` pipeline as MCP clients; we ignore the other hints.
55
+ """
56
+ return opencode_ui_builder(web_manager=web_manager)
57
+
58
+
59
+ # Enable OpenEnv's built-in Gradio mounting at the standard /web path.
60
+ os.environ.setdefault("ENABLE_WEB_INTERFACE", "true")
61
 
62
  app = create_app(
63
  OpenCodeEnvironment,
 
65
  CallToolObservation,
66
  env_name="opencode_env",
67
  max_concurrent_envs=int(os.getenv("MAX_CONCURRENT_ENVS", "4")),
68
+ gradio_builder=_custom_gradio_builder,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  )
70
 
71