Buckets:
| const defaults: Record<string, string> = { | |
| ask: "var(--icon-agent-ask-base)", | |
| build: "var(--icon-agent-build-base)", | |
| docs: "var(--icon-agent-docs-base)", | |
| 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()] ?? tone(name.toLowerCase()) | |
| } | |
| export function messageAgentColor( | |
| list: readonly { role: string; agent?: string }[] | undefined, | |
| agents: readonly { name: string; color?: string }[], | |
| ) { | |
| if (!list) return undefined | |
| for (let i = list.length - 1; i >= 0; i--) { | |
| const item = list[i] | |
| if (item.role !== "user" || !item.agent) continue | |
| return agentColor(item.agent, agents.find((agent) => agent.name === item.agent)?.color) | |
| } | |
| } | |
Xet Storage Details
- Size:
- 1.33 kB
- Xet hash:
- bbb8adb12fadcf0db01146d8913f05c9363b65e97672c920fa98539ef6f61759
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.