From ac4ea6433a7223c2f2f40cfe6f7a37265d2a7e1e Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Wed, 17 Jun 2026 14:47:49 -0300 Subject: [PATCH 1/2] feat(providers): add Wafer AI (Anthropic-compatible, Bearer auth) --- open-sse/config/providers/index.ts | 2 ++ .../config/providers/registry/wafer/index.ts | 19 +++++++++++++++++++ src/shared/constants/providers.ts | 10 ++++++++++ tests/unit/provider-wafer.test.ts | 11 +++++++++++ 4 files changed, 42 insertions(+) create mode 100644 open-sse/config/providers/registry/wafer/index.ts create mode 100644 tests/unit/provider-wafer.test.ts diff --git a/open-sse/config/providers/index.ts b/open-sse/config/providers/index.ts index 123f4d057d04..8ced8d5fc928 100644 --- a/open-sse/config/providers/index.ts +++ b/open-sse/config/providers/index.ts @@ -125,6 +125,7 @@ import { nanogptProvider } from "./registry/nanogpt/index.ts"; import { scalewayProvider } from "./registry/scaleway/index.ts"; import { agentrouterProvider } from "./registry/agentrouter/index.ts"; import { zaiProvider } from "./registry/zai/index.ts"; +import { waferProvider } from "./registry/wafer/index.ts"; import { huggingchatProvider } from "./registry/huggingchat/index.ts"; import { galadrielProvider } from "./registry/galadriel/index.ts"; import { qianfanProvider } from "./registry/qianfan/index.ts"; @@ -326,4 +327,5 @@ export const REGISTRY: Record = { kiro: kiroProvider, byteplus: byteplusProvider, mimocode: mimocodeProvider, + wafer: waferProvider, }; diff --git a/open-sse/config/providers/registry/wafer/index.ts b/open-sse/config/providers/registry/wafer/index.ts new file mode 100644 index 000000000000..21be94662599 --- /dev/null +++ b/open-sse/config/providers/registry/wafer/index.ts @@ -0,0 +1,19 @@ +import type { RegistryEntry } from "../../shared.ts"; +import { getAnthropicCompatHeaders } from "../../shared.ts"; + +export const waferProvider: RegistryEntry = { + id: "wafer", + alias: "wafer", + format: "claude", + executor: "default", + baseUrl: "https://pass.wafer.ai/v1/messages", + authType: "apikey", + authHeader: "bearer", + headers: getAnthropicCompatHeaders(), + models: [ + { id: "DeepSeek-V4-Pro", name: "DeepSeek V4 Pro" }, + { id: "MiniMax-M2.7", name: "MiniMax M2.7" }, + { id: "Qwen3.5-397B-A17B", name: "Qwen3.5 397B A17B" }, + { id: "GLM-5.1", name: "GLM 5.1" }, + ], +}; diff --git a/src/shared/constants/providers.ts b/src/shared/constants/providers.ts index cc670757f54c..715de483d618 100644 --- a/src/shared/constants/providers.ts +++ b/src/shared/constants/providers.ts @@ -1198,6 +1198,16 @@ export const APIKEY_PROVIDERS = { website: "https://open.bigmodel.cn", apiHint: "API key from https://open.bigmodel.cn/usercenter/apikeys", }, + wafer: { + id: "wafer", + alias: "wafer", + name: "Wafer AI", + icon: "layers", + color: "#6366F1", + textIcon: "WF", + website: "https://wafer.ai", + apiHint: "API key from https://wafer.ai", + }, "opencode-zen": { id: "opencode-zen", alias: "opencode-zen", diff --git a/tests/unit/provider-wafer.test.ts b/tests/unit/provider-wafer.test.ts new file mode 100644 index 000000000000..9970f0f57327 --- /dev/null +++ b/tests/unit/provider-wafer.test.ts @@ -0,0 +1,11 @@ +import { test } from "node:test"; +import assert from "node:assert/strict"; +import { waferProvider } from "../../open-sse/config/providers/registry/wafer/index.ts"; + +test("wafer provider is Anthropic-compatible with Bearer auth", () => { + assert.equal(waferProvider.id, "wafer"); + assert.equal(waferProvider.format, "claude"); + assert.equal(waferProvider.baseUrl, "https://pass.wafer.ai/v1/messages"); + assert.equal(waferProvider.authHeader, "bearer"); // NOT x-api-key → executor sends Authorization: Bearer + assert.ok(Array.isArray(waferProvider.models) && waferProvider.models.length > 0); +}); From 82373213db3e823a917f9d6d3a739c8bfc7f806e Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Wed, 17 Jun 2026 15:57:26 -0300 Subject: [PATCH 2/2] chore(quality): rebaseline providers.ts for Wafer AI entry (3159->3169) --- config/quality/file-size-baseline.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/quality/file-size-baseline.json b/config/quality/file-size-baseline.json index 6939cb831d0d..68461a2e5535 100644 --- a/config/quality/file-size-baseline.json +++ b/config/quality/file-size-baseline.json @@ -1,5 +1,6 @@ { "_comment": "Catraca de tamanho (check-file-size.mjs). frozen so pode encolher; arquivos novos <= cap. --update ratcheta.", + "_rebaseline_2026_06_17_4098_wafer": "PR #4098 own growth: providers.ts 3159->3169 (+10 = Wafer AI catalog entry, a single Zod-validated provider record in the providers map — pure data, standard per-provider addition; bumps catalog 227->228). Cohesive catalog growth; not extractable.", "_rebaseline_2026_06_17_4070_orcarouter": "PR #4070 own growth: providers.ts 3147->3159 (+12 = the OrcaRouter catalog entry, a single Zod-validated provider record { id/alias/name/icon/color/textIcon/passthroughModels/website/apiHint } in the providers map — pure data, the standard per-provider addition; bumps the catalog 226->227). Cohesive catalog growth, not extractable.", "_rebaseline_2026_06_17_4058_auto_catalog": "PR #4058 own growth: chat.ts 1432->1458 (+26 = built-in auto/* catalog recognition gating in handleChat: recognizedBuiltInAuto + per-id variant resolution + the 'unknown built-in auto combo' 400 short-circuit). The duplicated AUTO_TEMPLATE_VARIANTS/VALID_AUTO_VARIANTS maps were extracted on review to open-sse/services/autoCombo/builtinCatalog.ts (60 LOC, v3.8.25 (features #3799-#3806: free-provider-rankings, plugins menu, proxy IP-family selector). 3 arquivos cresceram por feature legitima, nao por regressao de qualidade: ProxyRegistryManager.tsx 1072->1089, sidebarVisibility.ts 990->1006, schemas.ts 2519->2522. Encolher fica como debt para um refactor dedicado.", @@ -127,7 +128,7 @@ "src/shared/components/analytics/charts.tsx": 1558, "src/shared/constants/cliTools.ts": 875, "src/shared/constants/pricing.ts": 1581, - "src/shared/constants/providers.ts": 3159, + "src/shared/constants/providers.ts": 3169, "src/shared/constants/sidebarVisibility.ts": 1100, "src/shared/services/cliRuntime.ts": 1090, "src/shared/validation/schemas.ts": 2523,