@@ -119,20 +119,35 @@ else
119119 exit 1
120120fi
121121
122- # 显示授权链接(支持 OSC 8 终端超链接,可直接点击打开浏览器)
122+ # 显示授权链接
123123echo " "
124124echo -e " ${BLUE} ========================================${NC} "
125125echo -e " ${BLUE} 请在浏览器中打开以下链接完成授权:${NC} "
126126echo -e " ${BLUE} ========================================${NC} "
127127echo " "
128- # OSC 8 超链接格式:\e]8;;URL\e\\显示文本\e]8;;\e\\
129- # 支持 iTerm2, VS Code Terminal, Wezterm, GNOME Terminal, Windows Terminal 等
130- # 不支持的终端会优雅降级,只显示文本
131- echo -e " \033]8;;${AUTH_URL} \033\\ ${YELLOW}${AUTH_URL}${NC} \033]8;;\033\\ "
128+ # 纯文本单独一行输出,不附带任何 ANSI/OSC 转义序列。
129+ # 无论是真实终端、日志采集,还是 AI Agent(如小艺 claw 等)抓取 stdout 文本
130+ # 再转发展示给用户,都能拿到一个完整、干净、可直接复制/点击的 URL。
131+ # 注意:此前版本使用 OSC 8 超链接转义序列(\e]8;;URL\e\\显示文本\e]8;;\e\\)
132+ # 在同一行内嵌入了两次 URL,在非真实终端环境(如部分 Agent 的输出解析逻辑)
133+ # 下容易被截断或错误拼接,导致用户拿到的链接不可用。
134+ echo " ${AUTH_URL} "
132135echo " "
136+ # 提供给 AI Agent 的 Markdown 格式,便于 Agent 直接抓取并放到代码块外
137+ echo -e " ${YELLOW} Agent请提取以下Markdown格式回复给用户(需放在代码块外):${NC} "
138+ echo " [👉 点击此处打开授权页面](${AUTH_URL} )"
139+ echo " "
140+ # 仅在真实交互式终端下,额外附加 OSC 8 可点击版本作为增强体验
141+ # (支持 iTerm2、VS Code Terminal、Wezterm、GNOME Terminal、Windows Terminal 等)。
142+ # 当 stdout 被管道/重定向或被 Agent 捕获时 [ -t 1 ] 为 false,不会输出该转义
143+ # 序列,从而避免被非终端场景的文本解析逻辑误处理。
144+ if [ -t 1 ]; then
145+ echo -e " \033]8;;${AUTH_URL} \033\\ ${YELLOW} 👆 点击此处直接打开授权页面(如终端支持)${NC} \033]8;;\033\\ "
146+ echo " "
147+ fi
133148echo -e " ${BLUE} ========================================${NC} "
134149echo -e " ${YELLOW} 提示:${NC} "
135- echo -e " ${YELLOW} 1. 可直接点击上方链接打开浏览器(如终端支持 )${NC} "
150+ echo -e " ${YELLOW} 1. 可直接复制上方链接到浏览器打开(支持的终端也可直接点击 )${NC} "
136151echo -e " ${YELLOW} 2. 链接有效期为 10 分钟${NC} "
137152echo -e " ${YELLOW} 3. 授权成功后,浏览器会显示一个 32 位授权码${NC} "
138153echo -e " ${YELLOW} 4. 请复制授权码并粘贴到下方${NC} "
@@ -180,4 +195,4 @@ if bdpan whoami &> /dev/null; then
180195else
181196 log_error " 登录失败,请检查授权码是否正确"
182197 exit 1
183- fi
198+ fi
0 commit comments