@@ -4,8 +4,10 @@ import { useParams } from "@solidjs/router"
44import { batch , createEffect , createMemo , startTransition } from "solid-js"
55import { createStore } from "solid-js/store"
66import { useModels } from "@/context/models"
7+ import { useSettings } from "@/context/settings"
78import { useProviders } from "@/hooks/use-providers"
89import { Persist , persisted } from "@/utils/persist"
10+ import { hasCustomAgent , resolveAgent } from "./local-agent"
911import { cycleModelVariant , getConfiguredAgentVariant , resolveModelVariant } from "./model-variant"
1012import { useSDK } from "./sdk"
1113import { useSync } from "./sync"
@@ -62,9 +64,11 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
6264 const serverSDK = useServerSDK ( )
6365 const providers = useProviders ( ( ) => sdk ( ) . directory )
6466 const models = useModels ( )
67+ const settings = useSettings ( )
6568
6669 const id = createMemo ( ( ) => params . id || undefined )
6770 const list = createMemo ( ( ) => sync ( ) . data . agent . filter ( ( item ) => item . mode !== "subagent" && ! item . hidden ) )
71+ const agentsVisible = createMemo ( ( ) => settings . visibility . customAgents ( ) || hasCustomAgent ( list ( ) ) )
6872 const connected = createMemo ( ( ) => new Set ( providers . connected ( ) . map ( ( item ) => item . id ) ) )
6973
7074 const [ saved , setSaved , , savedReady ] = persisted (
@@ -107,9 +111,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
107111 }
108112
109113 const pickAgent = ( name : string | undefined ) => {
110- const items = list ( )
111- if ( items . length === 0 ) return
112- return items . find ( ( item ) => item . name === name ) ?? items [ 0 ]
114+ return resolveAgent ( list ( ) , name )
113115 }
114116
115117 createEffect ( ( ) => {
@@ -180,8 +182,9 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
180182
181183 const agent = {
182184 list,
185+ visible : agentsVisible ,
183186 current ( ) {
184- return pickAgent ( scope ( ) ?. agent ?? store . current )
187+ return pickAgent ( agentsVisible ( ) ? ( scope ( ) ?. agent ?? store . current ) : "build" )
185188 } ,
186189 set ( name : string | undefined ) {
187190 const item = pickAgent ( name )
0 commit comments