mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-22 01:37:50 +00:00
Push model-switching logging into loadCliConfig (#815)
This commit is contained in:
committed by
GitHub
parent
680f4cdd61
commit
6ea4479064
@@ -83,29 +83,29 @@ describe('loadCliConfig', () => {
|
||||
it('should set showMemoryUsage to true when --memory flag is present', async () => {
|
||||
process.argv = ['node', 'script.js', '--show_memory_usage'];
|
||||
const settings: Settings = {};
|
||||
const result = await loadCliConfig(settings);
|
||||
expect(result.config.getShowMemoryUsage()).toBe(true);
|
||||
const config = await loadCliConfig(settings);
|
||||
expect(config.getShowMemoryUsage()).toBe(true);
|
||||
});
|
||||
|
||||
it('should set showMemoryUsage to false when --memory flag is not present', async () => {
|
||||
process.argv = ['node', 'script.js'];
|
||||
const settings: Settings = {};
|
||||
const result = await loadCliConfig(settings);
|
||||
expect(result.config.getShowMemoryUsage()).toBe(false);
|
||||
const config = await loadCliConfig(settings);
|
||||
expect(config.getShowMemoryUsage()).toBe(false);
|
||||
});
|
||||
|
||||
it('should set showMemoryUsage to false by default from settings if CLI flag is not present', async () => {
|
||||
process.argv = ['node', 'script.js'];
|
||||
const settings: Settings = { showMemoryUsage: false };
|
||||
const result = await loadCliConfig(settings);
|
||||
expect(result.config.getShowMemoryUsage()).toBe(false);
|
||||
const config = await loadCliConfig(settings);
|
||||
expect(config.getShowMemoryUsage()).toBe(false);
|
||||
});
|
||||
|
||||
it('should prioritize CLI flag over settings for showMemoryUsage (CLI true, settings false)', async () => {
|
||||
process.argv = ['node', 'script.js', '--show_memory_usage'];
|
||||
const settings: Settings = { showMemoryUsage: false };
|
||||
const result = await loadCliConfig(settings);
|
||||
expect(result.config.getShowMemoryUsage()).toBe(true);
|
||||
const config = await loadCliConfig(settings);
|
||||
expect(config.getShowMemoryUsage()).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -128,50 +128,50 @@ describe('loadCliConfig telemetry', () => {
|
||||
it('should set telemetry to false by default when no flag or setting is present', async () => {
|
||||
process.argv = ['node', 'script.js'];
|
||||
const settings: Settings = {};
|
||||
const result = await loadCliConfig(settings);
|
||||
expect(result.config.getTelemetry()).toBe(false);
|
||||
const config = await loadCliConfig(settings);
|
||||
expect(config.getTelemetry()).toBe(false);
|
||||
});
|
||||
|
||||
it('should set telemetry to true when --telemetry flag is present', async () => {
|
||||
process.argv = ['node', 'script.js', '--telemetry'];
|
||||
const settings: Settings = {};
|
||||
const result = await loadCliConfig(settings);
|
||||
expect(result.config.getTelemetry()).toBe(true);
|
||||
const config = await loadCliConfig(settings);
|
||||
expect(config.getTelemetry()).toBe(true);
|
||||
});
|
||||
|
||||
it('should set telemetry to false when --no-telemetry flag is present', async () => {
|
||||
process.argv = ['node', 'script.js', '--no-telemetry'];
|
||||
const settings: Settings = {};
|
||||
const result = await loadCliConfig(settings);
|
||||
expect(result.config.getTelemetry()).toBe(false);
|
||||
const config = await loadCliConfig(settings);
|
||||
expect(config.getTelemetry()).toBe(false);
|
||||
});
|
||||
|
||||
it('should use telemetry value from settings if CLI flag is not present (settings true)', async () => {
|
||||
process.argv = ['node', 'script.js'];
|
||||
const settings: Settings = { telemetry: true };
|
||||
const result = await loadCliConfig(settings);
|
||||
expect(result.config.getTelemetry()).toBe(true);
|
||||
const config = await loadCliConfig(settings);
|
||||
expect(config.getTelemetry()).toBe(true);
|
||||
});
|
||||
|
||||
it('should use telemetry value from settings if CLI flag is not present (settings false)', async () => {
|
||||
process.argv = ['node', 'script.js'];
|
||||
const settings: Settings = { telemetry: false };
|
||||
const result = await loadCliConfig(settings);
|
||||
expect(result.config.getTelemetry()).toBe(false);
|
||||
const config = await loadCliConfig(settings);
|
||||
expect(config.getTelemetry()).toBe(false);
|
||||
});
|
||||
|
||||
it('should prioritize --telemetry CLI flag (true) over settings (false)', async () => {
|
||||
process.argv = ['node', 'script.js', '--telemetry'];
|
||||
const settings: Settings = { telemetry: false };
|
||||
const result = await loadCliConfig(settings);
|
||||
expect(result.config.getTelemetry()).toBe(true);
|
||||
const config = await loadCliConfig(settings);
|
||||
expect(config.getTelemetry()).toBe(true);
|
||||
});
|
||||
|
||||
it('should prioritize --no-telemetry CLI flag (false) over settings (true)', async () => {
|
||||
process.argv = ['node', 'script.js', '--no-telemetry'];
|
||||
const settings: Settings = { telemetry: true };
|
||||
const result = await loadCliConfig(settings);
|
||||
expect(result.config.getTelemetry()).toBe(false);
|
||||
const config = await loadCliConfig(settings);
|
||||
expect(config.getTelemetry()).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -18,10 +18,7 @@ import {
|
||||
ApprovalMode,
|
||||
} from '@gemini-code/core';
|
||||
import { Settings } from './settings.js';
|
||||
import {
|
||||
getEffectiveModel,
|
||||
type EffectiveModelCheckResult,
|
||||
} from '../utils/modelCheck.js';
|
||||
import { getEffectiveModel } from '../utils/modelCheck.js';
|
||||
import { getCliVersion } from '../utils/version.js';
|
||||
|
||||
// Simple console logger for now - replace with actual logger if available
|
||||
@@ -119,17 +116,10 @@ export async function loadHierarchicalGeminiMemory(
|
||||
return loadServerHierarchicalMemory(currentWorkingDirectory, debugMode);
|
||||
}
|
||||
|
||||
export interface LoadCliConfigResult {
|
||||
config: Config;
|
||||
modelWasSwitched: boolean;
|
||||
originalModelBeforeSwitch?: string;
|
||||
finalModel: string;
|
||||
}
|
||||
|
||||
export async function loadCliConfig(
|
||||
settings: Settings,
|
||||
geminiIgnorePatterns: string[],
|
||||
): Promise<LoadCliConfigResult> {
|
||||
): Promise<Config> {
|
||||
loadEnvironment();
|
||||
|
||||
const geminiApiKey = process.env.GEMINI_API_KEY;
|
||||
@@ -180,19 +170,8 @@ export async function loadCliConfig(
|
||||
const useVertexAI = hasGeminiApiKey ? false : undefined;
|
||||
|
||||
let modelToUse = argv.model || DEFAULT_GEMINI_MODEL;
|
||||
let modelSwitched = false;
|
||||
let originalModel: string | undefined = undefined;
|
||||
|
||||
if (apiKeyForServer) {
|
||||
const checkResult: EffectiveModelCheckResult = await getEffectiveModel(
|
||||
apiKeyForServer,
|
||||
modelToUse,
|
||||
);
|
||||
if (checkResult.switched) {
|
||||
modelSwitched = true;
|
||||
originalModel = checkResult.originalModelIfSwitched;
|
||||
modelToUse = checkResult.effectiveModel;
|
||||
}
|
||||
modelToUse = await getEffectiveModel(apiKeyForServer, modelToUse);
|
||||
}
|
||||
|
||||
const configParams: ConfigParameters = {
|
||||
@@ -227,11 +206,5 @@ export async function loadCliConfig(
|
||||
settings.fileFiltering?.allowBuildArtifacts,
|
||||
};
|
||||
|
||||
const config = createServerConfig(configParams);
|
||||
return {
|
||||
config,
|
||||
modelWasSwitched: modelSwitched,
|
||||
originalModelBeforeSwitch: originalModel,
|
||||
finalModel: modelToUse,
|
||||
};
|
||||
return createServerConfig(configParams);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user