Skip to content

feat(providers): add Apertis preset - #812

Draft
theQuert wants to merge 1 commit into
lidge-jun:devfrom
theQuert:codex/apertis-provider
Draft

feat(providers): add Apertis preset#812
theQuert wants to merge 1 commit into
lidge-jun:devfrom
theQuert:codex/apertis-provider

Conversation

@theQuert

@theQuert theQuert commented Jul 31, 2026

Copy link
Copy Markdown

Summary

  • Add Apertis as a canonical API-key provider with the existing OpenAI Chat adapter.
  • Discover its key-scoped model catalog at /v1/models and retain same-named custom provider configurations.
  • Surface the preset in the GUI catalog and synchronize provider documentation across all locales.

Rebased onto upstream/dev at e1fc0f21c on 2026-08-01. The catalog now has 66 presets: 55 key-based, seven OAuth, three local, and one forward preset.

Canonical-preset evidence

Requirement Primary source Verification
OpenAI-compatible Chat Completions endpoint, base URL, and Bearer API-key use Apertis Chat Completion documentation Checked 2026-07-31
Authenticated GET /v1/models contract and the key-scoped OpenAI-shaped model list Apertis Models documentation Checked 2026-07-31
Terms and operating legal entity Apertis Terms of Service; the Apertis docs footer identifies STIMA AI LLC Checked 2026-07-31
Resale or routing authorization Apertis is an aggregator. Its public product page states that it uses paid multi-provider routes and does not reuse consumer subscription OAuth. The underlying provider-specific contractual evidence is non-public; it must be supplied through a maintainer-designated private channel. This PR makes no claim that the evidence has been verified. Pending confidential maintainer verification, 2026-08-01
Maintenance owner @theQuert; report breakage through this repository's issue/PR workflow and tag the owner. The owner will update or demote the preset if its endpoint, auth, or catalog contract changes. 2026-07-31

Contributor affiliation: @theQuert submits this contribution on behalf of Apertis / STIMA AI LLC.

Safety and scope

  • Reuses the existing openai-chat adapter; no new auth flow or provider credential is added.
  • Live discovery uses existing global safety bounds; fixture-only tests never contact Apertis.
  • The fixed API-key preset preserves a same-named custom provider with a different adapter or destination.
  • No static model, reasoning, or modality metadata is asserted for Apertis.

Verification

  • bun test tests/apertis-provider.test.ts tests/provider-registry-parity.test.ts tests/provider-model-discovery-contract.test.ts — 56 passed
  • bun run typecheck
  • bun run privacy:scan
  • bun run test — passed locally on the rebased head
  • cd gui && bun test tests — 463 passed
  • cd gui && bunx --bun eslint .
  • cd gui && bun run build
  • cd docs-site && bun install --frozen-lockfile && bun run build — 146 pages
  • git diff --check upstream/dev...HEAD

bun run lint invokes the system Node ESLint launcher here, which cannot load the existing TypeScript config (.eslint/i18n-file-groups.ts); the same rules passed under Bun via bunx --bun eslint ..

Checklist

  • Scope stays focused on the provider preset and its documentation.
  • Documentation and fixture-based tests cover the new provider contract.
  • Security-sensitive behavior was reviewed for secrets and unsafe defaults; explicit maintainer security review and confidential routing/resale-evidence verification remain required before merge.

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 589d8d9e-2bd2-497a-8259-42ce24c84bc7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the enhancement New feature or request label Jul 31, 2026

@Ingwannu Ingwannu left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The preset itself is potentially valuable and the implementation gets several important details right: fixed Bearer-authenticated /v1/models, openai-chat, liveModels, and preserveCustomDestination all match the intended registry contract. It is not mergeable yet for two concrete reasons:

  1. This branch is stale against current dev. The docs change the catalog total to 61, while current dev already has 65 presets (54 key-based); Apertis would make that 66/55. The branch also conflicts in all five provider docs, registry.ts, the icon table, and registry parity because newer presets such as DeepInfra, Hyperbolic, and Volcengine landed after its base. Please rebase onto current dev, preserve every existing entry, and regenerate the counts/parity expectation.
  2. A canonical aggregator preset is a credential-destination change. The PR explicitly says provider-specific routing/resale authorization is non-public. The public product-page claim is not enough to independently verify the policy requirement. Please provide the contractual authorization confidentially to the project owner/maintainers and record only the maintainer verification outcome/date in the PR; do not post confidential terms or credentials here. If that evidence cannot be shared, the acceptable fallback is an inert free-directory row rather than a canonical registry entry.

Keep this draft until both points are resolved. After the rebase, rerun the focused provider/parity/discovery suite and the full cross-platform CI.

@theQuert
theQuert force-pushed the codex/apertis-provider branch from 1922177 to a01fafb Compare August 1, 2026 11:09
@theQuert

theQuert commented Aug 1, 2026

Copy link
Copy Markdown
Author

Rebased and pushed this PR onto current dev at e1fc0f21c.

  • Preserved the current DeepInfra, Hyperbolic, Volcengine, and other registry entries.
  • Regenerated the catalog documentation and parity expectation from the registry: 66 presets total, 55 key-based.
  • Reran the focused provider/parity/discovery suite (56 passed), full bun run test, typecheck, privacy scan, GUI tests (463 passed), Bun-based GUI ESLint, GUI build, and docs build (146 pages).

This remains a draft. I will not post non-public contractual terms or credentials in the PR, and I have not marked the routing/resale requirement as verified. The underlying authorization needs to be supplied by an Apertis representative through a maintainer-designated private channel; please advise the preferred secure route. Once a maintainer confirms the review, I will record only the verification outcome and date here.

bun run lint is still blocked in this environment because its Node ESLint launcher cannot load the repository's existing .eslint/i18n-file-groups.ts; the same rules pass via bunx --bun eslint ..

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

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants