Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
12 commits
Select commit Hold shift + click to select a range
85b3104
新增:接入「AtomCode」(AtomGit / GitCode)—— OpenAI 同方言直通转发 + 滚动次数额度 + 轮换续期,账…
shadyrispy Oct 17, 2026
6ca2a77
新增:AtomCode 接入「服务端中介的轮询」网页登录 —— 授权回调由代理终结、不回到本机,网关轮询取令牌
shadyrispy Oct 17, 2026
38bf815
新增:AtomCode 的「签到」= 按需领取免费 CodingPlan(挂进签到链,逐账号每天一次)
shadyrispy Oct 17, 2026
6b7f15b
修复:AtomCode 读不到额度窗口时不再回 `available: 0` —— 那会被限额判定当成「余额为 0」,账号被标成余额不足/已跳过
shadyrispy Oct 17, 2026
bcb15d9
补齐:多语言词典产物(ui/i18n/**)—— 改了 i18n-src 却没重建产物,CI 的 frontend-artifacts 判…
shadyrispy Oct 17, 2026
f75ff37
新增:接入「LobsterAI」(网易有道「有道龙虾」)—— OpenAI 原生直通转发 + loopback 网页登录 + 每日活动签到
shadyrispy Oct 17, 2026
1ebc938
新增:流式记账补上「已下发字节数」与「上游 EOF 无收尾帧」提示
shadyrispy Oct 17, 2026
91f7891
新增:请求详情的尝试明细补「已下发」列
shadyrispy Oct 17, 2026
827bb34
修复:LobsterAI 的 chat 请求漏发 Content-Type —— 上游按「鉴权之后」的 HTTP 500 拒绝
shadyrispy Oct 17, 2026
9390257
修复:LobsterAI 签到稳定 404 —— 活动上下文 URL 漏了 /context 一段
shadyrispy Oct 17, 2026
8b52aea
优化:网页登录的「粘贴回调地址」框改成**兜底**,不再一上来就弹
shadyrispy Oct 17, 2026
7b9eaa6
补齐:LobsterAI 的「粘贴回调地址」兜底两端
shadyrispy Oct 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions desktop-tauri/i18n/i18n-src/en/add-account.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"Anthropic 兼容端点在 https://api.deepseek.com/anthropic(协议换 anthropic 时填它)": "The Anthropic-compatible endpoint is https://api.deepseek.com/anthropic (fill it in when you switch the protocol to anthropic)",
"Anthropic 协议填根地址,不要带 /v1": "For the Anthropic protocol, use the root URL without /v1",
"Antigravity": "Antigravity",
"AtomCode": "AtomCode",
"AutoClaw 国内版": "AutoClaw China edition",
"AutoClaw 国际版": "AutoClaw International edition",
"BDUSS 必填;请粘贴**完整 Cookie**(Cookie 编辑器一键导出即可)—— 其中 **PTOKEN 必须保留**,网关要用它向百度换发 KukuAI 业务会话令牌,缺了它模型刷新会报「未登录」。支持整段 Cookie 头、Cookie 编辑器导出的 JSON 数组,或 {BDUSS, STOKEN} 对象。KukuAI 没有刷新机制,登录态过期后重新粘贴即可。": "BDUSS is required; paste the **full Cookie** (a Cookie editor can export it in one click) — the **PTOKEN must be kept**, as the gateway uses it to exchange for a KukuAI business session token from Baidu; without it, model refresh reports \"Not signed in\". A full Cookie header, a JSON array exported by a Cookie editor, or a {BDUSS, STOKEN} object are all supported. KukuAI has no refresh mechanism, so once the login state expires, just paste it again.",
Expand All @@ -20,6 +21,7 @@
"Command Code": "Command Code",
"JWT(三段点分;也可直接粘贴 Bearer 整行或 data.bin 内容)": "JWT (three dot-separated parts; you can also paste a whole Bearer line or the data.bin content)",
"JWT(三段点分;也可直接粘贴 chatglm_token=… 整行)": "JWT (three dot-separated parts; a whole chatglm_token=… line works too)",
"LobsterAI": "LobsterAI",
"MonkeyCode": "MonkeyCode",
"MonkeyCode 国际版": "MonkeyCode International edition",
"NVIDIA NIM 托管端点,Key 在 integrate.api.nvidia.com 申请": "NVIDIA NIM managed endpoint; apply for the Key at integrate.api.nvidia.com",
Expand Down Expand Up @@ -97,6 +99,7 @@
"可选(cloudaicompanionProject):留空由网关自动发现": "Optional (cloudaicompanionProject); if blank, the gateway discovers it automatically",
"可选,展示用": "Optional; for display",
"可选,没有则无法自动续期": "Optional; without it, automatic renewal is not possible",
"可选,用于生成账号标识": "Optional; used to build the account identifier",
"可选,留空使用凭据里的 user_name": "Optional; defaults to the user_name in the credential",
"可选,留空使用账号姓名、邮箱或令牌指纹": "Optional; defaults to the account name, email, or token fingerprint",
"可选,留空使用账号昵称或邮箱": "Optional; defaults to the account nickname or email",
Expand All @@ -112,6 +115,7 @@
"可选,留空则用账号昵称": "Optional; defaults to the account nickname",
"可选,留空则用账号昵称或 userId": "Optional; leave blank to use the account nickname or userId",
"可选,留空则用邮箱或令牌尾号": "Optional; defaults to the email or token suffix",
"可选,留空用「AtomCode」": "Optional; defaults to “AtomCode”",
"可选,留空用「OfficeAce 果办」": "Optional; defaults to “OfficeAce”",
"可选,留空自动生成": "Optional; generated automatically if blank",
"可选,留空自动用昵称": "Optional; defaults to the nickname",
Expand Down Expand Up @@ -145,6 +149,7 @@
"国际版的推理站点是 api.z.ai,与国内版不是同一站;套餐也各自独立。": "The International edition's inference site is api.z.ai, a different site from the China edition's; plans are separate as well.",
"国际版(WorkBuddy AI)": "International edition (WorkBuddy AI)",
"国际站 Coding 套餐;OpenAI 兼容地址为 https://api.minimax.io/v1": "International site Coding plan; the OpenAI-compatible address is https://api.minimax.io/v1",
"在 AtomGit 的 AtomCode 页面登出后取得两项贴进来:<code>accessToken</code> 与 <code>refreshToken</code>。<b>续期令牌建议填写</b>——本家令牌不是 JWT(约 7 天到期,读不到过期时间),没有它账号无法自动续期,到期只能重新登录。": "Paste the two values from the AtomCode page on AtomGit: <code>accessToken</code> and <code>refreshToken</code>. <b>The refresh token is strongly recommended</b> — this provider's token is not a JWT (it expires in about 7 days and carries no readable expiry), so an account without it cannot renew itself and must be re-authorised once it expires.",
"在 cc-switch 里找到": "Found",
"在<strong>内嵌窗口</strong>里完成官方登录,成功后自动加入账号列表。": "Complete the official sign-in in the <strong>embedded window</strong>; the account is added to the list automatically on success.",
"在{label}的 Qoder 账号设置 → Integrations 生成 PAT(别填 Google / GitHub 的令牌)。两个地区的账号与凭证不通用。": "Generate a PAT in the Qoder account settings → Integrations for {label} (do not use a Google / GitHub token). Accounts and credentials do not carry over between the two regions.",
Expand Down Expand Up @@ -177,6 +182,7 @@
"将用系统默认浏览器打开授权页(会复用浏览器里已登录的华为云账号);授权码由网关轮询云端取回,与浏览器跑在哪台机器无关,完成后自动加入账号列表": "The authorization page will open in your system default browser (reusing the Huawei Cloud account already signed in there); the gateway polls the cloud for the authorization code, so it does not matter which machine the browser runs on. The account is added to the list automatically once done",
"将用系统默认浏览器打开授权页(会复用浏览器里已登录的华为云账号);浏览器与网关不在同一台机器时,按上方说明把最终回调地址粘贴回面板": "The authorization page will open in your system default browser (reusing the Huawei Cloud account already signed in there); when the browser and the gateway are not on the same machine, paste the final callback URL back into the panel as described above",
"将用系统默认浏览器打开登录页(会复用浏览器里已登录的 Accio 账号);完成登录后自动加入账号列表,关掉弹窗即取消等待": "The sign-in page will open in your system default browser (reusing the Accio account already signed in there); the account is added to the list automatically after sign-in, and closing the popup cancels the wait",
"将用系统默认浏览器打开登录页(会复用浏览器里已登录的 LobsterAI 账号);完成登录后自动加入账号列表,关掉弹窗即取消等待": "The sign-in page will open in your system default browser (reusing the LobsterAI account already signed in there); the account is added to the list automatically after sign-in, and closing the popup cancels the wait",
"小米 MiMo Token Plan 套餐(新加坡站)": "Xiaomi MiMo Token Plan (Singapore site)",
"已到账": "Credited",
"已取消登录等待": "Pending sign-in canceled",
Expand All @@ -198,13 +204,16 @@
"恢复 Google / GitHub 入口": "Restore Google / GitHub options",
"手机号": "Phone number",
"手机验证码登录": "SMS code login",
"打开 <b>LobsterAI(有道龙虾)</b>的官方登录页(<code>lobsterai.youdao.com</code>)并用你的 LobsterAI 账号登录:登录成功后官方页面会跳回本机并自动加入账号列表 —— 回调落在<b>网关自己的端口</b>上,所以浏览器要与网关在同一台机器上;授权码只在本机传给网关,界面不显示明文 token。": "Open the official <b>LobsterAI</b> sign-in page (<code>lobsterai.youdao.com</code>) and sign in with your LobsterAI account: once finished, the official page returns to this machine and the account is added automatically — the callback lands on <b>the gateway's own port</b>, so the browser must be on the same machine as the gateway; the auth code is only handed to the gateway locally and no plaintext token is shown in the UI.",
"打开 <b>Trae SOLO</b> 的官方授权页(<code>trae.cn</code>)并用你的 Trae 账号登录:授权完成后官方页面会跳回<b>本机</b>的一个临时端口;同机部署自动接收,Docker / 远程面板请按提示复制地址栏回调地址。": "Open the official authorization page for <b>Trae SOLO</b> (<code>trae.cn</code>) and sign in with your Trae account: once authorized, the official page redirects back to a temporary port on <b>this machine</b>; a same-machine deployment receives it automatically, while Docker / remote panels should copy the callback URL from the address bar as prompted.",
"打开 Accio <b>{label}</b>的官方登录页(<code>{site}</code>)并用你的 Accio 账号登录:登录成功后官方页面会跳回本机;同机自动完成,Docker / 远程面板按提示粘贴回调地址即可(授权码只在本机传给网关,界面不显示明文 token)。": "Open the official sign-in page for Accio <b>{label}</b> (<code>{site}</code>) and sign in with your Accio account: on success the official page redirects back to this machine; a same-machine setup completes automatically, while Docker / remote panels just paste the callback URL as prompted (the authorization code is passed to the gateway only on this machine, and no plaintext token is shown in the UI).",
"打开 Accio {label}登录页": "Open the Accio {label} sign-in page",
"打开 Antigravity 网页登录": "Open Antigravity web login",
"打开 AtomGit 授权页登录:登录完成后网关会自动<b>轮询代理</b>取回令牌并加入账号列表(授权回调由代理终结,不回到本机,因此无需手工回填回调地址)。": "Open the AtomGit authorization page and sign in: once finished, the gateway automatically <b>polls the broker</b> for the token and adds the account (the callback is terminated by the broker and never returns to this machine, so no callback URL needs to be filled in).",
"打开 CatPaw 网页登录": "Open CatPaw web login",
"打开 Cline 授权页": "Open Cline authorization page",
"打开 CodeArts 授权页": "Open CodeArts authorization page",
"打开 LobsterAI 登录页": "Open the LobsterAI sign-in page",
"打开 Qoder 网页登录": "Open Qoder web login",
"打开 Trae 授权页": "Open Trae authorization page",
"打开 ZCode <b>{label}</b>的官方授权页并用你的账号登录。授权结果由 ZCode 服务端记录,网关在后台自动取回凭证并加入账号列表。": "Open the official authorization page for ZCode <b>{label}</b> and sign in with your account. The authorization result is recorded by the ZCode server; the gateway fetches the credential in the background and adds the account to the list.",
Expand Down Expand Up @@ -279,11 +288,13 @@
"登录态文件路径:~/.box-agent/config/auth.json(Windows:C:\\Users\\<你的用户名>\\.box-agent\\config\\auth.json)": "Login-state file path: ~/.box-agent/config/auth.json (Windows: C:\\Users\\<your username>\\.box-agent\\config\\auth.json)",
"确定删除自定义提供商「<strong>{name}</strong>」?将同时删除该提供商下 <strong>{count}</strong> 个账号,删除后无法恢复。": "Delete custom provider \"<strong>{name}</strong>\"? This will also delete <strong>{count}</strong> accounts under it; deletion cannot be undone.",
"等待 Accio {label}登录完成…": "Waiting for Accio {label} sign-in…",
"等待 AtomCode 登录完成…": "Waiting for AtomCode sign-in…",
"等待 CatPaw 登录完成…": "Waiting for CatPaw sign-in…",
"等待 Cline 授权确认…": "Waiting for Cline authorization confirmation…",
"等待 CodeArts 登录完成…": "Waiting for CodeArts sign-in…",
"等待 Google 授权完成…": "Waiting for Google authorization…",
"等待 KukuAI 登录完成…": "Waiting for KukuAI sign-in…",
"等待 LobsterAI 登录完成…": "Waiting for LobsterAI sign-in…",
"等待 OfficeAce 登录完成…": "Waiting for OfficeAce sign-in…",
"等待 OrcaTerm 登录完成…": "Waiting for OrcaTerm sign-in…",
"等待 Qoder 授权完成…": "Waiting for Qoder authorization…",
Expand All @@ -305,6 +316,7 @@
"粘贴 session cookie": "Paste session cookie",
"粘贴 token / refreshToken": "Paste token / refreshToken",
"粘贴 workos:… 开头的令牌(不带前缀也会自动补上)": "Paste a token starting with workos:… (the prefix is added automatically if missing)",
"粘贴令牌对": "Paste token pair",
"粘贴智谱清言的访问令牌(JWT,三段点分)。获取方式:浏览器打开 <code>chatglm.cn</code> 并登录后,在开发者工具的 Application → Cookies 里复制 <code>chatglm_token</code> 的值(也可以直接粘 <code>chatglm_token=…;</code> 整行)。粘贴后会先向上游校验一次,校验通过才落账号;登录账号的积分、签到能力都能用,之后由网关自动续期(上游有续期接口)。": "Paste a Zhipu Qingyan access token (a JWT with three dot-separated parts). How to get it: open <code>chatglm.cn</code> in a browser, sign in, then copy the value of the <code>chatglm_token</code> cookie from Application → Cookies in the developer tools (pasting the whole <code>chatglm_token=…;</code> line works too). It is verified against the upstream once after pasting, and the account is only saved if that passes; signed-in accounts get points and sign-in capability, and the gateway renews it automatically afterwards (the upstream has a renewal API).",
"粘贴登录凭据": "Paste login credentials",
"粘贴的是登录 session(同时是模型网关的 token)。Loomy 没有续期接口,session 有效期约 14 天,过期后重新登录即可。": "What you paste is the login session (which is also the model gateway token). Loomy has no renewal API; the session is valid for about 14 days, so just sign in again after it expires.",
Expand All @@ -319,6 +331,7 @@
"系统浏览器打开(复用已登录的美团账号);完成后自动加入列表": "Opens in the system browser (reuses the signed-in Meituan account); added to the list when done",
"系统浏览器打开(复用已登录账号);完成后自动加入列表": "Opens in the system browser (reuses a signed-in account); added to the list when done",
"系统默认浏览器": "System default browser",
"续期令牌": "Refresh token",
"编码套餐 API Key": "Coding Plan API Key",
"网关 Secret": "Gateway secret",
"网页登录": "Web login",
Expand All @@ -331,6 +344,7 @@
"获取验证码": "Get code",
"访客模式": "Guest mode",
"访客模式(免登录)": "Guest mode (no sign-in)",
"访问令牌": "Access token",
"该上游无需鉴权(不发送鉴权头)": "This upstream needs no authentication (no auth headers are sent)",
"该提供商": "This provider",
"该提供商账号添加功能即将上线": "Account adding for this provider is coming soon",
Expand Down
2 changes: 2 additions & 0 deletions desktop-tauri/i18n/i18n-src/en/checkin.json
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@
"每天 {time} · {scope}": "Daily {time} · {scope}",
"每天时刻": "Daily time",
"每执行一次签到 · 每个账号一条明细 · 结果与收益以后端落账为准": "One row per account per check-in run · outcomes and gains as recorded by the backend",
"每日活动签到(+100 积分,已领则中性提示)": "Daily activity check-in (+100 credits; a neutral note if already claimed)",
"每日活跃任务 · 网页会话保活点亮日活,领取才加积分 · 两者可分开执行": "Daily activity tasks · a web-app conversation lights up the daily activity, only claims add points · the two can run separately",
"每日登录积分 · 顺带领取会员活动 · 访客账号无积分体系(跳过)": "Daily sign-in points · claims member activities along the way · guest accounts have no points system (skipped)",
"每日福利 · 领取 → 确认 → 回读核实 · 按北京时间自然日重置": "Daily welfare · claim → confirm → read back to verify · resets on the Beijing calendar day",
Expand Down Expand Up @@ -232,6 +233,7 @@
"领取": "Claim",
"领取中": "Claiming",
"领取中…": "Claiming…",
"领取免费 CodingPlan(按需:套餐有效时只回读额度)": "Claim the free CodingPlan (on demand: when the plan is active the quota is only read back)",
"领取失败": "Claim failed",
"领取失败:{error}": "Claim failed: {error}",
"(共 {n} 个账号)": " ({n} accounts total)",
Expand Down
2 changes: 2 additions & 0 deletions desktop-tauri/i18n/i18n-src/en/requests.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@
"失败({status}):{error}": "Failed ({status}): {error}",
"失败:{error}": "Failed: {error}",
"实际发给上游 {bytes} 字节": "{bytes} bytes actually sent upstream",
"已下发": "Delivered",
"实际下发给客户端 {bytes} 字节": "{bytes} bytes actually delivered to the client",
"客户端": "Client",
"将删除 {count} 条日志 · 其中 {raw} 条仍带报文原文 · 数据库占用 {db}": "Will delete {count} logs · {raw} of them still carry raw payloads · database size {db}",
"尝试 {n} ·": "Attempt {n} ·",
Expand Down
Loading