summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/utils
diff options
context:
space:
mode:
Diffstat (limited to 'packages/app/src/utils')
-rw-r--r--packages/app/src/utils/agent.ts23
1 files changed, 22 insertions, 1 deletions
diff --git a/packages/app/src/utils/agent.ts b/packages/app/src/utils/agent.ts
index 390932a13..59da53af1 100644
--- a/packages/app/src/utils/agent.ts
+++ b/packages/app/src/utils/agent.ts
@@ -5,9 +5,30 @@ const defaults: Record<string, string> = {
plan: "var(--icon-agent-plan-base)",
}
+const palette = [
+ "var(--icon-agent-ask-base)",
+ "var(--icon-agent-build-base)",
+ "var(--icon-agent-docs-base)",
+ "var(--icon-agent-plan-base)",
+ "var(--syntax-info)",
+ "var(--syntax-success)",
+ "var(--syntax-warning)",
+ "var(--syntax-property)",
+ "var(--syntax-constant)",
+ "var(--text-diff-add-base)",
+ "var(--text-diff-delete-base)",
+ "var(--icon-warning-base)",
+]
+
+function tone(name: string) {
+ let hash = 0
+ for (const char of name) hash = (hash * 31 + char.charCodeAt(0)) >>> 0
+ return palette[hash % palette.length]
+}
+
export function agentColor(name: string, custom?: string) {
if (custom) return custom
- return defaults[name] ?? defaults[name.toLowerCase()]
+ return defaults[name] ?? defaults[name.toLowerCase()] ?? tone(name.toLowerCase())
}
export function messageAgentColor(