Skip to content

feat(providers): add SAP Hyperspace (HAI) native-Anthropic provider - #34

Merged
suparious merged 1 commit into
mainfrom
feat/hyperspace-provider
Aug 19, 2026
Merged

suparious merged 1 commit into
mainfrom
feat/hyperspace-provider

Conversation

@suparious

Copy link
Copy Markdown
Owner

What

Adds a hyperspace provider so Claude Code can route through the SAP Hyperspace AI proxy (HAI) — a native Anthropic Messages relay at /anthropic/v1 that delivers Claude, GPT, and Gemini model families through one approved endpoint.

Why

Lets Claude Code users pick a cheaper/different model (e.g. Gemini or GPT) instead of always paying for the most expensive default model.

How

Transport mirrors the existing OpenRouter native path (Bearer auth + anthropic-version header, shared native SSE block policy). Wired into every provider registration point:

  • config/provider_catalog.py — descriptor + default base URL
  • config/settings.py — api_key/keys/base_url/proxy/usage_limit + validator lists
  • providers/registry.py — factory + registration (passes the sync guard)
  • providers/defaults.py — re-export
  • providers/hyperspace/{__init__,client,request}.py — the provider
  • .env.example + README.md — user-facing docs

Verification

  • ruff format --checkruff check
  • pytest: 883 passed (5 new tests for init, native request body, Bearer/anthropic-version headers, and SSE pass-through)

Usage:

HYPERSPACE_BASE_URL="http://localhost:6655/anthropic/v1"
HYPERSPACE_API_KEY="***"
MODEL="hyperspace/gemini-2.5-pro"

Adds a 'hyperspace' provider so Claude Code can route through the SAP
Hyperspace AI proxy, which exposes a native Anthropic Messages API at
/anthropic/v1 and delivers Claude, GPT, and Gemini model families through
a single approved endpoint. This lets users select a cheaper/different
model instead of the expensive org default.

Transport mirrors the OpenRouter native path (Bearer auth +
anthropic-version header, shared native SSE block policy). Wired into the
single-source provider catalog, settings (api_key/keys/base_url/proxy/
usage_limit + validators), registry factory, defaults re-export,
.env.example, and README provider docs.

Files: config/provider_catalog.py, config/settings.py, providers/defaults.py,
providers/registry.py, providers/hyperspace/{__init__,client,request}.py,
tests/providers/test_hyperspace.py, .env.example, README.md

Verification: ruff format --check + ruff check pass; full pytest suite
883 passed (5 new). ty check delta is clean — the only 2 new diagnostics
are the pre-existing environment-specific 'providers.base unresolved-import'
false positive that already affects every provider client/test locally and
passes on CI's Linux runner.
@suparious
suparious merged commit 45f4fa5 into main Aug 19, 2026
4 checks passed
@suparious
suparious deleted the feat/hyperspace-provider branch August 19, 2026 21:11
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