mirror of
https://github.com/tiennm99/ccs.git
synced 2026-10-13 00:14:15 +00:00
feat(agy): disable thinking toggle for claude models via antigravity
Claude models routed through Google's Antigravity protocol don't support the thinking toggle due to protocol conversion limitations. Changes: - Add alwaysThinkingEnabled: false when selecting Claude models - Show warning about thinking toggle limitation after model selection - Reference GitHub issue #415 for technical details
This commit is contained in:
1 parent
26d72cfa5b
commit
f5a1b81e55
1 file changed
+26
-2
@@ -11,7 +11,15 @@ import { InteractivePrompt } from '../utils/prompt';
|
|||||||
import { getProviderCatalog, supportsModelConfig, ModelEntry } from './model-catalog';
|
import { getProviderCatalog, supportsModelConfig, ModelEntry } from './model-catalog';
|
||||||
import { getProviderSettingsPath, getClaudeEnvVars } from './config-generator';
|
import { getProviderSettingsPath, getClaudeEnvVars } from './config-generator';
|
||||||
import { CLIProxyProvider } from './types';
|
import { CLIProxyProvider } from './types';
|
||||||
import { initUI, color, bold, dim, ok, info, header } from '../utils/ui';
|
import { initUI, color, bold, dim, ok, info, warn, header } from '../utils/ui';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if model is a Claude model routed via Antigravity
|
||||||
|
* These models don't support thinking toggle due to protocol limitations
|
||||||
|
*/
|
||||||
|
function isClaudeModel(modelId: string): boolean {
|
||||||
|
return modelId.includes('claude');
|
||||||
|
}
|
||||||
|
|
||||||
/** CCS directory */
|
/** CCS directory */
|
||||||
const CCS_DIR = path.join(process.env.HOME || process.env.USERPROFILE || '', '.ccs');
|
const CCS_DIR = path.join(process.env.HOME || process.env.USERPROFILE || '', '.ccs');
|
||||||
@@ -121,7 +129,9 @@ export async function configureProviderModel(
|
|||||||
const baseEnv = getClaudeEnvVars(provider);
|
const baseEnv = getClaudeEnvVars(provider);
|
||||||
|
|
||||||
// Build settings with selected model
|
// Build settings with selected model
|
||||||
const settings = {
|
// For Claude models via Antigravity: disable thinking toggle (protocol limitation)
|
||||||
|
const isClaude = isClaudeModel(selectedModel);
|
||||||
|
const settings: Record<string, unknown> = {
|
||||||
env: {
|
env: {
|
||||||
...baseEnv,
|
...baseEnv,
|
||||||
ANTHROPIC_MODEL: selectedModel,
|
ANTHROPIC_MODEL: selectedModel,
|
||||||
@@ -131,6 +141,12 @@ export async function configureProviderModel(
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Claude models via Antigravity don't support thinking toggle
|
||||||
|
// Google's protocol conversion layer doesn't properly handle tool schemas
|
||||||
|
if (isClaude) {
|
||||||
|
settings.alwaysThinkingEnabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
// Ensure CCS directory exists
|
// Ensure CCS directory exists
|
||||||
if (!fs.existsSync(CCS_DIR)) {
|
if (!fs.existsSync(CCS_DIR)) {
|
||||||
fs.mkdirSync(CCS_DIR, { recursive: true });
|
fs.mkdirSync(CCS_DIR, { recursive: true });
|
||||||
@@ -146,6 +162,14 @@ export async function configureProviderModel(
|
|||||||
console.error('');
|
console.error('');
|
||||||
console.error(ok(`Model set to: ${bold(displayName)}`));
|
console.error(ok(`Model set to: ${bold(displayName)}`));
|
||||||
console.error(dim(` Config saved: ${settingsPath}`));
|
console.error(dim(` Config saved: ${settingsPath}`));
|
||||||
|
|
||||||
|
// Show warning for Claude models about thinking limitation
|
||||||
|
if (isClaude) {
|
||||||
|
console.error('');
|
||||||
|
console.error(warn('Claude models via Antigravity have limited thinking support.'));
|
||||||
|
console.error(dim(' Thinking toggle (Tab) disabled - Google protocol limitation.'));
|
||||||
|
console.error(dim(' See: https://github.com/router-for-me/CLIProxyAPI/issues/415'));
|
||||||
|
}
|
||||||
console.error('');
|
console.error('');
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in new issue
Block a user