active_harness 0.3.8 → 0.3.9

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/lib/active_harness/agent/goal_check.rb +26 -0
  3. data/lib/active_harness/agent/state.rb +90 -0
  4. data/lib/active_harness/agent.rb +734 -0
  5. data/lib/active_harness/core/errors.rb +11 -0
  6. data/lib/active_harness/pipeline/hooks.rb +1 -1
  7. data/lib/active_harness/providers/anthropic.rb +57 -8
  8. data/lib/active_harness/providers/base.rb +6 -0
  9. data/lib/active_harness/providers/deepseek.rb +7 -4
  10. data/lib/active_harness/providers/gpustack.rb +7 -4
  11. data/lib/active_harness/providers/groq.rb +7 -4
  12. data/lib/active_harness/providers/hetzner.rb +7 -4
  13. data/lib/active_harness/providers/mistral.rb +7 -4
  14. data/lib/active_harness/providers/ollama.rb +7 -4
  15. data/lib/active_harness/providers/ollama_cloud.rb +7 -4
  16. data/lib/active_harness/providers/openai.rb +7 -4
  17. data/lib/active_harness/providers/openrouter.rb +7 -4
  18. data/lib/active_harness/providers/tool_calling.rb +95 -0
  19. data/lib/active_harness/providers/xai.rb +7 -4
  20. data/lib/active_harness/railtie.rb +1 -1
  21. data/lib/active_harness/request/hooks.rb +1 -1
  22. data/lib/active_harness/request/providers.rb +15 -0
  23. data/lib/active_harness/request.rb +39 -7
  24. data/lib/active_harness/result.rb +4 -0
  25. data/lib/active_harness/tool/path_policy.rb +28 -0
  26. data/lib/active_harness/tool.rb +348 -0
  27. data/lib/active_harness/tribunal/hooks.rb +1 -1
  28. data/lib/active_harness.rb +4 -1
  29. data/lib/generators/active_harness/agent/agent_generator.rb +16 -0
  30. data/lib/generators/active_harness/agent/templates/agent.rb.tt +14 -0
  31. data/lib/generators/active_harness/goal/goal_generator.rb +16 -0
  32. data/lib/generators/active_harness/goal/templates/goal.rb.tt +14 -0
  33. data/lib/generators/active_harness/install/install_generator.rb +30 -25
  34. data/lib/generators/active_harness/install/templates/agents/files_agent.rb +39 -0
  35. data/lib/generators/active_harness/install/templates/concerns/agent_tracing.rb +36 -0
  36. data/lib/generators/active_harness/install/templates/concerns/pipeline_tracing.rb +28 -0
  37. data/lib/generators/active_harness/install/templates/concerns/request_tracing.rb +44 -0
  38. data/lib/generators/active_harness/install/templates/concerns/tool_tracing.rb +21 -0
  39. data/lib/generators/active_harness/install/templates/concerns/tracing_log.rb +18 -0
  40. data/lib/generators/active_harness/install/templates/concerns/tribunal_tracing.rb +28 -0
  41. data/lib/generators/active_harness/install/templates/controllers/ai_controller.rb +23 -2
  42. data/lib/generators/active_harness/install/templates/goals/answer_present_goal.rb +22 -0
  43. data/lib/generators/active_harness/install/templates/pipelines/support_pipeline.rb +8 -18
  44. data/lib/generators/active_harness/install/templates/prompts/files_prompt.rb +9 -0
  45. data/lib/generators/active_harness/install/templates/prompts/support_prompt.rb +3 -0
  46. data/lib/generators/active_harness/install/templates/requests/files_request.rb +18 -0
  47. data/lib/generators/active_harness/install/templates/requests/support_guard_request.rb +12 -0
  48. data/lib/generators/active_harness/install/templates/requests/support_request.rb +6 -0
  49. data/lib/generators/active_harness/install/templates/tools/ls_tool.rb +40 -0
  50. data/lib/generators/active_harness/install/templates/tools/read_file_tool.rb +43 -0
  51. data/lib/generators/active_harness/install/templates/tribunals/support_guard_tribunal.rb +7 -0
  52. data/lib/generators/active_harness/pipeline/templates/pipeline.rb.tt +5 -0
  53. data/lib/generators/active_harness/request/templates/request.rb.tt +2 -0
  54. data/lib/generators/active_harness/tool/templates/tool.rb.tt +22 -0
  55. data/lib/generators/active_harness/tool/tool_generator.rb +16 -0
  56. data/lib/generators/active_harness/tribunal/templates/tribunal.rb.tt +3 -0
  57. metadata +31 -7
@@ -0,0 +1,16 @@
1
+ require "rails/generators"
2
+
3
+ module ActiveHarness
4
+ module Generators
5
+ class ToolGenerator < Rails::Generators::NamedBase
6
+ source_root File.expand_path("templates", __dir__)
7
+
8
+ desc "Creates an ActiveHarness tool in app/ai/tools/"
9
+
10
+ def create_tool
11
+ template "tool.rb.tt",
12
+ "app/ai/tools/#{file_name}_tool.rb"
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,6 +1,9 @@
1
1
  class <%= class_name %>Tribunal < ActiveHarness::Tribunal
2
+ # Requests that run in parallel on the same input.
2
3
  requests <%= class_name %>Request
3
4
 
5
+ # Reduces the successful results to the verdict (true/false).
6
+ # Shortcuts: `verdict :unanimous { ... }` / `verdict :majority { ... }`.
4
7
  process do |results|
5
8
  results.all? { |r| r.processed["result"] == true }
6
9
  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.3.8
4
+ version: 0.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - the-teacher
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-10-03 00:00:00.000000000 Z
11
+ date: 2026-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -38,7 +38,7 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- description:
41
+ description:
42
42
  email:
43
43
  - the-teacher@github.com
44
44
  executables: []
@@ -46,6 +46,9 @@ extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
48
  - lib/active_harness.rb
49
+ - lib/active_harness/agent.rb
50
+ - lib/active_harness/agent/goal_check.rb
51
+ - lib/active_harness/agent/state.rb
49
52
  - lib/active_harness/configuration.rb
50
53
  - lib/active_harness/core/errors.rb
51
54
  - lib/active_harness/core/hooks.rb
@@ -85,6 +88,7 @@ files:
85
88
  - lib/active_harness/providers/openai.rb
86
89
  - lib/active_harness/providers/openrouter.rb
87
90
  - lib/active_harness/providers/perplexity.rb
91
+ - lib/active_harness/providers/tool_calling.rb
88
92
  - lib/active_harness/providers/typesafe.rb
89
93
  - lib/active_harness/providers/vercel.rb
90
94
  - lib/active_harness/providers/vertexai.rb
@@ -101,19 +105,37 @@ files:
101
105
  - lib/active_harness/request/providers.rb
102
106
  - lib/active_harness/request/transcription.rb
103
107
  - lib/active_harness/result.rb
108
+ - lib/active_harness/tool.rb
109
+ - lib/active_harness/tool/path_policy.rb
104
110
  - lib/active_harness/tribunal.rb
105
111
  - lib/active_harness/tribunal/dsl.rb
106
112
  - lib/active_harness/tribunal/hooks.rb
107
113
  - lib/active_harness/tribunal/processing.rb
114
+ - lib/generators/active_harness/agent/agent_generator.rb
115
+ - lib/generators/active_harness/agent/templates/agent.rb.tt
116
+ - lib/generators/active_harness/goal/goal_generator.rb
117
+ - lib/generators/active_harness/goal/templates/goal.rb.tt
108
118
  - lib/generators/active_harness/install/install_generator.rb
119
+ - lib/generators/active_harness/install/templates/agents/files_agent.rb
120
+ - lib/generators/active_harness/install/templates/concerns/agent_tracing.rb
121
+ - lib/generators/active_harness/install/templates/concerns/pipeline_tracing.rb
122
+ - lib/generators/active_harness/install/templates/concerns/request_tracing.rb
123
+ - lib/generators/active_harness/install/templates/concerns/tool_tracing.rb
124
+ - lib/generators/active_harness/install/templates/concerns/tracing_log.rb
125
+ - lib/generators/active_harness/install/templates/concerns/tribunal_tracing.rb
109
126
  - lib/generators/active_harness/install/templates/controllers/ai_controller.rb
127
+ - lib/generators/active_harness/install/templates/goals/answer_present_goal.rb
110
128
  - lib/generators/active_harness/install/templates/initializers/active_harness.rb
111
129
  - lib/generators/active_harness/install/templates/memory/app_memory.rb
112
130
  - lib/generators/active_harness/install/templates/pipelines/support_pipeline.rb
131
+ - lib/generators/active_harness/install/templates/prompts/files_prompt.rb
113
132
  - lib/generators/active_harness/install/templates/prompts/support_guard_prompt.rb
114
133
  - lib/generators/active_harness/install/templates/prompts/support_prompt.rb
134
+ - lib/generators/active_harness/install/templates/requests/files_request.rb
115
135
  - lib/generators/active_harness/install/templates/requests/support_guard_request.rb
116
136
  - lib/generators/active_harness/install/templates/requests/support_request.rb
137
+ - lib/generators/active_harness/install/templates/tools/ls_tool.rb
138
+ - lib/generators/active_harness/install/templates/tools/read_file_tool.rb
117
139
  - lib/generators/active_harness/install/templates/tribunals/support_guard_tribunal.rb
118
140
  - lib/generators/active_harness/memory/memory_generator.rb
119
141
  - lib/generators/active_harness/memory/templates/memory.rb.tt
@@ -127,13 +149,15 @@ files:
127
149
  - lib/generators/active_harness/prompt/templates/prompt.rb.tt
128
150
  - lib/generators/active_harness/request/request_generator.rb
129
151
  - lib/generators/active_harness/request/templates/request.rb.tt
152
+ - lib/generators/active_harness/tool/templates/tool.rb.tt
153
+ - lib/generators/active_harness/tool/tool_generator.rb
130
154
  - lib/generators/active_harness/tribunal/templates/tribunal.rb.tt
131
155
  - lib/generators/active_harness/tribunal/tribunal_generator.rb
132
156
  homepage: https://github.com/the-teacher/active_harness
133
157
  licenses:
134
158
  - MIT
135
159
  metadata: {}
136
- post_install_message:
160
+ post_install_message:
137
161
  rdoc_options: []
138
162
  require_paths:
139
163
  - lib
@@ -148,8 +172,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
172
  - !ruby/object:Gem::Version
149
173
  version: '0'
150
174
  requirements: []
151
- rubygems_version: 3.0.3.1
152
- signing_key:
175
+ rubygems_version: 3.5.16
176
+ signing_key:
153
177
  specification_version: 4
154
178
  summary: DSL for describing and running resilient LLM requests with safety layers
155
179
  test_files: []