[PR #8] [MERGED] fix(models): cloud-only EU/US cost-aware default model assignments #6

Closed
opened 2026-08-09 19:08:26 +02:00 by zaph0d · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Team-Rockstars-AI/opencode-agentic-platform-engineering/pull/8
Author: @niels-emmer
Created: 6/17/2026
Status: Merged
Merged: 6/17/2026
Merged by: @niels-emmer

Base: mainHead: fix/default-models-cloud-eu-us


📝 Commits (2)

  • efe6069 fix(models): ship cloud-only EU/US cost-aware default model assignments
  • 425bfe5 docs(models): document the cloud-only EU/US cost-aware default

📊 Changes

10 files changed (+113 additions, -104 deletions)

View changed files

📝 .opencode/memory.md (+12 -6)
📝 README.md (+1 -1)
📝 agent_config.py (+6 -4)
📝 docs/operator-manual-provisioned-platform.md (+13 -13)
📝 docs/operator-manual-provisioning-platform.md (+9 -10)
📝 manifest.yaml (+18 -18)
📝 opencode.json (+15 -15)
📝 templates/opencode-config/agent_config.py (+6 -4)
📝 templates/opencode-config/manifest.yaml (+18 -18)
📝 templates/opencode-config/opencode.json (+15 -15)

📄 Description

Purpose

Fix the shipped default model configuration so the agent team works out of
the box
with a sensible starting point — cloud-only, EU/US, cost-aware
before anyone runs /select-models.

Problem

The previous default was broken/incorrect on two counts:

  1. Not cloud-onlyverifier, explorer, and docs-writer pointed at
    local Ollama (ollama/mistral:latest on http://localhost:11434),
    requiring a local runtime that isn't present by default.
  2. Stale model ids — the remaining agents used mistral-large-latest,
    codestral-latest, and mistral-small-latest, which are no longer in the
    live OpenCode Zen catalog
    , so those agents could not start.

(The live Zen catalog currently exposes no EU/Mistral models at all, so a
working EU/US default necessarily resolves to US-jurisdiction Zen models.)

New default (cloud-only, EU/US, cost-aware)

All on the Zen endpoint (https://opencode.ai/zen/v1), tiered by role and cost:

Agent(s) Model $in / $out (per 1M)
orchestrator opencode/gpt-5.1 1.07 / 8.50
builder-infra-tf, builder-infra-bicep, builder-pipelines opencode/gpt-5.1-codex 1.07 / 8.50
test-writer opencode/gpt-5.1-codex-mini 0.25 / 2.00
security-auditor, plan-validator, code-reviewer opencode/claude-haiku-4-5 1.00 / 5.00
verifier, docs-writer opencode/gemini-3-flash 0.50 / 3.00
explorer opencode/gpt-5.4-nano 0.20 / 1.25

Rationale: strong-but-mid-cost reasoning for the orchestrator; code-specialised
codex models for the builders; cheap, capable Anthropic Haiku for read-only
review; and the lowest-cost tiers for navigation/verification/docs.

Changes

  • opencode.json / manifest.yaml (root + templates/opencode-config/):
    new per-agent models + Zen endpoints; policy set to EU+US-Sovereign.
  • agent_config.py (root + template): allowed_jurisdictions
    ["EU", "Sovereign", "US", "Local"]; default_code_generation_model
    gpt-5.1-codex; default_task_execution_modelgemini-3-flash. The
    self-test now demonstrates enforcement against a Global model
    (deepseek/deepseek-v4-pro) since US is now permitted.
  • Docs (README.md, .opencode/memory.md, both operator manuals): updated
    the shipped-default description, per-agent table, and self-test expected output.

Applied identically to the root config (this repo) and the scaffold
templates
(what generated repos inherit). Historical journals
(BUILD_JOURNAL.md, DISCOVERIES_LOG.md) are left unchanged as an append-only log.

Verification

  • Every assigned model verified to exist in the live Zen catalog snapshot.
  • No ollama / localhost references remain in the default config (the
    select-models.py Ollama-discovery constants stay — that's the opt-in
    local-model feature, not the default).
  • agent_config.py self-test passes (rc 0) for both root and template; it now
    correctly blocks the simulated Global model.
  • ruff, compileall, validate-skills.py, and JSON/YAML parsing all pass.

Re-run /select-models at any time to re-optimise against the current live
catalog, pricing, jurisdiction policy, and (optionally) local hardware.

🤖 Generated with Claude Code


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Team-Rockstars-AI/opencode-agentic-platform-engineering/pull/8 **Author:** [@niels-emmer](https://github.com/niels-emmer) **Created:** 6/17/2026 **Status:** ✅ Merged **Merged:** 6/17/2026 **Merged by:** [@niels-emmer](https://github.com/niels-emmer) **Base:** `main` ← **Head:** `fix/default-models-cloud-eu-us` --- ### 📝 Commits (2) - [`efe6069`](https://github.com/Team-Rockstars-AI/opencode-agentic-platform-engineering/commit/efe606999f9dd72d11147382c3b7e6c97ab3c4d7) fix(models): ship cloud-only EU/US cost-aware default model assignments - [`425bfe5`](https://github.com/Team-Rockstars-AI/opencode-agentic-platform-engineering/commit/425bfe50bd4008ea715a4c835566891c05936067) docs(models): document the cloud-only EU/US cost-aware default ### 📊 Changes **10 files changed** (+113 additions, -104 deletions) <details> <summary>View changed files</summary> 📝 `.opencode/memory.md` (+12 -6) 📝 `README.md` (+1 -1) 📝 `agent_config.py` (+6 -4) 📝 `docs/operator-manual-provisioned-platform.md` (+13 -13) 📝 `docs/operator-manual-provisioning-platform.md` (+9 -10) 📝 `manifest.yaml` (+18 -18) 📝 `opencode.json` (+15 -15) 📝 `templates/opencode-config/agent_config.py` (+6 -4) 📝 `templates/opencode-config/manifest.yaml` (+18 -18) 📝 `templates/opencode-config/opencode.json` (+15 -15) </details> ### 📄 Description ## Purpose Fix the **shipped default model configuration** so the agent team works **out of the box** with a sensible starting point — **cloud-only, EU/US, cost-aware** — *before* anyone runs `/select-models`. ## Problem The previous default was broken/incorrect on two counts: 1. **Not cloud-only** — `verifier`, `explorer`, and `docs-writer` pointed at **local Ollama** (`ollama/mistral:latest` on `http://localhost:11434`), requiring a local runtime that isn't present by default. 2. **Stale model ids** — the remaining agents used `mistral-large-latest`, `codestral-latest`, and `mistral-small-latest`, which are **no longer in the live OpenCode Zen catalog**, so those agents could not start. (The live Zen catalog currently exposes **no EU/Mistral models at all**, so a working EU/US default necessarily resolves to US-jurisdiction Zen models.) ## New default (cloud-only, EU/US, cost-aware) All on the Zen endpoint (`https://opencode.ai/zen/v1`), tiered by role and cost: | Agent(s) | Model | $in / $out (per 1M) | |:---|:---|:---| | `orchestrator` | `opencode/gpt-5.1` | 1.07 / 8.50 | | `builder-infra-tf`, `builder-infra-bicep`, `builder-pipelines` | `opencode/gpt-5.1-codex` | 1.07 / 8.50 | | `test-writer` | `opencode/gpt-5.1-codex-mini` | 0.25 / 2.00 | | `security-auditor`, `plan-validator`, `code-reviewer` | `opencode/claude-haiku-4-5` | 1.00 / 5.00 | | `verifier`, `docs-writer` | `opencode/gemini-3-flash` | 0.50 / 3.00 | | `explorer` | `opencode/gpt-5.4-nano` | 0.20 / 1.25 | Rationale: strong-but-mid-cost reasoning for the orchestrator; code-specialised `codex` models for the builders; cheap, capable Anthropic Haiku for read-only review; and the lowest-cost tiers for navigation/verification/docs. ## Changes - **`opencode.json` / `manifest.yaml`** (root + `templates/opencode-config/`): new per-agent models + Zen endpoints; policy set to **`EU+US-Sovereign`**. - **`agent_config.py`** (root + template): `allowed_jurisdictions` → `["EU", "Sovereign", "US", "Local"]`; `default_code_generation_model` → `gpt-5.1-codex`; `default_task_execution_model` → `gemini-3-flash`. The self-test now demonstrates enforcement against a **Global** model (`deepseek/deepseek-v4-pro`) since US is now permitted. - **Docs** (`README.md`, `.opencode/memory.md`, both operator manuals): updated the shipped-default description, per-agent table, and self-test expected output. Applied identically to the **root config** (this repo) and the **scaffold templates** (what generated repos inherit). Historical journals (`BUILD_JOURNAL.md`, `DISCOVERIES_LOG.md`) are left unchanged as an append-only log. ## Verification - Every assigned model verified to exist in the live Zen catalog snapshot. - No `ollama` / `localhost` references remain in the default config (the `select-models.py` Ollama-discovery constants stay — that's the opt-in local-model feature, not the default). - `agent_config.py` self-test passes (rc 0) for both root and template; it now correctly blocks the simulated Global model. - `ruff`, `compileall`, `validate-skills.py`, and JSON/YAML parsing all pass. > Re-run `/select-models` at any time to re-optimise against the *current* live > catalog, pricing, jurisdiction policy, and (optionally) local hardware. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
github-mirrors/opencode-agentic-platform-engineering#6
No description provided.