refactor(vscode-ide-companion/cli): consolidate CLI detection and version management

- Replace separate CliDetector, CliVersionChecker, and CliVersionManager classes with unified CliManager
- Remove redundant code and simplify CLI detection logic
- Maintain all existing functionality while improving code organization
- Update imports in dependent files to use CliManager

This change reduces complexity by consolidating CLI-related functionality into a single manager class.
This commit is contained in:
yiliang114
2025-12-13 20:42:59 +08:00
parent 90fc4c33f0
commit 61ce586117
13 changed files with 527 additions and 721 deletions

View File

@@ -8,12 +8,11 @@ import * as vscode from 'vscode';
import { QwenAgentManager } from '../services/qwenAgentManager.js';
import { ConversationStore } from '../services/conversationStore.js';
import type { AcpPermissionRequest } from '../types/acpTypes.js';
import { CliDetector } from '../cli/cliDetector.js';
import { CliManager } from '../cli/cliManager.js';
import { PanelManager } from '../webview/PanelManager.js';
import { MessageHandler } from '../webview/MessageHandler.js';
import { WebViewContent } from '../webview/WebViewContent.js';
import { CliInstaller } from '../cli/cliInstaller.js';
import { CliVersionChecker } from '../cli/cliVersionChecker.js';
import { getFileName } from './utils/webviewUtils.js';
import { type ApprovalModeValue } from '../types/approvalModeValueTypes.js';
import { isAuthenticationRequiredError } from '../utils/authErrors.js';
@@ -566,7 +565,7 @@ export class WebViewProvider {
);
// Check if CLI is installed before attempting to connect
const cliDetection = await CliDetector.detectQwenCli();
const cliDetection = await CliManager.detectQwenCli();
if (!cliDetection.isInstalled) {
console.log(
@@ -590,7 +589,7 @@ export class WebViewProvider {
console.log('[WebViewProvider] CLI version:', cliDetection.version);
// Perform version check with throttled notifications
const versionChecker = CliVersionChecker.getInstance(this.context);
const versionChecker = CliManager.getInstance(this.context);
await versionChecker.checkCliVersion(true); // Silent check to avoid popup spam
try {
@@ -674,7 +673,6 @@ export class WebViewProvider {
return vscode.window.withProgress(
{
location: vscode.ProgressLocation.Notification,
title: 'Logging in to Qwen Code... ',
cancellable: false,
},
async (progress) => {