diff --git a/open-sse/config/providers/registry/freeinference/index.ts b/open-sse/config/providers/registry/freeinference/index.ts new file mode 100644 index 0000000000..25c02dbaad --- /dev/null +++ b/open-sse/config/providers/registry/freeinference/index.ts @@ -0,0 +1,11 @@ +import type { RegistryEntry } from "../../shared.ts"; +import { buildOpenAiCompatibleRegistryEntry } from "../../shared.ts"; + +export const freeinferenceProvider: RegistryEntry = buildOpenAiCompatibleRegistryEntry({ + id: "freeinference", + alias: "freeinference", + baseUrl: "https://freeinference.org/v1/chat/completions", + modelsUrl: "https://freeinference.org/v1/models", + models: [], + passthroughModels: true, +}); diff --git a/tests/unit/free-tier-providers-wave4-a.test.ts b/tests/unit/free-tier-providers-wave4-a.test.ts new file mode 100644 index 0000000000..277b9b2778 --- /dev/null +++ b/tests/unit/free-tier-providers-wave4-a.test.ts @@ -0,0 +1,27 @@ +import assert from "node:assert/strict"; +import test from "node:test"; + +import { freeinferenceProvider } from "../../open-sse/config/providers/registry/freeinference/index.ts"; +import { + DefaultExecutor, + getExecutor, + hasSpecializedExecutor, +} from "../../open-sse/executors/index.ts"; + +test("FreeInference exposes an OpenAI-compatible Bearer registry", () => { + assert.equal(freeinferenceProvider.id, "freeinference"); + assert.equal(freeinferenceProvider.alias, "freeinference"); + assert.equal(freeinferenceProvider.format, "openai"); + assert.equal(freeinferenceProvider.executor, "default"); + assert.equal(freeinferenceProvider.authType, "apikey"); + assert.equal(freeinferenceProvider.authHeader, "bearer"); + assert.equal(freeinferenceProvider.baseUrl, "https://freeinference.org/v1/chat/completions"); + assert.equal(freeinferenceProvider.modelsUrl, "https://freeinference.org/v1/models"); + assert.deepEqual(freeinferenceProvider.models, []); + assert.equal(freeinferenceProvider.passthroughModels, true); +}); + +test("FreeInference uses DefaultExecutor without specialized behavior", () => { + assert.equal(hasSpecializedExecutor("freeinference"), false); + assert.ok(getExecutor("freeinference") instanceof DefaultExecutor); +});