feat(agy-cli): register agy-cli provider in auth registry + runtime resolver - #50657
feat(agy-cli): register agy-cli provider in auth registry + runtime resolver#50657arminanton wants to merge 1 commit into
Conversation
…esolver Adds the agy-cli (Antigravity CLI) ProviderConfig to PROVIDER_REGISTRY and the resolve_runtime_provider() handler that returns api_mode='agy_cli' + base_url='agy://antigravity' (auth is fully internal to the agy binary, same external_process pattern as copilot-acp). This is the auth/runtime registration half of the agy-cli provider; the client + plugin + tests live in NousResearch#50555. Applies clean on current main (+27 lines, 2 files). 0 new test failures (the 39 pre-existing hermes_cli failures are identical with/without this change). Verified functional: resolve_runtime_provider(requested='agy-cli') -> api_mode agy_cli.
…no longer a deferral) Council's substantive point — the agy-cli auth/runtime registration is real src-delta, not just a sign-off — is now resolved: opened NousResearch#50657 (feat/agy-cli-provider-registration) carrying exactly those 2 files' genuine agy-cli content, built fresh on current main (+27 lines, compiles, 0 new test failures, functionally verified, applies CLEAN on v0.17.0). Set-equality (42 open PRs): 139/140 overlay src-delta files now PR-covered. The 1 remaining MISSING is the stale opus-context TEST (intent covered by main+NousResearch#49184/NousResearch#49644/ NousResearch#49449; fails 55+ under every stack; not rebaseable) — the single explicit out-of-scope src file for user acceptance. PINNED-SHAS -> 42 open (8 ready/34 draft; +NousResearch#50657, -NousResearch#50457). All replay onto v0.17.0 verified. Remaining: Q1 grouping, Q2 NousResearch#50064 test, Q3 delivery, Q4 accept the 1 opus-test exclusion.
|
Related: this is the auth/runtime-registration half of the agy-cli (Antigravity CLI) provider; the client + plugin + tests live in the sibling draft #50555. Earlier whole-provider draft #50039 is now closed. Part of the Gemini-CLI-consumer-sunset remediation family (#29294). Not a duplicate — intentional same-author split so the small current-main-clean registration can land independently of #50555's stale base. |
… in coverage maps NousResearch#50457 (opus-context 100-file bundle) is CLOSED. The coverage docs still credited it as a (co-)owner for ~95 files, and as the SOLE owner for 6 — making those files appear covered only by a closed PR. Reattribute each to its verified live open owner: opus-context test -> NousResearch#50664, agy-cli files -> NousResearch#50555, subdirectory-hints -> NousResearch#50626, auth/runtime_provider -> NousResearch#50657. Strip the dead NousResearch#50457 from all secondary co-listings. Regenerate PER-PR table from live GitHub truth (42 code/test PRs, 8 ready / 34 draft). Every primary owner now verified OPEN.
…or sample PRs Cherry-pick/3-way-apply a representative sample (NousResearch#50664, NousResearch#50555, NousResearch#50626, NousResearch#50657, NousResearch#50064) onto v0.17.0 (2bd1977) and run their tests on that base. 4/5 apply CLEAN; NousResearch#50064 pullable via net-diff 3-way (one trivial keep-both addition). NousResearch#50664's assertions execute (4 passed) — not skipped into inertness. One real failure root-caused to a stale test the NousResearch#50064 branch carries that the canonical tree itself dropped (a NousResearch#50064 cleanup item, not a NousResearch#50664/coverage issue).
|
Withdrawing — this is the auth/runtime-registration half of the agy-cli provider whose client lives in #50555, now closed. The agy-cli direction is superseded by the merged native |
…i-cli-UA Per @teknium1 (NousResearch#50039: agy-cli superseded by merged native antigravity NousResearch#50454) and NousResearch#50492 (removed google-gemini-cli + google-antigravity OAuth providers for account-ban safety), the agy-cli direction and the gemini-cli-UA spoof are withdrawn: - CLOSED NousResearch#50555, NousResearch#50657 (agy-cli), NousResearch#50033 (gemini-cli-UA) on GitHub. - 9 withdrawn files (agy + google_user_agent + gemini_native_adapter) moved to NON-CONTRIBUTABLE (maintainer-aligned, not lost). - 3 shared files (gemini_cloudcode_adapter.py, auth.py, runtime_provider.py) reassigned to live NousResearch#49644 (verified present in its diff). Coverage after closures: 165 delta = 131 in open PRs + 25 DISCARD + 9 withdrawn + 0 orphans. Full disposition in MAINTAINER-FEEDBACK-DISPOSITION.md.
…sResearch#50657 closure Line-level verification (Council) caught that file-level IN-PR classification via the stale-base gh-api-files union was WRONG for 3 files: auth.py, runtime_provider.py, gemini_cloudcode_adapter.py. Their content is NOT in any open PR (authoritative merge-base diff confirms NousResearch#49644 doesn't touch them — my earlier reassign was wrong). Closing NousResearch#50657 for its agy half orphaned ~89 legit novel lines (codex device-code OAuth refresh + auth-store helpers + runtime-provider resolution). NOT silently counted as covered. Needs disposition: re-scope NousResearch#50657 to the legit content (Option A) or explicit defer (Option B) — user's call. Honest: this is NOT a clean done state.
Summary
Registers the agy-cli (Antigravity CLI) provider in the two core auth/runtime seams, so the agy-cli model provider is wired into Hermes' resolution path. This is the auth/runtime registration half of the agy-cli provider; the client (
agent/agy_cli_client.py), plugin, and tests live in the sibling PR #50555.Changes (+27 lines, 2 files)
hermes_cli/auth.py— adds theagy-clientry toPROVIDER_REGISTRY:hermes_cli/runtime_provider.py— adds theif provider == "agy-cli":branch inresolve_runtime_provider(), mirroring the existingcopilot-acpexternal-process pattern. Returnsapi_mode="agy_cli"+ the markerbase_urlsoinit_agentroutes toAgyCliClient. Auth is fully internal to theagybinary (its own OAuth/cloudcode-pa session), so there's nothing for Hermes to resolve.Verification
main(+27 lines).tests/hermes_cli/failures are identical with and without this change — they're upstream environment/isolation issues, not from this PR).resolve_runtime_provider(requested="agy-cli")→api_mode='agy_cli',base_url='agy://antigravity';PROVIDER_REGISTRY["agy-cli"].auth_type == "external_process".Relationship to #50555
#50555 carries the agy-cli client + plugin + tests (currently a stale-base WIP draft). This PR carries the small, current-main-clean auth/runtime registration that #50555's stale base can't host without a rebase. The two together complete the agy-cli provider; they can be consolidated at #50555's upgrade.
Draft (agy-cli is WIP per the project's isolate-agy-cli policy).