Remove OpenClaw fallback compatibility

This commit is contained in:
2026-02-28 15:05:46 -05:00
parent b9f3b7f9d0
commit a53a5222c1
3 changed files with 1 additions and 88 deletions

View File

@@ -5,7 +5,6 @@ import {
runAiAnalysis
} from './ai';
type EnvSource = Record<string, string | undefined>;
const CODING_API_BASE_URL = 'https://api.z.ai/api/coding/paas/v4';
describe('ai config and runtime', () => {
@@ -87,25 +86,10 @@ describe('ai config and runtime', () => {
expect(generate).not.toHaveBeenCalled();
});
it('warns once when deprecated OPENCLAW_* env vars are present', () => {
const warn = mock((_message: string) => {});
const env: EnvSource = {
OPENCLAW_API_KEY: 'legacy-key',
OPENCLAW_BASE_URL: 'http://legacy.local',
ZHIPU_API_KEY: 'new-key'
};
getAiConfig({ env, warn });
getAiConfig({ env, warn });
expect(warn).toHaveBeenCalledTimes(1);
});
it('warns once when ZHIPU_BASE_URL is set because coding endpoint is hardcoded', () => {
const warn = mock((_message: string) => {});
const env: EnvSource = {
const env = {
ZHIPU_API_KEY: 'new-key',
ZHIPU_BASE_URL: 'https://api.z.ai/api/paas/v4'
};
@@ -116,25 +100,6 @@ describe('ai config and runtime', () => {
expect(warn).toHaveBeenCalledTimes(1);
});
it('does not consume OPENCLAW_* values for live generation', async () => {
const generate = mock(async () => ({ text: 'should-not-be-used' }));
const warn = mock((_message: string) => {});
const result = await runAiAnalysis('Legacy-only env prompt', undefined, {
env: {
OPENCLAW_API_KEY: 'legacy-key',
OPENCLAW_MODEL: 'legacy-model'
},
warn,
generate
});
expect(result.provider).toBe('local-fallback');
expect(result.model).toBe('glm-4.7-flashx');
expect(generate).not.toHaveBeenCalled();
expect(warn).toHaveBeenCalledTimes(1);
});
it('uses configured ZHIPU values and injected generator when API key exists', async () => {
const createModel = mock((config: {
apiKey?: string;

View File

@@ -31,23 +31,8 @@ type RunAiAnalysisOptions = GetAiConfigOptions & {
generate?: (input: AiGenerateInput) => Promise<AiGenerateOutput>;
};
const DEPRECATED_LEGACY_GATEWAY_ENV_KEYS = [
'OPENCLAW_BASE_URL',
'OPENCLAW_API_KEY',
'OPENCLAW_MODEL',
'OPENCLAW_AUTH_MODE',
'OPENCLAW_BASIC_AUTH_USERNAME',
'OPENCLAW_BASIC_AUTH_PASSWORD',
'OPENCLAW_API_KEY_HEADER',
'OPENCLAW_PORT',
'OPENCLAW_IMAGE',
'OPENCLAW_BUILD_CONTEXT',
'OPENCLAW_DOCKERFILE'
] as const;
const CODING_API_BASE_URL = 'https://api.z.ai/api/coding/paas/v4';
let warnedDeprecatedGatewayEnv = false;
let warnedIgnoredZhipuBaseUrl = false;
function envValue(name: string, env: EnvSource = process.env) {
@@ -69,22 +54,6 @@ function parseTemperature(value: string | undefined) {
return Math.min(Math.max(parsed, 0), 2);
}
function warnDeprecatedGatewayEnv(env: EnvSource, warn: (message: string) => void) {
if (warnedDeprecatedGatewayEnv) {
return;
}
const presentKeys = DEPRECATED_LEGACY_GATEWAY_ENV_KEYS.filter((key) => Boolean(envValue(key, env)));
if (presentKeys.length === 0) {
return;
}
warnedDeprecatedGatewayEnv = true;
warn(
`[AI SDK] Deprecated OPENCLAW_* variables are ignored after migration: ${presentKeys.join(', ')}. Use ZHIPU_API_KEY, ZHIPU_MODEL, and AI_TEMPERATURE.`
);
}
function warnIgnoredZhipuBaseUrl(env: EnvSource, warn: (message: string) => void) {
if (warnedIgnoredZhipuBaseUrl) {
return;
@@ -134,7 +103,6 @@ async function defaultGenerate(input: AiGenerateInput): Promise<AiGenerateOutput
export function getAiConfig(options?: GetAiConfigOptions) {
const env = options?.env ?? process.env;
warnDeprecatedGatewayEnv(env, options?.warn ?? console.warn);
warnIgnoredZhipuBaseUrl(env, options?.warn ?? console.warn);
return {
@@ -185,6 +153,5 @@ export async function runAiAnalysis(prompt: string, systemPrompt?: string, optio
}
export function __resetAiWarningsForTests() {
warnedDeprecatedGatewayEnv = false;
warnedIgnoredZhipuBaseUrl = false;
}