feat: add Step Plan provider support (salvage #6005)#13893
Merged
kshitijk4poor merged 1 commit intoApr 22, 2026
Conversation
hengm3467
reviewed
Apr 22, 2026
| @@ -36,7 +36,7 @@ | |||
| "glm", "z-ai", "z.ai", "zhipu", "github", "github-copilot", | |||
| "github-models", "kimi", "moonshot", "kimi-cn", "moonshot-cn", "claude", "deep-seek", | |||
| "ollama", | |||
| "opencode", "zen", "go", "vercel", "kilo", "dashscope", "aliyun", "qwen", | |||
| "step", "step-fun", "opencode", "zen", "go", "vercel", "kilo", "dashscope", "aliyun", "qwen", | |||
Contributor
There was a problem hiding this comment.
@kshitijk4poor Thanks. "step-fun" is rarely spelled this way. Did I add it first? :) I'd prefer "stepfun". Thanks!
hengm3467
reviewed
Apr 22, 2026
| @@ -992,6 +1002,7 @@ def resolve_provider( | |||
| "x-ai": "xai", "x.ai": "xai", "grok": "xai", | |||
| "kimi": "kimi-coding", "kimi-for-coding": "kimi-coding", "moonshot": "kimi-coding", | |||
| "kimi-cn": "kimi-coding-cn", "moonshot-cn": "kimi-coding-cn", | |||
| "step": "stepfun", "step-fun": "stepfun", "stepfun-coding-plan": "stepfun", | |||
Contributor
There was a problem hiding this comment.
The proper name for our plan is "Step Plan", maybe replace “step-fun” with "step-plan" here?
hengm3467
reviewed
Apr 22, 2026
| "stepfun": [ | ||
| "step-3.5-flash", | ||
| "step-3.5-flash-2603", | ||
| "step-3", |
Contributor
There was a problem hiding this comment.
@kshitijk4poor Currently the only two models that are optimized for agentic workloads are step-3.5-flash and step-3.5-flash-2603. This is the curated list I guess. Calling api.stepfun.com/step_plan/v1/models would return these two models only.
01facb0 to
ef1e636
Compare
cd7e83a to
bb929a7
Compare
Adds a first-class 'stepfun' API-key provider surfaced as Step Plan: - Support Step Plan setup for both International and China regions - Discover Step Plan models live from /step_plan/v1/models, with a small coding-focused fallback catalog when discovery is unavailable - Thread StepFun through provider metadata, setup persistence, status and doctor output, auxiliary routing, and model normalization - Add tests for provider resolution, model validation, metadata mapping, and StepFun region/model persistence Based on NousResearch#6005 by @hengm3467. Co-authored-by: hengm3467 <100685635+hengm3467@users.noreply.github.com>
bb929a7 to
17334c9
Compare
18 tasks
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
Salvage of #6005 by @hengm3467 — rebased onto current
mainwith review feedback addressed.Adds a first-class
stepfunAPI-key provider surfaced as Step Plan:/step_plan/v1/models, with a small coding-focused fallback catalog when discovery is unavailableReview feedback addressed
Per @hengm3467's review comments:
step-3.5-flash,step-3.5-flash-2603) to match what the/step_plan/v1/modelsdynamic endpoint returns. The live endpoint is always preferred — the fallback is only used when the API probe fails.getpass.getpass()for API key entry (matching all other provider flows)Notes
STEPFUN_BASE_URLand usesSTEPFUN_API_KEYfor authenticationTesting
320 tests pass across the 5 affected test files (the 1 deselected failure is pre-existing on
main):Closes #6005