feat(cli): add Featherless (featherless.ai) as a built-in provider - #48221
feat(cli): add Featherless (featherless.ai) as a built-in provider#48221melodysdreamj wants to merge 1 commit into
Conversation
Featherless serves thousands of open-source models addressed by their Hugging Face repo IDs (e.g. zai-org/GLM-5.2) through an OpenAI-compatible API. Wire it as a first-class API-key provider, mirroring the existing HF-style provider (GMI) with a main-model-first auxiliary design (Arcee). Base URL https://api.featherless.ai/v1, key FEATHERLESS_API_KEY, optional FEATHERLESS_BASE_URL override, default model zai-org/GLM-5.2. - auth.py: PROVIDER_REGISTRY entry + aliases - models.py / setup.py: curated catalog (default zai-org/GLM-5.2), label, aliases - providers.py: HermesOverlay (openai_chat) + aliases - model_metadata.py: provider prefixes, URL->provider mapping, and a Featherless branch in get_model_context_length so the provider-served context_length from /v1/models (e.g. GLM-5.2 at 256K, an 8B at 32K) wins over the model's native context — token budgeting matches what the endpoint actually accepts (mirrors the existing GMI branch) - config.py: OPTIONAL_ENV_VARS entries - doctor.py: /models health-check endpoint + env hint - main.py: route to generic api-key model flow - trajectory_compressor.py: detect provider from base_url host - plugins/model-providers/featherless: provider profile plugin - apps/desktop, .env.example, cli-config.yaml.example - docs: providers, quickstart, environment-variables, fallback-providers, provider-runtime, configuration - tests: tests/hermes_cli/test_featherless_provider.py Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Good addition — #62467's unified resolver includes Featherless in its generic Category C path, so this provider will automatically benefit from the credential resolution fixes. What this PR does: adds Featherless as a built-in provider in How #62467 interacts: once Featherless is registered, the unified resolver
No conflict. If this PR merges first, #62467 will automatically pick up the new provider. If #62467 merges first, Featherless just needs to be added to the registry and the resolver handles the rest. |
|
Thanks for the thorough provider integration and documentation work. This automated hermes-sweeper review is closing it under the standing third-party integration policy.
Closed as not-planned per standing maintainer policy ( |
Summary
Adds Featherless as a first-class, built-in inference provider. Featherless serves thousands of open-source models addressed by their Hugging Face repo IDs (e.g.
zai-org/GLM-5.2) through an OpenAI-compatible API, so it is wired as a standardchat_completionsAPI-key provider — mirroring the existing HF-style provider (GMI) with a main-model-first auxiliary design (Arcee).Today these models are only reachable through
provider: custom. This makes Featherless selectable inhermes model, fallback chains, andhermes doctor, with per-model context auto-detection.https://api.featherless.ai/v1FEATHERLESS_API_KEY(optionalFEATHERLESS_BASE_URLoverride)zai-org/GLM-5.2featherless-ai,featherlessaiWhat's included
hermes_cli/auth.py—PROVIDER_REGISTRYentry + aliaseshermes_cli/models.py/hermes_cli/setup.py— curated catalog (defaultzai-org/GLM-5.2), label, aliaseshermes_cli/providers.py—HermesOverlay(openai_chat) + aliasesagent/model_metadata.py— provider prefixes, URL→provider mapping, and a Featherless branch inget_model_context_lengthhermes_cli/config.py—OPTIONAL_ENV_VARSentrieshermes_cli/doctor.py—/modelshealth-check + env hinthermes_cli/main.py— routes to the generic API-key model flowtrajectory_compressor.py— base_url host detectionplugins/model-providers/featherless/— provider profile pluginapps/desktop,.env.example,cli-config.yaml.exampletests/hermes_cli/test_featherless_provider.pyProvider-served context length
Featherless serves each model at a provider-specific
context_lengthexposed via/v1/models(e.g.zai-org/GLM-5.2at 256K, not its native 1M; an 8B Llama at 32K). The new branch inget_model_context_lengthprefers that authoritative endpoint value over models.dev and the hardcoded native-context fallback, so token budgeting matches what the endpoint will actually accept (mirrors the existing GMI branch).Testing
tests/hermes_cli/test_featherless_provider.py— registry, aliases, credentials, config registry, catalog, URL/prefix mapping, overlay, doctor hint, main-model-first aux, and context-length resolution.test_featherless_provider.py,test_runtime_provider_resolution.py,test_setup_model_provider.py(168 passed).zai-org/GLM-5.2, model listing (22,275 models), and per-model context auto-detection (256K / 32K).🤖 Generated with Claude Code