@bangdao-ai/acw-tools 1.13.2 → 1.13.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/package.json DELETED
@@ -1,61 +0,0 @@
1
- {
2
- "name": "@bangdao-ai/acw-tools",
3
- "version": "1.13.2",
4
- "type": "module",
5
- "description": "MCP (Model Context Protocol) tools for ACW - download rules and initialize Common Admin projects",
6
- "main": "index.js",
7
- "bin": {
8
- "acw-tools": "index.js"
9
- },
10
- "scripts": {
11
- "start:stdio": "node index.js",
12
- "postinstall": "node postinstall.js"
13
- },
14
- "keywords": [
15
- "mcp",
16
- "model-context-protocol",
17
- "acw",
18
- "rules",
19
- "template",
20
- "common-admin",
21
- "downloader",
22
- "cursor",
23
- "ai",
24
- "automation"
25
- ],
26
- "author": "bangdao-ai",
27
- "license": "MIT",
28
- "publishConfig": {
29
- "access": "public"
30
- },
31
- "repository": {
32
- "type": "git",
33
- "url": "git+https://github.com/bangdao-ai/acw-tools.git"
34
- },
35
- "bugs": {
36
- "url": "https://github.com/bangdao-ai/acw-tools/issues"
37
- },
38
- "homepage": "https://github.com/bangdao-ai/acw-tools#readme",
39
- "engines": {
40
- "node": ">=20.0.0"
41
- },
42
- "acwInstallNote": "推荐 Node 22.5+:内置 node:sqlite,安装时可避免 better-sqlite3 在 Windows 上的原生编译失败;engines 仅声明最低 20。",
43
- "dependencies": {
44
- "@modelcontextprotocol/sdk": "^1.18.2",
45
- "adm-zip": "^0.5.10",
46
- "ali-oss": "^6.23.0",
47
- "zod": "^3.23.8"
48
- },
49
- "optionalDependencies": {
50
- "better-sqlite3": "^12.4.1"
51
- },
52
- "files": [
53
- "index.js",
54
- "cursorConversationParser.js",
55
- "claudeCodeParser.js",
56
- "postinstall.js",
57
- "manifest.json",
58
- "README.md",
59
- "LICENSE"
60
- ]
61
- }
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- function _0x2ba9(_0x15a32e,_0x55e92a){_0x15a32e=_0x15a32e-0x1e2;const _0x1c63b9=_0x1c63();let _0x2ba9b7=_0x1c63b9[_0x15a32e];return _0x2ba9b7;}const _0x3a6d04=_0x2ba9;(function(_0x2787b6,_0x123cfd){const _0xe9499e=_0x2ba9,_0x41c4cb=_0x2787b6();while(!![]){try{const _0x4214fe=-parseInt(_0xe9499e(0x22b))/0x1+-parseInt(_0xe9499e(0x21f))/0x2*(-parseInt(_0xe9499e(0x233))/0x3)+-parseInt(_0xe9499e(0x220))/0x4*(parseInt(_0xe9499e(0x232))/0x5)+-parseInt(_0xe9499e(0x1ed))/0x6+parseInt(_0xe9499e(0x1ec))/0x7+-parseInt(_0xe9499e(0x1f5))/0x8+parseInt(_0xe9499e(0x240))/0x9;if(_0x4214fe===_0x123cfd)break;else _0x41c4cb['push'](_0x41c4cb['shift']());}catch(_0x140437){_0x41c4cb['push'](_0x41c4cb['shift']());}}}(_0x1c63,0x77433));import _0xbfa463 from'fs';import _0xc29181 from'path';import{fileURLToPath as _0x2d3c47}from'url';import{execSync as _0x373f19}from'child_process';import _0x103685 from'https';import _0x2e7144 from'http';import _0x206fcd from'zlib';var C=_0x3a6d04(0x1eb),L='https://bd-acw.oss-cn-beijing.aliyuncs.com/prebuilds/better-sqlite3',F={0x12:'108',0x13:'111',0x14:'115',0x15:'120',0x16:_0x3a6d04(0x222),0x17:'131',0x18:_0x3a6d04(0x22a),0x19:_0x3a6d04(0x22a)},$=[_0x3a6d04(0x23b),_0x3a6d04(0x222),_0x3a6d04(0x1ea),_0x3a6d04(0x22a)],I=parseInt(process['version'][_0x3a6d04(0x217)](0x1)['split']('.')[0x0],0xa),T=((()=>{let _0x3bd85d=process['version']['slice'](0x1)['split']('.');return parseInt(_0x3bd85d[0x1]||'0',0xa);})());function x(){return I>0x16||I===0x16&&T>=0x5;}function P(){const _0x286ee4=_0x3a6d04;console[_0x286ee4(0x245)](''),console[_0x286ee4(0x245)]('[提示]\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'),console[_0x286ee4(0x245)]('[提示]\x20【本包为什么要动\x20SQLite】需要读取\x20Cursor\x20本地的\x20state.vscdb(对话与\x20composer\x20数据)。'),console['log']('[提示]\x20【推荐环境】请使用\x20Node.js\x2022.5\x20及以上(LTS\x2022\x20的最新小版本即可)。'),console[_0x286ee4(0x245)]('[提示]\x20\x20\x20该版本起\x20Node\x20内置「node:sqlite」,安装时无需\x20better-sqlite3,Windows\x20上可避免出现「模块编译失败」。'),console[_0x286ee4(0x245)]('[提示]\x20【你当前的情况】当前为\x20'+process[_0x286ee4(0x1e7)]+',未检测到可用的内置\x20node:sqlite(或运行时被禁用),因此走可选依赖\x20better-sqlite3。'),console[_0x286ee4(0x245)](_0x286ee4(0x205)),console[_0x286ee4(0x245)](_0x286ee4(0x241)),console['log'](_0x286ee4(0x224)),console[_0x286ee4(0x245)](_0x286ee4(0x244)),console[_0x286ee4(0x245)](_0x286ee4(0x1f6)),console[_0x286ee4(0x245)]('[提示]\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'),console['log']('');}function y(){const _0x2b7b58=_0x3a6d04;console[_0x2b7b58(0x23d)](''),console['error']('──────────\x20给用户的说明(安装失败)──────────'),console['error'](_0x2b7b58(0x1e9)),console['error'](_0x2b7b58(0x1ee)),console[_0x2b7b58(0x23d)]('建议:将运行「npx\x20@bangdao-ai/acw-tools」的\x20Node\x20升级到\x2022.5\x20及以上,本包将改用内置\x20SQLite,一般不再需要编译。'),console[_0x2b7b58(0x23d)](_0x2b7b58(0x1f2)),console['error'](_0x2b7b58(0x1fd));}function _0x1c63(){const _0x2a82d9=['137','791430meefSa','MODULE_NOT_FOUND','inherit','string',',npm\x20包根=','includes','warn','170BndBJI','3rYsEpZ','[结论]\x20报错形态不像典型原生模块加载问题,未自动执行\x20OSS\x20/\x20rebuild,请根据完整堆栈排查。','[INFO]\x20当前\x20Node\x20','-node-v','[INFO]\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━','[提示]\x20当前通过\x20better-sqlite3\x20完成检查。若希望免去原生依赖,可将\x20Node\x20升级到\x2022.5\x20及以上。','length','better-sqlite3','115','modules','error','trim','package.json','11631087PxbRLA','[提示]\x20\x20\x20·\x20Windows:未安装\x20Visual\x20Studio\x20Build\x20Tools(缺\x20cl.exe),node-gyp\x20无法编译;','\x20满足「内置\x20SQLite」路径:对话抓取不依赖\x20better-sqlite3,Windows\x20上无需\x20VS\x20Build\x20Tools\x20即可避免「模块编译失败」。','npm\x20rebuild\x20better-sqlite3\x20--foreground-scripts','[提示]\x20\x20\x20·\x20公司网络拦截导致预编译包下载失败,被迫本地编译但本机无工具链。','log','startsWith','[原因]\x20当前\x20ABI\x20','node_modules','.tar.gz','concat','[步骤]\x20执行自动\x20npm\x20rebuild\x20better-sqlite3(本机源码编译)','[提示]\x20当前\x20','[WARN]\x20无法确定\x20npm\x20包根目录,跳过\x20npm\x20rebuild','close','[WARN]\x20预编译包安装后测试失败:\x20','[ERROR]\x20better-sqlite3\x20模块加载失败,安装中止','replace','win32','Request\x20timeout','[INFO]\x20尝试从\x20OSS\x20下载预编译包:\x20','[OK]\x20已检测到\x20Node\x20内置\x20node:sqlite,安装检查通过。','cwd','then','[提示]\x20','version','acwInstallNote','本步骤失败,几乎总是「可选依赖\x20better-sqlite3」的原生模块无法在您当前环境加载或编译。','131','12.4.1','4966101xdtuYU','1300008wdXqWI','根因:它需要与本机\x20Node\x20版本匹配的\x20C++\x20二进制;Windows\x20上缺\x20VS\x20Build\x20Tools\x20时极易报错。','[OK]\x20better-sqlite3\x20修复成功(OSS\x20预编译)','说明:\x20已尝试\x20OSS\x20预编译与\x20npm\x20rebuild。仍失败时:务必把运行\x20npx\x20的\x20Node\x20升到\x2022.5+(内置\x20SQLite,从根上避免本问题)。其余检查:','我的\x20ACW\x20MCP\x20安装失败(better-sqlite3\x20/\x20原生模块),错误:','package.json\x20中\x20engines\x20为\x20node>=20;要免编译、少踩坑,请以\x2022.5+\x20为准。','existsSync','end','3748712pWqgzt','[提示]\x20【解决办法优先级】①\x20将运行\x20npx\x20的\x20Node\x20升级到\x2022.5+(最省事);②\x20安装对应系统的\x20C++\x20编译环境后再装本包;③\x20确保\x20Cursor\x20/\x20终端使用同一份\x20Node,避免\x20ABI\x20混用。','statusCode','\x20\x201)\x20终端执行\x20node\x20-v\x20与\x20Cursor\x20调起\x20MCP\x20用的是否为同一\x20Node;','join','[ERROR]\x20postinstall\x20脚本执行出错:','\x20|\x20Node\x20','parse','────────────────────────────────────────────','unknown','location','dlopen','[原因]\x20首次加载失败(动态\x20import):\x20','test','utf8','],不会下载预编译包(避免错配二进制)。将尝试本机\x20npm\x20rebuild。','[提示]\x20【为什么会编译失败】better-sqlite3\x20含\x20C++\x20扩展(.node\x20文件)。常见原因:','env','catch','mkdirSync','。优先将\x20Node\x20升到\x2022.5+。否则\x20xcode-select\x20--install\x20后\x20npm\x20install\x20-g\x20@bangdao-ai/acw-tools\x20重装。','basename','push','pipe',':memory:','[OK]\x20安装完成','\x20(ABI\x20','\x20\x202)\x20若必须留在旧\x20Node:安装\x20C++\x20工具链后在包根目录执行\x20npm\x20rebuild\x20better-sqlite3\x20--foreground-scripts;','invalid\x20ELF',')无对应\x20OSS\x20预编译包,跳过\x20OSS,将尝试本机编译',')\x20|\x20','timeout','better-sqlite3-v','headers','slice','[WARN]\x20npm\x20rebuild\x20未成功:\x20','[步骤]\x20npm\x20rebuild:\x20成功','━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━','[INFO]\x20(需本机已有\x20C++\x20构建环境;Windows\x20为\x20VS\x20Build\x20Tools,macOS\x20为\x20Xcode\x20CLT,Linux\x20为\x20build-essential)','toFixed','platform','复制以下提示词发送给\x20Cursor,让\x20AI\x20帮你修复:','72796PPOEYk','8588fxiwsm','[环境]\x20Node=','127','stdout','[提示]\x20\x20\x20·\x20任意系统:执行\x20npx\x20的\x20Node\x20版本与当初编译该模块的\x20Node\x20ABI\x20不一致(报\x20NODE_MODULE_VERSION\x20/\x20was\x20compiled\x20against);','dirname','default','toString','message','https'];_0x1c63=function(){return _0x2a82d9;};return _0x1c63();}function b(){const _0x10e18e=_0x3a6d04;let _0x555eae=parseInt(process[_0x10e18e(0x1e7)][_0x10e18e(0x217)](0x1)['split']('.')[0x0],0xa);return F[_0x555eae]||process['versions'][_0x10e18e(0x23c)];}function E(){const _0x2d30d7=_0x3a6d04;let _0x3afec6=C,_0x5cc354=b(),_0x425eba=process[_0x2d30d7(0x21d)],_0x48d62d=process['arch'];return _0x2d30d7(0x215)+_0x3afec6+_0x2d30d7(0x236)+_0x5cc354+'-'+_0x425eba+'-'+_0x48d62d+_0x2d30d7(0x249);}function v(_0x3ce993){return new Promise((_0x44e659,_0x1c2b43)=>{const _0x4c1fb6=_0x2ba9;let _0x35f61c=(_0x3ce993[_0x4c1fb6(0x246)](_0x4c1fb6(0x229))?_0x103685:_0x2e7144)['get'](_0x3ce993,{'timeout':0x7530},_0x26583a=>{const _0x44d42c=_0x4c1fb6;if(_0x26583a[_0x44d42c(0x1f7)]===0x12d||_0x26583a['statusCode']===0x12e){v(_0x26583a[_0x44d42c(0x216)][_0x44d42c(0x1ff)])[_0x44d42c(0x1e5)](_0x44e659)[_0x44d42c(0x207)](_0x1c2b43);return;}if(_0x26583a['statusCode']!==0xc8){_0x1c2b43(new Error('HTTP\x20'+_0x26583a['statusCode']));return;}let _0x1722a9=[];_0x26583a['on']('data',_0x2583d7=>_0x1722a9['push'](_0x2583d7)),_0x26583a['on'](_0x44d42c(0x1f4),()=>_0x44e659(Buffer[_0x44d42c(0x24a)](_0x1722a9))),_0x26583a['on']('error',_0x1c2b43);});_0x35f61c['on']('error',_0x1c2b43),_0x35f61c['on'](_0x4c1fb6(0x214),()=>{const _0x55e9d0=_0x4c1fb6;_0x35f61c['destroy'](),_0x1c2b43(new Error(_0x55e9d0(0x253)));});});}async function D(_0x2956fa,_0x199655){const _0x5b5afa=_0x3a6d04;let _0x507154=_0x206fcd['gunzipSync'](_0x2956fa),_0x5cc2db=0x200,_0x50ff50=0x0;for(;_0x50ff50<_0x507154[_0x5b5afa(0x239)]-_0x5cc2db;){let _0xc8a36b=_0x507154[_0x5b5afa(0x217)](_0x50ff50,_0x50ff50+_0x5cc2db);if(_0xc8a36b[0x0]===0x0)break;let _0x4907ae=_0xc8a36b['slice'](0x0,0x64)[_0x5b5afa(0x227)]('utf8')['replace'](/\0/g,'')[_0x5b5afa(0x23e)](),_0x5a60d8=_0xc8a36b['slice'](0x7c,0x88)[_0x5b5afa(0x227)]('utf8')[_0x5b5afa(0x251)](/\0/g,'')['trim'](),_0x2a4d5c=parseInt(_0x5a60d8,0x8)||0x0,_0x29f28c=String['fromCharCode'](_0xc8a36b[0x9c]);if(_0x50ff50+=_0x5cc2db,_0x4907ae&&_0x29f28c==='0'||_0x29f28c==='\x00'){let _0x132294=_0x507154['slice'](_0x50ff50,_0x50ff50+_0x2a4d5c),_0x136999=_0xc29181[_0x5b5afa(0x1f9)](_0x199655,_0xc29181[_0x5b5afa(0x20a)](_0x4907ae));_0xbfa463['mkdirSync'](_0xc29181[_0x5b5afa(0x225)](_0x136999),{'recursive':!0x0}),_0xbfa463['writeFileSync'](_0x136999,_0x132294);}_0x50ff50+=Math['ceil'](_0x2a4d5c/_0x5cc2db)*_0x5cc2db;}}function h(){const _0x2c63f3=_0x3a6d04;let _0x39316e=[_0xc29181[_0x2c63f3(0x1f9)](process['cwd'](),_0x2c63f3(0x248),_0x2c63f3(0x23a)),_0xc29181[_0x2c63f3(0x1f9)](_0x2d3c47(import.meta.url),'..','node_modules',_0x2c63f3(0x23a))];try{let _0x4576b5=import.meta.resolve(_0x2c63f3(0x23a));if(_0x4576b5){let _0xb85f62=_0x2d3c47(_0x4576b5);_0x39316e['unshift'](_0xc29181[_0x2c63f3(0x225)](_0xc29181[_0x2c63f3(0x225)](_0xb85f62)));}}catch{}for(let _0x1c95a9 of _0x39316e)if(_0xbfa463[_0x2c63f3(0x1f3)](_0xc29181['join'](_0x1c95a9,'package.json')))return _0x1c95a9;return null;}function N(_0x27e559){const _0x2fa946=_0x3a6d04;if(!_0x27e559)return null;let _0x33388a=_0xc29181['dirname'](_0x27e559);return _0xc29181['basename'](_0x33388a)===_0x2fa946(0x248)?_0xc29181['dirname'](_0x33388a):null;}function B(_0x4bb6e0){const _0x38b6ed=_0x3a6d04;_0x373f19('node\x20-e\x20\x22require(\x27better-sqlite3\x27)(\x27:memory:\x27).close()\x22',{'cwd':_0x4bb6e0||process['cwd'](),'stdio':_0x38b6ed(0x20c),'env':{...process[_0x38b6ed(0x206)]}});}function k(_0x13b3b4){const _0x1ed030=_0x3a6d04;let _0x2d1734=N(_0x13b3b4);if(!_0x2d1734||!_0xbfa463[_0x1ed030(0x1f3)](_0xc29181[_0x1ed030(0x1f9)](_0x2d1734,'package.json')))return console[_0x1ed030(0x231)](_0x1ed030(0x24d)),!0x1;console[_0x1ed030(0x245)](''),console['log']('[INFO]\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'),console['log']('[INFO]\x20自动尝试本地编译:\x20在「'+_0x2d1734+'」执行\x20npm\x20rebuild\x20better-sqlite3'),console['log'](_0x1ed030(0x21b)),console['log'](_0x1ed030(0x237));try{return _0x373f19(_0x1ed030(0x243),{'cwd':_0x2d1734,'stdio':_0x1ed030(0x22d),'env':{...process['env']}}),B(_0x2d1734),console[_0x1ed030(0x245)]('[OK]\x20npm\x20rebuild\x20成功,better-sqlite3\x20已可加载'),!0x0;}catch(_0x575e29){let _0x547e52=_0x575e29&&typeof _0x575e29=='object'?_0x575e29:{},_0x4eee82=_0x547e52['stderr']?String(_0x547e52['stderr']):'',_0x19a47c=_0x547e52[_0x1ed030(0x223)]?String(_0x547e52['stdout']):'',_0x4490cd=_0x4eee82||_0x19a47c||(_0x575e29&&_0x575e29[_0x1ed030(0x228)]?String(_0x575e29['message']):String(_0x575e29));return console['warn'](_0x1ed030(0x218)+_0x4490cd['slice'](0x0,0x4b0)+(_0x4490cd[_0x1ed030(0x239)]>0x4b0?'...':'')),!0x1;}}async function M(){const _0x529a10=_0x3a6d04;let _0x36f408=E(),_0xa495b9=L+'/v'+C+'/'+_0x36f408;console['log'](_0x529a10(0x1e2)+_0x36f408);let _0x3be5e4=await v(_0xa495b9);console[_0x529a10(0x245)]('[INFO]\x20下载成功\x20('+(_0x3be5e4['length']/0x400)[_0x529a10(0x21c)](0x1)+'\x20KB)');let _0x59bb46=h();if(!_0x59bb46)throw new Error('无法找到\x20better-sqlite3\x20模块路径');let _0x53708f=_0xc29181[_0x529a10(0x1f9)](_0x59bb46,'prebuilds',process['platform']+'-'+process['arch']);return _0xbfa463[_0x529a10(0x208)](_0x53708f,{'recursive':!0x0}),await D(_0x3be5e4,_0x53708f),console[_0x529a10(0x245)]('[INFO]\x20预编译包已安装到:\x20'+_0x53708f),!0x0;}async function W(){const _0x35a2fe=_0x3a6d04;let _0x4c8f3a=(await import('better-sqlite3'))[_0x35a2fe(0x226)];return new _0x4c8f3a(_0x35a2fe(0x20d))[_0x35a2fe(0x24e)](),!0x0;}async function V(){const _0xc67e34=_0x3a6d04;try{let {DatabaseSync:_0x47292a}=await import('node:sqlite');return new _0x47292a(_0xc67e34(0x20d))[_0xc67e34(0x24e)](),!0x0;}catch{return!0x1;}}((async()=>{const _0x54b89b=_0x3a6d04;try{let _0x5cccfb=_0x2d3c47(import.meta.url),_0x5e3fbf=_0xc29181[_0x54b89b(0x225)](_0x5cccfb),_0x5d2d67=_0x54b89b(0x1fe),_0x18e54d='';try{let _0x4aa8a6=_0xc29181['join'](_0x5e3fbf,_0x54b89b(0x23f));if(_0xbfa463[_0x54b89b(0x1f3)](_0x4aa8a6)){let _0xdfb83e=JSON[_0x54b89b(0x1fc)](_0xbfa463['readFileSync'](_0x4aa8a6,_0x54b89b(0x203)));_0x5d2d67=_0xdfb83e[_0x54b89b(0x1e7)]||_0x54b89b(0x1fe),_0x18e54d=typeof _0xdfb83e['acwInstallNote']==_0x54b89b(0x22e)?_0xdfb83e[_0x54b89b(0x1e8)]:'';}}catch{}console['log']('ACW\x20Tools\x20MCP\x20安装后检查...'),console[_0x54b89b(0x245)]('v'+_0x5d2d67+_0x54b89b(0x1fb)+process[_0x54b89b(0x1e7)]+_0x54b89b(0x20f)+b()+_0x54b89b(0x213)+process['platform']+'/'+process['arch']),_0x18e54d&&console['log'](_0x54b89b(0x1e6)+_0x18e54d),await V()&&(console[_0x54b89b(0x245)](_0x54b89b(0x1e3)),console[_0x54b89b(0x245)](_0x54b89b(0x24c)+process[_0x54b89b(0x1e7)]+_0x54b89b(0x242)),x()||console['log']('[提示]\x20说明:检测通过但主版本号低于文档推荐的\x2022.5+,若日后升级\x20Node,请以实际是否仍含\x20node:sqlite\x20为准。'),console['log'](_0x54b89b(0x20e)),process['exit'](0x0)),P();let _0x18bf76=!0x1,_0x4217bd=null,_0x45ced4=[];try{await W(),console['log']('[OK]\x20better-sqlite3\x20加载成功'),_0x18bf76=!0x0;}catch(_0x29b909){_0x4217bd=_0x29b909;let _0x233c22=_0x29b909&&_0x29b909[_0x54b89b(0x228)]?String(_0x29b909['message']):'',_0x5c4793=_0x233c22['toLowerCase']();console[_0x54b89b(0x245)]('[INFO]\x20better-sqlite3\x20原生加载失败:\x20'+_0x233c22),_0x45ced4[_0x54b89b(0x20b)](_0x54b89b(0x201)+_0x233c22['slice'](0x0,0x1f4)+(_0x233c22['length']>0x1f4?'...':'')),(_0x233c22['includes']('Cannot\x20find\x20package')||_0x233c22[_0x54b89b(0x230)]('ERR_MODULE_NOT_FOUND')||_0x233c22['includes'](_0x54b89b(0x22c)))&&_0x45ced4[_0x54b89b(0x20b)]('[原因]\x20better-sqlite3\x20未安装到位(多为\x20optional\x20依赖下载或编译失败);在\x20Node\x20低于\x2022.5\x20且无内置\x20SQLite\x20时会导致本步失败。');let _0x125912=_0x233c22['includes']('NODE_MODULE_VERSION')||_0x233c22['includes']('was\x20compiled\x20against')||/\.node\b/[_0x54b89b(0x202)](_0x233c22)||_0x5c4793[_0x54b89b(0x230)]('better_sqlite3')||_0x5c4793['includes']('better-sqlite3')||_0x5c4793['includes'](_0x54b89b(0x200))||_0x5c4793['includes'](_0x54b89b(0x211))||_0x5c4793[_0x54b89b(0x230)]('not\x20a\x20valid\x20win32'),_0x38503a=h(),_0x344f6a=N(_0x38503a);if(_0x45ced4[_0x54b89b(0x20b)](_0x54b89b(0x221)+process[_0x54b89b(0x1e7)]+',process.versions.modules='+process['versions']['modules']+',映射\x20ABI='+b()+',平台='+process['platform']+'/'+process['arch']),_0x45ced4[_0x54b89b(0x20b)]('[环境]\x20better-sqlite3\x20路径='+(_0x38503a||'未找到')+_0x54b89b(0x22f)+(_0x344f6a||'未解析')),!_0x125912)_0x45ced4['push'](_0x54b89b(0x234));else{let _0x24da42=b();if(!$[_0x54b89b(0x230)](_0x24da42))_0x45ced4['push'](_0x54b89b(0x247)+_0x24da42+'\x20不在\x20OSS\x20预编译列表\x20['+$[_0x54b89b(0x1f9)](',\x20')+_0x54b89b(0x204)),console[_0x54b89b(0x245)](_0x54b89b(0x235)+process[_0x54b89b(0x1e7)]+'(ABI\x20v'+_0x24da42+_0x54b89b(0x212));else{_0x45ced4[_0x54b89b(0x20b)]('[步骤]\x20ABI\x20'+_0x24da42+'\x20在预编译列表内,尝试\x20OSS:\x20'+E()),console['log']('[INFO]\x20检测到原生模块加载异常,尝试从\x20OSS\x20拉取匹配当前\x20ABI\x20的预编译包...');try{await M(),console[_0x54b89b(0x245)]('[INFO]\x20预编译包已安装,重新测试...');try{let _0x1bcd93=N(h())||_0x344f6a||process[_0x54b89b(0x1e4)]();B(_0x1bcd93),console[_0x54b89b(0x245)](_0x54b89b(0x1ef)),_0x18bf76=!0x0,_0x45ced4[_0x54b89b(0x20b)]('[步骤]\x20OSS\x20预编译\x20+\x20子进程校验:\x20成功');}catch(_0x579e5e){_0x45ced4['push']('[步骤]\x20OSS\x20预编译后子进程校验仍失败:\x20'+(_0x579e5e['message']||_0x579e5e)),console['warn'](_0x54b89b(0x24f)+_0x579e5e['message']);}}catch(_0x2e9269){_0x45ced4['push']('[步骤]\x20OSS\x20下载或解压失败:\x20'+(_0x2e9269['message']||_0x2e9269)),console['warn']('[WARN]\x20OSS\x20预编译包下载或解压失败:\x20'+_0x2e9269['message']);}}!_0x18bf76&&_0x38503a?(_0x45ced4[_0x54b89b(0x20b)](_0x54b89b(0x24b)),k(_0x38503a)?(_0x18bf76=!0x0,_0x45ced4[_0x54b89b(0x20b)](_0x54b89b(0x219))):_0x45ced4['push']('[步骤]\x20npm\x20rebuild:\x20失败(见上方日志,多为缺少\x20cl.exe\x20/\x20Xcode\x20Command\x20Line\x20Tools\x20/\x20build-essential)')):!_0x18bf76&&!_0x38503a&&_0x45ced4['push']('[步骤]\x20未找到\x20better-sqlite3\x20目录,无法执行\x20npm\x20rebuild');}}if(!_0x18bf76){let _0x49bfe8=_0x4217bd?.[_0x54b89b(0x228)]||'未知错误';if(y(),console[_0x54b89b(0x23d)](''),console['error']('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'),console[_0x54b89b(0x23d)](_0x54b89b(0x250)),console[_0x54b89b(0x23d)]('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'),console['error'](''),console[_0x54b89b(0x23d)]('──────────\x20诊断摘要(请整段复制给支持人员或\x20Cursor)──────────'),_0x45ced4['forEach'](_0x251b76=>console[_0x54b89b(0x23d)](_0x251b76)),console[_0x54b89b(0x23d)]('────────────────────────────────────────────────────────────'),console[_0x54b89b(0x23d)](''),console[_0x54b89b(0x23d)]('首错原文:\x20'+_0x49bfe8),console[_0x54b89b(0x23d)](''),console['error'](_0x54b89b(0x1f0)),console['error'](_0x54b89b(0x1f8)),console[_0x54b89b(0x23d)](_0x54b89b(0x210)),console[_0x54b89b(0x23d)]('\x20\x203)\x20再执行\x20npm\x20install\x20-g\x20@bangdao-ai/acw-tools。'),console['error'](''),console['error'](_0x54b89b(0x21e)),console[_0x54b89b(0x23d)](''),process['platform']===_0x54b89b(0x252)){let _0x3df75e=!0x1;try{_0x373f19('where\x20cl.exe',{'stdio':_0x54b89b(0x20c)}),_0x3df75e=!0x0;}catch{}console['error'](_0x3df75e?_0x54b89b(0x1f1)+_0x49bfe8+'。优先请把运行\x20npx\x20的\x20Node\x20升级到\x2022.5\x20以上以使用内置\x20SQLite、避免编译。若暂不能升级:已装\x20VS\x20仍失败则执行\x20npm\x20cache\x20clean\x20--force\x20后\x20npm\x20install\x20-g\x20@bangdao-ai/acw-tools\x20重装。':'我的\x20ACW\x20MCP\x20安装失败(better-sqlite3\x20/\x20原生模块),错误:'+_0x49bfe8+'。优先请把运行\x20npx\x20的\x20Node\x20升级到\x2022.5\x20以上(免装\x20VS\x20Build\x20Tools)。否则请安装\x20Visual\x20Studio\x20Build\x20Tools\x20后再\x20npm\x20install\x20-g\x20@bangdao-ai/acw-tools。');}else process[_0x54b89b(0x21d)]==='darwin'?console['error']('我的\x20ACW\x20MCP\x20安装失败(better-sqlite3\x20/\x20原生模块),错误:'+_0x49bfe8+_0x54b89b(0x209)):console[_0x54b89b(0x23d)](_0x54b89b(0x1f1)+_0x49bfe8+'。优先将\x20Node\x20升到\x2022.5+。否则\x20sudo\x20apt-get\x20install\x20build-essential\x20后\x20npm\x20install\x20-g\x20@bangdao-ai/acw-tools\x20重装。');console['error'](''),console[_0x54b89b(0x23d)](_0x54b89b(0x21a)),process['exit'](0x1);}console['log'](_0x54b89b(0x238)),console['log'](_0x54b89b(0x20e));}catch(_0xb4b4bb){y(),console[_0x54b89b(0x23d)](_0x54b89b(0x1fa),_0xb4b4bb['message']),process['exit'](0x1);}})());