chaimi-keep-mcp 3.6.0-beta.2 → 3.6.0-beta.20

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 CHANGED
@@ -1,4 +1,4 @@
1
- # 柴米AI记账 MCP Server
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
- - 微信(已安装"柴米AI记账"小程序)
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. 安装柴米AI记账 MCP
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 会显示验证码,请在"柴米AI记账"小程序中完成授权。
36
+ MCP Server 会显示验证码,请在"柴米记账"小程序中完成授权。
37
37
 
38
38
  ### 3. 小程序授权
39
39
 
40
- 打开"柴米AI记账"小程序 → 点击"我的" → "Agent 授权" → 输入验证码
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
- 柴米AI记账MCP Server,连接微信小程序记账功能。
4
+ 柴米记账MCP Server,连接微信小程序记账功能。
5
5
  TRIGGER: 用户提及"记账/记录/保存"并涉及金额或商品信息。
6
6
  DO NOT TRIGGER: 非记账操作,或明确使用其他记账工具时。
7
7
  updated: "2026-05-17"
8
8
  ---
9
9
 
10
- # 柴米AI记账 Skill
10
+ # 柴米记账 Skill
11
11
 
12
- > 柴米AI记账 - 简约美学,专注记账本身
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
- 用户使用柴米AI记账
73
+ 用户使用柴米记账
86
74
 
87
75
  chaimi-keep-mcp ⭐ 本Skill
88
76
  ├── 记账成功 → 使用回复模板(见七、回复规范)
@@ -100,8 +88,8 @@ chaimi-keep-mcp ⭐ 本Skill
100
88
  | 用户意图 | 关键词示例 | 推荐工具 | 参考文档 | 回复模板 |
101
89
  |---------|-----------|---------|---------|---------|
102
90
  | **文字/收入记账** | "午餐35元"、"工资5000" | parse_text | - | 标准成功模板 |
103
- | **小票记账** | "小票识别" | save_receipt | - | 高金额模板 |
104
- | **查询记录** | "这周花了多少" | get_expenses | api-reference.md | 查询结果模板 |
91
+ | **小票记账** | "小票识别" | parse_receipt_image | - | 高金额模板 |
92
+ | **查询记录** | "这周花了多少" | get_expenses *(已隐藏)* | api-reference.md | 查询结果模板 |
105
93
  | **消费统计** | "月度统计" | get_statistics | api-reference.md | 统计分析模板 |
106
94
  | **智能洞察** | "分析消费习惯" | get_insights | advanced-features.md | 洞察分析模板 |
107
95
  | **深度分析** | "详细分析" | export_data | advanced-features.md | 分析模板 |
@@ -119,12 +107,14 @@ chaimi-keep-mcp ⭐ 本Skill
119
107
  | 分类 | 工具名 | 功能一句话 | 典型场景 |
120
108
  |:-----|:-------|:-----------|:---------|
121
109
  | **记账** | parse_text | 文字/收入记账(后端AI解析+自动保存) | "午餐35元"、"工资5000" |
122
- | | save_receipt | 小票图片记账 | 上传小票照片 |
123
- | **查询** | get_expenses | 查询消费记录 | "这周花了多少" |
110
+ | | parse_receipt_image | 小票图片记账(后端AI解析+自动保存) | 上传小票照片 |
111
+ | **查询** | get_expenses *(已隐藏)* | 查询消费记录 | "这周花了多少" |
124
112
  | | get_statistics | 消费统计分析 | "月度统计" |
125
- | | get_receipt_list | 查询小票列表 | "查看小票记录" |
126
113
  | **分析** | get_insights | AI消费洞察 | "分析消费习惯" |
127
114
  | | export_data | 导出完整数据 | 深度分析 |
115
+ | **账本** | list_books | 查询所有账本列表 | "有哪些账本" |
116
+ | | switch_book | 切换到指定账本 | "切换到家庭账本" |
117
+ | | get_current_book | 获取当前账本信息 | "当前是哪个账本" |
128
118
  | **辅助** | get_skill | 【必须】获取Skill文档 | 记账前调用 |
129
119
  | | submit_feedback | 提交反馈 | 功能使用异常,无法解决问题反馈 |
130
120
 
@@ -134,8 +124,12 @@ chaimi-keep-mcp ⭐ 本Skill
134
124
 
135
125
  ### MCP2.0 自动记账流程
136
126
 
137
- > ⚠️ parse_text 内部已完成 AI 解析 + 数据入库,Agent 无需再调用 save_expense
138
- > ⚠️ 不要输出记账过程,不要告诉用户"第1步、第2步"等流程细节,只需要回复用户结果
127
+ > ⚠️ parse_text 内部已完成 AI 解析 + 数据入库,Agent 无需再调用任何其他记账工具
128
+ > ⚠️ 不要输出记账过程,不要告诉用户"第1步、第2步"等流程细节,只需要回复用户记账结果
129
+ > ⚠️ Agent 的唯一职责:将用户的原文原样传入 text 字段,不做任何预处理、验证或字段提取
130
+ > ⚠️ 大额消费(>1000元)需先和用户确认金额是否正确,防止输错。确认后再调用 parse_text
131
+ > ⚠️ 后端自动处理:分类、金额、标签(tag)、时间(date)、备注等,Agent 无需关心
132
+ > ⚠️ 直接使用服务器返回的 message 和 data,不要修改任何字段(包括时间戳)
139
133
 
140
134
  **文字记账(一行完成):**
141
135
 
@@ -144,7 +138,7 @@ chaimi-keep-mcp ⭐ 本Skill
144
138
 
145
139
  Agent 操作:
146
140
  1. get_skill() 获取规范(首次或过期时调用)
147
- 2. parse_text({ text: "午餐35元麦当劳", agentType: "...", apiProvider: "..." })
141
+ 2. parse_text({ text: "午餐35元麦当劳", agentPlatform: "...", aiModel: "..." })
148
142
  ↓ 后端自动:AI解析 → 保存到数据库
149
143
  ↓ 返回:{ success: true, data: { saved: true, name: "午餐", amount: 35, category: "餐饮", ... }, message: "✅ 已记录:午餐 35元(餐饮)" }
150
144
  3. 根据 _templateLocation 使用模板渲染回复
@@ -156,7 +150,7 @@ Agent 操作:
156
150
  用户:工资5000
157
151
 
158
152
  Agent 操作:
159
- 1. parse_text({ text: "工资5000", agentType: "...", apiProvider: "..." })
153
+ 1. parse_text({ text: "工资5000", agentPlatform: "...", aiModel: "..." })
160
154
  ↓ 后端自动判断为收入,走 addIncome 保存
161
155
  2. 渲染回复
162
156
  ```
@@ -168,7 +162,7 @@ Agent 操作:
168
162
 
169
163
  Agent 操作:
170
164
  1. get_skill() 获取规范
171
- 2. parse_receipt_image({ imageUrl: "https://...", agentType: "...", apiProvider: "..." })
165
+ 2. parse_receipt_image({ imageUrl: "https://...", agentPlatform: "...", aiModel: "..." })
172
166
  ↓ 后端自动:AI视觉解析 → 保存到数据库
173
167
  3. 渲染回复
174
168
  ```
@@ -213,9 +207,8 @@ references/
213
207
  | 工具 | 模板位置 | 模板章节 | 说明 |
214
208
  |------|---------|---------|------|
215
209
  | `parse_text` | `references/response-templates.md` | 2.1 标准成功模板 | 文字/收入记账成功 |
216
- | `save_receipt` | `references/response-templates.md` | 2.3 小票记账模板 | 小票记账成功 |
217
- | `get_expenses` | `references/response-templates.md` | 2.5 查询结果模板 | 消费记录查询 |
218
- | `get_receipt_list` | `references/response-templates.md` | 2.5 查询结果模板 | 小票列表查询 |
210
+ | `parse_receipt_image` | `references/response-templates.md` | 2.3 小票记账模板 | 小票记账成功 |
211
+ | `get_expenses` (已隐藏) | `references/response-templates.md` | 2.5 查询结果模板 | 消费记录查询 |
219
212
  | `get_statistics` | `references/response-templates.md` | 2.6 统计结果模板 | 消费统计分析 |
220
213
 
221
214
  ### 7.4 回复模板使用流程(Agent 内部操作,不要告诉用户)
@@ -249,7 +242,7 @@ references/
249
242
  💡 消费洞察:本月餐饮支出占比30%,建议控制
250
243
  ═══════════════
251
244
  🎉 *美食为梦想充电,继续向前冲!*
252
- *柴米AI记账 chaimi-keep-mcp v4.0.0-beta.0*
245
+ *柴米记账chaimi-keep-mcp v4.0.0-beta.0*
253
246
  ```
254
247
 
255
248
  **模板变量说明:**
@@ -273,7 +266,7 @@ references/
273
266
 
274
267
  ## 八、记忆口诀
275
268
 
276
- > **柴米AI记账超美学,五层结构要牢记。**
269
+ > **柴米记账超美学,五层结构要牢记。**
277
270
  > **成功标识在顶部,金额分隔最醒目。**
278
271
  > **商品分类商家时,底部祝福加品牌。**
279
272
  > **场景路由先匹配,工具速查再执行。**
@@ -298,7 +291,7 @@ references/
298
291
 
299
292
  | 错误 | 现象 | 解决方案 | 参考文档 |
300
293
  |:-----|:-----|:---------|:---------|
301
- | **授权失败** | "未找到有效授权" | 执行 `mcporter auth 柴米AI记账` 重新授权 | troubleshooting.md |
294
+ | **授权失败** | "未找到有效授权" | 执行 `mcporter auth 柴米记账` 重新授权 | troubleshooting.md |
302
295
  | **分类不明** | "无法识别分类" | 明确说分类:"午餐35元餐饮" | api-reference.md |
303
296
  | **网络超时** | "请求超时" | 检查网络,稍后重试 | troubleshooting.md |
304
297
 
package/_meta.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chaimi-keep-mcp",
3
- "description": "柴米AI记账MCP Server,连接微信小程序记账功能,提供超级美学用户体验",
3
+ "description": "柴米记账MCP Server,连接微信小程序记账功能,提供超级美学用户体验",
4
4
  "version": "3.2.0",
5
5
  "updated": "2026-04-25",
6
6
  "author": "柴米AI团队",
package/bin/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  /**
4
- * 柴米AI记账 MCP Server CLI 入口
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: '柴米AI记账 MCP Server - 支持 AI 工具直接记账',
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
- // 检查是否已存在柴米AI记账配置
160
- if (config.mcpServers['柴米AI记账']) {
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
- // 添加柴米AI记账配置
170
- config.mcpServers['柴米AI记账'] = JSON.parse(JSON.stringify(DEFAULT_CHAIMI_CONFIG));
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('| 柴米AI记账 MCP Server v' + ver + ' |');
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 |');
@@ -53,9 +53,9 @@ async function getAuthCode() {
53
53
  type: 'auth_required',
54
54
  userCode: qrData.userCode,
55
55
  verificationUri: qrData.verificationUri,
56
- message: `请在"柴米AI记账"小程序中完成授权`,
56
+ message: `请在"柴米记账"小程序中完成授权`,
57
57
  steps: [
58
- '打开"柴米AI记账"小程序',
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
- '打开"柴米AI记账"小程序',
83
+ '打开"柴米记账"小程序',
84
84
  '点击"我的" → "Agent 授权"',
85
85
  `输入验证码:${authState.userCode}`
86
86
  ]
package/bin/record.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * 柴米AI记账 - 直接记账 CLI
3
+ * 柴米记账 - 直接记账 CLI
4
4
  * 一步完成:解析文本 → 分类 → 调用云函数存储
5
5
  */
6
6
 
@@ -127,7 +127,7 @@ function getCurrentVersion() {
127
127
  */
128
128
  async function main() {
129
129
  console.log('\n========================================');
130
- console.log('🔄 柴米AI记账 MCP Server 安装完成');
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 _0x49f84a=_0x1f96;function _0x1f96(_0xb30de5,_0x3a255c){_0xb30de5=_0xb30de5-0x16d;const _0x2fd355=_0x2fd3();let _0x1f96f2=_0x2fd355[_0xb30de5];if(_0x1f96['bgkVQS']===undefined){var _0x5e7d19=function(_0x295218){const _0x4ade5b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f3f35='',_0x31ab9f='';for(let _0x35c6a9=0x0,_0x1837be,_0x326b2e,_0x376e7d=0x0;_0x326b2e=_0x295218['charAt'](_0x376e7d++);~_0x326b2e&&(_0x1837be=_0x35c6a9%0x4?_0x1837be*0x40+_0x326b2e:_0x326b2e,_0x35c6a9++%0x4)?_0x3f3f35+=String['fromCharCode'](0xff&_0x1837be>>(-0x2*_0x35c6a9&0x6)):0x0){_0x326b2e=_0x4ade5b['indexOf'](_0x326b2e);}for(let _0x343bed=0x0,_0x2d3412=_0x3f3f35['length'];_0x343bed<_0x2d3412;_0x343bed++){_0x31ab9f+='%'+('00'+_0x3f3f35['charCodeAt'](_0x343bed)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x31ab9f);};_0x1f96['mfCqSB']=_0x5e7d19,_0x1f96['YUXYcU']={},_0x1f96['bgkVQS']=!![];}const _0x416cd6=_0x2fd355[0x0],_0x1cf2ba=_0xb30de5+_0x416cd6,_0x1c34e4=_0x1f96['YUXYcU'][_0x1cf2ba];return!_0x1c34e4?(_0x1f96f2=_0x1f96['mfCqSB'](_0x1f96f2),_0x1f96['YUXYcU'][_0x1cf2ba]=_0x1f96f2):_0x1f96f2=_0x1c34e4,_0x1f96f2;}(function(_0x4b1a5c,_0x4bbc74){const _0x31e1c5=_0x1f96,_0x1085e5=_0x4b1a5c();while(!![]){try{const _0x4d29be=-parseInt(_0x31e1c5(0x21b))/0x1*(-parseInt(_0x31e1c5(0x1cc))/0x2)+-parseInt(_0x31e1c5(0x20c))/0x3*(parseInt(_0x31e1c5(0x1fa))/0x4)+-parseInt(_0x31e1c5(0x1d6))/0x5*(parseInt(_0x31e1c5(0x1f8))/0x6)+-parseInt(_0x31e1c5(0x232))/0x7+-parseInt(_0x31e1c5(0x18e))/0x8*(parseInt(_0x31e1c5(0x1f6))/0x9)+-parseInt(_0x31e1c5(0x177))/0xa+parseInt(_0x31e1c5(0x26b))/0xb;if(_0x4d29be===_0x4bbc74)break;else _0x1085e5['push'](_0x1085e5['shift']());}catch(_0x308dfa){_0x1085e5['push'](_0x1085e5['shift']());}}}(_0x2fd3,0x76ecc));const fetch=require(_0x49f84a(0x26d)+_0x49f84a(0x1a3)),{exec}=require(_0x49f84a(0x221)+_0x49f84a(0x1b5)+_0x49f84a(0x220)),util=require(_0x49f84a(0x247)),execPromise=util[_0x49f84a(0x21a)+_0x49f84a(0x207)](exec),crypto=require('crypt'+'o');class OAuthManager{constructor(_0x11ea65){const _0xe50ad8=_0x49f84a;this['mcpOA'+_0xe50ad8(0x1de)+'l']=_0x11ea65[_0xe50ad8(0x209)+_0xe50ad8(0x1de)+'l'],this[_0xe50ad8(0x219)+'Stora'+'ge']=_0x11ea65[_0xe50ad8(0x219)+_0xe50ad8(0x22d)+'ge'],this[_0xe50ad8(0x17e)+_0xe50ad8(0x230)]=_0x11ea65[_0xe50ad8(0x17e)+_0xe50ad8(0x230)],this[_0xe50ad8(0x1f7)+_0xe50ad8(0x1a0)+'dy']=_0x11ea65[_0xe50ad8(0x1f7)+_0xe50ad8(0x1a0)+'dy'],this[_0xe50ad8(0x265)+_0xe50ad8(0x1c4)+_0xe50ad8(0x20e)]=_0x11ea65['prefe'+_0xe50ad8(0x1c4)+_0xe50ad8(0x20e)]!==![];}async[_0x49f84a(0x1f3)+_0x49f84a(0x1e7)+'ronme'+'nt'](){const _0x3ca28e=_0x49f84a,_0x5cbe08={'ACXUc':_0x3ca28e(0x186)+'n','kRqqt':_0x3ca28e(0x19e)+'ws'};if(process.env.DISPLAY)return{'supportsBrowser':!![],'platform':'linux'+'-gui'};if(process[_0x3ca28e(0x1ad)+_0x3ca28e(0x254)]===_0x5cbe08[_0x3ca28e(0x1d4)])return{'supportsBrowser':!![],'platform':_0x3ca28e(0x1d1)};if(process[_0x3ca28e(0x1ad)+_0x3ca28e(0x254)]===_0x3ca28e(0x18a))return{'supportsBrowser':!![],'platform':_0x5cbe08[_0x3ca28e(0x172)]};if(process.env.BROWSER)return{'supportsBrowser':!![],'platform':_0x3ca28e(0x1ef)+'m'};return{'supportsBrowser':![],'platform':_0x3ca28e(0x256)};}async[_0x49f84a(0x276)+_0x49f84a(0x23a)+_0x49f84a(0x25f)](){const _0x5499b8=_0x49f84a,_0x110070={'fhqPx':_0x5499b8(0x261)+'ng','UezIV':_0x5499b8(0x1e6)+_0x5499b8(0x26f)+'勿关闭窗口'+_0x5499b8(0x20f),'Cxoko':function(_0x1c167c,_0x5ee213){return _0x1c167c*_0x5ee213;}};try{const _0x584f94=await this[_0x5499b8(0x1f3)+_0x5499b8(0x1e7)+_0x5499b8(0x1b7)+'nt'](),_0x142cc2=this['prefe'+_0x5499b8(0x1c4)+_0x5499b8(0x20e)]&&_0x584f94[_0x5499b8(0x22c)+_0x5499b8(0x19b)+'owser'],_0x3045e5=await this['reque'+_0x5499b8(0x22a)+_0x5499b8(0x184)+'de'](_0x142cc2);await this['saveA'+_0x5499b8(0x189)+_0x5499b8(0x272)]({'deviceCode':_0x3045e5[_0x5499b8(0x1cf)+_0x5499b8(0x27f)],'userCode':_0x3045e5[_0x5499b8(0x260)+_0x5499b8(0x230)],'timestamp':Date['now'](),'status':_0x110070[_0x5499b8(0x235)]});_0x142cc2&&_0x3045e5[_0x5499b8(0x266)+_0x5499b8(0x194)]?await this[_0x5499b8(0x1db)+'rizeW'+_0x5499b8(0x27d)+_0x5499b8(0x233)+'me'](_0x3045e5):await this[_0x5499b8(0x1db)+'rizeW'+_0x5499b8(0x211)+_0x5499b8(0x1a5)+_0x5499b8(0x25f)](_0x3045e5);console[_0x5499b8(0x268)](''),console['error'](_0x110070[_0x5499b8(0x204)]),console[_0x5499b8(0x268)](_0x5499b8(0x228)+_0x5499b8(0x205)+_0x5499b8(0x171)+_0x5499b8(0x1ab)),console['error']('');const _0x53bc3a=await this['pollF'+'orTok'+'en'](_0x3045e5[_0x5499b8(0x1cf)+'eCode'],_0x110070[_0x5499b8(0x284)](_0x3045e5[_0x5499b8(0x1e8)+_0x5499b8(0x238)],0x3e8)||0x1388);return await this[_0x5499b8(0x219)+_0x5499b8(0x22d)+'ge'][_0x5499b8(0x242)](_0x53bc3a),this[_0x5499b8(0x1f7)+_0x5499b8(0x1a0)+'dy']&&this[_0x5499b8(0x1f7)+'enRea'+'dy'](_0x53bc3a),_0x53bc3a;}catch(_0x576245){throw _0x576245;}}async[_0x49f84a(0x1db)+_0x49f84a(0x1d2)+_0x49f84a(0x27d)+_0x49f84a(0x233)+'me'](_0x4f5cc2){const _0x62ce01=_0x49f84a,_0x493164=this[_0x62ce01(0x1f3)+_0x62ce01(0x1f1)+_0x62ce01(0x19a)+'ironm'+_0x62ce01(0x1d9)]();if(_0x493164){const _0x31f518=_0x4f5cc2[_0x62ce01(0x266)+_0x62ce01(0x194)]||_0x4f5cc2[_0x62ce01(0x1c0)+_0x62ce01(0x262)+_0x62ce01(0x1ac)+_0x62ce01(0x24f)];try{await this[_0x62ce01(0x271)+'rowse'+'r'](_0x31f518);}catch(_0x334afd){}}else{const _0x2475a1='https'+_0x62ce01(0x26a)+_0x62ce01(0x206)+_0x62ce01(0x269)+_0x62ce01(0x210)+_0x62ce01(0x1b8)+'evice'+_0x62ce01(0x20d)+_0x4f5cc2[_0x62ce01(0x1cf)+_0x62ce01(0x27f)]+(_0x62ce01(0x16e)+_0x62ce01(0x20d))+_0x4f5cc2[_0x62ce01(0x260)+'ode'];this[_0x62ce01(0x17e)+'ode']&&await this[_0x62ce01(0x17e)+_0x62ce01(0x230)]({'userCode':_0x4f5cc2[_0x62ce01(0x260)+_0x62ce01(0x230)],'verificationUri':_0x4f5cc2[_0x62ce01(0x1c0)+_0x62ce01(0x262)+_0x62ce01(0x1ac)],'deviceCode':_0x4f5cc2[_0x62ce01(0x1cf)+'eCode'],'qrCodeUrl':_0x2475a1,'isPC':!![]});}}[_0x49f84a(0x1f3)+_0x49f84a(0x1f1)+_0x49f84a(0x19a)+'ironm'+_0x49f84a(0x1d9)](){const _0x52d722=_0x49f84a,_0x202eb2={'MjhPA':_0x52d722(0x1df)+_0x52d722(0x170)+_0x52d722(0x1b3)},_0x117b2e=process.env.USER_AGENT||'';if(/iPhone|iPad|iPod|Android|Mobile/i[_0x52d722(0x27a)](_0x117b2e))return!![];if(process.env.TERM_PROGRAM===_0x202eb2[_0x52d722(0x25b)]&&process['platf'+_0x52d722(0x254)]===_0x52d722(0x186)+'n')return![];return![];}async[_0x49f84a(0x1db)+_0x49f84a(0x1d2)+'ithDe'+_0x49f84a(0x1a5)+'low'](_0x1ffc38){const _0x5c1408=_0x49f84a;this[_0x5c1408(0x17e)+'ode']&&await this[_0x5c1408(0x17e)+'ode']({'userCode':_0x1ffc38['userC'+_0x5c1408(0x230)],'verificationUri':_0x1ffc38[_0x5c1408(0x1c0)+_0x5c1408(0x262)+_0x5c1408(0x1ac)],'deviceCode':_0x1ffc38['devic'+_0x5c1408(0x27f)]});}async[_0x49f84a(0x271)+'rowse'+'r'](_0x5735bd){const _0x5dd4b0=_0x49f84a,_0x16ca4c={'aGWQO':function(_0x14dc48,_0x47c6da){return _0x14dc48===_0x47c6da;}},_0x13aec8=process[_0x5dd4b0(0x1ad)+_0x5dd4b0(0x254)];let _0x349553;if(_0x16ca4c['aGWQO'](_0x13aec8,'darwi'+'n'))_0x349553=_0x5dd4b0(0x237)+'\x22'+_0x5735bd+'\x22';else{if(_0x13aec8===_0x5dd4b0(0x18a))_0x349553='start'+'\x20\x22\x22\x20\x22'+_0x5735bd+'\x22';else{if(_0x13aec8===_0x5dd4b0(0x25e))_0x349553=_0x5dd4b0(0x25a)+_0x5dd4b0(0x1ba)+_0x5735bd+'\x22';else throw new Error('不支持的平'+'台');}}await execPromise(_0x349553);}async[_0x49f84a(0x176)+_0x49f84a(0x22a)+_0x49f84a(0x184)+'de'](_0x23f08c=![]){const _0x2d471d=_0x49f84a,_0x503238=await fetch(this['mcpOA'+'uthUr'+'l'],{'method':_0x2d471d(0x1f5),'headers':{'Content-Type':_0x2d471d(0x1e1)+_0x2d471d(0x23f)+'n/jso'+'n'},'body':JSON[_0x2d471d(0x1da)+_0x2d471d(0x1f2)]({'tool':_0x2d471d(0x1cf)+_0x2d471d(0x27f),'params':{'clientId':_0x2d471d(0x1ea)+_0x2d471d(0x27b)+_0x2d471d(0x26e)+_0x2d471d(0x1d9),'useUrlScheme':_0x23f08c}})}),_0x383c72=await _0x503238[_0x2d471d(0x180)]();if(!_0x383c72[_0x2d471d(0x1f4)+'ss'])throw new Error(_0x2d471d(0x236)+_0x2d471d(0x1b9)+_0x383c72[_0x2d471d(0x268)]);return _0x383c72[_0x2d471d(0x218)];}async['pollF'+_0x49f84a(0x1eb)+_0x49f84a(0x226)+'e'](_0x4932a3){const _0x24da42=_0x49f84a,_0x5f3687={'LiUJx':function(_0x4c84cc,_0x56204a,_0x13fed4){return _0x4c84cc(_0x56204a,_0x13fed4);},'TpRVa':_0x24da42(0x1f5),'britz':_0x24da42(0x1e1)+'catio'+_0x24da42(0x1dc)+'n','zNAHl':_0x24da42(0x1cf)+_0x24da42(0x1c9)+'n','snmRJ':function(_0x380180,_0x14b34e){return _0x380180+_0x14b34e;},'doxMI':function(_0x2d5ba3,_0x452ea6){return _0x2d5ba3*_0x452ea6;},'UUkqi':function(_0x3f226c,_0x217ba9){return _0x3f226c===_0x217ba9;},'mCHeK':_0x24da42(0x25c)+_0x24da42(0x277)+_0x24da42(0x275),'XhXuo':_0x24da42(0x278)+_0x24da42(0x185)+'授权','vtFbx':_0x24da42(0x188)+'码'};try{const _0x3d94ab=await _0x5f3687[_0x24da42(0x24b)](fetch,this[_0x24da42(0x209)+_0x24da42(0x1de)+'l'],{'method':_0x5f3687['TpRVa'],'headers':{'Content-Type':_0x5f3687['britz']},'body':JSON[_0x24da42(0x1da)+'gify']({'tool':_0x5f3687[_0x24da42(0x1a1)],'params':{'deviceCode':_0x4932a3}})}),_0x55ee42=await _0x3d94ab[_0x24da42(0x180)]();if(_0x55ee42[_0x24da42(0x1f4)+'ss'])return{'accessToken':_0x55ee42[_0x24da42(0x218)][_0x24da42(0x231)+'sToke'+'n'],'refreshToken':_0x55ee42['data'][_0x24da42(0x1ec)+_0x24da42(0x174)+'en'],'expiresIn':_0x55ee42[_0x24da42(0x218)][_0x24da42(0x25c)+_0x24da42(0x1d3)],'tokenType':_0x55ee42[_0x24da42(0x218)]['token'+_0x24da42(0x224)],'expiresAt':_0x5f3687[_0x24da42(0x1ca)](Date['now'](),_0x5f3687[_0x24da42(0x1c5)](_0x55ee42['data'][_0x24da42(0x25c)+'esIn'],0x3e8))};if(_0x55ee42[_0x24da42(0x268)]===_0x24da42(0x1db)+_0x24da42(0x22f)+'ion_p'+'endin'+'g')return null;if(_0x5f3687[_0x24da42(0x280)](_0x55ee42['error'],_0x5f3687[_0x24da42(0x1a8)]))throw new Error(_0x5f3687[_0x24da42(0x225)]);if(_0x55ee42[_0x24da42(0x268)]===_0x24da42(0x214)+_0x24da42(0x17d)+'vice_'+_0x24da42(0x1ae))throw new Error(_0x5f3687[_0x24da42(0x267)]);throw new Error('获取\x20To'+'ken\x20失'+'败:\x20'+_0x55ee42['error']);}catch(_0x5acba8){throw _0x5acba8;}}async[_0x49f84a(0x21e)+'orTok'+'en'](_0x3e25f0,_0x335816){const _0x3696f9=_0x49f84a,_0x56f851=0x3c;let _0x2b5b57=0x0;while(_0x2b5b57<_0x56f851){_0x2b5b57++,await this[_0x3696f9(0x248)](_0x335816);try{const _0x555501=await this[_0x3696f9(0x21e)+_0x3696f9(0x1eb)+'enOnc'+'e'](_0x3e25f0);if(_0x555501)return _0x555501;}catch(_0x3bb764){if(_0x3bb764[_0x3696f9(0x281)+'ge']['inclu'+_0x3696f9(0x216)](_0x3696f9(0x25c)+'ed')||_0x3bb764[_0x3696f9(0x281)+'ge'][_0x3696f9(0x1a7)+_0x3696f9(0x216)](_0x3696f9(0x214)+'id'))throw _0x3bb764;}}throw new Error(_0x3696f9(0x223)+_0x3696f9(0x1d5));}async[_0x49f84a(0x1ec)+_0x49f84a(0x174)+'en'](){const _0x276762=_0x49f84a,_0x30f697={'zRGiW':_0x276762(0x1e1)+_0x276762(0x23f)+'n/jso'+'n','AzdEL':function(_0x27cabb,_0x16f40f){return _0x27cabb+_0x16f40f;}},_0x1ac8c4=await this[_0x276762(0x219)+_0x276762(0x22d)+'ge'][_0x276762(0x18b)]();if(!_0x1ac8c4||!_0x1ac8c4[_0x276762(0x1ec)+_0x276762(0x174)+'en'])throw new Error(_0x276762(0x187)+_0x276762(0x240)+_0x276762(0x274)+_0x276762(0x1fe)+_0x276762(0x1af)+'权');try{const _0x591d3c=await fetch(this['mcpOA'+_0x276762(0x1de)+'l'],{'method':'POST','headers':{'Content-Type':_0x30f697[_0x276762(0x1e5)]},'body':JSON[_0x276762(0x1da)+_0x276762(0x1f2)]({'tool':_0x276762(0x1ec)+_0x276762(0x174)+'en','params':{'refreshToken':_0x1ac8c4[_0x276762(0x1ec)+'shTok'+'en']}})}),_0x2ca696=await _0x591d3c[_0x276762(0x180)]();if(!_0x2ca696[_0x276762(0x1f4)+'ss']){if(_0x2ca696[_0x276762(0x268)]===_0x276762(0x1ec)+_0x276762(0x249)+_0x276762(0x252)+_0x276762(0x1e0)+'d')throw new Error(_0x276762(0x1c7)+'sh\x20To'+_0x276762(0x229)+'过期,需要'+_0x276762(0x251));throw new Error(_0x276762(0x255)+_0x276762(0x195)+_0x276762(0x1e9)+_0x2ca696['error']);}const _0x57ca95={'accessToken':_0x2ca696[_0x276762(0x218)]['acces'+_0x276762(0x179)+'n'],'refreshToken':_0x2ca696[_0x276762(0x218)][_0x276762(0x1ec)+_0x276762(0x174)+'en'],'expiresIn':_0x2ca696[_0x276762(0x218)][_0x276762(0x25c)+_0x276762(0x1d3)],'tokenType':_0x2ca696['data'][_0x276762(0x219)+_0x276762(0x224)],'expiresAt':_0x30f697[_0x276762(0x286)](Date[_0x276762(0x1ed)](),_0x2ca696[_0x276762(0x218)][_0x276762(0x25c)+_0x276762(0x1d3)]*0x3e8)};return await this[_0x276762(0x219)+_0x276762(0x22d)+'ge']['save'](_0x57ca95),_0x57ca95;}catch(_0x14ff89){throw _0x14ff89;}}async[_0x49f84a(0x17a)+_0x49f84a(0x1dd)+_0x49f84a(0x275)](){const _0x41211b=_0x49f84a,_0x209f9c={'NyHuJ':function(_0x536af5,_0x503f27){return _0x536af5+_0x503f27;}},_0x3f7851=await this['token'+_0x41211b(0x22d)+'ge'][_0x41211b(0x18b)]();if(!_0x3f7851)throw new Error('没有存储的'+'\x20Toke'+_0x41211b(0x1b2)+'权');const _0x4ecef0=0x5*0x3c*0x3e8;if(_0x209f9c['NyHuJ'](Date['now'](),_0x4ecef0)>_0x3f7851['expir'+_0x41211b(0x25d)])return await this['refre'+_0x41211b(0x174)+'en']();return _0x3f7851;}[_0x49f84a(0x248)](_0x121a7b){return new Promise(_0x47eb37=>setTimeout(_0x47eb37,_0x121a7b));}async['saveA'+'uthSt'+_0x49f84a(0x272)](_0x1f47ab){const _0x2e0a80=_0x49f84a;try{const _0xd038d2=require('fs')['promi'+'ses'],_0x37cc0c=require('path'),_0x542bc9=require('os'),_0x4a6838=_0x37cc0c[_0x2e0a80(0x1c1)](_0x542bc9[_0x2e0a80(0x244)+'ir'](),_0x2e0a80(0x1b0)+_0x2e0a80(0x1c8)+'ep',_0x2e0a80(0x212)+_0x2e0a80(0x1fc)+_0x2e0a80(0x222)),_0x24a839=_0x37cc0c['dirna'+'me'](_0x4a6838);await _0xd038d2[_0x2e0a80(0x24e)](_0x24a839,{'recursive':!![]}),await _0xd038d2[_0x2e0a80(0x16f)](_0x24a839,0x1c0)[_0x2e0a80(0x1e2)](()=>{}),await _0xd038d2[_0x2e0a80(0x279)+_0x2e0a80(0x208)](_0x4a6838,JSON[_0x2e0a80(0x1da)+_0x2e0a80(0x1f2)](_0x1f47ab,null,0x2),{'mode':0x180});}catch(_0x4aafa7){}}async['loadA'+_0x49f84a(0x189)+_0x49f84a(0x272)](){const _0x89e745=_0x49f84a,_0x175dd4={'fklHb':function(_0x2c5f50,_0x47f8a8){return _0x2c5f50(_0x47f8a8);},'EgOwm':'.chai'+_0x89e745(0x1c8)+'ep','JVfhf':function(_0x50a073,_0x159034){return _0x50a073===_0x159034;},'ipCDv':'ENOEN'+'T'};try{const _0x557583=require('fs')['promi'+_0x89e745(0x1d7)],_0x19aaf8=_0x175dd4[_0x89e745(0x1cd)](require,'path'),_0x5528b7=require('os'),_0x5a3d82=_0x19aaf8[_0x89e745(0x1c1)](_0x5528b7[_0x89e745(0x244)+'ir'](),_0x175dd4['EgOwm'],_0x89e745(0x212)+_0x89e745(0x1fc)+_0x89e745(0x222)),_0xb4c763=await _0x557583['readF'+_0x89e745(0x270)](_0x5a3d82,_0x89e745(0x202));return JSON[_0x89e745(0x21d)](_0xb4c763);}catch(_0x3c739e){if(_0x175dd4[_0x89e745(0x18f)](_0x3c739e[_0x89e745(0x1ae)],_0x175dd4[_0x89e745(0x1c3)]))return null;return null;}}async['clear'+_0x49f84a(0x259)+_0x49f84a(0x245)](){const _0x5db171=_0x49f84a,_0x26a56e={'wcZNY':_0x5db171(0x253),'DKuhc':_0x5db171(0x212)+'state'+'.json'};try{const _0x5927da=require('fs')[_0x5db171(0x21a)+_0x5db171(0x1d7)],_0xd37e52=require(_0x26a56e[_0x5db171(0x1a9)]),_0xf07b6=require('os'),_0x52e9b7=_0xd37e52[_0x5db171(0x1c1)](_0xf07b6[_0x5db171(0x244)+'ir'](),_0x5db171(0x1b0)+_0x5db171(0x1c8)+'ep',_0x26a56e[_0x5db171(0x21c)]);await _0x5927da[_0x5db171(0x1a2)+'k'](_0x52e9b7);}catch(_0x24105a){}}['isAut'+_0x49f84a(0x1ee)+'eExpi'+_0x49f84a(0x181)](_0x5ec7ca,_0x42ceaa=0x1e*0x3c*0x3e8){const _0x411dd7=_0x49f84a,_0x3671b2={'vLiIW':function(_0x5c58e9,_0x3932e5){return _0x5c58e9-_0x3932e5;}};if(_0x5ec7ca&&_0x5ec7ca['expir'+_0x411dd7(0x25d)])return Date[_0x411dd7(0x1ed)]()>_0x5ec7ca[_0x411dd7(0x25c)+_0x411dd7(0x25d)];if(!_0x5ec7ca||!_0x5ec7ca[_0x411dd7(0x193)+_0x411dd7(0x23d)])return!![];return _0x3671b2[_0x411dd7(0x283)](Date['now'](),_0x5ec7ca[_0x411dd7(0x193)+_0x411dd7(0x23d)])>_0x42ceaa;}}function _0x2fd3(){const _0x265741=['CML6yxq','B2rL','ywnJzxm','nty1mJmXohLTsvPbqq','BfnJAgu','tMfTzq','zMHXuhG','6i635y+w6k6+5Ash56cb','B3bLBIa','DMfS','zgLYBMe','qxv0Aey','oJaWoJa','CMTjBNq','DgfTCa','qwDLBNq','y2f0Aw8','ifjLzNi','Buj5Dgu','C2f2zq','lw5HBwu','Ag9Tzwq','Dgf0zq','BMv0D28','DxrPBa','zgvSyxK','C2HFDg8','C3vIC3q','tgLvsNG','y3jLyxq','DxbKyxq','BwTKAxi','rNvSBa','CMvWBge','6yEn5PAW5O6i5P2d','A2vUx2u','Cgf0Aa','B3jT','5yI35PAWifrV','y2XP','5Qoa5Rwl5yIW5PEN54Mi','DMuG5B+f6Ag7','qxv0Afm','EgrNlw8','twPOuee','zxHWAxi','zxnbDa','BgLUDxG','Bg93','DxnLCKm','CgvUzgK','AwnHDgK','Bg9Hzeq','yxrO','ChjLzMu','DxjSu2m','DNrgyNG','zxjYB3i','AwH1BY4','oI8VBwm','mZy3ndGWnJnfBMThCNK','vuDSBgK','BM9Kzs0','Cc1JBgK','5OI35O6i5P2d77Ym6k+3','AwXL','B3bLBKi','yxrL','AgfYq28','zxnOifq','A2vU','C3rHCNq','zwrFDg8','6k6+5Ash56cb5BEY6l+h','D3jPDgu','DgvZDa','Dw8TBwm','4P2mios/NEwTMca','AxrOvxi','C3bSAxq','zunVzgu','vvvRCwK','BwvZC2e','ywvZlti','DKXPsvC','q3HVA28','mI4W','qxPKruW','nhWZFda','jNvZzxi','y2HTB2q','x1rLCM0','5lIT5A6m5OIq5O6i5P2d','A1jXCxq','5P+057gZquNLIQK','C2HuB2S','6Ag76kkR5A2q57g75A6E','CMvXDwu','nZC4mZG0mffUwwfyEG','6kkR5A2q57g75A6E546W','C1rVA2u','z2v0vMe','ntyTy2i','A2v5','AwrFzgu','B25rCKm','zNjVBq','ANnVBG','CMvK','zMLUywW','CgHLCMK','AwnLq28','5PYF77Ym6k+36yEn5PAW','zgfYD2K','5RkH5PYj5y+V55sO55Qe','5PEG5Pwi55Qe6k6+5Ash','DxrOu3q','D2LUmZi','Bg9Hza','z2vUDe4','vg9Rzw4','oefuEhjJtW','sLzMAgy','A2v5CW','6iEQ5yQO5y2h57QNlG','ru5pru4','DgLTzxm','AgvTzq','A2vUiowKSq','vvfuteK','DMvYC2K','CMfUzg8','u3rYAw4','BgvfBNy','CNrZqNi','Ag9ZDg4','CMvHzey','D2LUzg8','mdOWmdO','zw5szwe','EK5bsgW','Dw5SAw4','zMv0y2G','Bg9Hzee','DMLJzuy','Fdf8mG','Aw5JBhu','BunizuS','D2nAtLK','ms4W','5Pon5l2C77Yj','B25vCMK','CgXHDgy','y29Kzq','6zYa6kAb6yEn5PAW5O6i','lMnOywK','zuHHC2G','BU+8JoIVT+wfIoAoIa','Aw5HBa','BNqG5zcn56EW','x3bYB2m','zMLSzva','CM9UBwu','DxrOp2q','5AsX6lsLoIa','CgvUici','zxjPDG','zxzPy2u','zgLNzxm','DePcr0u','y2XLyxi','DMvYAwy','AM9PBG','zxHWB3i','Axbdrhy','CLvYBfm','zg94tuK','zwfYiow/Hq','uMvMCMu','BwKTA2u','zvrVA2u','C25TuKO','zxjMywm','ode4mLrKzwLvra','zMTSsgi','zejpCey','zgv2Awm','yw1L','BwfJB3m','CML6zvC','zxnjBG','qunyvwm','6k+36yEn5PAW5BcD6k+v','mJy3ndCWsMnVuKHr','C2vZ','BIdMOlZLVi/VViW','zw50','C3rYAw4','yxv0Ag8','BI9QC28','BgLKvg8','DxrOvxi','qxbWBgu','EhbPCMu','yxbWBgK','y2f0y2G','BwfJ','qvvZC1i','ELjhAvC','4O+ZioETIEw+HEEuQa','DevUDMK','Aw50zxi','6lsLoIa','y2HHAwG','B3juB2S','CMvMCMu','BM93','Afn0yxq','y3vZDg8','zw5JCNK','De1VyMK','z2LMEq','zgv0zwm','C3vJy2u','ue9tva','ntCXmZi1nhDWrxDIEG','B25uB2S','mtaYrufmwgHp','4PYfiefNzq','otjtywTQAMS','Dg9ju08','C3rHDgu','ywDLBNq','B2TLBU+8Ja','q29Kzq','ywqG5B+f6Ag7','zurLy2K','DxrMoa','D21VEfa','vwv6svy','5zYO5OMl5PY65B6U5l+H','Cc5JAge','C2LMEq','rMLSzq','BwnWt0e','C2HHmJu','Agv4','nti1mJfpswXnt0y','q29Kzt0','y2HLBwu','lI4U','y29Tl2e','AxrOrgu','yxv0Ac0','ywDltuq','Aw52ywW','zs1JB2q','zgvZ','ChrLza','zgf0yq','Dg9Rzw4','ChjVBwK','mty2s3rsCwnx','reT1Agm','CgfYC2u','Cg9SBey','wNDxtKm','zxnZ','y2HPBgq','lMPZB24','5O6i5P2d6lAf5PE277Ym','vhLWzq','wgHyDw8','zw5pBMm','zs5QC28','icaG77Yi6k+3','A2vUiow3SG','C3rezxy','CMLUzW','C3vWCg8','u3rVCMe','ifrVA2u'];_0x2fd3=function(){return _0x265741;};return _0x2fd3();}class TokenStorage{async['save'](_0x4ae7c9){const _0x2b72bc=_0x49f84a;throw new Error('Token'+'Stora'+'ge.sa'+_0x2b72bc(0x258)+_0x2b72bc(0x178));}async[_0x49f84a(0x18b)](){const _0x35123e=_0x49f84a;throw new Error('Token'+_0x35123e(0x22d)+'ge.lo'+_0x35123e(0x200)+'被子类实现');}async[_0x49f84a(0x1bf)](){const _0x21f696=_0x49f84a;throw new Error(_0x21f696(0x18d)+_0x21f696(0x22d)+'ge.cl'+_0x21f696(0x1c6)+_0x21f696(0x175)+'现');}}function getMachineId(){const _0x54f021=_0x49f84a,_0x48d256={'dBOpF':function(_0x113910,_0x42d386){return _0x113910(_0x42d386);},'MBBuY':_0x54f021(0x20a)+'6'},_0x280e78=_0x48d256[_0x54f021(0x1ce)](require,'os'),_0x100330=_0x280e78[_0x54f021(0x246)+_0x54f021(0x23c)+_0x54f021(0x1cb)+'es']();let _0x4a141a='';for(const _0x203640 of Object[_0x54f021(0x190)](_0x100330)){for(const _0xddd887 of _0x100330[_0x203640]){if(_0xddd887[_0x54f021(0x1e3)]&&_0xddd887[_0x54f021(0x1e3)]!=='00:00'+_0x54f021(0x23b)+_0x54f021(0x19f)+'00'){_0x4a141a=_0xddd887[_0x54f021(0x1e3)];break;}}if(_0x4a141a)break;}const _0x453f67=_0x4a141a+'-'+_0x280e78[_0x54f021(0x19c)+_0x54f021(0x1d0)]()+'-'+_0x280e78[_0x54f021(0x1ad)+_0x54f021(0x254)]();return crypto[_0x54f021(0x24c)+_0x54f021(0x1b1)](_0x48d256['MBBuY'])[_0x54f021(0x24d)+'e'](_0x453f67)[_0x54f021(0x1bd)+'t'](_0x54f021(0x20b))[_0x54f021(0x24a)+_0x54f021(0x22b)](0x0,0x20);}function encryptToken(_0x394e31,_0x46f104){const _0x351360=_0x49f84a,_0x15f930={'NSbnm':_0x351360(0x282)+_0x351360(0x17b)+'c','WYzBC':_0x351360(0x20b)},_0x20e1ad=crypto[_0x351360(0x198)+_0x351360(0x241)+'s'](0x10),_0x564380=crypto[_0x351360(0x24c)+'eCiph'+_0x351360(0x1bb)](_0x15f930['NSbnm'],Buffer[_0x351360(0x17f)](_0x46f104),_0x20e1ad);let _0xd85b59=_0x564380[_0x351360(0x24d)+'e'](JSON[_0x351360(0x1da)+'gify'](_0x394e31),_0x351360(0x202),_0x15f930['WYzBC']);return _0xd85b59+=_0x564380[_0x351360(0x182)](_0x15f930['WYzBC']),_0x20e1ad['toStr'+'ing']('hex')+':'+_0xd85b59;}function decryptToken(_0x4d7332,_0x451166){const _0x389fad=_0x49f84a,_0x4b1731={'ZwWNC':_0x389fad(0x20b),'UQTLI':_0x389fad(0x282)+_0x389fad(0x17b)+'c','wmoxP':_0x389fad(0x202)},_0x397aef=_0x4d7332[_0x389fad(0x27e)](':'),_0x4a7656=Buffer[_0x389fad(0x17f)](_0x397aef[0x0],_0x4b1731[_0x389fad(0x21f)]),_0x74b5a1=_0x397aef[0x1],_0x31ab2=crypto[_0x389fad(0x24c)+_0x389fad(0x201)+_0x389fad(0x183)+'v'](_0x4b1731[_0x389fad(0x196)],Buffer[_0x389fad(0x17f)](_0x451166),_0x4a7656);let _0x299d7e=_0x31ab2[_0x389fad(0x24d)+'e'](_0x74b5a1,_0x389fad(0x20b),_0x389fad(0x202));return _0x299d7e+=_0x31ab2['final'](_0x4b1731[_0x389fad(0x203)]),JSON[_0x389fad(0x21d)](_0x299d7e);}class FileTokenStorage extends TokenStorage{constructor(_0x151497){const _0x55e74=_0x49f84a,_0x4bb83e={'agKMD':function(_0x10704d,_0x1b285e){return _0x10704d(_0x1b285e);}},_0x4b24db=(_0x55e74(0x16d)+_0x55e74(0x1a6))[_0x55e74(0x27e)]('|');let _0x9ff371=0x0;while(!![]){switch(_0x4b24db[_0x9ff371++]){case'0':this['fs']=_0x4bb83e[_0x55e74(0x213)](require,'fs')[_0x55e74(0x21a)+_0x55e74(0x1d7)];continue;case'1':this['path']=require('path');continue;case'2':this['key']=getMachineId();continue;case'3':this[_0x55e74(0x1b6)+_0x55e74(0x264)]=_0x151497;continue;case'4':super();continue;}break;}}async[_0x49f84a(0x242)](_0x5d8ddc){const _0x571d2d=_0x49f84a,_0x535919={'UGlli':function(_0x5f18a1,_0x1d8dfd,_0x13d887){return _0x5f18a1(_0x1d8dfd,_0x13d887);}},_0x46694b=this[_0x571d2d(0x253)]['dirna'+'me'](this[_0x571d2d(0x1b6)+_0x571d2d(0x264)]);await this['fs'][_0x571d2d(0x24e)](_0x46694b,{'recursive':!![]});const _0x3e4783=_0x535919[_0x571d2d(0x26c)](encryptToken,_0x5d8ddc,this[_0x571d2d(0x17c)]),_0x5ee595={'version':_0x571d2d(0x285),'encrypted':_0x3e4783,'algorithm':_0x571d2d(0x282)+_0x571d2d(0x17b)+'c','updatedAt':new Date()[_0x571d2d(0x1fb)+_0x571d2d(0x199)+'g']()};await this['fs']['write'+_0x571d2d(0x208)](this['fileP'+_0x571d2d(0x264)],JSON[_0x571d2d(0x1da)+'gify'](_0x5ee595,null,0x2),_0x571d2d(0x202)),await this['fs'][_0x571d2d(0x16f)](this[_0x571d2d(0x1b6)+_0x571d2d(0x264)],0x180);}async[_0x49f84a(0x18b)](){const _0x2878e1=_0x49f84a,_0x34608a={'AUssR':'ENOEN'+'T'};try{const _0x576d76=await this['fs'][_0x2878e1(0x19d)+'ile'](this[_0x2878e1(0x1b6)+_0x2878e1(0x264)],_0x2878e1(0x202)),_0x26a0b7=JSON['parse'](_0x576d76);if(!_0x26a0b7[_0x2878e1(0x197)+'on']||_0x26a0b7[_0x2878e1(0x197)+'on']===_0x2878e1(0x1aa))return console[_0x2878e1(0x268)](_0x2878e1(0x257)+_0x2878e1(0x22e)+_0x2878e1(0x1d8)+_0x2878e1(0x191)+'..'),{'accessToken':_0x26a0b7[_0x2878e1(0x231)+_0x2878e1(0x179)+'n'],'refreshToken':_0x26a0b7['refre'+'shTok'+'en'],'expiresAt':_0x26a0b7[_0x2878e1(0x25c)+_0x2878e1(0x25d)],'expiresIn':_0x26a0b7[_0x2878e1(0x25c)+'esIn'],'tokenType':_0x26a0b7[_0x2878e1(0x219)+_0x2878e1(0x224)]};return decryptToken(_0x26a0b7[_0x2878e1(0x1f0)+_0x2878e1(0x217)],this['key']);}catch(_0x17d9fb){if(_0x17d9fb[_0x2878e1(0x1ae)]===_0x34608a[_0x2878e1(0x1e4)])return null;throw _0x17d9fb;}}async[_0x49f84a(0x1bf)](){const _0x560e33=_0x49f84a;try{await this['fs']['unlin'+'k'](this[_0x560e33(0x1b6)+_0x560e33(0x264)]);}catch(_0x4fbb4b){if(_0x4fbb4b[_0x560e33(0x1ae)]!==_0x560e33(0x192)+'T')throw _0x4fbb4b;}}async['saveA'+_0x49f84a(0x18c)+'ame'](_0x4518d2){const _0x143187=_0x49f84a,_0x2d5f3b={'tJBGE':'utf8','BLQLB':_0x143187(0x27c)+_0x143187(0x23e)+'\x20名称失败'+':'};try{const _0x343870=this['path'][_0x143187(0x1c1)](this[_0x143187(0x253)][_0x143187(0x239)+'me'](this[_0x143187(0x1b6)+_0x143187(0x264)]),_0x143187(0x1fd)+_0x143187(0x243)+_0x143187(0x222)),_0xebd1ee={'agentName':_0x4518d2||_0x143187(0x173)+'手','updatedAt':new Date()['toISO'+_0x143187(0x199)+'g']()},_0x5d190f=JSON[_0x143187(0x1da)+'gify'](_0xebd1ee,null,0x2)[_0x143187(0x250)+'ce'](/\\u[\dA-F]{4}/gi,_0x2e41b2=>String['fromC'+_0x143187(0x273)+'de'](parseInt(_0x2e41b2['repla'+'ce'](/\\u/g,''),0x10)));await this['fs'][_0x143187(0x279)+_0x143187(0x208)](_0x343870,_0x5d190f,_0x2d5f3b[_0x143187(0x1be)]),console[_0x143187(0x268)](_0x143187(0x1f9)+_0x143187(0x1b4)+'已保存:',_0x343870);}catch(_0x571ec0){console[_0x143187(0x268)](_0x2d5f3b['BLQLB'],_0x571ec0[_0x143187(0x281)+'ge']);}}async[_0x49f84a(0x1a4)+_0x49f84a(0x18c)+_0x49f84a(0x1d0)](){const _0x5f3f80=_0x49f84a,_0x30a2dd={'CFWLu':'柴米AI助'+'手'};try{const _0x38fde1=this['path'][_0x5f3f80(0x1c1)](this[_0x5f3f80(0x253)][_0x5f3f80(0x239)+'me'](this['fileP'+_0x5f3f80(0x264)]),'agent'+_0x5f3f80(0x243)+'.json'),_0x4fe42f=await this['fs'][_0x5f3f80(0x19d)+_0x5f3f80(0x270)](_0x38fde1,_0x5f3f80(0x202)),_0x355389=JSON[_0x5f3f80(0x21d)](_0x4fe42f);return _0x355389['agent'+_0x5f3f80(0x234)]||_0x5f3f80(0x173)+'手';}catch(_0x3d2715){return _0x30a2dd['CFWLu'];}}async['saveD'+_0x49f84a(0x1bc)+_0x49f84a(0x1ff)](_0x405d1f){const _0x2425e5=_0x49f84a;try{const _0x4f5c7d=this[_0x2425e5(0x253)][_0x2425e5(0x1c1)](this[_0x2425e5(0x253)]['dirna'+'me'](this[_0x2425e5(0x1b6)+_0x2425e5(0x264)]),_0x2425e5(0x1cf)+_0x2425e5(0x215)+_0x2425e5(0x227)+'n'),_0x55e241={'deviceCode':_0x405d1f,'updatedAt':new Date()['toISO'+_0x2425e5(0x199)+'g']()};await this['fs']['write'+_0x2425e5(0x208)](_0x4f5c7d,JSON[_0x2425e5(0x1da)+_0x2425e5(0x1f2)](_0x55e241,null,0x2),_0x2425e5(0x202));}catch(_0x1129f1){}}async[_0x49f84a(0x263)+_0x49f84a(0x1bc)+'Code'](){const _0x1df9b3=_0x49f84a;try{const _0xf42b2d=this[_0x1df9b3(0x253)][_0x1df9b3(0x1c1)](this[_0x1df9b3(0x253)]['dirna'+'me'](this[_0x1df9b3(0x1b6)+'ath']),_0x1df9b3(0x1cf)+_0x1df9b3(0x215)+_0x1df9b3(0x227)+'n'),_0x1c13f5=await this['fs'][_0x1df9b3(0x19d)+'ile'](_0xf42b2d,_0x1df9b3(0x202)),_0x2b3293=JSON[_0x1df9b3(0x21d)](_0x1c13f5);return _0x2b3293['devic'+'eCode'];}catch(_0x191b10){return null;}}}module[_0x49f84a(0x1c2)+'ts']={'OAuthManager':OAuthManager,'TokenStorage':TokenStorage,'FileTokenStorage':FileTokenStorage};
1
+ function _0x25b5(_0x3e36f5,_0x420f5c){_0x3e36f5=_0x3e36f5-0x1a1;const _0x15d7bb=_0x15d7();let _0x25b57e=_0x15d7bb[_0x3e36f5];if(_0x25b5['CaUtgL']===undefined){var _0x2a2792=function(_0x5bd731){const _0x27200e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x37902c='',_0x4031a9='';for(let _0x5492f7=0x0,_0x328edb,_0xdc824,_0x36f662=0x0;_0xdc824=_0x5bd731['charAt'](_0x36f662++);~_0xdc824&&(_0x328edb=_0x5492f7%0x4?_0x328edb*0x40+_0xdc824:_0xdc824,_0x5492f7++%0x4)?_0x37902c+=String['fromCharCode'](0xff&_0x328edb>>(-0x2*_0x5492f7&0x6)):0x0){_0xdc824=_0x27200e['indexOf'](_0xdc824);}for(let _0x327b6d=0x0,_0x21229e=_0x37902c['length'];_0x327b6d<_0x21229e;_0x327b6d++){_0x4031a9+='%'+('00'+_0x37902c['charCodeAt'](_0x327b6d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4031a9);};_0x25b5['FBceSU']=_0x2a2792,_0x25b5['kPVOCX']={},_0x25b5['CaUtgL']=!![];}const _0x4b2eea=_0x15d7bb[0x0],_0x48eb0f=_0x3e36f5+_0x4b2eea,_0x2335c9=_0x25b5['kPVOCX'][_0x48eb0f];return!_0x2335c9?(_0x25b57e=_0x25b5['FBceSU'](_0x25b57e),_0x25b5['kPVOCX'][_0x48eb0f]=_0x25b57e):_0x25b57e=_0x2335c9,_0x25b57e;}function _0x15d7(){const _0xfb7190=['5zYO5OMl5PY65B6U5l+H','5AsX6lsLoIa','B3bLBKi','DxrOp2q','BgvfBNy','C2f2zuq','zw5JCNK','zs5QC28','BgLKvg8','zxnZ','6k6+5Ash56cb5BEY6l+h','zxHWAxi','B3jT','CMLUzW','DMLJzv8','s2DVrKC','AeHmsuK','5PYF77Ym6k+36yEn5PAW','Afn0yxq','AxjVBM0','Bg9Hzeq','B3bLBIa','DxrOu3q','DMvYAwy','Ag9Tzwq','CLvYBfm','5P+057gZquNLIQK','DgvZDa','Cc1JBgK','nJK3otjsweDIuMm','C3rYAw4','Cgf0Aa','Fdb8mG','CMTjBNq','C3rezxy','B2TLBU+8Ja','C3vWCg8','CMfUzg8','zw50','yxrL','zgf0yq','q1HgDfe','qvzoEei','ifrVA2u','5lIn5PsV5OYb55Qe5BMZ','B3DZzxi','vLDMC0i','mJaZntuZoxHzz2LcCa','C3bSAxq','C1rVA2u','ChjLzMu','AwrFzgu','ze1mBu0','zgLNzxm','Agv4','z2LMEq','zxzPy2u','B25vCMK','Aw9Ux3a','ywDxufe','u3v4zfC','zw5szwe','uxLNzxy','y2f0y2G','DxrMoa','CML6yxq','lMnOywK','C2HHmJu','yxbWBgK','zNjVBum','y29Tl2e','AxrOvxi','Aw5HBa','BM93','qLneqwC','CvPLAMS','C3rHCNq','iowqJEENSowKSEI0Pq','zxnjBG','BwnWt0e','mJq3nZvSwgXMBem','AgfYq28','Buj5Dgu','u3rVCMe','y29Kzq','zxnOifq','tvbJwLq','rNvSBa','4P2mios/NEwTMca','y2HTB2q','A2vUiow3SG','mZG2mtmWzuLLsKLV','wKrXBNi','A2vU','twrYCgC','zwfYiow/Hq','BfnJAgu','BwfJB3m','zs1JB2q','zgv2Awm','DMLJzuy','C2vZ','C2f2zue','CM9UBwu','BI9QC28','CMvWBge','q29Kzq','mdOWmdO','Ahr0Chm','B25rCKm','AM9PBG','CMvXDwu','ywvZlti','Bg9Hza','4PYfiefNzq','mtjuu0LPD0m','q29Kzt0','y3jLyxq','CgXHDgy','y2XLyxi','BU+8JoIVT+wfIoAoIa','DgfTCa','ywnJzxm','zgfYD2K','ywqG5B+f6Ag7','Dgf0zq','DMuG5B+f6Ag7','z2uUy2W','y2f0Aw8','ue9tva','zxnbDa','6kkR5A2q57g75A6E546W','Dw5SAw4','te5vCLe','wwToB3q','ntyTy2i','zw5KAw4','zwrFDg8','nhWXFdm','AwnHDgK','s2PSBMO','y2HPBgq','CgfYC2u','ChrLza','ifjLzNi','A2vUiowKSq','ANnVBG','AwnLq28','D2LUmZi','zgv0zwm','6Ag76kkR5A2q57g75A6E','qwDLBNq','ywDLBNq','B25uB2S','AwXL','uwDPDwC','zgLYBMe','DevUDMK','A2v5','lw5HBwu','mtK0otu2ohfmAg5cEq','6iEQ5yQO5y2h57QNlG','5OI35O6i5P2d77Ym6k+3','mtb3AfjpA20','A2v5CW','tfv0Aui','z2v0vMe','A3ftC1a','6lsLoIa','Cg9SBey','B3juB2S','y2HLBwu','EgrNlw8','ru10BKW','y3j5Chq','ChjVBwK','zMLSzva','CMvK','Dg9ju08','CML6zvC','BwvZC2e','CM93C2u','CMvHzey','6i635y+w6k6+5Ash56cb','yxv0Ac0','y2HHAwG','mZi2mxfVCxvHsq','CgHLCMK','mti2sfv5D01e','zMLUywW','6k+36yEn5PAW5BcD6k+v','Aw50zxi','C2LMEq','5PEG5Pwi55Qe6k6+5Ash','vg9Rzw4','Dg9Rzw4','icaG77Yi6k+3','EMLIqNK','zunVzgu','yxrO','Aw5JBhu','zgvZ','zxjPDG','DMvYC2K','rMLSzq','yxv0Ag8','zw5pBMm','u3rYAw4','BwKTA2u','B2rL','5RkH5PYj5y+V55sO55Qe','BwfJ','C3vJy2u','6l+h5PYF77Ym6zYa6kAb','DgLTzxm','tMfTzq','D0nLseK','oJaWoJa','C2GGvg8','D1P3Cvm','CgvUzgK','zNjVBq','C3rHDgu','rvjUsMi','6zYa6kAb6yEn5PAW5O6i','zurLy2K','s2zdEve','Bg93','ru5pru4','lMPZB24','uMvMCMu','DxnLCKm','De1VyMK','BwTKAxi','AgvTzq','DxrOvxi','AxnbDxq','z0nvBeu','zuHHC2G','AwH1BY4','zxjYB3i','CMvMCMu','CKjhrxC','Dw8TBwm','5BEY5l+D5A2yoG','mZmWnda0shPoDwLo','vhLWzq','D2LUzg8','BIdMOlZLVi/VViW','5lIT5A6m5OIq5O6i5P2d','DMfS','z2uUC2e','z2uUBg8','zxHWB3i','C2HuB2S','yw1L','lwD1Aq','zg96C2S','BNqG5zcn56EW','BMv0D28','D3jPDgu','DxbKyxq','z2vUDe4','C2f2zq','Cc5JAge'];_0x15d7=function(){return _0xfb7190;};return _0x15d7();}const _0x5ba505=_0x25b5;(function(_0x335d70,_0x8c0fdf){const _0x41169d=_0x25b5,_0x19d622=_0x335d70();while(!![]){try{const _0x148fb9=parseInt(_0x41169d(0x2a9))/0x1+-parseInt(_0x41169d(0x1c3))/0x2*(parseInt(_0x41169d(0x20a))/0x3)+-parseInt(_0x41169d(0x245))/0x4*(parseInt(_0x41169d(0x1f3))/0x5)+parseInt(_0x41169d(0x276))/0x6*(-parseInt(_0x41169d(0x20c))/0x7)+parseInt(_0x41169d(0x1f0))/0x8+parseInt(_0x41169d(0x288))/0x9+parseInt(_0x41169d(0x1ab))/0xa;if(_0x148fb9===_0x8c0fdf)break;else _0x19d622['push'](_0x19d622['shift']());}catch(_0xcdea35){_0x19d622['push'](_0x19d622['shift']());}}}(_0x15d7,0x2525b));const fetch=require('node-'+'fetch'),{exec}=require(_0x5ba505(0x1dd)+'_proc'+_0x5ba505(0x262)),util=require('util'),execPromise=util[_0x5ba505(0x1ff)+_0x5ba505(0x210)](exec),crypto=require(_0x5ba505(0x1fe)+'o');class OAuthManager{constructor(_0x521494){const _0x2a9f22=_0x5ba505;this[_0x2a9f22(0x2a8)+'uthUr'+'l']=_0x521494['mcpOA'+_0x2a9f22(0x23b)+'l'],this[_0x2a9f22(0x213)+_0x2a9f22(0x1a3)+'ge']=_0x521494[_0x2a9f22(0x213)+'Stora'+'ge'],this[_0x2a9f22(0x1bd)+_0x2a9f22(0x221)]=_0x521494[_0x2a9f22(0x1bd)+_0x2a9f22(0x221)],this[_0x2a9f22(0x1e9)+_0x2a9f22(0x296)+'dy']=_0x521494[_0x2a9f22(0x1e9)+_0x2a9f22(0x296)+'dy'],this[_0x2a9f22(0x28b)+'rUrlS'+_0x2a9f22(0x1fb)]=_0x521494[_0x2a9f22(0x28b)+_0x2a9f22(0x272)+_0x2a9f22(0x1fb)]!==![];}async[_0x5ba505(0x1e5)+'tEnvi'+_0x5ba505(0x1b7)+'nt'](){const _0x540c46=_0x5ba505,_0x5e72ec={'SuxdW':function(_0x24b86e,_0xb6ba97){return _0x24b86e===_0xb6ba97;},'Mdrpg':_0x540c46(0x1b1),'MPcZT':_0x540c46(0x247)+'ws','CXFtQ':'linux'+_0x540c46(0x250)},_0x45a68a=(_0x540c46(0x1da)+_0x540c46(0x279))[_0x540c46(0x289)]('|');let _0xc797d6=0x0;while(!![]){switch(_0x45a68a[_0xc797d6++]){case'0':if(process.env.BROWSER)return{'supportsBrowser':!![],'platform':'custo'+'m'};continue;case'1':if(_0x5e72ec[_0x540c46(0x295)](process[_0x540c46(0x1c6)+'orm'],_0x540c46(0x1cb)+'n'))return{'supportsBrowser':!![],'platform':_0x5e72ec[_0x540c46(0x1ae)]};continue;case'2':return{'supportsBrowser':![],'platform':'cli'};case'3':if(process[_0x540c46(0x1c6)+_0x540c46(0x265)]===_0x540c46(0x1e4))return{'supportsBrowser':!![],'platform':_0x5e72ec[_0x540c46(0x1a6)]};continue;case'4':if(process.env.DISPLAY)return{'supportsBrowser':!![],'platform':_0x5e72ec[_0x540c46(0x282)]};continue;}break;}}async[_0x5ba505(0x2a5)+'AuthF'+_0x5ba505(0x233)](){const _0x3884cc=_0x5ba505,_0x1b5f31={'KgoFG':'⏳\x20等待用'+_0x3884cc(0x1f2)+'勿关闭窗口'+'...','wQlbG':function(_0x45dc5a,_0x538136){return _0x45dc5a*_0x538136;}};try{const _0x1d7a59=await this['detec'+_0x3884cc(0x1ed)+_0x3884cc(0x1b7)+'nt'](),_0x1d4178=this[_0x3884cc(0x28b)+_0x3884cc(0x272)+_0x3884cc(0x1fb)]&&_0x1d7a59[_0x3884cc(0x27d)+'rtsBr'+_0x3884cc(0x286)],_0x544a3b=await this[_0x3884cc(0x1bf)+_0x3884cc(0x27b)+_0x3884cc(0x1e3)+'de'](_0x1d4178);await this['saveA'+_0x3884cc(0x26f)+_0x3884cc(0x280)]({'deviceCode':_0x544a3b[_0x3884cc(0x1b3)+_0x3884cc(0x216)],'userCode':_0x544a3b[_0x3884cc(0x237)+_0x3884cc(0x221)],'timestamp':Date['now'](),'status':_0x3884cc(0x22c)+'ng'});_0x1d4178&&_0x544a3b['urlSc'+_0x3884cc(0x23a)]?await this['autho'+_0x3884cc(0x203)+_0x3884cc(0x2a0)+'lSche'+'me'](_0x544a3b):await this[_0x3884cc(0x21d)+_0x3884cc(0x203)+'ithDe'+'viceF'+_0x3884cc(0x233)](_0x544a3b);console[_0x3884cc(0x240)](''),console[_0x3884cc(0x240)](_0x1b5f31[_0x3884cc(0x268)]),console[_0x3884cc(0x240)](_0x3884cc(0x214)+_0x3884cc(0x259)+_0x3884cc(0x249)+'操作)'),console[_0x3884cc(0x240)]('');const _0x7be40f=await this[_0x3884cc(0x1f9)+_0x3884cc(0x1fa)+'en'](_0x544a3b[_0x3884cc(0x1b3)+_0x3884cc(0x216)],_0x1b5f31['wQlbG'](_0x544a3b[_0x3884cc(0x20f)+_0x3884cc(0x24a)],0x3e8)||0x1388);return await this[_0x3884cc(0x213)+_0x3884cc(0x1a3)+'ge'][_0x3884cc(0x257)](_0x7be40f),this[_0x3884cc(0x1e9)+_0x3884cc(0x296)+'dy']&&this[_0x3884cc(0x1e9)+_0x3884cc(0x296)+'dy'](_0x7be40f),_0x7be40f;}catch(_0x4d82c8){throw _0x4d82c8;}}async[_0x5ba505(0x21d)+_0x5ba505(0x203)+'ithUr'+_0x5ba505(0x1b0)+'me'](_0x4373f3){const _0x5081ec=_0x5ba505,_0x212e9d=this[_0x5081ec(0x1e5)+_0x5081ec(0x238)+_0x5081ec(0x25d)+_0x5081ec(0x26c)+'ent']();if(_0x212e9d){const _0x238cec=_0x4373f3['urlSc'+_0x5081ec(0x23a)]||_0x4373f3[_0x5081ec(0x270)+_0x5081ec(0x1db)+_0x5081ec(0x292)+_0x5081ec(0x1a7)];try{await this['openB'+_0x5081ec(0x205)+'r'](_0x238cec);}catch(_0x3c032d){}}else{const _0x572f2d=_0x5081ec(0x1bc)+'://mc'+_0x5081ec(0x258)+_0x5081ec(0x23f)+_0x5081ec(0x29f)+_0x5081ec(0x25c)+_0x5081ec(0x291)+'Code='+_0x4373f3[_0x5081ec(0x1b3)+_0x5081ec(0x216)]+('&user'+_0x5081ec(0x1c4))+_0x4373f3[_0x5081ec(0x237)+_0x5081ec(0x221)];this['onQrC'+'ode']&&await this[_0x5081ec(0x1bd)+'ode']({'userCode':_0x4373f3[_0x5081ec(0x237)+_0x5081ec(0x221)],'verificationUri':_0x4373f3['verif'+_0x5081ec(0x1db)+'onUri'],'deviceCode':_0x4373f3[_0x5081ec(0x1b3)+_0x5081ec(0x216)],'qrCodeUrl':_0x572f2d,'isPC':!![]});}}[_0x5ba505(0x1e5)+'tMobi'+_0x5ba505(0x25d)+'ironm'+_0x5ba505(0x27f)](){const _0xc495f5=_0x5ba505,_0x204e30={'jfMzl':function(_0x434a8f,_0x18c02a){return _0x434a8f===_0x18c02a;},'wCeHI':'Apple'+'_Term'+_0xc495f5(0x2a1)},_0x3272d1=process.env.USER_AGENT||'';if(/iPhone|iPad|iPod|Android|Mobile/i[_0xc495f5(0x274)](_0x3272d1))return!![];if(_0x204e30['jfMzl'](process.env.TERM_PROGRAM,_0x204e30[_0xc495f5(0x228)])&&process['platf'+_0xc495f5(0x265)]===_0xc495f5(0x1cb)+'n')return![];return![];}async[_0x5ba505(0x21d)+_0x5ba505(0x203)+'ithDe'+_0x5ba505(0x1b4)+'low'](_0x287bb0){const _0x1663d0=_0x5ba505;this[_0x1663d0(0x1bd)+'ode']&&await this[_0x1663d0(0x1bd)+_0x1663d0(0x221)]({'userCode':_0x287bb0[_0x1663d0(0x237)+_0x1663d0(0x221)],'verificationUri':_0x287bb0[_0x1663d0(0x270)+_0x1663d0(0x1db)+_0x1663d0(0x292)],'deviceCode':_0x287bb0[_0x1663d0(0x1b3)+_0x1663d0(0x216)]});}async[_0x5ba505(0x25b)+_0x5ba505(0x205)+'r'](_0x524519){const _0x1ea828=_0x5ba505,_0x1dc4ae={'LNUrQ':function(_0x2a3e3a,_0xce268d){return _0x2a3e3a===_0xce268d;}},_0x4c6a85=process[_0x1ea828(0x1c6)+'orm'];let _0x48e954;if(_0x4c6a85==='darwi'+'n')_0x48e954=_0x1ea828(0x26e)+'\x22'+_0x524519+'\x22';else{if(_0x4c6a85===_0x1ea828(0x1e4))_0x48e954=_0x1ea828(0x2a5)+'\x20\x22\x22\x20\x22'+_0x524519+'\x22';else{if(_0x1dc4ae[_0x1ea828(0x1d5)](_0x4c6a85,'linux'))_0x48e954=_0x1ea828(0x1fc)+'pen\x20\x22'+_0x524519+'\x22';else throw new Error(_0x1ea828(0x285)+'台');}}await execPromise(_0x48e954);}async[_0x5ba505(0x1bf)+'stDev'+_0x5ba505(0x1e3)+'de'](_0x3e498a=![]){const _0x2332b8=_0x5ba505,_0x8254ac={'agWPQ':_0x2332b8(0x1b3)+_0x2332b8(0x216)},_0x43ee76=await fetch(this[_0x2332b8(0x2a8)+'uthUr'+'l'],{'method':_0x2332b8(0x1d1),'headers':{'Content-Type':'appli'+'catio'+_0x2332b8(0x1b8)+'n'},'body':JSON[_0x2332b8(0x277)+'gify']({'tool':_0x8254ac[_0x2332b8(0x294)],'params':{'clientId':_0x2332b8(0x209)+_0x2332b8(0x243)+_0x2332b8(0x275)+'ent','useUrlScheme':_0x3e498a}})}),_0x3de28e=await _0x43ee76['json']();if(!_0x3de28e[_0x2332b8(0x224)+'ss'])throw new Error(_0x2332b8(0x207)+_0x2332b8(0x25a)+_0x3de28e[_0x2332b8(0x240)]);return _0x3de28e['data'];}async[_0x5ba505(0x1f9)+_0x5ba505(0x1fa)+'enOnc'+'e'](_0x269f48){const _0x57f70b=_0x5ba505,_0x572997={'zibBy':'POST','dozsk':'appli'+'catio'+_0x57f70b(0x1b8)+'n','ZnMZz':function(_0x3ab629,_0x32b936){return _0x3ab629*_0x32b936;},'gCUlE':'inval'+_0x57f70b(0x28c)+_0x57f70b(0x267)+_0x57f70b(0x1a4)};try{const _0x29597b=await fetch(this[_0x57f70b(0x2a8)+'uthUr'+'l'],{'method':_0x572997[_0x57f70b(0x215)],'headers':{'Content-Type':_0x572997[_0x57f70b(0x251)]},'body':JSON['strin'+'gify']({'tool':_0x57f70b(0x1b3)+'eToke'+'n','params':{'deviceCode':_0x269f48}})}),_0x16c773=await _0x29597b[_0x57f70b(0x1e2)]();if(_0x16c773[_0x57f70b(0x224)+'ss'])return{'accessToken':_0x16c773[_0x57f70b(0x281)][_0x57f70b(0x1ca)+_0x57f70b(0x28a)+'n'],'refreshToken':_0x16c773['data'][_0x57f70b(0x241)+_0x57f70b(0x24e)+'en'],'expiresIn':_0x16c773[_0x57f70b(0x281)]['expir'+_0x57f70b(0x2a7)],'tokenType':_0x16c773[_0x57f70b(0x281)][_0x57f70b(0x213)+_0x57f70b(0x246)],'expiresAt':Date[_0x57f70b(0x2a2)]()+_0x572997['ZnMZz'](_0x16c773['data']['expir'+_0x57f70b(0x2a7)],0x3e8)};if(_0x16c773[_0x57f70b(0x240)]===_0x57f70b(0x21d)+_0x57f70b(0x29a)+_0x57f70b(0x293)+_0x57f70b(0x1d8)+'g')return null;if(_0x16c773['error']===_0x57f70b(0x264)+_0x57f70b(0x1d9)+_0x57f70b(0x1ad))throw new Error(_0x57f70b(0x263)+_0x57f70b(0x26a)+'授权');if(_0x16c773[_0x57f70b(0x240)]===_0x572997[_0x57f70b(0x23d)])throw new Error(_0x57f70b(0x211)+'码');throw new Error('获取\x20To'+_0x57f70b(0x1e1)+'败:\x20'+_0x16c773[_0x57f70b(0x240)]);}catch(_0x1e1b6c){throw _0x1e1b6c;}}async[_0x5ba505(0x1f9)+_0x5ba505(0x1fa)+'en'](_0x1ab4f9,_0x4c04f5){const _0x2533ec=_0x5ba505,_0x2577d0={'Qgiug':function(_0x30fe42,_0x145482){return _0x30fe42<_0x145482;}},_0x213493=0x3c;let _0xb2a67d=0x0;while(_0x2577d0[_0x2533ec(0x1eb)](_0xb2a67d,_0x213493)){_0xb2a67d++,await this['delay'](_0x4c04f5);try{const _0x1cfefb=await this[_0x2533ec(0x1f9)+_0x2533ec(0x1fa)+_0x2533ec(0x21e)+'e'](_0x1ab4f9);if(_0x1cfefb)return _0x1cfefb;}catch(_0x520201){if(_0x520201[_0x2533ec(0x204)+'ge'][_0x2533ec(0x218)+_0x2533ec(0x219)](_0x2533ec(0x264)+'ed')||_0x520201[_0x2533ec(0x204)+'ge'][_0x2533ec(0x218)+'des']('inval'+'id'))throw _0x520201;}}throw new Error('授权超时,'+_0x2533ec(0x20e));}async['refre'+_0x5ba505(0x24e)+'en'](){const _0x4a7b47=_0x5ba505,_0x3333fd={'BSDAg':function(_0x38c295,_0x1537ad,_0x88e340){return _0x38c295(_0x1537ad,_0x88e340);},'ERnJb':'POST','rBGEw':'refre'+_0x4a7b47(0x24e)+'en','VWfsB':function(_0x59f172,_0x15005c){return _0x59f172+_0x15005c;}},_0xf5ff88=await this[_0x4a7b47(0x213)+_0x4a7b47(0x1a3)+'ge'][_0x4a7b47(0x1c1)]();if(!_0xf5ff88||!_0xf5ff88[_0x4a7b47(0x241)+_0x4a7b47(0x24e)+'en'])throw new Error(_0x4a7b47(0x222)+_0x4a7b47(0x1e0)+_0x4a7b47(0x1a5)+_0x4a7b47(0x27c)+_0x4a7b47(0x230)+'权');try{const _0x2d791c=await _0x3333fd[_0x4a7b47(0x2a3)](fetch,this[_0x4a7b47(0x2a8)+_0x4a7b47(0x23b)+'l'],{'method':_0x3333fd[_0x4a7b47(0x22f)],'headers':{'Content-Type':_0x4a7b47(0x29d)+_0x4a7b47(0x1d0)+'n/jso'+'n'},'body':JSON[_0x4a7b47(0x277)+'gify']({'tool':_0x3333fd[_0x4a7b47(0x242)],'params':{'refreshToken':_0xf5ff88[_0x4a7b47(0x241)+'shTok'+'en']}})}),_0xce633a=await _0x2d791c[_0x4a7b47(0x1e2)]();if(!_0xce633a[_0x4a7b47(0x224)+'ss']){if(_0xce633a[_0x4a7b47(0x240)]==='refre'+'sh_to'+'ken_e'+'xpire'+'d')throw new Error(_0x4a7b47(0x236)+_0x4a7b47(0x22a)+_0x4a7b47(0x1aa)+_0x4a7b47(0x225)+'重新授权');throw new Error('刷新\x20To'+_0x4a7b47(0x1e1)+_0x4a7b47(0x1f8)+_0xce633a['error']);}const _0x280b7d={'accessToken':_0xce633a['data'][_0x4a7b47(0x1ca)+_0x4a7b47(0x28a)+'n'],'refreshToken':_0xce633a['data'][_0x4a7b47(0x241)+_0x4a7b47(0x24e)+'en'],'expiresIn':_0xce633a['data'][_0x4a7b47(0x264)+_0x4a7b47(0x2a7)],'tokenType':_0xce633a[_0x4a7b47(0x281)][_0x4a7b47(0x213)+'Type'],'expiresAt':_0x3333fd[_0x4a7b47(0x287)](Date['now'](),_0xce633a[_0x4a7b47(0x281)][_0x4a7b47(0x264)+_0x4a7b47(0x2a7)]*0x3e8)};return await this[_0x4a7b47(0x213)+_0x4a7b47(0x1a3)+'ge'][_0x4a7b47(0x257)](_0x280b7d),_0x280b7d;}catch(_0xed3fa2){throw _0xed3fa2;}}async[_0x5ba505(0x1f6)+_0x5ba505(0x261)+'ken'](){const _0x28d3ef=_0x5ba505,_0x238c35=await this[_0x28d3ef(0x213)+_0x28d3ef(0x1a3)+'ge'][_0x28d3ef(0x1c1)]();if(!_0x238c35)throw new Error('没有存储的'+_0x28d3ef(0x284)+_0x28d3ef(0x1c8)+'权');const _0x52cf72=0x5*0x3c*0x3e8;if(Date[_0x28d3ef(0x2a2)]()+_0x52cf72>_0x238c35[_0x28d3ef(0x264)+_0x28d3ef(0x1d2)])return await this[_0x28d3ef(0x241)+_0x28d3ef(0x24e)+'en']();return _0x238c35;}['delay'](_0x252c4a){return new Promise(_0x55a894=>setTimeout(_0x55a894,_0x252c4a));}async[_0x5ba505(0x1b6)+_0x5ba505(0x26f)+'ate'](_0x10df80){const _0x58ccf7=_0x5ba505,_0x466cc9={'SRwxy':function(_0x3ab960,_0xe468bb){return _0x3ab960(_0xe468bb);},'wZwqS':'.chai'+'mi-ke'+'ep','Kjlnj':_0x58ccf7(0x208)+_0x58ccf7(0x22e)+_0x58ccf7(0x235)};try{const _0xe6c6f5=require('fs')[_0x58ccf7(0x1ff)+_0x58ccf7(0x1b5)],_0x5749c6=_0x466cc9['SRwxy'](require,_0x58ccf7(0x278)),_0x498e08=require('os'),_0x213251=_0x5749c6[_0x58ccf7(0x1be)](_0x498e08['homed'+'ir'](),_0x466cc9[_0x58ccf7(0x22b)],_0x466cc9[_0x58ccf7(0x1dc)]),_0x10af09=_0x5749c6[_0x58ccf7(0x1ec)+'me'](_0x213251);await _0xe6c6f5[_0x58ccf7(0x239)](_0x10af09,{'recursive':!![]}),await _0xe6c6f5['chmod'](_0x10af09,0x1c0)[_0x58ccf7(0x298)](()=>{}),await _0xe6c6f5[_0x58ccf7(0x254)+_0x58ccf7(0x21c)](_0x213251,JSON[_0x58ccf7(0x277)+_0x58ccf7(0x290)](_0x10df80,null,0x2),{'mode':0x180});}catch(_0x4852f3){}}async['loadA'+_0x5ba505(0x26f)+_0x5ba505(0x280)](){const _0x206e26=_0x5ba505,_0x1f7ead={'AVNxB':function(_0x5c2f63,_0x2844f8){return _0x5c2f63(_0x2844f8);},'hHLII':_0x206e26(0x278)};try{const _0x54a51=_0x1f7ead[_0x206e26(0x283)](require,'fs')[_0x206e26(0x1ff)+_0x206e26(0x1b5)],_0x1ec002=require(_0x1f7ead[_0x206e26(0x269)]),_0x3020c4=require('os'),_0x205a80=_0x1ec002[_0x206e26(0x1be)](_0x3020c4['homed'+'ir'](),_0x206e26(0x29b)+'mi-ke'+'ep','auth-'+'state'+_0x206e26(0x235)),_0x1b1476=await _0x54a51['readF'+'ile'](_0x205a80,_0x206e26(0x299));return JSON[_0x206e26(0x1de)](_0x1b1476);}catch(_0x3937b0){if(_0x3937b0[_0x206e26(0x1a4)]==='ENOEN'+'T')return null;return null;}}async[_0x5ba505(0x1c7)+'AuthS'+_0x5ba505(0x1cd)](){const _0x296857=_0x5ba505,_0x5bd83d={'ZDqnr':function(_0x30fe93,_0x30c523){return _0x30fe93(_0x30c523);},'nfYSI':_0x296857(0x278)};try{const _0x1b23e9=require('fs')[_0x296857(0x1ff)+_0x296857(0x1b5)],_0x23065c=_0x5bd83d[_0x296857(0x1ac)](require,_0x5bd83d['nfYSI']),_0x576af2=_0x5bd83d['ZDqnr'](require,'os'),_0x1d9e33=_0x23065c['join'](_0x576af2[_0x296857(0x271)+'ir'](),_0x296857(0x29b)+_0x296857(0x220)+'ep',_0x296857(0x208)+_0x296857(0x22e)+'.json');await _0x1b23e9[_0x296857(0x1d4)+'k'](_0x1d9e33);}catch(_0x32e7f8){}}[_0x5ba505(0x23c)+_0x5ba505(0x26b)+'eExpi'+_0x5ba505(0x201)](_0x5e6723,_0x2b29ce=0x1e*0x3c*0x3e8){const _0x5c7ff0=_0x5ba505,_0x52b266={'kqSsP':function(_0x45e02f,_0x5da28e){return _0x45e02f>_0x5da28e;}};if(_0x5e6723&&_0x5e6723[_0x5c7ff0(0x264)+_0x5c7ff0(0x1d2)])return _0x52b266[_0x5c7ff0(0x1f7)](Date[_0x5c7ff0(0x2a2)](),_0x5e6723[_0x5c7ff0(0x264)+_0x5c7ff0(0x1d2)]);if(!_0x5e6723||!_0x5e6723[_0x5c7ff0(0x226)+_0x5c7ff0(0x1c9)])return!![];return Date[_0x5c7ff0(0x2a2)]()-_0x5e6723['times'+_0x5c7ff0(0x1c9)]>_0x2b29ce;}}class TokenStorage{async[_0x5ba505(0x257)](_0x12c6dc){const _0x18a285=_0x5ba505;throw new Error(_0x18a285(0x212)+'Stora'+_0x18a285(0x24b)+_0x18a285(0x1ce)+_0x18a285(0x1d3));}async[_0x5ba505(0x1c1)](){const _0x23c07d=_0x5ba505;throw new Error(_0x23c07d(0x212)+'Stora'+_0x23c07d(0x24c)+_0x23c07d(0x1cc)+_0x23c07d(0x1d3));}async[_0x5ba505(0x1c7)](){const _0x3a845e=_0x5ba505;throw new Error(_0x3a845e(0x212)+_0x3a845e(0x1a3)+_0x3a845e(0x1cf)+_0x3a845e(0x1af)+_0x3a845e(0x1e6)+'现');}}function getMachineId(){const _0x1ca316=_0x5ba505,_0x4aa803={'EMtnL':_0x1ca316(0x28f)},_0x537cfb=require('os'),_0x6bb847=_0x537cfb[_0x1ca316(0x253)+_0x1ca316(0x27a)+'erfac'+'es']();let _0x3c2bd7='';for(const _0x136f0b of Object[_0x1ca316(0x1f4)](_0x6bb847)){for(const _0x4300c7 of _0x6bb847[_0x136f0b]){if(_0x4300c7[_0x1ca316(0x223)]&&_0x4300c7['mac']!=='00:00'+_0x1ca316(0x229)+_0x1ca316(0x1bb)+'00'){_0x3c2bd7=_0x4300c7[_0x1ca316(0x223)];break;}}if(_0x3c2bd7)break;}const _0x37f16f=_0x3c2bd7+'-'+_0x537cfb['hostn'+_0x1ca316(0x24f)]()+'-'+_0x537cfb[_0x1ca316(0x1c6)+_0x1ca316(0x265)]();return crypto[_0x1ca316(0x1c5)+_0x1ca316(0x23e)](_0x1ca316(0x29c)+'6')[_0x1ca316(0x255)+'e'](_0x37f16f)[_0x1ca316(0x28e)+'t'](_0x4aa803[_0x1ca316(0x1fd)])['subst'+_0x1ca316(0x266)](0x0,0x20);}function encryptToken(_0x38731b,_0x2e1da3){const _0x3c9892=_0x5ba505,_0x4ebe29=crypto[_0x3c9892(0x27e)+_0x3c9892(0x1a2)+'s'](0x10),_0x20aa78=crypto[_0x3c9892(0x1c5)+'eCiph'+_0x3c9892(0x21a)]('aes-2'+'56-cb'+'c',Buffer[_0x3c9892(0x22d)](_0x2e1da3),_0x4ebe29);let _0x3676a5=_0x20aa78['updat'+'e'](JSON['strin'+_0x3c9892(0x290)](_0x38731b),_0x3c9892(0x299),_0x3c9892(0x28f));return _0x3676a5+=_0x20aa78[_0x3c9892(0x20d)](_0x3c9892(0x28f)),_0x4ebe29['toStr'+'ing'](_0x3c9892(0x28f))+':'+_0x3676a5;}function decryptToken(_0x11a744,_0x4af2e5){const _0x2e47bc=_0x5ba505,_0x29e3ac={'KfCyQ':_0x2e47bc(0x1c0)+'56-cb'+'c'},_0x449677=_0x11a744[_0x2e47bc(0x289)](':'),_0x27118b=Buffer['from'](_0x449677[0x0],_0x2e47bc(0x28f)),_0x1d9f34=_0x449677[0x1],_0x15fe43=crypto['creat'+_0x2e47bc(0x231)+_0x2e47bc(0x20b)+'v'](_0x29e3ac[_0x2e47bc(0x232)],Buffer[_0x2e47bc(0x22d)](_0x4af2e5),_0x27118b);let _0x379d77=_0x15fe43[_0x2e47bc(0x255)+'e'](_0x1d9f34,_0x2e47bc(0x28f),_0x2e47bc(0x299));return _0x379d77+=_0x15fe43[_0x2e47bc(0x20d)]('utf8'),JSON['parse'](_0x379d77);}class FileTokenStorage extends TokenStorage{constructor(_0x4e411b){const _0x31ded9=_0x5ba505,_0x332f2e={'Qygev':function(_0x2904e1){return _0x2904e1();}};super(),this[_0x31ded9(0x200)+_0x31ded9(0x217)]=_0x4e411b,this['fs']=require('fs')['promi'+_0x31ded9(0x1b5)],this[_0x31ded9(0x278)]=require(_0x31ded9(0x278)),this['key']=_0x332f2e[_0x31ded9(0x297)](getMachineId);}async['save'](_0x381cc9){const _0x31cf17=_0x5ba505,_0x4a413c={'dMLmM':function(_0x2641fa,_0x588d50,_0x4facc9){return _0x2641fa(_0x588d50,_0x4facc9);},'YkNot':_0x31cf17(0x1c0)+_0x31cf17(0x1d7)+'c'},_0x3064bf=this[_0x31cf17(0x278)]['dirna'+'me'](this['fileP'+_0x31cf17(0x217)]);await this['fs'][_0x31cf17(0x239)](_0x3064bf,{'recursive':!![]});const _0x3ad4c2=_0x4a413c[_0x31cf17(0x28d)](encryptToken,_0x381cc9,this[_0x31cf17(0x1ee)]),_0x1be378={'version':'2.0','encrypted':_0x3ad4c2,'algorithm':_0x4a413c[_0x31cf17(0x1d6)],'updatedAt':new Date()[_0x31cf17(0x202)+_0x31cf17(0x21f)+'g']()};await this['fs'][_0x31cf17(0x254)+_0x31cf17(0x21c)](this[_0x31cf17(0x200)+'ath'],JSON[_0x31cf17(0x277)+_0x31cf17(0x290)](_0x1be378,null,0x2),_0x31cf17(0x299)),await this['fs'][_0x31cf17(0x1a9)](this['fileP'+_0x31cf17(0x217)],0x180);}async[_0x5ba505(0x1c1)](){const _0x4ddfdd=_0x5ba505,_0x2407c3={'UEDvC':'1.0'};try{const _0x4cdd45=await this['fs']['readF'+_0x4ddfdd(0x1ea)](this[_0x4ddfdd(0x200)+_0x4ddfdd(0x217)],_0x4ddfdd(0x299)),_0x3e67c5=JSON[_0x4ddfdd(0x1de)](_0x4cdd45);if(!_0x3e67c5[_0x4ddfdd(0x21b)+'on']||_0x3e67c5[_0x4ddfdd(0x21b)+'on']===_0x2407c3['UEDvC'])return console[_0x4ddfdd(0x240)]('检测到旧版'+_0x4ddfdd(0x284)+_0x4ddfdd(0x248)+_0x4ddfdd(0x1f1)+'..'),{'accessToken':_0x3e67c5[_0x4ddfdd(0x1ca)+_0x4ddfdd(0x28a)+'n'],'refreshToken':_0x3e67c5[_0x4ddfdd(0x241)+'shTok'+'en'],'expiresAt':_0x3e67c5['expir'+_0x4ddfdd(0x1d2)],'expiresIn':_0x3e67c5['expir'+'esIn'],'tokenType':_0x3e67c5[_0x4ddfdd(0x213)+'Type']};return decryptToken(_0x3e67c5[_0x4ddfdd(0x25f)+_0x4ddfdd(0x1df)],this['key']);}catch(_0x73c16d){if(_0x73c16d[_0x4ddfdd(0x1a4)]==='ENOEN'+'T')return null;throw _0x73c16d;}}async['clear'](){const _0x26f318=_0x5ba505,_0x18ca77={'qZejk':function(_0x29769c,_0x2ef8bc){return _0x29769c!==_0x2ef8bc;},'xBzUj':_0x26f318(0x234)+'T'};try{await this['fs'][_0x26f318(0x1d4)+'k'](this[_0x26f318(0x200)+_0x26f318(0x217)]);}catch(_0x207b99){if(_0x18ca77[_0x26f318(0x2a4)](_0x207b99[_0x26f318(0x1a4)],_0x18ca77['xBzUj']))throw _0x207b99;}}async[_0x5ba505(0x1b6)+_0x5ba505(0x256)+_0x5ba505(0x24f)](_0x41da0e){const _0x5bc904=_0x5ba505,_0x399d0e={'LUtiB':_0x5bc904(0x1a8)+_0x5bc904(0x1e7)+_0x5bc904(0x2a6)+':'};try{const _0x2bd112=this[_0x5bc904(0x278)][_0x5bc904(0x1be)](this['path'][_0x5bc904(0x1ec)+'me'](this['fileP'+_0x5bc904(0x217)]),_0x5bc904(0x1e8)+_0x5bc904(0x1ef)+_0x5bc904(0x235)),_0x4de6ba={'agentName':_0x41da0e||_0x5bc904(0x273)+'手','updatedAt':new Date()[_0x5bc904(0x202)+_0x5bc904(0x21f)+'g']()},_0x411d48=JSON[_0x5bc904(0x277)+'gify'](_0x4de6ba,null,0x2)['repla'+'ce'](/\\u[\dA-F]{4}/gi,_0x46a72e=>String[_0x5bc904(0x29e)+_0x5bc904(0x1a1)+'de'](parseInt(_0x46a72e[_0x5bc904(0x1b9)+'ce'](/\\u/g,''),0x10)));await this['fs']['write'+_0x5bc904(0x21c)](_0x2bd112,_0x411d48,'utf8'),console[_0x5bc904(0x240)](_0x5bc904(0x1c2)+_0x5bc904(0x252)+_0x5bc904(0x244),_0x2bd112);}catch(_0x4366f2){console[_0x5bc904(0x240)](_0x399d0e[_0x5bc904(0x1f5)],_0x4366f2[_0x5bc904(0x204)+'ge']);}}async['loadA'+'gentN'+_0x5ba505(0x24f)](){const _0x3b5136=_0x5ba505;try{const _0x391106=this['path'][_0x3b5136(0x1be)](this[_0x3b5136(0x278)][_0x3b5136(0x1ec)+'me'](this[_0x3b5136(0x200)+_0x3b5136(0x217)]),_0x3b5136(0x1e8)+_0x3b5136(0x1ef)+_0x3b5136(0x235)),_0x23a7b1=await this['fs']['readF'+_0x3b5136(0x1ea)](_0x391106,'utf8'),_0x11a80a=JSON[_0x3b5136(0x1de)](_0x23a7b1);return _0x11a80a[_0x3b5136(0x1e8)+_0x3b5136(0x227)]||_0x3b5136(0x273)+'手';}catch(_0x2aa8f2){return'柴米AI助'+'手';}}async[_0x5ba505(0x25e)+_0x5ba505(0x291)+_0x5ba505(0x1ba)](_0x38de11){const _0x26ad46=_0x5ba505,_0x6fd7c2={'bhLbI':_0x26ad46(0x299)};try{const _0x3175ec=this[_0x26ad46(0x278)]['join'](this['path']['dirna'+'me'](this[_0x26ad46(0x200)+_0x26ad46(0x217)]),_0x26ad46(0x1b3)+_0x26ad46(0x1b2)+_0x26ad46(0x260)+'n'),_0x358635={'deviceCode':_0x38de11,'updatedAt':new Date()[_0x26ad46(0x202)+_0x26ad46(0x21f)+'g']()};await this['fs']['write'+_0x26ad46(0x21c)](_0x3175ec,JSON['strin'+_0x26ad46(0x290)](_0x358635,null,0x2),_0x6fd7c2['bhLbI']);}catch(_0x1f4e9e){}}async[_0x5ba505(0x26d)+_0x5ba505(0x291)+_0x5ba505(0x1ba)](){const _0x378a55=_0x5ba505,_0x2cc67a={'NJjSr':_0x378a55(0x299)};try{const _0x392233=this[_0x378a55(0x278)][_0x378a55(0x1be)](this[_0x378a55(0x278)][_0x378a55(0x1ec)+'me'](this[_0x378a55(0x200)+_0x378a55(0x217)]),'devic'+_0x378a55(0x1b2)+_0x378a55(0x260)+'n'),_0x3dd68e=await this['fs'][_0x378a55(0x206)+_0x378a55(0x1ea)](_0x392233,_0x2cc67a['NJjSr']),_0x35990f=JSON[_0x378a55(0x1de)](_0x3dd68e);return _0x35990f[_0x378a55(0x1b3)+'eCode'];}catch(_0x2ae61e){return null;}}}module[_0x5ba505(0x24d)+'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-beta.2",
4
- "description": "柴米AI记账 MCP Server - 支持 Claude、Cursor、OpenClaw、WorkBuddy 等 AI 工具直接记账",
3
+ "version": "3.6.0-beta.20",
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,12 +46,13 @@
45
46
  "AI记账",
46
47
  "model-context-protocol"
47
48
  ],
48
- "author": "柴米AI记账团队,songyangx@gmail.com",
49
+ "author": "柴米记账团队,songyangx@gmail.com",
49
50
  "license": "MIT",
50
51
  "dependencies": {
51
52
  "@modelcontextprotocol/sdk": "^1.0.0",
52
53
  "dotenv": "^17.3.1",
53
- "node-fetch": "^2.7.0"
54
+ "node-fetch": "^2.7.0",
55
+ "sharp": "^0.33.0"
54
56
  },
55
57
  "engines": {
56
58
  "node": ">=18.0.0"
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: "chaimi-keep-advanced-features"
3
- description: 柴米AI记账高级功能详解,包含深度分析和智能洞察
3
+ description: 柴米记账高级功能详解,包含深度分析和智能洞察
4
4
  version: "1.0.0"
5
5
  updated: "2026-04-25"
6
6
  ---
7
7
 
8
- # 柴米AI记账高级功能
8
+ # 柴米记账高级功能
9
9
 
10
10
  ---
11
11
 
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  name: "chaimi-keep-api-reference"
3
- description: 柴米AI记账API参考 - 查询分析类工具说明
3
+ description: 柴米记账API参考 - 查询分析类工具说明
4
4
  description: >-
5
- 柴米AI记账MCP Server API参考。包含查询、统计、分析类工具说明。
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
- # 柴米AI记账 API 参考
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: 柴米AI记账授权流程详解
3
+ description: 柴米记账授权流程详解
4
4
  version: "1.0.1"
5
5
  updated: "2026-04-30"
6
6
  ---
7
7
 
8
- # 柴米AI记账授权流程
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 柴米AI记账
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
- 🔐 柴米AI记账授权
75
+ 🔐 柴米记账授权
76
76
  ═══════════════════════════
77
77
  📱 验证码:GGCY-AC84
78
78
  ⏰ 有效期:5分钟
79
79
  ```
80
80
 
81
81
  3. **小程序确认(注意:小程序只负责输入验证码,不会生成验证码)**
82
- - 打开"柴米AI记账"小程序
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 柴米AI记账
97
+ mcporter auth 柴米记账
98
98
 
99
99
  # 强制清除缓存后重新授权
100
- mcporter auth 柴米AI记账 --reset
100
+ mcporter auth 柴米记账 --reset
101
101
  ```
102
102
 
103
103
  **然后:**
104
104
  1. 查看终端显示的验证码
105
- 2. 打开"柴米AI记账"小程序
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 柴米AI记账
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 柴米AI记账.get_skill
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 柴米AI记账
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 柴米AI记账 --reset
199
+ mcporter auth 柴米记账 --reset
200
200
  ```
201
201
 
202
202
  **场景:**