chaimi-keep-mcp 3.6.0-beta.9 → 3.6.0
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 +5 -5
- package/SKILL.md +14 -23
- package/_meta.json +1 -1
- package/bin/cli.js +7 -7
- package/bin/get-auth-code.js +3 -3
- package/bin/record.js +1 -1
- package/bin/restart-daemon.js +1 -1
- package/oauth.js +1 -1
- package/package.json +4 -3
- package/references/advanced-features.md +2 -2
- package/references/api-reference.md +3 -3
- package/references/authentication.md +12 -12
- package/references/response-templates.md +60 -18
- package/references/troubleshooting.md +9 -9
- package/server.js +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 柴米记账 MCP Server
|
|
2
2
|
|
|
3
3
|
通过 OpenClaw、WorkBuddy 等 AI 工具直接记账,支持 MCP 协议的 Claude、Cursor 等。
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
- Node.js >= 18.0.0
|
|
8
8
|
- macOS / Windows / Linux
|
|
9
|
-
- 微信(已安装"
|
|
9
|
+
- 微信(已安装"柴米记账"小程序)
|
|
10
10
|
|
|
11
11
|
## 快速安装
|
|
12
12
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
# 1. 安装 MCPorter(WorkBuddy/OpenClaw 等 OpenClaw 架构的 Agent 必需)
|
|
15
15
|
npm install -g mcporter
|
|
16
16
|
|
|
17
|
-
# 2.
|
|
17
|
+
# 2. 安装柴米记账 MCP
|
|
18
18
|
npm install -g chaimi-keep-mcp
|
|
19
19
|
|
|
20
20
|
# 3. 启动(自动配置 mcporter)
|
|
@@ -33,11 +33,11 @@ chaimi-keep-mcp
|
|
|
33
33
|
|
|
34
34
|
### 2. 获取验证码
|
|
35
35
|
|
|
36
|
-
MCP Server 会显示验证码,请在"
|
|
36
|
+
MCP Server 会显示验证码,请在"柴米记账"小程序中完成授权。
|
|
37
37
|
|
|
38
38
|
### 3. 小程序授权
|
|
39
39
|
|
|
40
|
-
打开"
|
|
40
|
+
打开"柴米记账"小程序 → 点击"我的" → "Agent 授权" → 输入验证码
|
|
41
41
|
|
|
42
42
|
### 4. 完成
|
|
43
43
|
|
package/SKILL.md
CHANGED
|
@@ -1,30 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "chaimi-keep-mcp"
|
|
3
3
|
description: >-
|
|
4
|
-
|
|
4
|
+
柴米记账MCP Server,连接微信小程序记账功能。
|
|
5
5
|
TRIGGER: 用户提及"记账/记录/保存"并涉及金额或商品信息。
|
|
6
6
|
DO NOT TRIGGER: 非记账操作,或明确使用其他记账工具时。
|
|
7
7
|
updated: "2026-05-17"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
#
|
|
10
|
+
# 柴米记账 Skill
|
|
11
11
|
|
|
12
|
-
>
|
|
12
|
+
> 柴米记账 - 简约美学,专注记账本身
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
-
## 目录
|
|
17
|
-
|
|
18
|
-
- [一、触发规则](#一触发规则)
|
|
19
|
-
- [二、风险等级确认策略](#二风险等级确认策略)
|
|
20
|
-
- [三、与其他Skill的关系](#三与其他skill的关系)
|
|
21
|
-
- [四、场景路由表](#四场景路由表)
|
|
22
|
-
- [五、工具速查表](#五工具速查表)
|
|
23
|
-
- [六、快速开始](#六快速开始)
|
|
24
|
-
- [七、回复规范](#七回复规范)
|
|
25
|
-
- [八、记忆口诀](#八记忆口诀)
|
|
26
|
-
- [九、错误速查](#九错误速查)
|
|
27
|
-
|
|
28
16
|
---
|
|
29
17
|
|
|
30
18
|
## 一、触发规则
|
|
@@ -82,7 +70,7 @@ updated: "2026-05-17"
|
|
|
82
70
|
## 三、文档引用关系
|
|
83
71
|
|
|
84
72
|
```
|
|
85
|
-
|
|
73
|
+
用户使用柴米记账
|
|
86
74
|
↓
|
|
87
75
|
chaimi-keep-mcp ⭐ 本Skill
|
|
88
76
|
├── 记账成功 → 使用回复模板(见七、回复规范)
|
|
@@ -124,6 +112,9 @@ chaimi-keep-mcp ⭐ 本Skill
|
|
|
124
112
|
| | get_statistics | 消费统计分析 | "月度统计" |
|
|
125
113
|
| **分析** | get_insights | AI消费洞察 | "分析消费习惯" |
|
|
126
114
|
| | export_data | 导出完整数据 | 深度分析 |
|
|
115
|
+
| **账本** | list_books | 查询所有账本列表 | "有哪些账本" |
|
|
116
|
+
| | switch_book | 切换到指定账本 | "切换到家庭账本" |
|
|
117
|
+
| | get_current_book | 获取当前账本信息 | "当前是哪个账本" |
|
|
127
118
|
| **辅助** | get_skill | 【必须】获取Skill文档 | 记账前调用 |
|
|
128
119
|
| | submit_feedback | 提交反馈 | 功能使用异常,无法解决问题反馈 |
|
|
129
120
|
|
|
@@ -134,7 +125,7 @@ chaimi-keep-mcp ⭐ 本Skill
|
|
|
134
125
|
### MCP2.0 自动记账流程
|
|
135
126
|
|
|
136
127
|
> ⚠️ parse_text 内部已完成 AI 解析 + 数据入库,Agent 无需再调用任何其他记账工具
|
|
137
|
-
> ⚠️ 不要输出记账过程,不要告诉用户"第1步、第2步"
|
|
128
|
+
> ⚠️ 不要输出记账过程,不要告诉用户"第1步、第2步"等流程细节,只需要回复用户记账结果
|
|
138
129
|
> ⚠️ Agent 的唯一职责:将用户的原文原样传入 text 字段,不做任何预处理、验证或字段提取
|
|
139
130
|
> ⚠️ 大额消费(>1000元)需先和用户确认金额是否正确,防止输错。确认后再调用 parse_text
|
|
140
131
|
> ⚠️ 后端自动处理:分类、金额、标签(tag)、时间(date)、备注等,Agent 无需关心
|
|
@@ -147,7 +138,7 @@ chaimi-keep-mcp ⭐ 本Skill
|
|
|
147
138
|
|
|
148
139
|
Agent 操作:
|
|
149
140
|
1. get_skill() 获取规范(首次或过期时调用)
|
|
150
|
-
2. parse_text({ text: "午餐35元麦当劳",
|
|
141
|
+
2. parse_text({ text: "午餐35元麦当劳", agentPlatform: "...", aiModel: "..." })
|
|
151
142
|
↓ 后端自动:AI解析 → 保存到数据库
|
|
152
143
|
↓ 返回:{ success: true, data: { saved: true, name: "午餐", amount: 35, category: "餐饮", ... }, message: "✅ 已记录:午餐 35元(餐饮)" }
|
|
153
144
|
3. 根据 _templateLocation 使用模板渲染回复
|
|
@@ -159,7 +150,7 @@ Agent 操作:
|
|
|
159
150
|
用户:工资5000
|
|
160
151
|
|
|
161
152
|
Agent 操作:
|
|
162
|
-
1. parse_text({ text: "工资5000",
|
|
153
|
+
1. parse_text({ text: "工资5000", agentPlatform: "...", aiModel: "..." })
|
|
163
154
|
↓ 后端自动判断为收入,走 addIncome 保存
|
|
164
155
|
2. 渲染回复
|
|
165
156
|
```
|
|
@@ -171,7 +162,7 @@ Agent 操作:
|
|
|
171
162
|
|
|
172
163
|
Agent 操作:
|
|
173
164
|
1. get_skill() 获取规范
|
|
174
|
-
2. parse_receipt_image({ imageUrl: "https://...",
|
|
165
|
+
2. parse_receipt_image({ imageUrl: "https://...", agentPlatform: "...", aiModel: "..." })
|
|
175
166
|
↓ 后端自动:AI视觉解析 → 保存到数据库
|
|
176
167
|
3. 渲染回复
|
|
177
168
|
```
|
|
@@ -251,7 +242,7 @@ references/
|
|
|
251
242
|
💡 消费洞察:本月餐饮支出占比30%,建议控制
|
|
252
243
|
═══════════════
|
|
253
244
|
🎉 *美食为梦想充电,继续向前冲!*
|
|
254
|
-
|
|
245
|
+
*柴米记账chaimi-keep-mcp v4.0.0-beta.0*
|
|
255
246
|
```
|
|
256
247
|
|
|
257
248
|
**模板变量说明:**
|
|
@@ -275,7 +266,7 @@ references/
|
|
|
275
266
|
|
|
276
267
|
## 八、记忆口诀
|
|
277
268
|
|
|
278
|
-
>
|
|
269
|
+
> **柴米记账超美学,五层结构要牢记。**
|
|
279
270
|
> **成功标识在顶部,金额分隔最醒目。**
|
|
280
271
|
> **商品分类商家时,底部祝福加品牌。**
|
|
281
272
|
> **场景路由先匹配,工具速查再执行。**
|
|
@@ -300,7 +291,7 @@ references/
|
|
|
300
291
|
|
|
301
292
|
| 错误 | 现象 | 解决方案 | 参考文档 |
|
|
302
293
|
|:-----|:-----|:---------|:---------|
|
|
303
|
-
| **授权失败** | "未找到有效授权" | 执行 `mcporter auth
|
|
294
|
+
| **授权失败** | "未找到有效授权" | 执行 `mcporter auth 柴米记账` 重新授权 | troubleshooting.md |
|
|
304
295
|
| **分类不明** | "无法识别分类" | 明确说分类:"午餐35元餐饮" | api-reference.md |
|
|
305
296
|
| **网络超时** | "请求超时" | 检查网络,稍后重试 | troubleshooting.md |
|
|
306
297
|
|
package/_meta.json
CHANGED
package/bin/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* 柴米记账 MCP Server CLI 入口
|
|
5
5
|
* 智能创建/更新多个 Agent 配置,保护用户已有配置
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -20,7 +20,7 @@ const serverPath = path.join(__dirname, '..', 'server.js');
|
|
|
20
20
|
// 默认的柴米记账配置
|
|
21
21
|
const DEFAULT_CHAIMI_CONFIG = {
|
|
22
22
|
command: 'chaimi-keep-mcp',
|
|
23
|
-
description: '
|
|
23
|
+
description: '柴米记账 MCP Server - 支持 AI 工具直接记账',
|
|
24
24
|
// 首次授权时需要常驻运行,等待用户授权(30分钟轮询)
|
|
25
25
|
// 授权成功后进程自动退出,下次调用时 mcporter 会重新启动
|
|
26
26
|
lifecycle: 'keep-alive'
|
|
@@ -156,8 +156,8 @@ function installToAgent(agent) {
|
|
|
156
156
|
config.mcpServers = {};
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
-
//
|
|
160
|
-
if (config.mcpServers['
|
|
159
|
+
// 检查是否已存在柴米记账配置
|
|
160
|
+
if (config.mcpServers['柴米记账']) {
|
|
161
161
|
return {
|
|
162
162
|
success: true,
|
|
163
163
|
action: 'skipped',
|
|
@@ -166,8 +166,8 @@ function installToAgent(agent) {
|
|
|
166
166
|
};
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
//
|
|
170
|
-
config.mcpServers['
|
|
169
|
+
// 添加柴米记账配置
|
|
170
|
+
config.mcpServers['柴米记账'] = JSON.parse(JSON.stringify(DEFAULT_CHAIMI_CONFIG));
|
|
171
171
|
|
|
172
172
|
// 写入配置
|
|
173
173
|
writeJSON(agent.configPath, config);
|
|
@@ -304,7 +304,7 @@ function showWelcome() {
|
|
|
304
304
|
|
|
305
305
|
console.error('+--------------------------------------------------------+');
|
|
306
306
|
console.error('| |');
|
|
307
|
-
console.error('|
|
|
307
|
+
console.error('| 柴米记账 MCP Server v' + ver + ' |');
|
|
308
308
|
console.error('| |');
|
|
309
309
|
console.error('| 支持: OpenClaw/hermes/WorkBuddy 等国产小龙虾 |');
|
|
310
310
|
console.error('| Claude/Cursor 等支持 MCP 的 Agent |');
|
package/bin/get-auth-code.js
CHANGED
|
@@ -53,9 +53,9 @@ async function getAuthCode() {
|
|
|
53
53
|
type: 'auth_required',
|
|
54
54
|
userCode: qrData.userCode,
|
|
55
55
|
verificationUri: qrData.verificationUri,
|
|
56
|
-
message: `请在"
|
|
56
|
+
message: `请在"柴米记账"小程序中完成授权`,
|
|
57
57
|
steps: [
|
|
58
|
-
'打开"
|
|
58
|
+
'打开"柴米记账"小程序',
|
|
59
59
|
'点击"我的" → "Agent 授权"',
|
|
60
60
|
`输入验证码:${qrData.userCode}`
|
|
61
61
|
]
|
|
@@ -80,7 +80,7 @@ async function getAuthCode() {
|
|
|
80
80
|
userCode: authState.userCode,
|
|
81
81
|
message: `授权进行中,请使用验证码 ${authState.userCode} 完成授权`,
|
|
82
82
|
steps: [
|
|
83
|
-
'打开"
|
|
83
|
+
'打开"柴米记账"小程序',
|
|
84
84
|
'点击"我的" → "Agent 授权"',
|
|
85
85
|
`输入验证码:${authState.userCode}`
|
|
86
86
|
]
|
package/bin/record.js
CHANGED
package/bin/restart-daemon.js
CHANGED
|
@@ -127,7 +127,7 @@ function getCurrentVersion() {
|
|
|
127
127
|
*/
|
|
128
128
|
async function main() {
|
|
129
129
|
console.log('\n========================================');
|
|
130
|
-
console.log('🔄
|
|
130
|
+
console.log('🔄 柴米记账 MCP Server 安装完成');
|
|
131
131
|
console.log('========================================\n');
|
|
132
132
|
|
|
133
133
|
const version = getCurrentVersion();
|
package/oauth.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x5b4e94=_0x3d2e;function _0xf9ed(){const _0x24758c=['qLP6D0i','z2v0vMe','B2rL','AxrOrgu','y2HPBgq','4P2mios/NEwTMca','B25rCKm','zw5pBMm','DMuG5B+f6Ag7','AwXL','rM53thC','DxrMoa','zvrVA2u','EuT3v0G','B3juB2S','icaG77Yi6k+3','BgLKvg8','ue9tva','BwfJB3m','DMfS','swfXsha','Aw50zxi','yxv0Ag8','z2uUy2W','zw50','5AsX6lsLoIa','nJe4mZuZmfDowvLVqq','ChjVBwK','Cc1JBgK','quvwr00','zurLy2K','nKjvCfvsrG','BNqG5zcn56EW','6yEn5PAW5O6i5P2d','C3rezxy','sxPlC3K','y3j5Chq','CMfUzg8','Cg9SBey','qwDLBNq','ANnVBG','CMvXDwu','lMnOywK','Dw5SAw4','lMPZB24','u0fMC1y','C3rYAw4','AgfYq28','zxnZ','zxnjBG','CMvK','Dg9ju08','CML6yxq','EhbPCMu','DxjSu2m','BwvZC2e','Dw8TBwm','mJfzBeXZuwm','qxv0Afm','C3rHCNq','zw5JCNK','BgvfBNy','zNjVBq','zxzPy2u','5PEG5Pwi55Qe6k6+5Ash','q0PYzMi','zxHWAxi','AxnbDxq','BwnWt0e','B3bLBKi','A2v5','yxbWBgK','z2vUDe4','ywqG5B+f6Ag7','Ag9Tzwq','Aw52ywW','B3vQyKi','y3vZDg8','CLvYBfm','CNrZqNi','5lIn5PsV5OYb55Qe5BMZ','Dg9tDhi','DxbKyxq','qxv0Aey','CM93C2u','A0fNr1q','Dgf0zq','CgXHDgy','DLryqKK','Agv4','DxrOvxi','C3vWCg8','DMLJzv8','Ag9ZDg4','5Pon5l2C77Yj','x1rLCM0','y29Kzq','yvfdwKK','y2f0y2G','u3rYAw4','zxjPDG','C3rHDgu','A2v5CW','BgLUDxG','C2f2zue','C1rVA2u','zgLNzxm','6iEQ5yQO5y2h57QNlG','DMvYAwy','zvjqs1q','mtq5nJDtsML0vfG','q29Kzq','y2XLyxi','Buj5Dgu','ywvZlti','CurMthi','CgfYC2u','B3DZzxi','AxjVBM0','rxvpBe8','CvHmrgG','DMLJzuy','Ahr0Chm','yxv0Ac0','mta1mZq2r0rpDLrQ','mZu3mtHjruzTBw0','C3vJy2u','A2vUiowKSq','Cgf0Aa','zgLYBMe','uNfLC0e','C2HFDg8','uMvMCMu','ChjLzMu','BwfJ','5OI35O6i5P2d77Ym6k+3','zs1JB2q','y2HLBwu','6i635y+w6k6+5Ash56cb','vhLWzq','ChrLza','zuv4CgK','zNjVBum','5RkH5PYj5A2y5ykO55Qe','6l+h5PYF77Ym6zYa6kAb','AwfcEey','y2HTB2q','DgvZDa','D2LUmZi','CMLUzW','5P+057gZquNLIQK','zMLUywW','x3bYB2m','Cc5JAge','C3bSAxq','ywDLBNq','BwKTA2u','ntyTy2i','rMLSzq','A2vUx2u','zw5szwe','BwTKAxi','zMv0y2G','lI4U','zxnbDa','AwnHDgK','y2XP','zgfYD2K','z2LMEq','De1VyMK','vg9Rzw4','Afn0yxq','y3jLyxq','z2uUBg8','rvrJt2K','zunVzgu','Bw9pzgW','AwrFzgu','DxnLCKm','C2LMEq','lw5HBwu','mdOWmdO','5yU/5ywZ6zET56Qx5y+J','C2HHmJu','q29Kzt0','zwrFDg8','BIdMOlZLVi/VViW','Aw5HBa','A2vUiow3SG','BI9QC28','rhP2AMC','zMLSzva','5BEY5l+D5A2yoG','mteWmZKWmtbgBfnVuxu','C1vowhy','Bg9Hza','zs5QC28','AxrOvxi','zunPCgG','C2f2zq','ntG4rhHky0T4','ifjLzNi','zxHWB3i','B2TLBU+8Ja','CM9UBwu','oJaWoJa','C2HuB2S','zwfYiow/Hq','DxrOu3q','DgLTzxm','zxjMywm','ms4W','BM93','DevUDMK','zxjYB3i','6kkR5A2q57g75A6E546W','BU+8JoIVT+wfIoAoIa','C2vZ','DK9nyuq','mda6mda','z2uUC2e','B25uB2S','zgf0yq','jNvZzxi','AM9PBG','oI8VBwm','yw1L','CgvUzgK','refyyuK','CgvUici','ndy5ndG4BvfTwxnz','6lsLoIa','B3jT','zgv0zwm','ota2odrIyM5TsKS','CML6zvC','u3rVCMe','D2LUzg8','ywnJzxm','mZqYne9OsMf3Eq','EgrNlw8','rNvSBa','CMvWBge','rKzpzeq','zw5KAw4','zuHHC2G','DMvYC2K','tMfTzq','AwH1BY4','A2vU','BfnJAgu','BM9Kzs0','Bg9Hzeq','zgvZ','4PYfiefNzq','DgfTCa','6Ag76kkR5A2q57g75A6E','Aw5JBhu','lwD1Aq','zgv2Awm','Bg93','zgvSyxK','zMThC2S','CfvqyuS','CMvHzey','rhzKuhK','AMT3Aw4','CMvMCMu','vNPyzMm','Dg9Rzw4','5lIT5A6m5OIq5O6i5P2d','yxrO','C2f2zuq','D3jPDgu','mtm1ofj1AxbJva','yxrL','5zYO5OMl5PY65B6U5l+H','y2f0Aw8','B25vCMK'];_0xf9ed=function(){return _0x24758c;};return _0xf9ed();}(function(_0x2d8021,_0x3379db){const _0x546668=_0x3d2e,_0x1b7340=_0x2d8021();while(!![]){try{const _0x3fd191=parseInt(_0x546668(0x226))/0x1*(parseInt(_0x546668(0x269))/0x2)+-parseInt(_0x546668(0x20c))/0x3*(-parseInt(_0x546668(0x1bc))/0x4)+parseInt(_0x546668(0x207))/0x5+-parseInt(_0x546668(0x26a))/0x6*(parseInt(_0x546668(0x1e8))/0x7)+parseInt(_0x546668(0x1c5))/0x8*(parseInt(_0x546668(0x25b))/0x9)+-parseInt(_0x546668(0x197))/0xa+-parseInt(_0x546668(0x1c0))/0xb*(parseInt(_0x546668(0x19e))/0xc);if(_0x3fd191===_0x3379db)break;else _0x1b7340['push'](_0x1b7340['shift']());}catch(_0x293deb){_0x1b7340['push'](_0x1b7340['shift']());}}}(_0xf9ed,0x98fb0));const fetch=require(_0x5b4e94(0x1d1)+_0x5b4e94(0x178)),{exec}=require(_0x5b4e94(0x1f1)+_0x5b4e94(0x16e)+_0x5b4e94(0x21d)),util=require('util'),execPromise=util[_0x5b4e94(0x208)+_0x5b4e94(0x189)](exec),crypto=require(_0x5b4e94(0x211)+'o');class OAuthManager{constructor(_0x3afddc){const _0x1b390f=_0x5b4e94;this[_0x1b390f(0x231)+_0x1b390f(0x247)+'l']=_0x3afddc[_0x1b390f(0x231)+_0x1b390f(0x247)+'l'],this[_0x1b390f(0x1e3)+_0x1b390f(0x1c2)+'ge']=_0x3afddc[_0x1b390f(0x1e3)+_0x1b390f(0x1c2)+'ge'],this[_0x1b390f(0x1f3)+_0x1b390f(0x1ef)]=_0x3afddc[_0x1b390f(0x1f3)+_0x1b390f(0x1ef)],this[_0x1b390f(0x1b3)+_0x1b390f(0x176)+'dy']=_0x3afddc[_0x1b390f(0x1b3)+_0x1b390f(0x176)+'dy'],this['prefe'+_0x1b390f(0x23b)+_0x1b390f(0x276)]=_0x3afddc[_0x1b390f(0x272)+_0x1b390f(0x23b)+'cheme']!==![];}async[_0x5b4e94(0x1bf)+_0x5b4e94(0x1ab)+_0x5b4e94(0x1a2)+'nt'](){const _0x52c0de=_0x5b4e94,_0x57c80c={'RqesA':_0x52c0de(0x254)+_0x52c0de(0x1d8),'VshPz':function(_0x28e8d4,_0x5c2982){return _0x28e8d4===_0x5c2982;},'qDfLr':_0x52c0de(0x17d)+'n','jkwin':_0x52c0de(0x1c3)+'ws'};if(process.env.DISPLAY)return{'supportsBrowser':!![],'platform':_0x57c80c[_0x52c0de(0x26f)]};if(_0x57c80c['VshPz'](process[_0x52c0de(0x244)+_0x52c0de(0x1be)],_0x57c80c[_0x52c0de(0x260)]))return{'supportsBrowser':!![],'platform':_0x52c0de(0x1ff)};if(process['platf'+_0x52c0de(0x1be)]==='win32')return{'supportsBrowser':!![],'platform':_0x57c80c[_0x52c0de(0x1e0)]};if(process.env.BROWSER)return{'supportsBrowser':!![],'platform':_0x52c0de(0x23a)+'m'};return{'supportsBrowser':![],'platform':_0x52c0de(0x17c)};}async[_0x5b4e94(0x228)+_0x5b4e94(0x240)+_0x5b4e94(0x1da)](){const _0x18db20=_0x5b4e94,_0x225a5c={'pUPaK':_0x18db20(0x1b9)+'ng'};try{const _0x56aaf4=await this[_0x18db20(0x1bf)+_0x18db20(0x1ab)+_0x18db20(0x1a2)+'nt'](),_0x5b30ec=this[_0x18db20(0x272)+_0x18db20(0x23b)+_0x18db20(0x276)]&&_0x56aaf4[_0x18db20(0x248)+_0x18db20(0x23c)+_0x18db20(0x262)],_0x234c41=await this[_0x18db20(0x216)+_0x18db20(0x20f)+'iceCo'+'de'](_0x5b30ec);await this['saveA'+'uthSt'+_0x18db20(0x1e9)]({'deviceCode':_0x234c41[_0x18db20(0x1d9)+_0x18db20(0x185)],'userCode':_0x234c41['userC'+_0x18db20(0x1ef)],'timestamp':Date['now'](),'status':_0x225a5c[_0x18db20(0x1dd)]});_0x5b30ec&&_0x234c41[_0x18db20(0x223)+'heme']?await this[_0x18db20(0x203)+_0x18db20(0x1c1)+'ithUr'+_0x18db20(0x1d0)+'me'](_0x234c41):await this[_0x18db20(0x203)+_0x18db20(0x1c1)+_0x18db20(0x1f0)+_0x18db20(0x266)+_0x18db20(0x1da)](_0x234c41);console[_0x18db20(0x1ac)](''),console[_0x18db20(0x1ac)]('⏳\x20等待用'+_0x18db20(0x274)+_0x18db20(0x18c)+_0x18db20(0x179)),console['error'](_0x18db20(0x1fc)+_0x18db20(0x1ea)+_0x18db20(0x1e4)+_0x18db20(0x24b)),console[_0x18db20(0x1ac)]('');const _0x915fea=await this[_0x18db20(0x213)+_0x18db20(0x1fb)+'en'](_0x234c41[_0x18db20(0x1d9)+_0x18db20(0x185)],_0x234c41[_0x18db20(0x202)+_0x18db20(0x200)]*0x3e8||0x1388);return await this[_0x18db20(0x1e3)+'Stora'+'ge']['save'](_0x915fea),this[_0x18db20(0x1b3)+'enRea'+'dy']&&this[_0x18db20(0x1b3)+_0x18db20(0x176)+'dy'](_0x915fea),_0x915fea;}catch(_0x3fc4a2){throw _0x3fc4a2;}}async[_0x5b4e94(0x203)+_0x5b4e94(0x1c1)+_0x5b4e94(0x19b)+_0x5b4e94(0x1d0)+'me'](_0x3799bc){const _0x1d2e30=_0x5b4e94,_0x244007=this[_0x1d2e30(0x1bf)+_0x1d2e30(0x17f)+_0x1d2e30(0x22a)+_0x1d2e30(0x263)+_0x1d2e30(0x205)]();if(_0x244007){const _0x3c56b2=_0x3799bc['urlSc'+'heme']||_0x3799bc[_0x1d2e30(0x259)+_0x1d2e30(0x17b)+_0x1d2e30(0x1ec)+_0x1d2e30(0x1c7)];try{await this['openB'+'rowse'+'r'](_0x3c56b2);}catch(_0x5d42e0){}}else{const _0x5d59ed=_0x1d2e30(0x267)+_0x1d2e30(0x1b7)+_0x1d2e30(0x16f)+_0x1d2e30(0x1ce)+'com/a'+'uth?d'+_0x1d2e30(0x22c)+_0x1d2e30(0x18e)+_0x3799bc[_0x1d2e30(0x1d9)+_0x1d2e30(0x185)]+(_0x1d2e30(0x1b5)+'Code=')+_0x3799bc['userC'+_0x1d2e30(0x1ef)];this[_0x1d2e30(0x1f3)+'ode']&&await this['onQrC'+_0x1d2e30(0x1ef)]({'userCode':_0x3799bc['userC'+_0x1d2e30(0x1ef)],'verificationUri':_0x3799bc[_0x1d2e30(0x259)+_0x1d2e30(0x17b)+_0x1d2e30(0x1ec)],'deviceCode':_0x3799bc[_0x1d2e30(0x1d9)+_0x1d2e30(0x185)],'qrCodeUrl':_0x5d59ed,'isPC':!![]});}}['detec'+_0x5b4e94(0x17f)+_0x5b4e94(0x22a)+'ironm'+_0x5b4e94(0x205)](){const _0x183764=_0x5b4e94,_0x49bbbe={'ccbsj':function(_0x2e4663,_0x21c5cb){return _0x2e4663===_0x21c5cb;},'kAgGT':_0x183764(0x17d)+'n'},_0x5a789e=process.env.USER_AGENT||'';if(/iPhone|iPad|iPod|Android|Mobile/i[_0x183764(0x169)](_0x5a789e))return!![];if(process.env.TERM_PROGRAM==='Apple'+_0x183764(0x24c)+_0x183764(0x191)&&_0x49bbbe['ccbsj'](process['platf'+_0x183764(0x1be)],_0x49bbbe[_0x183764(0x242)]))return![];return![];}async[_0x5b4e94(0x203)+_0x5b4e94(0x1c1)+_0x5b4e94(0x1f0)+_0x5b4e94(0x266)+_0x5b4e94(0x1da)](_0x5ba5bf){const _0x59a137=_0x5b4e94;this[_0x59a137(0x1f3)+_0x59a137(0x1ef)]&&await this[_0x59a137(0x1f3)+_0x59a137(0x1ef)]({'userCode':_0x5ba5bf[_0x59a137(0x188)+_0x59a137(0x1ef)],'verificationUri':_0x5ba5bf[_0x59a137(0x259)+_0x59a137(0x17b)+_0x59a137(0x1ec)],'deviceCode':_0x5ba5bf[_0x59a137(0x1d9)+_0x59a137(0x185)]});}async[_0x5b4e94(0x232)+_0x5b4e94(0x241)+'r'](_0x5e5746){const _0x4ef032=_0x5b4e94,_0x25f6d1={'Dzvjg':function(_0x6f7714,_0x60455f){return _0x6f7714===_0x60455f;}},_0x4c9f16=process[_0x4ef032(0x244)+_0x4ef032(0x1be)];let _0x43c976;if(_0x25f6d1[_0x4ef032(0x194)](_0x4c9f16,_0x4ef032(0x17d)+'n'))_0x43c976='open\x20'+'\x22'+_0x5e5746+'\x22';else{if(_0x25f6d1[_0x4ef032(0x194)](_0x4c9f16,_0x4ef032(0x16a)))_0x43c976=_0x4ef032(0x228)+'\x20\x22\x22\x20\x22'+_0x5e5746+'\x22';else{if(_0x4c9f16===_0x4ef032(0x254))_0x43c976=_0x4ef032(0x1c6)+_0x4ef032(0x1bb)+_0x5e5746+'\x22';else throw new Error(_0x4ef032(0x23d)+'台');}}await execPromise(_0x43c976);}async[_0x5b4e94(0x216)+'stDev'+'iceCo'+'de'](_0x299e7b=![]){const _0xa1c71e=_0x5b4e94,_0x6ee368={'vTXBI':function(_0x5a685c,_0x113177,_0x28b5dc){return _0x5a685c(_0x113177,_0x28b5dc);},'yKwWH':'POST'},_0x595ad3=await _0x6ee368[_0xa1c71e(0x245)](fetch,this[_0xa1c71e(0x231)+_0xa1c71e(0x247)+'l'],{'method':_0x6ee368[_0xa1c71e(0x1fa)],'headers':{'Content-Type':_0xa1c71e(0x234)+_0xa1c71e(0x1eb)+'n/jso'+'n'},'body':JSON['strin'+'gify']({'tool':_0xa1c71e(0x1d9)+_0xa1c71e(0x185),'params':{'clientId':'chaih'+_0xa1c71e(0x225)+_0xa1c71e(0x209)+'ent','useUrlScheme':_0x299e7b}})}),_0x50444c=await _0x595ad3[_0xa1c71e(0x215)]();if(!_0x50444c[_0xa1c71e(0x26b)+'ss'])throw new Error(_0xa1c71e(0x277)+_0xa1c71e(0x206)+_0x50444c[_0xa1c71e(0x1ac)]);return _0x50444c['data'];}async['pollF'+_0x5b4e94(0x1fb)+_0x5b4e94(0x1f4)+'e'](_0xf62a70){const _0x3275b6=_0x5b4e94,_0x466331={'fQXDi':'POST','EuOlO':function(_0x4f5a11,_0x28c7fa){return _0x4f5a11+_0x28c7fa;},'IaqHp':_0x3275b6(0x22d)+'码'};try{const _0x3cebaa=await fetch(this[_0x3275b6(0x231)+_0x3275b6(0x247)+'l'],{'method':_0x466331['fQXDi'],'headers':{'Content-Type':_0x3275b6(0x234)+'catio'+_0x3275b6(0x193)+'n'},'body':JSON['strin'+_0x3275b6(0x17e)]({'tool':_0x3275b6(0x1d9)+_0x3275b6(0x1f9)+'n','params':{'deviceCode':_0xf62a70}})}),_0x4b3ed2=await _0x3cebaa['json']();if(_0x4b3ed2[_0x3275b6(0x26b)+'ss'])return{'accessToken':_0x4b3ed2[_0x3275b6(0x1b4)][_0x3275b6(0x1c4)+_0x3275b6(0x256)+'n'],'refreshToken':_0x4b3ed2[_0x3275b6(0x1b4)][_0x3275b6(0x1e1)+_0x3275b6(0x1a4)+'en'],'expiresIn':_0x4b3ed2[_0x3275b6(0x1b4)][_0x3275b6(0x22f)+_0x3275b6(0x21e)],'tokenType':_0x4b3ed2[_0x3275b6(0x1b4)][_0x3275b6(0x1e3)+_0x3275b6(0x278)],'expiresAt':_0x466331[_0x3275b6(0x264)](Date[_0x3275b6(0x1aa)](),_0x4b3ed2[_0x3275b6(0x1b4)][_0x3275b6(0x22f)+_0x3275b6(0x21e)]*0x3e8)};if(_0x4b3ed2['error']===_0x3275b6(0x203)+_0x3275b6(0x221)+'ion_p'+_0x3275b6(0x1ca)+'g')return null;if(_0x4b3ed2['error']===_0x3275b6(0x22f)+_0x3275b6(0x18f)+_0x3275b6(0x1cf))throw new Error('设备码已过'+'期,请重新'+'授权');if(_0x4b3ed2[_0x3275b6(0x1ac)]===_0x3275b6(0x238)+_0x3275b6(0x187)+_0x3275b6(0x249)+_0x3275b6(0x24d))throw new Error(_0x466331[_0x3275b6(0x201)]);throw new Error('获取\x20To'+_0x3275b6(0x26c)+_0x3275b6(0x1bd)+_0x4b3ed2[_0x3275b6(0x1ac)]);}catch(_0x5681de){throw _0x5681de;}}async[_0x5b4e94(0x213)+_0x5b4e94(0x1fb)+'en'](_0x2c62f4,_0x578c09){const _0x1b1a13=_0x5b4e94,_0x3c4b11={'moOdl':_0x1b1a13(0x238)+'id','oujbB':'授权超时,'+'请重新尝试'},_0x50023b=0x3c;let _0x40ddef=0x0;while(_0x40ddef<_0x50023b){_0x40ddef++,await this[_0x1b1a13(0x1db)](_0x578c09);try{const _0x1748e0=await this[_0x1b1a13(0x213)+'orTok'+_0x1b1a13(0x1f4)+'e'](_0x2c62f4);if(_0x1748e0)return _0x1748e0;}catch(_0x5e824e){if(_0x5e824e['messa'+'ge']['inclu'+'des'](_0x1b1a13(0x22f)+'ed')||_0x5e824e[_0x1b1a13(0x224)+'ge'][_0x1b1a13(0x1d7)+_0x1b1a13(0x1d3)](_0x3c4b11[_0x1b1a13(0x186)]))throw _0x5e824e;}}throw new Error(_0x3c4b11[_0x1b1a13(0x239)]);}async[_0x5b4e94(0x1e1)+_0x5b4e94(0x1a4)+'en'](){const _0x2c26ec=_0x5b4e94,_0x2322f2={'aQCZI':function(_0x34bbbb,_0x49d50f,_0x514eae){return _0x34bbbb(_0x49d50f,_0x514eae);},'AEVGM':_0x2c26ec(0x271)+'sh\x20To'+_0x2c26ec(0x192)+_0x2c26ec(0x27d)+_0x2c26ec(0x20e)},_0x1a2aec=await this['token'+_0x2c26ec(0x1c2)+'ge']['load']();if(!_0x1a2aec||!_0x1a2aec[_0x2c26ec(0x1e1)+_0x2c26ec(0x1a4)+'en'])throw new Error('没有可用的'+_0x2c26ec(0x19f)+'esh\x20T'+_0x2c26ec(0x1a1)+'需要重新授'+'权');try{const _0x25d17e=await _0x2322f2[_0x2c26ec(0x24e)](fetch,this[_0x2c26ec(0x231)+'uthUr'+'l'],{'method':_0x2c26ec(0x1fe),'headers':{'Content-Type':_0x2c26ec(0x234)+_0x2c26ec(0x1eb)+_0x2c26ec(0x193)+'n'},'body':JSON[_0x2c26ec(0x21b)+'gify']({'tool':_0x2c26ec(0x1e1)+'shTok'+'en','params':{'refreshToken':_0x1a2aec[_0x2c26ec(0x1e1)+_0x2c26ec(0x1a4)+'en']}})}),_0x199062=await _0x25d17e[_0x2c26ec(0x215)]();if(!_0x199062[_0x2c26ec(0x26b)+'ss']){if(_0x199062[_0x2c26ec(0x1ac)]===_0x2c26ec(0x1e1)+_0x2c26ec(0x270)+_0x2c26ec(0x175)+_0x2c26ec(0x222)+'d')throw new Error(_0x2322f2[_0x2c26ec(0x20a)]);throw new Error('刷新\x20To'+_0x2c26ec(0x26c)+_0x2c26ec(0x1bd)+_0x199062[_0x2c26ec(0x1ac)]);}const _0x554fca={'accessToken':_0x199062[_0x2c26ec(0x1b4)][_0x2c26ec(0x1c4)+_0x2c26ec(0x256)+'n'],'refreshToken':_0x199062[_0x2c26ec(0x1b4)]['refre'+_0x2c26ec(0x1a4)+'en'],'expiresIn':_0x199062[_0x2c26ec(0x1b4)][_0x2c26ec(0x22f)+'esIn'],'tokenType':_0x199062[_0x2c26ec(0x1b4)][_0x2c26ec(0x1e3)+_0x2c26ec(0x278)],'expiresAt':Date[_0x2c26ec(0x1aa)]()+_0x199062[_0x2c26ec(0x1b4)][_0x2c26ec(0x22f)+_0x2c26ec(0x21e)]*0x3e8};return await this[_0x2c26ec(0x1e3)+_0x2c26ec(0x1c2)+'ge'][_0x2c26ec(0x19d)](_0x554fca),_0x554fca;}catch(_0x55a498){throw _0x55a498;}}async[_0x5b4e94(0x1ee)+_0x5b4e94(0x1fd)+_0x5b4e94(0x1cf)](){const _0x4c54b8=_0x5b4e94,_0x1b3d90={'SAfsV':_0x4c54b8(0x27c)+'\x20Toke'+_0x4c54b8(0x1ae)+'权','FnwLw':function(_0x220f6a,_0xffe2b4){return _0x220f6a*_0xffe2b4;},'IYDzw':function(_0x1983cf,_0x2215df){return _0x1983cf>_0x2215df;}},_0x5f4390=await this[_0x4c54b8(0x1e3)+_0x4c54b8(0x1c2)+'ge'][_0x4c54b8(0x199)]();if(!_0x5f4390)throw new Error(_0x1b3d90[_0x4c54b8(0x21a)]);const _0x528bf0=_0x1b3d90[_0x4c54b8(0x1f7)](0x5*0x3c,0x3e8);if(_0x1b3d90['IYDzw'](Date['now']()+_0x528bf0,_0x5f4390[_0x4c54b8(0x22f)+'esAt']))return await this['refre'+_0x4c54b8(0x1a4)+'en']();return _0x5f4390;}['delay'](_0x411602){return new Promise(_0x21d2db=>setTimeout(_0x21d2db,_0x411602));}async[_0x5b4e94(0x255)+_0x5b4e94(0x1a6)+'ate'](_0x11d8da){const _0x441d27=_0x5b4e94,_0x5d2b38={'eRPKT':function(_0x32b34e,_0x456a61){return _0x32b34e(_0x456a61);}};try{const _0x4d2b9e=require('fs')[_0x441d27(0x208)+_0x441d27(0x1af)],_0x28327c=_0x5d2b38[_0x441d27(0x25a)](require,_0x441d27(0x26d)),_0x3b2f72=require('os'),_0x32f82e=_0x28327c[_0x441d27(0x1b6)](_0x3b2f72[_0x441d27(0x237)+'ir'](),_0x441d27(0x217)+_0x441d27(0x172)+'ep',_0x441d27(0x268)+_0x441d27(0x252)+'.json'),_0x5a1af8=_0x28327c[_0x441d27(0x26e)+'me'](_0x32f82e);await _0x4d2b9e['mkdir'](_0x5a1af8,{'recursive':!![]}),await _0x4d2b9e[_0x441d27(0x168)](_0x5a1af8,0x1c0)[_0x441d27(0x24f)](()=>{}),await _0x4d2b9e[_0x441d27(0x1e7)+_0x441d27(0x174)](_0x32f82e,JSON['strin'+_0x441d27(0x17e)](_0x11d8da,null,0x2),{'mode':0x180});}catch(_0x3b2b95){}}async['loadA'+'uthSt'+_0x5b4e94(0x1e9)](){const _0x52fef4=_0x5b4e94,_0x4e4879={'FFOdD':_0x52fef4(0x26d),'iaBxF':function(_0x1e9458,_0x296a27){return _0x1e9458===_0x296a27;}};try{const _0x1961cf=require('fs')['promi'+_0x52fef4(0x1af)],_0x580c43=require(_0x4e4879[_0x52fef4(0x1c9)]),_0x56239f=require('os'),_0x357cad=_0x580c43[_0x52fef4(0x1b6)](_0x56239f['homed'+'ir'](),_0x52fef4(0x217)+_0x52fef4(0x172)+'ep',_0x52fef4(0x268)+_0x52fef4(0x252)+_0x52fef4(0x219)),_0x266d83=await _0x1961cf[_0x52fef4(0x1de)+_0x52fef4(0x1f6)](_0x357cad,'utf8');return JSON['parse'](_0x266d83);}catch(_0x238629){if(_0x4e4879[_0x52fef4(0x27e)](_0x238629[_0x52fef4(0x24d)],'ENOEN'+'T'))return null;return null;}}async[_0x5b4e94(0x25d)+_0x5b4e94(0x227)+_0x5b4e94(0x243)](){const _0x18a149=_0x5b4e94,_0x121041={'sUNXv':_0x18a149(0x26d),'fkGsk':function(_0x1968d9,_0x59ae9b){return _0x1968d9(_0x59ae9b);},'DvdPy':_0x18a149(0x217)+_0x18a149(0x172)+'ep'};try{const _0x13b41c=require('fs')[_0x18a149(0x208)+_0x18a149(0x1af)],_0x21b064=require(_0x121041[_0x18a149(0x198)]),_0x28f2c9=_0x121041[_0x18a149(0x1dc)](require,'os'),_0x6a121=_0x21b064[_0x18a149(0x1b6)](_0x28f2c9[_0x18a149(0x237)+'ir'](),_0x121041[_0x18a149(0x1df)],_0x18a149(0x268)+_0x18a149(0x252)+'.json');await _0x13b41c[_0x18a149(0x218)+'k'](_0x6a121);}catch(_0x2a6a9a){}}[_0x5b4e94(0x230)+_0x5b4e94(0x181)+_0x5b4e94(0x27a)+_0x5b4e94(0x21f)](_0x59a7e4,_0x91e85d=0x1e*0x3c*0x3e8){const _0x3d02c5=_0x5b4e94,_0x1e16eb={'lyyjo':function(_0x542338,_0x49b94c){return _0x542338>_0x49b94c;}};if(_0x59a7e4&&_0x59a7e4['expir'+_0x3d02c5(0x17a)])return _0x1e16eb['lyyjo'](Date['now'](),_0x59a7e4[_0x3d02c5(0x22f)+_0x3d02c5(0x17a)]);if(!_0x59a7e4||!_0x59a7e4['times'+'tamp'])return!![];return Date[_0x3d02c5(0x1aa)]()-_0x59a7e4[_0x3d02c5(0x1a7)+_0x3d02c5(0x1d5)]>_0x91e85d;}}function _0x3d2e(_0x4c276c,_0x75862b){_0x4c276c=_0x4c276c-0x168;const _0xf9ed66=_0xf9ed();let _0x3d2eff=_0xf9ed66[_0x4c276c];if(_0x3d2e['yZrZUh']===undefined){var _0x548753=function(_0xcf00fa){const _0x36af83='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4c7cb8='',_0x3906b6='';for(let _0x2c31d8=0x0,_0x4c3905,_0x237ba4,_0x152741=0x0;_0x237ba4=_0xcf00fa['charAt'](_0x152741++);~_0x237ba4&&(_0x4c3905=_0x2c31d8%0x4?_0x4c3905*0x40+_0x237ba4:_0x237ba4,_0x2c31d8++%0x4)?_0x4c7cb8+=String['fromCharCode'](0xff&_0x4c3905>>(-0x2*_0x2c31d8&0x6)):0x0){_0x237ba4=_0x36af83['indexOf'](_0x237ba4);}for(let _0x249be0=0x0,_0x318aa4=_0x4c7cb8['length'];_0x249be0<_0x318aa4;_0x249be0++){_0x3906b6+='%'+('00'+_0x4c7cb8['charCodeAt'](_0x249be0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3906b6);};_0x3d2e['vOfRMV']=_0x548753,_0x3d2e['jAAUui']={},_0x3d2e['yZrZUh']=!![];}const _0x2ea293=_0xf9ed66[0x0],_0x23a8c6=_0x4c276c+_0x2ea293,_0x87d54f=_0x3d2e['jAAUui'][_0x23a8c6];return!_0x87d54f?(_0x3d2eff=_0x3d2e['vOfRMV'](_0x3d2eff),_0x3d2e['jAAUui'][_0x23a8c6]=_0x3d2eff):_0x3d2eff=_0x87d54f,_0x3d2eff;}class TokenStorage{async[_0x5b4e94(0x19d)](_0xb60b37){const _0x3bdce2=_0x5b4e94;throw new Error(_0x3bdce2(0x180)+'Stora'+_0x3bdce2(0x1b2)+_0x3bdce2(0x1f5)+_0x3bdce2(0x1ad));}async[_0x5b4e94(0x199)](){const _0x344977=_0x5b4e94;throw new Error(_0x344977(0x180)+_0x344977(0x1c2)+_0x344977(0x183)+_0x344977(0x236)+_0x344977(0x1ad));}async[_0x5b4e94(0x25d)](){const _0x3d02b2=_0x5b4e94;throw new Error(_0x3d02b2(0x180)+_0x3d02b2(0x1c2)+_0x3d02b2(0x204)+_0x3d02b2(0x1a5)+_0x3d02b2(0x1d6)+'现');}}function getMachineId(){const _0x1a4877=_0x5b4e94,_0x5dd6dc={'vOMaD':function(_0x594966,_0x4e289a){return _0x594966(_0x4e289a);},'ETcOi':_0x1a4877(0x1b1)+_0x1a4877(0x1a3)+_0x1a4877(0x18b)+'00','qXLDh':_0x1a4877(0x246)},_0x28b01c=_0x5dd6dc[_0x1a4877(0x1b0)](require,'os'),_0x2d748c=_0x28b01c['netwo'+'rkInt'+_0x1a4877(0x1a8)+'es']();let _0x3320e8='';for(const _0x43e7ce of Object[_0x1a4877(0x253)](_0x2d748c)){for(const _0x394ef5 of _0x2d748c[_0x43e7ce]){if(_0x394ef5[_0x1a4877(0x273)]&&_0x394ef5[_0x1a4877(0x273)]!==_0x5dd6dc[_0x1a4877(0x184)]){_0x3320e8=_0x394ef5['mac'];break;}}if(_0x3320e8)break;}const _0x25ce64=_0x3320e8+'-'+_0x28b01c[_0x1a4877(0x24a)+_0x1a4877(0x1b8)]()+'-'+_0x28b01c[_0x1a4877(0x244)+_0x1a4877(0x1be)]();return crypto[_0x1a4877(0x182)+_0x1a4877(0x1cb)](_0x1a4877(0x18d)+'6')['updat'+'e'](_0x25ce64)[_0x1a4877(0x257)+'t'](_0x5dd6dc[_0x1a4877(0x265)])['subst'+_0x1a4877(0x16b)](0x0,0x20);}function encryptToken(_0xc43f72,_0x3700d5){const _0x478c3e=_0x5b4e94,_0x1ead75={'qQqlX':'utf8','kuszT':_0x478c3e(0x246),'LVRAk':function(_0x28a8f5,_0x57397f){return _0x28a8f5+_0x57397f;}},_0x13dc44=crypto[_0x478c3e(0x212)+_0x478c3e(0x25e)+'s'](0x10),_0x7eb1bb=crypto[_0x478c3e(0x182)+_0x478c3e(0x19c)+_0x478c3e(0x251)]('aes-2'+'56-cb'+'c',Buffer[_0x478c3e(0x22b)](_0x3700d5),_0x13dc44);let _0x29a3a5=_0x7eb1bb[_0x478c3e(0x23f)+'e'](JSON[_0x478c3e(0x21b)+_0x478c3e(0x17e)](_0xc43f72),_0x1ead75['qQqlX'],_0x478c3e(0x246));return _0x29a3a5+=_0x7eb1bb[_0x478c3e(0x16d)](_0x1ead75['kuszT']),_0x1ead75['LVRAk'](_0x13dc44[_0x478c3e(0x23e)+'ing'](_0x478c3e(0x246))+':',_0x29a3a5);}function decryptToken(_0x547028,_0x2e145c){const _0x2bc620=_0x5b4e94,_0x99e761={'IzKsy':_0x2bc620(0x246),'qfKMt':_0x2bc620(0x1f8)},_0x2650a7=_0x547028[_0x2bc620(0x170)](':'),_0x214001=Buffer['from'](_0x2650a7[0x0],_0x99e761[_0x2bc620(0x210)]),_0x160bdf=_0x2650a7[0x1],_0x25c5f1=crypto[_0x2bc620(0x182)+_0x2bc620(0x20b)+'pheri'+'v'](_0x2bc620(0x25f)+_0x2bc620(0x173)+'c',Buffer[_0x2bc620(0x22b)](_0x2e145c),_0x214001);let _0x16e991=_0x25c5f1[_0x2bc620(0x23f)+'e'](_0x160bdf,_0x99e761[_0x2bc620(0x210)],_0x2bc620(0x1f8));return _0x16e991+=_0x25c5f1[_0x2bc620(0x16d)](_0x99e761['qfKMt']),JSON[_0x2bc620(0x261)](_0x16e991);}class FileTokenStorage extends TokenStorage{constructor(_0x322dc2){const _0x8c55b6=_0x5b4e94;super(),this['fileP'+_0x8c55b6(0x1e5)]=_0x322dc2,this['fs']=require('fs')['promi'+_0x8c55b6(0x1af)],this[_0x8c55b6(0x26d)]=require('path'),this[_0x8c55b6(0x233)]=getMachineId();}async[_0x5b4e94(0x19d)](_0x2808f6){const _0x453d4c=_0x5b4e94,_0x3c30bb=this[_0x453d4c(0x26d)]['dirna'+'me'](this[_0x453d4c(0x195)+'ath']);await this['fs'][_0x453d4c(0x177)](_0x3c30bb,{'recursive':!![]});const _0x2f8066=encryptToken(_0x2808f6,this[_0x453d4c(0x233)]),_0x415671={'version':'2.0','encrypted':_0x2f8066,'algorithm':'aes-2'+'56-cb'+'c','updatedAt':new Date()[_0x453d4c(0x220)+_0x453d4c(0x250)+'g']()};await this['fs'][_0x453d4c(0x1e7)+_0x453d4c(0x174)](this[_0x453d4c(0x195)+_0x453d4c(0x1e5)],JSON['strin'+_0x453d4c(0x17e)](_0x415671,null,0x2),_0x453d4c(0x1f8)),await this['fs'][_0x453d4c(0x168)](this[_0x453d4c(0x195)+_0x453d4c(0x1e5)],0x180);}async[_0x5b4e94(0x199)](){const _0x450bb7=_0x5b4e94,_0x32161f={'ctLbl':'检测到旧版'+'\x20Toke'+_0x450bb7(0x190)+_0x450bb7(0x258)+'..'};try{const _0x8314e5=await this['fs'][_0x450bb7(0x1de)+_0x450bb7(0x1f6)](this['fileP'+_0x450bb7(0x1e5)],_0x450bb7(0x1f8)),_0x34761e=JSON['parse'](_0x8314e5);if(!_0x34761e[_0x450bb7(0x1cc)+'on']||_0x34761e['versi'+'on']===_0x450bb7(0x1a9))return console['error'](_0x32161f['ctLbl']),{'accessToken':_0x34761e[_0x450bb7(0x1c4)+_0x450bb7(0x256)+'n'],'refreshToken':_0x34761e[_0x450bb7(0x1e1)+'shTok'+'en'],'expiresAt':_0x34761e[_0x450bb7(0x22f)+_0x450bb7(0x17a)],'expiresIn':_0x34761e[_0x450bb7(0x22f)+_0x450bb7(0x21e)],'tokenType':_0x34761e[_0x450bb7(0x1e3)+_0x450bb7(0x278)]};return decryptToken(_0x34761e[_0x450bb7(0x229)+_0x450bb7(0x279)],this[_0x450bb7(0x233)]);}catch(_0x3ce2df){if(_0x3ce2df[_0x450bb7(0x24d)]==='ENOEN'+'T')return null;throw _0x3ce2df;}}async[_0x5b4e94(0x25d)](){const _0x1bdb4a=_0x5b4e94;try{await this['fs']['unlin'+'k'](this['fileP'+_0x1bdb4a(0x1e5)]);}catch(_0x544b66){if(_0x544b66[_0x1bdb4a(0x24d)]!=='ENOEN'+'T')throw _0x544b66;}}async['saveA'+'gentN'+_0x5b4e94(0x1b8)](_0x7b7cad){const _0x40cea1=_0x5b4e94,_0x33a0bd={'CJrfb':function(_0x3da87e,_0x511e99){return _0x3da87e||_0x511e99;},'BZzwB':'utf8'};try{const _0x1ee965=this[_0x40cea1(0x26d)]['join'](this[_0x40cea1(0x26d)][_0x40cea1(0x26e)+'me'](this[_0x40cea1(0x195)+_0x40cea1(0x1e5)]),_0x40cea1(0x171)+_0x40cea1(0x18a)+_0x40cea1(0x219)),_0x3fa912={'agentName':_0x33a0bd[_0x40cea1(0x22e)](_0x7b7cad,_0x40cea1(0x16c)+'手'),'updatedAt':new Date()[_0x40cea1(0x220)+_0x40cea1(0x250)+'g']()},_0x3b42eb=JSON[_0x40cea1(0x21b)+_0x40cea1(0x17e)](_0x3fa912,null,0x2)[_0x40cea1(0x1c8)+'ce'](/\\u[\dA-F]{4}/gi,_0x16b092=>String[_0x40cea1(0x27b)+_0x40cea1(0x21c)+'de'](parseInt(_0x16b092[_0x40cea1(0x1c8)+'ce'](/\\u/g,''),0x10)));await this['fs']['write'+_0x40cea1(0x174)](_0x1ee965,_0x3b42eb,_0x33a0bd[_0x40cea1(0x1ed)]),console['error'](_0x40cea1(0x1d4)+_0x40cea1(0x20d)+_0x40cea1(0x196),_0x1ee965);}catch(_0x5ece3d){console[_0x40cea1(0x1ac)](_0x40cea1(0x1f2)+_0x40cea1(0x214)+'\x20名称失败'+':',_0x5ece3d[_0x40cea1(0x224)+'ge']);}}async['loadA'+_0x5b4e94(0x235)+_0x5b4e94(0x1b8)](){const _0x3b23c3=_0x5b4e94,_0x1bfa70={'DAXaI':_0x3b23c3(0x1f8)};try{const _0x36bc01=this['path'][_0x3b23c3(0x1b6)](this[_0x3b23c3(0x26d)][_0x3b23c3(0x26e)+'me'](this[_0x3b23c3(0x195)+_0x3b23c3(0x1e5)]),'agent'+'-name'+'.json'),_0x40c5bc=await this['fs'][_0x3b23c3(0x1de)+_0x3b23c3(0x1f6)](_0x36bc01,_0x1bfa70[_0x3b23c3(0x1ba)]),_0xde9d1a=JSON['parse'](_0x40c5bc);return _0xde9d1a['agent'+_0x3b23c3(0x1cd)]||'柴米AI助'+'手';}catch(_0x1ba915){return'柴米AI助'+'手';}}async[_0x5b4e94(0x1e6)+_0x5b4e94(0x22c)+_0x5b4e94(0x25c)](_0x269a9e){const _0xbfea88=_0x5b4e94,_0x22b05c={'VzXfc':_0xbfea88(0x1d9)+_0xbfea88(0x275)+_0xbfea88(0x19a)+'n','EaKKd':_0xbfea88(0x1f8)};try{const _0x1b0053=this['path'][_0xbfea88(0x1b6)](this['path'][_0xbfea88(0x26e)+'me'](this['fileP'+'ath']),_0x22b05c[_0xbfea88(0x1e2)]),_0x459661={'deviceCode':_0x269a9e,'updatedAt':new Date()['toISO'+_0xbfea88(0x250)+'g']()};await this['fs'][_0xbfea88(0x1e7)+'File'](_0x1b0053,JSON[_0xbfea88(0x21b)+_0xbfea88(0x17e)](_0x459661,null,0x2),_0x22b05c['EaKKd']);}catch(_0x40f6b6){}}async[_0x5b4e94(0x1d2)+'evice'+_0x5b4e94(0x25c)](){const _0x1296ed=_0x5b4e94;try{const _0x177c76=this[_0x1296ed(0x26d)][_0x1296ed(0x1b6)](this[_0x1296ed(0x26d)]['dirna'+'me'](this['fileP'+_0x1296ed(0x1e5)]),_0x1296ed(0x1d9)+_0x1296ed(0x275)+_0x1296ed(0x19a)+'n'),_0x235f3e=await this['fs'][_0x1296ed(0x1de)+_0x1296ed(0x1f6)](_0x177c76,_0x1296ed(0x1f8)),_0x1a92d2=JSON[_0x1296ed(0x261)](_0x235f3e);return _0x1a92d2[_0x1296ed(0x1d9)+'eCode'];}catch(_0x701cfa){return null;}}}module[_0x5b4e94(0x1a0)+'ts']={'OAuthManager':OAuthManager,'TokenStorage':TokenStorage,'FileTokenStorage':FileTokenStorage};
|
|
1
|
+
const _0x32cdb4=_0x2846;(function(_0x1110b6,_0x370b88){const _0x2ac8be=_0x2846,_0x105349=_0x1110b6();while(!![]){try{const _0x2ffbc5=parseInt(_0x2ac8be(0x136))/0x1*(parseInt(_0x2ac8be(0xd9))/0x2)+parseInt(_0x2ac8be(0x1d5))/0x3+-parseInt(_0x2ac8be(0x106))/0x4+parseInt(_0x2ac8be(0x19e))/0x5+parseInt(_0x2ac8be(0x113))/0x6*(-parseInt(_0x2ac8be(0xe2))/0x7)+parseInt(_0x2ac8be(0x116))/0x8*(-parseInt(_0x2ac8be(0xf2))/0x9)+-parseInt(_0x2ac8be(0xef))/0xa;if(_0x2ffbc5===_0x370b88)break;else _0x105349['push'](_0x105349['shift']());}catch(_0x5411d1){_0x105349['push'](_0x105349['shift']());}}}(_0x3fc2,0x4f23d));const fetch=require(_0x32cdb4(0x11e)+_0x32cdb4(0x18c)),{exec}=require(_0x32cdb4(0x11b)+_0x32cdb4(0x187)+_0x32cdb4(0x17f)),util=require(_0x32cdb4(0xf6)),execPromise=util[_0x32cdb4(0x143)+_0x32cdb4(0x1bc)](exec),crypto=require('crypt'+'o');class OAuthManager{constructor(_0xd5669f){const _0x47a79d=_0x32cdb4,_0x3a7bb5={'PpTPX':function(_0x41cff4,_0x24992d){return _0x41cff4!==_0x24992d;}};this[_0x47a79d(0x137)+_0x47a79d(0x19d)+'l']=_0xd5669f[_0x47a79d(0x137)+_0x47a79d(0x19d)+'l'],this[_0x47a79d(0x1d6)+_0x47a79d(0x1de)+'ge']=_0xd5669f[_0x47a79d(0x1d6)+'Stora'+'ge'],this[_0x47a79d(0x1bf)+_0x47a79d(0xe3)]=_0xd5669f[_0x47a79d(0x1bf)+_0x47a79d(0xe3)],this[_0x47a79d(0x1ec)+'enRea'+'dy']=_0xd5669f['onTok'+'enRea'+'dy'],this[_0x47a79d(0x1d0)+'rUrlS'+_0x47a79d(0x1b6)]=_0x3a7bb5[_0x47a79d(0x14b)](_0xd5669f['prefe'+'rUrlS'+_0x47a79d(0x1b6)],![]);}async[_0x32cdb4(0x184)+_0x32cdb4(0xf7)+'ronme'+'nt'](){const _0x50f829=_0x32cdb4,_0x347f38={'UuzmV':_0x50f829(0x103)+'n','fNdVh':function(_0x3fc4bc,_0x38dedb){return _0x3fc4bc===_0x38dedb;}};if(process.env.DISPLAY)return{'supportsBrowser':!![],'platform':_0x50f829(0x1c1)+_0x50f829(0x19c)};if(process[_0x50f829(0x168)+'orm']===_0x347f38['UuzmV'])return{'supportsBrowser':!![],'platform':_0x50f829(0x14c)};if(_0x347f38[_0x50f829(0x138)](process[_0x50f829(0x168)+'orm'],_0x50f829(0x1b3)))return{'supportsBrowser':!![],'platform':'windo'+'ws'};if(process.env.BROWSER)return{'supportsBrowser':!![],'platform':_0x50f829(0x140)+'m'};return{'supportsBrowser':![],'platform':_0x50f829(0xde)};}async[_0x32cdb4(0x163)+_0x32cdb4(0x1ac)+'low'](){const _0x8e94e5=_0x32cdb4,_0x546305={'CfKCs':function(_0xa2fe9a,_0x51608c){return _0xa2fe9a*_0x51608c;}};try{const _0x2fbe98=await this[_0x8e94e5(0x184)+_0x8e94e5(0xf7)+_0x8e94e5(0x198)+'nt'](),_0x58d4ea=this['prefe'+_0x8e94e5(0x12c)+_0x8e94e5(0x1b6)]&&_0x2fbe98[_0x8e94e5(0x108)+_0x8e94e5(0x1a3)+_0x8e94e5(0x18b)],_0x1c5a36=await this[_0x8e94e5(0x109)+_0x8e94e5(0x193)+_0x8e94e5(0x154)+'de'](_0x58d4ea);await this[_0x8e94e5(0x1ae)+_0x8e94e5(0x191)+_0x8e94e5(0x1b5)]({'deviceCode':_0x1c5a36[_0x8e94e5(0x1ea)+_0x8e94e5(0x1c9)],'userCode':_0x1c5a36[_0x8e94e5(0x11d)+_0x8e94e5(0xe3)],'timestamp':Date[_0x8e94e5(0x1b9)](),'status':_0x8e94e5(0x10a)+'ng'});_0x58d4ea&&_0x1c5a36[_0x8e94e5(0x199)+_0x8e94e5(0x180)]?await this[_0x8e94e5(0x12f)+_0x8e94e5(0x13a)+_0x8e94e5(0x1c2)+_0x8e94e5(0x15a)+'me'](_0x1c5a36):await this[_0x8e94e5(0x12f)+_0x8e94e5(0x13a)+_0x8e94e5(0x1b8)+_0x8e94e5(0x100)+'low'](_0x1c5a36);console[_0x8e94e5(0x123)](''),console[_0x8e94e5(0x123)]('⏳\x20等待用'+_0x8e94e5(0x1d1)+'勿关闭窗口'+_0x8e94e5(0x12a)),console['error'](_0x8e94e5(0xdc)+_0x8e94e5(0x120)+'中完成授权'+_0x8e94e5(0x1e3)),console[_0x8e94e5(0x123)]('');const _0x48f04b=await this[_0x8e94e5(0x1a6)+'orTok'+'en'](_0x1c5a36['devic'+_0x8e94e5(0x1c9)],_0x546305[_0x8e94e5(0xdd)](_0x1c5a36[_0x8e94e5(0x11f)+_0x8e94e5(0x157)],0x3e8)||0x1388);return await this['token'+'Stora'+'ge']['save'](_0x48f04b),this[_0x8e94e5(0x1ec)+_0x8e94e5(0x147)+'dy']&&this[_0x8e94e5(0x1ec)+_0x8e94e5(0x147)+'dy'](_0x48f04b),_0x48f04b;}catch(_0x5d738e){throw _0x5d738e;}}async['autho'+_0x32cdb4(0x13a)+'ithUr'+_0x32cdb4(0x15a)+'me'](_0x34b001){const _0x26f8a5=_0x32cdb4,_0x1d231b=this['detec'+_0x26f8a5(0x17b)+'leEnv'+_0x26f8a5(0x128)+_0x26f8a5(0x1ba)]();if(_0x1d231b){const _0x7cc0fc=_0x34b001['urlSc'+'heme']||_0x34b001[_0x26f8a5(0x13d)+_0x26f8a5(0x197)+'onUri'+_0x26f8a5(0x171)];try{await this[_0x26f8a5(0x1da)+'rowse'+'r'](_0x7cc0fc);}catch(_0x490774){}}else{const _0x1f1c46=_0x26f8a5(0xda)+_0x26f8a5(0x1a4)+_0x26f8a5(0x17d)+_0x26f8a5(0xf1)+'com/a'+_0x26f8a5(0xf0)+'evice'+_0x26f8a5(0x1c8)+_0x34b001['devic'+_0x26f8a5(0x1c9)]+(_0x26f8a5(0x1f4)+_0x26f8a5(0x1c8))+_0x34b001[_0x26f8a5(0x11d)+_0x26f8a5(0xe3)];this[_0x26f8a5(0x1bf)+_0x26f8a5(0xe3)]&&await this[_0x26f8a5(0x1bf)+_0x26f8a5(0xe3)]({'userCode':_0x34b001[_0x26f8a5(0x11d)+_0x26f8a5(0xe3)],'verificationUri':_0x34b001[_0x26f8a5(0x13d)+'icati'+_0x26f8a5(0x151)],'deviceCode':_0x34b001['devic'+_0x26f8a5(0x1c9)],'qrCodeUrl':_0x1f1c46,'isPC':!![]});}}['detec'+_0x32cdb4(0x17b)+_0x32cdb4(0x1c7)+_0x32cdb4(0x128)+_0x32cdb4(0x1ba)](){const _0x403005=_0x32cdb4,_0x49f976={'HLcOB':_0x403005(0x134)+_0x403005(0x165)+_0x403005(0x1db)},_0x26c6b4=process.env.USER_AGENT||'';if(/iPhone|iPad|iPod|Android|Mobile/i[_0x403005(0xe9)](_0x26c6b4))return!![];if(process.env.TERM_PROGRAM===_0x49f976[_0x403005(0x118)]&&process[_0x403005(0x168)+_0x403005(0x19f)]==='darwi'+'n')return![];return![];}async[_0x32cdb4(0x12f)+_0x32cdb4(0x13a)+'ithDe'+_0x32cdb4(0x100)+_0x32cdb4(0x1e0)](_0x21aea3){const _0x5c0d8e=_0x32cdb4;this[_0x5c0d8e(0x1bf)+_0x5c0d8e(0xe3)]&&await this[_0x5c0d8e(0x1bf)+_0x5c0d8e(0xe3)]({'userCode':_0x21aea3['userC'+_0x5c0d8e(0xe3)],'verificationUri':_0x21aea3[_0x5c0d8e(0x13d)+_0x5c0d8e(0x197)+_0x5c0d8e(0x151)],'deviceCode':_0x21aea3['devic'+_0x5c0d8e(0x1c9)]});}async['openB'+_0x32cdb4(0x145)+'r'](_0x4d80c5){const _0x285e06=_0x32cdb4,_0x1010cc={'EuRaR':function(_0x9269d7,_0x95497d){return _0x9269d7===_0x95497d;},'moWcJ':function(_0xc84d78,_0x2549e9){return _0xc84d78===_0x2549e9;},'gBfQn':function(_0x27acd8,_0x26e9cc){return _0x27acd8(_0x26e9cc);}},_0x5706a8=process[_0x285e06(0x168)+_0x285e06(0x19f)];let _0x5862a2;if(_0x1010cc[_0x285e06(0x117)](_0x5706a8,_0x285e06(0x103)+'n'))_0x5862a2=_0x285e06(0x1e4)+'\x22'+_0x4d80c5+'\x22';else{if(_0x5706a8===_0x285e06(0x1b3))_0x5862a2=_0x285e06(0x163)+_0x285e06(0x119)+_0x4d80c5+'\x22';else{if(_0x1010cc['moWcJ'](_0x5706a8,_0x285e06(0x1c1)))_0x5862a2=_0x285e06(0x1b7)+_0x285e06(0x15b)+_0x4d80c5+'\x22';else throw new Error(_0x285e06(0x1f2)+'台');}}await _0x1010cc['gBfQn'](execPromise,_0x5862a2);}async[_0x32cdb4(0x109)+'stDev'+_0x32cdb4(0x154)+'de'](_0x474fe7=![]){const _0x2a8de6=_0x32cdb4,_0x45f3ac=await fetch(this['mcpOA'+_0x2a8de6(0x19d)+'l'],{'method':_0x2a8de6(0x18a),'headers':{'Content-Type':_0x2a8de6(0x164)+'catio'+_0x2a8de6(0x10d)+'n'},'body':JSON[_0x2a8de6(0x174)+_0x2a8de6(0x1a5)]({'tool':_0x2a8de6(0x1ea)+_0x2a8de6(0x1c9),'params':{'clientId':_0x2a8de6(0x16c)+'uo-mc'+_0x2a8de6(0x14a)+_0x2a8de6(0x1ba),'useUrlScheme':_0x474fe7}})}),_0x3aef8e=await _0x45f3ac[_0x2a8de6(0x14f)]();if(!_0x3aef8e[_0x2a8de6(0x166)+'ss'])throw new Error(_0x2a8de6(0xff)+_0x2a8de6(0x152)+_0x3aef8e[_0x2a8de6(0x123)]);return _0x3aef8e[_0x2a8de6(0xe8)];}async[_0x32cdb4(0x1a6)+_0x32cdb4(0x1cc)+_0x32cdb4(0x175)+'e'](_0x5be53f){const _0xd3173d=_0x32cdb4,_0x343151={'UVNJB':function(_0x431c8f,_0x11940a){return _0x431c8f+_0x11940a;},'eaLtu':function(_0x439540,_0x4726c1){return _0x439540*_0x4726c1;},'RXmKV':function(_0x138a17,_0x487c58){return _0x138a17===_0x487c58;},'VInVq':'expir'+'ed_to'+'ken','zISrB':function(_0x4516e4,_0x9e2743){return _0x4516e4===_0x9e2743;}};try{const _0x29bb56=await fetch(this[_0xd3173d(0x137)+_0xd3173d(0x19d)+'l'],{'method':'POST','headers':{'Content-Type':_0xd3173d(0x164)+'catio'+_0xd3173d(0x10d)+'n'},'body':JSON[_0xd3173d(0x174)+_0xd3173d(0x1a5)]({'tool':_0xd3173d(0x1ea)+_0xd3173d(0x107)+'n','params':{'deviceCode':_0x5be53f}})}),_0x5e265c=await _0x29bb56[_0xd3173d(0x14f)]();if(_0x5e265c[_0xd3173d(0x166)+'ss'])return{'accessToken':_0x5e265c['data']['acces'+_0xd3173d(0x1dc)+'n'],'refreshToken':_0x5e265c['data']['refre'+_0xd3173d(0x115)+'en'],'expiresIn':_0x5e265c['data'][_0xd3173d(0xe4)+_0xd3173d(0x1e8)],'tokenType':_0x5e265c['data']['token'+_0xd3173d(0x150)],'expiresAt':_0x343151[_0xd3173d(0x13f)](Date[_0xd3173d(0x1b9)](),_0x343151[_0xd3173d(0x15e)](_0x5e265c[_0xd3173d(0xe8)]['expir'+'esIn'],0x3e8))};if(_0x343151[_0xd3173d(0x126)](_0x5e265c['error'],_0xd3173d(0x12f)+_0xd3173d(0x149)+_0xd3173d(0x16b)+'endin'+'g'))return null;if(_0x5e265c['error']===_0x343151[_0xd3173d(0xee)])throw new Error(_0xd3173d(0x1a7)+_0xd3173d(0x1c5)+'授权');if(_0x343151['zISrB'](_0x5e265c[_0xd3173d(0x123)],_0xd3173d(0x1a8)+_0xd3173d(0x196)+_0xd3173d(0x15d)+_0xd3173d(0x10b)))throw new Error(_0xd3173d(0x129)+'码');throw new Error(_0xd3173d(0x122)+_0xd3173d(0x19b)+_0xd3173d(0xfd)+_0x5e265c['error']);}catch(_0x4caf9a){throw _0x4caf9a;}}async[_0x32cdb4(0x1a6)+_0x32cdb4(0x1cc)+'en'](_0x14cbf5,_0x4fa669){const _0x33547c=_0x32cdb4,_0x479fe6={'nQkPU':function(_0x35b635,_0x5469c1){return _0x35b635<_0x5469c1;},'lgiOE':'inval'+'id'},_0x4a5eaa=0x3c;let _0x2fea04=0x0;while(_0x479fe6[_0x33547c(0x1f0)](_0x2fea04,_0x4a5eaa)){_0x2fea04++,await this[_0x33547c(0x18d)](_0x4fa669);try{const _0x39a1f1=await this[_0x33547c(0x1a6)+_0x33547c(0x1cc)+'enOnc'+'e'](_0x14cbf5);if(_0x39a1f1)return _0x39a1f1;}catch(_0x5d78c0){if(_0x5d78c0['messa'+'ge'][_0x33547c(0xfa)+'des']('expir'+'ed')||_0x5d78c0[_0x33547c(0x156)+'ge'][_0x33547c(0xfa)+_0x33547c(0x172)](_0x479fe6[_0x33547c(0x160)]))throw _0x5d78c0;}}throw new Error(_0x33547c(0xdb)+_0x33547c(0x155));}async[_0x32cdb4(0x1d2)+_0x32cdb4(0x115)+'en'](){const _0x239ce8=_0x32cdb4,_0xa85a1c={'xzHIb':function(_0x4bdae1,_0x29e072,_0x397033){return _0x4bdae1(_0x29e072,_0x397033);},'IKrrP':function(_0x4f3881,_0x386f01){return _0x4f3881===_0x386f01;},'XXcQw':_0x239ce8(0x1d2)+_0x239ce8(0x13c)+_0x239ce8(0xe6)+'xpire'+'d','RxPtN':_0x239ce8(0x1f3)+_0x239ce8(0x146)+_0x239ce8(0x105)+_0x239ce8(0x12d)+_0x239ce8(0x181),'esiLg':function(_0xcb60af,_0x3d882d){return _0xcb60af+_0x3d882d;}},_0x2d02f8=await this[_0x239ce8(0x1d6)+_0x239ce8(0x1de)+'ge']['load']();if(!_0x2d02f8||!_0x2d02f8[_0x239ce8(0x1d2)+'shTok'+'en'])throw new Error('没有可用的'+_0x239ce8(0x161)+_0x239ce8(0x110)+_0x239ce8(0x10e)+'需要重新授'+'权');try{const _0x463bff=await _0xa85a1c[_0x239ce8(0x158)](fetch,this[_0x239ce8(0x137)+_0x239ce8(0x19d)+'l'],{'method':_0x239ce8(0x18a),'headers':{'Content-Type':_0x239ce8(0x164)+_0x239ce8(0x153)+'n/jso'+'n'},'body':JSON[_0x239ce8(0x174)+'gify']({'tool':'refre'+_0x239ce8(0x115)+'en','params':{'refreshToken':_0x2d02f8[_0x239ce8(0x1d2)+'shTok'+'en']}})}),_0x212195=await _0x463bff['json']();if(!_0x212195[_0x239ce8(0x166)+'ss']){if(_0xa85a1c[_0x239ce8(0x121)](_0x212195['error'],_0xa85a1c[_0x239ce8(0xed)]))throw new Error(_0xa85a1c[_0x239ce8(0x124)]);throw new Error(_0x239ce8(0x169)+_0x239ce8(0x19b)+'败:\x20'+_0x212195['error']);}const _0x4ab9a4={'accessToken':_0x212195[_0x239ce8(0xe8)]['acces'+_0x239ce8(0x1dc)+'n'],'refreshToken':_0x212195[_0x239ce8(0xe8)][_0x239ce8(0x1d2)+_0x239ce8(0x115)+'en'],'expiresIn':_0x212195[_0x239ce8(0xe8)][_0x239ce8(0xe4)+_0x239ce8(0x1e8)],'tokenType':_0x212195['data']['token'+'Type'],'expiresAt':_0xa85a1c['esiLg'](Date[_0x239ce8(0x1b9)](),_0x212195[_0x239ce8(0xe8)][_0x239ce8(0xe4)+_0x239ce8(0x1e8)]*0x3e8)};return await this[_0x239ce8(0x1d6)+_0x239ce8(0x1de)+'ge']['save'](_0x4ab9a4),_0x4ab9a4;}catch(_0x563dd0){throw _0x563dd0;}}async['getVa'+_0x32cdb4(0xe0)+'ken'](){const _0x44899e=_0x32cdb4,_0x3b6ee1={'EShsW':function(_0x1782a2,_0x3fa779){return _0x1782a2*_0x3fa779;},'xMgIZ':function(_0x961dec,_0xcff988){return _0x961dec*_0xcff988;},'chuLi':function(_0x1c4b8a,_0x2e5e91){return _0x1c4b8a>_0x2e5e91;}},_0x17ab55=await this[_0x44899e(0x1d6)+_0x44899e(0x1de)+'ge'][_0x44899e(0x1a0)]();if(!_0x17ab55)throw new Error(_0x44899e(0x133)+_0x44899e(0x144)+_0x44899e(0x10c)+'权');const _0x173167=_0x3b6ee1['EShsW'](_0x3b6ee1[_0x44899e(0xf8)](0x5,0x3c),0x3e8);if(_0x3b6ee1['chuLi'](Date[_0x44899e(0x1b9)]()+_0x173167,_0x17ab55[_0x44899e(0xe4)+_0x44899e(0x141)]))return await this[_0x44899e(0x1d2)+_0x44899e(0x115)+'en']();return _0x17ab55;}[_0x32cdb4(0x18d)](_0x556743){return new Promise(_0x2fcb08=>setTimeout(_0x2fcb08,_0x556743));}async[_0x32cdb4(0x1ae)+_0x32cdb4(0x191)+_0x32cdb4(0x1b5)](_0x22d45f){const _0x505b3f=_0x32cdb4,_0x449e6d={'GiswN':_0x505b3f(0xf5)};try{const _0x39ef1a=require('fs')['promi'+'ses'],_0x70df2b=require(_0x449e6d['GiswN']),_0x3b7544=require('os'),_0x4273f5=_0x70df2b[_0x505b3f(0x192)](_0x3b7544['homed'+'ir'](),_0x505b3f(0xe7)+'mi-ke'+'ep',_0x505b3f(0x1cd)+_0x505b3f(0x101)+_0x505b3f(0x17a)),_0x3bd74e=_0x70df2b[_0x505b3f(0x190)+'me'](_0x4273f5);await _0x39ef1a[_0x505b3f(0x11a)](_0x3bd74e,{'recursive':!![]}),await _0x39ef1a[_0x505b3f(0x1dd)](_0x3bd74e,0x1c0)[_0x505b3f(0x1e7)](()=>{}),await _0x39ef1a[_0x505b3f(0x183)+_0x505b3f(0x188)](_0x4273f5,JSON[_0x505b3f(0x174)+'gify'](_0x22d45f,null,0x2),{'mode':0x180});}catch(_0x2310cd){}}async[_0x32cdb4(0x16f)+'uthSt'+'ate'](){const _0x4d9ddb=_0x32cdb4,_0x538e0c={'nQMRE':function(_0x468938,_0x1be54e){return _0x468938(_0x1be54e);},'ViNWj':function(_0x3b8b2d,_0x45973b){return _0x3b8b2d===_0x45973b;}};try{const _0x3a48cd=require('fs')[_0x4d9ddb(0x143)+_0x4d9ddb(0x18e)],_0x5cf74b=_0x538e0c[_0x4d9ddb(0x186)](require,'path'),_0x5aaf7f=require('os'),_0x5472fa=_0x5cf74b[_0x4d9ddb(0x192)](_0x5aaf7f[_0x4d9ddb(0x185)+'ir'](),_0x4d9ddb(0xe7)+'mi-ke'+'ep',_0x4d9ddb(0x1cd)+_0x4d9ddb(0x101)+_0x4d9ddb(0x17a)),_0x204cd2=await _0x3a48cd[_0x4d9ddb(0x12b)+_0x4d9ddb(0x1a1)](_0x5472fa,_0x4d9ddb(0x1aa));return JSON['parse'](_0x204cd2);}catch(_0x37660b){if(_0x538e0c[_0x4d9ddb(0xe1)](_0x37660b[_0x4d9ddb(0x10b)],_0x4d9ddb(0x162)+'T'))return null;return null;}}async[_0x32cdb4(0x1f1)+_0x32cdb4(0x1d3)+_0x32cdb4(0x19a)](){const _0x523654=_0x32cdb4,_0xeed98f={'OsRMR':_0x523654(0xf5)};try{const _0x346928=require('fs')[_0x523654(0x143)+'ses'],_0x162bf7=require(_0xeed98f[_0x523654(0x12e)]),_0x269296=require('os'),_0x2c0fe7=_0x162bf7[_0x523654(0x192)](_0x269296['homed'+'ir'](),_0x523654(0xe7)+_0x523654(0x176)+'ep','auth-'+_0x523654(0x101)+_0x523654(0x17a));await _0x346928[_0x523654(0x195)+'k'](_0x2c0fe7);}catch(_0x266428){}}[_0x32cdb4(0x1a2)+'hStat'+_0x32cdb4(0x1c3)+_0x32cdb4(0x1e1)](_0x36d83a,_0x2bcfc7=0x1e*0x3c*0x3e8){const _0x2b55f1=_0x32cdb4,_0x1d56eb={'mlDjC':function(_0x188394,_0x5c642b){return _0x188394>_0x5c642b;},'OJpRl':function(_0x426c26,_0x183661){return _0x426c26-_0x183661;}};if(_0x36d83a&&_0x36d83a[_0x2b55f1(0xe4)+_0x2b55f1(0x141)])return _0x1d56eb['mlDjC'](Date[_0x2b55f1(0x1b9)](),_0x36d83a['expir'+_0x2b55f1(0x141)]);if(!_0x36d83a||!_0x36d83a[_0x2b55f1(0x1be)+_0x2b55f1(0x10f)])return!![];return _0x1d56eb['OJpRl'](Date[_0x2b55f1(0x1b9)](),_0x36d83a[_0x2b55f1(0x1be)+'tamp'])>_0x2bcfc7;}}class TokenStorage{async[_0x32cdb4(0x102)](_0xe4f739){const _0x4f65ea=_0x32cdb4,_0x3b3007={'JRKEB':_0x4f65ea(0x135)+_0x4f65ea(0x1de)+_0x4f65ea(0x16e)+_0x4f65ea(0x1ee)+'被子类实现'};throw new Error(_0x3b3007[_0x4f65ea(0x112)]);}async[_0x32cdb4(0x1a0)](){const _0x58ced3=_0x32cdb4;throw new Error(_0x58ced3(0x135)+_0x58ced3(0x1de)+_0x58ced3(0x16d)+_0x58ced3(0x17c)+_0x58ced3(0x1ad));}async[_0x32cdb4(0x1f1)](){const _0x456cf8=_0x32cdb4;throw new Error(_0x456cf8(0x135)+_0x456cf8(0x1de)+'ge.cl'+_0x456cf8(0xfc)+_0x456cf8(0x14d)+'现');}}function _0x2846(_0x15ec5c,_0x214a59){_0x15ec5c=_0x15ec5c-0xd8;const _0x3fc2ae=_0x3fc2();let _0x28462b=_0x3fc2ae[_0x15ec5c];if(_0x2846['RvEqNu']===undefined){var _0x5d1203=function(_0x4f0fb6){const _0x4d0e39='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e8473='',_0x4d65c7='';for(let _0x401d6c=0x0,_0x5386fb,_0x4450cb,_0xfbe0a7=0x0;_0x4450cb=_0x4f0fb6['charAt'](_0xfbe0a7++);~_0x4450cb&&(_0x5386fb=_0x401d6c%0x4?_0x5386fb*0x40+_0x4450cb:_0x4450cb,_0x401d6c++%0x4)?_0x2e8473+=String['fromCharCode'](0xff&_0x5386fb>>(-0x2*_0x401d6c&0x6)):0x0){_0x4450cb=_0x4d0e39['indexOf'](_0x4450cb);}for(let _0x3fbc3c=0x0,_0x278a0c=_0x2e8473['length'];_0x3fbc3c<_0x278a0c;_0x3fbc3c++){_0x4d65c7+='%'+('00'+_0x2e8473['charCodeAt'](_0x3fbc3c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4d65c7);};_0x2846['cnjBij']=_0x5d1203,_0x2846['vngXsT']={},_0x2846['RvEqNu']=!![];}const _0x4ec4e6=_0x3fc2ae[0x0],_0x35f599=_0x15ec5c+_0x4ec4e6,_0x123c75=_0x2846['vngXsT'][_0x35f599];return!_0x123c75?(_0x28462b=_0x2846['cnjBij'](_0x28462b),_0x2846['vngXsT'][_0x35f599]=_0x28462b):_0x28462b=_0x123c75,_0x28462b;}function getMachineId(){const _0x11ef11=_0x32cdb4,_0x387f15={'fdmKS':function(_0x5b36c9,_0x48ffbb){return _0x5b36c9(_0x48ffbb);},'cHPiY':_0x11ef11(0x15f)+_0x11ef11(0x179)+_0x11ef11(0x139)+'00'},_0x36ea6f=_0x387f15['fdmKS'](require,'os'),_0x4230c6=_0x36ea6f[_0x11ef11(0x13b)+'rkInt'+_0x11ef11(0x17e)+'es']();let _0x100947='';for(const _0x37519e of Object['keys'](_0x4230c6)){for(const _0xb58dd of _0x4230c6[_0x37519e]){if(_0xb58dd[_0x11ef11(0xeb)]&&_0xb58dd[_0x11ef11(0xeb)]!==_0x387f15['cHPiY']){_0x100947=_0xb58dd[_0x11ef11(0xeb)];break;}}if(_0x100947)break;}const _0x10d138=_0x100947+'-'+_0x36ea6f[_0x11ef11(0x1cb)+_0x11ef11(0x173)]()+'-'+_0x36ea6f['platf'+_0x11ef11(0x19f)]();return crypto['creat'+_0x11ef11(0x131)]('sha25'+'6')[_0x11ef11(0x1b2)+'e'](_0x10d138)[_0x11ef11(0x1c6)+'t'](_0x11ef11(0x1ab))[_0x11ef11(0x1bd)+'ring'](0x0,0x20);}function encryptToken(_0xd9093d,_0xc60f56){const _0x2e83c1=_0x32cdb4,_0x44077b={'XiLnb':'hex','TLtYY':function(_0x5d64a7,_0x1daa68){return _0x5d64a7+_0x1daa68;}},_0x392053=crypto[_0x2e83c1(0xfe)+_0x2e83c1(0x1f5)+'s'](0x10),_0x215888=crypto[_0x2e83c1(0x1ca)+_0x2e83c1(0x127)+'eriv'](_0x2e83c1(0x1c4)+_0x2e83c1(0x1df)+'c',Buffer[_0x2e83c1(0xf4)](_0xc60f56),_0x392053);let _0x5868ec=_0x215888['updat'+'e'](JSON['strin'+_0x2e83c1(0x1a5)](_0xd9093d),_0x2e83c1(0x1aa),_0x2e83c1(0x1ab));return _0x5868ec+=_0x215888[_0x2e83c1(0x178)](_0x44077b[_0x2e83c1(0x16a)]),_0x44077b[_0x2e83c1(0x159)](_0x392053[_0x2e83c1(0x1bb)+_0x2e83c1(0x1e6)](_0x44077b[_0x2e83c1(0x16a)]),':')+_0x5868ec;}function _0x3fc2(){const _0x3ccc8a=['C3bSAxq','BgLKvg8','vMLov2O','ndLLDurJy1G','B2rL','zxHWAxi','u3rYAw4','A2vUx2u','lMnOywK','zgf0yq','DgvZDa','ywnJzxm','BwfJ','4P2mios/NEwTMca','wfHJuxC','vKLUvNe','otm5mdiWEKTTCvfQ','DxrOp2q','AwH1BY4','mZm3mtrQDe5st0y','6iEQ5yQO5y2h57QNlG','zNjVBq','Cgf0Aa','DxrPBa','DevUDMK','Ee1NsvO','zxHWB3i','Aw5JBhu','zs1JB2q','zwfYiow/Hq','6lsLoIa','CMfUzg8','6i635y+w6k6+5Ash56cb','DMLJzuy','C3rHDgu','C2f2zq','zgfYD2K','D0H0rNa','A2vUiow3SG','mtq4mdm0me9vCfLVAW','zvrVA2u','C3vWCg8','CMvXDwu','CgvUzgK','y29Kzq','BU+8JoIVT+wfIoAoIa','BI9QC28','B2TLBU+8Ja','DgfTCa','zxnOifq','CgHLCMK','sLjlrui','mZGWndu0zfjKuvvN','lw5HBwu','C2HuB2S','mJK2sujfCK9W','rxvsyvi','seXJt0i','iciIici','BwTKAxi','y2HPBgq','Fdf8ma','DxnLCKm','BM9Kzs0','Aw50zxi','5zYO5OMl5PY65B6U5l+H','suTYCLa','6i635y+wifrV','zxjYB3i','uNHqDe4','yxrO','uLHTs1y','zunPCgG','AxjVBM0','5PEG5Pwi55Qe6k6+5Ash','lI4U','CMvHzey','CLvYBfm','6l+h5PYF77Ym6zYa6kAb','t3nstvi','yxv0Ag8','zMHZvei','zuHHC2G','zMLSzva','5RkH5PYj5A2y5ykO55Qe','qxbWBgu','vg9Rzw4','mtaYyvnZwwHh','BwnWt0e','zK5KvMG','mdOWmdO','CML6zvC','BMv0D28','C2HFDg8','DMvYAwy','qwDLBNq','vvzosKi','y3vZDg8','zxnbDa','ms4W','ChjVBwK','ifrVA2u','CM93C2u','C2GGvg8','zw5szwe','CMvWBge','CML6yxq','Cc1JBgK','uhbuufG','BwfJB3m','6Ag76kkR5A2q57g75A6E','mI4W','ANnVBG','vhLWzq','B25vCMK','5AsX6lsLoIa','y2f0Aw8','AwnLq28','6k+36yEn5PAW5BcD6k+v','BwvZC2e','DMfS','EhPiswi','veX0wvK','BfnJAgu','CgvUici','D1HMyum','DMLJzv8','zwfmDhu','mda6mda','BgDPt0u','ifjLzNi','ru5pru4','C3rHCNq','yxbWBgK','x1rLCM0','C3vJy2u','vxfZruK','CgXHDgy','5yI35PAWifrV','wgLmBMi','Aw9Ux3a','y2HHAwG','z2uUBg8','z2uUC2e','Bg9Hzee','AgfYq28','rNvSBa','zgvZ','yw1L','C3rYAw4','zw5pBMm','BwKTA2u','A2v5','zMLUywW','oJaWoJa','lMPZB24','De1VyMK','ywqG5B+f6Ag7','Cc5JAge','zxjMywm','zxnZ','AgvTzq','6yEn5PAW5O6i5P2d','CgfYC2u','D3jPDgu','zgv0zwm','Ag9Tzwq','BLfnuKu','x3bYB2m','rMLSzq','tMfTzq','ue9tva','B3DZzxi','zMv0y2G','zgvSyxK','C2vZ','qw1msKW','zgLYBMe','DxrOu3q','AM9PBG','C3rezxy','BNqG5zcn56EW','Dw5SAw4','AwrFzgu','AwnHDgK','CM9UBwu','DxjSu2m','Dgf0zq','A2vUiowKSq','lwD1Aq','DxrOvxi','mJm2nJqWnxPoChvMzG','B3jT','Bg9Hza','AwXL','AxnbDxq','CNrZqNi','oI8VBwm','z2LMEq','Cg9SBey','6k6+5Ash56cb5BEY6l+h','Aw52ywW','sM1czvu','DxrMoa','Agv4','qxv0Aey','6kkR5A2q57g75A6E546W','C2f2zue','5BEY5l+D5A2yoG','vgrmCKu','5P+057gZquNLIQK','DxbKyxq','D2LUmZi','C2f2zuq','yxrL','y2HLBwu','EgrNlw8','AxrOrgu','BM93','zw50','Dg9tDhi','C2LMEq','C3vIC3q','DgLTzxm','B25rCKm','Dg9ju08','BgLUDxG','AxrOvxi','zuv4CgK','ywvZlti','5PYF77Ym6k+36yEn5PAW','zgLNzxm','BgvfBNy','q29Kzt0','zunVzgu','y3jLyxq','Ag9ZDg4','B3juB2S','yxv0Ac0','zs5QC28','ywDLBNq','ChjLzMu','5OI35O6i5P2d77Ym6k+3','CMvMCMu','qxv0Afm','BIdMOlZLVi/VViW','oty2nduWA292wMjJ','Dg9Rzw4','ALfXs2q','z2vUDe4','zxzPy2u','B3bLBKi','Aw5HBa','C1rVA2u','y2HTB2q','u3rVCMe','ntyTy2i','Bg93','CMvK','zw5JCNK','5Pon5l2C77Yj','B3bLBIa','m3WYFdq','Aw5N','y2f0y2G','zxnjBG','zNjVBum','zgv2Awm','Cg5QDMq','B25uB2S','DMvYC2K','DMuG5B+f6Ag7','4PYfiefNzq','BLfRufu','y2XLyxi','5lIn5PsV5OYb55Qe5BMZ','uMvMCMu','jNvZzxi','Buj5Dgu','q29Kzq','mteYnZHODeDADMO','Ahr0Chm','5O6i5P2d6lAf5PE277Ym','icaG77Yi6k+3','q2zlq3m','y2XP'];_0x3fc2=function(){return _0x3ccc8a;};return _0x3fc2();}function decryptToken(_0x55715f,_0x235f5c){const _0x104d0b=_0x32cdb4,_0x5e47df={'jQqKd':_0x104d0b(0x1ab)},_0x488057=_0x55715f[_0x104d0b(0xdf)](':'),_0x47ca6d=Buffer[_0x104d0b(0xf4)](_0x488057[0x0],_0x104d0b(0x1ab)),_0x2fa69a=_0x488057[0x1],_0x32da60=crypto[_0x104d0b(0x1ca)+'eDeci'+_0x104d0b(0x111)+'v'](_0x104d0b(0x1c4)+_0x104d0b(0x1df)+'c',Buffer['from'](_0x235f5c),_0x47ca6d);let _0x540554=_0x32da60[_0x104d0b(0x1b2)+'e'](_0x2fa69a,_0x5e47df[_0x104d0b(0x1d7)],_0x104d0b(0x1aa));return _0x540554+=_0x32da60['final'](_0x104d0b(0x1aa)),JSON[_0x104d0b(0x182)](_0x540554);}class FileTokenStorage extends TokenStorage{constructor(_0x284131){const _0x5c2eea=_0x32cdb4,_0xc6e9fb=(_0x5c2eea(0x1e5)+_0x5c2eea(0x11c))[_0x5c2eea(0xdf)]('|');let _0x4185e5=0x0;while(!![]){switch(_0xc6e9fb[_0x4185e5++]){case'0':this['key']=getMachineId();continue;case'1':this[_0x5c2eea(0xf5)]=require('path');continue;case'2':this[_0x5c2eea(0x132)+'ath']=_0x284131;continue;case'3':super();continue;case'4':this['fs']=require('fs')[_0x5c2eea(0x143)+_0x5c2eea(0x18e)];continue;}break;}}async[_0x32cdb4(0x102)](_0x1846c1){const _0x154ba5=_0x32cdb4,_0xfe82c2={'wHtFp':'aes-2'+_0x154ba5(0x1df)+'c','wXfaC':_0x154ba5(0x1aa)},_0x4d4dae=this[_0x154ba5(0xf5)][_0x154ba5(0x190)+'me'](this[_0x154ba5(0x132)+'ath']);await this['fs'][_0x154ba5(0x11a)](_0x4d4dae,{'recursive':!![]});const _0x3059e9=encryptToken(_0x1846c1,this[_0x154ba5(0x177)]),_0x36e456={'version':_0x154ba5(0x14e),'encrypted':_0x3059e9,'algorithm':_0xfe82c2[_0x154ba5(0x104)],'updatedAt':new Date()[_0x154ba5(0x1c0)+_0x154ba5(0xe5)+'g']()};await this['fs'][_0x154ba5(0x183)+_0x154ba5(0x188)](this[_0x154ba5(0x132)+_0x154ba5(0x125)],JSON[_0x154ba5(0x174)+_0x154ba5(0x1a5)](_0x36e456,null,0x2),_0xfe82c2[_0x154ba5(0x15c)]),await this['fs'][_0x154ba5(0x1dd)](this[_0x154ba5(0x132)+'ath'],0x180);}async[_0x32cdb4(0x1a0)](){const _0x46fbd1=_0x32cdb4,_0x3b1b95={'JmBeU':_0x46fbd1(0x142),'UqsEI':function(_0x560e57,_0x4ee5f2){return _0x560e57===_0x4ee5f2;}};try{const _0x5c7e44=await this['fs'][_0x46fbd1(0x12b)+_0x46fbd1(0x1a1)](this['fileP'+'ath'],'utf8'),_0x145913=JSON[_0x46fbd1(0x182)](_0x5c7e44);if(!_0x145913[_0x46fbd1(0x1ed)+'on']||_0x145913[_0x46fbd1(0x1ed)+'on']===_0x3b1b95[_0x46fbd1(0x1a9)])return console['error']('检测到旧版'+_0x46fbd1(0x144)+_0x46fbd1(0x1d4)+_0x46fbd1(0xf3)+'..'),{'accessToken':_0x145913[_0x46fbd1(0xea)+_0x46fbd1(0x1dc)+'n'],'refreshToken':_0x145913[_0x46fbd1(0x1d2)+_0x46fbd1(0x115)+'en'],'expiresAt':_0x145913['expir'+_0x46fbd1(0x141)],'expiresIn':_0x145913[_0x46fbd1(0xe4)+_0x46fbd1(0x1e8)],'tokenType':_0x145913['token'+_0x46fbd1(0x150)]};return decryptToken(_0x145913[_0x46fbd1(0x1e2)+'pted'],this[_0x46fbd1(0x177)]);}catch(_0x3ca80f){if(_0x3b1b95[_0x46fbd1(0x167)](_0x3ca80f[_0x46fbd1(0x10b)],_0x46fbd1(0x162)+'T'))return null;throw _0x3ca80f;}}async['clear'](){const _0x52fd17=_0x32cdb4;try{await this['fs'][_0x52fd17(0x195)+'k'](this[_0x52fd17(0x132)+_0x52fd17(0x125)]);}catch(_0x2c4bff){if(_0x2c4bff['code']!==_0x52fd17(0x162)+'T')throw _0x2c4bff;}}async[_0x32cdb4(0x1ae)+_0x32cdb4(0x1d8)+_0x32cdb4(0x173)](_0x4515c4){const _0x40bfbd=_0x32cdb4,_0x4185fd={'TdLrE':_0x40bfbd(0x1cf)+_0x40bfbd(0x114)+_0x40bfbd(0x17a),'pnjvd':_0x40bfbd(0xec)+_0x40bfbd(0x13e)+'\x20名称失败'+':'};try{const _0x47eb68=this[_0x40bfbd(0xf5)]['join'](this['path']['dirna'+'me'](this[_0x40bfbd(0x132)+_0x40bfbd(0x125)]),_0x4185fd[_0x40bfbd(0x1b0)]),_0x4eb559={'agentName':_0x4515c4||'柴米AI助'+'手','updatedAt':new Date()[_0x40bfbd(0x1c0)+'Strin'+'g']()},_0x10b71b=JSON[_0x40bfbd(0x174)+'gify'](_0x4eb559,null,0x2)[_0x40bfbd(0x148)+'ce'](/\\u[\dA-F]{4}/gi,_0x3f3c50=>String[_0x40bfbd(0x1e9)+_0x40bfbd(0x170)+'de'](parseInt(_0x3f3c50[_0x40bfbd(0x148)+'ce'](/\\u/g,''),0x10)));await this['fs'][_0x40bfbd(0x183)+_0x40bfbd(0x188)](_0x47eb68,_0x10b71b,'utf8'),console[_0x40bfbd(0x123)](_0x40bfbd(0x1ef)+_0x40bfbd(0x194)+_0x40bfbd(0x1af),_0x47eb68);}catch(_0x448a26){console[_0x40bfbd(0x123)](_0x4185fd[_0x40bfbd(0x1eb)],_0x448a26[_0x40bfbd(0x156)+'ge']);}}async[_0x32cdb4(0x16f)+_0x32cdb4(0x1d8)+'ame'](){const _0x6d4769=_0x32cdb4;try{const _0x3ed8e3=this[_0x6d4769(0xf5)][_0x6d4769(0x192)](this[_0x6d4769(0xf5)][_0x6d4769(0x190)+'me'](this['fileP'+_0x6d4769(0x125)]),_0x6d4769(0x1cf)+_0x6d4769(0x114)+_0x6d4769(0x17a)),_0x7b4b69=await this['fs'][_0x6d4769(0x12b)+_0x6d4769(0x1a1)](_0x3ed8e3,'utf8'),_0x28d5d1=JSON[_0x6d4769(0x182)](_0x7b4b69);return _0x28d5d1[_0x6d4769(0x1cf)+_0x6d4769(0x189)]||_0x6d4769(0x1b1)+'手';}catch(_0x475613){return _0x6d4769(0x1b1)+'手';}}async[_0x32cdb4(0x1b4)+_0x32cdb4(0x1d9)+'Code'](_0x59ca7f){const _0x4966ad=_0x32cdb4,_0x4f7d7e={'AmLJL':_0x4966ad(0x1ea)+_0x4966ad(0xfb)+_0x4966ad(0x1ce)+'n'};try{const _0x27f79b=this[_0x4966ad(0xf5)][_0x4966ad(0x192)](this['path'][_0x4966ad(0x190)+'me'](this[_0x4966ad(0x132)+_0x4966ad(0x125)]),_0x4f7d7e[_0x4966ad(0x18f)]),_0x53eb6d={'deviceCode':_0x59ca7f,'updatedAt':new Date()['toISO'+_0x4966ad(0xe5)+'g']()};await this['fs']['write'+_0x4966ad(0x188)](_0x27f79b,JSON[_0x4966ad(0x174)+_0x4966ad(0x1a5)](_0x53eb6d,null,0x2),'utf8');}catch(_0x5a733a){}}async['loadD'+_0x32cdb4(0x1d9)+_0x32cdb4(0xd8)](){const _0x116523=_0x32cdb4,_0x47604={'fhsTB':_0x116523(0x1aa)};try{const _0x11c89b=this[_0x116523(0xf5)][_0x116523(0x192)](this['path'][_0x116523(0x190)+'me'](this[_0x116523(0x132)+'ath']),_0x116523(0x1ea)+_0x116523(0xfb)+'e.jso'+'n'),_0xe02d90=await this['fs']['readF'+_0x116523(0x1a1)](_0x11c89b,_0x47604[_0x116523(0x130)]),_0x1cdb35=JSON['parse'](_0xe02d90);return _0x1cdb35[_0x116523(0x1ea)+_0x116523(0x1c9)];}catch(_0x39bd5b){return null;}}}module[_0x32cdb4(0xf9)+'ts']={'OAuthManager':OAuthManager,'TokenStorage':TokenStorage,'FileTokenStorage':FileTokenStorage};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chaimi-keep-mcp",
|
|
3
|
-
"version": "3.6.0
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "3.6.0",
|
|
4
|
+
"description": "柴米记账 MCP Server - 支持 Claude、Cursor、OpenClaw、WorkBuddy 等 AI 工具直接记账",
|
|
5
5
|
"main": "server.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"chaimi-keep-mcp": "bin/cli.js"
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"obfuscate": "node scripts/obfuscate.js",
|
|
29
29
|
"build": "node scripts/build.js",
|
|
30
30
|
"build:dist": "node scripts/build.js",
|
|
31
|
+
"sync-config": "node scripts/sync-config.js",
|
|
31
32
|
"copy-files": "shx cp package.json dist/ && shx cp README.md dist/ && shx mkdir -p dist/bin && shx mkdir -p dist/references && shx mkdir -p dist/skills && shx cp -r bin/* dist/bin/ && shx cp -r references/* dist/references/ && shx cp -r skills/* dist/skills/"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
@@ -45,7 +46,7 @@
|
|
|
45
46
|
"AI记账",
|
|
46
47
|
"model-context-protocol"
|
|
47
48
|
],
|
|
48
|
-
"author": "
|
|
49
|
+
"author": "柴米记账团队,songyangx@gmail.com",
|
|
49
50
|
"license": "MIT",
|
|
50
51
|
"dependencies": {
|
|
51
52
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "chaimi-keep-api-reference"
|
|
3
|
-
description:
|
|
3
|
+
description: 柴米记账API参考 - 查询分析类工具说明
|
|
4
4
|
description: >-
|
|
5
|
-
|
|
5
|
+
柴米记账MCP Server API参考。包含查询、统计、分析类工具说明。
|
|
6
6
|
TRIGGER: 需要查询消费记录、查看统计、导出数据时。
|
|
7
7
|
DO NOT TRIGGER: 记账操作(直接使用工具即可)。
|
|
8
8
|
version: "1.0.0"
|
|
9
9
|
updated: "2026-04-25"
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
#
|
|
12
|
+
# 柴米记账 API 参考
|
|
13
13
|
|
|
14
14
|
> ⚠️ **保密提示**:记账类工具(save_expense/save_income/save_receipt)为内部实现,不对外开放详细文档
|
|
15
15
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "chaimi-keep-authentication"
|
|
3
|
-
description:
|
|
3
|
+
description: 柴米记账授权流程详解
|
|
4
4
|
version: "1.0.1"
|
|
5
5
|
updated: "2026-04-30"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# 柴米记账授权流程
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -62,7 +62,7 @@ updated: "2026-04-30"
|
|
|
62
62
|
|
|
63
63
|
1. **启动授权流程**
|
|
64
64
|
```bash
|
|
65
|
-
mcporter auth
|
|
65
|
+
mcporter auth 柴米记账
|
|
66
66
|
```
|
|
67
67
|
或
|
|
68
68
|
```bash
|
|
@@ -72,14 +72,14 @@ updated: "2026-04-30"
|
|
|
72
72
|
2. **查看验证码(注意:验证码只在 Agent/终端 显示)**
|
|
73
73
|
终端会显示:
|
|
74
74
|
```
|
|
75
|
-
🔐
|
|
75
|
+
🔐 柴米记账授权
|
|
76
76
|
═══════════════════════════
|
|
77
77
|
📱 验证码:GGCY-AC84
|
|
78
78
|
⏰ 有效期:5分钟
|
|
79
79
|
```
|
|
80
80
|
|
|
81
81
|
3. **小程序确认(注意:小程序只负责输入验证码,不会生成验证码)**
|
|
82
|
-
- 打开"
|
|
82
|
+
- 打开"柴米记账"小程序
|
|
83
83
|
- 点击"我的" → "Agent 授权"
|
|
84
84
|
- 输入刚才在 Agent/终端 看到的验证码
|
|
85
85
|
- 点击确认
|
|
@@ -94,15 +94,15 @@ updated: "2026-04-30"
|
|
|
94
94
|
|
|
95
95
|
```bash
|
|
96
96
|
# 重新授权
|
|
97
|
-
mcporter auth
|
|
97
|
+
mcporter auth 柴米记账
|
|
98
98
|
|
|
99
99
|
# 强制清除缓存后重新授权
|
|
100
|
-
mcporter auth
|
|
100
|
+
mcporter auth 柴米记账 --reset
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
**然后:**
|
|
104
104
|
1. 查看终端显示的验证码
|
|
105
|
-
2. 打开"
|
|
105
|
+
2. 打开"柴米记账"小程序
|
|
106
106
|
3. 进入"我的" → "Agent 授权"
|
|
107
107
|
4. 输入验证码完成授权
|
|
108
108
|
|
|
@@ -128,7 +128,7 @@ mcporter auth 柴米AI记账 --reset
|
|
|
128
128
|
```
|
|
129
129
|
或
|
|
130
130
|
```bash
|
|
131
|
-
mcporter auth
|
|
131
|
+
mcporter auth 柴米记账
|
|
132
132
|
```
|
|
133
133
|
2. 查看终端显示的验证码
|
|
134
134
|
3. 在小程序"我的"→"Agent 授权"中输入验证码
|
|
@@ -164,7 +164,7 @@ del %USERPROFILE%\.chaimi-keep\oauth-token.json
|
|
|
164
164
|
cat ~/.chaimi-keep/oauth-token.json
|
|
165
165
|
|
|
166
166
|
# 或尝试调用工具测试
|
|
167
|
-
mcporter call
|
|
167
|
+
mcporter call 柴米记账.get_skill
|
|
168
168
|
```
|
|
169
169
|
|
|
170
170
|
**Token 文件位置:**
|
|
@@ -176,7 +176,7 @@ mcporter call 柴米AI记账.get_skill
|
|
|
176
176
|
|
|
177
177
|
Token 过期后需要重新授权:
|
|
178
178
|
```bash
|
|
179
|
-
mcporter auth
|
|
179
|
+
mcporter auth 柴米记账
|
|
180
180
|
```
|
|
181
181
|
|
|
182
182
|
---
|
|
@@ -196,7 +196,7 @@ mcporter auth 柴米AI记账
|
|
|
196
196
|
|
|
197
197
|
```bash
|
|
198
198
|
# 强制清除缓存后重新授权
|
|
199
|
-
mcporter auth
|
|
199
|
+
mcporter auth 柴米记账 --reset
|
|
200
200
|
```
|
|
201
201
|
|
|
202
202
|
**场景:**
|