11import { afterEach , describe , expect , test } from "bun:test"
22import { mkdir } from "node:fs/promises"
33import path from "node:path"
4- import { Context , Effect } from "effect"
4+ import { Effect } from "effect"
5+ import type { UpgradeWebSocket } from "hono/ws"
56import { Flag } from "@opencode-ai/core/flag/flag"
67import { registerAdaptor } from "../../src/control-plane/adaptors"
78import type { WorkspaceAdaptor } from "../../src/control-plane/types"
89import { Workspace } from "../../src/control-plane/workspace"
9- import { ExperimentalHttpApiServer } from "../../src/server/routes/instance/httpapi/server"
1010import { WorkspacePaths } from "../../src/server/routes/instance/httpapi/workspace"
11+ import { InstanceRoutes } from "../../src/server/routes/instance"
1112import { Session } from "../../src/session"
1213import { Log } from "../../src/util"
1314import { resetDatabase } from "../fixture/db"
@@ -16,19 +17,15 @@ import { Instance } from "../../src/project/instance"
1617
1718void Log . init ( { print : false } )
1819
19- const context = Context . empty ( ) as Context . Context < unknown >
2020const originalWorkspaces = Flag . OPENCODE_EXPERIMENTAL_WORKSPACES
21+ const originalHttpApi = Flag . OPENCODE_EXPERIMENTAL_HTTPAPI
22+ const websocket = ( ( ) => ( ) => new Response ( null , { status : 501 } ) ) as unknown as UpgradeWebSocket
2123
2224function request ( path : string , directory : string , init : RequestInit = { } ) {
25+ Flag . OPENCODE_EXPERIMENTAL_HTTPAPI = true
2326 const headers = new Headers ( init . headers )
2427 headers . set ( "x-opencode-directory" , directory )
25- return ExperimentalHttpApiServer . webHandler ( ) . handler (
26- new Request ( `http://localhost${ path } ` , {
27- ...init ,
28- headers,
29- } ) ,
30- context ,
31- )
28+ return InstanceRoutes ( websocket ) . request ( path , { ...init , headers } )
3229}
3330
3431function runSession < A , E > ( fx : Effect . Effect < A , E , Session . Service > ) {
@@ -61,6 +58,7 @@ function localAdaptor(directory: string): WorkspaceAdaptor {
6158
6259afterEach ( async ( ) => {
6360 Flag . OPENCODE_EXPERIMENTAL_WORKSPACES = originalWorkspaces
61+ Flag . OPENCODE_EXPERIMENTAL_HTTPAPI = originalHttpApi
6462 await Instance . disposeAll ( )
6563 await resetDatabase ( )
6664} )
0 commit comments