diff options
| author | Kit Langton <[email protected]> | 2026-04-30 22:25:52 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-30 22:25:52 -0400 |
| commit | 3544ea02444bcbe1c93bb4633e6cbd69b0ff9606 (patch) | |
| tree | 04103575d07ff87f3c0e74b31ca178263c51ca4d /packages | |
| parent | 6434918794d4cd3663519db6c71006f1f1042dee (diff) | |
| download | opencode-3544ea02444bcbe1c93bb4633e6cbd69b0ff9606.tar.gz opencode-3544ea02444bcbe1c93bb4633e6cbd69b0ff9606.zip | |
refactor(httpapi): drop session prompt bridge (#25210)
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/opencode/src/server/routes/instance/httpapi/handlers/session.ts | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/packages/opencode/src/server/routes/instance/httpapi/handlers/session.ts b/packages/opencode/src/server/routes/instance/httpapi/handlers/session.ts index e08e09495..324d75730 100644 --- a/packages/opencode/src/server/routes/instance/httpapi/handlers/session.ts +++ b/packages/opencode/src/server/routes/instance/httpapi/handlers/session.ts @@ -1,5 +1,5 @@ import * as InstanceState from "@/effect/instance-state" -import { EffectBridge } from "@/effect/bridge" +import { InstanceRef, WorkspaceRef } from "@/effect/instance-ref" import { Agent } from "@/agent/agent" import { Bus } from "@/bus" import { Command } from "@/command" @@ -259,15 +259,14 @@ export const sessionHandlers = HttpApiBuilder.group(InstanceHttpApi, "session", params: { sessionID: SessionID } payload: typeof PromptPayload.Type }) { - const bridge = yield* EffectBridge.make() + const instance = yield* InstanceState.context + const workspace = yield* InstanceState.workspaceID return HttpServerResponse.stream( Stream.fromEffect( - bridge.run( - promptSvc.prompt({ - ...ctx.payload, - sessionID: ctx.params.sessionID, - }), - ), + promptSvc.prompt({ + ...ctx.payload, + sessionID: ctx.params.sessionID, + }).pipe(Effect.provideService(InstanceRef, instance), Effect.provideService(WorkspaceRef, workspace)), ).pipe( Stream.map((message) => JSON.stringify(message)), Stream.encodeText, @@ -280,10 +279,13 @@ export const sessionHandlers = HttpApiBuilder.group(InstanceHttpApi, "session", params: { sessionID: SessionID } payload: typeof PromptPayload.Type }) { - const bridge = yield* EffectBridge.make() - yield* Effect.sync(() => { - bridge.fork( + const instance = yield* InstanceState.context + const workspace = yield* InstanceState.workspaceID + yield* Effect.sync(() => + Effect.runFork( promptSvc.prompt({ ...ctx.payload, sessionID: ctx.params.sessionID }).pipe( + Effect.provideService(InstanceRef, instance), + Effect.provideService(WorkspaceRef, workspace), Effect.catchCause((cause) => Effect.gen(function* () { yield* Effect.logError("prompt_async failed", { sessionID: ctx.params.sessionID, cause }) @@ -294,8 +296,8 @@ export const sessionHandlers = HttpApiBuilder.group(InstanceHttpApi, "session", }), ), ), - ) - }) + ), + ) return HttpApiSchema.NoContent.make() }) |
