brute 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/brute/version.rb +1 -1
  3. data/lib/brute.rb +22 -7
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa9acc014adfa80301780aa8bc76e26fec90b9005dd3bd1a778d2807963374ca
4
- data.tar.gz: ee086a3b83d49a20ede439d5b421111032087bb70edb462da0dd00a45491dbb6
3
+ metadata.gz: 633d2e5dc4496a672f9b7024bcb214993d0a504f9e9064c781a8b0cc45256fbe
4
+ data.tar.gz: d1e976fffce776de48722a1fab81c418da95190a8a650ae9fced1441236e8e1e
5
5
  SHA512:
6
- metadata.gz: 7ae63658a5f0c921a0ea4d0ad34a3c3b494a1965451f2d32022d543b1a24224f6ad25251bf323492d34f2d3e33ef4343ae322b592198d8b72d278cfcefc0b041
7
- data.tar.gz: 6c5121ce297a25b8631edbb2712ce4fcdf27fa7f55404f9fd169e71f8765ab3d71fe41164c4740e61977c49dc4494ed8db417b36a7744f7b52a69c53bc2d215c
6
+ metadata.gz: 8fb7eec94c1f2d25ea9c0da77b13e14f79922a39f3c9dde2441d5cc79a8e867bcf1dddd5a35a2b98612d226a561471ddb37b4672cc5d9ae85b341de932c25bd1
7
+ data.tar.gz: 4f01ad34028c009f909dbe5b348f94cffe2ee7fae602be8a75b2c199f548ef4086401d6d4e277a5124a2f26df106a6138014213feae07bd530753de6016e6500
data/lib/brute/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Brute
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.3"
5
5
  end
data/lib/brute.rb CHANGED
@@ -62,7 +62,7 @@ require_relative "brute/tools/delegate"
62
62
  require_relative "brute/orchestrator"
63
63
 
64
64
  module Brute
65
- VERSION = "0.1.2"
65
+ VERSION = "0.1.3"
66
66
 
67
67
  # The complete set of tools available to the agent.
68
68
  TOOLS = [
@@ -111,15 +111,30 @@ module Brute
111
111
 
112
112
  # Resolve the LLM provider from environment variables.
113
113
  #
114
- # LLM_API_KEY — the API key (required)
115
- # LLM_PROVIDER — provider name (default: "anthropic")
114
+ # Checks in order:
115
+ # 1. LLM_API_KEY + LLM_PROVIDER (explicit)
116
+ # 2. ANTHROPIC_API_KEY (implicit: provider = anthropic)
117
+ # 3. OPENAI_API_KEY (implicit: provider = openai)
118
+ # 4. GOOGLE_API_KEY (implicit: provider = google)
116
119
  #
117
- # Returns nil if LLM_API_KEY is not set. Error is deferred to Orchestrator#run.
120
+ # Returns nil if no key is found. Error is deferred to Orchestrator#run.
118
121
  def self.resolve_provider
119
- key = ENV["LLM_API_KEY"]
120
- return nil unless key
122
+ if ENV["LLM_API_KEY"]
123
+ key = ENV["LLM_API_KEY"]
124
+ name = ENV.fetch("LLM_PROVIDER", "anthropic").downcase
125
+ elsif ENV["ANTHROPIC_API_KEY"]
126
+ key = ENV["ANTHROPIC_API_KEY"]
127
+ name = "anthropic"
128
+ elsif ENV["OPENAI_API_KEY"]
129
+ key = ENV["OPENAI_API_KEY"]
130
+ name = "openai"
131
+ elsif ENV["GOOGLE_API_KEY"]
132
+ key = ENV["GOOGLE_API_KEY"]
133
+ name = "google"
134
+ else
135
+ return nil
136
+ end
121
137
 
122
- name = ENV.fetch("LLM_PROVIDER", "anthropic").downcase
123
138
  factory = PROVIDERS[name]
124
139
  raise "Unknown LLM provider: #{name}. Available: #{PROVIDERS.keys.join(", ")}" unless factory
125
140
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brute
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brute Contributors