feat(webui): add MCP CLI toggle and Gemini [1m] suffix settings

- Add ENABLE_EXPERIMENTAL_MCP_CLI toggle in Claude CLI settings (default: true)

- Add Gemini 1M Context Mode toggle for [1m] suffix (default: true)

- Auto-apply [1m] suffix to existing Gemini model configurations

- Add i18n translations for both features (English and Chinese)
This commit is contained in:
Wha1eChai
2026-01-09 18:34:24 +08:00
parent 169e18402f
commit 07a9586aee
8 changed files with 117 additions and 0 deletions

View File

@@ -406,6 +406,53 @@
</div>
</div>
<!-- MCP CLI Experimental Mode -->
<div class="card bg-space-900/30 border border-space-border/50 p-5">
<div class="flex items-center justify-between">
<div class="flex flex-col gap-1">
<span class="text-sm font-medium transition-colors"
:class="config.env.ENABLE_EXPERIMENTAL_MCP_CLI === 'true' ? 'text-neon-green' : 'text-gray-300'"
x-text="$store.global.t('mcpCliExperimental')">Experimental MCP CLI</span>
<span class="text-[11px] text-gray-500" x-text="$store.global.t('mcpCliDesc')">
Enables experimental MCP integration for reliable tool usage with reduced context consumption.
</span>
</div>
<label class="relative inline-flex items-center cursor-pointer">
<input type="checkbox" class="sr-only peer"
:checked="config.env.ENABLE_EXPERIMENTAL_MCP_CLI === 'true'"
@change="config.env.ENABLE_EXPERIMENTAL_MCP_CLI = $event.target.checked ? 'true' : 'false'">
<div
class="w-9 h-5 bg-space-800 peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-gray-600 after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-neon-green peer-checked:after:bg-white">
</div>
</label>
</div>
</div>
<!-- Gemini 1M Context Suffix Toggle -->
<div class="card bg-space-900/30 border border-space-border/50 p-5">
<div class="flex items-center justify-between">
<div class="flex flex-col gap-1">
<span class="text-sm font-medium transition-colors"
:class="gemini1mSuffix ? 'text-neon-green' : 'text-gray-300'"
x-text="$store.global.t('gemini1mMode')">Gemini 1M Context Mode</span>
<span class="text-[11px] text-gray-500" x-text="$store.global.t('gemini1mDesc')">
Appends [1m] suffix to Gemini models for 1M context window support.
</span>
<span class="text-[10px] text-yellow-500/80" x-text="$store.global.t('gemini1mWarning')">
⚠ Large context may reduce Gemini-3-Pro performance.
</span>
</div>
<label class="relative inline-flex items-center cursor-pointer">
<input type="checkbox" class="sr-only peer"
:checked="gemini1mSuffix"
@change="toggleGemini1mSuffix($event.target.checked)">
<div
class="w-9 h-5 bg-space-800 peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-gray-600 after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-neon-green peer-checked:after:bg-white">
</div>
</label>
</div>
</div>
<div class="flex justify-end pt-2">
<button class="btn btn-sm bg-neon-purple hover:bg-purple-600 border-none text-white px-6 gap-2"
@click="saveClaudeConfig" :disabled="loading">