@@ -2548,10 +2548,8 @@ function WebSearch(props: ToolProps) {
25482548function Subagent ( props : ToolProps ) {
25492549 const { navigate } = useRoute ( )
25502550 const data = useData ( )
2551- const input = createMemo ( ( ) => ( typeof props . part . state . input === "string" ? { } : props . part . state . input ) )
2552- const metadata = createMemo ( ( ) => ( props . part . state . status === "streaming" ? { } : props . part . state . structured ) )
2553- const sessionID = createMemo ( ( ) => stringValue ( metadata ( ) . sessionID ) ?? stringValue ( metadata ( ) . sessionId ) )
2554- const description = createMemo ( ( ) => stringValue ( input ( ) . description ) )
2551+ const sessionID = createMemo ( ( ) => stringValue ( props . metadata . sessionID ) ?? stringValue ( props . metadata . sessionId ) )
2552+ const description = createMemo ( ( ) => stringValue ( props . input . description ) )
25552553 const isRunning = createMemo ( ( ) => {
25562554 const id = sessionID ( )
25572555 return props . part . state . status === "running" || Boolean ( id && data . session . status ( id ) === "running" )
@@ -2569,16 +2567,23 @@ function Subagent(props: ToolProps) {
25692567 if ( id ) navigate ( { type : "session" , sessionID : id } )
25702568 } }
25712569 status = {
2572- input ( ) . background === true || metadata ( ) . status === "running" ? (
2570+ isBackgroundSubagent ( props . metadata , props . part . state . status ) ? (
25732571 < StatusBadge > Background</ StatusBadge >
25742572 ) : undefined
25752573 }
25762574 >
2577- { `${ Locale . titlecase ( stringValue ( input ( ) . agent ) ?? stringValue ( input ( ) . subagent_type ) ?? "General" ) } Subagent — ${ description ( ) ?? "Subagent" } ` }
2575+ { `${ Locale . titlecase ( stringValue ( props . input . agent ) ?? stringValue ( props . input . subagent_type ) ?? "General" ) } Subagent — ${ description ( ) ?? "Subagent" } ` }
25782576 </ InlineTool >
25792577 )
25802578}
25812579
2580+ export function isBackgroundSubagent (
2581+ metadata : Record < string , unknown > ,
2582+ status : SessionMessageAssistantTool [ "state" ] [ "status" ] ,
2583+ ) {
2584+ return status === "completed" && metadata . status === "running"
2585+ }
2586+
25822587export function formatSubagentRetry ( attempt : number , message : string ) {
25832588 return `Retrying (attempt ${ attempt } ) · ${ message } `
25842589}
0 commit comments