feat(antigravity): support custom Google Cloud project ID (#2227)

Co-authored-by: nickwizard <nickwizard@users.noreply.github.com>
This commit is contained in:
diegosouzapw
2026-05-14 05:11:24 -03:00
parent 22f2c033da
commit bf83aa55de
55 changed files with 358 additions and 112 deletions

View File

@@ -597,6 +597,7 @@ interface EditConnectionModalConnection {
provider?: string;
providerSpecificData?: Record<string, unknown>;
healthCheckInterval?: number;
projectId?: string | null;
}
interface EditConnectionModalProps {
@@ -6707,7 +6708,7 @@ function EditConnectionModal({ isOpen, connection, onSave, onClose }: EditConnec
codexOpenaiStoreEnabled: false,
consoleApiKey: "",
ccCompatibleContext1m: false,
geminiProjectId: "",
cloudCodeProjectId: "",
blockExtraUsage:
connection?.provider === "claude"
? isClaudeExtraUsageBlockEnabled(connection?.provider, connection?.providerSpecificData)
@@ -6734,6 +6735,8 @@ function EditConnectionModal({ isOpen, connection, onSave, onClose }: EditConnec
const isCodex = connection?.provider === "codex";
const isClaude = connection?.provider === "claude";
const isGeminiCli = connection?.provider === "gemini-cli";
const isAntigravity = connection?.provider === "antigravity";
const supportsGoogleProjectId = isGeminiCli || isAntigravity;
const localProviderMetadata = getLocalProviderMetadata(connection?.provider);
const isLocalSelfHostedProvider = !!localProviderMetadata;
const isGooglePse = connection?.provider === "google-pse-search";
@@ -6794,7 +6797,8 @@ function EditConnectionModal({ isOpen, connection, onSave, onClose }: EditConnec
codexOpenaiStoreEnabled: connection.providerSpecificData?.openaiStoreEnabled === true,
consoleApiKey: existingConsoleApiKey,
ccCompatibleContext1m: ccRequestDefaults.context1m,
geminiProjectId: (connection.providerSpecificData?.projectId as string) || "",
cloudCodeProjectId:
(connection.providerSpecificData?.projectId as string) || connection.projectId || "",
blockExtraUsage: isClaudeExtraUsageBlockEnabled(
connection.provider,
connection.providerSpecificData
@@ -6884,6 +6888,7 @@ function EditConnectionModal({ isOpen, connection, onSave, onClose }: EditConnec
setSaveError(null);
try {
const trimmedMaxConcurrent = formData.maxConcurrent.trim();
const trimmedCloudCodeProjectId = formData.cloudCodeProjectId.trim();
let parsedMaxConcurrent: number | null = null;
if (trimmedMaxConcurrent) {
const numericMaxConcurrent = Number(trimmedMaxConcurrent);
@@ -6901,8 +6906,8 @@ function EditConnectionModal({ isOpen, connection, onSave, onClose }: EditConnec
healthCheckInterval: formData.healthCheckInterval,
};
if (isGeminiCli) {
updates.projectId = formData.geminiProjectId.trim() || null;
if (supportsGoogleProjectId) {
updates.projectId = trimmedCloudCodeProjectId || null;
}
if (isGooglePse && !formData.cx.trim()) {
@@ -6992,6 +6997,9 @@ function EditConnectionModal({ isOpen, connection, onSave, onClose }: EditConnec
} else if (isCloudflare && formData.accountId.trim()) {
updates.providerSpecificData.accountId = formData.accountId.trim();
}
if (supportsGoogleProjectId) {
updates.providerSpecificData.projectId = trimmedCloudCodeProjectId || null;
}
if (isCcCompatible) {
const currentRequestDefaults =
updates.providerSpecificData.requestDefaults &&
@@ -7026,8 +7034,8 @@ function EditConnectionModal({ isOpen, connection, onSave, onClose }: EditConnec
updates.providerSpecificData.openaiStoreEnabled =
formData.codexOpenaiStoreEnabled === true;
}
if (isGeminiCli) {
updates.providerSpecificData.projectId = formData.geminiProjectId.trim() || undefined;
if (supportsGoogleProjectId) {
updates.providerSpecificData.projectId = trimmedCloudCodeProjectId || null;
}
}
const error = (await onSave(updates)) as void | unknown;
@@ -7123,14 +7131,18 @@ function EditConnectionModal({ isOpen, connection, onSave, onClose }: EditConnec
/>
</div>
)}
{isGeminiCli && (
{supportsGoogleProjectId && (
<div className="flex flex-col gap-4 rounded-lg border border-border/50 bg-surface/20 p-4">
<Input
label={t("geminiCliProjectIdLabel")}
value={formData.geminiProjectId}
onChange={(e) => setFormData({ ...formData, geminiProjectId: e.target.value })}
placeholder={t("geminiCliProjectIdPlaceholder")}
hint={t("geminiCliProjectIdHint")}
label={isAntigravity ? t("antigravityProjectIdLabel") : t("geminiCliProjectIdLabel")}
value={formData.cloudCodeProjectId}
onChange={(e) => setFormData({ ...formData, cloudCodeProjectId: e.target.value })}
placeholder={
isAntigravity
? t("antigravityProjectIdPlaceholder")
: t("geminiCliProjectIdPlaceholder")
}
hint={isAntigravity ? t("antigravityProjectIdHint") : t("geminiCliProjectIdHint")}
className="font-mono text-xs"
/>
</div>

View File

@@ -60,10 +60,7 @@ export async function PUT(request: Request, { params }: { params: Promise<{ id:
return NextResponse.json({ mapping });
} catch (error: any) {
console.error("Failed to update mapping:", error);
return NextResponse.json(
{ error: "Failed to update mapping" },
{ status: 500 }
);
return NextResponse.json({ error: "Failed to update mapping" }, { status: 500 });
}
}
@@ -82,9 +79,6 @@ export async function DELETE(request: Request, { params }: { params: Promise<{ i
return NextResponse.json({ success: true });
} catch (error: any) {
console.error("Failed to delete mapping:", error);
return NextResponse.json(
{ error: "Failed to delete mapping" },
{ status: 500 }
);
return NextResponse.json({ error: "Failed to delete mapping" }, { status: 500 });
}
}

View File

@@ -27,10 +27,7 @@ export async function GET(request: Request) {
return NextResponse.json({ mappings });
} catch (error: any) {
console.error("Failed to list model-combo mappings:", error);
return NextResponse.json(
{ error: "Failed to list model-combo mappings" },
{ status: 500 }
);
return NextResponse.json({ error: "Failed to list model-combo mappings" }, { status: 500 });
}
}
@@ -57,9 +54,6 @@ export async function POST(request: Request) {
return NextResponse.json({ mapping }, { status: 201 });
} catch (error: any) {
console.error("Failed to create model-combo mapping:", error);
return NextResponse.json(
{ error: "Failed to create model-combo mapping" },
{ status: 500 }
);
return NextResponse.json({ error: "Failed to create model-combo mapping" }, { status: 500 });
}
}

View File

@@ -187,9 +187,12 @@ export async function ensureLoopbackServerReady(opts: EnsureReadyOptions = {}):
// ECONNREFUSED). Using a synthetic connection id so no real DB lookup
// is needed; the 404 is sufficient proof the server is dispatching.
const probePort = process.env.OMNIROUTE_PORT || process.env.PORT || "20128";
const res = await f(`http://127.0.0.1:${probePort}/api/providers/__readiness_probe__/models`, {
signal: AbortSignal.timeout(2_000),
});
const res = await f(
`http://127.0.0.1:${probePort}/api/providers/__readiness_probe__/models`,
{
signal: AbortSignal.timeout(2_000),
}
);
if (res.status >= 200 && res.status < 600) return;
} catch (err) {
lastErr = err;

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "my-gcp-project-id",
"antigravityProjectIdHint": "Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -2706,7 +2706,6 @@
"allModelsNormal": "Todos os modelos estão respondendo normalmente.",
"cooldownCleared": "Cooldown limpo para {model}",
"failedClearCooldown": "Falha ao limpar cooldown",
"freeTier": "Plano gratuito",
"loadingAvailability": "Carregando disponibilidade dos modelos...",
"clearCooldown": "Limpar",
"clearing": "Limpando...",
@@ -3044,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Cole o cookie sso do grok.com. Um valor completo `sso=...` também funciona.",
"grokWebCookiePlaceholder": "Cole o valor do cookie sso do grok.com",
"herokuBaseUrlHint": "Obrigatório: cole a URL base do Heroku Inference. O app adicionará /v1/chat/completions.",

View File

@@ -2706,7 +2706,6 @@
"allModelsNormal": "Todos os modelos estão respondendo normalmente.",
"cooldownCleared": "Tempo de espera liberado para {model}",
"failedClearCooldown": "Falha ao limpar o tempo de espera",
"freeTier": "Plano gratuito",
"loadingAvailability": "Carregando disponibilidade do modelo...",
"clearCooldown": "Limpar",
"clearing": "Limpando...",
@@ -3044,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "Grok Web Cookie Hint",
"grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
"herokuBaseUrlHint": "Heroku Base Url Hint",

View File

@@ -3043,6 +3043,9 @@
"geminiCliProjectIdHint": "__MISSING__:Your Google Cloud Project ID. Required for accounts with exceptions. Enter your GCP Project ID to use with Gemini CLI.",
"geminiCliProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"geminiCliProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"antigravityProjectIdHint": "__MISSING__:Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
"antigravityProjectIdLabel": "__MISSING__:Google Cloud Project ID",
"antigravityProjectIdPlaceholder": "__MISSING__:my-gcp-project-id",
"grokWebCookieHint": "从 Grok Web 会话复制 Cookie。",
"grokWebCookiePlaceholder": "Grok Web Cookie",
"herokuBaseUrlHint": "Heroku 部署的 Base URL。",