Setup.sh v3.0.3: onboarding pre-fill + header bump
This commit is contained in:
parent
ddcb53fe95
commit
656460e13e
@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# ============================================================
|
||||
# Bookworm Portable - macOS Setup (从 boot 仓库内运行)
|
||||
# Version: 2.2.4
|
||||
# Version: 3.0.3
|
||||
#
|
||||
# 用法: cd ~/bookworm-boot && bash Bookworm-Setup.sh
|
||||
#
|
||||
@ -429,11 +429,6 @@ if [ -z "$ANTHROPIC_API_KEY" ]; then
|
||||
rm -f "$HOME/.zshrc.bak" "$HOME/.bashrc.bak" 2>/dev/null || true
|
||||
export ANTHROPIC_API_KEY="$SK_KEY"
|
||||
export ANTHROPIC_BASE_URL="https://bww.letcareme.com"
|
||||
# v3.0.2: 预填 ~/.claude.json 跳过 Claude Code 2.0.1 登录选择页 (两选项都走 anthropic.com OAuth, 国内不通)
|
||||
CLAUDE_JSON="$HOME/.claude.json"
|
||||
KEY_PREFIX="${SK_KEY:0:20}"
|
||||
printf '{"hasCompletedOnboarding":true,"hasSeenWelcome":true,"bypassPermissionsModeAccepted":true,"customApiKeyResponses":{"approved":["%s"],"rejected":[]},"numStartups":5,"projects":{}}' "$KEY_PREFIX" > "$CLAUDE_JSON" 2>/dev/null && ok "Claude Code onboarding 已预填"
|
||||
chmod 600 "$CLAUDE_JSON" 2>/dev/null || true
|
||||
# 存 Keychain 本日免密
|
||||
security add-generic-password -s "$KEYCHAIN_SERVICE" -a "$KEYCHAIN_ACCOUNT" -w "ANTHROPIC_API_KEY=$SK_KEY
|
||||
ANTHROPIC_BASE_URL=https://bww.letcareme.com
|
||||
@ -527,6 +522,30 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
# ─── v3.0.2: 预填 ~/.claude.json 跳过 Claude Code 2.0.1 的登录选择页 ───
|
||||
# Win auto-setup.ps1:1361-1369 等价逻辑: 两选项都走 anthropic.com OAuth, 国内不通
|
||||
# 预填 hasCompletedOnboarding + customApiKeyResponses.approved 直接进主界面
|
||||
if [ -n "$ANTHROPIC_API_KEY" ] && command -v node &>/dev/null; then
|
||||
BW_KEY_PREFIX="${ANTHROPIC_API_KEY:0:20}" node -e '
|
||||
const fs = require("fs"), p = require("path");
|
||||
const H = process.env.HOME || process.env.USERPROFILE;
|
||||
const f = p.join(H, ".claude.json");
|
||||
const prefix = process.env.BW_KEY_PREFIX || "";
|
||||
let d = {};
|
||||
try { d = JSON.parse(fs.readFileSync(f, "utf8")); } catch (e) {}
|
||||
d.hasCompletedOnboarding = true;
|
||||
d.hasSeenWelcome = true;
|
||||
d.bypassPermissionsModeAccepted = true;
|
||||
d.customApiKeyResponses = d.customApiKeyResponses || { approved: [], rejected: [] };
|
||||
if (prefix && !d.customApiKeyResponses.approved.includes(prefix)) {
|
||||
d.customApiKeyResponses.approved.push(prefix);
|
||||
}
|
||||
if (d.numStartups === undefined) d.numStartups = 5;
|
||||
if (!d.projects) d.projects = {};
|
||||
fs.writeFileSync(f, JSON.stringify(d, null, 2));
|
||||
' 2>/dev/null && success "Claude Code onboarding 已预填 (跳过 2.0.1 登录选择页)" || warn ".claude.json onboarding 预填失败 (首次启动可能需手工过登录画面)"
|
||||
fi
|
||||
|
||||
# ── MCP 注入到 ~/.claude.json (Claude Code v2.1+ 正确位置) ──
|
||||
INJECT_SCRIPT="$CLAUDE_DIR/inject-mcp.js"
|
||||
MCP_INJECTED=false
|
||||
|
||||
Loading…
Reference in New Issue
Block a user