mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-04-29 20:20:57 +00:00
Merge branch 'main' into feat/mcp-tui
This commit is contained in:
commit
38dafeb839
24 changed files with 170 additions and 149 deletions
|
|
@ -2255,8 +2255,8 @@ describe('parseArguments with positional prompt', () => {
|
|||
});
|
||||
|
||||
describe('Telemetry configuration via environment variables', () => {
|
||||
it('should prioritize GEMINI_TELEMETRY_ENABLED over settings', async () => {
|
||||
vi.stubEnv('GEMINI_TELEMETRY_ENABLED', 'true');
|
||||
it('should prioritize QWEN_TELEMETRY_ENABLED over settings', async () => {
|
||||
vi.stubEnv('QWEN_TELEMETRY_ENABLED', 'true');
|
||||
process.argv = ['node', 'script.js'];
|
||||
const argv = await parseArguments();
|
||||
const settings: Settings = { telemetry: { enabled: false } };
|
||||
|
|
@ -2264,8 +2264,8 @@ describe('Telemetry configuration via environment variables', () => {
|
|||
expect(config.getTelemetryEnabled()).toBe(true);
|
||||
});
|
||||
|
||||
it('should prioritize GEMINI_TELEMETRY_TARGET over settings', async () => {
|
||||
vi.stubEnv('GEMINI_TELEMETRY_TARGET', 'gcp');
|
||||
it('should prioritize QWEN_TELEMETRY_TARGET over settings', async () => {
|
||||
vi.stubEnv('QWEN_TELEMETRY_TARGET', 'gcp');
|
||||
process.argv = ['node', 'script.js'];
|
||||
const argv = await parseArguments();
|
||||
const settings: Settings = {
|
||||
|
|
@ -2275,8 +2275,8 @@ describe('Telemetry configuration via environment variables', () => {
|
|||
expect(config.getTelemetryTarget()).toBe('gcp');
|
||||
});
|
||||
|
||||
it('should throw when GEMINI_TELEMETRY_TARGET is invalid', async () => {
|
||||
vi.stubEnv('GEMINI_TELEMETRY_TARGET', 'bogus');
|
||||
it('should throw when QWEN_TELEMETRY_TARGET is invalid', async () => {
|
||||
vi.stubEnv('QWEN_TELEMETRY_TARGET', 'bogus');
|
||||
process.argv = ['node', 'script.js'];
|
||||
const argv = await parseArguments();
|
||||
const settings: Settings = {
|
||||
|
|
@ -2288,9 +2288,9 @@ describe('Telemetry configuration via environment variables', () => {
|
|||
vi.unstubAllEnvs();
|
||||
});
|
||||
|
||||
it('should prioritize GEMINI_TELEMETRY_OTLP_ENDPOINT over settings and default env var', async () => {
|
||||
it('should prioritize QWEN_TELEMETRY_OTLP_ENDPOINT over settings and default env var', async () => {
|
||||
vi.stubEnv('OTEL_EXPORTER_OTLP_ENDPOINT', 'http://default.env.com');
|
||||
vi.stubEnv('GEMINI_TELEMETRY_OTLP_ENDPOINT', 'http://gemini.env.com');
|
||||
vi.stubEnv('QWEN_TELEMETRY_OTLP_ENDPOINT', 'http://gemini.env.com');
|
||||
process.argv = ['node', 'script.js'];
|
||||
const argv = await parseArguments();
|
||||
const settings: Settings = {
|
||||
|
|
@ -2300,8 +2300,8 @@ describe('Telemetry configuration via environment variables', () => {
|
|||
expect(config.getTelemetryOtlpEndpoint()).toBe('http://gemini.env.com');
|
||||
});
|
||||
|
||||
it('should prioritize GEMINI_TELEMETRY_OTLP_PROTOCOL over settings', async () => {
|
||||
vi.stubEnv('GEMINI_TELEMETRY_OTLP_PROTOCOL', 'http');
|
||||
it('should prioritize QWEN_TELEMETRY_OTLP_PROTOCOL over settings', async () => {
|
||||
vi.stubEnv('QWEN_TELEMETRY_OTLP_PROTOCOL', 'http');
|
||||
process.argv = ['node', 'script.js'];
|
||||
const argv = await parseArguments();
|
||||
const settings: Settings = { telemetry: { otlpProtocol: 'grpc' } };
|
||||
|
|
@ -2309,8 +2309,8 @@ describe('Telemetry configuration via environment variables', () => {
|
|||
expect(config.getTelemetryOtlpProtocol()).toBe('http');
|
||||
});
|
||||
|
||||
it('should prioritize GEMINI_TELEMETRY_LOG_PROMPTS over settings', async () => {
|
||||
vi.stubEnv('GEMINI_TELEMETRY_LOG_PROMPTS', 'false');
|
||||
it('should prioritize QWEN_TELEMETRY_LOG_PROMPTS over settings', async () => {
|
||||
vi.stubEnv('QWEN_TELEMETRY_LOG_PROMPTS', 'false');
|
||||
process.argv = ['node', 'script.js'];
|
||||
const argv = await parseArguments();
|
||||
const settings: Settings = { telemetry: { logPrompts: true } };
|
||||
|
|
@ -2318,8 +2318,8 @@ describe('Telemetry configuration via environment variables', () => {
|
|||
expect(config.getTelemetryLogPromptsEnabled()).toBe(false);
|
||||
});
|
||||
|
||||
it('should prioritize GEMINI_TELEMETRY_OUTFILE over settings', async () => {
|
||||
vi.stubEnv('GEMINI_TELEMETRY_OUTFILE', '/gemini/env/telemetry.log');
|
||||
it('should prioritize QWEN_TELEMETRY_OUTFILE over settings', async () => {
|
||||
vi.stubEnv('QWEN_TELEMETRY_OUTFILE', '/gemini/env/telemetry.log');
|
||||
process.argv = ['node', 'script.js'];
|
||||
const argv = await parseArguments();
|
||||
const settings: Settings = {
|
||||
|
|
@ -2329,8 +2329,8 @@ describe('Telemetry configuration via environment variables', () => {
|
|||
expect(config.getTelemetryOutfile()).toBe('/gemini/env/telemetry.log');
|
||||
});
|
||||
|
||||
it('should prioritize GEMINI_TELEMETRY_USE_COLLECTOR over settings', async () => {
|
||||
vi.stubEnv('GEMINI_TELEMETRY_USE_COLLECTOR', 'true');
|
||||
it('should prioritize QWEN_TELEMETRY_USE_COLLECTOR over settings', async () => {
|
||||
vi.stubEnv('QWEN_TELEMETRY_USE_COLLECTOR', 'true');
|
||||
process.argv = ['node', 'script.js'];
|
||||
const argv = await parseArguments();
|
||||
const settings: Settings = { telemetry: { useCollector: false } };
|
||||
|
|
@ -2338,8 +2338,8 @@ describe('Telemetry configuration via environment variables', () => {
|
|||
expect(config.getTelemetryUseCollector()).toBe(true);
|
||||
});
|
||||
|
||||
it('should use settings value when GEMINI_TELEMETRY_ENABLED is not set', async () => {
|
||||
vi.stubEnv('GEMINI_TELEMETRY_ENABLED', undefined);
|
||||
it('should use settings value when QWEN_TELEMETRY_ENABLED is not set', async () => {
|
||||
vi.stubEnv('QWEN_TELEMETRY_ENABLED', undefined);
|
||||
process.argv = ['node', 'script.js'];
|
||||
const argv = await parseArguments();
|
||||
const settings: Settings = { telemetry: { enabled: true } };
|
||||
|
|
@ -2347,8 +2347,8 @@ describe('Telemetry configuration via environment variables', () => {
|
|||
expect(config.getTelemetryEnabled()).toBe(true);
|
||||
});
|
||||
|
||||
it('should use settings value when GEMINI_TELEMETRY_TARGET is not set', async () => {
|
||||
vi.stubEnv('GEMINI_TELEMETRY_TARGET', undefined);
|
||||
it('should use settings value when QWEN_TELEMETRY_TARGET is not set', async () => {
|
||||
vi.stubEnv('QWEN_TELEMETRY_TARGET', undefined);
|
||||
process.argv = ['node', 'script.js'];
|
||||
const argv = await parseArguments();
|
||||
const settings: Settings = {
|
||||
|
|
@ -2358,16 +2358,16 @@ describe('Telemetry configuration via environment variables', () => {
|
|||
expect(config.getTelemetryTarget()).toBe('local');
|
||||
});
|
||||
|
||||
it("should treat GEMINI_TELEMETRY_ENABLED='1' as true", async () => {
|
||||
vi.stubEnv('GEMINI_TELEMETRY_ENABLED', '1');
|
||||
it("should treat QWEN_TELEMETRY_ENABLED='1' as true", async () => {
|
||||
vi.stubEnv('QWEN_TELEMETRY_ENABLED', '1');
|
||||
process.argv = ['node', 'script.js'];
|
||||
const argv = await parseArguments();
|
||||
const config = await loadCliConfig({}, argv, undefined, []);
|
||||
expect(config.getTelemetryEnabled()).toBe(true);
|
||||
});
|
||||
|
||||
it("should treat GEMINI_TELEMETRY_ENABLED='0' as false", async () => {
|
||||
vi.stubEnv('GEMINI_TELEMETRY_ENABLED', '0');
|
||||
it("should treat QWEN_TELEMETRY_ENABLED='0' as false", async () => {
|
||||
vi.stubEnv('QWEN_TELEMETRY_ENABLED', '0');
|
||||
process.argv = ['node', 'script.js'];
|
||||
const argv = await parseArguments();
|
||||
const config = await loadCliConfig(
|
||||
|
|
@ -2379,16 +2379,16 @@ describe('Telemetry configuration via environment variables', () => {
|
|||
expect(config.getTelemetryEnabled()).toBe(false);
|
||||
});
|
||||
|
||||
it("should treat GEMINI_TELEMETRY_LOG_PROMPTS='1' as true", async () => {
|
||||
vi.stubEnv('GEMINI_TELEMETRY_LOG_PROMPTS', '1');
|
||||
it("should treat QWEN_TELEMETRY_LOG_PROMPTS='1' as true", async () => {
|
||||
vi.stubEnv('QWEN_TELEMETRY_LOG_PROMPTS', '1');
|
||||
process.argv = ['node', 'script.js'];
|
||||
const argv = await parseArguments();
|
||||
const config = await loadCliConfig({}, argv, undefined, []);
|
||||
expect(config.getTelemetryLogPromptsEnabled()).toBe(true);
|
||||
});
|
||||
|
||||
it("should treat GEMINI_TELEMETRY_LOG_PROMPTS='false' as false", async () => {
|
||||
vi.stubEnv('GEMINI_TELEMETRY_LOG_PROMPTS', 'false');
|
||||
it("should treat QWEN_TELEMETRY_LOG_PROMPTS='false' as false", async () => {
|
||||
vi.stubEnv('QWEN_TELEMETRY_LOG_PROMPTS', 'false');
|
||||
process.argv = ['node', 'script.js'];
|
||||
const argv = await parseArguments();
|
||||
const config = await loadCliConfig(
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ function getSandboxCommand(
|
|||
|
||||
// note environment variable takes precedence over argument (from command line or settings)
|
||||
const environmentConfiguredSandbox =
|
||||
process.env['GEMINI_SANDBOX']?.toLowerCase().trim() ?? '';
|
||||
process.env['QWEN_SANDBOX']?.toLowerCase().trim() ?? '';
|
||||
sandbox =
|
||||
environmentConfiguredSandbox?.length > 0
|
||||
? environmentConfiguredSandbox
|
||||
|
|
@ -63,7 +63,7 @@ function getSandboxCommand(
|
|||
return sandbox;
|
||||
}
|
||||
throw new FatalSandboxError(
|
||||
`Missing sandbox command '${sandbox}' (from GEMINI_SANDBOX)`,
|
||||
`Missing sandbox command '${sandbox}' (from QWEN_SANDBOX)`,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -80,8 +80,8 @@ function getSandboxCommand(
|
|||
// throw an error if user requested sandbox but no command was found
|
||||
if (sandbox === true) {
|
||||
throw new FatalSandboxError(
|
||||
'GEMINI_SANDBOX is true but failed to determine command for sandbox; ' +
|
||||
'install docker or podman or specify command in GEMINI_SANDBOX',
|
||||
'QWEN_SANDBOX is true but failed to determine command for sandbox; ' +
|
||||
'install docker or podman or specify command in QWEN_SANDBOX',
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -98,7 +98,7 @@ export async function loadSandboxConfig(
|
|||
const packageJson = await getPackageJson();
|
||||
const image =
|
||||
argv.sandboxImage ??
|
||||
process.env['GEMINI_SANDBOX_IMAGE'] ??
|
||||
process.env['QWEN_SANDBOX_IMAGE'] ??
|
||||
packageJson?.config?.sandboxImageUri;
|
||||
|
||||
return command && image ? { command, image } : undefined;
|
||||
|
|
|
|||
|
|
@ -158,9 +158,9 @@ describe('Trusted Folders Loading', () => {
|
|||
expect(errors[0].message).toContain('Unexpected token');
|
||||
});
|
||||
|
||||
it('should use GEMINI_CLI_TRUSTED_FOLDERS_PATH env var if set', () => {
|
||||
it('should use QWEN_CODE_TRUSTED_FOLDERS_PATH env var if set', () => {
|
||||
const customPath = '/custom/path/to/trusted_folders.json';
|
||||
process.env['GEMINI_CLI_TRUSTED_FOLDERS_PATH'] = customPath;
|
||||
process.env['QWEN_CODE_TRUSTED_FOLDERS_PATH'] = customPath;
|
||||
|
||||
(mockFsExistsSync as Mock).mockImplementation((p) => p === customPath);
|
||||
const userContent = {
|
||||
|
|
@ -180,7 +180,7 @@ describe('Trusted Folders Loading', () => {
|
|||
]);
|
||||
expect(errors).toEqual([]);
|
||||
|
||||
delete process.env['GEMINI_CLI_TRUSTED_FOLDERS_PATH'];
|
||||
delete process.env['QWEN_CODE_TRUSTED_FOLDERS_PATH'];
|
||||
});
|
||||
|
||||
it('setValue should update the user config and save it', () => {
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@ export const SETTINGS_DIRECTORY_NAME = '.qwen';
|
|||
export const USER_SETTINGS_DIR = path.join(homedir(), SETTINGS_DIRECTORY_NAME);
|
||||
|
||||
export function getTrustedFoldersPath(): string {
|
||||
if (process.env['GEMINI_CLI_TRUSTED_FOLDERS_PATH']) {
|
||||
return process.env['GEMINI_CLI_TRUSTED_FOLDERS_PATH'];
|
||||
if (process.env['QWEN_CODE_TRUSTED_FOLDERS_PATH']) {
|
||||
return process.env['QWEN_CODE_TRUSTED_FOLDERS_PATH'];
|
||||
}
|
||||
return path.join(USER_SETTINGS_DIR, TRUSTED_FOLDERS_FILENAME);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue