mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-20 16:57:46 +00:00
Merge pull request #298 from QwenLM/chore/pkg_version
Chore/pkg version
This commit is contained in:
@@ -24,7 +24,7 @@ jobs:
|
|||||||
ISSUE_TITLE: ${{ github.event.issue.title }}
|
ISSUE_TITLE: ${{ github.event.issue.title }}
|
||||||
ISSUE_BODY: ${{ github.event.issue.body }}
|
ISSUE_BODY: ${{ github.event.issue.body }}
|
||||||
with:
|
with:
|
||||||
version: 0.0.4
|
version: 0.0.6
|
||||||
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
||||||
settings_json: |
|
settings_json: |
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ jobs:
|
|||||||
ISSUES_TO_TRIAGE: ${{ steps.find_issues.outputs.issues_to_triage }}
|
ISSUES_TO_TRIAGE: ${{ steps.find_issues.outputs.issues_to_triage }}
|
||||||
REPOSITORY: ${{ github.repository }}
|
REPOSITORY: ${{ github.repository }}
|
||||||
with:
|
with:
|
||||||
version: 0.0.4
|
version: 0.0.6
|
||||||
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
||||||
OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}
|
OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}
|
||||||
OPENAI_MODEL: ${{ secrets.OPENAI_MODEL }}
|
OPENAI_MODEL: ${{ secrets.OPENAI_MODEL }}
|
||||||
|
|||||||
10
package-lock.json
generated
10
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@qwen-code/qwen-code",
|
"name": "@qwen-code/qwen-code",
|
||||||
"version": "0.0.4",
|
"version": "0.0.6",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@qwen-code/qwen-code",
|
"name": "@qwen-code/qwen-code",
|
||||||
"version": "0.0.4",
|
"version": "0.0.6",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
"packages/*"
|
"packages/*"
|
||||||
],
|
],
|
||||||
@@ -11817,7 +11817,7 @@
|
|||||||
},
|
},
|
||||||
"packages/cli": {
|
"packages/cli": {
|
||||||
"name": "@qwen-code/qwen-code",
|
"name": "@qwen-code/qwen-code",
|
||||||
"version": "0.0.4",
|
"version": "0.0.6",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@google/genai": "1.9.0",
|
"@google/genai": "1.9.0",
|
||||||
"@iarna/toml": "^2.2.5",
|
"@iarna/toml": "^2.2.5",
|
||||||
@@ -11894,7 +11894,7 @@
|
|||||||
},
|
},
|
||||||
"packages/core": {
|
"packages/core": {
|
||||||
"name": "@qwen-code/qwen-code-core",
|
"name": "@qwen-code/qwen-code-core",
|
||||||
"version": "0.0.4",
|
"version": "0.0.6",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@google/genai": "1.9.0",
|
"@google/genai": "1.9.0",
|
||||||
"@modelcontextprotocol/sdk": "^1.11.0",
|
"@modelcontextprotocol/sdk": "^1.11.0",
|
||||||
@@ -11962,7 +11962,7 @@
|
|||||||
},
|
},
|
||||||
"packages/vscode-ide-companion": {
|
"packages/vscode-ide-companion": {
|
||||||
"name": "qwen-code-vscode-ide-companion",
|
"name": "qwen-code-vscode-ide-companion",
|
||||||
"version": "0.0.4",
|
"version": "0.0.6",
|
||||||
"license": "LICENSE",
|
"license": "LICENSE",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@modelcontextprotocol/sdk": "^1.15.1",
|
"@modelcontextprotocol/sdk": "^1.15.1",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@qwen-code/qwen-code",
|
"name": "@qwen-code/qwen-code",
|
||||||
"version": "0.0.4",
|
"version": "0.0.6",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=20.0.0"
|
"node": ">=20.0.0"
|
||||||
},
|
},
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
"url": "git+https://github.com/QwenLM/qwen-code.git"
|
"url": "git+https://github.com/QwenLM/qwen-code.git"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.0.4"
|
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.0.6"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node scripts/start.js",
|
"start": "node scripts/start.js",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@qwen-code/qwen-code",
|
"name": "@qwen-code/qwen-code",
|
||||||
"version": "0.0.4",
|
"version": "0.0.6",
|
||||||
"description": "Qwen Code",
|
"description": "Qwen Code",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"dist"
|
"dist"
|
||||||
],
|
],
|
||||||
"config": {
|
"config": {
|
||||||
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.0.4"
|
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.0.6"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@google/genai": "1.9.0",
|
"@google/genai": "1.9.0",
|
||||||
|
|||||||
@@ -412,6 +412,7 @@ export async function loadCliConfig(
|
|||||||
}
|
}
|
||||||
|
|
||||||
const sandboxConfig = await loadSandboxConfig(settings, argv);
|
const sandboxConfig = await loadSandboxConfig(settings, argv);
|
||||||
|
const cliVersion = await getCliVersion();
|
||||||
|
|
||||||
return new Config({
|
return new Config({
|
||||||
sessionId,
|
sessionId,
|
||||||
@@ -497,6 +498,7 @@ export async function loadCliConfig(
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
contentGenerator: settings.contentGenerator,
|
contentGenerator: settings.contentGenerator,
|
||||||
|
cliVersion,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@qwen-code/qwen-code-core",
|
"name": "@qwen-code/qwen-code-core",
|
||||||
"version": "0.0.4",
|
"version": "0.0.6",
|
||||||
"description": "Qwen Code Core",
|
"description": "Qwen Code Core",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
@@ -208,6 +208,7 @@ export interface ConfigParameters {
|
|||||||
timeout?: number;
|
timeout?: number;
|
||||||
maxRetries?: number;
|
maxRetries?: number;
|
||||||
};
|
};
|
||||||
|
cliVersion?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Config {
|
export class Config {
|
||||||
@@ -281,6 +282,7 @@ export class Config {
|
|||||||
timeout?: number;
|
timeout?: number;
|
||||||
maxRetries?: number;
|
maxRetries?: number;
|
||||||
};
|
};
|
||||||
|
private readonly cliVersion?: string;
|
||||||
constructor(params: ConfigParameters) {
|
constructor(params: ConfigParameters) {
|
||||||
this.sessionId = params.sessionId;
|
this.sessionId = params.sessionId;
|
||||||
this.embeddingModel =
|
this.embeddingModel =
|
||||||
@@ -350,6 +352,7 @@ export class Config {
|
|||||||
this.enableOpenAILogging = params.enableOpenAILogging ?? false;
|
this.enableOpenAILogging = params.enableOpenAILogging ?? false;
|
||||||
this.sampling_params = params.sampling_params;
|
this.sampling_params = params.sampling_params;
|
||||||
this.contentGenerator = params.contentGenerator;
|
this.contentGenerator = params.contentGenerator;
|
||||||
|
this.cliVersion = params.cliVersion;
|
||||||
|
|
||||||
if (params.contextFileName) {
|
if (params.contextFileName) {
|
||||||
setGeminiMdFilename(params.contextFileName);
|
setGeminiMdFilename(params.contextFileName);
|
||||||
@@ -719,6 +722,10 @@ export class Config {
|
|||||||
return this.contentGenerator?.maxRetries;
|
return this.contentGenerator?.maxRetries;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getCliVersion(): string | undefined {
|
||||||
|
return this.cliVersion;
|
||||||
|
}
|
||||||
|
|
||||||
getSystemPromptMappings():
|
getSystemPromptMappings():
|
||||||
| Array<{
|
| Array<{
|
||||||
baseUrls?: string[];
|
baseUrls?: string[];
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ describe('OpenAIContentGenerator Timeout Handling', () => {
|
|||||||
timeout: 120000,
|
timeout: 120000,
|
||||||
maxRetries: 3,
|
maxRetries: 3,
|
||||||
}),
|
}),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
// Mock OpenAI client
|
// Mock OpenAI client
|
||||||
@@ -256,6 +257,7 @@ describe('OpenAIContentGenerator Timeout Handling', () => {
|
|||||||
timeout: 300000, // 5 minutes
|
timeout: 300000, // 5 minutes
|
||||||
maxRetries: 5,
|
maxRetries: 5,
|
||||||
}),
|
}),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
new OpenAIContentGenerator('test-key', 'gpt-4', customConfig);
|
new OpenAIContentGenerator('test-key', 'gpt-4', customConfig);
|
||||||
@@ -274,6 +276,7 @@ describe('OpenAIContentGenerator Timeout Handling', () => {
|
|||||||
it('should handle missing timeout config gracefully', () => {
|
it('should handle missing timeout config gracefully', () => {
|
||||||
const noTimeoutConfig = {
|
const noTimeoutConfig = {
|
||||||
getContentGeneratorConfig: vi.fn().mockReturnValue({}),
|
getContentGeneratorConfig: vi.fn().mockReturnValue({}),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
new OpenAIContentGenerator('test-key', 'gpt-4', noTimeoutConfig);
|
new OpenAIContentGenerator('test-key', 'gpt-4', noTimeoutConfig);
|
||||||
|
|||||||
@@ -228,6 +228,7 @@ describe('Gemini Client (client.ts)', () => {
|
|||||||
getGeminiClient: vi.fn(),
|
getGeminiClient: vi.fn(),
|
||||||
setFallbackMode: vi.fn(),
|
setFallbackMode: vi.fn(),
|
||||||
getDebugMode: vi.fn().mockReturnValue(false),
|
getDebugMode: vi.fn().mockReturnValue(false),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
};
|
};
|
||||||
const MockedConfig = vi.mocked(Config, true);
|
const MockedConfig = vi.mocked(Config, true);
|
||||||
MockedConfig.mockImplementation(
|
MockedConfig.mockImplementation(
|
||||||
|
|||||||
@@ -17,7 +17,9 @@ import { Config } from '../config/config.js';
|
|||||||
vi.mock('../code_assist/codeAssist.js');
|
vi.mock('../code_assist/codeAssist.js');
|
||||||
vi.mock('@google/genai');
|
vi.mock('@google/genai');
|
||||||
|
|
||||||
const mockConfig = {} as unknown as Config;
|
const mockConfig = {
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
|
} as unknown as Config;
|
||||||
|
|
||||||
describe('createContentGenerator', () => {
|
describe('createContentGenerator', () => {
|
||||||
it('should create a CodeAssistContentGenerator', async () => {
|
it('should create a CodeAssistContentGenerator', async () => {
|
||||||
@@ -73,6 +75,7 @@ describe('createContentGeneratorConfig', () => {
|
|||||||
getSamplingParams: vi.fn().mockReturnValue(undefined),
|
getSamplingParams: vi.fn().mockReturnValue(undefined),
|
||||||
getContentGeneratorTimeout: vi.fn().mockReturnValue(undefined),
|
getContentGeneratorTimeout: vi.fn().mockReturnValue(undefined),
|
||||||
getContentGeneratorMaxRetries: vi.fn().mockReturnValue(undefined),
|
getContentGeneratorMaxRetries: vi.fn().mockReturnValue(undefined),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ export async function createContentGenerator(
|
|||||||
gcConfig: Config,
|
gcConfig: Config,
|
||||||
sessionId?: string,
|
sessionId?: string,
|
||||||
): Promise<ContentGenerator> {
|
): Promise<ContentGenerator> {
|
||||||
const version = process.env.CLI_VERSION || process.version;
|
const version = gcConfig.getCliVersion() || 'unknown';
|
||||||
const httpOptions = {
|
const httpOptions = {
|
||||||
headers: {
|
headers: {
|
||||||
'User-Agent': `GeminiCLI/${version} (${process.platform}; ${process.arch})`,
|
'User-Agent': `GeminiCLI/${version} (${process.platform}; ${process.arch})`,
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
top_p: 0.9,
|
top_p: 0.9,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
// Mock OpenAI client
|
// Mock OpenAI client
|
||||||
@@ -143,6 +144,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
timeout: 300000,
|
timeout: 300000,
|
||||||
maxRetries: 5,
|
maxRetries: 5,
|
||||||
}),
|
}),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
new OpenAIContentGenerator('test-key', 'gpt-4', customConfig);
|
new OpenAIContentGenerator('test-key', 'gpt-4', customConfig);
|
||||||
@@ -901,6 +903,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
getContentGeneratorConfig: vi.fn().mockReturnValue({
|
getContentGeneratorConfig: vi.fn().mockReturnValue({
|
||||||
enableOpenAILogging: true,
|
enableOpenAILogging: true,
|
||||||
}),
|
}),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const loggingGenerator = new OpenAIContentGenerator(
|
const loggingGenerator = new OpenAIContentGenerator(
|
||||||
@@ -1023,6 +1026,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
getContentGeneratorConfig: vi.fn().mockReturnValue({
|
getContentGeneratorConfig: vi.fn().mockReturnValue({
|
||||||
enableOpenAILogging: true,
|
enableOpenAILogging: true,
|
||||||
}),
|
}),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const loggingGenerator = new OpenAIContentGenerator(
|
const loggingGenerator = new OpenAIContentGenerator(
|
||||||
@@ -1817,6 +1821,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
max_tokens: 500,
|
max_tokens: 500,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const loggingGenerator = new OpenAIContentGenerator(
|
const loggingGenerator = new OpenAIContentGenerator(
|
||||||
@@ -2001,6 +2006,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
getContentGeneratorConfig: vi.fn().mockReturnValue({
|
getContentGeneratorConfig: vi.fn().mockReturnValue({
|
||||||
enableOpenAILogging: true,
|
enableOpenAILogging: true,
|
||||||
}),
|
}),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const loggingGenerator = new OpenAIContentGenerator(
|
const loggingGenerator = new OpenAIContentGenerator(
|
||||||
@@ -2257,6 +2263,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
top_p: undefined,
|
top_p: undefined,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const testGenerator = new OpenAIContentGenerator(
|
const testGenerator = new OpenAIContentGenerator(
|
||||||
@@ -2314,6 +2321,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
frequency_penalty: 0.3,
|
frequency_penalty: 0.3,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const testGenerator = new OpenAIContentGenerator(
|
const testGenerator = new OpenAIContentGenerator(
|
||||||
@@ -2394,6 +2402,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
enableOpenAILogging: false,
|
enableOpenAILogging: false,
|
||||||
}),
|
}),
|
||||||
getSessionId: vi.fn().mockReturnValue('test-session-id'),
|
getSessionId: vi.fn().mockReturnValue('test-session-id'),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const qwenGenerator = new OpenAIContentGenerator(
|
const qwenGenerator = new OpenAIContentGenerator(
|
||||||
@@ -2447,6 +2456,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
enableOpenAILogging: false,
|
enableOpenAILogging: false,
|
||||||
}),
|
}),
|
||||||
getSessionId: vi.fn().mockReturnValue('dashscope-session-id'),
|
getSessionId: vi.fn().mockReturnValue('dashscope-session-id'),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const dashscopeGenerator = new OpenAIContentGenerator(
|
const dashscopeGenerator = new OpenAIContentGenerator(
|
||||||
@@ -2507,6 +2517,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
enableOpenAILogging: false,
|
enableOpenAILogging: false,
|
||||||
}),
|
}),
|
||||||
getSessionId: vi.fn().mockReturnValue('regular-session-id'),
|
getSessionId: vi.fn().mockReturnValue('regular-session-id'),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const regularGenerator = new OpenAIContentGenerator(
|
const regularGenerator = new OpenAIContentGenerator(
|
||||||
@@ -2552,6 +2563,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
enableOpenAILogging: false,
|
enableOpenAILogging: false,
|
||||||
}),
|
}),
|
||||||
getSessionId: vi.fn().mockReturnValue('other-session-id'),
|
getSessionId: vi.fn().mockReturnValue('other-session-id'),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const otherGenerator = new OpenAIContentGenerator(
|
const otherGenerator = new OpenAIContentGenerator(
|
||||||
@@ -2600,6 +2612,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
enableOpenAILogging: false,
|
enableOpenAILogging: false,
|
||||||
}),
|
}),
|
||||||
getSessionId: vi.fn().mockReturnValue('other-base-url-session-id'),
|
getSessionId: vi.fn().mockReturnValue('other-base-url-session-id'),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const otherBaseUrlGenerator = new OpenAIContentGenerator(
|
const otherBaseUrlGenerator = new OpenAIContentGenerator(
|
||||||
@@ -2648,6 +2661,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
enableOpenAILogging: false,
|
enableOpenAILogging: false,
|
||||||
}),
|
}),
|
||||||
getSessionId: vi.fn().mockReturnValue('streaming-session-id'),
|
getSessionId: vi.fn().mockReturnValue('streaming-session-id'),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const qwenGenerator = new OpenAIContentGenerator(
|
const qwenGenerator = new OpenAIContentGenerator(
|
||||||
@@ -2726,6 +2740,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
enableOpenAILogging: false,
|
enableOpenAILogging: false,
|
||||||
}),
|
}),
|
||||||
getSessionId: vi.fn().mockReturnValue('regular-streaming-session-id'),
|
getSessionId: vi.fn().mockReturnValue('regular-streaming-session-id'),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const regularGenerator = new OpenAIContentGenerator(
|
const regularGenerator = new OpenAIContentGenerator(
|
||||||
@@ -2799,6 +2814,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
enableOpenAILogging: false,
|
enableOpenAILogging: false,
|
||||||
}),
|
}),
|
||||||
getSessionId: vi.fn().mockReturnValue(undefined), // Undefined session ID
|
getSessionId: vi.fn().mockReturnValue(undefined), // Undefined session ID
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const qwenGenerator = new OpenAIContentGenerator(
|
const qwenGenerator = new OpenAIContentGenerator(
|
||||||
@@ -2852,6 +2868,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
enableOpenAILogging: false,
|
enableOpenAILogging: false,
|
||||||
}),
|
}),
|
||||||
getSessionId: vi.fn().mockReturnValue('no-base-url-session-id'),
|
getSessionId: vi.fn().mockReturnValue('no-base-url-session-id'),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const noBaseUrlGenerator = new OpenAIContentGenerator(
|
const noBaseUrlGenerator = new OpenAIContentGenerator(
|
||||||
@@ -2900,6 +2917,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
enableOpenAILogging: false,
|
enableOpenAILogging: false,
|
||||||
}),
|
}),
|
||||||
getSessionId: vi.fn().mockReturnValue('undefined-auth-session-id'),
|
getSessionId: vi.fn().mockReturnValue('undefined-auth-session-id'),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const undefinedAuthGenerator = new OpenAIContentGenerator(
|
const undefinedAuthGenerator = new OpenAIContentGenerator(
|
||||||
@@ -2945,6 +2963,7 @@ describe('OpenAIContentGenerator', () => {
|
|||||||
const undefinedConfig = {
|
const undefinedConfig = {
|
||||||
getContentGeneratorConfig: vi.fn().mockReturnValue(undefined), // Undefined config
|
getContentGeneratorConfig: vi.fn().mockReturnValue(undefined), // Undefined config
|
||||||
getSessionId: vi.fn().mockReturnValue('undefined-config-session-id'),
|
getSessionId: vi.fn().mockReturnValue('undefined-config-session-id'),
|
||||||
|
getCliVersion: vi.fn().mockReturnValue('1.0.0'),
|
||||||
} as unknown as Config;
|
} as unknown as Config;
|
||||||
|
|
||||||
const undefinedConfigGenerator = new OpenAIContentGenerator(
|
const undefinedConfigGenerator = new OpenAIContentGenerator(
|
||||||
|
|||||||
@@ -114,8 +114,7 @@ export class OpenAIContentGenerator implements ContentGenerator {
|
|||||||
timeoutConfig.maxRetries = contentGeneratorConfig.maxRetries;
|
timeoutConfig.maxRetries = contentGeneratorConfig.maxRetries;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set up User-Agent header (same format as contentGenerator.ts)
|
const version = config.getCliVersion() || 'unknown';
|
||||||
const version = process.env.CLI_VERSION || process.version;
|
|
||||||
const userAgent = `QwenCode/${version} (${process.platform}; ${process.arch})`;
|
const userAgent = `QwenCode/${version} (${process.platform}; ${process.arch})`;
|
||||||
|
|
||||||
// Check if using OpenRouter and add required headers
|
// Check if using OpenRouter and add required headers
|
||||||
|
|||||||
@@ -140,14 +140,14 @@ export class QwenLogger {
|
|||||||
return this.createRumEvent('exception', type, name, properties);
|
return this.createRumEvent('exception', type, name, properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
createRumPayload(): RumPayload {
|
async createRumPayload(): Promise<RumPayload> {
|
||||||
const version = process.env.CLI_VERSION || process.version;
|
const version = this.config?.getCliVersion() || 'unknown';
|
||||||
|
|
||||||
return {
|
return {
|
||||||
app: {
|
app: {
|
||||||
id: RUN_APP_ID,
|
id: RUN_APP_ID,
|
||||||
env: process.env.DEBUG ? 'dev' : 'prod',
|
env: process.env.DEBUG ? 'dev' : 'prod',
|
||||||
version,
|
version: version || 'unknown',
|
||||||
type: 'cli',
|
type: 'cli',
|
||||||
},
|
},
|
||||||
user: {
|
user: {
|
||||||
@@ -190,7 +190,7 @@ export class QwenLogger {
|
|||||||
|
|
||||||
this.isFlushInProgress = true;
|
this.isFlushInProgress = true;
|
||||||
|
|
||||||
const rumPayload = this.createRumPayload();
|
const rumPayload = await this.createRumPayload();
|
||||||
const flushFn = () =>
|
const flushFn = () =>
|
||||||
new Promise<Buffer>((resolve, reject) => {
|
new Promise<Buffer>((resolve, reject) => {
|
||||||
const body = safeJsonStringify(rumPayload);
|
const body = safeJsonStringify(rumPayload);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "qwen-code-vscode-ide-companion",
|
"name": "qwen-code-vscode-ide-companion",
|
||||||
"displayName": "Qwen Code Companion",
|
"displayName": "Qwen Code Companion",
|
||||||
"description": "Enable Qwen Code with direct access to your VS Code workspace.",
|
"description": "Enable Qwen Code with direct access to your VS Code workspace.",
|
||||||
"version": "0.0.4",
|
"version": "0.0.6",
|
||||||
"publisher": "qwenlm",
|
"publisher": "qwenlm",
|
||||||
"icon": "assets/icon.png",
|
"icon": "assets/icon.png",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|||||||
Reference in New Issue
Block a user