chaimi-keep-mcp 3.6.0-beta.8 → 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 _0x4ebd44=_0x4fd8;(function(_0x4cc252,_0x47039){const _0x51961f=_0x4fd8,_0xff945a=_0x4cc252();while(!![]){try{const _0x14e3ae=-parseInt(_0x51961f(0x8f))/0x1*(parseInt(_0x51961f(0x109))/0x2)+parseInt(_0x51961f(0xf5))/0x3+-parseInt(_0x51961f(0x14d))/0x4*(-parseInt(_0x51961f(0x129))/0x5)+parseInt(_0x51961f(0xa3))/0x6+-parseInt(_0x51961f(0x107))/0x7+parseInt(_0x51961f(0xa2))/0x8*(-parseInt(_0x51961f(0x98))/0x9)+parseInt(_0x51961f(0x137))/0xa;if(_0x14e3ae===_0x47039)break;else _0xff945a['push'](_0xff945a['shift']());}catch(_0x14d1de){_0xff945a['push'](_0xff945a['shift']());}}}(_0x51c4,0x5bc34));const fetch=require(_0x4ebd44(0x18b)+_0x4ebd44(0x143)),{exec}=require(_0x4ebd44(0xe8)+_0x4ebd44(0x165)+_0x4ebd44(0x184)),util=require(_0x4ebd44(0xc8)),execPromise=util['promi'+_0x4ebd44(0x135)](exec),crypto=require(_0x4ebd44(0xc0)+'o');class OAuthManager{constructor(_0x51e9d8){const _0xa360ef=_0x4ebd44,_0x1b0ffb={'jiGOO':function(_0xe28537,_0x2daeec){return _0xe28537!==_0x2daeec;}},_0x1f4e8f=('4|0|1'+_0xa360ef(0x16c))['split']('|');let _0x4d8d5a=0x0;while(!![]){switch(_0x1f4e8f[_0x4d8d5a++]){case'0':this[_0xa360ef(0x146)+_0xa360ef(0x198)+'ge']=_0x51e9d8[_0xa360ef(0x146)+_0xa360ef(0x198)+'ge'];continue;case'1':this[_0xa360ef(0x156)+_0xa360ef(0x154)]=_0x51e9d8[_0xa360ef(0x156)+'ode'];continue;case'2':this['onTok'+_0xa360ef(0x126)+'dy']=_0x51e9d8[_0xa360ef(0xbd)+_0xa360ef(0x126)+'dy'];continue;case'3':this[_0xa360ef(0x13e)+'rUrlS'+_0xa360ef(0xb7)]=_0x1b0ffb[_0xa360ef(0x15c)](_0x51e9d8[_0xa360ef(0x13e)+_0xa360ef(0x14c)+'cheme'],![]);continue;case'4':this[_0xa360ef(0x102)+_0xa360ef(0xde)+'l']=_0x51e9d8[_0xa360ef(0x102)+'uthUr'+'l'];continue;}break;}}async[_0x4ebd44(0xfe)+_0x4ebd44(0xd3)+_0x4ebd44(0x195)+'nt'](){const _0x3e6d54=_0x4ebd44,_0x41db73={'xaQFh':_0x3e6d54(0xce)+'|3|4','ooFXd':function(_0x40cce7,_0x18aed7){return _0x40cce7===_0x18aed7;},'dCVbs':'win32','urBbr':_0x3e6d54(0xcb),'EIhEq':'custo'+'m'},_0x1d1ec4=_0x41db73[_0x3e6d54(0x110)]['split']('|');let _0x34e3d8=0x0;while(!![]){switch(_0x1d1ec4[_0x34e3d8++]){case'0':if(_0x41db73['ooFXd'](process[_0x3e6d54(0xf2)+_0x3e6d54(0x167)],_0x41db73[_0x3e6d54(0xd2)]))return{'supportsBrowser':!![],'platform':'windo'+'ws'};continue;case'1':if(process.env.DISPLAY)return{'supportsBrowser':!![],'platform':'linux'+_0x3e6d54(0x136)};continue;case'2':if(process[_0x3e6d54(0xf2)+_0x3e6d54(0x167)]==='darwi'+'n')return{'supportsBrowser':!![],'platform':_0x41db73[_0x3e6d54(0xb9)]};continue;case'3':if(process.env.BROWSER)return{'supportsBrowser':!![],'platform':_0x41db73[_0x3e6d54(0x17d)]};continue;case'4':return{'supportsBrowser':![],'platform':_0x3e6d54(0x97)};}break;}}async['start'+_0x4ebd44(0x194)+_0x4ebd44(0x9c)](){const _0x181b45=_0x4ebd44,_0x8d24a4={'HPUol':_0x181b45(0xaf)+'ng','IoGBb':_0x181b45(0xc1)+_0x181b45(0x16e)+'中完成授权'+_0x181b45(0x17b)};try{const _0x49152c=await this[_0x181b45(0xfe)+'tEnvi'+'ronme'+'nt'](),_0x5dd52e=this[_0x181b45(0x13e)+_0x181b45(0x14c)+'cheme']&&_0x49152c[_0x181b45(0x12f)+_0x181b45(0xa4)+_0x181b45(0x180)],_0x45d80c=await this[_0x181b45(0xfc)+_0x181b45(0x14f)+_0x181b45(0xdd)+'de'](_0x5dd52e);await this[_0x181b45(0xbb)+_0x181b45(0x10e)+_0x181b45(0x106)]({'deviceCode':_0x45d80c[_0x181b45(0x105)+_0x181b45(0x16d)],'userCode':_0x45d80c[_0x181b45(0x89)+_0x181b45(0x154)],'timestamp':Date[_0x181b45(0xbf)](),'status':_0x8d24a4[_0x181b45(0x164)]});_0x5dd52e&&_0x45d80c['urlSc'+_0x181b45(0x150)]?await this[_0x181b45(0xaa)+_0x181b45(0xec)+_0x181b45(0x121)+'lSche'+'me'](_0x45d80c):await this[_0x181b45(0xaa)+'rizeW'+_0x181b45(0x116)+_0x181b45(0x188)+_0x181b45(0x9c)](_0x45d80c);console[_0x181b45(0xb1)](''),console[_0x181b45(0xb1)](_0x181b45(0x152)+_0x181b45(0x187)+_0x181b45(0x114)+_0x181b45(0xac)),console['error'](_0x8d24a4['IoGBb']),console[_0x181b45(0xb1)]('');const _0x3463bb=await this[_0x181b45(0x16b)+_0x181b45(0x100)+'en'](_0x45d80c[_0x181b45(0x105)+_0x181b45(0x16d)],_0x45d80c[_0x181b45(0xf8)+_0x181b45(0x139)]*0x3e8||0x1388);return await this[_0x181b45(0x146)+'Stora'+'ge'][_0x181b45(0x112)](_0x3463bb),this[_0x181b45(0xbd)+_0x181b45(0x126)+'dy']&&this[_0x181b45(0xbd)+_0x181b45(0x126)+'dy'](_0x3463bb),_0x3463bb;}catch(_0x1bbd3d){throw _0x1bbd3d;}}async[_0x4ebd44(0xaa)+'rizeW'+_0x4ebd44(0x121)+_0x4ebd44(0xc6)+'me'](_0x4f187b){const _0x2a83d0=_0x4ebd44,_0x4304b5=this['detec'+_0x2a83d0(0xc9)+'leEnv'+_0x2a83d0(0x181)+_0x2a83d0(0x115)]();if(_0x4304b5){const _0x441265=_0x4f187b[_0x2a83d0(0xd6)+_0x2a83d0(0x150)]||_0x4f187b[_0x2a83d0(0x94)+_0x2a83d0(0x171)+_0x2a83d0(0x101)+'Full'];try{await this[_0x2a83d0(0x13f)+_0x2a83d0(0xcf)+'r'](_0x441265);}catch(_0x408a7b){}}else{const _0x3895e8=_0x2a83d0(0xca)+_0x2a83d0(0x182)+_0x2a83d0(0x192)+'ihuo.'+_0x2a83d0(0x142)+_0x2a83d0(0xe4)+'evice'+_0x2a83d0(0x148)+_0x4f187b['devic'+_0x2a83d0(0x16d)]+(_0x2a83d0(0x169)+_0x2a83d0(0x148))+_0x4f187b[_0x2a83d0(0x89)+'ode'];this[_0x2a83d0(0x156)+'ode']&&await this[_0x2a83d0(0x156)+_0x2a83d0(0x154)]({'userCode':_0x4f187b['userC'+'ode'],'verificationUri':_0x4f187b[_0x2a83d0(0x94)+_0x2a83d0(0x171)+_0x2a83d0(0x101)],'deviceCode':_0x4f187b[_0x2a83d0(0x105)+'eCode'],'qrCodeUrl':_0x3895e8,'isPC':!![]});}}['detec'+_0x4ebd44(0xc9)+_0x4ebd44(0xd1)+_0x4ebd44(0x181)+_0x4ebd44(0x115)](){const _0x54d41d=_0x4ebd44,_0x3069a9={'DNnYG':function(_0x5bb2d9,_0x52dec3){return _0x5bb2d9===_0x52dec3;},'rbKjH':'Apple'+'_Term'+_0x54d41d(0x122)},_0x366f34=process.env.USER_AGENT||'';if(/iPhone|iPad|iPod|Android|Mobile/i[_0x54d41d(0x186)](_0x366f34))return!![];if(_0x3069a9['DNnYG'](process.env.TERM_PROGRAM,_0x3069a9[_0x54d41d(0xa1)])&&_0x3069a9['DNnYG'](process[_0x54d41d(0xf2)+_0x54d41d(0x167)],_0x54d41d(0x190)+'n'))return![];return![];}async['autho'+_0x4ebd44(0xec)+_0x4ebd44(0x116)+'viceF'+_0x4ebd44(0x9c)](_0x57d4be){const _0x1ec7d2=_0x4ebd44;this[_0x1ec7d2(0x156)+_0x1ec7d2(0x154)]&&await this[_0x1ec7d2(0x156)+_0x1ec7d2(0x154)]({'userCode':_0x57d4be[_0x1ec7d2(0x89)+_0x1ec7d2(0x154)],'verificationUri':_0x57d4be['verif'+'icati'+'onUri'],'deviceCode':_0x57d4be[_0x1ec7d2(0x105)+_0x1ec7d2(0x16d)]});}async['openB'+_0x4ebd44(0xcf)+'r'](_0xa52403){const _0x42a12a=_0x4ebd44,_0x56e44a={'Hozfi':function(_0x221e61,_0x2902e5){return _0x221e61===_0x2902e5;}},_0x6b6e70=process[_0x42a12a(0xf2)+_0x42a12a(0x167)];let _0x319db3;if(_0x6b6e70===_0x42a12a(0x190)+'n')_0x319db3=_0x42a12a(0x12c)+'\x22'+_0xa52403+'\x22';else{if(_0x56e44a[_0x42a12a(0x8a)](_0x6b6e70,_0x42a12a(0x191)))_0x319db3=_0x42a12a(0xe2)+_0x42a12a(0x15f)+_0xa52403+'\x22';else{if(_0x6b6e70===_0x42a12a(0xbe))_0x319db3=_0x42a12a(0x8e)+_0x42a12a(0x19a)+_0xa52403+'\x22';else throw new Error(_0x42a12a(0x144)+'台');}}await execPromise(_0x319db3);}async['reque'+_0x4ebd44(0x14f)+'iceCo'+'de'](_0x12678a=![]){const _0x31284d=_0x4ebd44,_0x516a35=await fetch(this[_0x31284d(0x102)+'uthUr'+'l'],{'method':_0x31284d(0xf4),'headers':{'Content-Type':_0x31284d(0xe0)+_0x31284d(0xe9)+_0x31284d(0x177)+'n'},'body':JSON[_0x31284d(0x12d)+_0x31284d(0x16a)]({'tool':_0x31284d(0x105)+_0x31284d(0x16d),'params':{'clientId':_0x31284d(0x86)+_0x31284d(0x104)+_0x31284d(0x160)+_0x31284d(0x115),'useUrlScheme':_0x12678a}})}),_0x1ede9a=await _0x516a35['json']();if(!_0x1ede9a['succe'+'ss'])throw new Error(_0x31284d(0x108)+'失败:\x20'+_0x1ede9a['error']);return _0x1ede9a['data'];}async[_0x4ebd44(0x16b)+_0x4ebd44(0x100)+_0x4ebd44(0xdb)+'e'](_0x3c88a9){const _0x5f5475=_0x4ebd44,_0x3fe9ac={'kdqwj':_0x5f5475(0xe0)+_0x5f5475(0xe9)+'n/jso'+'n','KRZWe':_0x5f5475(0xf3)+'id_de'+_0x5f5475(0x99)+_0x5f5475(0xd4)};try{const _0x4addff=await fetch(this[_0x5f5475(0x102)+_0x5f5475(0xde)+'l'],{'method':'POST','headers':{'Content-Type':_0x3fe9ac[_0x5f5475(0x95)]},'body':JSON[_0x5f5475(0x12d)+'gify']({'tool':_0x5f5475(0x105)+'eToke'+'n','params':{'deviceCode':_0x3c88a9}})}),_0x1d7fdb=await _0x4addff[_0x5f5475(0x141)]();if(_0x1d7fdb['succe'+'ss'])return{'accessToken':_0x1d7fdb['data']['acces'+_0x5f5475(0x17a)+'n'],'refreshToken':_0x1d7fdb[_0x5f5475(0xff)]['refre'+_0x5f5475(0xee)+'en'],'expiresIn':_0x1d7fdb[_0x5f5475(0xff)][_0x5f5475(0x147)+_0x5f5475(0x96)],'tokenType':_0x1d7fdb['data'][_0x5f5475(0x146)+_0x5f5475(0x90)],'expiresAt':Date['now']()+_0x1d7fdb[_0x5f5475(0xff)][_0x5f5475(0x147)+_0x5f5475(0x96)]*0x3e8};if(_0x1d7fdb[_0x5f5475(0xb1)]===_0x5f5475(0xaa)+_0x5f5475(0xa7)+_0x5f5475(0x118)+_0x5f5475(0xba)+'g')return null;if(_0x1d7fdb[_0x5f5475(0xb1)]==='expir'+'ed_to'+'ken')throw new Error(_0x5f5475(0x11b)+'期,请重新'+'授权');if(_0x1d7fdb[_0x5f5475(0xb1)]===_0x3fe9ac['KRZWe'])throw new Error(_0x5f5475(0x8b)+'码');throw new Error(_0x5f5475(0xea)+'ken\x20失'+_0x5f5475(0xb4)+_0x1d7fdb[_0x5f5475(0xb1)]);}catch(_0x3c057a){throw _0x3c057a;}}async['pollF'+_0x4ebd44(0x100)+'en'](_0x7b17c5,_0x5cd4fd){const _0x5f0c52=_0x4ebd44,_0x250887={'fTWjF':_0x5f0c52(0xf3)+'id'},_0x34eab4=0x3c;let _0x725ab3=0x0;while(_0x725ab3<_0x34eab4){_0x725ab3++,await this['delay'](_0x5cd4fd);try{const _0x114d11=await this[_0x5f0c52(0x16b)+_0x5f0c52(0x100)+_0x5f0c52(0xdb)+'e'](_0x7b17c5);if(_0x114d11)return _0x114d11;}catch(_0x4dcb96){if(_0x4dcb96[_0x5f0c52(0x9a)+'ge'][_0x5f0c52(0x189)+_0x5f0c52(0xe5)](_0x5f0c52(0x147)+'ed')||_0x4dcb96['messa'+'ge'][_0x5f0c52(0x189)+_0x5f0c52(0xe5)](_0x250887[_0x5f0c52(0x17e)]))throw _0x4dcb96;}}throw new Error(_0x5f0c52(0x18a)+_0x5f0c52(0x162));}async[_0x4ebd44(0x18c)+'shTok'+'en'](){const _0x142b71=_0x4ebd44,_0x328c6f={'vJruT':_0x142b71(0xd5)+_0x142b71(0x10b)+_0x142b71(0x17c)+_0x142b71(0x9b)+'需要重新授'+'权','acBjz':function(_0x294aa6,_0x47f6d4,_0x376567){return _0x294aa6(_0x47f6d4,_0x376567);},'LLPsS':_0x142b71(0x18c)+_0x142b71(0xee)+'en','VGxRh':_0x142b71(0xa5)+_0x142b71(0xef)+_0x142b71(0x10a)+_0x142b71(0x11c)+'重新授权','sNHDO':function(_0x45af91,_0x4404a7){return _0x45af91*_0x4404a7;}},_0x462255=await this['token'+_0x142b71(0x198)+'ge'][_0x142b71(0xf7)]();if(!_0x462255||!_0x462255[_0x142b71(0x18c)+'shTok'+'en'])throw new Error(_0x328c6f[_0x142b71(0x15e)]);try{const _0x2201b6=await _0x328c6f[_0x142b71(0x15d)](fetch,this[_0x142b71(0x102)+_0x142b71(0xde)+'l'],{'method':'POST','headers':{'Content-Type':_0x142b71(0xe0)+'catio'+_0x142b71(0x177)+'n'},'body':JSON[_0x142b71(0x12d)+_0x142b71(0x16a)]({'tool':_0x328c6f[_0x142b71(0xf1)],'params':{'refreshToken':_0x462255[_0x142b71(0x18c)+_0x142b71(0xee)+'en']}})}),_0x122824=await _0x2201b6[_0x142b71(0x141)]();if(!_0x122824['succe'+'ss']){if(_0x122824[_0x142b71(0xb1)]===_0x142b71(0x18c)+_0x142b71(0xad)+_0x142b71(0x199)+'xpire'+'d')throw new Error(_0x328c6f[_0x142b71(0x14b)]);throw new Error('刷新\x20To'+_0x142b71(0x117)+_0x142b71(0xb4)+_0x122824[_0x142b71(0xb1)]);}const _0x2810af={'accessToken':_0x122824[_0x142b71(0xff)][_0x142b71(0x12e)+_0x142b71(0x17a)+'n'],'refreshToken':_0x122824[_0x142b71(0xff)]['refre'+_0x142b71(0xee)+'en'],'expiresIn':_0x122824[_0x142b71(0xff)][_0x142b71(0x147)+'esIn'],'tokenType':_0x122824[_0x142b71(0xff)][_0x142b71(0x146)+_0x142b71(0x90)],'expiresAt':Date[_0x142b71(0xbf)]()+_0x328c6f[_0x142b71(0x183)](_0x122824[_0x142b71(0xff)][_0x142b71(0x147)+_0x142b71(0x96)],0x3e8)};return await this['token'+_0x142b71(0x198)+'ge'][_0x142b71(0x112)](_0x2810af),_0x2810af;}catch(_0x4686fe){throw _0x4686fe;}}async[_0x4ebd44(0xc3)+_0x4ebd44(0x10c)+_0x4ebd44(0x14a)](){const _0x5ac818=_0x4ebd44,_0xc9612e={'KrNMz':function(_0x2d85b3,_0x49b1eb){return _0x2d85b3*_0x49b1eb;},'CgtxR':function(_0x268afa,_0x186e73){return _0x268afa>_0x186e73;},'LdKDy':function(_0x66f4c5,_0x1ab73c){return _0x66f4c5+_0x1ab73c;}},_0x4ed492=await this['token'+'Stora'+'ge'][_0x5ac818(0xf7)]();if(!_0x4ed492)throw new Error(_0x5ac818(0x83)+_0x5ac818(0x93)+_0x5ac818(0x12a)+'权');const _0x1f78ed=_0xc9612e[_0x5ac818(0xfa)](0x5,0x3c)*0x3e8;if(_0xc9612e[_0x5ac818(0x178)](_0xc9612e[_0x5ac818(0xf0)](Date['now'](),_0x1f78ed),_0x4ed492[_0x5ac818(0x147)+'esAt']))return await this[_0x5ac818(0x18c)+_0x5ac818(0xee)+'en']();return _0x4ed492;}[_0x4ebd44(0x175)](_0x4a4927){return new Promise(_0x773c7e=>setTimeout(_0x773c7e,_0x4a4927));}async[_0x4ebd44(0xbb)+_0x4ebd44(0x10e)+_0x4ebd44(0x106)](_0x5c3198){const _0x2562b4=_0x4ebd44,_0x833584={'DJOuf':function(_0x1e1f46,_0x27d7b4){return _0x1e1f46(_0x27d7b4);}};try{const _0x32d954=require('fs')[_0x2562b4(0xed)+_0x2562b4(0x157)],_0x172fc4=require(_0x2562b4(0x10d)),_0x321054=_0x833584['DJOuf'](require,'os'),_0x5abc0b=_0x172fc4['join'](_0x321054[_0x2562b4(0xe6)+'ir'](),_0x2562b4(0xb6)+_0x2562b4(0x92)+'ep',_0x2562b4(0xb2)+_0x2562b4(0x9e)+_0x2562b4(0x13b)),_0x5283eb=_0x172fc4['dirna'+'me'](_0x5abc0b);await _0x32d954[_0x2562b4(0xf6)](_0x5283eb,{'recursive':!![]}),await _0x32d954[_0x2562b4(0x176)](_0x5283eb,0x1c0)[_0x2562b4(0xfb)](()=>{}),await _0x32d954['write'+_0x2562b4(0x91)](_0x5abc0b,JSON[_0x2562b4(0x12d)+'gify'](_0x5c3198,null,0x2),{'mode':0x180});}catch(_0x3832c6){}}async[_0x4ebd44(0x140)+_0x4ebd44(0x10e)+'ate'](){const _0x79117f=_0x4ebd44,_0x1ad6c0={'UozyV':function(_0x131ca0,_0x528c4f){return _0x131ca0(_0x528c4f);},'PaRaj':_0x79117f(0xb6)+_0x79117f(0x92)+'ep'};try{const _0x50053f=_0x1ad6c0[_0x79117f(0x172)](require,'fs')[_0x79117f(0xed)+_0x79117f(0x157)],_0x238e93=require(_0x79117f(0x10d)),_0x2a11b8=require('os'),_0x3fcc61=_0x238e93[_0x79117f(0x133)](_0x2a11b8[_0x79117f(0xe6)+'ir'](),_0x1ad6c0[_0x79117f(0x15a)],_0x79117f(0xb2)+_0x79117f(0x9e)+_0x79117f(0x13b)),_0x4fc989=await _0x50053f[_0x79117f(0xfd)+_0x79117f(0xeb)](_0x3fcc61,_0x79117f(0x13c));return JSON[_0x79117f(0x18d)](_0x4fc989);}catch(_0x1f3e8c){if(_0x1f3e8c[_0x79117f(0xd4)]===_0x79117f(0xb8)+'T')return null;return null;}}async[_0x4ebd44(0xf9)+'AuthS'+_0x4ebd44(0x124)](){const _0x27187b=_0x4ebd44;try{const _0x3f4bde=require('fs')[_0x27187b(0xed)+'ses'],_0x27b8bc=require('path'),_0x45fc80=require('os'),_0x52367c=_0x27b8bc[_0x27187b(0x133)](_0x45fc80[_0x27187b(0xe6)+'ir'](),_0x27187b(0xb6)+'mi-ke'+'ep',_0x27187b(0xb2)+_0x27187b(0x9e)+'.json');await _0x3f4bde[_0x27187b(0x14e)+'k'](_0x52367c);}catch(_0x497628){}}['isAut'+_0x4ebd44(0x11f)+_0x4ebd44(0x158)+_0x4ebd44(0xcd)](_0x4ac603,_0x5983f0=0x1e*0x3c*0x3e8){const _0x682f56=_0x4ebd44,_0x106c4a={'JsDnv':function(_0x54ee8f,_0x3d9469){return _0x54ee8f>_0x3d9469;}};if(_0x4ac603&&_0x4ac603[_0x682f56(0x147)+_0x682f56(0x15b)])return Date[_0x682f56(0xbf)]()>_0x4ac603[_0x682f56(0x147)+_0x682f56(0x15b)];if(!_0x4ac603||!_0x4ac603['times'+'tamp'])return!![];return _0x106c4a[_0x682f56(0xc4)](Date[_0x682f56(0xbf)]()-_0x4ac603[_0x682f56(0x166)+_0x682f56(0x132)],_0x5983f0);}}class TokenStorage{async[_0x4ebd44(0x112)](_0x2279f4){const _0x5b225a=_0x4ebd44,_0x1435f0={'fRAdJ':_0x5b225a(0xda)+_0x5b225a(0x198)+_0x5b225a(0x173)+_0x5b225a(0x163)+_0x5b225a(0x9d)};throw new Error(_0x1435f0[_0x5b225a(0x179)]);}async[_0x4ebd44(0xf7)](){const _0x2c0477=_0x4ebd44;throw new Error(_0x2c0477(0xda)+_0x2c0477(0x198)+_0x2c0477(0x168)+_0x2c0477(0xb5)+_0x2c0477(0x9d));}async[_0x4ebd44(0xf9)](){const _0x405d2a=_0x4ebd44;throw new Error(_0x405d2a(0xda)+_0x405d2a(0x198)+_0x405d2a(0xae)+_0x405d2a(0xd8)+'须被子类实'+'现');}}function getMachineId(){const _0x3dba99=_0x4ebd44,_0x7ce88c={'rxzqR':function(_0x5b75ad,_0x323e3c){return _0x5b75ad(_0x323e3c);}},_0x396f10=_0x7ce88c[_0x3dba99(0x161)](require,'os'),_0x54405c=_0x396f10[_0x3dba99(0x11e)+_0x3dba99(0x18f)+_0x3dba99(0x130)+'es']();let _0x19cfbe='';for(const _0xc0198b of Object[_0x3dba99(0x151)](_0x54405c)){for(const _0x521d27 of _0x54405c[_0xc0198b]){if(_0x521d27['mac']&&_0x521d27['mac']!=='00:00'+':00:0'+_0x3dba99(0x13a)+'00'){_0x19cfbe=_0x521d27['mac'];break;}}if(_0x19cfbe)break;}const _0x4bad25=_0x19cfbe+'-'+_0x396f10[_0x3dba99(0x155)+_0x3dba99(0xdf)]()+'-'+_0x396f10[_0x3dba99(0xf2)+_0x3dba99(0x167)]();return crypto[_0x3dba99(0xa9)+_0x3dba99(0x193)](_0x3dba99(0x120)+'6')['updat'+'e'](_0x4bad25)['diges'+'t'](_0x3dba99(0x185))[_0x3dba99(0x125)+_0x3dba99(0x174)](0x0,0x20);}function encryptToken(_0x13288e,_0x53a584){const _0x26639a=_0x4ebd44,_0x5b613c={'kKqbF':_0x26639a(0x134)+'56-cb'+'c','OnrSY':_0x26639a(0x185),'yUcdL':function(_0x1916cd,_0x71ea9b){return _0x1916cd+_0x71ea9b;}},_0x1b218f=crypto[_0x26639a(0x9f)+'mByte'+'s'](0x10),_0x319ab9=crypto[_0x26639a(0xa9)+_0x26639a(0xd9)+'eriv'](_0x5b613c[_0x26639a(0x119)],Buffer[_0x26639a(0x84)](_0x53a584),_0x1b218f);let _0x420c23=_0x319ab9['updat'+'e'](JSON['strin'+_0x26639a(0x16a)](_0x13288e),_0x26639a(0x13c),_0x5b613c[_0x26639a(0xd0)]);return _0x420c23+=_0x319ab9[_0x26639a(0xc7)]('hex'),_0x5b613c[_0x26639a(0xcc)](_0x1b218f[_0x26639a(0x16f)+_0x26639a(0xc2)]('hex')+':',_0x420c23);}function decryptToken(_0x3e4635,_0x2c6bab){const _0x11f0ae=_0x4ebd44,_0x339c18={'vCOcu':'utf8'},_0x501af2=_0x3e4635[_0x11f0ae(0x149)](':'),_0x4d4370=Buffer[_0x11f0ae(0x84)](_0x501af2[0x0],_0x11f0ae(0x185)),_0x3b91b2=_0x501af2[0x1],_0x3cdefa=crypto[_0x11f0ae(0xa9)+_0x11f0ae(0x10f)+_0x11f0ae(0x111)+'v'](_0x11f0ae(0x134)+_0x11f0ae(0x153)+'c',Buffer[_0x11f0ae(0x84)](_0x2c6bab),_0x4d4370);let _0x13534a=_0x3cdefa[_0x11f0ae(0x11a)+'e'](_0x3b91b2,_0x11f0ae(0x185),_0x339c18['vCOcu']);return _0x13534a+=_0x3cdefa[_0x11f0ae(0xc7)](_0x11f0ae(0x13c)),JSON[_0x11f0ae(0x18d)](_0x13534a);}function _0x4fd8(_0x327a0c,_0x2e5086){_0x327a0c=_0x327a0c-0x83;const _0x51c499=_0x51c4();let _0x4fd83d=_0x51c499[_0x327a0c];if(_0x4fd8['hyMjtM']===undefined){var _0x11cb36=function(_0x3fe7c5){const _0x222567='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x60668a='',_0x637b48='';for(let _0x662a4c=0x0,_0x1a2695,_0xa6e649,_0x492aed=0x0;_0xa6e649=_0x3fe7c5['charAt'](_0x492aed++);~_0xa6e649&&(_0x1a2695=_0x662a4c%0x4?_0x1a2695*0x40+_0xa6e649:_0xa6e649,_0x662a4c++%0x4)?_0x60668a+=String['fromCharCode'](0xff&_0x1a2695>>(-0x2*_0x662a4c&0x6)):0x0){_0xa6e649=_0x222567['indexOf'](_0xa6e649);}for(let _0x553627=0x0,_0x250da8=_0x60668a['length'];_0x553627<_0x250da8;_0x553627++){_0x637b48+='%'+('00'+_0x60668a['charCodeAt'](_0x553627)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x637b48);};_0x4fd8['xMPKXW']=_0x11cb36,_0x4fd8['aOPuvw']={},_0x4fd8['hyMjtM']=!![];}const _0x5479af=_0x51c499[0x0],_0x2f82ef=_0x327a0c+_0x5479af,_0x55dcc8=_0x4fd8['aOPuvw'][_0x2f82ef];return!_0x55dcc8?(_0x4fd83d=_0x4fd8['xMPKXW'](_0x4fd83d),_0x4fd8['aOPuvw'][_0x2f82ef]=_0x4fd83d):_0x4fd83d=_0x55dcc8,_0x4fd83d;}class FileTokenStorage extends TokenStorage{constructor(_0x286233){const _0x54e936=_0x4ebd44,_0x199ef9={'dBrFG':function(_0x44b361,_0x5ac5d3){return _0x44b361(_0x5ac5d3);}},_0x3402f8=('4|1|3'+_0x54e936(0x8c))[_0x54e936(0x149)]('|');let _0x30e61c=0x0;while(!![]){switch(_0x3402f8[_0x30e61c++]){case'0':this['path']=require(_0x54e936(0x10d));continue;case'1':this[_0x54e936(0x85)+'ath']=_0x286233;continue;case'2':this[_0x54e936(0x88)]=getMachineId();continue;case'3':this['fs']=_0x199ef9[_0x54e936(0x145)](require,'fs')[_0x54e936(0xed)+_0x54e936(0x157)];continue;case'4':super();continue;}break;}}async[_0x4ebd44(0x112)](_0x152a87){const _0x3fbb0a=_0x4ebd44,_0x424fee={'uXTgH':function(_0x1be1bc,_0x46d52e,_0x206d4a){return _0x1be1bc(_0x46d52e,_0x206d4a);},'WicoG':'2.0'},_0x127747=this[_0x3fbb0a(0x10d)][_0x3fbb0a(0xa8)+'me'](this[_0x3fbb0a(0x85)+'ath']);await this['fs'][_0x3fbb0a(0xf6)](_0x127747,{'recursive':!![]});const _0x26356e=_0x424fee['uXTgH'](encryptToken,_0x152a87,this['key']),_0x2d20d1={'version':_0x424fee['WicoG'],'encrypted':_0x26356e,'algorithm':_0x3fbb0a(0x134)+'56-cb'+'c','updatedAt':new Date()['toISO'+'Strin'+'g']()};await this['fs']['write'+_0x3fbb0a(0x91)](this[_0x3fbb0a(0x85)+_0x3fbb0a(0x127)],JSON[_0x3fbb0a(0x12d)+_0x3fbb0a(0x16a)](_0x2d20d1,null,0x2),_0x3fbb0a(0x13c)),await this['fs'][_0x3fbb0a(0x176)](this[_0x3fbb0a(0x85)+'ath'],0x180);}async[_0x4ebd44(0xf7)](){const _0x47e86a=_0x4ebd44,_0x5b41bc={'SbBqx':'ENOEN'+'T'};try{const _0x1c7c0b=await this['fs'][_0x47e86a(0xfd)+_0x47e86a(0xeb)](this['fileP'+_0x47e86a(0x127)],_0x47e86a(0x13c)),_0x4774af=JSON[_0x47e86a(0x18d)](_0x1c7c0b);if(!_0x4774af[_0x47e86a(0xe7)+'on']||_0x4774af[_0x47e86a(0xe7)+'on']===_0x47e86a(0xdc))return console[_0x47e86a(0xb1)](_0x47e86a(0x197)+_0x47e86a(0x93)+'n\x20格式,'+_0x47e86a(0x138)+'..'),{'accessToken':_0x4774af['acces'+_0x47e86a(0x17a)+'n'],'refreshToken':_0x4774af['refre'+_0x47e86a(0xee)+'en'],'expiresAt':_0x4774af[_0x47e86a(0x147)+_0x47e86a(0x15b)],'expiresIn':_0x4774af['expir'+_0x47e86a(0x96)],'tokenType':_0x4774af[_0x47e86a(0x146)+'Type']};return decryptToken(_0x4774af[_0x47e86a(0x131)+_0x47e86a(0x196)],this[_0x47e86a(0x88)]);}catch(_0x33fccb){if(_0x33fccb['code']===_0x5b41bc['SbBqx'])return null;throw _0x33fccb;}}async['clear'](){const _0x115f2c=_0x4ebd44,_0x301d2d={'Rvmup':function(_0x28d4c3,_0x19437d){return _0x28d4c3!==_0x19437d;}};try{await this['fs'][_0x115f2c(0x14e)+'k'](this['fileP'+'ath']);}catch(_0x26a6f4){if(_0x301d2d[_0x115f2c(0x113)](_0x26a6f4[_0x115f2c(0xd4)],_0x115f2c(0xb8)+'T'))throw _0x26a6f4;}}async[_0x4ebd44(0xbb)+'gentN'+_0x4ebd44(0xdf)](_0x5aa215){const _0xf28bd4=_0x4ebd44,_0x372438={'OVIyp':_0xf28bd4(0xb3)+_0xf28bd4(0x170)+_0xf28bd4(0x13b),'sjOqv':'❌\x20保存\x20'+'Agent'+_0xf28bd4(0xe3)+':'};try{const _0x208118=this['path']['join'](this['path']['dirna'+'me'](this[_0xf28bd4(0x85)+_0xf28bd4(0x127)]),_0x372438[_0xf28bd4(0xe1)]),_0x16424d={'agentName':_0x5aa215||_0xf28bd4(0x13d)+'手','updatedAt':new Date()[_0xf28bd4(0x103)+_0xf28bd4(0x12b)+'g']()},_0x12b98b=JSON[_0xf28bd4(0x12d)+_0xf28bd4(0x16a)](_0x16424d,null,0x2)[_0xf28bd4(0x8d)+'ce'](/\\u[\dA-F]{4}/gi,_0xa6db6e=>String[_0xf28bd4(0xa0)+_0xf28bd4(0xbc)+'de'](parseInt(_0xa6db6e['repla'+'ce'](/\\u/g,''),0x10)));await this['fs'][_0xf28bd4(0x123)+_0xf28bd4(0x91)](_0x208118,_0x12b98b,'utf8'),console['error']('✅\x20Age'+'nt\x20名称'+_0xf28bd4(0xc5),_0x208118);}catch(_0x4964f4){console[_0xf28bd4(0xb1)](_0x372438['sjOqv'],_0x4964f4[_0xf28bd4(0x9a)+'ge']);}}async[_0x4ebd44(0x140)+_0x4ebd44(0x159)+_0x4ebd44(0xdf)](){const _0x45034b=_0x4ebd44,_0x3f70d5={'vToGp':_0x45034b(0x13d)+'手'};try{const _0x169a42=this['path']['join'](this[_0x45034b(0x10d)][_0x45034b(0xa8)+'me'](this[_0x45034b(0x85)+_0x45034b(0x127)]),_0x45034b(0xb3)+_0x45034b(0x170)+_0x45034b(0x13b)),_0x452b98=await this['fs'][_0x45034b(0xfd)+'ile'](_0x169a42,_0x45034b(0x13c)),_0x18aedd=JSON[_0x45034b(0x18d)](_0x452b98);return _0x18aedd[_0x45034b(0xb3)+_0x45034b(0x128)]||'柴米AI助'+'手';}catch(_0x1f0eee){return _0x3f70d5[_0x45034b(0xb0)];}}async['saveD'+_0x4ebd44(0x87)+_0x4ebd44(0x18e)](_0xc7037e){const _0x2e1a14=_0x4ebd44,_0x1efc87={'WkZww':'devic'+_0x2e1a14(0xab)+'e.jso'+'n','xRxQn':_0x2e1a14(0x13c)};try{const _0x31865e=this[_0x2e1a14(0x10d)]['join'](this[_0x2e1a14(0x10d)]['dirna'+'me'](this[_0x2e1a14(0x85)+_0x2e1a14(0x127)]),_0x1efc87['WkZww']),_0x5d457e={'deviceCode':_0xc7037e,'updatedAt':new Date()['toISO'+_0x2e1a14(0x12b)+'g']()};await this['fs'][_0x2e1a14(0x123)+_0x2e1a14(0x91)](_0x31865e,JSON[_0x2e1a14(0x12d)+_0x2e1a14(0x16a)](_0x5d457e,null,0x2),_0x1efc87[_0x2e1a14(0x11d)]);}catch(_0x4ce90c){}}async['loadD'+_0x4ebd44(0x87)+_0x4ebd44(0x18e)](){const _0x1f532=_0x4ebd44,_0x593b7e={'QIDSo':_0x1f532(0x13c)};try{const _0x243575=this[_0x1f532(0x10d)][_0x1f532(0x133)](this['path'][_0x1f532(0xa8)+'me'](this[_0x1f532(0x85)+_0x1f532(0x127)]),_0x1f532(0x105)+'e-cod'+_0x1f532(0x17f)+'n'),_0x360705=await this['fs'][_0x1f532(0xfd)+'ile'](_0x243575,_0x593b7e[_0x1f532(0xd7)]),_0x396375=JSON['parse'](_0x360705);return _0x396375[_0x1f532(0x105)+'eCode'];}catch(_0x70500f){return null;}}}function _0x51c4(){const _0x2a26a1=['BgvfBNy','zenwyNm','DevUDMK','y29Kzq','5RkH5PYj5y+V55sO55Qe','DxjSu2m','uuLeu28','zwfYiow/Hq','zunPCgG','vg9Rzw4','zw5pBMm','ms4W','AwnLq28','DxrOvxi','yw1L','yxbWBgK','t1zjExa','C3rHCNq','iowqJEENSowKSEI0Pq','DxrOp2q','zgvZ','Ag9Tzwq','DMvYC2K','y2HPBgq','y2f0Aw8','6i635y+wifrV','AwXL','CML6zvC','ChjVBwK','C2HuB2S','C2GGvg8','tgrlrhK','teXqC1m','CgXHDgy','Aw52ywW','ue9tva','mtG0mte3oenVs2rSwq','BwTKAxi','Bg9Hza','Aw50zxi','y2XLyxi','s3jotxO','y2f0y2G','CMvXDwu','CMvHzey','zgv0zwm','zgf0yq','B3juB2S','B25vCMK','BwnWt0e','Dg9ju08','Dw8TBwm','zgv2Awm','yxrL','ndK0mdG1owjYBfDjsa','6i635y+w6k6+5Ash56cb','nJK0otrLDgv4rMW','A2vUiow3SG','ifjLzNi','BgLKvg8','Cgf0Aa','DxrOu3q','zurLy2K','EgfrrMG','CgHLCMK','C2f2zq','uNzTDxa','5yU/5ywZ6zET56Qx5y+J','zw50','AxrOrgu','A2vUiowKSq','Aw9Ux3a','A0TXyKy','DxbKyxq','6k6+5Ash56cb5BEY6l+h','6l+h5PYF77Ym6zYa6kAb','Efj4uw4','BMv0D28','Afn0yxq','C2HHmJu','AxrOvxi','Aw5HBa','D3jPDgu','Dgf0zq','C3vIC3q','zw5szwe','yxrO','tMfTzq','nJuWnvb5AKTAtq','BU+8JoIVT+wfIoAoIa','u3rYAw4','B3bLBIa','C3rYAw4','ywnJzxm','C3vWCg8','zxjMywm','zw5JCNK','DgfTCa','AM9PBG','ywvZlti','C2LMEq','lwD1Aq','mZK3ntaXmfvlqMvIrG','6iEQ5yQO5y2h57QNlG','DMfS','mdOWmdO','lMPZB24','DxrMoa','5P+057gZquNLIQK','ChjLzMu','B3bLBKi','Bg9Hzee','ANnVBG','y29Tl2e','zMv0y2G','5lIn5PsV5OYb55Qe5BMZ','zejYrKC','Dg9Rzw4','zxHWAxi','q29Kzt0','C3bSAxq','A2vU','vKD4uMG','CLvYBfm','mtC3mNnNzMHeyW','Dw5SAw4','C3rezxy','AgvTzq','A2v5CW','4O+ZioETIEw+HEEuQa','ntyTy2i','B2rL','Ag9ZDg4','B25rCKm','C2vZ','zuv4CgK','z2vUDe4','ugfsywO','zxnbDa','AMLht08','ywncANO','DKPYDvq','iciIici','Cc1JBgK','CNH6Cvi','6k+36yEn5PAW5BcD6k+v','DMuG5B+f6Ag7','sfbvB2W','x3bYB2m','DgLTzxm','B3jT','z2uUBg8','jNvZzxi','z2LMEq','Cg9SBey','Fdj8mW','zunVzgu','5zYO5OMl5PY65B6U5l+H','Dg9tDhi','lw5HBwu','AwnHDgK','vw96Evy','z2uUC2e','CMLUzW','zgvSyxK','y2HTB2q','BI9QC28','q2D0Efi','zLjbzeO','C1rVA2u','5Pon5l2C77Yj','zxnOifq','ruLOrxe','zLrxAKy','zs5QC28','B3DZzxi','AxjVBM0','oI8VBwm','C05ire8','zxnZ','Agv4','DgvZDa','5OI35O6i5P2d77Ym6k+3','DMLJzuy','Aw5JBhu','5O6i5P2d6lAf5PE277Ym','BM9Kzs0','CMvMCMu','CgfYC2u','q29Kzq','CMTjBNq','zgfYD2K','D2LUmZi','Cc5JAge','zuHHC2G','qxv0Aey','CM9UBwu','ChrLza','5Qoa5Rwl5yIW5PEN54Mi','u3rVCMe','A2vUx2u','CgvUici','5RkH5PYj5A2y5ykO55Qe','zNjVBq','zMLSzva','y2HHAwG','zxzPy2u','A2v5','DxnLCKm','sg96zMK','5PEG5Pwi55Qe6k6+5Ash','Fdb8mG','CMvWBge','EgrNlw8','mtvuDKTKz20','vhLWzq','rMLSzq','BwKTA2u','ifrVA2u','DMvYAwy','A2rXD2O','zxnjBG','y2XP','nZKWnJvLANnewgq','DMLJzv8','BwvZC2e','B2TLBU+8Ja','Bg93','6kkR5A2q57g75A6E546W','C3rHDgu','CMfUzg8','zNjVBum','CMjlAKG','mti4ywvsALjP','otm1mZuYC29Suxrc','CNrZqNi','uMvMCMu','zxHWB3i','CML6yxq','zgLYBMe','y3jLyxq','yxv0Ag8','zs1JB2q','lI4U','C2HFDg8','z2uUy2W','CgvUzgK','DLrVr3a','zxjYB3i','yxv0Ac0','ywDLBNq','6lsLoIa','ywqG5B+f6Ag7','lMnOywK','y2HLBwu','ru5pru4','DxjcyNi','zw5KAw4','C2f2zue','AgfYq28','B25uB2S','BgLUDxG','BM93','y3j5Chq','icaG77Yi6k+3','Aw5N','z2v0vMe','sNneBNy','5BEY5l+D5A2yoG','BfnJAgu','zMLUywW','DxrPBa','De1VyMK','Ahr0Chm','BwfJB3m','EvvJzeW','CMvK','mxWYFda','CM93C2u','t25Yu1K'];_0x51c4=function(){return _0x2a26a1;};return _0x51c4();}module[_0x4ebd44(0xa6)+'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
|
**场景:**
|