Skip to content

feat: add Step Plan provider support (salvage #6005)#13893

Merged
kshitijk4poor merged 1 commit into
NousResearch:mainfrom
kshitijk4poor:salvage/stepfun-coding-plan
Apr 22, 2026
Merged

feat: add Step Plan provider support (salvage #6005)#13893
kshitijk4poor merged 1 commit into
NousResearch:mainfrom
kshitijk4poor:salvage/stepfun-coding-plan

Conversation

@kshitijk4poor

@kshitijk4poor kshitijk4poor commented Apr 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

Salvage of #6005 by @hengm3467 — rebased onto current main with review feedback addressed.

Adds a first-class stepfun API-key provider surfaced as Step Plan:

  • Support Step Plan setup for both International and China regions from the model selection flow
  • 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

Review feedback addressed

Per @hengm3467's review comments:

  • Naming: Display name changed from "StepFun Coding Plan" to "Step Plan" (the proper plan name)
  • Aliases: Removed "step-fun" spelling from aliases; added "step-plan" alias instead
  • Model list: Trimmed hardcoded fallback catalog from 6 models to 2 (step-3.5-flash, step-3.5-flash-2603) to match what the /step_plan/v1/models dynamic endpoint returns. The live endpoint is always preferred — the fallback is only used when the API probe fails.
  • Use getpass.getpass() for API key entry (matching all other provider flows)

Notes

  • This intentionally exposes Step Plan only and does not add the broader StepFun standard API to the main provider picker
  • Setup persists the selected Step Plan endpoint in STEPFUN_BASE_URL and uses STEPFUN_API_KEY for authentication

Testing

320 tests pass across the 5 affected test files (the 1 deselected failure is pre-existing on main):

tests/hermes_cli/test_api_key_providers.py
tests/hermes_cli/test_model_validation.py
tests/hermes_cli/test_model_provider_persistence.py
tests/agent/test_models_dev.py
tests/agent/test_model_metadata.py

Closes #6005

@alt-glitch alt-glitch added type/feature New feature or request P3 Low — cosmetic, nice to have comp/cli CLI entry point, hermes_cli/, setup wizard comp/agent Core agent loop, run_agent.py, prompt builder labels Apr 22, 2026
Comment thread agent/model_metadata.py Outdated
@@ -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",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kshitijk4poor Thanks. "step-fun" is rarely spelled this way. Did I add it first? :) I'd prefer "stepfun". Thanks!

Comment thread hermes_cli/auth.py Outdated
@@ -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",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The proper name for our plan is "Step Plan", maybe replace “step-fun” with "step-plan" here?

Comment thread hermes_cli/models.py Outdated
"stepfun": [
"step-3.5-flash",
"step-3.5-flash-2603",
"step-3",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@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.

@kshitijk4poor kshitijk4poor force-pushed the salvage/stepfun-coding-plan branch from 01facb0 to ef1e636 Compare April 22, 2026 07:58
@kshitijk4poor kshitijk4poor changed the title feat: add StepFun Coding Plan provider support (salvage #6005) feat: add Step Plan provider support (salvage #6005) Apr 22, 2026
@kshitijk4poor kshitijk4poor force-pushed the salvage/stepfun-coding-plan branch 2 times, most recently from cd7e83a to bb929a7 Compare April 22, 2026 08:12
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/agent Core agent loop, run_agent.py, prompt builder comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants