refactor(httpapi): drop session prompt bridge (#25210)

This commit is contained in:
Kit Langton
2026-04-30 22:25:52 -04:00
committed by GitHub
parent 6434918794
commit 3544ea0244

View File

@@ -1,5 +1,5 @@
import * as InstanceState from "@/effect/instance-state" 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 { Agent } from "@/agent/agent"
import { Bus } from "@/bus" import { Bus } from "@/bus"
import { Command } from "@/command" import { Command } from "@/command"
@@ -259,15 +259,14 @@ export const sessionHandlers = HttpApiBuilder.group(InstanceHttpApi, "session",
params: { sessionID: SessionID } params: { sessionID: SessionID }
payload: typeof PromptPayload.Type payload: typeof PromptPayload.Type
}) { }) {
const bridge = yield* EffectBridge.make() const instance = yield* InstanceState.context
const workspace = yield* InstanceState.workspaceID
return HttpServerResponse.stream( return HttpServerResponse.stream(
Stream.fromEffect( Stream.fromEffect(
bridge.run( promptSvc.prompt({
promptSvc.prompt({ ...ctx.payload,
...ctx.payload, sessionID: ctx.params.sessionID,
sessionID: ctx.params.sessionID, }).pipe(Effect.provideService(InstanceRef, instance), Effect.provideService(WorkspaceRef, workspace)),
}),
),
).pipe( ).pipe(
Stream.map((message) => JSON.stringify(message)), Stream.map((message) => JSON.stringify(message)),
Stream.encodeText, Stream.encodeText,
@@ -280,10 +279,13 @@ export const sessionHandlers = HttpApiBuilder.group(InstanceHttpApi, "session",
params: { sessionID: SessionID } params: { sessionID: SessionID }
payload: typeof PromptPayload.Type payload: typeof PromptPayload.Type
}) { }) {
const bridge = yield* EffectBridge.make() const instance = yield* InstanceState.context
yield* Effect.sync(() => { const workspace = yield* InstanceState.workspaceID
bridge.fork( yield* Effect.sync(() =>
Effect.runFork(
promptSvc.prompt({ ...ctx.payload, sessionID: ctx.params.sessionID }).pipe( promptSvc.prompt({ ...ctx.payload, sessionID: ctx.params.sessionID }).pipe(
Effect.provideService(InstanceRef, instance),
Effect.provideService(WorkspaceRef, workspace),
Effect.catchCause((cause) => Effect.catchCause((cause) =>
Effect.gen(function* () { Effect.gen(function* () {
yield* Effect.logError("prompt_async failed", { sessionID: ctx.params.sessionID, cause }) 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() return HttpApiSchema.NoContent.make()
}) })