Class: Ace::Llm::Providers::Cli::Atoms::AuthChecker
- Inherits:
-
Object
- Object
- Ace::Llm::Providers::Cli::Atoms::AuthChecker
- Defined in:
- lib/ace/llm/providers/cli/atoms/auth_checker.rb
Overview
Checks authentication status for CLI-based LLM providers
Class Method Summary collapse
-
.check(provider) ⇒ Hash
Check authentication for a specific provider.
- .check_agy ⇒ Object
- .check_claude ⇒ Object
- .check_codex ⇒ Object
- .check_codexoss ⇒ Object
- .check_opencode ⇒ Object
Class Method Details
.check(provider) ⇒ Hash
Check authentication for a specific provider
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/ace/llm/providers/cli/atoms/auth_checker.rb', line 15 def self.check(provider) case provider when "agy" then check_agy when "claude" then check_claude when "codex" then check_codex when "opencode" then check_opencode when "codexoss" then check_codexoss else {authenticated: false, message: "Unknown provider: #{provider}"} end end |
.check_agy ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/ace/llm/providers/cli/atoms/auth_checker.rb', line 38 def self.check_agy _, _, status = Open3.capture3("agy", "--help") if status.success? { authenticated: false, ready: true, message: "Installed, but headless authentication is not verified (interactive agy auth may still need to be completed before the first headless run)" } else {authenticated: false, ready: false, message: "Run: agy"} end rescue Errno::ENOENT, Errno::EACCES {authenticated: false, ready: false, message: "Authentication check failed"} end |
.check_claude ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/ace/llm/providers/cli/atoms/auth_checker.rb', line 27 def self.check_claude stdout, _, status = Open3.capture3("claude", "--version") if status.success? && (stdout.include?("Claude") || stdout.include?("claude")) {authenticated: true, message: "Authenticated"} else {authenticated: false, message: "Run: claude setup-token"} end rescue Errno::ENOENT, Errno::EACCES {authenticated: false, message: "Authentication check failed"} end |
.check_codex ⇒ Object
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/ace/llm/providers/cli/atoms/auth_checker.rb', line 53 def self.check_codex _, _, status = Open3.capture3("codex", "--help") if status.success? {authenticated: true, message: "Authenticated"} else {authenticated: false, message: "Run: codex login"} end rescue Errno::ENOENT, Errno::EACCES {authenticated: false, message: "Authentication check failed"} end |
.check_codexoss ⇒ Object
75 76 77 78 79 80 81 82 83 84 |
# File 'lib/ace/llm/providers/cli/atoms/auth_checker.rb', line 75 def self.check_codexoss stdout, _, status = Open3.capture3("codex-oss", "--version") if status.success? && stdout.include?("codex") {authenticated: true, message: "Configured"} else {authenticated: false, message: "Run: codex-oss init"} end rescue Errno::ENOENT, Errno::EACCES {authenticated: false, message: "Configuration check failed"} end |
.check_opencode ⇒ Object
64 65 66 67 68 69 70 71 72 73 |
# File 'lib/ace/llm/providers/cli/atoms/auth_checker.rb', line 64 def self.check_opencode _, _, status = Open3.capture3("opencode", "--version") if status.success? {authenticated: true, message: "Authenticated"} else {authenticated: false, message: "Run: opencode auth"} end rescue Errno::ENOENT, Errno::EACCES {authenticated: false, message: "Authentication check failed"} end |