|
|
@@ -35,6 +35,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
|
|
|
|
|
|
const agent = iife(() => {
|
|
|
const agents = createMemo(() => sync.data.agent.filter((x) => x.mode !== "subagent" && !x.hidden))
|
|
|
+ const visibleAgents = createMemo(() => sync.data.agent.filter((x) => !x.hidden))
|
|
|
const [agentStore, setAgentStore] = createStore<{
|
|
|
current: string
|
|
|
}>({
|
|
|
@@ -48,6 +49,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
|
|
|
theme.warning,
|
|
|
theme.primary,
|
|
|
theme.error,
|
|
|
+ theme.info,
|
|
|
])
|
|
|
return {
|
|
|
list() {
|
|
|
@@ -75,11 +77,16 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
|
|
|
})
|
|
|
},
|
|
|
color(name: string) {
|
|
|
- const all = sync.data.agent
|
|
|
- const agent = all.find((x) => x.name === name)
|
|
|
- if (agent?.color) return RGBA.fromHex(agent.color)
|
|
|
- const index = all.findIndex((x) => x.name === name)
|
|
|
+ const index = visibleAgents().findIndex((x) => x.name === name)
|
|
|
if (index === -1) return colors()[0]
|
|
|
+ const agent = visibleAgents()[index]
|
|
|
+
|
|
|
+ if (agent?.color) {
|
|
|
+ const color = agent.color
|
|
|
+ if (color.startsWith("#")) return RGBA.fromHex(color)
|
|
|
+ // already validated by config, just satisfying TS here
|
|
|
+ return theme[color as keyof typeof theme] as RGBA
|
|
|
+ }
|
|
|
return colors()[index % colors().length]
|
|
|
},
|
|
|
}
|