summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/utils
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-04-07 11:06:23 -0500
committerGitHub <[email protected]>2026-04-07 11:06:23 -0500
commitec8b9810b4231cd6a5c69ccd930b6c50999fc997 (patch)
tree562313d6dd3eda9891f3a4a3a2ef6ce3d36acd05 /packages/app/src/utils
parent65318a80f7a3320ba77b749241f8de997dc65c82 (diff)
downloadopencode-ec8b9810b4231cd6a5c69ccd930b6c50999fc997.tar.gz
opencode-ec8b9810b4231cd6a5c69ccd930b6c50999fc997.zip
feat(app): better subagent experience (#20708)
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(