Module: SpaceArchitect::Harness
- Defined in:
- lib/space_architect/harness.rb
Defined Under Namespace
Classes: ClaudeCodeHarness, OpenCodeHarness
Constant Summary collapse
- CLAUDE_DEFAULT_MODEL =
"claude-sonnet-4-6"
Class Method Summary collapse
-
.for(name, model:, max_turns:, bin: nil, config_dir: nil, effort: nil) ⇒ Object
Factory keyed by harness name.
Class Method Details
.for(name, model:, max_turns:, bin: nil, config_dir: nil, effort: nil) ⇒ Object
Factory keyed by harness name. For opencode: config_dir is required (build/<id>-<lane> dir outside the worktree).
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/space_architect/harness.rb', line 13 def self.for(name, model:, max_turns:, bin: nil, config_dir: nil, effort: nil) case name.to_s when "claude-code" if effort raise Error, "effort is opencode-only (sets opencode reasoningEffort) — " \ "claude-code effort is set via the prompt" end ClaudeCodeHarness.new(model: model, max_turns: max_turns, bin: bin) when "opencode" if model == CLAUDE_DEFAULT_MODEL raise Error, "Pass --model when using --harness opencode (the claude-sonnet-4-6 default " \ "is a Claude model ID and will not work with opencode — " \ "try e.g. fireworks-ai/accounts/fireworks/models/glm-5p2)" end raise Error, "config_dir is required for opencode harness" unless config_dir OpenCodeHarness.new(model: model, max_turns: max_turns, bin: bin, config_dir: config_dir, effort: effort) else raise Error, "Unknown harness '#{name}' — valid values: claude-code, opencode" end end |