diff --git a/packages/ui/src/components/agent-selector.tsx b/packages/ui/src/components/agent-selector.tsx
index a06568d9..b5c6d5da 100644
--- a/packages/ui/src/components/agent-selector.tsx
+++ b/packages/ui/src/components/agent-selector.tsx
@@ -31,10 +31,10 @@ export default function AgentSelector(props: AgentSelectorProps) {
const availableAgents = createMemo(() => {
const allAgents = instanceAgents()
if (isChildSession()) {
- return allAgents
+ return allAgents.filter((agent) => !agent.hidden)
}
- const filtered = allAgents.filter((agent) => agent.mode !== "subagent")
+ const filtered = allAgents.filter((agent) => !agent.hidden && agent.mode !== "subagent")
const currentAgent = allAgents.find((a) => a.name === props.currentAgent)
if (currentAgent && !filtered.find((a) => a.name === props.currentAgent)) {
@@ -103,10 +103,10 @@ export default function AgentSelector(props: AgentSelectorProps) {
>
>
- {(state) => (
+ {() => (
- {t("agentSelector.trigger.primary", { agent: state.selectedOption()?.name ?? t("agentSelector.none") })}
+ {t("agentSelector.trigger.primary", { agent: props.currentAgent || t("agentSelector.none") })}
)}
diff --git a/packages/ui/src/components/unified-picker.tsx b/packages/ui/src/components/unified-picker.tsx
index 70a0be97..76d7cb7a 100644
--- a/packages/ui/src/components/unified-picker.tsx
+++ b/packages/ui/src/components/unified-picker.tsx
@@ -287,13 +287,14 @@ const UnifiedPicker: Component = (props) => {
if (mode() !== "mention") return
const query = props.searchQuery.toLowerCase()
+ const visibleAgents = props.agents.filter((agent) => !agent.hidden)
const filtered = query
- ? props.agents.filter(
+ ? visibleAgents.filter(
(agent) =>
agent.name.toLowerCase().includes(query) ||
(agent.description && agent.description.toLowerCase().includes(query)),
)
- : props.agents
+ : visibleAgents
setFilteredAgents(filtered)
})
diff --git a/packages/ui/src/stores/session-api.ts b/packages/ui/src/stores/session-api.ts
index 9fd12b2c..6c904fd7 100644
--- a/packages/ui/src/stores/session-api.ts
+++ b/packages/ui/src/stores/session-api.ts
@@ -526,6 +526,7 @@ async function fetchAgents(instanceId: string): Promise {
name: agent.name,
description: agent.description || "",
mode: agent.mode,
+ hidden: agent.hidden,
model: agent.model?.modelID
? {
providerId: agent.model.providerID || "",
diff --git a/packages/ui/src/types/session.ts b/packages/ui/src/types/session.ts
index d0a864d5..ab7f6c89 100644
--- a/packages/ui/src/types/session.ts
+++ b/packages/ui/src/types/session.ts
@@ -68,6 +68,7 @@ export interface Agent {
name: string
description: string
mode: string
+ hidden?: boolean
model?: {
providerId: string
modelId: string