feat(byok): show qodercli custom providers in the model selector - #67
Merged
Merged
Conversation
SDK-spawned sessions run qodercli in its "sdk" runtime mode, which keeps
CLI-configured custom providers (self-defined base URLs) disabled unless
QODER_SDK_CUSTOM_BASE_URL_BYOK=1 is present — so their models never reached
Qoderian. Opt every spawned CLI into that setting at the shared spawn
boundary and group models with source "custom" under Custom, next to the
existing BYOK ("user") ones. The catalog stays a plain live fetch: asking the
server for providers by id rejects it with a 400.
Co-authored-by: QoderAI (Qwen 3.8 Max) <qoder_ai@qoder.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
QODER_SDK_CUSTOM_BASE_URL_BYOK=1is present — so their models never reached Qoderian's model selector. The plugin now sets that opt-in for every spawned CLI at the shared spawn boundary (createCustomSpawnFunction), which covers the runtime probe, cold-start queries and every chat turn.source: "custom"now group under Custom in the selector, next to the existing BYOK (user) ones.outerProviders) makes the server reject the live request with a 400, so that path is deliberately not used (comment added to prevent a regression).Verification
npm run typechecknpm run lintnpm run test— 165 suites / 3540 tests passnpm run buildnpm run release:check— Release 1.0.10 is readynpm run audit:prod— 0 vulnerabilitiesqodercli --list-modelslists its models, a plain prompt routes through the provider, and the SDK session reports them assource: customSafety
CHANGELOG.mdCo-authored-by: QoderAI (Qwen 3.8 Max) qoder_ai@qoder.com