Skip to content

Commit 3544ea0

Browse files
authored
refactor(httpapi): drop session prompt bridge (#25210)
1 parent 6434918 commit 3544ea0

1 file changed

Lines changed: 15 additions & 13 deletions

File tree

  • packages/opencode/src/server/routes/instance/httpapi/handlers

packages/opencode/src/server/routes/instance/httpapi/handlers/session.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as InstanceState from "@/effect/instance-state"
2-
import { EffectBridge } from "@/effect/bridge"
2+
import { InstanceRef, WorkspaceRef } from "@/effect/instance-ref"
33
import { Agent } from "@/agent/agent"
44
import { Bus } from "@/bus"
55
import { Command } from "@/command"
@@ -259,15 +259,14 @@ export const sessionHandlers = HttpApiBuilder.group(InstanceHttpApi, "session",
259259
params: { sessionID: SessionID }
260260
payload: typeof PromptPayload.Type
261261
}) {
262-
const bridge = yield* EffectBridge.make()
262+
const instance = yield* InstanceState.context
263+
const workspace = yield* InstanceState.workspaceID
263264
return HttpServerResponse.stream(
264265
Stream.fromEffect(
265-
bridge.run(
266-
promptSvc.prompt({
267-
...ctx.payload,
268-
sessionID: ctx.params.sessionID,
269-
}),
270-
),
266+
promptSvc.prompt({
267+
...ctx.payload,
268+
sessionID: ctx.params.sessionID,
269+
}).pipe(Effect.provideService(InstanceRef, instance), Effect.provideService(WorkspaceRef, workspace)),
271270
).pipe(
272271
Stream.map((message) => JSON.stringify(message)),
273272
Stream.encodeText,
@@ -280,10 +279,13 @@ export const sessionHandlers = HttpApiBuilder.group(InstanceHttpApi, "session",
280279
params: { sessionID: SessionID }
281280
payload: typeof PromptPayload.Type
282281
}) {
283-
const bridge = yield* EffectBridge.make()
284-
yield* Effect.sync(() => {
285-
bridge.fork(
282+
const instance = yield* InstanceState.context
283+
const workspace = yield* InstanceState.workspaceID
284+
yield* Effect.sync(() =>
285+
Effect.runFork(
286286
promptSvc.prompt({ ...ctx.payload, sessionID: ctx.params.sessionID }).pipe(
287+
Effect.provideService(InstanceRef, instance),
288+
Effect.provideService(WorkspaceRef, workspace),
287289
Effect.catchCause((cause) =>
288290
Effect.gen(function* () {
289291
yield* Effect.logError("prompt_async failed", { sessionID: ctx.params.sessionID, cause })
@@ -294,8 +296,8 @@ export const sessionHandlers = HttpApiBuilder.group(InstanceHttpApi, "session",
294296
}),
295297
),
296298
),
297-
)
298-
})
299+
),
300+
)
299301
return HttpApiSchema.NoContent.make()
300302
})
301303

0 commit comments

Comments
 (0)