| import { getAgentColorMap } from '../../bootstrap/state.js' |
| import type { Theme } from '../../utils/theme.js' |
|
|
| export type AgentColorName = |
| | 'red' |
| | 'blue' |
| | 'green' |
| | 'yellow' |
| | 'purple' |
| | 'orange' |
| | 'pink' |
| | 'cyan' |
|
|
| export const AGENT_COLORS: readonly AgentColorName[] = [ |
| 'red', |
| 'blue', |
| 'green', |
| 'yellow', |
| 'purple', |
| 'orange', |
| 'pink', |
| 'cyan', |
| ] as const |
|
|
| export const AGENT_COLOR_TO_THEME_COLOR = { |
| red: 'red_FOR_SUBAGENTS_ONLY', |
| blue: 'blue_FOR_SUBAGENTS_ONLY', |
| green: 'green_FOR_SUBAGENTS_ONLY', |
| yellow: 'yellow_FOR_SUBAGENTS_ONLY', |
| purple: 'purple_FOR_SUBAGENTS_ONLY', |
| orange: 'orange_FOR_SUBAGENTS_ONLY', |
| pink: 'pink_FOR_SUBAGENTS_ONLY', |
| cyan: 'cyan_FOR_SUBAGENTS_ONLY', |
| } as const satisfies Record<AgentColorName, keyof Theme> |
|
|
| export function getAgentColor(agentType: string): keyof Theme | undefined { |
| if (agentType === 'general-purpose') { |
| return undefined |
| } |
|
|
| const agentColorMap = getAgentColorMap() |
|
|
| |
| const existingColor = agentColorMap.get(agentType) |
| if (existingColor && AGENT_COLORS.includes(existingColor)) { |
| return AGENT_COLOR_TO_THEME_COLOR[existingColor] |
| } |
|
|
| return undefined |
| } |
|
|
| export function setAgentColor( |
| agentType: string, |
| color: AgentColorName | undefined, |
| ): void { |
| const agentColorMap = getAgentColorMap() |
|
|
| if (!color) { |
| agentColorMap.delete(agentType) |
| return |
| } |
|
|
| if (AGENT_COLORS.includes(color)) { |
| agentColorMap.set(agentType, color) |
| } |
| } |
|
|