mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-08-04 19:45:34 +08:00
feat(pi): expose first-class desktop workflows
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import React from "react";
|
||||
import type { AppId } from "@/lib/api/types";
|
||||
import type { VisibleApps } from "@/types";
|
||||
import {
|
||||
ClaudeIcon,
|
||||
CodexIcon,
|
||||
@@ -24,9 +25,22 @@ export const APP_IDS: AppId[] = [
|
||||
"opencode",
|
||||
"openclaw",
|
||||
"hermes",
|
||||
"pi",
|
||||
];
|
||||
|
||||
/** App IDs shown in Skills panels (excludes OpenClaw — it doesn't support Skills) */
|
||||
export const DEFAULT_VISIBLE_APPS: VisibleApps = {
|
||||
claude: true,
|
||||
"claude-desktop": true,
|
||||
codex: true,
|
||||
gemini: true,
|
||||
grokbuild: true,
|
||||
opencode: true,
|
||||
openclaw: true,
|
||||
hermes: true,
|
||||
pi: true,
|
||||
};
|
||||
|
||||
/** App IDs shown in Skills panels. */
|
||||
export const SKILLS_APP_IDS: AppId[] = [
|
||||
"claude",
|
||||
"codex",
|
||||
@@ -34,10 +48,33 @@ export const SKILLS_APP_IDS: AppId[] = [
|
||||
"grokbuild",
|
||||
"opencode",
|
||||
"hermes",
|
||||
"pi",
|
||||
];
|
||||
|
||||
/** App IDs shown in MCP panels (excludes OpenClaw) */
|
||||
export const MCP_APP_IDS: AppId[] = [...SKILLS_APP_IDS];
|
||||
export type ProxyAppId = Extract<
|
||||
AppId,
|
||||
"claude" | "codex" | "gemini" | "grokbuild" | "pi"
|
||||
>;
|
||||
|
||||
/** Apps with a complete local gateway + failover data plane. */
|
||||
export const PROXY_APP_IDS: ProxyAppId[] = [
|
||||
"claude",
|
||||
"codex",
|
||||
"gemini",
|
||||
"grokbuild",
|
||||
"pi",
|
||||
];
|
||||
|
||||
/** Pi has no native MCP registry; do not manufacture a disabled mirror. */
|
||||
export type McpAppId = Exclude<AppId, "claude-desktop" | "openclaw" | "pi">;
|
||||
export const MCP_APP_IDS: McpAppId[] = [
|
||||
"claude",
|
||||
"codex",
|
||||
"gemini",
|
||||
"grokbuild",
|
||||
"opencode",
|
||||
"hermes",
|
||||
];
|
||||
|
||||
export const APP_ICON_MAP: Record<AppId, AppConfig> = {
|
||||
claude: {
|
||||
@@ -125,4 +162,16 @@ export const APP_ICON_MAP: Record<AppId, AppConfig> = {
|
||||
badgeClass:
|
||||
"bg-violet-500/10 text-violet-700 dark:text-violet-300 hover:bg-violet-500/20 border-0 gap-1.5",
|
||||
},
|
||||
pi: {
|
||||
label: "Pi",
|
||||
icon: <ProviderIcon icon="pi" name="Pi" size={14} showFallback={false} />,
|
||||
activeClass:
|
||||
"bg-fuchsia-500/10 ring-1 ring-fuchsia-500/20 hover:bg-fuchsia-500/20 text-fuchsia-600 dark:text-fuchsia-400",
|
||||
badgeClass:
|
||||
"bg-fuchsia-500/10 text-fuchsia-700 dark:text-fuchsia-300 hover:bg-fuchsia-500/20 border-0 gap-1.5",
|
||||
},
|
||||
};
|
||||
|
||||
export function getAppLabel(appId: string): string {
|
||||
return APP_ICON_MAP[appId as AppId]?.label ?? appId;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user