active_harness 0.2.7 → 0.2.8
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.
- checksums.yaml +4 -4
- data/lib/active_harness/agent/models.rb +9 -2
- data/lib/active_harness/agent/providers.rb +18 -5
- data/lib/active_harness/agent/ruby_llm_backend.rb +90 -0
- data/lib/active_harness/agent.rb +8 -1
- data/lib/active_harness/configuration.rb +173 -0
- data/lib/active_harness/http/retry_policy.rb +47 -0
- data/lib/active_harness/providers/anthropic.rb +3 -4
- data/lib/active_harness/providers/azure.rb +97 -0
- data/lib/active_harness/providers/base.rb +4 -0
- data/lib/active_harness/providers/bedrock.rb +29 -0
- data/lib/active_harness/providers/custom.rb +96 -0
- data/lib/active_harness/providers/deepseek.rb +62 -0
- data/lib/active_harness/providers/gemini.rb +3 -5
- data/lib/active_harness/providers/gpustack.rb +78 -0
- data/lib/active_harness/providers/groq.rb +3 -5
- data/lib/active_harness/providers/mistral.rb +63 -0
- data/lib/active_harness/providers/ollama.rb +67 -0
- data/lib/active_harness/providers/openai.rb +3 -5
- data/lib/active_harness/providers/openrouter.rb +5 -7
- data/lib/active_harness/providers/perplexity.rb +62 -0
- data/lib/active_harness/providers/vertexai.rb +34 -0
- data/lib/active_harness/providers/xai.rb +62 -0
- data/lib/active_harness.rb +35 -0
- data/lib/generators/active_harness/install/install_generator.rb +16 -0
- data/lib/generators/active_harness/install/templates/initializers/active_harness.rb +101 -0
- metadata +16 -2
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# config/initializers/active_harness.rb
|
|
2
|
+
#
|
|
3
|
+
# Configure ActiveHarness.
|
|
4
|
+
# All values fall back to the corresponding ENV variable if not set here,
|
|
5
|
+
# so you can use either approach — or mix both.
|
|
6
|
+
|
|
7
|
+
ActiveHarness.configure do |config|
|
|
8
|
+
# ---------------------------------------------------------------------------
|
|
9
|
+
# OpenAI
|
|
10
|
+
# ---------------------------------------------------------------------------
|
|
11
|
+
config.openai_api_key = ENV["OPENAI_API_KEY"]
|
|
12
|
+
# config.openai_api_url = "https://api.openai.com/v1/chat/completions"
|
|
13
|
+
|
|
14
|
+
# ---------------------------------------------------------------------------
|
|
15
|
+
# Anthropic
|
|
16
|
+
# ---------------------------------------------------------------------------
|
|
17
|
+
config.anthropic_api_key = ENV["ANTHROPIC_API_KEY"]
|
|
18
|
+
# config.anthropic_api_url = "https://api.anthropic.com/v1/messages"
|
|
19
|
+
|
|
20
|
+
# ---------------------------------------------------------------------------
|
|
21
|
+
# Google Gemini
|
|
22
|
+
# ---------------------------------------------------------------------------
|
|
23
|
+
config.gemini_api_key = ENV["GEMINI_API_KEY"]
|
|
24
|
+
# config.gemini_api_url = "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions"
|
|
25
|
+
|
|
26
|
+
# ---------------------------------------------------------------------------
|
|
27
|
+
# Groq
|
|
28
|
+
# ---------------------------------------------------------------------------
|
|
29
|
+
config.groq_api_key = ENV["GROQ_API_KEY"]
|
|
30
|
+
# config.groq_api_url = "https://api.groq.com/openai/v1/chat/completions"
|
|
31
|
+
|
|
32
|
+
# ---------------------------------------------------------------------------
|
|
33
|
+
# OpenRouter
|
|
34
|
+
# ---------------------------------------------------------------------------
|
|
35
|
+
config.openrouter_api_key = ENV["OPENROUTER_API_KEY"]
|
|
36
|
+
# config.openrouter_api_url = "https://openrouter.ai/api/v1/chat/completions"
|
|
37
|
+
# config.openrouter_http_referer = "https://your-app.com"
|
|
38
|
+
|
|
39
|
+
# ---------------------------------------------------------------------------
|
|
40
|
+
# xAI (Grok)
|
|
41
|
+
# ---------------------------------------------------------------------------
|
|
42
|
+
config.xai_api_key = ENV["XAI_API_KEY"]
|
|
43
|
+
# config.xai_api_url = "https://api.x.ai/v1/chat/completions"
|
|
44
|
+
|
|
45
|
+
# ---------------------------------------------------------------------------
|
|
46
|
+
# DeepSeek
|
|
47
|
+
# ---------------------------------------------------------------------------
|
|
48
|
+
config.deepseek_api_key = ENV["DEEPSEEK_API_KEY"]
|
|
49
|
+
# config.deepseek_api_url = "https://api.deepseek.com/v1/chat/completions"
|
|
50
|
+
|
|
51
|
+
# ---------------------------------------------------------------------------
|
|
52
|
+
# Mistral
|
|
53
|
+
# ---------------------------------------------------------------------------
|
|
54
|
+
config.mistral_api_key = ENV["MISTRAL_API_KEY"]
|
|
55
|
+
# config.mistral_api_url = "https://api.mistral.ai/v1/chat/completions"
|
|
56
|
+
|
|
57
|
+
# ---------------------------------------------------------------------------
|
|
58
|
+
# Ollama (local — API key is optional)
|
|
59
|
+
# ---------------------------------------------------------------------------
|
|
60
|
+
# config.ollama_api_base = "http://localhost:11434"
|
|
61
|
+
# config.ollama_api_key = nil
|
|
62
|
+
|
|
63
|
+
# ---------------------------------------------------------------------------
|
|
64
|
+
# Perplexity
|
|
65
|
+
# ---------------------------------------------------------------------------
|
|
66
|
+
config.perplexity_api_key = ENV["PERPLEXITY_API_KEY"]
|
|
67
|
+
# config.perplexity_api_url = "https://api.perplexity.ai/chat/completions"
|
|
68
|
+
|
|
69
|
+
# ---------------------------------------------------------------------------
|
|
70
|
+
# GPUStack (self-hosted — API key is optional)
|
|
71
|
+
# ---------------------------------------------------------------------------
|
|
72
|
+
# config.gpustack_api_base = "http://my-gpustack-server:80"
|
|
73
|
+
# config.gpustack_api_key = ENV["GPUSTACK_API_KEY"]
|
|
74
|
+
|
|
75
|
+
# ---------------------------------------------------------------------------
|
|
76
|
+
# Azure OpenAI Service
|
|
77
|
+
# The `model:` in your agent config is the deployment name, not the model name.
|
|
78
|
+
# ---------------------------------------------------------------------------
|
|
79
|
+
# config.azure_api_base = ENV["AZURE_API_BASE"] # "https://my-resource.openai.azure.com"
|
|
80
|
+
# config.azure_api_key = ENV["AZURE_API_KEY"] # resource API key (preferred)
|
|
81
|
+
# config.azure_ai_auth_token = ENV["AZURE_AI_AUTH_TOKEN"] # OAuth bearer (alternative)
|
|
82
|
+
# config.azure_api_version = "2024-05-01-preview"
|
|
83
|
+
|
|
84
|
+
# ---------------------------------------------------------------------------
|
|
85
|
+
# Custom providers — any OpenAI-compatible endpoint
|
|
86
|
+
# Register as many as you need under arbitrary names.
|
|
87
|
+
# `api_key` is optional — omit for local servers without auth.
|
|
88
|
+
# ---------------------------------------------------------------------------
|
|
89
|
+
# config.custom["MyLocal"]["url"] = "http://localhost:8080/v1/chat/completions"
|
|
90
|
+
# config.custom["MyLocal"]["api_key"] = ENV["MYLOCAL_API_KEY"]
|
|
91
|
+
#
|
|
92
|
+
# config.custom["VLLMServer"]["url"] = "http://gpu-server:8000/v1/chat/completions"
|
|
93
|
+
# config.custom["VLLMServer"]["api_key"] = ENV["VLLM_API_KEY"]
|
|
94
|
+
#
|
|
95
|
+
# Use in an agent:
|
|
96
|
+
# model do
|
|
97
|
+
# use provider: :custom, name: "MyLocal", model: "llama3.2"
|
|
98
|
+
# fallback provider: :custom, name: "VLLMServer", model: "mixtral"
|
|
99
|
+
# fallback provider: :openai, model: "gpt-4o-mini"
|
|
100
|
+
# end
|
|
101
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: active_harness
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- the-teacher
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-05-
|
|
11
|
+
date: 2026-05-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: concurrent-ruby
|
|
@@ -38,8 +38,11 @@ files:
|
|
|
38
38
|
- lib/active_harness/agent/output_parser.rb
|
|
39
39
|
- lib/active_harness/agent/prompt.rb
|
|
40
40
|
- lib/active_harness/agent/providers.rb
|
|
41
|
+
- lib/active_harness/agent/ruby_llm_backend.rb
|
|
42
|
+
- lib/active_harness/configuration.rb
|
|
41
43
|
- lib/active_harness/core/errors.rb
|
|
42
44
|
- lib/active_harness/http/client.rb
|
|
45
|
+
- lib/active_harness/http/retry_policy.rb
|
|
43
46
|
- lib/active_harness/http/streaming_client.rb
|
|
44
47
|
- lib/active_harness/memory.rb
|
|
45
48
|
- lib/active_harness/memory/adapter/base.rb
|
|
@@ -48,11 +51,21 @@ files:
|
|
|
48
51
|
- lib/active_harness/pipeline/step.rb
|
|
49
52
|
- lib/active_harness/providers/PROVIDER_CONTRACT.md
|
|
50
53
|
- lib/active_harness/providers/anthropic.rb
|
|
54
|
+
- lib/active_harness/providers/azure.rb
|
|
51
55
|
- lib/active_harness/providers/base.rb
|
|
56
|
+
- lib/active_harness/providers/bedrock.rb
|
|
57
|
+
- lib/active_harness/providers/custom.rb
|
|
58
|
+
- lib/active_harness/providers/deepseek.rb
|
|
52
59
|
- lib/active_harness/providers/gemini.rb
|
|
60
|
+
- lib/active_harness/providers/gpustack.rb
|
|
53
61
|
- lib/active_harness/providers/groq.rb
|
|
62
|
+
- lib/active_harness/providers/mistral.rb
|
|
63
|
+
- lib/active_harness/providers/ollama.rb
|
|
54
64
|
- lib/active_harness/providers/openai.rb
|
|
55
65
|
- lib/active_harness/providers/openrouter.rb
|
|
66
|
+
- lib/active_harness/providers/perplexity.rb
|
|
67
|
+
- lib/active_harness/providers/vertexai.rb
|
|
68
|
+
- lib/active_harness/providers/xai.rb
|
|
56
69
|
- lib/active_harness/railtie.rb
|
|
57
70
|
- lib/active_harness/result.rb
|
|
58
71
|
- lib/active_harness/tribunal.rb
|
|
@@ -62,6 +75,7 @@ files:
|
|
|
62
75
|
- lib/generators/active_harness/install/templates/agents/support_agent.rb
|
|
63
76
|
- lib/generators/active_harness/install/templates/agents/support_guard_agent.rb
|
|
64
77
|
- lib/generators/active_harness/install/templates/controllers/ai_controller.rb
|
|
78
|
+
- lib/generators/active_harness/install/templates/initializers/active_harness.rb
|
|
65
79
|
- lib/generators/active_harness/install/templates/memory/app_memory.rb
|
|
66
80
|
- lib/generators/active_harness/install/templates/pipelines/support_pipeline.rb
|
|
67
81
|
- lib/generators/active_harness/install/templates/prompts/support_guard_prompt.rb
|