Private
Public Access
1
0

feat: 增强三个 CLI 工具配置脚本

- Gemini CLI: 添加 GEMINI_MODEL 环境变量、settings.json 输出及备份逻辑
- Codex: 修复模型名称一致性 (gpt-5-codex)、添加 auth.json 备份逻辑
- Claude Code: 添加 VSCode 插件 config.json 配置支持
- CLAUDE.md: 重构文档,添加三个工具配置差异表

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-11 18:15:54 +08:00
parent badf8e6bb6
commit 2314140bce
9 changed files with 292 additions and 497 deletions

View File

@@ -86,6 +86,13 @@ function Backup-Settings {
Copy-Item -Path $CodexConfigFile -Destination $backupFile
Write-Info "Backed up existing settings to: $backupFile"
}
$authJsonPath = "$CodexConfigDir\auth.json"
if (Test-Path $authJsonPath) {
$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$backupFile = "$authJsonPath.backup.$timestamp"
Copy-Item -Path $authJsonPath -Destination $backupFile
Write-Info "Backed up existing settings to: $backupFile"
}
}
# Function to create settings directory
@@ -171,12 +178,20 @@ model_reasoning_effort = "high"
name = "xcodecli"
base_url = "$BaseUrl/v1"
wire_api = "responses"
env_key = "XCODECLI_API_KEY"
env_key = "OPENAI_API_KEY"
"@
$authJson = @{
OPENAI_API_KEY = $ApiKey
}
try {
Set-Content -Path $CodexConfigFile -Value $config -Encoding UTF8
Write-Success "Codex configuration written to: $CodexConfigFile"
$authJsonPath = "$CodexConfigDir\auth.json"
$authJson | ConvertTo-Json | Set-Content -Path $authJsonPath -Encoding UTF8
Write-Success "Codex auth file written to: $authJsonPath"
return $true
}
catch {
@@ -195,23 +210,23 @@ function Show-Settings {
} else {
Write-Info "No existing Codex configuration found."
}
Write-Host ""
Write-Info "Current environment variables:"
Write-Host "----------------------------------------"
$apirouterKey = [Environment]::GetEnvironmentVariable("XCODECLI_API_KEY", [EnvironmentVariableTarget]::User)
if ($apirouterKey) {
$maskedKey = if ($apirouterKey.Length -gt 12) {
"$($apirouterKey.Substring(0, 8))...$($apirouterKey.Substring($apirouterKey.Length - 4))"
} else {
"$($apirouterKey.Substring(0, [Math]::Min(4, $apirouterKey.Length)))..."
$authJsonPath = "$CodexConfigDir\auth.json"
if (Test-Path $authJsonPath) {
Write-Host ""
Write-Info "Auth file: $authJsonPath"
Write-Host "----------------------------------------"
$authContent = Get-Content $authJsonPath -Raw | ConvertFrom-Json
if ($authContent.OPENAI_API_KEY) {
$maskedKey = if ($authContent.OPENAI_API_KEY.Length -gt 12) {
"$($authContent.OPENAI_API_KEY.Substring(0, 8))...$($authContent.OPENAI_API_KEY.Substring($authContent.OPENAI_API_KEY.Length - 4))"
} else {
"$($authContent.OPENAI_API_KEY.Substring(0, [Math]::Min(4, $authContent.OPENAI_API_KEY.Length)))..."
}
Write-Info "OPENAI_API_KEY: $maskedKey"
}
Write-Info "XCODECLI_API_KEY: $maskedKey"
} else {
Write-Info "XCODECLI_API_KEY: (not set)"
Write-Host "----------------------------------------"
}
Write-Host "----------------------------------------"
}
# Main function
@@ -301,31 +316,12 @@ function Main {
# Create new settings
if (New-Settings -BaseUrl $BaseUrl -ApiKey $ApiKey) {
Write-Host ""
# Also set environment variables for Windows
Write-Info "Setting environment variables..."
try {
# Set user environment variables (persistent across sessions)
[Environment]::SetEnvironmentVariable("XCODECLI_API_KEY", $ApiKey, [EnvironmentVariableTarget]::User)
# Also set for current session
$env:XCODECLI_API_KEY = $ApiKey
Write-Success "Environment variables set successfully"
}
catch {
Write-Warning "Failed to set environment variables: $($_.Exception.Message)"
Write-Info "You may need to set them manually:"
Write-Info " XCODECLI_API_KEY=$ApiKey"
}
Write-Host ""
Write-Success "Codex has been configured successfully!"
Write-Info "You can now use Codex with your XCodeCLI API router."
Write-Info ""
Write-Info "Configuration file location: $CodexConfigFile"
Write-Info "Environment variable XCODECLI_API_KEY has been set"
Write-Info "Configuration file: $CodexConfigFile"
Write-Info "Auth file: $CodexConfigDir\auth.json"
if (Test-Path $CodexConfigFile) {
Write-Host ""