Skip to content
Open
76 changes: 25 additions & 51 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions packages/app/src/components/icons/antigravity-icon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import Svg, { Path, Circle } from "react-native-svg";

interface AntigravityIconProps {
size?: number;
color?: string;
}

export function AntigravityIcon({ size = 16, color = "currentColor" }: AntigravityIconProps) {
return (
<Svg width={size} height={size} viewBox="0 0 24 24" fill={color}>
<Path d="M12 2L4 20h16L12 2zm0 3.5L18.5 18h-13L12 5.5z" fillRule="evenodd" />
<Circle cx="12" cy="14" r="1.5" />
</Svg>
);
}
10 changes: 9 additions & 1 deletion packages/app/src/components/provider-icon-name.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,21 @@
import { ACP_PROVIDER_CATALOG } from "@/data/acp-provider-catalog";

export type BuiltinProviderIconName = "claude" | "codex" | "copilot" | "kiro" | "opencode" | "pi";
export type BuiltinProviderIconName =
| "antigravity"
| "claude"
| "codex"
| "copilot"
| "kiro"
| "opencode"
| "pi";

export type ProviderIconName =
| { kind: "builtin"; id: BuiltinProviderIconName }
| { kind: "catalog"; id: string }
| { kind: "bot" };

const BUILTIN_PROVIDER_IDS: ReadonlySet<BuiltinProviderIconName> = new Set([
"antigravity",
"claude",
"codex",
"copilot",
Expand Down
2 changes: 2 additions & 0 deletions packages/app/src/components/provider-icons.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Bot, PackagePlus } from "lucide-react-native";
import { createElement, type ComponentType } from "react";
import { SvgXml } from "react-native-svg";
import { AntigravityIcon } from "@/components/icons/antigravity-icon";
import { ClaudeIcon } from "@/components/icons/claude-icon";
import { CodexIcon } from "@/components/icons/codex-icon";
import { CopilotIcon } from "@/components/icons/copilot-icon";
Expand All @@ -20,6 +21,7 @@ export interface ProviderIconProps {
export type ProviderIconComponent = ComponentType<ProviderIconProps>;

const BUILTIN_PROVIDER_ICONS: Record<BuiltinProviderIconName, ProviderIconComponent> = {
antigravity: AntigravityIcon as unknown as ProviderIconComponent,
claude: ClaudeIcon as unknown as ProviderIconComponent,
codex: CodexIcon as unknown as ProviderIconComponent,
copilot: CopilotIcon as unknown as ProviderIconComponent,
Expand Down
25 changes: 25 additions & 0 deletions packages/protocol/src/provider-manifest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,32 @@ const MOCK_SLOW_MODES: AgentProviderModeDefinition[] = [
},
];

const ANTIGRAVITY_MODES: AgentProviderModeDefinition[] = [
{
id: "default",
label: "Default",
description: "Ask for permission before executing tools",
icon: "ShieldAlert",
colorTier: "moderate",
},
{
id: "bypass",
label: "Full Access",
description: "Auto-approve all tool calls (skips permission prompts)",
icon: "ShieldOff",
colorTier: "dangerous",
isUnattended: true,
},
];

export const AGENT_PROVIDER_DEFINITIONS: AgentProviderDefinition[] = [
{
id: "antigravity",
label: "Antigravity",
description: "Google's Antigravity CLI agent with multi-step reasoning and multi-file editing",
defaultModeId: "default",
modes: ANTIGRAVITY_MODES,
},
Comment thread
greptile-apps[bot] marked this conversation as resolved.
{
id: "claude",
label: "Claude",
Expand Down
5 changes: 5 additions & 0 deletions packages/server/src/server/agent/provider-registry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import type {
ProviderProfileModel,
ProviderRuntimeSettings,
} from "./provider-launch-config.js";
import { AntigravityAgentClient } from "./providers/antigravity-agent.js";
import { ClaudeAgentClient } from "./providers/claude/agent.js";
import { CodexAppServerAgentClient } from "./providers/codex-app-server-agent.js";
import { CopilotACPAgentClient } from "./providers/copilot-acp-agent.js";
Expand Down Expand Up @@ -107,6 +108,10 @@ interface ResolvedProvider {
}

const PROVIDER_CLIENT_FACTORIES: Record<string, ProviderClientFactory> = {
antigravity: (logger) =>
new AntigravityAgentClient({
logger,
}),
claude: (logger, runtimeSettings) =>
new ClaudeAgentClient({
logger,
Expand Down
Loading