Repository navigation
feat(llm): add Requesty provider via OpenAI-compatible router - #221
Open
Thibaultjaigu wants to merge 3 commits into
Open
Thibaultjaigu wants to merge 3 commits into
Thibaultjaigu wants to merge 3 commits into
Conversation
Wire Requesty (https://router.requesty.ai/v1) as an opt-in LLM provider following the Novita pattern: dispatched through the OpenAIAdapter, resolved via REQUESTY_API_KEY, with a default model, a short verified model catalog, setup and CLI key entry, and regression tests. Requesty is not added to the automatic provider priority or the opt-in fallback chain.
The Settings model list fetches /models/managed first and merges /models, each with its own timeout so one failing endpoint does not empty the list. Ids with control characters are dropped.
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 (https://router.requesty.ai/v1) as an opt-in LLM provider, following the same footprint as the Novita provider in #155. It goes through the existing
OpenAIAdapter, readsREQUESTY_API_KEY, and has a default model, a short model catalog, setup and CLI key entry, the API config panel option, and docs. Requesty is not added tocreateBestAvailableBackboneor to the opt-inTEMPEST_MODEL_FALLBACKchain, so it is only used when selected.The Settings model list fetches
/v1/models/managed(curated routing ids likeclaude-sonnet-5) and/v1/models(the fullvendor/modelcatalog) separately, each with its own timeout, so one failing endpoint still leaves the other list. Ids with control characters are dropped. The static catalog ids (anthropic/claude-sonnet-5,openai/gpt-5.4) were checked against the live/v1/modelstoday.Linked issue
None.
Prior work and attribution
src/__tests__/novita-provider.test.tsContribution receipt
REQUESTY_API_KEYis added to theexportConfigredaction list and covered byapi-key-env-static.test.tsVerification
npm run typechecknpm testnpm run doctorExact commands and results:
npm run lint: 0 errors (existing warnings only)npm run typecheck: passnpm test: 90 files, 1001 tests pass, plus the script self-tests passnpm run doctor: 29/33 checks, 4 warnings for optional local tools and the offline API, 0 blockerscreateRequestyBackbone()withopenai/gpt-4o-minireturned the expected reply withfinishReason: "stop", andlistProviderModels('requesty')returned 894 ids keyless and 939 with a key.Risk and rollback
Delivery checks
upstream/mainDisclosure: I work at Requesty. Happy to adjust anything to match project conventions.