feat: Add Google Antigravity Authentication Support#88
feat: Add Google Antigravity Authentication Support#88steipete merged 7 commits intoopenclaw:mainfrom
Conversation
|
I'm not sure if this is the proper way for implementing it, you are free to ping me if things are wrong :) |
6efae4c to
7b95711
Compare
|
@steipete similar to https://github.com/NoeFabris/opencode-antigravity-auth in the last commit, I added a vps aware oauth flow. ie, if we're running this on a vps, it'll ask for the callback url instead of trying to autocapture it (which will never happen since browser is in our system and clawdis is running in vps and the callback url will be to localhost) |
🦞 Codex ReviewFindings
Open Questions
Summary Review by Clawd 🦞 via Codex |
Claude Opus 4.5 — Review ResponseFindings Addressed🚨 HIGH: Non-interactive onboarding — Antigravity handling✅ Fixed in commit Antigravity is now explicitly rejected in non-interactive mode with a clear error message: } else if (authChoice === "oauth" || authChoice === "antigravity") {
runtime.error(
`${authChoice === "oauth" ? "OAuth" : "Antigravity"} requires interactive mode.`
);
runtime.exit(1);
return;
}
|
- Add 'antigravity' as new auth choice in onboard and configure wizards - Implement Google Antigravity OAuth flow using loginAntigravity from pi-ai - Update writeOAuthCredentials to accept any OAuthProvider (not just 'anthropic') - Add schema sanitization for Google Cloud Code Assist API to fix tool call errors - Default model set to google-antigravity/claude-opus-4-5 after successful auth The schema sanitization removes unsupported JSON Schema keywords (patternProperties, const, anyOf, etc.) that Google's Cloud Code Assist API doesn't understand.
Detects SSH/VPS/headless environments and prompts user to paste the OAuth callback URL instead of relying on localhost server. - Add antigravity-oauth.ts with VPS detection and manual OAuth flow - Update onboard-interactive.ts to use VPS-aware flow - Update configure.ts to use VPS-aware flow
03d4eca to
430d1d3
Compare
feat: scrub compaction messages to avoid spamming user
Tasks completed: 2/2 - Task 1: Port commits #87 and #88 (cache eviction + SQLITE_BUSY regression test) - Task 2: Port commits #114 and #149 (scope warning + model cache reuse) SUMMARY: .planning/phases/12-memory-qmd-hardening/12-09-SUMMARY.md
Tasks completed: 2/2 - Port i18n tooling + seed translations (commits #87, #88) - Port language code + switcher fixes (commits #89, #91) SUMMARY: .planning/phases/17-docs/17-08-SUMMARY.md
…ols (#88) Phase 1: Three-tier observation guard in observeRunOutcomes — conversational turns (no real tools used) now skip observation entirely instead of marking all arms as rejected. Prevents Beta distribution collapse from "hello" messages. Phase 2: Full reset and lagged reward mechanism: - QortexLearningClient.reset() method + QortexResetResult type - POST /reset and /reward API routes with 64KB body limit - `openclaw learning reset` CLI command with --confirm flag - `/learning reset|reward|status` chat command with fuzzy arm matching - Dashboard: reset button, per-arm thumbs up/down feedback buttons - XSS hardening: escHtml() for all dynamic content in dashboard innerHTML - Docs: /learning command documented in slash-commands.md Co-Authored-By: Claude Opus 4.6 <[email protected]>
…on payload Issue openclaw#88 — Post-Compaction Held Message Display Changes: - types.ts: add compactionHeldMessages[] to SessionEntry for tracking messages that arrive while the compaction gate is active - get-reply-run.ts: three-part change: 1. Accumulate held messages in session store during gate (non-ok messages) 2. User-facing verification: show what was happening + [Q1][Q2]... held messages + 'What should I do? Type ok to resume.' (no agent internals) 3. On 'ok': inject agent freeze protocol + held message list as system context (invisible to user via extraSystemPrompt); clear both compactionPendingVerification and compactionHeldMessages from store
downgrade whisper-rs to 0.13.2 to continue to support older versions of macos
…nclaw code run --json output (openclaw#88) * feat: implement issue openclaw#85 * feat: implement issue openclaw#85
* fix(sre:PLA-894): anchor bug-report RCA on primary symptom * fix(sre): address RCA review findings * fix(sre): harden RCA prompt normalization * fix(sre): simplify RCA correction matching * fix(sre): restore bug-report prompt wait hint * fix(sre): close RCA review gaps * fix(sre): tighten RCA symptom corrections * fix(sre): normalize provider live-probe rows
Summary
This PR adds support for Google Antigravity authentication, allowing users to access Claude Opus 4.5, Gemini 3, and other models through Google's Cloud Code Assist API.
Changes
onboardandconfigurewizardsloginAntigravityfrom pi-ai SDKwriteOAuthCredentialsto accept anyOAuthProviderinstead of just"anthropic"sanitizeSchemaForGoogle()to strip unsupported JSON Schema keywords before sending to Google's APIWhy the schema fix is needed
Google's Cloud Code Assist API doesn't support advanced JSON Schema keywords like
patternProperties,const,anyOf, etc. Without sanitization, tool calls fail with errors like:Testing
Available Antigravity Models
After authenticating, users can access:
claude-opus-4-5-thinking,claude-sonnet-4-5,claude-sonnet-4-5-thinkinggemini-3-pro-high,gemini-3-pro-low,gemini-3-flashgpt-oss-120b-medium