11import * as InstanceState from "@/effect/instance-state"
2- import { EffectBridge } from "@/effect/bridge "
2+ import { InstanceRef , WorkspaceRef } from "@/effect/instance-ref "
33import { Agent } from "@/agent/agent"
44import { Bus } from "@/bus"
55import { 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