creditdaddy 1.6.2 → 1.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/build.json +3 -3
- package/package.json +2 -2
- package/src/traeClient.js +18 -5
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# CreditDaddy
|
|
6
6
|
|
|
7
|
-
**AI 编程工具多账号本地管理 + 每日积分自动领取(领鸡蛋)助手:Qoder · WorkBuddy · ZCode · mirasim · 妙手 · Trae · MiniMax · ModelScope
|
|
7
|
+
**AI 编程工具多账号本地管理 + 每日积分自动领取(领鸡蛋)助手:Qoder · WorkBuddy · ZCode · mirasim · 妙手 · Trae · MiniMax · ModelScope · 豆包,集成 10Router 额度总览、用量同步与网页会话额度卡(Token Harbor / 小米 MiMo / River / ModelScope 魔搭 / LongCat)**
|
|
8
8
|
|
|
9
9
|
[](https://github.com/techysy/CreditDaddy/releases/latest)
|
|
10
10
|
[](https://github.com/techysy/CreditDaddy/actions/workflows/ci.yml)
|
package/build.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "creditdaddy",
|
|
3
|
-
"version": "1.6.
|
|
4
|
-
"description": "CreditDaddy — Qoder / WorkBuddy / ZCode / mirasim / 妙手 / Trae / MiniMax / ModelScope 多账号本地管理与每日积分自动签到助手,及 10Router 供应商 Cookie 会话捕获与外部配额(Token Harbor / 小米 MiMo / River / ModelScope 魔搭 / LongCat)",
|
|
3
|
+
"version": "1.6.3",
|
|
4
|
+
"description": "CreditDaddy — Qoder / WorkBuddy / ZCode / mirasim / 妙手 / Trae / MiniMax / ModelScope / 豆包 多账号本地管理与每日积分自动签到助手,及 10Router 供应商 Cookie 会话捕获与外部配额(Token Harbor / 小米 MiMo / River / ModelScope 魔搭 / LongCat)",
|
|
5
5
|
"homepage": "https://github.com/techysy/CreditDaddy",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
package/src/traeClient.js
CHANGED
|
@@ -53,8 +53,24 @@ function seeded(uid, salt, n) {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
export function traeDevice(uid, storedDeviceId, attempt = 0) {
|
|
56
|
-
//
|
|
57
|
-
//
|
|
56
|
+
// 首选**登录时注册的真机号**(meta.deviceId,本机导入时从 storage.json 抓的):
|
|
57
|
+
// 服务端大概率把「号-设备」绑在登录时注册的那台上——陌生设备号打接口吃 9074
|
|
58
|
+
//(issue #31 报告者实测派生号一律被拒、同一时刻真机号可领;本机实测同现象:
|
|
59
|
+
// 导入首日派生号签到成功,之后每天 9074,重试换派生号 3 轮也全拒)。
|
|
60
|
+
// attempt>0 才走派生:多账号同机时真机号只有一个,第二个账号起服务端按设备限
|
|
61
|
+
// 每日一领会拒(issue #28,TraeTools 的「设备码切换」本质就是给每号换独立设备码),
|
|
62
|
+
// 此时轮换派生号,至少有一个号能落在服务端风控放行的窗口里。
|
|
63
|
+
if (attempt === 0 && storedDeviceId && /^\d{8,}$/.test(String(storedDeviceId))) {
|
|
64
|
+
const m = seeded(`${uid}`, 'market:0', 16);
|
|
65
|
+
m[6] = (m[6] & 0x0f) | 0x40;
|
|
66
|
+
m[8] = (m[8] & 0x3f) | 0x80;
|
|
67
|
+
const h = m.map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
68
|
+
return {
|
|
69
|
+
deviceId: String(storedDeviceId),
|
|
70
|
+
marketUserId: `${h.slice(0, 8)}-${h.slice(8, 12)}-${h.slice(12, 16)}-${h.slice(16, 20)}-${h.slice(20, 32)}`,
|
|
71
|
+
sessionId: seeded(uid, 'sess', 32).map((b) => b.toString(16).padStart(2, '0')).join(''),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
58
74
|
// attempt=0 为默认指纹(跨天稳定恒定);attempt>0 派生结果互异但同样确定(同 attempt 重放一致)。
|
|
59
75
|
const d = seeded(`${uid}`, `devid:${attempt}`, 15).map((b) => String(48 + (b % 10)));
|
|
60
76
|
const m = seeded(`${uid}`, `market:${attempt}`, 16);
|
|
@@ -62,9 +78,6 @@ export function traeDevice(uid, storedDeviceId, attempt = 0) {
|
|
|
62
78
|
m[8] = (m[8] & 0x3f) | 0x80;
|
|
63
79
|
const h = m.map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
64
80
|
return {
|
|
65
|
-
// x-device-id 按 uid 派生(每号独立且稳定):本机导入的 N 个账号若共用客户端自报的
|
|
66
|
-
// 同一设备号,服务端按设备限每日一领——第二个账号起签到必吃 9074(issue #28,
|
|
67
|
-
// TraeTools 的「设备码切换」本质就是给每个账号换独立设备码)。这里不落 storedDeviceId。
|
|
68
81
|
deviceId: d.join(''),
|
|
69
82
|
marketUserId: `${h.slice(0, 8)}-${h.slice(8, 12)}-${h.slice(12, 16)}-${h.slice(16, 20)}-${h.slice(20, 32)}`,
|
|
70
83
|
sessionId: seeded(uid, 'sess', 32).map((b) => b.toString(16).padStart(2, '0')).join(''),
|