feat: add OrcaRouter as a named LLM provider - #42
Open
XiaoHuo888-hue wants to merge 1 commit into
Open
Conversation
Adds a named OrcaRouterProvider (OpenAI-compatible, base_url https://api.orcarouter.ai/v1, ORCAROUTER_API_KEY) mirroring the existing OpenRouterProvider, plus config and README docs. OrcaRouter model IDs are provider-prefixed (openai/gpt-5.5, anthropic/claude-sonnet-5, google/gemini-3.5-flash); aliases map short names to those IDs. Co-Authored-By: Claude <noreply@anthropic.com>
|
We require contributors to sign our Contributor License Agreement, and we don't have @XiaoHuo888-hue on file. You can sign our CLA at https://e2b.dev/docs/cla . Once you've signed, post a comment here that says '@cla-bot check' |
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 OrcaRouter as a named provider. With one API key, users get 150+ models from OpenAI, Anthropic, Google, DeepSeek, Qwen, MiniMax and xAI behind a single endpoint. Because the provider layer here is a thin base-URL swap, any computer-use agent that uses it also inherits OrcaRouter's gateway-level, zero-trust security controls for AI agents — with no application code changes. The gateway screens every prompt and response and governs every tool call on a default-deny basis, across four layers:
I'm an engineer on the OrcaRouter team.
What's added
os_computer_use/providers.py: newOrcaRouterProvider(OpenAIBaseProvider)mirroring the existingOpenRouterProvider—base_url=https://api.orcarouter.ai/v1, auth viaORCAROUTER_API_KEY, and aliases mapping short names to provider-prefixed OrcaRouter model IDs (gpt-5.5→openai/gpt-5.5,claude-sonnet→anthropic/claude-sonnet-5,gemini-flash→google/gemini-3.5-flash).os_computer_use/config.py: commented option showing how to select it (vision_model = providers.OrcaRouterProvider("gpt-5.5")).README.md: OrcaRouter added to the LLM support list andORCAROUTER_API_KEYadded to the env var list.Why a named provider
This mirrors how the existing
OpenRouterProvideris wired in this repo, so the config reference and docs stay consistent for users, and the README already invites provider PRs.How to use it
Get an API key at https://www.orcarouter.ai/console (keys start with
sk-orca-).Set
ORCAROUTER_API_KEYin.env.In
os_computer_use/config.py:Other catalog model IDs (e.g.
anthropic/claude-opus-4.8,google/gemini-3.5-flash) work the same way. The full catalog is at https://www.orcarouter.ai/models.Verification
OrcaRouterProviderclass):providers.OrcaRouterProvider("gpt-5.5").call(...)→ORCA-OKBlue)click_itemtool): returned a valid tool callclick_item→{"description": "submit button"}openai/gpt-5.5,anthropic/claude-sonnet-5,google/gemini-3.5-flash,deepseek/deepseek-v4-flashcompletions all HTTP 200.python -m py_compile os_computer_use/providers.pypasses.