Skip to content

feat(shared): add UberLLM proxy preset - #551

Open
PSA-Team-source wants to merge 1 commit into
OpenCoworkAI:mainfrom
PSA-Team-source:add-uberllm-provider
Open

PSA-Team-source wants to merge 1 commit into
OpenCoworkAI:mainfrom
PSA-Team-source:add-uberllm-provider

Conversation

@PSA-Team-source

Copy link
Copy Markdown

Summary

Adds UberLLM as a proxy preset, next to the OpenRouter, Requesty and Opper presets. UberLLM is an OpenAI-compatible gateway: base URL https://api.uberllm.dev/v1, GET /models for model discovery, model ids like deepseek/deepseek-v4-flash or anthropic/claude-sonnet-4.6. Prepaid, pay-as-you-go keys; prices are usually below list price and shown per model at https://uberllm.dev/models. Same three files as the Opper preset in #529 (and Requesty in #397). The base URL already ends in /v1, so canonicalBaseUrl keeps it as is.

I work on UberLLM.

Type of change

  • Bug fix
  • New feature
  • Refactor (no behavior change)
  • Documentation
  • Build / CI / tooling
  • Breaking change

Linked issue

None.

Checklist

  • I checked the linked issue / relevant context before starting
  • pnpm lint && pnpm typecheck && pnpm test passes locally (ran the touched package only, see below; CI will run the full set)
  • Added/updated tests for the change
  • Added a changeset (pnpm changeset) if user-visible
  • Updated docs if behavior changed (not needed)

Tests

  • packages/shared: vitest run 23 files, 397 tests passed; tsc --noEmit clean; biome check on the two changed files clean.
  • Live check through the project's own code: took the uberllm preset, ran detectWireFromBaseUrl → openai-chat, canonicalBaseUrl → https://api.uberllm.dev/v1, modelsEndpointUrl → GET https://api.uberllm.dev/v1/models returned 200 with 263 models, then complete() from @open-codesign/providers with deepseek/deepseek-v4-flash returned "pong". (Throwaway test file, not committed.)

@github-actions github-actions Bot added the docs Documentation label Nov 10, 2026

@github-actions github-actions Bot left a comment

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.

Findings

No issues found.

  • The new preset is schema-valid: all five fields (id, label, provider, baseUrl, notes) are present in packages/shared/src/proxy-presets.ts:59-65, matching the ProxyPreset schema.
  • ProxyPresetId and ProxyPresetIdSchema derive from the PROXY_PRESETS array, so uberllm is automatically included in the enum and covered by the existing "all preset ids are valid ProxyPresetIdSchema values" test (packages/shared/src/proxy-presets.test.ts:18-22).
  • Base URL https://api.uberllm.dev/v1 ends in /v1, consistent with the OpenRouter (/api/v1) and Requesty (/v1) presets, so no canonicalization mismatch is expected.
  • The id assertion added at packages/shared/src/proxy-presets.test.ts:38 follows the existing test pattern, and the changeset correctly targets @open-codesign/shared as a patch.
  • No new dependency, so the ≤30-dep budget and MIT-compatibility constraints are unaffected; BYOK is preserved since this is a user-keyed OpenAI-compatible preset.

Questions

  • None.

Summary

Review mode: initial

This is a small, self-contained data addition: one preset entry, one id assertion, one changeset. It is consistent with how the Opper/Requesty presets were added and does not touch provider runtime, persistence, or release/distribution paths. No blocking or non-blocking code issues were found.

Residual risks (not blocking):

  • The live behavior of https://api.uberllm.dev/v1 (model listing, complete() auth/wire) was verified only by the author; this run did not independently exercise the endpoint. If the upstream changes host/path, the preset would silently point at a dead endpoint, same as any relay preset.
  • There is no explicit assertion pinning the UberLLM baseUrl/provider; a future edit could change them without a test failing. This is optional given the risk profile and existing test style.
  • The PR author discloses working on UberLLM; that is a maintainer disclosure decision, not a code finding.

Testing

  • Not run (automation). Suggested optional regression test if desired: assert PROXY_PRESETS.find(p => p.id === 'uberllm')?.baseUrl === 'https://api.uberllm.dev/v1', mirroring the official-openai/litellm assertions. Full pnpm test/typecheck will run in CI.

Open-CoDesign Bot

This branch has not been deployed

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

Labels

docs Documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant