feat(ai): add Requesty as an OpenAI-compatible provider - #83
Open
Thibaultjaigu wants to merge 1 commit into
Open
Thibaultjaigu wants to merge 1 commit into
Thibaultjaigu wants to merge 1 commit into
Conversation
Registers Requesty next to OpenRouter: provider type and schemas, base URL, default model, model list, env key, logo, CSP connect-src, English strings and docs.
This branch has not been deployed
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
Adds Requesty as a BYOK AI provider. It is an OpenAI-compatible LLM gateway (base URL
https://router.requesty.ai/v1), so it reuses the existingcallOpenAICompatiblepath. Every place OpenRouter is registered got a Requesty sibling; no shared client code changed.Changes
src/store/types.ts,src/store/aiSettings.ts,src/store/aiSettingsSchemas.ts:requestyadded to theAIProviderunion,AI_PROVIDERSand the zod enumsrc/config/aiProviders.ts: base URL, default model (openai/gpt-4o-mini), provider meta (key link https://app.requesty.ai/api-keys), model list, default base URL, riskbrowser_friendly(the router answers CORS preflight withaccess-control-allow-origin: *)src/services/aiService.ts:VITE_REQUESTY_API_KEYenv fallbacksrc/components/SettingsModal/ai/AdvancedEndpointSection.tsx: samePOST /chat/completionshint OpenRouter showspublic/logos/requesty.svg: monochrome logo in the same format asopenrouter.svg(works with the mask-image icon)_headers,nginx/nginx.conf:https://*.requesty.aiadded toconnect-srcnext tohttps://openrouter.aisrc/i18n/locales/enandpublic/locales/en: English provider hint and model labels (other locales fall back to English), kept in syncRequesty is not the default provider and is not added to any automatic selection.
Model list:
openai/gpt-4o-miniplus four Requesty managed policies (gpt-5.4-mini,claude-sonnet-4-6,gemini-3.5-flash,deepseek-v4-flash). Managed policy ids are short names that route across several upstream providers with failover. All ids checked against the liveGET /v1/modelsandGET /v1/models/managed.How to test
VITE_REQUESTY_API_KEY=<your key>in.env.local, or pick Requesty in Settings, AI and paste a keyopenai/gpt-4o-mini(or pick another from the list)Validation
npx tsc -b: passnpx eslinton the touched TS files with--max-warnings 0: passnpx vitest --run: 296 files, 1465 tests passed (includes the provider config consistency and locale coverage/sync tests)aiService(throwaway vitest file, not committed):chatWithFlowpilotwith providerrequestystreamed a reply fromopenai/gpt-4o-mini, andgenerateDiagramFromChatreturned DSL for all five listed modelsDisclosure: I work at Requesty. Happy to adjust anything to match project conventions.