From d4679af9e9f63d41e4f220ae905b98afef5da774 Mon Sep 17 00:00:00 2001 From: kevenhu001-cyber Date: Tue, 6 Oct 2026 10:38:05 +0800 Subject: [PATCH] Add missing monochrome provider icons (kiro, devin, hermes, minimax-code, traecli, grok, deepseek-tui) --- packages/app/src/assets/acp-provider-icons.ts | 8 ++++++-- .../app/src/assets/acp-provider-icons/devin.svg | 3 +++ .../app/src/assets/acp-provider-icons/grok.svg | 4 ++++ .../app/src/assets/acp-provider-icons/hermes.svg | 3 +++ .../src/assets/acp-provider-icons/minimax-code.svg | 3 +++ .../app/src/assets/acp-provider-icons/traecli.svg | 3 +++ packages/app/src/components/icons/kiro-icon.tsx | 14 ++++++++++++++ .../app/src/components/provider-icon-name.test.ts | 2 ++ packages/app/src/components/provider-icons.ts | 5 +++-- packages/app/src/data/acp-provider-catalog.ts | 4 ++-- packages/protocol/src/provider-icon-names.ts | 2 ++ .../src/assets/agent-icons/deepseek-tui.svg | 3 +++ packages/website/src/assets/agent-icons/hermes.svg | 3 +++ 13 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 packages/app/src/assets/acp-provider-icons/devin.svg create mode 100644 packages/app/src/assets/acp-provider-icons/grok.svg create mode 100644 packages/app/src/assets/acp-provider-icons/hermes.svg create mode 100644 packages/app/src/assets/acp-provider-icons/minimax-code.svg create mode 100644 packages/app/src/assets/acp-provider-icons/traecli.svg create mode 100644 packages/app/src/components/icons/kiro-icon.tsx create mode 100644 packages/website/src/assets/agent-icons/deepseek-tui.svg create mode 100644 packages/website/src/assets/agent-icons/hermes.svg diff --git a/packages/app/src/assets/acp-provider-icons.ts b/packages/app/src/assets/acp-provider-icons.ts index 65f123cb3d..92d7df8fd4 100644 --- a/packages/app/src/assets/acp-provider-icons.ts +++ b/packages/app/src/assets/acp-provider-icons.ts @@ -53,7 +53,7 @@ export const ACP_PROVIDER_ICON_SVGS = { kilo: '\n \n\n', kimi: '\n \n\n', "minimax-code": - '\n \n\n', + '\n \n\n', "minion-code": '\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n', "mistral-vibe": @@ -72,7 +72,11 @@ export const ACP_PROVIDER_ICON_SVGS = { stakpak: '\n \n\n', traecli: - '\n \n\n', + '\n \n\n', vtcode: '\n \n VT\n\n', + devin: + '\n \n\n', + hermes: + '\n \n\n', } as const; diff --git a/packages/app/src/assets/acp-provider-icons/devin.svg b/packages/app/src/assets/acp-provider-icons/devin.svg new file mode 100644 index 0000000000..e0f58c6513 --- /dev/null +++ b/packages/app/src/assets/acp-provider-icons/devin.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/app/src/assets/acp-provider-icons/grok.svg b/packages/app/src/assets/acp-provider-icons/grok.svg new file mode 100644 index 0000000000..35db840319 --- /dev/null +++ b/packages/app/src/assets/acp-provider-icons/grok.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/app/src/assets/acp-provider-icons/hermes.svg b/packages/app/src/assets/acp-provider-icons/hermes.svg new file mode 100644 index 0000000000..c6fdd22500 --- /dev/null +++ b/packages/app/src/assets/acp-provider-icons/hermes.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/app/src/assets/acp-provider-icons/minimax-code.svg b/packages/app/src/assets/acp-provider-icons/minimax-code.svg new file mode 100644 index 0000000000..61fcb8afab --- /dev/null +++ b/packages/app/src/assets/acp-provider-icons/minimax-code.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/app/src/assets/acp-provider-icons/traecli.svg b/packages/app/src/assets/acp-provider-icons/traecli.svg new file mode 100644 index 0000000000..6d5388fcaa --- /dev/null +++ b/packages/app/src/assets/acp-provider-icons/traecli.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/app/src/components/icons/kiro-icon.tsx b/packages/app/src/components/icons/kiro-icon.tsx new file mode 100644 index 0000000000..992d4a8359 --- /dev/null +++ b/packages/app/src/components/icons/kiro-icon.tsx @@ -0,0 +1,14 @@ +import Svg, { Path } from "react-native-svg"; + +interface KiroIconProps { + size?: number; + color?: string; +} + +export function KiroIcon({ size = 16, color = "currentColor" }: KiroIconProps) { + return ( + + + + ); +} diff --git a/packages/app/src/components/provider-icon-name.test.ts b/packages/app/src/components/provider-icon-name.test.ts index 65c75166a5..0083926627 100644 --- a/packages/app/src/components/provider-icon-name.test.ts +++ b/packages/app/src/components/provider-icon-name.test.ts @@ -17,8 +17,10 @@ describe("resolveProviderIconName", () => { it("returns the catalog identifier for ACP catalog provider ids that ship an icon", () => { expect(resolveProviderIconName("amp-acp")).toEqual({ kind: "catalog", id: "amp-acp" }); + expect(resolveProviderIconName("devin")).toEqual({ kind: "catalog", id: "devin" }); expect(resolveProviderIconName("gemini")).toEqual({ kind: "catalog", id: "gemini" }); expect(resolveProviderIconName("gjc")).toEqual({ kind: "catalog", id: "gjc" }); + expect(resolveProviderIconName("hermes")).toEqual({ kind: "catalog", id: "hermes" }); expect(resolveProviderIconName("traecli")).toEqual({ kind: "catalog", id: "traecli" }); }); diff --git a/packages/app/src/components/provider-icons.ts b/packages/app/src/components/provider-icons.ts index fec4003705..91d9c9c5d1 100644 --- a/packages/app/src/components/provider-icons.ts +++ b/packages/app/src/components/provider-icons.ts @@ -1,11 +1,12 @@ import { useStore } from "zustand"; import { providerSnapshotIcons } from "@/data/provider-icons"; -import { Bot, PackagePlus } from "lucide-react-native"; +import { Bot } from "lucide-react-native"; import { createElement, useCallback, type ComponentType } from "react"; import { SvgXml } from "react-native-svg"; import { ClaudeIcon } from "@/components/icons/claude-icon"; import { CodexIcon } from "@/components/icons/codex-icon"; import { CopilotIcon } from "@/components/icons/copilot-icon"; +import { KiroIcon } from "@/components/icons/kiro-icon"; import { MiniMaxIcon } from "@/components/icons/minimax-icon"; import { OpenCodeIcon } from "@/components/icons/opencode-icon"; import { OmpIcon } from "@/components/icons/omp-icon"; @@ -24,7 +25,7 @@ const BUILTIN_PROVIDER_ICONS: Record = { claude: ClaudeIcon as unknown as ProviderIconComponent, codex: CodexIcon as unknown as ProviderIconComponent, copilot: CopilotIcon as unknown as ProviderIconComponent, - kiro: PackagePlus, + kiro: KiroIcon as unknown as ProviderIconComponent, minimax: MiniMaxIcon as unknown as ProviderIconComponent, omp: OmpIcon as unknown as ProviderIconComponent, opencode: OpenCodeIcon as unknown as ProviderIconComponent, diff --git a/packages/app/src/data/acp-provider-catalog.ts b/packages/app/src/data/acp-provider-catalog.ts index 1fdb1c6f5d..5f66cd1ae4 100644 --- a/packages/app/src/data/acp-provider-catalog.ts +++ b/packages/app/src/data/acp-provider-catalog.ts @@ -132,7 +132,7 @@ const CATALOG_DATA = [ title: "Devin CLI", description: "Cognition's Devin for Terminal via Agent Client Protocol", version: "manual", - iconId: null, + iconId: "devin", installLink: "https://cli.devin.ai/docs", command: ["devin", "acp"], }, @@ -234,7 +234,7 @@ const CATALOG_DATA = [ title: "Hermes", description: "Nous Research self-improving AI agent", version: "manual", - iconId: null, + iconId: "hermes", installLink: "https://hermes-agent.nousresearch.com/docs/user-guide/features/acp", command: ["hermes", "acp"], }, diff --git a/packages/protocol/src/provider-icon-names.ts b/packages/protocol/src/provider-icon-names.ts index 6265b631c3..9206a9ef77 100644 --- a/packages/protocol/src/provider-icon-names.ts +++ b/packages/protocol/src/provider-icon-names.ts @@ -22,6 +22,7 @@ export const ACP_PROVIDER_ICON_NAMES = [ "crow-cli", "cursor", "deepagents", + "devin", "dimcode", "dirac", "factory-droid", @@ -31,6 +32,7 @@ export const ACP_PROVIDER_ICON_NAMES = [ "glm-acp-agent", "goose", "grok", + "hermes", "junie", "kilo", "kimi", diff --git a/packages/website/src/assets/agent-icons/deepseek-tui.svg b/packages/website/src/assets/agent-icons/deepseek-tui.svg new file mode 100644 index 0000000000..2e0ae009e8 --- /dev/null +++ b/packages/website/src/assets/agent-icons/deepseek-tui.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/website/src/assets/agent-icons/hermes.svg b/packages/website/src/assets/agent-icons/hermes.svg new file mode 100644 index 0000000000..c6fdd22500 --- /dev/null +++ b/packages/website/src/assets/agent-icons/hermes.svg @@ -0,0 +1,3 @@ + + +