Files
OmniRoute/open-sse/executors/opencode.ts
Rafael Dias Zendron 1843b34866 feat(6922): effort-tier aliases for glm-5.2 & mimo-v2.5 on opencode-go (#6987)
* feat(6922): register effort-tier aliases for glm-5.2 & mimo-v2.5 on opencode-go

Previously only deepseek-v4-pro had effort-tier aliases on the opencode-go
provider. GLM-5.2 and MiMo-V2.5 only had base model ids, making it impossible
to pin reasoning effort per combo target.

Changes:
- Generalize parseDeepSeekEffortLevel → parseEffortLevel with EFFORT_TIERS table
- deepseek-v4-pro: low/medium/high/max (unchanged)
- glm-5.2: high/max only (OpenAI transport; low/medium not supported)
- mimo-v2.5: high/max only (same reasoning)
- Register alias model ids in opencode-go registry
- Mark base models supportsReasoning: true
- 9 unit tests covering registry + executor + backward compat

Closes #6922

* ci: retrigger CI for Electron Package Smoke flaky test

* ci: retrigger flaky Electron Package Smoke

* test(#6922): rewrite tests to call real parseEffortLevel function

- Export parseEffortLevel from opencode.ts so tests can import it
- Replace grep-on-source-file assertions with real function calls
- 13 tests: 4 deepseek tiers + 2 glm-5.2 tiers + 2 mimo-v2.5 tiers
  + 5 negative cases (unknown model, unsupported tiers, empty, base-only)
- Remove dependency on readFileSync / string matching

* chore: retrigger CI (should-promote-latest flaky EPIPE)

* test(#6922): cover transformRequest end-to-end, not just parseEffortLevel

parseEffortLevel already has real assertions (own follow-up commit
4a4d37ba5). This adds coverage one layer up, at the public entry point
that actually wires the parser into the request pipeline
(OpencodeExecutor.transformRequest): asserts body.model is rewritten to
the base id and body.reasoning_effort is injected for glm-5.2-high and
mimo-v2.5-max, that an explicit caller-supplied reasoning_effort is not
clobbered, and that an unaliased model passes through untouched.

Red-first proof: neutered the `if (parsed)` branch in transformRequest
(`if (false && parsed)`) and reran — the 3 assertions that depend on the
wiring failed as expected (model/reasoning_effort left unrewritten); the
13 parseEffortLevel tests and the unaliased-model case stayed green.
Restored and reran clean (17/17).

Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>

---------

Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
2026-07-18 15:14:37 -03:00

13 KiB