feat: Grok CLI support via ACP (generalized RPC agent seam) - #266
Open
iabdousd wants to merge 18 commits into
Open
feat: Grok CLI support via ACP (generalized RPC agent seam)#266iabdousd wants to merge 18 commits into
iabdousd wants to merge 18 commits into
Conversation
- build.rs drops the externalBin placeholder before tauri_build::build() so bare `cargo check/test/clippy` work from a fresh checkout without the scripts/check.sh / pnpm tauri beforeBuild hook. - .cargo/config.toml caps [build] jobs so builds don't saturate every core; overridable via CARGO_BUILD_JOBS or global cargo config.
- Claude: lead with Claude 5 family (claude-opus-5 default, claude-fable-5, claude-sonnet-5, previous-gen claude-opus-4-8, claude-haiku-4-5). - Codex: lead with GPT-5.6 (gpt-5.6-sol default, gpt-5.6-terra, gpt-5.6-luna, plus gpt-5.5/5.4/5.4-mini/5.3-codex); turn-start default -> gpt-5.6-sol.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Grok CLI support via ACP
Adds xAI's Grok CLI (
grok agent stdio) as a first-class Verun agent with full UI parity: streamed reasoning + text, tool-call cards with per-card diffs, interactive permission approvals, resume, and usage/cost.The generalization (single source of truth)
Grok speaks ACP (Agent Client Protocol) — a persistent bidirectional JSON-RPC 2.0 session, the same transport shape as Codex's
app-server. Rather than clone a parallel path, the Codex-only RPC path was generalized into a protocol-agnosticAgent::rpc_*seam:agent/codex_rpc.rs→agent/rpc.rs(the JSON-RPC transport was already protocol-agnostic)task.rs(spawn_rpc_session) andstream.rs(stream_and_capture_rpc) now dispatch entirely throughAgent::rpc_*trait methods — encode handshake/turn/interrupt, decode notifications, classify/encode approvals, extract usage, parse session/turn idsif kind == Grokanywhere outsideagent/— orchestration is fully trait-drivenWhat Grok does
initializeadvertising nofscapability (Grok does its own file I/O),session/new/session/load(resume),session/prompt,session/cancelsession/updateinto thinking / text / tool-cards / diffs / usage; mapssession/request_permissiononto Verun's approval UIgrok-4.5; persistent process across turnsVerification
mcp::tests::write_mcp_config_*are pre-existing and unrelated — stale sincee9f988cchanged the config write path; confirmed failing on the base commit)tsc --noEmitclean; frontend vitest 691 passgrokbinary: streaming, tool calls, diffs, permission requests, and cross-processsession/loadresume all confirmed; the Rust encoders emit the same wire frames and the decoders are tested against captured real shapesDeferred (documented follow-ups)
pnpm tauri dev(couldn't be driven headlessly)Related to #239 (enabling/disabling agent CLI providers — Grok is a new provider).
🤖 Generated with Claude Code