Add Requesty as an OpenAI-compatible provider#1143
Conversation
Greptile SummaryThis PR adds Requesty as an OpenAI-compatible provider. The main changes are:
Confidence Score: 5/5The changed flow looks mergeable after a small provider-registry cleanup.
Provider catalog and embedding provider registry consistency.
|
| Filename | Overview |
|---|---|
| crates/providers/src/model_catalogs.rs | Adds the Requesty OpenAI-compatible provider definition with Requesty API and base URL environment keys. |
| crates/provider-setup/src/known_providers.rs | Adds Requesty setup metadata with API-key auth and the default router base URL. |
| crates/config/src/schema/providers.rs | Adds Requesty to the known provider names accepted by config validation. |
| crates/config/src/template.rs | Documents Requesty in the generated config template. |
| crates/cli/src/doctor_commands.rs | Adds Requesty to the doctor environment variable checks. |
| crates/providers/tests/requesty_integration.rs | Adds ignored live Requesty integration tests using the existing OpenRouter test shape. |
| crates/web/ui/src/onboarding/steps/ProviderStep.tsx | Adds Requesty to the onboarding OpenAI-compatible provider list. |
| crates/web/ui/src/provider-key-help.ts | Adds the Requesty API-key help link. |
| crates/web/ui/src/providers/shared.ts | Adds Requesty to the shared OpenAI-compatible provider list. |
Reviews (1): Last reviewed commit: "Add Requesty as an OpenAI-compatible pro..." | Re-trigger Greptile
| config_name: "requesty", | ||
| env_key: "REQUESTY_API_KEY", | ||
| env_base_url_key: "REQUESTY_BASE_URL", | ||
| default_base_url: "https://router.requesty.ai/v1", | ||
| capabilities: OpenAiProviderCapabilities { | ||
| default_strict_tools: false, | ||
| cache_control_policy: CacheControlPolicy::OpenRouterAnthropic, | ||
| ..OpenAiProviderCapabilities::DEFAULT | ||
| }, | ||
| ..OpenAiCompatDef::DEFAULT | ||
| }, |
There was a problem hiding this comment.
Embedding Auto-Detection Skips Requesty
Requesty is now accepted as an OpenAI-compatible chat provider, but the matching memory embedding auto-detection list still has the OpenRouter router entry without a Requesty entry. When a user sets only REQUESTY_API_KEY, chat setup can find Requesty while memory setup skips it, so embeddings do not auto-configure through the same provider.
Context Used: AGENTS.md (source)
Adds Requesty as a table-driven OpenAI-compatible provider, mirroring the existing
openrouterwiring as closely as possible.Requesty (https://requesty.ai) is an OpenAI-compatible LLM router. Base URL
https://router.requesty.ai/v1, auth viaAuthorization: Bearer $REQUESTY_API_KEY,provider/modelnaming, and a liveGET /v1/modelsendpoint — the same shape moltis already consumes for OpenRouter.Changes:
crates/providers/src/model_catalogs.rs: newOpenAiCompatDefentry forrequesty(envREQUESTY_API_KEY/REQUESTY_BASE_URL, default base URLhttps://router.requesty.ai/v1), mirroring the OpenRouter entry — including the OpenRouter-style Anthropic cache-control policy, since Requesty proxies Anthropic models the same way. Models are discovered live via/v1/models(no hardcoded catalog), like OpenRouter.crates/config/src/schema/providers.rs:requestyadded toKNOWN_PROVIDERS.crates/provider-setup/src/known_providers.rs: setup entry (name + default base URL).crates/cli/src/doctor_commands.rs:requesty/REQUESTY_API_KEYin the doctor env check.crates/config/src/template.rs: commented[providers.requesty]example in the default config template.crates/web/ui/: onboarding provider list, key-help link (https://app.requesty.ai/api-keys), and shared providers list.crates/providers/tests/requesty_integration.rs: mirror ofopenrouter_integration.rs(network-gated /#[ignore]d exactly like the OpenRouter test, so it does not run live in CI).Verification:
cargo build -p moltis-config -p moltis-provider-setuppasses;cargo test -p moltis-config -p moltis-provider-setup→ 100 passed.cargo test -p moltis-providers --test requesty_integrationcompiles and runs (9 ignored, network-gated).cargo buildfails only on the pre-existingmoltis-webbuild script requiring prebuilt frontend assets (css/style.css,dist/,sw.jsviajust build-web-assets) — unrelated to this change.I work at Requesty. This mirrors the existing OpenRouter provider as closely as possible. Happy to adjust or close it if it's not a fit.