|
|
@@ -1,6 +1,6 @@
|
|
|
import { Context, Effect, Layer } from "effect"
|
|
|
import { HttpApiBuilder } from "effect/unstable/httpapi"
|
|
|
-import { HttpMiddleware, HttpRouter, HttpServer } from "effect/unstable/http"
|
|
|
+import { HttpMiddleware, HttpRouter, HttpServer, HttpServerResponse } from "effect/unstable/http"
|
|
|
import * as Socket from "effect/unstable/socket/Socket"
|
|
|
import { Account } from "@/account/account"
|
|
|
import { Agent } from "@/agent/agent"
|
|
|
@@ -38,6 +38,7 @@ import { Vcs } from "@/project/vcs"
|
|
|
import { Worktree } from "@/worktree"
|
|
|
import { Workspace } from "@/control-plane/workspace"
|
|
|
import { isAllowedCorsOrigin } from "@/server/cors"
|
|
|
+import { UIRoutes } from "@/server/routes/ui"
|
|
|
import { InstanceHttpApi, RootHttpApi } from "./api"
|
|
|
import { ServerAuthConfig, authorizationLayer, authorizationRouterMiddleware } from "./middleware/authorization"
|
|
|
import { eventRoute } from "./event"
|
|
|
@@ -119,7 +120,21 @@ const instanceRoutes = Layer.mergeAll(rawInstanceRoutes, instanceApiRoutes).pipe
|
|
|
]),
|
|
|
)
|
|
|
|
|
|
-export const routes = Layer.mergeAll(rootApiRoutes, instanceRoutes).pipe(
|
|
|
+const uiRoutes = lazy(() => UIRoutes())
|
|
|
+const uiRoute = HttpRouter.add("*", "/*", (request) =>
|
|
|
+ Effect.promise(async () =>
|
|
|
+ uiRoutes().fetch(
|
|
|
+ request.source instanceof Request
|
|
|
+ ? request.source
|
|
|
+ : new Request(new URL(request.originalUrl, "http://localhost"), {
|
|
|
+ method: request.method,
|
|
|
+ headers: request.headers,
|
|
|
+ }),
|
|
|
+ ),
|
|
|
+ ).pipe(Effect.map(HttpServerResponse.fromWeb)),
|
|
|
+)
|
|
|
+
|
|
|
+export const routes = Layer.mergeAll(rootApiRoutes, instanceRoutes, uiRoute).pipe(
|
|
|
Layer.provide([
|
|
|
cors,
|
|
|
runtime,
|