Skip to content
Open
Changes from all commits
Commits
Show all changes
11 commits
Select commit Hold shift + click to select a range
172154e
🧹 [μ½”λ“œ ν—¬μŠ€ κ°œμ„ ] validate_candidate ν•¨μˆ˜ λ¦¬νŒ©ν† λ§
seonghobae Aug 9, 2026
2733ac7
🧹 [μ½”λ“œ ν—¬μŠ€ κ°œμ„ ] validate_candidate ν•¨μˆ˜ λ¦¬νŒ©ν† λ§
seonghobae Aug 9, 2026
f5da593
🧹 [μ½”λ“œ ν—¬μŠ€ κ°œμ„ ] validate_candidate ν•¨μˆ˜ λ¦¬νŒ©ν† λ§
seonghobae Aug 9, 2026
5ab3035
🧹 [μ½”λ“œ ν—¬μŠ€ κ°œμ„ ] validate_candidate ν•¨μˆ˜ λ¦¬νŒ©ν† λ§
seonghobae Aug 11, 2026
21b3c1e
🧹 [μ½”λ“œ ν—¬μŠ€ κ°œμ„ ] validate_candidate ν•¨μˆ˜ λ¦¬νŒ©ν† λ§
seonghobae Aug 11, 2026
630373e
🧹 [μ½”λ“œ ν—¬μŠ€ κ°œμ„ ] validate_candidate ν•¨μˆ˜ λ¦¬νŒ©ν† λ§
seonghobae Aug 11, 2026
4122456
🧹 [μ½”λ“œ ν—¬μŠ€ κ°œμ„ ] validate_candidate ν•¨μˆ˜ λ¦¬νŒ©ν† λ§
seonghobae Aug 11, 2026
492cb37
🧹 [μ½”λ“œ ν—¬μŠ€ κ°œμ„ ] validate_candidate ν•¨μˆ˜ λ¦¬νŒ©ν† λ§
seonghobae Aug 11, 2026
ea5dceb
🧹 [μ½”λ“œ ν—¬μŠ€ κ°œμ„ ] validate_candidate ν•¨μˆ˜ λ¦¬νŒ©ν† λ§
seonghobae Aug 11, 2026
53a0458
🧹 [μ½”λ“œ ν—¬μŠ€ κ°œμ„ ] validate_candidate ν•¨μˆ˜ λ¦¬νŒ©ν† λ§
seonghobae Aug 12, 2026
38cea4c
🧹 [μ½”λ“œ ν—¬μŠ€ κ°œμ„ ] validate_candidate ν•¨μˆ˜ λ¦¬νŒ©ν† λ§
seonghobae Aug 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 14 additions & 24 deletions scripts/ci/assert_opencode_reasoning_effort.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,39 +47,29 @@ def validate_candidate(config: dict[str, Any], candidate: str) -> list[str]:
except ValueError as exc:
return [str(exc)]

if not config_for_model and (
provider == "github-models" or is_known_reasoning_capable(model_name)
):
return [
f"OpenCode candidate {candidate} is not defined in opencode.jsonc "
f"under provider {provider}."
]
if not config_for_model:
if provider == "github-models" or is_known_reasoning_capable(model_name):
return [
f"OpenCode candidate {candidate} is not defined in opencode.jsonc "
f"under provider {provider}."
]
return []

configured_reasoning = config_for_model.get("reasoning") is True
should_require_effort = configured_reasoning or is_known_reasoning_capable(model_name)
if not should_require_effort:
if not (configured_reasoning or is_known_reasoning_capable(model_name)):
return []

errors: list[str] = []
prefix = f"OpenCode reasoning-capable candidate {candidate} must set"
suffix = "in opencode.jsonc."

if not configured_reasoning:
errors.append(
f"OpenCode reasoning-capable candidate {candidate} must set reasoning=true "
"in opencode.jsonc."
)
errors.append(f"{prefix} reasoning=true {suffix}")
if (config_for_model.get("options") or {}).get("reasoningEffort") != "high":
errors.append(
f"OpenCode reasoning-capable candidate {candidate} must set "
"options.reasoningEffort=high in opencode.jsonc."
)
if ((config_for_model.get("variants") or {}).get("high") or {}).get(
"reasoningEffort"
) != "high":
errors.append(
f"OpenCode reasoning-capable candidate {candidate} must set "
"variants.high.reasoningEffort=high in opencode.jsonc."
)
errors.append(f"{prefix} options.reasoningEffort=high {suffix}")
if ((config_for_model.get("variants") or {}).get("high") or {}).get("reasoningEffort") != "high":
errors.append(f"{prefix} variants.high.reasoningEffort=high {suffix}")

return errors


Expand Down
Loading