refactor: route models-config internals through split helpers

This commit is contained in:
Peter Steinberger
2026-03-28 01:04:04 +00:00
parent 2d6f4bf6c6
commit 2de896524f
8 changed files with 14 additions and 17 deletions

View File

@@ -2,7 +2,7 @@ import { afterEach, beforeEach, vi } from "vitest";
import { withTempHome as withTempHomeBase } from "../../test/helpers/temp-home.js";
import type { OpenClawConfig } from "../config/config.js";
import type { MockFn } from "../test-utils/vitest-mock-fn.js";
import { resolveImplicitProviders } from "./models-config.providers.js";
import { resolveImplicitProviders } from "./models-config.providers.implicit.js";
export async function withModelsTempHome<T>(fn: (home: string) => Promise<T>): Promise<T> {
return withTempHomeBase(fn, { prefix: "openclaw-models-" });

View File

@@ -5,7 +5,7 @@ import {
mergeWithExistingProviderSecrets,
type ExistingProviderConfig,
} from "./models-config.merge.js";
import type { ProviderConfig } from "./models-config.providers.js";
import type { ProviderConfig } from "./models-config.providers.secrets.js";
describe("models-config merge helpers", () => {
const preservedApiKey = "AGENT_KEY"; // pragma: allowlist secret

View File

@@ -5,13 +5,11 @@ import {
mergeWithExistingProviderSecrets,
type ExistingProviderConfig,
} from "./models-config.merge.js";
import {
applyNativeStreamingUsageCompat,
enforceSourceManagedProviderSecrets,
normalizeProviders,
resolveImplicitProviders,
type ProviderConfig,
} from "./models-config.providers.js";
import { resolveImplicitProviders } from "./models-config.providers.implicit.js";
import { normalizeProviders } from "./models-config.providers.normalize.js";
import { applyNativeStreamingUsageCompat } from "./models-config.providers.policy.js";
import type { ProviderConfig } from "./models-config.providers.secrets.js";
import { enforceSourceManagedProviderSecrets } from "./models-config.providers.source-managed.js";
type ModelsConfig = NonNullable<OpenClawConfig["models"]>;

View File

@@ -6,7 +6,7 @@ import { afterAll, beforeEach, describe, expect, it, vi } from "vitest";
import { CHUTES_BASE_URL } from "./chutes-models.js";
import { resolveOAuthApiKeyMarker } from "./model-auth-markers.js";
import { resolveImplicitProvidersForTest } from "./models-config.e2e-harness.js";
import { resolveImplicitProviders } from "./models-config.providers.js";
import { resolveImplicitProviders } from "./models-config.providers.implicit.js";
const CHUTES_OAUTH_MARKER = resolveOAuthApiKeyMarker("chutes");
const ORIGINAL_VITEST_ENV = process.env.VITEST;

View File

@@ -3,7 +3,8 @@ import { tmpdir } from "node:os";
import { join } from "node:path";
import { describe, expect, it } from "vitest";
import { normalizeAntigravityModelId, normalizeGoogleModelId } from "../plugin-sdk/google.js";
import { normalizeProviders, type ProviderConfig } from "./models-config.providers.js";
import { normalizeProviders } from "./models-config.providers.normalize.js";
import type { ProviderConfig } from "./models-config.providers.secrets.js";
function buildModel(id: string): NonNullable<ProviderConfig["models"]>[number] {
return {

View File

@@ -1,6 +1,6 @@
import { describe, expect, it } from "vitest";
import { buildModelStudioProvider } from "../plugin-sdk/modelstudio.js";
import { applyNativeStreamingUsageCompat } from "./models-config.providers.js";
import { applyNativeStreamingUsageCompat } from "./models-config.providers.policy.js";
describe("Model Studio implicit provider", () => {
it("should opt native Model Studio baseUrls into streaming usage", () => {

View File

@@ -9,7 +9,7 @@ import {
} from "../plugin-sdk/moonshot.js";
import { captureEnv } from "../test-utils/env.js";
import { resolveImplicitProvidersForTest } from "./models-config.e2e-harness.js";
import { applyNativeStreamingUsageCompat } from "./models-config.providers.js";
import { applyNativeStreamingUsageCompat } from "./models-config.providers.policy.js";
describe("moonshot implicit provider (#33637)", () => {
it("uses explicit CN baseUrl when provided", async () => {

View File

@@ -4,10 +4,8 @@ import path from "node:path";
import { describe, expect, it } from "vitest";
import type { OpenClawConfig } from "../config/config.js";
import { NON_ENV_SECRETREF_MARKER } from "./model-auth-markers.js";
import {
enforceSourceManagedProviderSecrets,
normalizeProviders,
} from "./models-config.providers.js";
import { normalizeProviders } from "./models-config.providers.normalize.js";
import { enforceSourceManagedProviderSecrets } from "./models-config.providers.source-managed.js";
describe("normalizeProviders", () => {
it("trims provider keys so image models remain discoverable for custom providers", async () => {