|
1 | 1 | import { generateSpecs } from "hono-openapi" |
2 | 2 | import { Hono } from "hono" |
3 | | -import type { MiddlewareHandler } from "hono" |
4 | 3 | import { adapter } from "#hono" |
5 | 4 | import { lazy } from "@/util/lazy" |
6 | 5 | import { Log } from "@/util" |
7 | 6 | import { Flag } from "@/flag/flag" |
8 | | -import { Instance } from "@/project/instance" |
9 | | -import { InstanceBootstrap } from "@/project/bootstrap" |
10 | | -import { AppRuntime } from "@/effect/app-runtime" |
11 | | -import { AppFileSystem } from "@opencode-ai/shared/filesystem" |
12 | 7 | import { WorkspaceID } from "@/control-plane/schema" |
13 | | -import { WorkspaceContext } from "@/control-plane/workspace-context" |
14 | 8 | import { MDNS } from "./mdns" |
15 | 9 | import { AuthMiddleware, CompressionMiddleware, CorsMiddleware, ErrorMiddleware, LoggerMiddleware } from "./middleware" |
16 | 10 | import { FenceMiddleware } from "./fence" |
@@ -48,47 +42,23 @@ function create(opts: { cors?: string[] }) { |
48 | 42 |
|
49 | 43 | const runtime = adapter.create(app) |
50 | 44 |
|
51 | | - function InstanceMiddleware(workspaceID?: WorkspaceID): MiddlewareHandler { |
52 | | - return async (c, next) => { |
53 | | - const raw = c.req.query("directory") || c.req.header("x-opencode-directory") || process.cwd() |
54 | | - const directory = AppFileSystem.resolve( |
55 | | - (() => { |
56 | | - try { |
57 | | - return decodeURIComponent(raw) |
58 | | - } catch { |
59 | | - return raw |
60 | | - } |
61 | | - })(), |
62 | | - ) |
63 | | - |
64 | | - return WorkspaceContext.provide({ |
65 | | - workspaceID, |
66 | | - async fn() { |
67 | | - return Instance.provide({ |
68 | | - directory, |
69 | | - init: () => AppRuntime.runPromise(InstanceBootstrap), |
70 | | - async fn() { |
71 | | - return next() |
72 | | - }, |
73 | | - }) |
74 | | - }, |
75 | | - }) |
76 | | - } |
77 | | - } |
78 | | - |
79 | 45 | if (Flag.OPENCODE_WORKSPACE_ID) { |
80 | 46 | return { |
81 | 47 | app: app |
82 | | - .use(InstanceMiddleware(Flag.OPENCODE_WORKSPACE_ID ? WorkspaceID.make(Flag.OPENCODE_WORKSPACE_ID) : undefined)) |
83 | 48 | .use(FenceMiddleware) |
84 | | - .route("/", InstanceRoutes(runtime.upgradeWebSocket)), |
| 49 | + .route( |
| 50 | + "/", |
| 51 | + InstanceRoutes( |
| 52 | + runtime.upgradeWebSocket, |
| 53 | + Flag.OPENCODE_WORKSPACE_ID ? WorkspaceID.make(Flag.OPENCODE_WORKSPACE_ID) : undefined, |
| 54 | + ), |
| 55 | + ), |
85 | 56 | runtime, |
86 | 57 | } |
87 | 58 | } |
88 | 59 |
|
89 | 60 | return { |
90 | 61 | app: app |
91 | | - .use(InstanceMiddleware()) |
92 | 62 | .route("/", ControlPlaneRoutes()) |
93 | 63 | .use(WorkspaceRouterMiddleware(runtime.upgradeWebSocket)) |
94 | 64 | .route("/", InstanceRoutes(runtime.upgradeWebSocket)) |
|
0 commit comments