chaimi-keep-mcp 3.6.0-beta.19 → 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 +5 -5
- package/SKILL.md +7 -7
- 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 +3 -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 +19 -19
- 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,15 +1,15 @@
|
|
|
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
|
|
|
@@ -70,7 +70,7 @@ updated: "2026-05-17"
|
|
|
70
70
|
## 三、文档引用关系
|
|
71
71
|
|
|
72
72
|
```
|
|
73
|
-
|
|
73
|
+
用户使用柴米记账
|
|
74
74
|
↓
|
|
75
75
|
chaimi-keep-mcp ⭐ 本Skill
|
|
76
76
|
├── 记账成功 → 使用回复模板(见七、回复规范)
|
|
@@ -242,7 +242,7 @@ references/
|
|
|
242
242
|
💡 消费洞察:本月餐饮支出占比30%,建议控制
|
|
243
243
|
═══════════════
|
|
244
244
|
🎉 *美食为梦想充电,继续向前冲!*
|
|
245
|
-
|
|
245
|
+
*柴米记账chaimi-keep-mcp v4.0.0-beta.0*
|
|
246
246
|
```
|
|
247
247
|
|
|
248
248
|
**模板变量说明:**
|
|
@@ -266,7 +266,7 @@ references/
|
|
|
266
266
|
|
|
267
267
|
## 八、记忆口诀
|
|
268
268
|
|
|
269
|
-
>
|
|
269
|
+
> **柴米记账超美学,五层结构要牢记。**
|
|
270
270
|
> **成功标识在顶部,金额分隔最醒目。**
|
|
271
271
|
> **商品分类商家时,底部祝福加品牌。**
|
|
272
272
|
> **场景路由先匹配,工具速查再执行。**
|
|
@@ -291,7 +291,7 @@ references/
|
|
|
291
291
|
|
|
292
292
|
| 错误 | 现象 | 解决方案 | 参考文档 |
|
|
293
293
|
|:-----|:-----|:---------|:---------|
|
|
294
|
-
| **授权失败** | "未找到有效授权" | 执行 `mcporter auth
|
|
294
|
+
| **授权失败** | "未找到有效授权" | 执行 `mcporter auth 柴米记账` 重新授权 | troubleshooting.md |
|
|
295
295
|
| **分类不明** | "无法识别分类" | 明确说分类:"午餐35元餐饮" | api-reference.md |
|
|
296
296
|
| **网络超时** | "请求超时" | 检查网络,稍后重试 | troubleshooting.md |
|
|
297
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 _0x42bc77=_0x3e60;(function(_0x398541,_0x4a48c5){const _0x5b9663=_0x3e60,_0x3c7014=_0x398541();while(!![]){try{const _0x3573fc=parseInt(_0x5b9663(0x1e2))/0x1*(parseInt(_0x5b9663(0x279))/0x2)+parseInt(_0x5b9663(0x273))/0x3+parseInt(_0x5b9663(0x24f))/0x4+-parseInt(_0x5b9663(0x2df))/0x5+parseInt(_0x5b9663(0x27c))/0x6+-parseInt(_0x5b9663(0x2d6))/0x7*(-parseInt(_0x5b9663(0x238))/0x8)+-parseInt(_0x5b9663(0x2b1))/0x9;if(_0x3573fc===_0x4a48c5)break;else _0x3c7014['push'](_0x3c7014['shift']());}catch(_0x2f92f7){_0x3c7014['push'](_0x3c7014['shift']());}}}(_0x4d7f,0x401b4));function _0x4d7f(){const _0x33951e=['BNqG5zcn56EW','CM9UBwu','B25vCMK','ChjVBwK','B3juB2S','Dgf0zq','zxHWAxi','EhbPCMu','qxv0Afm','DxrOp2q','5lIn5PsV5OYb55Qe5BMZ','Cc1JBgK','Bg93','5Pon5l2C77Yj','Aw52ywW','6lsLoIa','ndnPD1HQtw0','qxbWBgu','6Ag76kkR5A2q57g75A6E','A2vUx2u','zgv2Awm','B1ncDhC','rMLSzq','B3bLBKi','5PEG5Pwi55Qe6k6+5Ash','AgvTzq','5zYO5OMl5PY65B6U5l+H','DxrOvxi','Dg9YCfu','zxjYB3i','ntyTy2i','zgvZ','CgvUzgK','B3bLBIa','DxjSu2m','teLHsha','CM93C2u','C3rYAw4','q29Kzq','C3rezxy','5O6i5P2d6lAf5PE277Ym','z2vUDe4','DMLJzuy','lw5HBwu','C2HFDg8','yK1wEge','CLvYBfm','zMLUywW','CgfYC2u','rNvSBa','AwnLq28','zxnjBG','BM93','y2HPBgq','zwfYiow/Hq','C3vWCg8','BfnJAgu','tMfTzq','zgvSyxK','Cgf0Aa','zMLSzva','y29Kzq','iowqJEENSowKSEI0Pq','zuHHC2G','AxjVBM0','lMnOywK','Cxr1yuK','u3rYAw4','lMPZB24','Fdf8mG','CgXHDgy','icaG77Yi6k+3','CML6yxq','B25rCKm','Aw50zxi','x1rLCM0','Ag9ZDg4','rg51z2i','zw5szwe','C2HuB2S','4PYfiefNzq','qxv0Aey','y2HLBwu','AfH3Dw0','Ag9Tzwq','5Qoa5Rwl5yIW5PEN54Mi','C2f2zue','mI4W','zgfYD2K','ms4W','C3rHDgu','zxjPDG','6yEn5PAW5O6i5P2d','C2vZ','CMTjBNq','BwfJ','ue9tva','EgrNlw8','Dg9ju08','Afn0yxq','D2LUmZi','yxv0Ag8','odq3mdK2Duf6Dezc','DMuG5B+f6Ag7','whj3CfC','Cg9SBey','zMv0y2G','zxnbDa','z2uUy2W','ifrVA2u','De1VyMK','AwrFzgu','zgLYBMe','DgfTCa','EuzfAuO','A2vU','z01YCxy','sLr1tem','yxv0Ac0','zw5JCNK','Dg9Rzw4','D2LUzg8','sNnlzMy','AxrOrgu','qKPQvLC','ote0ndaWtvDwt1DO','5OI35O6i5P2d77Ym6k+3','tufsuhC','4P2mios/NEwTMca','sfLqtKW','CMvMCMu','6l+h5PYF77Ym6zYa6kAb','5BEY5l+D5A2yoG','B3DZzxi','zgf0yq','DuHdtgW','zxnOifq','BgvfBNy','C2GGvg8','AxrOvxi','zs5QC28','CgHLCMK','veXKDw4','DMvYC2K','zw50','BI9QC28','AwXL','zxnZ','y2XLyxi','6kkR5A2q57g75A6E546W','DgLTzxm','B2TLBU+8Ja','y2HTB2q','6zYa6kAb6yEn5PAW5O6i','CNrZqNi','C3vJy2u','DvjUEMy','D3jPDgu','AxnbDxq','BIdMOlZLVi/VViW','r3HKvuC','odyWoduZEgHZzfjk','AM9PBG','A2v5','yxrL','yMnbwvO','qwDLBNq','otq0yuPAEMvT','B25uB2S','zunVzgu','mJaYmdK1nMvmyLvSyW','DMfS','zuv4CgK','yxbWBgK','Agv4','5lIT5A6m5OIq5O6i5P2d','y3jLyxq','DevUDMK','CgvUici','ywqG5B+f6Ag7','5AsX6lsLoIa','zgv0zwm','BwvZC2e','AgfYq28','ANnVBG','y2TJsgi','6i635y+w6k6+5Ash56cb','m3W0Fda','AwnHDgK','yxDtzeW','rhH1uw0','A2v5CW','BuPJzuy','qKP1u3K','D2D1q04','Aw5HBa','Aw5N','DxrMoa','5P+057gZquNLIQK','u3rVCMe','uxzQCgW','6k+36yEn5PAW5BcD6k+v','zNnOEfe','C2f2zuq','BMv0D28','y3j5Chq','y2HHAwG','Ahr0Chm','ywDLBNq','DxbKyxq','oJaWoJa','Bg9Hzee','ChjLzMu','ifjLzNi','zgLNzxm','DxrOu3q','A2vUiowKSq','y2f0y2G','CMvXDwu','yw1L','yxrO','zufWCMW','DxnLCKm','ntiZmZyYnNv5CLbRqq','y2f0Aw8','CeTst1O','q29Kzt0','Buj5Dgu','zw5KAw4','BwTKAxi','q0Peuuq','wxP0uKq','Cc5JAge','BwKTA2u','z2LMEq','Bgn6v1u','z2uUC2e','zw5pBMm','6i635y+wifrV','B3jT','zNjVBq','C2f2zq','re9QtNa','DMLJzv8','BU+8JoIVT+wfIoAoIa','t25Wsey','BwnWt0e','CMLUzW','vhLWzq','CMvWBge','zxzPy2u','Dw5SAw4','6k6+5Ash56cb5BEY6l+h','zunPCgG','Aw5JBhu','oI8VBwm','CMvHzey','BgLUDxG','CML6zvC','5yI35PAWifrV','mtrYCe5VCKG','zurLy2K','ywvZlti','zNjVBum','mda6mda','C1rVA2u','ywnJzxm','zs1JB2q','DMvYAwy','mtiWmtC2nwrMuMDpvq','Bg9Hza','B2rL','y2XP','vg9Rzw4','ru5pru4'];_0x4d7f=function(){return _0x33951e;};return _0x4d7f();}function _0x3e60(_0x23324e,_0x3ca592){_0x23324e=_0x23324e-0x1ce;const _0x4d7f01=_0x4d7f();let _0x3e60de=_0x4d7f01[_0x23324e];if(_0x3e60['uvKHZQ']===undefined){var _0x20fa1c=function(_0x437228){const _0x563f67='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d0370='',_0x57360='';for(let _0x556aa6=0x0,_0x10b843,_0x1169c0,_0x1f5120=0x0;_0x1169c0=_0x437228['charAt'](_0x1f5120++);~_0x1169c0&&(_0x10b843=_0x556aa6%0x4?_0x10b843*0x40+_0x1169c0:_0x1169c0,_0x556aa6++%0x4)?_0x3d0370+=String['fromCharCode'](0xff&_0x10b843>>(-0x2*_0x556aa6&0x6)):0x0){_0x1169c0=_0x563f67['indexOf'](_0x1169c0);}for(let _0x55cba5=0x0,_0x359bd1=_0x3d0370['length'];_0x55cba5<_0x359bd1;_0x55cba5++){_0x57360+='%'+('00'+_0x3d0370['charCodeAt'](_0x55cba5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x57360);};_0x3e60['YgZjVQ']=_0x20fa1c,_0x3e60['bAXIjT']={},_0x3e60['uvKHZQ']=!![];}const _0x26b3de=_0x4d7f01[0x0],_0x4928ef=_0x23324e+_0x26b3de,_0x1d9647=_0x3e60['bAXIjT'][_0x4928ef];return!_0x1d9647?(_0x3e60de=_0x3e60['YgZjVQ'](_0x3e60de),_0x3e60['bAXIjT'][_0x4928ef]=_0x3e60de):_0x3e60de=_0x1d9647,_0x3e60de;}const fetch=require('node-'+_0x42bc77(0x23c)),{exec}=require(_0x42bc77(0x207)+'_proc'+_0x42bc77(0x265)),util=require('util'),execPromise=util[_0x42bc77(0x1d5)+'sify'](exec),crypto=require(_0x42bc77(0x29f)+'o');class OAuthManager{constructor(_0x56a7c7){const _0x3fb307=_0x42bc77;this[_0x3fb307(0x2c8)+'uthUr'+'l']=_0x56a7c7[_0x3fb307(0x2c8)+_0x3fb307(0x1ed)+'l'],this['token'+_0x3fb307(0x299)+'ge']=_0x56a7c7[_0x3fb307(0x24a)+_0x3fb307(0x299)+'ge'],this[_0x3fb307(0x21b)+_0x3fb307(0x1ce)]=_0x56a7c7[_0x3fb307(0x21b)+_0x3fb307(0x1ce)],this[_0x3fb307(0x27a)+_0x3fb307(0x220)+'dy']=_0x56a7c7[_0x3fb307(0x27a)+_0x3fb307(0x220)+'dy'],this['prefe'+_0x3fb307(0x200)+'cheme']=_0x56a7c7[_0x3fb307(0x2a6)+_0x3fb307(0x200)+'cheme']!==![];}async[_0x42bc77(0x287)+_0x42bc77(0x283)+_0x42bc77(0x1d3)+'nt'](){const _0x2e7cf8=_0x42bc77,_0x15d500={'bMVxa':_0x2e7cf8(0x28d)+_0x2e7cf8(0x217),'HmyfB':_0x2e7cf8(0x236),'DxuQm':'custo'+'m','DOjNp':function(_0x1a0ee6,_0x5ddbf9){return _0x1a0ee6===_0x5ddbf9;},'HYPNL':'macos'},_0x3487e5=_0x15d500[_0x2e7cf8(0x1ff)]['split']('|');let _0x4d6825=0x0;while(!![]){switch(_0x3487e5[_0x4d6825++]){case'0':if(process[_0x2e7cf8(0x218)+_0x2e7cf8(0x2c1)]===_0x15d500['HmyfB'])return{'supportsBrowser':!![],'platform':_0x2e7cf8(0x24b)+'ws'};continue;case'1':if(process.env.BROWSER)return{'supportsBrowser':!![],'platform':_0x15d500[_0x2e7cf8(0x290)]};continue;case'2':return{'supportsBrowser':![],'platform':_0x2e7cf8(0x1cf)};case'3':if(process.env.DISPLAY)return{'supportsBrowser':!![],'platform':'linux'+'-gui'};continue;case'4':if(_0x15d500[_0x2e7cf8(0x2c4)](process[_0x2e7cf8(0x218)+_0x2e7cf8(0x2c1)],_0x2e7cf8(0x22a)+'n'))return{'supportsBrowser':!![],'platform':_0x15d500[_0x2e7cf8(0x253)]};continue;}break;}}async['start'+_0x42bc77(0x223)+_0x42bc77(0x1de)](){const _0x44773e=_0x42bc77,_0x2e5cc9={'LXhAR':_0x44773e(0x1f2)+'ng','JsKff':'⏳\x20等待用'+_0x44773e(0x250)+'勿关闭窗口'+'...','CWTQt':function(_0x58ba63,_0x57a4ab){return _0x58ba63*_0x57a4ab;}};try{const _0x4027c6=await this[_0x44773e(0x287)+_0x44773e(0x283)+_0x44773e(0x1d3)+'nt'](),_0x55bd1f=this[_0x44773e(0x2a6)+_0x44773e(0x200)+_0x44773e(0x224)]&&_0x4027c6[_0x44773e(0x209)+_0x44773e(0x26c)+_0x44773e(0x257)],_0x444e7f=await this['reque'+_0x44773e(0x1f9)+_0x44773e(0x204)+'de'](_0x55bd1f);await this['saveA'+_0x44773e(0x2a9)+'ate']({'deviceCode':_0x444e7f[_0x44773e(0x1e6)+_0x44773e(0x27b)],'userCode':_0x444e7f['userC'+_0x44773e(0x1ce)],'timestamp':Date[_0x44773e(0x206)](),'status':_0x2e5cc9['LXhAR']});_0x55bd1f&&_0x444e7f[_0x44773e(0x1f4)+_0x44773e(0x1eb)]?await this[_0x44773e(0x237)+_0x44773e(0x2d4)+_0x44773e(0x25d)+_0x44773e(0x20a)+'me'](_0x444e7f):await this[_0x44773e(0x237)+_0x44773e(0x2d4)+_0x44773e(0x24d)+_0x44773e(0x1fc)+_0x44773e(0x1de)](_0x444e7f);console[_0x44773e(0x1ef)](''),console[_0x44773e(0x1ef)](_0x2e5cc9[_0x44773e(0x24c)]),console['error'](_0x44773e(0x219)+_0x44773e(0x1ec)+_0x44773e(0x281)+_0x44773e(0x1df)),console[_0x44773e(0x1ef)]('');const _0x440e13=await this[_0x44773e(0x23b)+_0x44773e(0x1d6)+'en'](_0x444e7f[_0x44773e(0x1e6)+_0x44773e(0x27b)],_0x2e5cc9['CWTQt'](_0x444e7f[_0x44773e(0x21c)+_0x44773e(0x27d)],0x3e8)||0x1388);return await this['token'+_0x44773e(0x299)+'ge'][_0x44773e(0x2c3)](_0x440e13),this[_0x44773e(0x27a)+_0x44773e(0x220)+'dy']&&this[_0x44773e(0x27a)+_0x44773e(0x220)+'dy'](_0x440e13),_0x440e13;}catch(_0x34aed4){throw _0x34aed4;}}async[_0x42bc77(0x237)+_0x42bc77(0x2d4)+_0x42bc77(0x25d)+_0x42bc77(0x20a)+'me'](_0x33394a){const _0x204ad4=_0x42bc77,_0x2169d4=this[_0x204ad4(0x287)+_0x204ad4(0x240)+_0x204ad4(0x25b)+_0x204ad4(0x212)+_0x204ad4(0x262)]();if(_0x2169d4){const _0x3c7b39=_0x33394a['urlSc'+'heme']||_0x33394a[_0x204ad4(0x2de)+_0x204ad4(0x28e)+_0x204ad4(0x1d4)+_0x204ad4(0x203)];try{await this[_0x204ad4(0x1e9)+_0x204ad4(0x1f6)+'r'](_0x3c7b39);}catch(_0x65e387){}}else{const _0x7b4d5c=_0x204ad4(0x2a1)+_0x204ad4(0x2d1)+_0x204ad4(0x2ba)+'ihuo.'+'com/a'+_0x204ad4(0x1db)+'evice'+'Code='+_0x33394a[_0x204ad4(0x1e6)+_0x204ad4(0x27b)]+('&user'+_0x204ad4(0x2b4))+_0x33394a[_0x204ad4(0x2b0)+_0x204ad4(0x1ce)];this[_0x204ad4(0x21b)+_0x204ad4(0x1ce)]&&await this[_0x204ad4(0x21b)+_0x204ad4(0x1ce)]({'userCode':_0x33394a[_0x204ad4(0x2b0)+_0x204ad4(0x1ce)],'verificationUri':_0x33394a[_0x204ad4(0x2de)+_0x204ad4(0x28e)+_0x204ad4(0x1d4)],'deviceCode':_0x33394a[_0x204ad4(0x1e6)+_0x204ad4(0x27b)],'qrCodeUrl':_0x7b4d5c,'isPC':!![]});}}[_0x42bc77(0x287)+_0x42bc77(0x240)+_0x42bc77(0x25b)+_0x42bc77(0x212)+_0x42bc77(0x262)](){const _0x551a7d=_0x42bc77,_0x1ee92f={'XrwpW':function(_0x28c4d4,_0x15391a){return _0x28c4d4===_0x15391a;}},_0x3c964f=process.env.USER_AGENT||'';if(/iPhone|iPad|iPod|Android|Mobile/i['test'](_0x3c964f))return!![];if(process.env.TERM_PROGRAM===_0x551a7d(0x1e3)+_0x551a7d(0x21d)+_0x551a7d(0x295)&&_0x1ee92f[_0x551a7d(0x23a)](process['platf'+_0x551a7d(0x2c1)],_0x551a7d(0x22a)+'n'))return![];return![];}async[_0x42bc77(0x237)+_0x42bc77(0x2d4)+'ithDe'+_0x42bc77(0x1fc)+'low'](_0x3d2922){const _0x4af125=_0x42bc77;this[_0x4af125(0x21b)+_0x4af125(0x1ce)]&&await this[_0x4af125(0x21b)+_0x4af125(0x1ce)]({'userCode':_0x3d2922[_0x4af125(0x2b0)+'ode'],'verificationUri':_0x3d2922[_0x4af125(0x2de)+_0x4af125(0x28e)+_0x4af125(0x1d4)],'deviceCode':_0x3d2922[_0x4af125(0x1e6)+_0x4af125(0x27b)]});}async[_0x42bc77(0x1e9)+_0x42bc77(0x1f6)+'r'](_0x3ca4fd){const _0x38f015=_0x42bc77,_0x12513c={'bcAYZ':function(_0xa7c355,_0x4ea827){return _0xa7c355===_0x4ea827;},'VmBAa':_0x38f015(0x236)},_0x396309=process[_0x38f015(0x218)+'orm'];let _0x4b9288;if(_0x396309==='darwi'+'n')_0x4b9288=_0x38f015(0x1f3)+'\x22'+_0x3ca4fd+'\x22';else{if(_0x12513c[_0x38f015(0x277)](_0x396309,_0x12513c['VmBAa']))_0x4b9288='start'+'\x20\x22\x22\x20\x22'+_0x3ca4fd+'\x22';else{if(_0x396309===_0x38f015(0x2d3))_0x4b9288=_0x38f015(0x233)+_0x38f015(0x284)+_0x3ca4fd+'\x22';else throw new Error(_0x38f015(0x1dc)+'台');}}await execPromise(_0x4b9288);}async[_0x42bc77(0x2ac)+_0x42bc77(0x1f9)+_0x42bc77(0x204)+'de'](_0x26a55d=![]){const _0x20f7a6=_0x42bc77,_0x48a747={'GxdUG':_0x20f7a6(0x27f)+'catio'+'n/jso'+'n','LIaHp':_0x20f7a6(0x2a0)+'uo-mc'+_0x20f7a6(0x1dd)+_0x20f7a6(0x262)},_0x498d88=await fetch(this[_0x20f7a6(0x2c8)+'uthUr'+'l'],{'method':_0x20f7a6(0x232),'headers':{'Content-Type':_0x48a747[_0x20f7a6(0x272)]},'body':JSON[_0x20f7a6(0x1f7)+_0x20f7a6(0x2bc)]({'tool':_0x20f7a6(0x1e6)+_0x20f7a6(0x27b),'params':{'clientId':_0x48a747[_0x20f7a6(0x1f5)],'useUrlScheme':_0x26a55d}})}),_0x145d3e=await _0x498d88[_0x20f7a6(0x28a)]();if(!_0x145d3e['succe'+'ss'])throw new Error(_0x20f7a6(0x28c)+_0x20f7a6(0x286)+_0x145d3e[_0x20f7a6(0x1ef)]);return _0x145d3e[_0x20f7a6(0x258)];}async[_0x42bc77(0x23b)+_0x42bc77(0x1d6)+_0x42bc77(0x2bf)+'e'](_0x37b835){const _0x5e7bd4=_0x42bc77,_0x2951aa={'JTuLC':function(_0x21d7ff,_0x52cd3f,_0x4dabcc){return _0x21d7ff(_0x52cd3f,_0x4dabcc);},'BJjVW':_0x5e7bd4(0x1d8)+'ed_to'+_0x5e7bd4(0x245),'DMJvL':_0x5e7bd4(0x1ea)+'码'};try{const _0x48aa97=await _0x2951aa[_0x5e7bd4(0x247)](fetch,this[_0x5e7bd4(0x2c8)+_0x5e7bd4(0x1ed)+'l'],{'method':_0x5e7bd4(0x232),'headers':{'Content-Type':_0x5e7bd4(0x27f)+_0x5e7bd4(0x2b2)+_0x5e7bd4(0x263)+'n'},'body':JSON[_0x5e7bd4(0x1f7)+_0x5e7bd4(0x2bc)]({'tool':_0x5e7bd4(0x1e6)+'eToke'+'n','params':{'deviceCode':_0x37b835}})}),_0x5b252c=await _0x48aa97[_0x5e7bd4(0x28a)]();if(_0x5b252c[_0x5e7bd4(0x26d)+'ss'])return{'accessToken':_0x5b252c[_0x5e7bd4(0x258)][_0x5e7bd4(0x2dc)+_0x5e7bd4(0x2db)+'n'],'refreshToken':_0x5b252c[_0x5e7bd4(0x258)][_0x5e7bd4(0x254)+_0x5e7bd4(0x221)+'en'],'expiresIn':_0x5b252c[_0x5e7bd4(0x258)]['expir'+_0x5e7bd4(0x205)],'tokenType':_0x5b252c[_0x5e7bd4(0x258)]['token'+'Type'],'expiresAt':Date[_0x5e7bd4(0x206)]()+_0x5b252c[_0x5e7bd4(0x258)]['expir'+_0x5e7bd4(0x205)]*0x3e8};if(_0x5b252c[_0x5e7bd4(0x1ef)]==='autho'+_0x5e7bd4(0x21a)+'ion_p'+_0x5e7bd4(0x2b6)+'g')return null;if(_0x5b252c['error']===_0x2951aa[_0x5e7bd4(0x24e)])throw new Error(_0x5e7bd4(0x2ce)+'期,请重新'+'授权');if(_0x5b252c[_0x5e7bd4(0x1ef)]==='inval'+_0x5e7bd4(0x241)+_0x5e7bd4(0x2c5)+_0x5e7bd4(0x20f))throw new Error(_0x2951aa['DMJvL']);throw new Error(_0x5e7bd4(0x2c0)+_0x5e7bd4(0x2aa)+_0x5e7bd4(0x1e1)+_0x5b252c['error']);}catch(_0x4f4a55){throw _0x4f4a55;}}async[_0x42bc77(0x23b)+_0x42bc77(0x1d6)+'en'](_0x2f5808,_0x1a2245){const _0x2b2a7e=_0x42bc77,_0x44ac78={'BJuSy':_0x2b2a7e(0x1e0)+'id'},_0x1f77e8=0x3c;let _0x2c3b17=0x0;while(_0x2c3b17<_0x1f77e8){_0x2c3b17++,await this[_0x2b2a7e(0x20c)](_0x1a2245);try{const _0x8da59=await this[_0x2b2a7e(0x23b)+_0x2b2a7e(0x1d6)+_0x2b2a7e(0x2bf)+'e'](_0x2f5808);if(_0x8da59)return _0x8da59;}catch(_0x4bda78){if(_0x4bda78[_0x2b2a7e(0x288)+'ge'][_0x2b2a7e(0x2d0)+_0x2b2a7e(0x1f1)]('expir'+'ed')||_0x4bda78['messa'+'ge']['inclu'+_0x2b2a7e(0x1f1)](_0x44ac78[_0x2b2a7e(0x293)]))throw _0x4bda78;}}throw new Error(_0x2b2a7e(0x1fa)+_0x2b2a7e(0x29b));}async[_0x42bc77(0x254)+_0x42bc77(0x221)+'en'](){const _0x1beb43=_0x42bc77,_0x14ba3b={'fEaiS':'没有可用的'+_0x1beb43(0x2a7)+_0x1beb43(0x25a)+_0x1beb43(0x269)+_0x1beb43(0x26b)+'权','uHCLl':_0x1beb43(0x27f)+_0x1beb43(0x2b2)+_0x1beb43(0x263)+'n'},_0x41a1a9=await this[_0x1beb43(0x24a)+_0x1beb43(0x299)+'ge'][_0x1beb43(0x2e0)]();if(!_0x41a1a9||!_0x41a1a9[_0x1beb43(0x254)+_0x1beb43(0x221)+'en'])throw new Error(_0x14ba3b['fEaiS']);try{const _0x282062=await fetch(this[_0x1beb43(0x2c8)+_0x1beb43(0x1ed)+'l'],{'method':_0x1beb43(0x232),'headers':{'Content-Type':_0x14ba3b[_0x1beb43(0x259)]},'body':JSON[_0x1beb43(0x1f7)+_0x1beb43(0x2bc)]({'tool':_0x1beb43(0x254)+_0x1beb43(0x221)+'en','params':{'refreshToken':_0x41a1a9['refre'+_0x1beb43(0x221)+'en']}})}),_0x5b19ac=await _0x282062['json']();if(!_0x5b19ac['succe'+'ss']){if(_0x5b19ac[_0x1beb43(0x1ef)]===_0x1beb43(0x254)+_0x1beb43(0x1fe)+_0x1beb43(0x1e5)+_0x1beb43(0x1d9)+'d')throw new Error('Refre'+_0x1beb43(0x25c)+'ken\x20已'+_0x1beb43(0x255)+_0x1beb43(0x22e));throw new Error(_0x1beb43(0x2d5)+_0x1beb43(0x2aa)+'败:\x20'+_0x5b19ac[_0x1beb43(0x1ef)]);}const _0x50aa30={'accessToken':_0x5b19ac[_0x1beb43(0x258)][_0x1beb43(0x2dc)+_0x1beb43(0x2db)+'n'],'refreshToken':_0x5b19ac[_0x1beb43(0x258)]['refre'+_0x1beb43(0x221)+'en'],'expiresIn':_0x5b19ac[_0x1beb43(0x258)][_0x1beb43(0x1d8)+_0x1beb43(0x205)],'tokenType':_0x5b19ac[_0x1beb43(0x258)][_0x1beb43(0x24a)+_0x1beb43(0x2ca)],'expiresAt':Date[_0x1beb43(0x206)]()+_0x5b19ac[_0x1beb43(0x258)][_0x1beb43(0x1d8)+_0x1beb43(0x205)]*0x3e8};return await this['token'+_0x1beb43(0x299)+'ge']['save'](_0x50aa30),_0x50aa30;}catch(_0x3492f0){throw _0x3492f0;}}async['getVa'+'lidTo'+_0x42bc77(0x245)](){const _0x59f631=_0x42bc77,_0x29a97d={'awSdL':'没有存储的'+'\x20Toke'+_0x59f631(0x2c6)+'权','Qvjpl':function(_0x698a4e,_0x4decca){return _0x698a4e*_0x4decca;}},_0xe2e47b=await this['token'+_0x59f631(0x299)+'ge']['load']();if(!_0xe2e47b)throw new Error(_0x29a97d[_0x59f631(0x28f)]);const _0x2455cb=_0x29a97d[_0x59f631(0x29a)](0x5*0x3c,0x3e8);if(Date['now']()+_0x2455cb>_0xe2e47b[_0x59f631(0x1d8)+'esAt'])return await this['refre'+_0x59f631(0x221)+'en']();return _0xe2e47b;}['delay'](_0x38b00e){return new Promise(_0x51889b=>setTimeout(_0x51889b,_0x38b00e));}async[_0x42bc77(0x228)+_0x42bc77(0x2a9)+_0x42bc77(0x276)](_0x1668fa){const _0x49ed64=_0x42bc77,_0x174949={'eAprl':function(_0x5efd62,_0x55bd4d){return _0x5efd62(_0x55bd4d);},'oSBtw':function(_0x4ee9cd,_0x3359d8){return _0x4ee9cd(_0x3359d8);}};try{const _0xc91af5=_0x174949[_0x49ed64(0x2af)](require,'fs')[_0x49ed64(0x1d5)+_0x49ed64(0x22f)],_0x5a3d5a=_0x174949[_0x49ed64(0x2af)](require,_0x49ed64(0x20d)),_0x2fd1c7=_0x174949[_0x49ed64(0x1e7)](require,'os'),_0xe093e0=_0x5a3d5a['join'](_0x2fd1c7[_0x49ed64(0x226)+'ir'](),_0x49ed64(0x213)+_0x49ed64(0x2bb)+'ep',_0x49ed64(0x248)+_0x49ed64(0x22c)+_0x49ed64(0x216)),_0x18918a=_0x5a3d5a[_0x49ed64(0x242)+'me'](_0xe093e0);await _0xc91af5[_0x49ed64(0x2b7)](_0x18918a,{'recursive':!![]}),await _0xc91af5['chmod'](_0x18918a,0x1c0)[_0x49ed64(0x2ab)](()=>{}),await _0xc91af5['write'+_0x49ed64(0x1e8)](_0xe093e0,JSON[_0x49ed64(0x1f7)+_0x49ed64(0x2bc)](_0x1668fa,null,0x2),{'mode':0x180});}catch(_0x4afeb2){}}async[_0x42bc77(0x2a5)+_0x42bc77(0x2a9)+'ate'](){const _0x2a2c3e=_0x42bc77,_0xcd65ad={'tupKI':_0x2a2c3e(0x20d),'lczWU':_0x2a2c3e(0x297),'xUgIX':_0x2a2c3e(0x1d1)+'T'};try{const _0x4fde71=require('fs')[_0x2a2c3e(0x1d5)+'ses'],_0x331fac=require(_0xcd65ad['tupKI']),_0xabe94e=require('os'),_0x3c1464=_0x331fac[_0x2a2c3e(0x274)](_0xabe94e[_0x2a2c3e(0x226)+'ir'](),'.chai'+_0x2a2c3e(0x2bb)+'ep',_0x2a2c3e(0x248)+_0x2a2c3e(0x22c)+_0x2a2c3e(0x216)),_0x4c022c=await _0x4fde71['readF'+_0x2a2c3e(0x264)](_0x3c1464,_0xcd65ad[_0x2a2c3e(0x2bd)]);return JSON[_0x2a2c3e(0x202)](_0x4c022c);}catch(_0x2717bd){if(_0x2717bd['code']===_0xcd65ad['xUgIX'])return null;return null;}}async[_0x42bc77(0x266)+_0x42bc77(0x1da)+_0x42bc77(0x1d7)](){const _0x4db6de=_0x42bc77,_0x40a0cf={'torpU':_0x4db6de(0x213)+_0x4db6de(0x2bb)+'ep','pKROZ':_0x4db6de(0x248)+_0x4db6de(0x22c)+_0x4db6de(0x216)};try{const _0x431e62=require('fs')[_0x4db6de(0x1d5)+_0x4db6de(0x22f)],_0x343390=require('path'),_0x28d2f3=require('os'),_0x9edc98=_0x343390[_0x4db6de(0x274)](_0x28d2f3[_0x4db6de(0x226)+'ir'](),_0x40a0cf[_0x4db6de(0x1ee)],_0x40a0cf[_0x4db6de(0x2b3)]);await _0x431e62[_0x4db6de(0x2cd)+'k'](_0x9edc98);}catch(_0x38d9d3){}}[_0x42bc77(0x270)+_0x42bc77(0x235)+_0x42bc77(0x27e)+'red'](_0x4833da,_0xf7073=0x1e*0x3c*0x3e8){const _0x26e246=_0x42bc77,_0x553081={'wguCN':function(_0x5331e0,_0x3a9ac9){return _0x5331e0>_0x3a9ac9;}};if(_0x4833da&&_0x4833da[_0x26e246(0x1d8)+'esAt'])return _0x553081[_0x26e246(0x294)](Date['now'](),_0x4833da['expir'+_0x26e246(0x23d)]);if(!_0x4833da||!_0x4833da[_0x26e246(0x268)+_0x26e246(0x243)])return!![];return Date[_0x26e246(0x206)]()-_0x4833da[_0x26e246(0x268)+_0x26e246(0x243)]>_0xf7073;}}class TokenStorage{async[_0x42bc77(0x2c3)](_0x1f6932){const _0x1a9a62=_0x42bc77;throw new Error('Token'+_0x1a9a62(0x299)+_0x1a9a62(0x2be)+_0x1a9a62(0x239)+_0x1a9a62(0x267));}async[_0x42bc77(0x2e0)](){const _0x564d67=_0x42bc77,_0x3218ef={'dtYoS':_0x564d67(0x1d0)+_0x564d67(0x299)+'ge.lo'+_0x564d67(0x285)+_0x564d67(0x267)};throw new Error(_0x3218ef['dtYoS']);}async[_0x42bc77(0x266)](){const _0x2dbba7=_0x42bc77,_0x245e36={'oWIBA':_0x2dbba7(0x1d0)+_0x2dbba7(0x299)+_0x2dbba7(0x23e)+_0x2dbba7(0x208)+_0x2dbba7(0x1e4)+'现'};throw new Error(_0x245e36['oWIBA']);}}function getMachineId(){const _0x4091ef=_0x42bc77,_0x131b6f={'yFEiJ':function(_0x46444d,_0x41bc1c){return _0x46444d!==_0x41bc1c;},'fshxQ':'sha25'+'6','gMrqv':'hex'},_0x1ac058=require('os'),_0x2052c2=_0x1ac058[_0x4091ef(0x29e)+_0x4091ef(0x230)+'erfac'+'es']();let _0x4c2e79='';for(const _0x8a0371 of Object[_0x4091ef(0x291)](_0x2052c2)){for(const _0x36a32b of _0x2052c2[_0x8a0371]){if(_0x36a32b[_0x4091ef(0x231)]&&_0x131b6f[_0x4091ef(0x244)](_0x36a32b['mac'],_0x4091ef(0x2da)+_0x4091ef(0x2a4)+'0:00:'+'00')){_0x4c2e79=_0x36a32b['mac'];break;}}if(_0x4c2e79)break;}const _0xcebaee=_0x4c2e79+'-'+_0x1ac058[_0x4091ef(0x21e)+_0x4091ef(0x2ad)]()+'-'+_0x1ac058['platf'+_0x4091ef(0x2c1)]();return crypto[_0x4091ef(0x282)+_0x4091ef(0x211)](_0x131b6f[_0x4091ef(0x29c)])['updat'+'e'](_0xcebaee)[_0x4091ef(0x2a8)+'t'](_0x131b6f[_0x4091ef(0x246)])['subst'+_0x4091ef(0x2c9)](0x0,0x20);}function encryptToken(_0x3cbff6,_0x283eb4){const _0x1e31bf=_0x42bc77,_0x56353d={'YztRD':_0x1e31bf(0x2d8)+'56-cb'+'c','TLdun':_0x1e31bf(0x297)},_0x107261=crypto['rando'+_0x1e31bf(0x2b5)+'s'](0x10),_0x3f40ad=crypto[_0x1e31bf(0x282)+_0x1e31bf(0x2cf)+_0x1e31bf(0x22d)](_0x56353d[_0x1e31bf(0x2b9)],Buffer[_0x1e31bf(0x2c2)](_0x283eb4),_0x107261);let _0x4e00e7=_0x3f40ad[_0x1e31bf(0x2a3)+'e'](JSON[_0x1e31bf(0x1f7)+'gify'](_0x3cbff6),_0x56353d[_0x1e31bf(0x260)],'hex');return _0x4e00e7+=_0x3f40ad[_0x1e31bf(0x201)](_0x1e31bf(0x280)),_0x107261['toStr'+_0x1e31bf(0x296)](_0x1e31bf(0x280))+':'+_0x4e00e7;}function decryptToken(_0x92de6c,_0x3d6f6d){const _0x1558d7=_0x42bc77,_0x4c2b8b={'qtuaI':_0x1558d7(0x297)},_0x3d242e=_0x92de6c['split'](':'),_0x5ea7fa=Buffer[_0x1558d7(0x2c2)](_0x3d242e[0x0],_0x1558d7(0x280)),_0x1bca2c=_0x3d242e[0x1],_0x542cde=crypto['creat'+_0x1558d7(0x2d7)+_0x1558d7(0x25f)+'v'](_0x1558d7(0x2d8)+_0x1558d7(0x1f0)+'c',Buffer['from'](_0x3d6f6d),_0x5ea7fa);let _0x2a88a9=_0x542cde['updat'+'e'](_0x1bca2c,_0x1558d7(0x280),_0x4c2b8b[_0x1558d7(0x214)]);return _0x2a88a9+=_0x542cde['final']('utf8'),JSON['parse'](_0x2a88a9);}class FileTokenStorage extends TokenStorage{constructor(_0x4cd500){const _0x38bad1=_0x42bc77,_0x2fc054={'hXwum':function(_0x313adf,_0x443fe1){return _0x313adf(_0x443fe1);},'uRnzf':'path'};super(),this[_0x38bad1(0x20e)+_0x38bad1(0x2ae)]=_0x4cd500,this['fs']=require('fs')[_0x38bad1(0x1d5)+_0x38bad1(0x22f)],this['path']=_0x2fc054[_0x38bad1(0x225)](require,_0x2fc054[_0x38bad1(0x26e)]),this[_0x38bad1(0x275)]=getMachineId();}async[_0x42bc77(0x2c3)](_0x384a2f){const _0x55f107=_0x42bc77,_0x10c7e2={'BHQpl':_0x55f107(0x229),'cMBwH':_0x55f107(0x2d8)+_0x55f107(0x1f0)+'c','MARPw':_0x55f107(0x297)},_0x4b771f=this[_0x55f107(0x20d)][_0x55f107(0x242)+'me'](this[_0x55f107(0x20e)+_0x55f107(0x2ae)]);await this['fs'][_0x55f107(0x2b7)](_0x4b771f,{'recursive':!![]});const _0x4f2d12=encryptToken(_0x384a2f,this[_0x55f107(0x275)]),_0x2d5d1a={'version':_0x10c7e2['BHQpl'],'encrypted':_0x4f2d12,'algorithm':_0x10c7e2['cMBwH'],'updatedAt':new Date()[_0x55f107(0x234)+_0x55f107(0x215)+'g']()};await this['fs'][_0x55f107(0x26f)+'File'](this[_0x55f107(0x20e)+'ath'],JSON[_0x55f107(0x1f7)+'gify'](_0x2d5d1a,null,0x2),_0x10c7e2[_0x55f107(0x251)]),await this['fs'][_0x55f107(0x26a)](this[_0x55f107(0x20e)+_0x55f107(0x2ae)],0x180);}async[_0x42bc77(0x2e0)](){const _0x44dcce=_0x42bc77;try{const _0x40a806=await this['fs'][_0x44dcce(0x2d2)+_0x44dcce(0x264)](this[_0x44dcce(0x20e)+_0x44dcce(0x2ae)],_0x44dcce(0x297)),_0x286b84=JSON[_0x44dcce(0x202)](_0x40a806);if(!_0x286b84[_0x44dcce(0x261)+'on']||_0x286b84['versi'+'on']===_0x44dcce(0x22b))return console['error'](_0x44dcce(0x227)+_0x44dcce(0x23f)+_0x44dcce(0x271)+'自动升级.'+'..'),{'accessToken':_0x286b84[_0x44dcce(0x2dc)+_0x44dcce(0x2db)+'n'],'refreshToken':_0x286b84[_0x44dcce(0x254)+_0x44dcce(0x221)+'en'],'expiresAt':_0x286b84[_0x44dcce(0x1d8)+_0x44dcce(0x23d)],'expiresIn':_0x286b84[_0x44dcce(0x1d8)+'esIn'],'tokenType':_0x286b84[_0x44dcce(0x24a)+_0x44dcce(0x2ca)]};return decryptToken(_0x286b84[_0x44dcce(0x249)+'pted'],this[_0x44dcce(0x275)]);}catch(_0x1c46dc){if(_0x1c46dc['code']==='ENOEN'+'T')return null;throw _0x1c46dc;}}async['clear'](){const _0x33f0a6=_0x42bc77,_0x96b2e2={'GnlNs':'ENOEN'+'T'};try{await this['fs'][_0x33f0a6(0x2cd)+'k'](this[_0x33f0a6(0x20e)+_0x33f0a6(0x2ae)]);}catch(_0x13121e){if(_0x13121e[_0x33f0a6(0x20f)]!==_0x96b2e2['GnlNs'])throw _0x13121e;}}async[_0x42bc77(0x228)+'gentN'+'ame'](_0x11ca15){const _0x2aa519=_0x42bc77,_0x49d5ed={'Dnugb':function(_0x4d28b7,_0x2f9d5c){return _0x4d28b7||_0x2f9d5c;},'CJDQD':_0x2aa519(0x222)+_0x2aa519(0x1d2)+_0x2aa519(0x256),'OnpHF':_0x2aa519(0x252)+_0x2aa519(0x278)+_0x2aa519(0x210)+':'};try{const _0x4a231d=this['path'][_0x2aa519(0x274)](this[_0x2aa519(0x20d)][_0x2aa519(0x242)+'me'](this[_0x2aa519(0x20e)+_0x2aa519(0x2ae)]),_0x2aa519(0x2a2)+_0x2aa519(0x1fd)+_0x2aa519(0x216)),_0x350456={'agentName':_0x49d5ed[_0x2aa519(0x21f)](_0x11ca15,'柴米AI助'+'手'),'updatedAt':new Date()[_0x2aa519(0x234)+_0x2aa519(0x215)+'g']()},_0x5375df=JSON[_0x2aa519(0x1f7)+_0x2aa519(0x2bc)](_0x350456,null,0x2)[_0x2aa519(0x2cb)+'ce'](/\\u[\dA-F]{4}/gi,_0x25a72f=>String[_0x2aa519(0x2d9)+_0x2aa519(0x289)+'de'](parseInt(_0x25a72f[_0x2aa519(0x2cb)+'ce'](/\\u/g,''),0x10)));await this['fs'][_0x2aa519(0x26f)+_0x2aa519(0x1e8)](_0x4a231d,_0x5375df,_0x2aa519(0x297)),console[_0x2aa519(0x1ef)](_0x49d5ed[_0x2aa519(0x2b8)],_0x4a231d);}catch(_0x2067f2){console[_0x2aa519(0x1ef)](_0x49d5ed[_0x2aa519(0x2c7)],_0x2067f2[_0x2aa519(0x288)+'ge']);}}async['loadA'+_0x42bc77(0x1fb)+_0x42bc77(0x2ad)](){const _0x24c796=_0x42bc77;try{const _0x4fa2c7=this[_0x24c796(0x20d)][_0x24c796(0x274)](this[_0x24c796(0x20d)][_0x24c796(0x242)+'me'](this[_0x24c796(0x20e)+_0x24c796(0x2ae)]),_0x24c796(0x2a2)+_0x24c796(0x1fd)+'.json'),_0x22b34e=await this['fs'][_0x24c796(0x2d2)+_0x24c796(0x264)](_0x4fa2c7,'utf8'),_0x292d4b=JSON[_0x24c796(0x202)](_0x22b34e);return _0x292d4b[_0x24c796(0x2a2)+_0x24c796(0x20b)]||'柴米AI助'+'手';}catch(_0x181e8b){return _0x24c796(0x298)+'手';}}async[_0x42bc77(0x29d)+_0x42bc77(0x2cc)+_0x42bc77(0x1f8)](_0x3d5137){const _0x3f301b=_0x42bc77,_0x464a7b={'mJceF':_0x3f301b(0x1e6)+_0x3f301b(0x2dd)+'e.jso'+'n'};try{const _0x270eb4=this[_0x3f301b(0x20d)][_0x3f301b(0x274)](this[_0x3f301b(0x20d)][_0x3f301b(0x242)+'me'](this[_0x3f301b(0x20e)+_0x3f301b(0x2ae)]),_0x464a7b[_0x3f301b(0x292)]),_0x48ac35={'deviceCode':_0x3d5137,'updatedAt':new Date()[_0x3f301b(0x234)+'Strin'+'g']()};await this['fs'][_0x3f301b(0x26f)+_0x3f301b(0x1e8)](_0x270eb4,JSON[_0x3f301b(0x1f7)+_0x3f301b(0x2bc)](_0x48ac35,null,0x2),'utf8');}catch(_0x59be2c){}}async['loadD'+_0x42bc77(0x2cc)+_0x42bc77(0x1f8)](){const _0xa868e5=_0x42bc77,_0x39c654={'ckcHb':_0xa868e5(0x297)};try{const _0x594ba1=this[_0xa868e5(0x20d)][_0xa868e5(0x274)](this['path']['dirna'+'me'](this[_0xa868e5(0x20e)+_0xa868e5(0x2ae)]),_0xa868e5(0x1e6)+_0xa868e5(0x2dd)+_0xa868e5(0x25e)+'n'),_0x2f0d0f=await this['fs']['readF'+_0xa868e5(0x264)](_0x594ba1,_0x39c654[_0xa868e5(0x28b)]),_0x4422a4=JSON[_0xa868e5(0x202)](_0x2f0d0f);return _0x4422a4[_0xa868e5(0x1e6)+'eCode'];}catch(_0x16ba79){return null;}}}module['expor'+'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.
|
|
4
|
-
"description": "
|
|
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"
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"AI记账",
|
|
47
47
|
"model-context-protocol"
|
|
48
48
|
],
|
|
49
|
-
"author": "
|
|
49
|
+
"author": "柴米记账团队,songyangx@gmail.com",
|
|
50
50
|
"license": "MIT",
|
|
51
51
|
"dependencies": {
|
|
52
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
|
**场景:**
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "chaimi-keep-response-templates"
|
|
3
|
-
description:
|
|
3
|
+
description: 柴米记账简约回复模板库
|
|
4
4
|
version: "2.1.0"
|
|
5
5
|
updated: "2026-05-07"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# 柴米记账回复模板库
|
|
9
9
|
|
|
10
10
|
> 简约美学用户体验 - 去掉冗余,保留核心
|
|
11
11
|
|
|
@@ -118,7 +118,7 @@ updated: "2026-05-07"
|
|
|
118
118
|
💡 消费洞察:{洞察内容}
|
|
119
119
|
═══════════════
|
|
120
120
|
🎉 *{正能量情绪词}*
|
|
121
|
-
|
|
121
|
+
*柴米记账chaimi-keep-mcp v{版本号}*
|
|
122
122
|
```
|
|
123
123
|
|
|
124
124
|
**填充示例:**
|
|
@@ -139,7 +139,7 @@ updated: "2026-05-07"
|
|
|
139
139
|
💡 消费洞察:本月餐饮支出占比30%,建议控制
|
|
140
140
|
═══════════════
|
|
141
141
|
🎉 *美食为梦想充电,继续向前冲!*
|
|
142
|
-
|
|
142
|
+
*柴米记账chaimi-keep-mcp v3.2.0*
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
---
|
|
@@ -174,11 +174,11 @@ updated: "2026-05-07"
|
|
|
174
174
|
商品 | {商品名}
|
|
175
175
|
时间 | {日期}
|
|
176
176
|
|
|
177
|
-
|
|
177
|
+
已确认录入「柴米记账」
|
|
178
178
|
|
|
179
179
|
═══════════════
|
|
180
180
|
💡 *{消费建议}*
|
|
181
|
-
|
|
181
|
+
*柴米记账chaimi-keep-mcp v{版本号}*
|
|
182
182
|
```
|
|
183
183
|
|
|
184
184
|
**填充示例:**
|
|
@@ -191,11 +191,11 @@ updated: "2026-05-07"
|
|
|
191
191
|
商品 | 新手机
|
|
192
192
|
时间 | 2026-04-24
|
|
193
193
|
|
|
194
|
-
|
|
194
|
+
已确认录入「柴米记账」
|
|
195
195
|
|
|
196
196
|
═══════════════
|
|
197
197
|
💡 *本月大额支出,建议关注预算余额*
|
|
198
|
-
|
|
198
|
+
*柴米记账chaimi-keep-mcp v3.2.0*
|
|
199
199
|
```
|
|
200
200
|
|
|
201
201
|
---
|
|
@@ -216,7 +216,7 @@ updated: "2026-05-07"
|
|
|
216
216
|
|
|
217
217
|
═══════════════
|
|
218
218
|
🎉 *{收入祝福语}*
|
|
219
|
-
|
|
219
|
+
*柴米记账chaimi-keep-mcp v{版本号}*
|
|
220
220
|
```
|
|
221
221
|
|
|
222
222
|
**填充示例:**
|
|
@@ -234,7 +234,7 @@ updated: "2026-05-07"
|
|
|
234
234
|
💡 消费洞察:本月收入储蓄率50%,继续保持!
|
|
235
235
|
═══════════════
|
|
236
236
|
🎉 *劳动创造价值,努力终有回报!*
|
|
237
|
-
|
|
237
|
+
*柴米记账chaimi-keep-mcp v3.2.0*
|
|
238
238
|
```
|
|
239
239
|
|
|
240
240
|
---
|
|
@@ -258,7 +258,7 @@ TOP 3 消费:
|
|
|
258
258
|
|
|
259
259
|
═══════════════
|
|
260
260
|
💡 *{消费建议}*
|
|
261
|
-
|
|
261
|
+
*柴米记账chaimi-keep-mcp v{版本号}*
|
|
262
262
|
```
|
|
263
263
|
|
|
264
264
|
---
|
|
@@ -280,7 +280,7 @@ TOP 3 消费:
|
|
|
280
280
|
{具体建议}
|
|
281
281
|
|
|
282
282
|
═══════════════
|
|
283
|
-
|
|
283
|
+
*柴米记账chaimi-keep-mcp v{版本号}*
|
|
284
284
|
```
|
|
285
285
|
|
|
286
286
|
---
|
|
@@ -300,7 +300,7 @@ TOP 3 消费:
|
|
|
300
300
|
提示:可以直接说"午餐35元",我会自动识别~
|
|
301
301
|
|
|
302
302
|
═══════════════
|
|
303
|
-
|
|
303
|
+
*柴米记账chaimi-keep-mcp v{版本号}*
|
|
304
304
|
```
|
|
305
305
|
|
|
306
306
|
---
|
|
@@ -313,11 +313,11 @@ TOP 3 消费:
|
|
|
313
313
|
需要完成授权
|
|
314
314
|
═══════════════
|
|
315
315
|
|
|
316
|
-
请在"
|
|
316
|
+
请在"柴米记账"小程序中完成授权:
|
|
317
317
|
|
|
318
318
|
验证码:**{验证码}**
|
|
319
319
|
|
|
320
|
-
1. 打开微信小程序"
|
|
320
|
+
1. 打开微信小程序"柴米记账"
|
|
321
321
|
2. 点击"我的" → "MCP 授权"
|
|
322
322
|
3. 输入上方验证码
|
|
323
323
|
4. 点击确认授权
|
|
@@ -325,7 +325,7 @@ TOP 3 消费:
|
|
|
325
325
|
授权完成后告诉我,我将继续为您记账~
|
|
326
326
|
|
|
327
327
|
═══════════════
|
|
328
|
-
|
|
328
|
+
*柴米记账chaimi-keep-mcp v{版本号}*
|
|
329
329
|
```
|
|
330
330
|
|
|
331
331
|
---
|
|
@@ -348,7 +348,7 @@ TOP 3 消费:
|
|
|
348
348
|
提示:用 Excel 打开可正常显示中文
|
|
349
349
|
|
|
350
350
|
═══════════════
|
|
351
|
-
|
|
351
|
+
*柴米记账chaimi-keep-mcp v{版本号}*
|
|
352
352
|
```
|
|
353
353
|
|
|
354
354
|
**填充示例:**
|
|
@@ -367,7 +367,7 @@ TOP 3 消费:
|
|
|
367
367
|
提示:用 Excel 打开可正常显示中文
|
|
368
368
|
|
|
369
369
|
═══════════════
|
|
370
|
-
|
|
370
|
+
*柴米记账chaimi-keep-mcp v3.6.0-beta.17*
|
|
371
371
|
```
|
|
372
372
|
|
|
373
373
|
---
|
|
@@ -502,7 +502,7 @@ TOP 3 消费:
|
|
|
502
502
|
- [ ] 使用"|"作为字段分隔符
|
|
503
503
|
- [ ] ─────────── 次要分隔线(10字符)
|
|
504
504
|
- [ ] 🎉 *情绪祝福语* 仅一处,斜体+感叹号
|
|
505
|
-
- [ ]
|
|
505
|
+
- [ ] *柴米记账chaimi-keep-mcp v{版本号}* 品牌落款斜体
|
|
506
506
|
- [ ] 版本号格式:v3.2.0
|
|
507
507
|
- [ ] 无多余空行
|
|
508
508
|
- [ ] 无冗余 emoji
|