Skip to content

Add Requesty as an OpenAI-compatible provider#1143

Open
Thibaultjaigu wants to merge 1 commit into
moltis-org:mainfrom
Thibaultjaigu:add-requesty-provider
Open

Add Requesty as an OpenAI-compatible provider#1143
Thibaultjaigu wants to merge 1 commit into
moltis-org:mainfrom
Thibaultjaigu:add-requesty-provider

Conversation

@Thibaultjaigu

Copy link
Copy Markdown

Adds Requesty as a table-driven OpenAI-compatible provider, mirroring the existing openrouter wiring as closely as possible.

Requesty (https://requesty.ai) is an OpenAI-compatible LLM router. Base URL https://router.requesty.ai/v1, auth via Authorization: Bearer $REQUESTY_API_KEY, provider/model naming, and a live GET /v1/models endpoint — the same shape moltis already consumes for OpenRouter.

Changes:

  • crates/providers/src/model_catalogs.rs: new OpenAiCompatDef entry for requesty (env REQUESTY_API_KEY / REQUESTY_BASE_URL, default base URL https://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: requesty added to KNOWN_PROVIDERS.
  • crates/provider-setup/src/known_providers.rs: setup entry (name + default base URL).
  • crates/cli/src/doctor_commands.rs: requesty / REQUESTY_API_KEY in 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 of openrouter_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-setup passes; cargo test -p moltis-config -p moltis-provider-setup → 100 passed.
  • cargo test -p moltis-providers --test requesty_integration compiles and runs (9 ignored, network-gated).
  • The full cargo build fails only on the pre-existing moltis-web build script requiring prebuilt frontend assets (css/style.css, dist/, sw.js via just 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.

@greptile-apps

greptile-apps Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds Requesty as an OpenAI-compatible provider. The main changes are:

  • Requesty entries in provider catalogs, config schema, setup, and doctor checks.
  • A default config template example for [providers.requesty].
  • Web UI onboarding, provider list, and API-key help link updates.
  • Ignored live integration tests mirroring the OpenRouter coverage.

Confidence Score: 5/5

The changed flow looks mergeable after a small provider-registry cleanup.

  • Requesty is wired consistently across the main chat provider surfaces.
  • The ignored integration test matches the existing OpenRouter test shape.
  • Memory embedding auto-detection can skip Requesty when only REQUESTY_API_KEY is configured.

Provider catalog and embedding provider registry consistency.

Important Files Changed

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

Comment on lines +206 to +216
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
},

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.

P2 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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant