summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-04-30 22:25:52 -0400
committerGitHub <[email protected]>2026-04-30 22:25:52 -0400
commit3544ea02444bcbe1c93bb4633e6cbd69b0ff9606 (patch)
tree04103575d07ff87f3c0e74b31ca178263c51ca4d /packages
parent6434918794d4cd3663519db6c71006f1f1042dee (diff)
downloadopencode-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.ts28
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()
})