mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-20 16:57:46 +00:00
119 lines
2.3 KiB
TypeScript
119 lines
2.3 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2025 Qwen
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import type { ExtendedSystemInfo } from './systemInfo.js';
|
|
import { t } from '../i18n/index.js';
|
|
|
|
/**
|
|
* Field configuration for system information display
|
|
*/
|
|
export interface SystemInfoField {
|
|
label: string;
|
|
key: keyof ExtendedSystemInfo;
|
|
}
|
|
|
|
/**
|
|
* Unified field configuration for system information display.
|
|
* This ensures consistent labeling between /about and /bug commands.
|
|
*/
|
|
export function getSystemInfoFields(
|
|
info: ExtendedSystemInfo,
|
|
): SystemInfoField[] {
|
|
const allFields: SystemInfoField[] = [
|
|
{
|
|
label: t('CLI Version'),
|
|
key: 'cliVersion',
|
|
},
|
|
{
|
|
label: t('Git Commit'),
|
|
key: 'gitCommit',
|
|
},
|
|
{
|
|
label: t('Model'),
|
|
key: 'modelVersion',
|
|
},
|
|
{
|
|
label: t('Sandbox'),
|
|
key: 'sandboxEnv',
|
|
},
|
|
{
|
|
label: t('OS Platform'),
|
|
key: 'osPlatform',
|
|
},
|
|
{
|
|
label: t('OS Arch'),
|
|
key: 'osArch',
|
|
},
|
|
{
|
|
label: t('OS Release'),
|
|
key: 'osRelease',
|
|
},
|
|
{
|
|
label: t('Node.js Version'),
|
|
key: 'nodeVersion',
|
|
},
|
|
{
|
|
label: t('NPM Version'),
|
|
key: 'npmVersion',
|
|
},
|
|
{
|
|
label: t('Session ID'),
|
|
key: 'sessionId',
|
|
},
|
|
{
|
|
label: t('Auth Method'),
|
|
key: 'selectedAuthType',
|
|
},
|
|
{
|
|
label: t('Base URL'),
|
|
key: 'baseUrl',
|
|
},
|
|
{
|
|
label: t('Memory Usage'),
|
|
key: 'memoryUsage',
|
|
},
|
|
{
|
|
label: t('IDE Client'),
|
|
key: 'ideClient',
|
|
},
|
|
];
|
|
|
|
// Filter out optional fields that are not present
|
|
return allFields.filter((field) => {
|
|
const value = info[field.key];
|
|
// Optional fields: only show if they exist and are non-empty
|
|
if (
|
|
field.key === 'baseUrl' ||
|
|
field.key === 'gitCommit' ||
|
|
field.key === 'ideClient'
|
|
) {
|
|
return Boolean(value);
|
|
}
|
|
return true;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Get the value for a field from system info
|
|
*/
|
|
export function getFieldValue(
|
|
field: SystemInfoField,
|
|
info: ExtendedSystemInfo,
|
|
): string {
|
|
const value = info[field.key];
|
|
|
|
if (value === undefined || value === null) {
|
|
return '';
|
|
}
|
|
|
|
// Special formatting for selectedAuthType
|
|
if (field.key === 'selectedAuthType') {
|
|
return String(value).startsWith('oauth') ? 'OAuth' : String(value);
|
|
}
|
|
|
|
return String(value);
|
|
}
|