mirror of
https://github.com/tiennm99/ccs.git
synced 2026-09-03 08:18:23 +00:00
refactor: rename CLIProxyAPI to CLIProxy Plus across UI and CLI
- Update cliproxy-command.ts status output and install messages - Update help-command.ts with Plus branding and new kiro/copilot providers - Update doctor.ts header to show CLIPROXY PLUS - Update cliproxy-check.ts binary check output - Update proxy-status-widget.tsx label to CLIProxy Plus - Point release URLs to CLIProxyAPIPlus repository
This commit is contained in:
@@ -423,7 +423,7 @@ async function showStatus(verbose: boolean): Promise<void> {
|
|||||||
const status = getBinaryStatus();
|
const status = getBinaryStatus();
|
||||||
|
|
||||||
console.log('');
|
console.log('');
|
||||||
console.log(color('CLIProxyAPI Status', 'primary'));
|
console.log(color('CLIProxy Plus Status', 'primary'));
|
||||||
console.log('');
|
console.log('');
|
||||||
|
|
||||||
if (status.installed) {
|
if (status.installed) {
|
||||||
@@ -471,13 +471,13 @@ async function showStatus(verbose: boolean): Promise<void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function handleInstallVersion(version: string, verbose: boolean): Promise<void> {
|
async function handleInstallVersion(version: string, verbose: boolean): Promise<void> {
|
||||||
console.log(info(`Installing CLIProxyAPI v${version}...`));
|
console.log(info(`Installing CLIProxy Plus v${version}...`));
|
||||||
console.log('');
|
console.log('');
|
||||||
|
|
||||||
const result = await installVersion(version, verbose);
|
const result = await installVersion(version, verbose);
|
||||||
if (!result.success) {
|
if (!result.success) {
|
||||||
console.error('');
|
console.error('');
|
||||||
console.error(fail(`Failed to install CLIProxyAPI v${version}`));
|
console.error(fail(`Failed to install CLIProxy Plus v${version}`));
|
||||||
console.error(` ${result.error}`);
|
console.error(` ${result.error}`);
|
||||||
console.error('');
|
console.error('');
|
||||||
console.error('Possible causes:');
|
console.error('Possible causes:');
|
||||||
@@ -486,12 +486,12 @@ async function handleInstallVersion(version: string, verbose: boolean): Promise<
|
|||||||
console.error(' 3. GitHub API rate limiting');
|
console.error(' 3. GitHub API rate limiting');
|
||||||
console.error('');
|
console.error('');
|
||||||
console.error('Check available versions at:');
|
console.error('Check available versions at:');
|
||||||
console.error(' https://github.com/router-for-me/CLIProxyAPI/releases');
|
console.error(' https://github.com/router-for-me/CLIProxyAPIPlus/releases');
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('');
|
console.log('');
|
||||||
console.log(ok(`CLIProxyAPI v${version} installed (pinned)`));
|
console.log(ok(`CLIProxy Plus v${version} installed (pinned)`));
|
||||||
console.log('');
|
console.log('');
|
||||||
console.log(dim('This version will be used until you run:'));
|
console.log(dim('This version will be used until you run:'));
|
||||||
console.log(
|
console.log(
|
||||||
@@ -501,7 +501,7 @@ async function handleInstallVersion(version: string, verbose: boolean): Promise<
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function handleInstallLatest(verbose: boolean): Promise<void> {
|
async function handleInstallLatest(verbose: boolean): Promise<void> {
|
||||||
console.log(info('Fetching latest CLIProxyAPI version...'));
|
console.log(info('Fetching latest CLIProxy Plus version...'));
|
||||||
|
|
||||||
const result = await installLatest(verbose);
|
const result = await installLatest(verbose);
|
||||||
if (!result.success) {
|
if (!result.success) {
|
||||||
@@ -515,7 +515,7 @@ async function handleInstallLatest(verbose: boolean): Promise<void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
console.log('');
|
console.log('');
|
||||||
console.log(ok(`CLIProxyAPI updated to v${result.version}`));
|
console.log(ok(`CLIProxy Plus updated to v${result.version}`));
|
||||||
console.log(dim('Auto-update is now enabled.'));
|
console.log(dim('Auto-update is now enabled.'));
|
||||||
console.log('');
|
console.log('');
|
||||||
}
|
}
|
||||||
@@ -569,7 +569,7 @@ async function showHelp(): Promise<void> {
|
|||||||
console.log(subheader('Notes:'));
|
console.log(subheader('Notes:'));
|
||||||
console.log(` Default fallback version: ${color(CLIPROXY_FALLBACK_VERSION, 'info')}`);
|
console.log(` Default fallback version: ${color(CLIPROXY_FALLBACK_VERSION, 'info')}`);
|
||||||
console.log(
|
console.log(
|
||||||
` Releases: ${color('https://github.com/router-for-me/CLIProxyAPI/releases', 'path')}`
|
` Releases: ${color('https://github.com/router-for-me/CLIProxyAPIPlus/releases', 'path')}`
|
||||||
);
|
);
|
||||||
console.log('');
|
console.log('');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -150,9 +150,9 @@ Claude Code Profile & Model Switcher`.trim();
|
|||||||
// MAJOR SECTION 3: CLI Proxy (OAuth Providers)
|
// MAJOR SECTION 3: CLI Proxy (OAuth Providers)
|
||||||
// ═══════════════════════════════════════════════════════════════════════════
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
printMajorSection(
|
printMajorSection(
|
||||||
'CLI Proxy (OAuth Providers)',
|
'CLI Proxy Plus (OAuth Providers)',
|
||||||
[
|
[
|
||||||
'Zero-config OAuth authentication via CLIProxyAPI',
|
'Zero-config OAuth authentication via CLIProxy Plus',
|
||||||
'First run: Browser opens for authentication, then model selection',
|
'First run: Browser opens for authentication, then model selection',
|
||||||
'Settings: ~/.ccs/{provider}.settings.json (created after auth)',
|
'Settings: ~/.ccs/{provider}.settings.json (created after auth)',
|
||||||
],
|
],
|
||||||
@@ -161,6 +161,8 @@ Claude Code Profile & Model Switcher`.trim();
|
|||||||
['ccs codex', 'OpenAI Codex (gpt-5.1-codex-max)'],
|
['ccs codex', 'OpenAI Codex (gpt-5.1-codex-max)'],
|
||||||
['ccs agy', 'Antigravity (Claude/Gemini models)'],
|
['ccs agy', 'Antigravity (Claude/Gemini models)'],
|
||||||
['ccs qwen', 'Qwen Code (qwen3-coder)'],
|
['ccs qwen', 'Qwen Code (qwen3-coder)'],
|
||||||
|
['ccs kiro', 'Kiro (AWS CodeWhisperer Claude models)'],
|
||||||
|
['ccs copilot', 'GitHub Copilot (GPT/Claude/Gemini)'],
|
||||||
['', ''], // Spacer
|
['', ''], // Spacer
|
||||||
['ccs <provider> --auth', 'Authenticate only'],
|
['ccs <provider> --auth', 'Authenticate only'],
|
||||||
['ccs <provider> --auth --add', 'Add another account'],
|
['ccs <provider> --auth --add', 'Add another account'],
|
||||||
@@ -234,10 +236,10 @@ Claude Code Profile & Model Switcher`.trim();
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
// CLI Proxy management
|
// CLI Proxy management
|
||||||
printSubSection('CLI Proxy Management', [
|
printSubSection('CLI Proxy Plus Management', [
|
||||||
['ccs cliproxy', 'Show CLIProxyAPI status and version'],
|
['ccs cliproxy', 'Show CLIProxy Plus status and version'],
|
||||||
['ccs cliproxy --help', 'Full CLIProxy management help'],
|
['ccs cliproxy --help', 'Full CLIProxy Plus management help'],
|
||||||
['ccs cliproxy --install <ver>', 'Install specific version (e.g., 6.5.53)'],
|
['ccs cliproxy --install <ver>', 'Install specific version (e.g., 6.6.6)'],
|
||||||
['ccs cliproxy --latest', 'Update to latest version'],
|
['ccs cliproxy --latest', 'Update to latest version'],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* CLIProxy Health Checks - Binary, config, auth, and port status
|
* CLIProxy Plus Health Checks - Binary, config, auth, and port status
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
@@ -21,28 +21,26 @@ import { HealthCheck, IHealthChecker, createSpinner } from './types';
|
|||||||
const ora = createSpinner();
|
const ora = createSpinner();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check CLIProxy binary installation
|
* Check CLIProxy Plus binary installation
|
||||||
*/
|
*/
|
||||||
export class CLIProxyBinaryChecker implements IHealthChecker {
|
export class CLIProxyBinaryChecker implements IHealthChecker {
|
||||||
name = 'CLIProxy Binary';
|
name = 'CLIProxy Plus Binary';
|
||||||
|
|
||||||
run(results: HealthCheck): void {
|
run(results: HealthCheck): void {
|
||||||
const spinner = ora('Checking CLIProxy binary').start();
|
const spinner = ora('Checking CLIProxy Plus binary').start();
|
||||||
|
|
||||||
if (isCLIProxyInstalled()) {
|
if (isCLIProxyInstalled()) {
|
||||||
const binaryPath = getCLIProxyPath();
|
const binaryPath = getCLIProxyPath();
|
||||||
const installedVersion = getInstalledCliproxyVersion();
|
const installedVersion = getInstalledCliproxyVersion();
|
||||||
spinner.succeed();
|
spinner.succeed();
|
||||||
console.log(` ${ok('CLIProxy Binary'.padEnd(22))} v${installedVersion}`);
|
console.log(` ${ok('CLIProxy Plus'.padEnd(22))} v${installedVersion}`);
|
||||||
results.addCheck('CLIProxy Binary', 'success', undefined, undefined, {
|
results.addCheck('CLIProxy Binary', 'success', undefined, undefined, {
|
||||||
status: 'OK',
|
status: 'OK',
|
||||||
info: `v${installedVersion} (${binaryPath})`,
|
info: `v${installedVersion} (${binaryPath})`,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
spinner.info();
|
spinner.info();
|
||||||
console.log(
|
console.log(` ${info('CLIProxy Plus'.padEnd(22))} Not installed (downloads on first use)`);
|
||||||
` ${info('CLIProxy Binary'.padEnd(22))} Not installed (downloads on first use)`
|
|
||||||
);
|
|
||||||
results.addCheck(
|
results.addCheck(
|
||||||
'CLIProxy Binary',
|
'CLIProxy Binary',
|
||||||
'success',
|
'success',
|
||||||
|
|||||||
@@ -66,8 +66,8 @@ class Doctor {
|
|||||||
runSymlinkChecks(this.results);
|
runSymlinkChecks(this.results);
|
||||||
console.log('');
|
console.log('');
|
||||||
|
|
||||||
// Group 6: CLIProxy (OAuth profiles)
|
// Group 6: CLIProxy Plus (OAuth profiles)
|
||||||
console.log(header('CLIPROXY (OAUTH PROFILES)'));
|
console.log(header('CLIPROXY PLUS (OAUTH PROFILES)'));
|
||||||
await runCLIProxyChecks(this.results);
|
await runCLIProxyChecks(this.results);
|
||||||
console.log('');
|
console.log('');
|
||||||
|
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ export function ProxyStatusWidget() {
|
|||||||
isRunning ? 'bg-green-500 animate-pulse' : 'bg-muted-foreground/30'
|
isRunning ? 'bg-green-500 animate-pulse' : 'bg-muted-foreground/30'
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
<span className="text-sm font-medium">CLIProxy Service</span>
|
<span className="text-sm font-medium">CLIProxy Plus</span>
|
||||||
{hasUpdate && (
|
{hasUpdate && (
|
||||||
<Badge
|
<Badge
|
||||||
variant="secondary"
|
variant="secondary"
|
||||||
|
|||||||
Reference in New Issue
Block a user