File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -272,7 +272,7 @@ export const layer = Layer.effect(
272272 log . info ( "full sync" , { sessionID } )
273273 const info = yield * session . get ( sessionID )
274274 const diffs = yield * session . diff ( sessionID )
275- const messages = yield * Effect . sync ( ( ) => Array . from ( MessageV2 . stream ( sessionID ) ) )
275+ const messages = yield * session . messages ( { sessionID } )
276276 const models = yield * Effect . forEach (
277277 Array . from (
278278 new Map (
Original file line number Diff line number Diff line change @@ -6,16 +6,9 @@ import { Session } from "@/session/session"
66import { MessageV2 } from "../session/message-v2"
77import { Provider } from "@/provider/provider"
88import { InstanceState } from "@/effect/instance-state"
9- import { type SessionID , MessageID , PartID } from "../session/schema"
9+ import { MessageID , PartID } from "../session/schema"
1010import EXIT_DESCRIPTION from "./plan-exit.txt"
1111
12- function getLastModel ( sessionID : SessionID ) {
13- for ( const item of MessageV2 . stream ( sessionID ) ) {
14- if ( item . info . role === "user" && item . info . model ) return item . info . model
15- }
16- return undefined
17- }
18-
1912export const Parameters = Schema . Struct ( { } )
2013
2114export const PlanExitTool = Tool . define (
@@ -51,7 +44,10 @@ export const PlanExitTool = Tool.define(
5144
5245 if ( answers [ 0 ] ?. [ 0 ] === "No" ) yield * new Question . RejectedError ( )
5346
54- const model = getLastModel ( ctx . sessionID ) ?? ( yield * provider . defaultModel ( ) )
47+ const messages = yield * session . messages ( { sessionID : ctx . sessionID } ) . pipe ( Effect . orDie )
48+ const lastUser = messages . findLast ( ( item ) => item . info . role === "user" && item . info . model )
49+ const model =
50+ lastUser ?. info . role === "user" && lastUser . info . model ? lastUser . info . model : yield * provider . defaultModel ( )
5551
5652 const msg : MessageV2 . User = {
5753 id : MessageID . ascending ( ) ,
Original file line number Diff line number Diff line change @@ -86,7 +86,7 @@ export const TaskTool = Tool.define(
8686 ] ,
8787 } ) )
8888
89- const msg = yield * Effect . sync ( ( ) => MessageV2 . get ( { sessionID : ctx . sessionID , messageID : ctx . messageID } ) )
89+ const msg = yield * MessageV2 . getEffect ( { sessionID : ctx . sessionID , messageID : ctx . messageID } ) . pipe ( Effect . orDie )
9090 if ( msg . info . role !== "assistant" ) return yield * Effect . fail ( new Error ( "Not an assistant message" ) )
9191
9292 const model = next . model ?? {
You can’t perform that action at this time.
0 commit comments