@lovrabet/cli 1.2.5-beta.3 → 1.2.5-beta.4

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.
Files changed (66) hide show
  1. package/lib/add-page/input-page-router.js +1 -1
  2. package/lib/add-page/main.js +1 -1
  3. package/lib/add-page/select-page-template.js +1 -1
  4. package/lib/ai-setup/AISetupUI.js +1 -1
  5. package/lib/ai-setup/config.js +1 -1
  6. package/lib/api/api-doc-ui.js +1 -1
  7. package/lib/api/api-doc.js +1 -1
  8. package/lib/api/api-pull-ui.js +1 -1
  9. package/lib/api/fetch-model-list.js +1 -1
  10. package/lib/api/generate-api-file.js +1 -1
  11. package/lib/api/main.js +1 -1
  12. package/lib/api/pull-silent.js +1 -1
  13. package/lib/app-menu/app-menu-sync-ui.js +1 -1
  14. package/lib/app-menu/create-menu.js +1 -1
  15. package/lib/app-menu/get-local-pages.js +1 -1
  16. package/lib/app-menu/get-online-menu-list.js +1 -1
  17. package/lib/app-menu/use-get-online-menu-list.js +1 -1
  18. package/lib/app-menu/utils.js +1 -1
  19. package/lib/app-menu/valid-url.js +1 -1
  20. package/lib/app-menu-update-cdn/current-content.js +1 -1
  21. package/lib/app-menu-update-cdn/input-cdn-asset.js +1 -1
  22. package/lib/app-menu-update-cdn/main.js +1 -1
  23. package/lib/app-menu-update-cdn/update-menu-cdn-url.js +1 -1
  24. package/lib/auth/auth-server-ui.js +1 -1
  25. package/lib/auth/auth-server.js +1 -1
  26. package/lib/auth/constant.js +1 -1
  27. package/lib/auth/get-cookie.js +1 -1
  28. package/lib/auth/is-session-valid.js +1 -1
  29. package/lib/auth/logout.js +1 -1
  30. package/lib/cli.js +1 -1
  31. package/lib/cmd/build-watch.js +1 -1
  32. package/lib/cmd/build.js +1 -1
  33. package/lib/cmd/logs.js +1 -1
  34. package/lib/cmd/preview.js +1 -1
  35. package/lib/cmd/start.js +1 -1
  36. package/lib/config/config-help.js +1 -1
  37. package/lib/config/main.js +1 -1
  38. package/lib/constant/domain.js +1 -1
  39. package/lib/constant/env.js +1 -1
  40. package/lib/create-app/enhanced-guided-create.js +1 -1
  41. package/lib/create-app/format-elapsed.js +1 -1
  42. package/lib/create-app/main.js +1 -1
  43. package/lib/create-app/task-finished.js +1 -1
  44. package/lib/create-app/task-loading.js +1 -1
  45. package/lib/create-app/task-running.js +1 -1
  46. package/lib/create-app/task-time.js +1 -1
  47. package/lib/create-app/use-copy-project-template.js +1 -1
  48. package/lib/create-app/use-format-code.js +1 -1
  49. package/lib/create-app/use-install-dependencies.js +1 -1
  50. package/lib/help.js +1 -1
  51. package/lib/init/main.js +1 -1
  52. package/lib/mcp/McpInstallUI.js +1 -1
  53. package/lib/mcp/claude.js +1 -1
  54. package/lib/mcp/cursor.js +1 -1
  55. package/lib/mcp/main.js +1 -1
  56. package/lib/skills/SkillInstallUI.js +1 -1
  57. package/lib/skills/main.js +1 -1
  58. package/lib/utils/check-sdk-version.js +1 -1
  59. package/lib/utils/config.js +1 -1
  60. package/lib/utils/copy-directory.js +1 -1
  61. package/lib/utils/http-client.js +1 -1
  62. package/lib/utils/logger.js +1 -1
  63. package/lib/utils/router-updater.js +1 -1
  64. package/lib/utils/sleep.js +1 -1
  65. package/lib/utils/template-replacer.js +1 -1
  66. package/package.json +1 -1
@@ -1 +1 @@
1
- (function(_0xd3bbf1,_0x491146){var _0x1fa251=a46_0x5517,_0x4f95e4=_0xd3bbf1();while(!![]){try{var _0x2b3471=-parseInt(_0x1fa251(0x1c5))/0x1*(-parseInt(_0x1fa251(0x1c9))/0x2)+parseInt(_0x1fa251(0x1cf))/0x3*(-parseInt(_0x1fa251(0x1c3))/0x4)+-parseInt(_0x1fa251(0x1ce))/0x5*(parseInt(_0x1fa251(0x1c8))/0x6)+parseInt(_0x1fa251(0x1c4))/0x7*(parseInt(_0x1fa251(0x1cd))/0x8)+parseInt(_0x1fa251(0x1cb))/0x9*(-parseInt(_0x1fa251(0x1c6))/0xa)+parseInt(_0x1fa251(0x1d0))/0xb*(parseInt(_0x1fa251(0x1c7))/0xc)+parseInt(_0x1fa251(0x1ca))/0xd;if(_0x2b3471===_0x491146)break;else _0x4f95e4['push'](_0x4f95e4['shift']());}catch(_0x207cc3){_0x4f95e4['push'](_0x4f95e4['shift']());}}}(a46_0x35fe,0xb1e2f));function a46_0x5517(_0x456148,_0x1ede7a){_0x456148=_0x456148-0x1c3;var _0x35febd=a46_0x35fe();var _0x5517fb=_0x35febd[_0x456148];return _0x5517fb;}import{jsx as a46_0x22afdc,jsxs as a46_0x35e6fe}from'react/jsx-runtime';function a46_0x35fe(){var _0x9dd928=['12541419ZOLzUU','taskName','8WBKVJh','9625caeAPr','298761dzrdcC','1408CIDHzp','elapsed','4EUUpKR','1177799TlqQBq','7KImHCE','10ycGZqE','81132TpFLqB','4254wGNCXS','171910pXVMhp','25365288xkDPMD'];a46_0x35fe=function(){return _0x9dd928;};return a46_0x35fe();}import{Box,Text}from'ink';import{TaskLoading}from'./task-loading.js';import{TaskTime}from'./task-time.js';export function TaskRunning(_0x456f28){var _0x375c53=a46_0x5517;return a46_0x35e6fe(Box,{'children':[a46_0x22afdc(Box,{'width':'1'}),a46_0x22afdc(TaskLoading,{..._0x456f28}),a46_0x22afdc(Text,{'children':_0x456f28[_0x375c53(0x1cc)]}),a46_0x22afdc(TaskTime,{'elapsed':_0x456f28[_0x375c53(0x1d1)]})]});}
1
+ (function(_0x11e7a7,_0x44a2d0){var _0x3a32e6=a46_0xc850,_0x1bd297=_0x11e7a7();while(!![]){try{var _0x5a4cc1=-parseInt(_0x3a32e6(0xe1))/0x1*(parseInt(_0x3a32e6(0xe2))/0x2)+parseInt(_0x3a32e6(0xe4))/0x3+-parseInt(_0x3a32e6(0xdd))/0x4*(parseInt(_0x3a32e6(0xe0))/0x5)+parseInt(_0x3a32e6(0xe5))/0x6+-parseInt(_0x3a32e6(0xe7))/0x7*(-parseInt(_0x3a32e6(0xdc))/0x8)+parseInt(_0x3a32e6(0xe6))/0x9*(-parseInt(_0x3a32e6(0xdf))/0xa)+parseInt(_0x3a32e6(0xde))/0xb*(parseInt(_0x3a32e6(0xe3))/0xc);if(_0x5a4cc1===_0x44a2d0)break;else _0x1bd297['push'](_0x1bd297['shift']());}catch(_0x34d99e){_0x1bd297['push'](_0x1bd297['shift']());}}}(a46_0x5722,0x61e63));function a46_0xc850(_0x1e8acb,_0x3ffb62){_0x1e8acb=_0x1e8acb-0xdc;var _0x57224b=a46_0x5722();var _0xc85007=_0x57224b[_0x1e8acb];return _0xc85007;}import{jsx as a46_0x2905c5,jsxs as a46_0x52742f}from'react/jsx-runtime';import{Box,Text}from'ink';import{TaskLoading}from'./task-loading.js';function a46_0x5722(){var _0x4dc01e=['459gLMwRD','568yHvNMB','420hCjeYf','1522329PReOIf','2031810LqcoFV','27xHnZkz','199605WVnhLK','taskName','16JZxlQx','4PpYbLz','140657KXLxMa','2428770xZhRDk','453355vUDryP'];a46_0x5722=function(){return _0x4dc01e;};return a46_0x5722();}import{TaskTime}from'./task-time.js';export function TaskRunning(_0x156345){var _0x5ee3a3=a46_0xc850;return a46_0x52742f(Box,{'children':[a46_0x2905c5(Box,{'width':'1'}),a46_0x2905c5(TaskLoading,{..._0x156345}),a46_0x2905c5(Text,{'children':_0x156345[_0x5ee3a3(0xe8)]}),a46_0x2905c5(TaskTime,{'elapsed':_0x156345['elapsed']})]});}
@@ -1 +1 @@
1
- function a47_0x1ec7(_0x26ce4f,_0x3644fc){_0x26ce4f=_0x26ce4f-0x74;var _0x5ac745=a47_0x5ac7();var _0x1ec74b=_0x5ac745[_0x26ce4f];return _0x1ec74b;}function a47_0x5ac7(){var _0x71926b=['222770UHVzKe','604vDdUFT','478733aVpBXB','168ukzOAU','164680xLZLGY','24ZzfGbe','elapsed','2589tJdtGB','459335ILoWFH','177264uTyvXN','231ZjjLOo','165067HpuGJM','gray'];a47_0x5ac7=function(){return _0x71926b;};return a47_0x5ac7();}(function(_0xa587,_0x345931){var _0xc512fb=a47_0x1ec7,_0x6d4da8=_0xa587();while(!![]){try{var _0x4eaa30=parseInt(_0xc512fb(0x74))/0x1+parseInt(_0xc512fb(0x76))/0x2+parseInt(_0xc512fb(0x79))/0x3*(parseInt(_0xc512fb(0x80))/0x4)+-parseInt(_0xc512fb(0x7a))/0x5*(parseInt(_0xc512fb(0x77))/0x6)+-parseInt(_0xc512fb(0x7d))/0x7*(parseInt(_0xc512fb(0x75))/0x8)+-parseInt(_0xc512fb(0x7b))/0x9+-parseInt(_0xc512fb(0x7f))/0xa*(-parseInt(_0xc512fb(0x7c))/0xb);if(_0x4eaa30===_0x345931)break;else _0x6d4da8['push'](_0x6d4da8['shift']());}catch(_0x5620d4){_0x6d4da8['push'](_0x6d4da8['shift']());}}}(a47_0x5ac7,0x43966));import{jsx as a47_0x60f824,Fragment as a47_0x2db969,jsxs as a47_0x524a15}from'react/jsx-runtime';import{Text}from'ink';export function TaskTime(_0x4612f6){var _0x4eefa0=a47_0x1ec7;if(_0x4612f6[_0x4eefa0(0x78)])return a47_0x524a15(a47_0x2db969,{'children':[a47_0x60f824(Text,{'color':_0x4eefa0(0x7e),'children':'\x20['}),a47_0x60f824(Text,{'color':_0x4eefa0(0x7e),'bold':!![],'children':_0x4612f6['elapsed']}),a47_0x60f824(Text,{'color':_0x4eefa0(0x7e),'children':']'})]});return null;}
1
+ function a47_0x2ab4(){var _0x3e51c8=['elapsed','4660504LZrzjL','3vcGejE','3552050vIqSZE','1350265ebDCkb','12AgOhBu','315hdbVVy','423ACyxsk','664279rWkilY','gray','55840XNmeef','4462RgCjxc','32651047XfUXci'];a47_0x2ab4=function(){return _0x3e51c8;};return a47_0x2ab4();}(function(_0x32c7db,_0x26cdbb){var _0x54568f=a47_0xe670,_0x21aa94=_0x32c7db();while(!![]){try{var _0x3cc071=-parseInt(_0x54568f(0xf1))/0x1*(parseInt(_0x54568f(0xe9))/0x2)+parseInt(_0x54568f(0xed))/0x3*(-parseInt(_0x54568f(0xec))/0x4)+parseInt(_0x54568f(0xef))/0x5*(-parseInt(_0x54568f(0xf0))/0x6)+parseInt(_0x54568f(0xf3))/0x7+-parseInt(_0x54568f(0xe8))/0x8*(-parseInt(_0x54568f(0xf2))/0x9)+-parseInt(_0x54568f(0xee))/0xa+parseInt(_0x54568f(0xea))/0xb;if(_0x3cc071===_0x26cdbb)break;else _0x21aa94['push'](_0x21aa94['shift']());}catch(_0xb1fa2a){_0x21aa94['push'](_0x21aa94['shift']());}}}(a47_0x2ab4,0x99540));import{jsx as a47_0x409f34,Fragment as a47_0xe28fd0,jsxs as a47_0x340beb}from'react/jsx-runtime';import{Text}from'ink';function a47_0xe670(_0x107e7d,_0x5b1284){_0x107e7d=_0x107e7d-0xe7;var _0x2ab4f7=a47_0x2ab4();var _0xe67001=_0x2ab4f7[_0x107e7d];return _0xe67001;}export function TaskTime(_0x9e0062){var _0xd631fb=a47_0xe670;if(_0x9e0062[_0xd631fb(0xeb)])return a47_0x340beb(a47_0xe28fd0,{'children':[a47_0x409f34(Text,{'color':_0xd631fb(0xe7),'children':'\x20['}),a47_0x409f34(Text,{'color':_0xd631fb(0xe7),'bold':!![],'children':_0x9e0062[_0xd631fb(0xeb)]}),a47_0x409f34(Text,{'color':_0xd631fb(0xe7),'children':']'})]});return null;}
@@ -1 +1 @@
1
- const a48_0x3beb79=a48_0x1786;(function(_0x34d1fa,_0x29e528){const _0x10f44b=a48_0x1786,_0x46b00d=_0x34d1fa();while(!![]){try{const _0x42ecef=parseInt(_0x10f44b(0x95))/0x1+-parseInt(_0x10f44b(0x8e))/0x2+parseInt(_0x10f44b(0x9d))/0x3*(-parseInt(_0x10f44b(0x99))/0x4)+parseInt(_0x10f44b(0x9b))/0x5+parseInt(_0x10f44b(0x96))/0x6*(parseInt(_0x10f44b(0x97))/0x7)+-parseInt(_0x10f44b(0x9a))/0x8*(parseInt(_0x10f44b(0x8f))/0x9)+parseInt(_0x10f44b(0x9c))/0xa;if(_0x42ecef===_0x29e528)break;else _0x46b00d['push'](_0x46b00d['shift']());}catch(_0x4ce07e){_0x46b00d['push'](_0x46b00d['shift']());}}}(a48_0x161b,0x3828a));function a48_0x1786(_0x18e31f,_0x345458){_0x18e31f=_0x18e31f-0x8b;const _0x161b8b=a48_0x161b();let _0x1786a5=_0x161b8b[_0x18e31f];return _0x1786a5;}function a48_0x161b(){const _0x36b81d=['2520510EeUWhM','2211oWZDTt','now','../../templates/projects/sub-app-react-demo','resolve','46062UDbIuy','655128nFWZuv','开始复制项目模板','dirname','info','error','copy','273543myKisg','1986XyvJfC','1799kScOXr','success','1908VVmKtS','48TQsRuI','2153485MUkPiU'];a48_0x161b=function(){return _0x36b81d;};return a48_0x161b();}import a48_0x32c69c from'node:path';import{fileURLToPath}from'node:url';import{useCallback,useState}from'react';import{copyDirectory}from'../utils/copy-directory.js';import{formatElapsed}from'./format-elapsed.js';import{logger}from'../utils/logger.js';const __dirname=a48_0x32c69c[a48_0x3beb79(0x91)](fileURLToPath(import.meta.url)),templateDir=a48_0x32c69c[a48_0x3beb79(0x8d)](__dirname,a48_0x3beb79(0x8c));export function useCopyProjectTemplate(){const [_0x4e4e80,_0x3e0206]=useState(![]),[_0x1765f5,_0x147f90]=useState(![]),[_0x3a989b,_0x48b6c7]=useState(''),_0x1f8e3d=useCallback(async _0x33c29b=>{const _0x454410=a48_0x1786,_0x5ec90e=Date[_0x454410(0x8b)](),_0x3db0c6=a48_0x32c69c[_0x454410(0x8d)](process['cwd'](),_0x33c29b);_0x3e0206(!![]);try{logger[_0x454410(0x92)]('copy',_0x454410(0x90),{'projectCode':_0x33c29b,'templateDir':templateDir}),await copyDirectory(templateDir,_0x3db0c6);const _0x1c25de=Date[_0x454410(0x8b)]()-_0x5ec90e;logger[_0x454410(0x98)](_0x454410(0x94),'项目模板复制完成',_0x1c25de,{'projectCode':_0x33c29b});}catch(_0x2523d6){const _0x4e70d7=Date[_0x454410(0x8b)]()-_0x5ec90e;logger[_0x454410(0x93)]('copy','项目模板复制失败',{'projectCode':_0x33c29b,'error':_0x2523d6 instanceof Error?_0x2523d6['message']:String(_0x2523d6),'duration':_0x4e70d7});throw _0x2523d6;}finally{_0x3e0206(![]),_0x147f90(!![]),_0x48b6c7(formatElapsed(_0x5ec90e));}},[]);return{'taskName':'复制项目文件','finished':_0x1765f5,'loading':_0x4e4e80,'elapsed':_0x3a989b,'doTask':_0x1f8e3d};}
1
+ const a48_0x23c50f=a48_0x59da;(function(_0x1b8816,_0x769187){const _0x1090fd=a48_0x59da,_0x202850=_0x1b8816();while(!![]){try{const _0x92e95e=-parseInt(_0x1090fd(0xdb))/0x1*(-parseInt(_0x1090fd(0xe8))/0x2)+-parseInt(_0x1090fd(0xef))/0x3*(-parseInt(_0x1090fd(0xdd))/0x4)+-parseInt(_0x1090fd(0xe2))/0x5*(-parseInt(_0x1090fd(0xed))/0x6)+parseInt(_0x1090fd(0xdc))/0x7*(-parseInt(_0x1090fd(0xe4))/0x8)+-parseInt(_0x1090fd(0xee))/0x9*(parseInt(_0x1090fd(0xe9))/0xa)+parseInt(_0x1090fd(0xeb))/0xb*(parseInt(_0x1090fd(0xda))/0xc)+-parseInt(_0x1090fd(0xe7))/0xd;if(_0x92e95e===_0x769187)break;else _0x202850['push'](_0x202850['shift']());}catch(_0x542607){_0x202850['push'](_0x202850['shift']());}}}(a48_0x44a2,0xc39cd));import a48_0xbafde1 from'node:path';import{fileURLToPath}from'node:url';function a48_0x59da(_0xd40ae2,_0x1537be){_0xd40ae2=_0xd40ae2-0xd9;const _0x44a21d=a48_0x44a2();let _0x59da56=_0x44a21d[_0xd40ae2];return _0x59da56;}import{useCallback,useState}from'react';function a48_0x44a2(){const _0x2719e3=['项目模板复制失败','success','dirname','280815LfidFr','项目模板复制完成','59216yOMyeR','copy','开始复制项目模板','27335555EFCVnL','3026oYCHiE','50oPqZvF','复制项目文件','1011175qEgjWG','info','54ZajzmO','1586862pymTJv','3VwtzIK','now','../../templates/projects/sub-app-react-demo','168NvQxIf','902gcBGtp','70PXJdlm','2809724GpIBSv','message'];a48_0x44a2=function(){return _0x2719e3;};return a48_0x44a2();}import{copyDirectory}from'../utils/copy-directory.js';import{formatElapsed}from'./format-elapsed.js';import{logger}from'../utils/logger.js';const __dirname=a48_0xbafde1[a48_0x23c50f(0xe1)](fileURLToPath(import.meta.url)),templateDir=a48_0xbafde1['resolve'](__dirname,a48_0x23c50f(0xd9));export function useCopyProjectTemplate(){const _0x5cf27c=a48_0x23c50f,[_0xe11f03,_0x83966f]=useState(![]),[_0x2b35f7,_0x236221]=useState(![]),[_0x514b5d,_0x32f223]=useState(''),_0x54900b=useCallback(async _0x140670=>{const _0x2281cb=a48_0x59da,_0x84985c=Date[_0x2281cb(0xf0)](),_0x3e0c8e=a48_0xbafde1['resolve'](process['cwd'](),_0x140670);_0x83966f(!![]);try{logger[_0x2281cb(0xec)](_0x2281cb(0xe5),_0x2281cb(0xe6),{'projectCode':_0x140670,'templateDir':templateDir}),await copyDirectory(templateDir,_0x3e0c8e);const _0x366e80=Date[_0x2281cb(0xf0)]()-_0x84985c;logger[_0x2281cb(0xe0)](_0x2281cb(0xe5),_0x2281cb(0xe3),_0x366e80,{'projectCode':_0x140670});}catch(_0x5a1033){const _0x1381b2=Date[_0x2281cb(0xf0)]()-_0x84985c;logger['error'](_0x2281cb(0xe5),_0x2281cb(0xdf),{'projectCode':_0x140670,'error':_0x5a1033 instanceof Error?_0x5a1033[_0x2281cb(0xde)]:String(_0x5a1033),'duration':_0x1381b2});throw _0x5a1033;}finally{_0x83966f(![]),_0x236221(!![]),_0x32f223(formatElapsed(_0x84985c));}},[]);return{'taskName':_0x5cf27c(0xea),'finished':_0x2b35f7,'loading':_0xe11f03,'elapsed':_0x514b5d,'doTask':_0x54900b};}
@@ -1 +1 @@
1
- function a49_0x3c97(){const _0x19a10d=['info','代码格式化完成','开始格式化代码','success','1972098wcpIjm','193FylXDc','格式化代码','5COsujJ','759022bTAQIP','3030SYMoFd','resolve','now','10926DJyOSC','6iQyyUa','message','prettier','3402lUSVuC','代码格式化失败','2481344KJGDnm','npx','2549449EIGxAX','format','56728uUIcuw'];a49_0x3c97=function(){return _0x19a10d;};return a49_0x3c97();}(function(_0x2a5748,_0x3b26b2){const _0x3ce412=a49_0x3285,_0x352cc1=_0x2a5748();while(!![]){try{const _0x53ca60=parseInt(_0x3ce412(0x1b4))/0x1*(-parseInt(_0x3ce412(0x1bf))/0x2)+parseInt(_0x3ce412(0x1bc))/0x3*(parseInt(_0x3ce412(0x1ae))/0x4)+parseInt(_0x3ce412(0x1b6))/0x5*(parseInt(_0x3ce412(0x1b3))/0x6)+parseInt(_0x3ce412(0x1c3))/0x7+parseInt(_0x3ce412(0x1c1))/0x8+parseInt(_0x3ce412(0x1bb))/0x9*(-parseInt(_0x3ce412(0x1b8))/0xa)+-parseInt(_0x3ce412(0x1b7))/0xb;if(_0x53ca60===_0x3b26b2)break;else _0x352cc1['push'](_0x352cc1['shift']());}catch(_0x2fb77f){_0x352cc1['push'](_0x352cc1['shift']());}}}(a49_0x3c97,0x4102d));import a49_0x2df782 from'node:path';import{useCallback,useState}from'react';function a49_0x3285(_0x4462b5,_0x2b98f5){_0x4462b5=_0x4462b5-0x1ad;const _0x3c9710=a49_0x3c97();let _0x3285c9=_0x3c9710[_0x4462b5];return _0x3285c9;}import{execa}from'execa';import{formatElapsed}from'./format-elapsed.js';import{logger}from'../utils/logger.js';export function useFormatCode(){const _0x5d2667=a49_0x3285,[_0x52a43f,_0x4ff965]=useState(![]),[_0x38bff8,_0x4f7e81]=useState(![]),[_0x50bf1f,_0x146a57]=useState(''),_0x4adc02=useCallback(async _0x4ad5c8=>{const _0x440844=a49_0x3285,_0x5b27f9=Date[_0x440844(0x1ba)](),_0x4aff78=a49_0x2df782[_0x440844(0x1b9)](process['cwd'](),_0x4ad5c8);_0x4ff965(!![]);try{logger[_0x440844(0x1af)](_0x440844(0x1ad),_0x440844(0x1b1),{'projectCode':_0x4ad5c8}),await execa(_0x440844(0x1c2),[_0x440844(0x1be),'--write','.'],{'cwd':_0x4aff78});const _0x17f0fe=Date[_0x440844(0x1ba)]()-_0x5b27f9;logger[_0x440844(0x1b2)](_0x440844(0x1ad),_0x440844(0x1b0),_0x17f0fe,{'projectCode':_0x4ad5c8});}catch(_0x4b32f9){const _0xdbb494=Date[_0x440844(0x1ba)]()-_0x5b27f9;logger['error'](_0x440844(0x1ad),_0x440844(0x1c0),{'projectCode':_0x4ad5c8,'error':_0x4b32f9 instanceof Error?_0x4b32f9[_0x440844(0x1bd)]:String(_0x4b32f9),'duration':_0xdbb494});throw _0x4b32f9;}finally{_0x4ff965(![]),_0x4f7e81(!![]),_0x146a57(formatElapsed(_0x5b27f9));}},[]);return{'taskName':_0x5d2667(0x1b5),'finished':_0x38bff8,'loading':_0x52a43f,'elapsed':_0x50bf1f,'doTask':_0x4adc02};}
1
+ (function(_0x1d49c5,_0x1c45f0){const _0x1a6084=a49_0x45c9,_0x5b5548=_0x1d49c5();while(!![]){try{const _0x3939b0=parseInt(_0x1a6084(0x118))/0x1+-parseInt(_0x1a6084(0x109))/0x2+parseInt(_0x1a6084(0x114))/0x3*(-parseInt(_0x1a6084(0x10d))/0x4)+parseInt(_0x1a6084(0x113))/0x5*(parseInt(_0x1a6084(0x110))/0x6)+parseInt(_0x1a6084(0x111))/0x7*(parseInt(_0x1a6084(0x112))/0x8)+parseInt(_0x1a6084(0x10c))/0x9+-parseInt(_0x1a6084(0x10a))/0xa;if(_0x3939b0===_0x1c45f0)break;else _0x5b5548['push'](_0x5b5548['shift']());}catch(_0x5a4784){_0x5b5548['push'](_0x5b5548['shift']());}}}(a49_0x5e0b,0x666a2));import a49_0x32ba92 from'node:path';import{useCallback,useState}from'react';function a49_0x45c9(_0x2bf106,_0x64eb92){_0x2bf106=_0x2bf106-0x106;const _0x5e0b67=a49_0x5e0b();let _0x45c9fd=_0x5e0b67[_0x2bf106];return _0x45c9fd;}import{execa}from'execa';import{formatElapsed}from'./format-elapsed.js';function a49_0x5e0b(){const _0x571ae2=['4434zDfAzr','now','message','error','521229qIszBJ','代码格式化失败','format','开始格式化代码','377384RJhrUM','9225810QNIfSV','prettier','5654421ZNvwBA','780aFHEqC','cwd','resolve','104682tSAsjP','1915711TbamBB','16XBnESK','35gvkpEX'];a49_0x5e0b=function(){return _0x571ae2;};return a49_0x5e0b();}import{logger}from'../utils/logger.js';export function useFormatCode(){const [_0x3f0d72,_0x1feadc]=useState(![]),[_0x38ea02,_0x2898b1]=useState(![]),[_0x23ff57,_0x1e2917]=useState(''),_0x58cdcd=useCallback(async _0x387c64=>{const _0x347280=a49_0x45c9,_0x10d00b=Date[_0x347280(0x115)](),_0x2a3987=a49_0x32ba92[_0x347280(0x10f)](process[_0x347280(0x10e)](),_0x387c64);_0x1feadc(!![]);try{logger['info'](_0x347280(0x107),_0x347280(0x108),{'projectCode':_0x387c64}),await execa('npx',[_0x347280(0x10b),'--write','.'],{'cwd':_0x2a3987});const _0x5e8855=Date['now']()-_0x10d00b;logger['success']('format','代码格式化完成',_0x5e8855,{'projectCode':_0x387c64});}catch(_0xca5605){const _0x1082ab=Date[_0x347280(0x115)]()-_0x10d00b;logger[_0x347280(0x117)](_0x347280(0x107),_0x347280(0x106),{'projectCode':_0x387c64,'error':_0xca5605 instanceof Error?_0xca5605[_0x347280(0x116)]:String(_0xca5605),'duration':_0x1082ab});throw _0xca5605;}finally{_0x1feadc(![]),_0x2898b1(!![]),_0x1e2917(formatElapsed(_0x10d00b));}},[]);return{'taskName':'格式化代码','finished':_0x38ea02,'loading':_0x3f0d72,'elapsed':_0x23ff57,'doTask':_0x58cdcd};}
@@ -1 +1 @@
1
- function a50_0x29ea(){const _0x496575=['2430664HfCfqA','175gLzGku','安装依赖','145776CfynKU','429FnBzGo','依赖安装失败','1089MtHosR','info','resolve','383720MZLiDt','message','18534loizjY','npm','now','--registry','2PibcIz','3118256pGQtqb','65080BRuyvK','21jUeiTb','install','error','1370070SVcUUf','依赖安装完成','https://registry.npmmirror.com'];a50_0x29ea=function(){return _0x496575;};return a50_0x29ea();}(function(_0x2d67a0,_0x3fc961){const _0x1c60cd=a50_0x3f97,_0x40e3ef=_0x2d67a0();while(!![]){try{const _0x50bddb=parseInt(_0x1c60cd(0x17b))/0x1+-parseInt(_0x1c60cd(0x181))/0x2*(-parseInt(_0x1c60cd(0x187))/0x3)+-parseInt(_0x1c60cd(0x182))/0x4+-parseInt(_0x1c60cd(0x18b))/0x5*(parseInt(_0x1c60cd(0x17d))/0x6)+parseInt(_0x1c60cd(0x184))/0x7*(parseInt(_0x1c60cd(0x18a))/0x8)+-parseInt(_0x1c60cd(0x178))/0x9*(parseInt(_0x1c60cd(0x183))/0xa)+parseInt(_0x1c60cd(0x176))/0xb*(parseInt(_0x1c60cd(0x18d))/0xc);if(_0x50bddb===_0x3fc961)break;else _0x40e3ef['push'](_0x40e3ef['shift']());}catch(_0x2ac455){_0x40e3ef['push'](_0x40e3ef['shift']());}}}(a50_0x29ea,0x86686));function a50_0x3f97(_0x2e29b2,_0x46352c){_0x2e29b2=_0x2e29b2-0x176;const _0x29ea7d=a50_0x29ea();let _0x3f97c4=_0x29ea7d[_0x2e29b2];return _0x3f97c4;}import a50_0x17484c from'node:path';import{useCallback,useState}from'react';import{execa}from'execa';import{formatElapsed}from'./format-elapsed.js';import{logger}from'../utils/logger.js';export function useInstallDependencies(){const _0x157613=a50_0x3f97,[_0x7860a7,_0x36aaa0]=useState(![]),[_0x50b0e2,_0x2d264c]=useState(![]),[_0x26167b,_0x2ac126]=useState(''),_0x4f73f9=useCallback(async _0x52cd1d=>{const _0x33af1a=a50_0x3f97,_0x263963=Date[_0x33af1a(0x17f)](),_0x191194=a50_0x17484c[_0x33af1a(0x17a)](process['cwd'](),_0x52cd1d);_0x36aaa0(!![]),_0x2d264c(![]);const _0x2fc1de=async(_0x3159b7,_0x156099)=>{await execa(_0x3159b7,_0x156099,{'cwd':_0x191194});};try{logger[_0x33af1a(0x179)](_0x33af1a(0x185),'开始安装依赖',{'projectCode':_0x52cd1d,'registry':_0x33af1a(0x189)}),await _0x2fc1de(_0x33af1a(0x17e),['install',_0x33af1a(0x180),'https://registry.npmmirror.com']);const _0x21543e=Date[_0x33af1a(0x17f)]()-_0x263963;logger['success']('install',_0x33af1a(0x188),_0x21543e,{'projectCode':_0x52cd1d});}catch(_0x58c1c5){const _0x3c42a2=Date[_0x33af1a(0x17f)]()-_0x263963;logger[_0x33af1a(0x186)](_0x33af1a(0x185),_0x33af1a(0x177),{'projectCode':_0x52cd1d,'error':_0x58c1c5 instanceof Error?_0x58c1c5[_0x33af1a(0x17c)]:String(_0x58c1c5),'duration':_0x3c42a2});throw _0x58c1c5;}finally{_0x36aaa0(![]),_0x2d264c(!![]),_0x2ac126(formatElapsed(_0x263963));}},[]);return{'taskName':_0x157613(0x18c),'finished':_0x50b0e2,'loading':_0x7860a7,'elapsed':_0x26167b,'doTask':_0x4f73f9};}
1
+ function a50_0x3c94(_0xf90a1c,_0x3f2a17){_0xf90a1c=_0xf90a1c-0xc7;const _0x46e349=a50_0x46e3();let _0x3c9459=_0x46e349[_0xf90a1c];return _0x3c9459;}(function(_0xeed05b,_0x38bf13){const _0x151ecc=a50_0x3c94,_0x538c4e=_0xeed05b();while(!![]){try{const _0x32e047=parseInt(_0x151ecc(0xd4))/0x1+-parseInt(_0x151ecc(0xd9))/0x2*(parseInt(_0x151ecc(0xd7))/0x3)+-parseInt(_0x151ecc(0xcc))/0x4+parseInt(_0x151ecc(0xd8))/0x5+parseInt(_0x151ecc(0xca))/0x6*(-parseInt(_0x151ecc(0xd2))/0x7)+parseInt(_0x151ecc(0xcb))/0x8+parseInt(_0x151ecc(0xd3))/0x9;if(_0x32e047===_0x38bf13)break;else _0x538c4e['push'](_0x538c4e['shift']());}catch(_0x3b06a3){_0x538c4e['push'](_0x538c4e['shift']());}}}(a50_0x46e3,0x2396f));import a50_0x57ee87 from'node:path';import{useCallback,useState}from'react';function a50_0x46e3(){const _0xa0ebb5=['6334neCvTS','cwd','now','开始安装依赖','18DPpUiY','268568bYQqfe','3156YtuDJn','install','info','https://registry.npmmirror.com','依赖安装失败','message','657475trkgPX','109926hVLfro','171193xmlneW','success','安装依赖','3buiBys','1072640mHUTTB'];a50_0x46e3=function(){return _0xa0ebb5;};return a50_0x46e3();}import{execa}from'execa';import{formatElapsed}from'./format-elapsed.js';import{logger}from'../utils/logger.js';export function useInstallDependencies(){const _0x387400=a50_0x3c94,[_0x4a41a3,_0x949fc4]=useState(![]),[_0x411ecc,_0x44aad4]=useState(![]),[_0x3d5ea6,_0x43c061]=useState(''),_0x2376c3=useCallback(async _0x1fc131=>{const _0x2ae04f=a50_0x3c94,_0x56519f=Date[_0x2ae04f(0xc8)](),_0x20ca12=a50_0x57ee87['resolve'](process[_0x2ae04f(0xc7)](),_0x1fc131);_0x949fc4(!![]),_0x44aad4(![]);const _0x2bd081=async(_0x4b21c9,_0x62ec)=>{await execa(_0x4b21c9,_0x62ec,{'cwd':_0x20ca12});};try{logger[_0x2ae04f(0xce)](_0x2ae04f(0xcd),_0x2ae04f(0xc9),{'projectCode':_0x1fc131,'registry':_0x2ae04f(0xcf)}),await _0x2bd081('npm',[_0x2ae04f(0xcd),'--registry',_0x2ae04f(0xcf)]);const _0x449a22=Date[_0x2ae04f(0xc8)]()-_0x56519f;logger[_0x2ae04f(0xd5)](_0x2ae04f(0xcd),'依赖安装完成',_0x449a22,{'projectCode':_0x1fc131});}catch(_0x47ade1){const _0x4bb87e=Date['now']()-_0x56519f;logger['error']('install',_0x2ae04f(0xd0),{'projectCode':_0x1fc131,'error':_0x47ade1 instanceof Error?_0x47ade1[_0x2ae04f(0xd1)]:String(_0x47ade1),'duration':_0x4bb87e});throw _0x47ade1;}finally{_0x949fc4(![]),_0x44aad4(!![]),_0x43c061(formatElapsed(_0x56519f));}},[]);return{'taskName':_0x387400(0xd6),'finished':_0x411ecc,'loading':_0x4a41a3,'elapsed':_0x3d5ea6,'doTask':_0x2376c3};}
package/lib/help.js CHANGED
@@ -1 +1 @@
1
- (function(_0x3bc0d0,_0x351db0){var _0x99d394=a51_0x1508,_0x439137=_0x3bc0d0();while(!![]){try{var _0x338385=parseInt(_0x99d394(0xcf))/0x1+parseInt(_0x99d394(0xca))/0x2+-parseInt(_0x99d394(0xce))/0x3+parseInt(_0x99d394(0xc7))/0x4+-parseInt(_0x99d394(0xc6))/0x5+-parseInt(_0x99d394(0xcb))/0x6+-parseInt(_0x99d394(0xcc))/0x7*(-parseInt(_0x99d394(0xd0))/0x8);if(_0x338385===_0x351db0)break;else _0x439137['push'](_0x439137['shift']());}catch(_0x19941e){_0x439137['push'](_0x439137['shift']());}}}(a51_0x2662,0x74b92));function a51_0x1508(_0x4ad80c,_0x202894){_0x4ad80c=_0x4ad80c-0xc6;var _0x26626a=a51_0x2662();var _0x1508d9=_0x26626a[_0x4ad80c];return _0x1508d9;}import{jsx as a51_0x791eca,jsxs as a51_0x566ace}from'react/jsx-runtime';function a51_0x2662(){var _0x11dcd5=['1176385MABksz','!\x20请指定一个有效的命令。','1522977CZVIgc','356575ujschF','40ZNbuyH','查看可用命令。','1775170pFTVqQ','1188288fphoKa','lovrabet\x20--help','column','1523894lopWkL','5490468ioUaav'];a51_0x2662=function(){return _0x11dcd5;};return a51_0x2662();}import{Box,Text}from'ink';export function Help(){var _0x35d26e=a51_0x1508;return a51_0x566ace(Box,{'flexDirection':_0x35d26e(0xc9),'marginTop':0x1,'marginBottom':0x1,'children':[a51_0x566ace(Box,{'children':[a51_0x791eca(Box,{'width':'1'}),a51_0x791eca(Text,{'children':_0x35d26e(0xcd)})]}),a51_0x566ace(Box,{'marginTop':0x1,'children':[a51_0x791eca(Box,{'width':'1'}),a51_0x566ace(Text,{'children':['\x20\x20','使用']}),a51_0x566ace(Text,{'bold':!![],'color':'green','children':['\x20',_0x35d26e(0xc8),'\x20']}),a51_0x791eca(Text,{'children':_0x35d26e(0xd1)})]})]});}
1
+ function a51_0x2a24(_0xec9c3f,_0x461fdd){_0xec9c3f=_0xec9c3f-0x1de;var _0x163c83=a51_0x163c();var _0x2a240b=_0x163c83[_0xec9c3f];return _0x2a240b;}(function(_0x4a85d5,_0x25a73){var _0x3f2497=a51_0x2a24,_0x34538c=_0x4a85d5();while(!![]){try{var _0x52ecfe=-parseInt(_0x3f2497(0x1e3))/0x1*(-parseInt(_0x3f2497(0x1e6))/0x2)+-parseInt(_0x3f2497(0x1e2))/0x3+-parseInt(_0x3f2497(0x1df))/0x4+-parseInt(_0x3f2497(0x1e9))/0x5*(-parseInt(_0x3f2497(0x1de))/0x6)+parseInt(_0x3f2497(0x1e5))/0x7*(parseInt(_0x3f2497(0x1e7))/0x8)+-parseInt(_0x3f2497(0x1e0))/0x9*(parseInt(_0x3f2497(0x1e1))/0xa)+parseInt(_0x3f2497(0x1e8))/0xb;if(_0x52ecfe===_0x25a73)break;else _0x34538c['push'](_0x34538c['shift']());}catch(_0x4b72a){_0x34538c['push'](_0x34538c['shift']());}}}(a51_0x163c,0x30843));import{jsx as a51_0x5ce73f,jsxs as a51_0x4de4d5}from'react/jsx-runtime';function a51_0x163c(){var _0x306798=['1Onkrfh','green','367801YIDzgG','147094jbKDIz','8SPxNlp','4888312pmwBqS','5XXEGvt','!\x20请指定一个有效的命令。','1842276YrYZmq','831976hQDpiP','3100158SPowtM','10clBDAh','379047mKXDEa'];a51_0x163c=function(){return _0x306798;};return a51_0x163c();}import{Box,Text}from'ink';export function Help(){var _0x2011d6=a51_0x2a24;return a51_0x4de4d5(Box,{'flexDirection':'column','marginTop':0x1,'marginBottom':0x1,'children':[a51_0x4de4d5(Box,{'children':[a51_0x5ce73f(Box,{'width':'1'}),a51_0x5ce73f(Text,{'children':_0x2011d6(0x1ea)})]}),a51_0x4de4d5(Box,{'marginTop':0x1,'children':[a51_0x5ce73f(Box,{'width':'1'}),a51_0x4de4d5(Text,{'children':['\x20\x20','使用']}),a51_0x4de4d5(Text,{'bold':!![],'color':_0x2011d6(0x1e4),'children':['\x20','lovrabet\x20--help','\x20']}),a51_0x5ce73f(Text,{'children':'查看可用命令。'})]})]});}
package/lib/init/main.js CHANGED
@@ -1 +1 @@
1
- (function(_0x14539f,_0x38e7ef){const _0x443af0=a52_0xf997,_0x3b6f7d=_0x14539f();while(!![]){try{const _0x4b93ea=-parseInt(_0x443af0(0x1e4))/0x1*(-parseInt(_0x443af0(0x1d5))/0x2)+-parseInt(_0x443af0(0x1e3))/0x3*(parseInt(_0x443af0(0x1e8))/0x4)+parseInt(_0x443af0(0x1e6))/0x5*(-parseInt(_0x443af0(0x1cf))/0x6)+-parseInt(_0x443af0(0x1bf))/0x7+parseInt(_0x443af0(0x1c9))/0x8+-parseInt(_0x443af0(0x1e2))/0x9+parseInt(_0x443af0(0x1e5))/0xa;if(_0x4b93ea===_0x38e7ef)break;else _0x3b6f7d['push'](_0x3b6f7d['shift']());}catch(_0x29acb0){_0x3b6f7d['push'](_0x3b6f7d['shift']());}}}(a52_0x1f4c,0xed96b));import{jsxs as a52_0x3846f4,jsx as a52_0x21e8f2}from'react/jsx-runtime';function a52_0x1f4c(){const _0x4c2554=['cyan','gray','当前目录已存在\x20.lovrabetrc\x20文件','\x20←\x20','online','ctrl','parse','length','13235238vKorOv','6pKvrpj','163935KRVuWb','48407400EyltIx','2690785WDkZVd','message','3369416oloiVY','cwd','应用代码只能包含字母、数字、-\x20和\x20_','init','setLogPath','package.json','应用代码长度不能超过\x20100\x20个字符','1.0.0','env','8133853pJDFms','utf8','return','创建配置文件失败:\x20','应用代码用于标识您的项目,只能包含字母、数字、-\x20和\x20_','请输入应用代码\x20(AppCode):\x20','version','trim','slice','应用代码不合法','2087024YBATFI','初始化项目配置文件成功','应用代码不能为空','AppCode:\x20','exit','现在您可以使用\x20lovrabet\x20api\x20doc\x20和\x20lovrabet\x20api\x20pull\x20等命令了','18oAskCe','../..','正在初始化配置文件...','delete','column','test','22PlrejR','.lovrabetrc','green','info','error'];a52_0x1f4c=function(){return _0x4c2554;};return a52_0x1f4c();}import{useState,useEffect}from'react';import{Box,Text,useInput}from'ink';import{existsSync,writeFileSync,readFileSync}from'node:fs';import{resolve,join,dirname}from'node:path';function a52_0xf997(_0x2ddc69,_0x485df1){_0x2ddc69=_0x2ddc69-0x1be;const _0x1f4cdf=a52_0x1f4c();let _0xf997be=_0x1f4cdf[_0x2ddc69];return _0xf997be;}import{fileURLToPath}from'node:url';import{logger}from'../utils/logger.js';import{readConfig}from'../utils/config.js';export function Init({appcode:_0x1c9724,env:_0x2f2e2a}){const _0x5306fa=a52_0xf997,[_0x1dbeec,_0x5a4175]=useState(null),[_0x5a0282,_0x3b8818]=useState(![]),[_0x393e04,_0x18a162]=useState(!_0x1c9724),[_0x4755bb,_0x2d6ee0]=useState(''),[_0x393994,_0x1aadfa]=useState(''),[_0x52848b,_0x4fc40b]=useState(_0x1c9724||''),[_0x459fd6]=useState(_0x2f2e2a);function _0x25b2f9(_0x265513){const _0x57b6b4=a52_0xf997;if(_0x265513[_0x57b6b4(0x1e1)]===0x0)return{'valid':![],'message':''};if(_0x265513[_0x57b6b4(0x1e1)]>0x64)return{'valid':![],'message':_0x57b6b4(0x1ee)};const _0x393def=/^[A-Za-z0-9_-]+$/;if(!_0x393def[_0x57b6b4(0x1d4)](_0x265513))return{'valid':![],'message':_0x57b6b4(0x1ea)};return{'valid':!![]};}useInput((_0x48ab39,_0x186b0d)=>{const _0x414baa=a52_0xf997;if(!_0x393e04)return;if(_0x186b0d[_0x414baa(0x1c1)]){if(_0x393994||!_0x4755bb[_0x414baa(0x1c6)]()){_0x1aadfa(_0x414baa(0x1cb));return;}const _0x283a0b=_0x4755bb[_0x414baa(0x1c6)](),{valid:_0x3439e4,message:_0x469bea}=_0x25b2f9(_0x283a0b);if(!_0x3439e4){_0x1aadfa(_0x469bea||_0x414baa(0x1c8));return;}_0x4fc40b(_0x283a0b),_0x18a162(![]);}else{if(_0x186b0d['backspace']||_0x186b0d[_0x414baa(0x1d2)])_0x2d6ee0(_0x545997=>{const _0x412b2e=_0x414baa,_0x4801b2=_0x545997[_0x412b2e(0x1c7)](0x0,-0x1);if(_0x4801b2['length']===0x0)_0x1aadfa('');else{const {valid:_0x2e2fa7,message:_0x4369a4}=_0x25b2f9(_0x4801b2);_0x1aadfa(_0x2e2fa7?'':_0x4369a4||_0x412b2e(0x1c8));}return _0x4801b2;});else _0x186b0d[_0x414baa(0x1df)]&&_0x48ab39==='c'?process[_0x414baa(0x1cd)](0x0):_0x2d6ee0(_0x55b458=>{const _0x356d1f=_0x414baa,_0x2e4924=_0x55b458+_0x48ab39,{valid:_0x53ed96,message:_0x22a019}=_0x25b2f9(_0x2e4924);return _0x1aadfa(_0x53ed96?'':_0x22a019||_0x356d1f(0x1c8)),_0x2e4924;});}},{'isActive':_0x393e04}),useEffect(()=>{const _0x3dbc9d=a52_0xf997;if(!_0x52848b||_0x393e04)return;const _0xb5ec7c=resolve(process[_0x3dbc9d(0x1e9)](),_0x3dbc9d(0x1d6));if(existsSync(_0xb5ec7c)){_0x5a4175(_0x3dbc9d(0x1dc)),setTimeout(()=>process[_0x3dbc9d(0x1cd)](0x1),0x64);return;}try{const _0x5a5b84=fileURLToPath(import.meta.url),_0x5a489c=resolve(dirname(_0x5a5b84),_0x3dbc9d(0x1d0)),_0xd62996=join(_0x5a489c,_0x3dbc9d(0x1ed));let _0x10435a='1.0.0';try{const _0x2bbb42=JSON[_0x3dbc9d(0x1e0)](readFileSync(_0xd62996,_0x3dbc9d(0x1c0)));_0x10435a=_0x2bbb42[_0x3dbc9d(0x1c5)]||_0x3dbc9d(0x1ef);}catch(_0x1fcdaa){}const _0xb4e889=readConfig(),_0x47cdaa=typeof _0xb4e889[_0x3dbc9d(0x1be)]==='string'?_0xb4e889[_0x3dbc9d(0x1be)]:undefined,{app:_0x148fd1,appcode:_0x204875,..._0x2884f5}=_0xb4e889,_0x4740f9={..._0x2884f5,'appcode':_0x52848b,'env':_0x459fd6||_0x47cdaa||_0x3dbc9d(0x1de),'createdAt':new Date()['toLocaleString'](),'version':_0x10435a};writeFileSync(_0xb5ec7c,JSON['stringify'](_0x4740f9,null,0x2),{'encoding':_0x3dbc9d(0x1c0),'mode':0x180}),logger[_0x3dbc9d(0x1ec)](process[_0x3dbc9d(0x1e9)]()),logger[_0x3dbc9d(0x1d8)](_0x3dbc9d(0x1eb),_0x3dbc9d(0x1ca),{'appcode':_0x52848b,'env':_0x4740f9[_0x3dbc9d(0x1be)],'version':_0x4740f9[_0x3dbc9d(0x1c5)],'configPath':_0xb5ec7c}),_0x3b8818(!![]),setTimeout(()=>process[_0x3dbc9d(0x1cd)](0x0),0x64);}catch(_0x4d4b00){logger[_0x3dbc9d(0x1d9)](_0x3dbc9d(0x1eb),'创建配置文件失败',{'error':_0x4d4b00 instanceof Error?_0x4d4b00['message']:String(_0x4d4b00)}),_0x5a4175(_0x3dbc9d(0x1c2)+(_0x4d4b00 instanceof Error?_0x4d4b00[_0x3dbc9d(0x1e7)]:String(_0x4d4b00))),setTimeout(()=>process[_0x3dbc9d(0x1cd)](0x1),0x64);}},[_0x52848b,_0x393e04,_0x459fd6]);if(_0x1dbeec)return a52_0x21e8f2(Box,{'flexDirection':_0x5306fa(0x1d3),'children':a52_0x3846f4(Text,{'color':'red','children':['✗\x20',_0x1dbeec]})});if(_0x393e04)return a52_0x3846f4(Box,{'flexDirection':'column','children':[a52_0x3846f4(Box,{'children':[a52_0x21e8f2(Text,{'color':_0x5306fa(0x1da),'children':_0x5306fa(0x1c4)}),_0x4755bb?a52_0x21e8f2(Text,{'color':'green','children':_0x4755bb}):a52_0x21e8f2(Text,{'color':_0x5306fa(0x1db),'children':'_'}),_0x393994&&a52_0x3846f4(Text,{'color':'red','children':[_0x5306fa(0x1dd),_0x393994]})]}),!_0x393994&&!_0x4755bb&&a52_0x21e8f2(Box,{'children':a52_0x21e8f2(Text,{'color':_0x5306fa(0x1db),'children':_0x5306fa(0x1c3)})})]});if(_0x5a0282)return a52_0x3846f4(Box,{'flexDirection':'column','children':[a52_0x21e8f2(Text,{'color':_0x5306fa(0x1d7),'children':'✓\x20成功在当前目录初始化\x20.lovrabetrc\x20文件'}),a52_0x3846f4(Text,{'color':_0x5306fa(0x1da),'children':[_0x5306fa(0x1cc),_0x52848b]}),a52_0x21e8f2(Text,{'children':_0x5306fa(0x1ce)})]});return a52_0x21e8f2(Box,{'children':a52_0x21e8f2(Text,{'children':_0x5306fa(0x1d1)})});}
1
+ function a52_0x3965(){const _0x401756=['正在初始化配置文件...','应用代码只能包含字母、数字、-\x20和\x20_','当前目录已存在\x20.lovrabetrc\x20文件','64863ilUOfR','✓\x20成功在当前目录初始化\x20.lovrabetrc\x20文件','创建配置文件失败:\x20','1432qUytuA','env','ctrl','19730rstQxJ','1461296bwPyoO','length','package.json','6766120ANlwxA','请输入应用代码\x20(AppCode):\x20','初始化项目配置文件成功','column','string','创建配置文件失败','5031300nTGLht','197qSQoou','stringify','应用代码不合法','delete','parse','gray','trim','exit','utf8','message','toLocaleString','AppCode:\x20','version','应用代码用于标识您的项目,只能包含字母、数字、-\x20和\x20_','init','info','.lovrabetrc','red','4942434fUgQFz','应用代码不能为空','cwd','green','现在您可以使用\x20lovrabet\x20api\x20doc\x20和\x20lovrabet\x20api\x20pull\x20等命令了','setLogPath','12HUDfEj','cyan','error','2451310VMMLqc','\x20←\x20','1.0.0','return'];a52_0x3965=function(){return _0x401756;};return a52_0x3965();}(function(_0x1d58b7,_0x1b4f4c){const _0x4d4d2a=a52_0x3289,_0x2df639=_0x1d58b7();while(!![]){try{const _0x1e1f9b=-parseInt(_0x4d4d2a(0x82))/0x1*(parseInt(_0x4d4d2a(0x77))/0x2)+parseInt(_0x4d4d2a(0x81))/0x3+parseInt(_0x4d4d2a(0x78))/0x4+parseInt(_0x4d4d2a(0x6a))/0x5*(parseInt(_0x4d4d2a(0x67))/0x6)+-parseInt(_0x4d4d2a(0x94))/0x7+-parseInt(_0x4d4d2a(0x74))/0x8*(-parseInt(_0x4d4d2a(0x71))/0x9)+-parseInt(_0x4d4d2a(0x7b))/0xa;if(_0x1e1f9b===_0x1b4f4c)break;else _0x2df639['push'](_0x2df639['shift']());}catch(_0x2a33cd){_0x2df639['push'](_0x2df639['shift']());}}}(a52_0x3965,0xf0f2a));import{jsxs as a52_0x3566f2,jsx as a52_0x497874}from'react/jsx-runtime';import{useState,useEffect}from'react';function a52_0x3289(_0x33b2e1,_0x597525){_0x33b2e1=_0x33b2e1-0x66;const _0x396572=a52_0x3965();let _0x328987=_0x396572[_0x33b2e1];return _0x328987;}import{Box,Text,useInput}from'ink';import{existsSync,writeFileSync,readFileSync}from'node:fs';import{resolve,join,dirname}from'node:path';import{fileURLToPath}from'node:url';import{logger}from'../utils/logger.js';import{readConfig}from'../utils/config.js';export function Init({appcode:_0x5210f2,env:_0x236711}){const _0x522d9e=a52_0x3289,[_0x59c55a,_0x8033bb]=useState(null),[_0x315cf2,_0x27230b]=useState(![]),[_0x12b65a,_0x40f2de]=useState(!_0x5210f2),[_0x3d5898,_0x922acc]=useState(''),[_0x2cf35d,_0x254514]=useState(''),[_0x575a24,_0x49beb9]=useState(_0x5210f2||''),[_0x6f5ec2]=useState(_0x236711);function _0x3004b0(_0x51d24d){const _0x4047fd=a52_0x3289;if(_0x51d24d[_0x4047fd(0x79)]===0x0)return{'valid':![],'message':''};if(_0x51d24d[_0x4047fd(0x79)]>0x64)return{'valid':![],'message':'应用代码长度不能超过\x20100\x20个字符'};const _0x39d04c=/^[A-Za-z0-9_-]+$/;if(!_0x39d04c['test'](_0x51d24d))return{'valid':![],'message':_0x4047fd(0x6f)};return{'valid':!![]};}useInput((_0xfc3f66,_0x41dd6f)=>{const _0x16b4b8=a52_0x3289;if(!_0x12b65a)return;if(_0x41dd6f[_0x16b4b8(0x6d)]){if(_0x2cf35d||!_0x3d5898[_0x16b4b8(0x88)]()){_0x254514(_0x16b4b8(0x95));return;}const _0x4fabbb=_0x3d5898[_0x16b4b8(0x88)](),{valid:_0x31f2bb,message:_0x2b8069}=_0x3004b0(_0x4fabbb);if(!_0x31f2bb){_0x254514(_0x2b8069||_0x16b4b8(0x84));return;}_0x49beb9(_0x4fabbb),_0x40f2de(![]);}else{if(_0x41dd6f['backspace']||_0x41dd6f[_0x16b4b8(0x85)])_0x922acc(_0x24e3a1=>{const _0x3a1892=_0x16b4b8,_0x54df9d=_0x24e3a1['slice'](0x0,-0x1);if(_0x54df9d[_0x3a1892(0x79)]===0x0)_0x254514('');else{const {valid:_0x3b541e,message:_0x31c20d}=_0x3004b0(_0x54df9d);_0x254514(_0x3b541e?'':_0x31c20d||'应用代码不合法');}return _0x54df9d;});else _0x41dd6f[_0x16b4b8(0x76)]&&_0xfc3f66==='c'?process[_0x16b4b8(0x89)](0x0):_0x922acc(_0x33ed59=>{const _0x45153d=_0x16b4b8,_0x165275=_0x33ed59+_0xfc3f66,{valid:_0x284021,message:_0x324cb3}=_0x3004b0(_0x165275);return _0x254514(_0x284021?'':_0x324cb3||_0x45153d(0x84)),_0x165275;});}},{'isActive':_0x12b65a}),useEffect(()=>{const _0x2f0039=a52_0x3289;if(!_0x575a24||_0x12b65a)return;const _0x1f3ce6=resolve(process[_0x2f0039(0x96)](),_0x2f0039(0x92));if(existsSync(_0x1f3ce6)){_0x8033bb(_0x2f0039(0x70)),setTimeout(()=>process[_0x2f0039(0x89)](0x1),0x64);return;}try{const _0x8375c6=fileURLToPath(import.meta.url),_0x4c0d3b=resolve(dirname(_0x8375c6),'../..'),_0xd4660f=join(_0x4c0d3b,_0x2f0039(0x7a));let _0x11d6d0=_0x2f0039(0x6c);try{const _0xb46de6=JSON[_0x2f0039(0x86)](readFileSync(_0xd4660f,_0x2f0039(0x8a)));_0x11d6d0=_0xb46de6[_0x2f0039(0x8e)]||_0x2f0039(0x6c);}catch(_0x527aee){}const _0x14b1d8=readConfig(),_0x1e433a=typeof _0x14b1d8[_0x2f0039(0x75)]===_0x2f0039(0x7f)?_0x14b1d8[_0x2f0039(0x75)]:undefined,{app:_0x131603,appcode:_0x25603f,..._0x127e44}=_0x14b1d8,_0x15e2dc={..._0x127e44,'appcode':_0x575a24,'env':_0x6f5ec2||_0x1e433a||'online','createdAt':new Date()[_0x2f0039(0x8c)](),'version':_0x11d6d0};writeFileSync(_0x1f3ce6,JSON[_0x2f0039(0x83)](_0x15e2dc,null,0x2),{'encoding':_0x2f0039(0x8a),'mode':0x180}),logger[_0x2f0039(0x66)](process[_0x2f0039(0x96)]()),logger[_0x2f0039(0x91)](_0x2f0039(0x90),_0x2f0039(0x7d),{'appcode':_0x575a24,'env':_0x15e2dc[_0x2f0039(0x75)],'version':_0x15e2dc['version'],'configPath':_0x1f3ce6}),_0x27230b(!![]),setTimeout(()=>process['exit'](0x0),0x64);}catch(_0x20354d){logger[_0x2f0039(0x69)](_0x2f0039(0x90),_0x2f0039(0x80),{'error':_0x20354d instanceof Error?_0x20354d['message']:String(_0x20354d)}),_0x8033bb(_0x2f0039(0x73)+(_0x20354d instanceof Error?_0x20354d[_0x2f0039(0x8b)]:String(_0x20354d))),setTimeout(()=>process[_0x2f0039(0x89)](0x1),0x64);}},[_0x575a24,_0x12b65a,_0x6f5ec2]);if(_0x59c55a)return a52_0x497874(Box,{'flexDirection':'column','children':a52_0x3566f2(Text,{'color':_0x522d9e(0x93),'children':['✗\x20',_0x59c55a]})});if(_0x12b65a)return a52_0x3566f2(Box,{'flexDirection':_0x522d9e(0x7e),'children':[a52_0x3566f2(Box,{'children':[a52_0x497874(Text,{'color':'cyan','children':_0x522d9e(0x7c)}),_0x3d5898?a52_0x497874(Text,{'color':_0x522d9e(0x97),'children':_0x3d5898}):a52_0x497874(Text,{'color':_0x522d9e(0x87),'children':'_'}),_0x2cf35d&&a52_0x3566f2(Text,{'color':_0x522d9e(0x93),'children':[_0x522d9e(0x6b),_0x2cf35d]})]}),!_0x2cf35d&&!_0x3d5898&&a52_0x497874(Box,{'children':a52_0x497874(Text,{'color':_0x522d9e(0x87),'children':_0x522d9e(0x8f)})})]});if(_0x315cf2)return a52_0x3566f2(Box,{'flexDirection':_0x522d9e(0x7e),'children':[a52_0x497874(Text,{'color':_0x522d9e(0x97),'children':_0x522d9e(0x72)}),a52_0x3566f2(Text,{'color':_0x522d9e(0x68),'children':[_0x522d9e(0x8d),_0x575a24]}),a52_0x497874(Text,{'children':_0x522d9e(0x98)})]});return a52_0x497874(Box,{'children':a52_0x497874(Text,{'children':_0x522d9e(0x6e)})});}
@@ -1 +1 @@
1
- const a53_0x26e317=a53_0x4753;(function(_0x4ab9d6,_0x5ac830){const _0x4e1adc=a53_0x4753,_0x5ded75=_0x4ab9d6();while(!![]){try{const _0x1aa05e=-parseInt(_0x4e1adc(0xf4))/0x1*(parseInt(_0x4e1adc(0x102))/0x2)+-parseInt(_0x4e1adc(0xec))/0x3+parseInt(_0x4e1adc(0xcc))/0x4+parseInt(_0x4e1adc(0xc4))/0x5+-parseInt(_0x4e1adc(0xd2))/0x6*(-parseInt(_0x4e1adc(0xe2))/0x7)+parseInt(_0x4e1adc(0x11b))/0x8*(parseInt(_0x4e1adc(0xdd))/0x9)+parseInt(_0x4e1adc(0xf5))/0xa;if(_0x1aa05e===_0x5ac830)break;else _0x5ded75['push'](_0x5ded75['shift']());}catch(_0x36aaf4){_0x5ded75['push'](_0x5ded75['shift']());}}}(a53_0x383c,0x82089));import{jsx as a53_0x40ce12,jsxs as a53_0x244792,Fragment as a53_0x52d9da}from'react/jsx-runtime';import{useState,useEffect}from'react';import{Text,Box,useInput,useApp}from'ink';function a53_0x383c(){const _0x59afd4=['\x20\x20AppCode:\x20','\x20-e\x20LOVRABET_ENV=','\x20-e\x20LOVRABET_APP_CODE=','.cursor','object','configuring','*\x20请选择要配置的\x20IDE:','\x20\x20⚠️','add','Cursor','复制\x20Cursor\x20Rules\x20文件失败','agents.md\x20模板文件不存在','\x20\x20}','warn','upArrow','按任意键退出...','cwd','delete','appcode','已选择\x20IDE','\x20\x20\x20\x20\x20\x20\x20\x20\x22LOVRABET_ENV\x22:\x20\x22','claude\x20mcp\x20add\x20','正在配置\x20MCP\x20服务器...','has','未找到\x20appcode\x20配置','其他\x20IDE\x20配置指引','⚠️\x20\x20未找到\x20appcode\x20配置','message','blue','25805koWXEa','error','size','agents.md','mcp.json','../../templates/rules/lovrabet_rules.mdc.tpl','length','description','706852hEtTLm','\x20\x20\x20请先运行\x20\x27lovrabet\x20init\x20--appcode\x20<your-app-code>\x27\x20初始化项目配置\x0a','label','\x20\x20重启\x20Claude\x20Code\x20后生效\x0a','\x20\x20\x20\x20\x20\x20\x20\x20\x22LOVRABET_APP_CODE\x22:\x20\x22','manual','66SqYPmU','info','some','\x20\x20重启\x20Cursor\x20后生效\x0a','success','请至少选择一个\x20IDE','复制\x20agents.md\x20文件失败','\x20\x20\x22mcpServers\x22:\x20{','filter','cursor','env','70299zrVOqS','white','mcp-install','online','\x20\x20环境:\x20','1246bFvIKK','其他\x20IDE','claude','includes','parse','✓\x20MCP\x20配置完成!','done','\x20\x20✓','[\x20]','@lovrabet/dataset-mcp-server@latest','1666854DnPvAG','return','status','✓\x20创建\x20Cursor\x20Rules\x20文件:\x20.cursor/rules/lovrabet_rules.mdc','\x20\x20Cursor\x20Rules\x20文件已存在,跳过\x0a','*\x20配置\x20Lovrabet\x20MCP\x20服务器','\x0a📋\x20请执行以下命令配置\x20Claude\x20Code\x20MCP:\x0a','\x20\x20✗','103qJjXYL','14994470DrjByb',',\x20env=','every','已写入\x20.cursor/mcp.json','cyan','rules','其他\x20IDE\x20配置指引已显示','column','请手动执行','配置指引已显示','npx','gray','ide','15346zDZjVM','⚠️\x20配置需要手动完成','stringify','utf-8','yellow','请手动执行上述命令','Cursor\x20IDE','\x22:\x20{','join','mcpServers','app','↑/↓:\x20移动光标\x20空格:\x20切换选中\x20a:\x20全选\x20i/r:\x20反选\x20q:\x20退出\x20Enter:\x20确认','log','[✓]','lovrabet_rules.mdc','Claude\x20Code\x20MCP\x20命令已生成','Claude\x20Code\x20CLI','value','\x20\x20\x20\x20\x20\x20\x22env\x22:\x20{','✓\x20创建\x20agents.md\x20到项目根目录\x0a','other','\x20\x20agents.md\x20已存在,跳过\x0a','green','name','需要先配置\x20appcode','200wlsElH','selecting','📚\x20详细配置指南:\x20https://help.yuntoo.com/mcp/config-guide\x0a','from','Cursor\x20Rules\x20模板文件不存在','\x20\x20\x20\x20\x20\x20\x22command\x22:\x20\x22','map','\x20\x20\x20\x20\x20\x20\x22args\x22:\x20['];a53_0x383c=function(){return _0x59afd4;};return a53_0x383c();}import{existsSync,mkdirSync,writeFileSync,readFileSync,copyFileSync}from'node:fs';import{join,resolve,dirname}from'node:path';import{fileURLToPath}from'node:url';function a53_0x4753(_0x108ecd,_0x2d21ac){_0x108ecd=_0x108ecd-0xa8;const _0x383c9f=a53_0x383c();let _0x4753d7=_0x383c9f[_0x108ecd];return _0x4753d7;}import{readConfig}from'../utils/config.js';import{logger}from'../utils/logger.js';const __dirname=dirname(fileURLToPath(import.meta.url)),IDE_CONFIGS={'cursor':{'name':a53_0x26e317(0xb0),'description':a53_0x26e317(0x108)},'claude':{'name':'Claude\x20Code','description':a53_0x26e317(0x112)},'other':{'name':a53_0x26e317(0xe3),'description':a53_0x26e317(0xc0)}},IDE_LIST=[a53_0x26e317(0xdb),a53_0x26e317(0xe4),'other'],MCP_SERVER_NAME='lovrabet-dataset',MCP_COMMAND=a53_0x26e317(0xff),MCP_ARGS=[a53_0x26e317(0xeb)];export function McpInstallUI({preselectedIDEs:preselectedIDEs=[]}){const _0x51227d=a53_0x26e317,{exit:_0x232a7e}=useApp(),[_0x11259f,_0x17268b]=useState(_0x51227d(0x11c)),[_0x1aef9a,_0xb91f20]=useState(new Set(preselectedIDEs[_0x51227d(0x121)](_0x2e3dc2=>IDE_LIST['indexOf'](_0x2e3dc2))['filter'](_0x17a276=>_0x17a276>=0x0))),[_0x48f653,_0x41befe]=useState(0x0),[_0x1bf2bd,_0x50eeb8]=useState([]),[_0x107bee,_0x2f1544]=useState([]),[_0x3c44a1,_0x3697e6]=useState('');useEffect(()=>{const _0x1b5dae=_0x51227d;preselectedIDEs[_0x1b5dae(0xca)]>0x0&&_0x1aef9a[_0x1b5dae(0xc6)]>0x0&&_0x24757d();},[]),useInput((_0x207bc4,_0x2930d0)=>{const _0x341a48=_0x51227d;if(_0x11259f===_0x341a48(0x11c)){if(_0x2930d0[_0x341a48(0xb5)]){_0x41befe(_0x417dad=>_0x417dad>0x0?_0x417dad-0x1:IDE_LIST[_0x341a48(0xca)]-0x1);return;}if(_0x2930d0['downArrow']){_0x41befe(_0x38a3b9=>_0x38a3b9<IDE_LIST[_0x341a48(0xca)]-0x1?_0x38a3b9+0x1:0x0);return;}if(_0x207bc4==='\x20'){_0xb91f20(_0x1bbbed=>{const _0x195f2f=_0x341a48,_0x591e3b=new Set(_0x1bbbed);return _0x591e3b[_0x195f2f(0xbe)](_0x48f653)?_0x591e3b[_0x195f2f(0xb8)](_0x48f653):_0x591e3b[_0x195f2f(0xaf)](_0x48f653),_0x591e3b;});return;}if(_0x207bc4==='a'||_0x207bc4==='A'){_0xb91f20(new Set(IDE_LIST[_0x341a48(0x121)]((_0x55a137,_0x449c67)=>_0x449c67)));return;}if(_0x207bc4==='i'||_0x207bc4==='I'||_0x207bc4==='r'||_0x207bc4==='R'){_0xb91f20(_0xbeb1cb=>{const _0x535c0e=_0x341a48,_0x562c71=new Set();for(let _0x3316fa=0x0;_0x3316fa<IDE_LIST[_0x535c0e(0xca)];_0x3316fa++){!_0xbeb1cb[_0x535c0e(0xbe)](_0x3316fa)&&_0x562c71[_0x535c0e(0xaf)](_0x3316fa);}return _0x562c71;});return;}if(_0x207bc4==='q'||_0x207bc4==='Q'){_0x232a7e();return;}if(_0x2930d0[_0x341a48(0xed)]){if(_0x1aef9a[_0x341a48(0xc6)]===0x0){_0x3697e6(_0x341a48(0xd7));return;}_0x24757d();return;}}if(_0x11259f==='done'){_0x232a7e();return;}});async function _0x24757d(){const _0xeeac6f=_0x51227d,_0x53eace=Array[_0xeeac6f(0x11e)](_0x1aef9a)[_0xeeac6f(0x121)](_0x17cb1b=>IDE_LIST[_0x17cb1b])[_0xeeac6f(0xda)](_0x57a8d0=>_0x57a8d0!==undefined);_0x50eeb8([{'label':_0xeeac6f(0xba),'value':_0x1aef9a[_0xeeac6f(0xc6)]+'\x20个'}]),_0x17268b('configuring');const _0x3d1603=[];for(const _0x1bff3c of _0x53eace){try{const _0xa6d16a=await configureMcp(_0x1bff3c),_0x542428=_0xa6d16a[_0xeeac6f(0xe5)](_0xeeac6f(0xfd));_0x3d1603['push']({'ide':IDE_CONFIGS[_0x1bff3c][_0xeeac6f(0x119)],'status':_0x542428?_0xeeac6f(0xd1):_0xeeac6f(0xd6),'message':_0xa6d16a});}catch(_0x377b29){_0x3d1603['push']({'ide':IDE_CONFIGS[_0x1bff3c][_0xeeac6f(0x119)],'status':_0xeeac6f(0xc5),'message':_0x377b29 instanceof Error?_0x377b29[_0xeeac6f(0xc2)]:String(_0x377b29)});}}_0x2f1544(_0x3d1603),_0x17268b('done'),setTimeout(()=>{_0x232a7e();},0x1388);}return a53_0x244792(Box,{'flexDirection':'column','marginTop':0x1,'children':[_0x11259f===_0x51227d(0x11c)&&a53_0x244792(a53_0x52d9da,{'children':[a53_0x40ce12(Box,{'children':a53_0x40ce12(Text,{'color':_0x51227d(0xf9),'children':_0x51227d(0xf1)})}),_0x3c44a1&&a53_0x40ce12(Box,{'marginTop':0x1,'children':a53_0x244792(Text,{'color':'red','children':['✗\x20',_0x3c44a1]})}),a53_0x244792(Box,{'marginTop':0x1,'flexDirection':_0x51227d(0xfc),'children':[a53_0x40ce12(Text,{'bold':!![],'children':_0x51227d(0xad)}),IDE_LIST[_0x51227d(0x121)]((_0x17ed64,_0x19f2d8)=>{const _0x2553f4=_0x51227d,_0x3a2738=_0x48f653===_0x19f2d8,_0x4cbb55=_0x1aef9a[_0x2553f4(0xbe)](_0x19f2d8);return a53_0x40ce12(Box,{'children':a53_0x244792(Text,{'backgroundColor':_0x3a2738?_0x2553f4(0xc3):undefined,'color':_0x3a2738?'white':undefined,'children':['\x20\x20',_0x4cbb55?_0x2553f4(0x10f):_0x2553f4(0xea),'\x20',IDE_CONFIGS[_0x17ed64]['name'],'\x20',a53_0x244792(Text,{'color':_0x3a2738?'white':'gray','dimColor':!_0x3a2738,'children':['-\x20',IDE_CONFIGS[_0x17ed64][_0x2553f4(0xcb)]]})]})},_0x17ed64);}),a53_0x40ce12(Box,{'marginTop':0x1,'children':a53_0x244792(Text,{'color':_0x51227d(0x100),'children':['\x20',_0x51227d(0x10d)]})})]})]}),_0x11259f===_0x51227d(0xac)&&a53_0x244792(a53_0x52d9da,{'children':[_0x1bf2bd[_0x51227d(0x121)]((_0xf57130,_0x1bed18)=>a53_0x244792(Box,{'children':[a53_0x244792(Text,{'color':'green','children':['√\x20',_0xf57130[_0x51227d(0xce)],':\x20']}),a53_0x40ce12(Text,{'color':_0x51227d(0xf9),'children':_0xf57130[_0x51227d(0x113)]})]},_0x1bed18)),a53_0x40ce12(Box,{'marginTop':0x1,'children':a53_0x40ce12(Text,{'children':_0x51227d(0xbd)})})]}),_0x11259f===_0x51227d(0xe8)&&a53_0x244792(a53_0x52d9da,{'children':[a53_0x40ce12(Box,{'children':_0x107bee[_0x51227d(0xf7)](_0x22b918=>_0x22b918[_0x51227d(0xee)]===_0x51227d(0xd6))?a53_0x40ce12(Text,{'color':_0x51227d(0x118),'children':_0x51227d(0xe7)}):_0x107bee[_0x51227d(0xd4)](_0x3a7d99=>_0x3a7d99[_0x51227d(0xee)]==='success')?a53_0x40ce12(Text,{'color':_0x51227d(0x106),'children':'⚠️\x20部分配置需要手动完成'}):a53_0x40ce12(Text,{'color':_0x51227d(0x106),'children':_0x51227d(0x103)})}),_0x107bee['map']((_0x119ccd,_0x588ecc)=>a53_0x244792(Box,{'children':[a53_0x244792(Text,{'color':_0x119ccd[_0x51227d(0xee)]==='success'?_0x51227d(0x118):_0x119ccd[_0x51227d(0xee)]===_0x51227d(0xd1)?'yellow':'red','children':[_0x119ccd['status']===_0x51227d(0xd6)?_0x51227d(0xe9):_0x119ccd[_0x51227d(0xee)]===_0x51227d(0xd1)?_0x51227d(0xae):_0x51227d(0xf3),'\x20',_0x119ccd[_0x51227d(0x101)],':','\x20']}),a53_0x40ce12(Text,{'color':_0x119ccd[_0x51227d(0xee)]==='success'?_0x51227d(0xde):_0x119ccd[_0x51227d(0xee)]==='manual'?'yellow':'red','children':_0x119ccd[_0x51227d(0xc2)]})]},_0x588ecc)),a53_0x40ce12(Box,{'marginTop':0x1,'children':a53_0x40ce12(Text,{'color':_0x51227d(0x100),'children':_0x51227d(0xb6)})})]})]});}async function configureMcp(_0x5cacda){const _0x32b753=a53_0x26e317;switch(_0x5cacda){case'cursor':return await configureCursorMcp();case _0x32b753(0xe4):return await configureClaudeMcp();case _0x32b753(0x116):return await showOtherGuide();default:throw new Error('不支持的\x20IDE:\x20'+_0x5cacda);}}async function configureCursorMcp(){const _0x3ac656=a53_0x26e317,_0x2458be=readConfig(),_0x117539=_0x2458be[_0x3ac656(0xb9)]||_0x2458be[_0x3ac656(0x10c)],_0x52376c=_0x2458be[_0x3ac656(0xdc)]||_0x3ac656(0xe0);if(!_0x117539)return console[_0x3ac656(0x10e)](_0x3ac656(0xc1)),console[_0x3ac656(0x10e)](_0x3ac656(0xcd)),logger['warn'](_0x3ac656(0xdf),_0x3ac656(0xbf)),_0x3ac656(0x11a);const _0x4ddac8={'LOVRABET_APP_CODE':String(_0x117539)};_0x52376c!==_0x3ac656(0xe0)&&(_0x4ddac8['LOVRABET_ENV']=String(_0x52376c));const _0x3b0a41={'command':MCP_COMMAND,'args':MCP_ARGS,'env':_0x4ddac8},_0x55a447=join(process[_0x3ac656(0xb7)](),'.cursor',_0x3ac656(0xc8)),_0x5589e4=join(process['cwd'](),_0x3ac656(0xaa));!existsSync(_0x5589e4)&&mkdirSync(_0x5589e4,{'recursive':!![]});let _0x3bac4f={'mcpServers':{}};if(existsSync(_0x55a447))try{const _0x231d4f=readFileSync(_0x55a447,_0x3ac656(0x105));_0x3bac4f=JSON[_0x3ac656(0xe6)](_0x231d4f);}catch{}(!_0x3bac4f[_0x3ac656(0x10b)]||typeof _0x3bac4f['mcpServers']!==_0x3ac656(0xab))&&(_0x3bac4f[_0x3ac656(0x10b)]={});_0x3bac4f['mcpServers'][MCP_SERVER_NAME]=_0x3b0a41,writeFileSync(_0x55a447,JSON[_0x3ac656(0x104)](_0x3bac4f,null,0x2),_0x3ac656(0x105)),logger['info'](_0x3ac656(0xdf),'Cursor\x20MCP\x20配置成功',{'appcode':_0x117539,'env':_0x52376c,'path':_0x55a447}),console[_0x3ac656(0x10e)]('✓\x20已写入\x20.cursor/mcp.json'),console[_0x3ac656(0x10e)](_0x3ac656(0x123)+_0x117539);_0x52376c!==_0x3ac656(0xe0)&&console[_0x3ac656(0x10e)](_0x3ac656(0xe1)+_0x52376c);console[_0x3ac656(0x10e)](_0x3ac656(0xd5));const _0x2b5730=join(_0x5589e4,_0x3ac656(0xfa)),_0x2afb4d=join(_0x2b5730,_0x3ac656(0x110));if(!existsSync(_0x2afb4d))try{!existsSync(_0x2b5730)&&mkdirSync(_0x2b5730,{'recursive':!![]});const _0x1a95d6=resolve(__dirname,_0x3ac656(0xc9));existsSync(_0x1a95d6)?(copyFileSync(_0x1a95d6,_0x2afb4d),logger[_0x3ac656(0xd3)](_0x3ac656(0xdf),'创建\x20Cursor\x20Rules\x20文件',{'from':_0x1a95d6,'to':_0x2afb4d}),console[_0x3ac656(0x10e)](_0x3ac656(0xef))):logger[_0x3ac656(0xb4)](_0x3ac656(0xdf),_0x3ac656(0x11f),{'templatePath':_0x1a95d6});}catch(_0x1a0af2){logger[_0x3ac656(0xc5)](_0x3ac656(0xdf),_0x3ac656(0xb1),{'error':_0x1a0af2 instanceof Error?_0x1a0af2[_0x3ac656(0xc2)]:String(_0x1a0af2)});}else console[_0x3ac656(0x10e)](_0x3ac656(0xf0));return _0x3ac656(0xf8);}async function configureClaudeMcp(){const _0x34486d=a53_0x26e317,_0x4fcd02=readConfig(),_0x532a9f=_0x4fcd02[_0x34486d(0xb9)]||_0x4fcd02[_0x34486d(0x10c)],_0x10a64e=_0x4fcd02['env']||_0x34486d(0xe0);if(!_0x532a9f)return console[_0x34486d(0x10e)](_0x34486d(0xc1)),console[_0x34486d(0x10e)](_0x34486d(0xcd)),logger[_0x34486d(0xb4)]('mcp-install','未找到\x20appcode\x20配置'),_0x34486d(0x11a);let _0x153cbc=_0x34486d(0xbc)+MCP_SERVER_NAME+'\x20'+MCP_COMMAND+'\x20'+MCP_ARGS[_0x34486d(0x10a)]('\x20')+_0x34486d(0xa9)+_0x532a9f;_0x10a64e!=='online'&&(_0x153cbc+=_0x34486d(0xa8)+_0x10a64e);console[_0x34486d(0x10e)](_0x34486d(0xf2)),console[_0x34486d(0x10e)]('\x20\x20'+_0x153cbc+'\x0a'),console[_0x34486d(0x10e)]('配置信息:'),console[_0x34486d(0x10e)](_0x34486d(0x123)+_0x532a9f);_0x10a64e!==_0x34486d(0xe0)&&console[_0x34486d(0x10e)]('\x20\x20环境:\x20'+_0x10a64e);console['log'](_0x34486d(0xcf)),logger[_0x34486d(0xd3)](_0x34486d(0xdf),_0x34486d(0x111),{'command':_0x153cbc,'appcode':_0x532a9f,'env':_0x10a64e});const _0xc0c27d=join(process[_0x34486d(0xb7)](),_0x34486d(0xc7));if(!existsSync(_0xc0c27d))try{const _0x41f255=resolve(__dirname,_0x34486d(0xc9));if(existsSync(_0x41f255)){const _0x5d3405=readFileSync(_0x41f255,_0x34486d(0x105));writeFileSync(_0xc0c27d,_0x5d3405,_0x34486d(0x105)),logger['info'](_0x34486d(0xdf),'创建\x20agents.md\x20文件',{'from':_0x41f255,'to':_0xc0c27d}),console['log'](_0x34486d(0x115));}else logger[_0x34486d(0xb4)](_0x34486d(0xdf),_0x34486d(0xb2),{'templatePath':_0x41f255});}catch(_0x2a19fc){logger[_0x34486d(0xc5)](_0x34486d(0xdf),_0x34486d(0xd8),{'error':_0x2a19fc instanceof Error?_0x2a19fc['message']:String(_0x2a19fc)});}else console[_0x34486d(0x10e)](_0x34486d(0x117));return _0x34486d(0x107);}async function showOtherGuide(){const _0xae9238=a53_0x26e317,_0x44a207=readConfig(),_0xbc013c=_0x44a207[_0xae9238(0xb9)]||_0x44a207['app'],_0x2d7b82=_0x44a207[_0xae9238(0xdc)]||_0xae9238(0xe0);if(!_0xbc013c)return console[_0xae9238(0x10e)]('⚠️\x20\x20未找到\x20appcode\x20配置'),console['log'](_0xae9238(0xcd)),logger['warn'](_0xae9238(0xdf),_0xae9238(0xbf)),_0xae9238(0x11a);return console['log']('\x0a📋\x20Lovrabet\x20MCP\x20服务器配置\x0a'),console[_0xae9238(0x10e)]('配置信息:\x20appcode='+_0xbc013c+_0xae9238(0xf6)+_0x2d7b82+'\x0a'),console['log']('{'),console[_0xae9238(0x10e)](_0xae9238(0xd9)),console[_0xae9238(0x10e)]('\x20\x20\x20\x20\x22'+MCP_SERVER_NAME+_0xae9238(0x109)),console[_0xae9238(0x10e)](_0xae9238(0x120)+MCP_COMMAND+'\x22,'),console['log'](_0xae9238(0x122)+MCP_ARGS[_0xae9238(0x121)](_0x2bde39=>'\x22'+_0x2bde39+'\x22')[_0xae9238(0x10a)](',\x20')+'],'),console[_0xae9238(0x10e)](_0xae9238(0x114)),console[_0xae9238(0x10e)](_0xae9238(0xd0)+_0xbc013c+'\x22,'),_0x2d7b82!=='online'&&console['log'](_0xae9238(0xbb)+_0x2d7b82+'\x22,'),console['log']('\x20\x20\x20\x20\x20\x20}'),console[_0xae9238(0x10e)]('\x20\x20\x20\x20}'),console[_0xae9238(0x10e)](_0xae9238(0xb3)),console['log']('}\x0a'),console[_0xae9238(0x10e)](_0xae9238(0x11d)),logger[_0xae9238(0xd3)](_0xae9238(0xdf),_0xae9238(0xfb),{'appcode':_0xbc013c,'env':_0x2d7b82}),_0xae9238(0xfe);}
1
+ const a53_0x2c5c33=a53_0x4435;(function(_0x3d63b8,_0x4e9f9e){const _0x2e6fae=a53_0x4435,_0x509945=_0x3d63b8();while(!![]){try{const _0x573cb7=parseInt(_0x2e6fae(0x136))/0x1+parseInt(_0x2e6fae(0x127))/0x2*(-parseInt(_0x2e6fae(0x130))/0x3)+parseInt(_0x2e6fae(0x155))/0x4*(parseInt(_0x2e6fae(0x183))/0x5)+-parseInt(_0x2e6fae(0x191))/0x6+parseInt(_0x2e6fae(0x160))/0x7*(-parseInt(_0x2e6fae(0x15a))/0x8)+-parseInt(_0x2e6fae(0x18c))/0x9+-parseInt(_0x2e6fae(0x17b))/0xa*(-parseInt(_0x2e6fae(0x15e))/0xb);if(_0x573cb7===_0x4e9f9e)break;else _0x509945['push'](_0x509945['shift']());}catch(_0x530450){_0x509945['push'](_0x509945['shift']());}}}(a53_0x4ffc,0xd19d2));import{jsx as a53_0x406ca3,jsxs as a53_0xf9a21b,Fragment as a53_0x285acc}from'react/jsx-runtime';import{useState,useEffect}from'react';function a53_0x4435(_0x234b57,_0x3ae40e){_0x234b57=_0x234b57-0x126;const _0x4ffc2f=a53_0x4ffc();let _0x443590=_0x4ffc2f[_0x234b57];return _0x443590;}import{Text,Box,useInput,useApp}from'ink';function a53_0x4ffc(){const _0x4f60f0=['add','mcp.json','Cursor','21cIcpHa','from','size','join','cyan','⚠️\x20部分配置需要手动完成','523156laltrf','配置信息:','cursor','\x22:\x20{','manual','\x20\x20✗','Claude\x20Code\x20MCP\x20命令已生成','message','has','yellow',',\x20env=','.cursor','blue','error','info','app','\x20-e\x20LOVRABET_ENV=','done','delete','mcp-install','online','\x20\x20⚠️','status','claude','gray','\x20\x20\x20\x20\x22','utf-8','agents.md','配置指引已显示','\x20\x20\x20\x20\x20\x20\x20\x20\x22LOVRABET_APP_CODE\x22:\x20\x22','env','1729664ohDTOB','未找到\x20appcode\x20配置','请手动执行上述命令','创建\x20Cursor\x20Rules\x20文件','已写入\x20.cursor/mcp.json','2642504VYlNwJ','\x20\x20重启\x20Claude\x20Code\x20后生效\x0a','\x20\x20AppCode:\x20','ide','601084pKLiXj','✓\x20创建\x20Cursor\x20Rules\x20文件:\x20.cursor/rules/lovrabet_rules.mdc','14nSxDst','cwd','some','name','length','white','push','*\x20请选择要配置的\x20IDE:','\x20\x20\x22mcpServers\x22:\x20{','\x20\x20}','red','LOVRABET_ENV','filter','return','📚\x20详细配置指南:\x20https://help.yuntoo.com/mcp/config-guide\x0a','\x20-e\x20LOVRABET_APP_CODE=','column','配置信息:\x20appcode=','需要先配置\x20appcode','\x20\x20重启\x20Cursor\x20后生效\x0a','\x20\x20agents.md\x20已存在,跳过\x0a','configuring','npx','label','[\x20]','includes','lovrabet-dataset','430yQGddg','\x20\x20\x20\x20}','value','请至少选择一个\x20IDE','log','\x20\x20Cursor\x20Rules\x20文件已存在,跳过\x0a','../../templates/rules/lovrabet_rules.mdc.tpl','\x20\x20环境:\x20','10PxXdLu','appcode','⚠️\x20配置需要手动完成','*\x20配置\x20Lovrabet\x20MCP\x20服务器','⚠️\x20\x20未找到\x20appcode\x20配置','rules','\x20\x20\x20\x20\x20\x20\x22env\x22:\x20{','Claude\x20Code\x20CLI','Cursor\x20Rules\x20模板文件不存在','4241394BSWPUF','[✓]','\x0a📋\x20请执行以下命令配置\x20Claude\x20Code\x20MCP:\x0a','mcpServers','green','8706702Phwkmq','description','\x20\x20✓','claude\x20mcp\x20add\x20','其他\x20IDE\x20配置指引','✓\x20创建\x20agents.md\x20到项目根目录\x0a','\x20\x20\x20\x20\x20\x20\x20\x20\x22LOVRABET_ENV\x22:\x20\x22','lovrabet_rules.mdc','selecting','请手动执行','agents.md\x20模板文件不存在','map','复制\x20agents.md\x20文件失败','\x20\x20\x20请先运行\x20\x27lovrabet\x20init\x20--appcode\x20<your-app-code>\x27\x20初始化项目配置\x0a','↑/↓:\x20移动光标\x20空格:\x20切换选中\x20a:\x20全选\x20i/r:\x20反选\x20q:\x20退出\x20Enter:\x20确认','success','\x20\x20\x20\x20\x20\x20\x22args\x22:\x20[','不支持的\x20IDE:\x20','✓\x20已写入\x20.cursor/mcp.json','84598Wqgscq','@lovrabet/dataset-mcp-server@latest','upArrow','indexOf','warn','其他\x20IDE\x20配置指引已显示'];a53_0x4ffc=function(){return _0x4f60f0;};return a53_0x4ffc();}import{existsSync,mkdirSync,writeFileSync,readFileSync,copyFileSync}from'node:fs';import{join,resolve,dirname}from'node:path';import{fileURLToPath}from'node:url';import{readConfig}from'../utils/config.js';import{logger}from'../utils/logger.js';const __dirname=dirname(fileURLToPath(import.meta.url)),IDE_CONFIGS={'cursor':{'name':a53_0x2c5c33(0x12f),'description':'Cursor\x20IDE'},'claude':{'name':'Claude\x20Code','description':a53_0x2c5c33(0x18a)},'other':{'name':'其他\x20IDE','description':a53_0x2c5c33(0x195)}},IDE_LIST=[a53_0x2c5c33(0x138),a53_0x2c5c33(0x14d),'other'],MCP_SERVER_NAME=a53_0x2c5c33(0x17a),MCP_COMMAND=a53_0x2c5c33(0x176),MCP_ARGS=[a53_0x2c5c33(0x128)];export function McpInstallUI({preselectedIDEs:preselectedIDEs=[]}){const _0x4088f2=a53_0x2c5c33,{exit:_0x82225e}=useApp(),[_0x486441,_0x43e46a]=useState('selecting'),[_0x4b3ac,_0x3fb134]=useState(new Set(preselectedIDEs[_0x4088f2(0x19c)](_0x356b94=>IDE_LIST[_0x4088f2(0x12a)](_0x356b94))[_0x4088f2(0x16c)](_0x17fc5c=>_0x17fc5c>=0x0))),[_0x57b1c7,_0x366652]=useState(0x0),[_0x355ccc,_0x51ad5f]=useState([]),[_0x496c12,_0x1fc9fd]=useState([]),[_0x778363,_0x117ae6]=useState('');useEffect(()=>{const _0x409a4e=_0x4088f2;preselectedIDEs[_0x409a4e(0x164)]>0x0&&_0x4b3ac['size']>0x0&&_0x29dafe();},[]),useInput((_0x221bca,_0x471edc)=>{const _0x17b31e=_0x4088f2;if(_0x486441===_0x17b31e(0x199)){if(_0x471edc[_0x17b31e(0x129)]){_0x366652(_0x556f6f=>_0x556f6f>0x0?_0x556f6f-0x1:IDE_LIST[_0x17b31e(0x164)]-0x1);return;}if(_0x471edc['downArrow']){_0x366652(_0x238428=>_0x238428<IDE_LIST[_0x17b31e(0x164)]-0x1?_0x238428+0x1:0x0);return;}if(_0x221bca==='\x20'){_0x3fb134(_0x508911=>{const _0x295e35=_0x17b31e,_0x4cf846=new Set(_0x508911);return _0x4cf846[_0x295e35(0x13e)](_0x57b1c7)?_0x4cf846[_0x295e35(0x148)](_0x57b1c7):_0x4cf846['add'](_0x57b1c7),_0x4cf846;});return;}if(_0x221bca==='a'||_0x221bca==='A'){_0x3fb134(new Set(IDE_LIST[_0x17b31e(0x19c)]((_0x4b5899,_0x185b9d)=>_0x185b9d)));return;}if(_0x221bca==='i'||_0x221bca==='I'||_0x221bca==='r'||_0x221bca==='R'){_0x3fb134(_0x2a7aa4=>{const _0x8ea413=_0x17b31e,_0x43df5d=new Set();for(let _0x4b7c7a=0x0;_0x4b7c7a<IDE_LIST[_0x8ea413(0x164)];_0x4b7c7a++){!_0x2a7aa4['has'](_0x4b7c7a)&&_0x43df5d[_0x8ea413(0x12d)](_0x4b7c7a);}return _0x43df5d;});return;}if(_0x221bca==='q'||_0x221bca==='Q'){_0x82225e();return;}if(_0x471edc[_0x17b31e(0x16d)]){if(_0x4b3ac['size']===0x0){_0x117ae6(_0x17b31e(0x17e));return;}_0x29dafe();return;}}if(_0x486441===_0x17b31e(0x147)){_0x82225e();return;}});async function _0x29dafe(){const _0x2ddb78=_0x4088f2,_0x142825=Array[_0x2ddb78(0x131)](_0x4b3ac)[_0x2ddb78(0x19c)](_0x2f7ba4=>IDE_LIST[_0x2f7ba4])[_0x2ddb78(0x16c)](_0x374480=>_0x374480!==undefined);_0x51ad5f([{'label':'已选择\x20IDE','value':_0x4b3ac[_0x2ddb78(0x132)]+'\x20个'}]),_0x43e46a(_0x2ddb78(0x175));const _0x2c30cc=[];for(const _0x2bc82d of _0x142825){try{const _0x24975a=await configureMcp(_0x2bc82d),_0x3a5907=_0x24975a[_0x2ddb78(0x179)](_0x2ddb78(0x19a));_0x2c30cc[_0x2ddb78(0x166)]({'ide':IDE_CONFIGS[_0x2bc82d][_0x2ddb78(0x163)],'status':_0x3a5907?_0x2ddb78(0x13a):_0x2ddb78(0x1a0),'message':_0x24975a});}catch(_0x32634c){_0x2c30cc[_0x2ddb78(0x166)]({'ide':IDE_CONFIGS[_0x2bc82d][_0x2ddb78(0x163)],'status':_0x2ddb78(0x143),'message':_0x32634c instanceof Error?_0x32634c[_0x2ddb78(0x13d)]:String(_0x32634c)});}}_0x1fc9fd(_0x2c30cc),_0x43e46a(_0x2ddb78(0x147)),setTimeout(()=>{_0x82225e();},0x1388);}return a53_0xf9a21b(Box,{'flexDirection':_0x4088f2(0x170),'marginTop':0x1,'children':[_0x486441===_0x4088f2(0x199)&&a53_0xf9a21b(a53_0x285acc,{'children':[a53_0x406ca3(Box,{'children':a53_0x406ca3(Text,{'color':_0x4088f2(0x134),'children':_0x4088f2(0x186)})}),_0x778363&&a53_0x406ca3(Box,{'marginTop':0x1,'children':a53_0xf9a21b(Text,{'color':_0x4088f2(0x16a),'children':['✗\x20',_0x778363]})}),a53_0xf9a21b(Box,{'marginTop':0x1,'flexDirection':_0x4088f2(0x170),'children':[a53_0x406ca3(Text,{'bold':!![],'children':_0x4088f2(0x167)}),IDE_LIST[_0x4088f2(0x19c)]((_0x44eb01,_0x29e5b2)=>{const _0x154e36=_0x4088f2,_0x5a95e0=_0x57b1c7===_0x29e5b2,_0x49d565=_0x4b3ac[_0x154e36(0x13e)](_0x29e5b2);return a53_0x406ca3(Box,{'children':a53_0xf9a21b(Text,{'backgroundColor':_0x5a95e0?_0x154e36(0x142):undefined,'color':_0x5a95e0?'white':undefined,'children':['\x20\x20',_0x49d565?_0x154e36(0x18d):_0x154e36(0x178),'\x20',IDE_CONFIGS[_0x44eb01][_0x154e36(0x163)],'\x20',a53_0xf9a21b(Text,{'color':_0x5a95e0?_0x154e36(0x165):_0x154e36(0x14e),'dimColor':!_0x5a95e0,'children':['-\x20',IDE_CONFIGS[_0x44eb01][_0x154e36(0x192)]]})]})},_0x44eb01);}),a53_0x406ca3(Box,{'marginTop':0x1,'children':a53_0xf9a21b(Text,{'color':_0x4088f2(0x14e),'children':['\x20',_0x4088f2(0x19f)]})})]})]}),_0x486441===_0x4088f2(0x175)&&a53_0xf9a21b(a53_0x285acc,{'children':[_0x355ccc[_0x4088f2(0x19c)]((_0x537953,_0x49424d)=>a53_0xf9a21b(Box,{'children':[a53_0xf9a21b(Text,{'color':_0x4088f2(0x190),'children':['√\x20',_0x537953[_0x4088f2(0x177)],':\x20']}),a53_0x406ca3(Text,{'color':_0x4088f2(0x134),'children':_0x537953[_0x4088f2(0x17d)]})]},_0x49424d)),a53_0x406ca3(Box,{'marginTop':0x1,'children':a53_0x406ca3(Text,{'children':'正在配置\x20MCP\x20服务器...'})})]}),_0x486441===_0x4088f2(0x147)&&a53_0xf9a21b(a53_0x285acc,{'children':[a53_0x406ca3(Box,{'children':_0x496c12['every'](_0x220356=>_0x220356['status']===_0x4088f2(0x1a0))?a53_0x406ca3(Text,{'color':'green','children':'✓\x20MCP\x20配置完成!'}):_0x496c12[_0x4088f2(0x162)](_0x64585d=>_0x64585d[_0x4088f2(0x14c)]==='success')?a53_0x406ca3(Text,{'color':'yellow','children':_0x4088f2(0x135)}):a53_0x406ca3(Text,{'color':'yellow','children':_0x4088f2(0x185)})}),_0x496c12[_0x4088f2(0x19c)]((_0x78430e,_0x527aa3)=>a53_0xf9a21b(Box,{'children':[a53_0xf9a21b(Text,{'color':_0x78430e[_0x4088f2(0x14c)]===_0x4088f2(0x1a0)?'green':_0x78430e[_0x4088f2(0x14c)]===_0x4088f2(0x13a)?_0x4088f2(0x13f):_0x4088f2(0x16a),'children':[_0x78430e[_0x4088f2(0x14c)]===_0x4088f2(0x1a0)?_0x4088f2(0x193):_0x78430e['status']===_0x4088f2(0x13a)?_0x4088f2(0x14b):_0x4088f2(0x13b),'\x20',_0x78430e[_0x4088f2(0x15d)],':','\x20']}),a53_0x406ca3(Text,{'color':_0x78430e['status']==='success'?'white':_0x78430e[_0x4088f2(0x14c)]===_0x4088f2(0x13a)?_0x4088f2(0x13f):_0x4088f2(0x16a),'children':_0x78430e[_0x4088f2(0x13d)]})]},_0x527aa3)),a53_0x406ca3(Box,{'marginTop':0x1,'children':a53_0x406ca3(Text,{'color':_0x4088f2(0x14e),'children':'按任意键退出...'})})]})]});}async function configureMcp(_0x413a2e){const _0x16baea=a53_0x2c5c33;switch(_0x413a2e){case _0x16baea(0x138):return await configureCursorMcp();case _0x16baea(0x14d):return await configureClaudeMcp();case'other':return await showOtherGuide();default:throw new Error(_0x16baea(0x1a2)+_0x413a2e);}}async function configureCursorMcp(){const _0x31f5e3=a53_0x2c5c33,_0x33ae0e=readConfig(),_0x554838=_0x33ae0e[_0x31f5e3(0x184)]||_0x33ae0e[_0x31f5e3(0x145)],_0x14b5b5=_0x33ae0e[_0x31f5e3(0x154)]||'online';if(!_0x554838)return console[_0x31f5e3(0x17f)](_0x31f5e3(0x187)),console[_0x31f5e3(0x17f)]('\x20\x20\x20请先运行\x20\x27lovrabet\x20init\x20--appcode\x20<your-app-code>\x27\x20初始化项目配置\x0a'),logger[_0x31f5e3(0x12b)](_0x31f5e3(0x149),_0x31f5e3(0x156)),_0x31f5e3(0x172);const _0x5e5fcb={'LOVRABET_APP_CODE':String(_0x554838)};_0x14b5b5!==_0x31f5e3(0x14a)&&(_0x5e5fcb[_0x31f5e3(0x16b)]=String(_0x14b5b5));const _0x59ecd2={'command':MCP_COMMAND,'args':MCP_ARGS,'env':_0x5e5fcb},_0x1e30ed=join(process[_0x31f5e3(0x161)](),_0x31f5e3(0x141),_0x31f5e3(0x12e)),_0x4506c1=join(process['cwd'](),'.cursor');!existsSync(_0x4506c1)&&mkdirSync(_0x4506c1,{'recursive':!![]});let _0x25c096={'mcpServers':{}};if(existsSync(_0x1e30ed))try{const _0x27263b=readFileSync(_0x1e30ed,'utf-8');_0x25c096=JSON['parse'](_0x27263b);}catch{}(!_0x25c096['mcpServers']||typeof _0x25c096[_0x31f5e3(0x18f)]!=='object')&&(_0x25c096[_0x31f5e3(0x18f)]={});_0x25c096['mcpServers'][MCP_SERVER_NAME]=_0x59ecd2,writeFileSync(_0x1e30ed,JSON['stringify'](_0x25c096,null,0x2),_0x31f5e3(0x150)),logger[_0x31f5e3(0x144)]('mcp-install','Cursor\x20MCP\x20配置成功',{'appcode':_0x554838,'env':_0x14b5b5,'path':_0x1e30ed}),console[_0x31f5e3(0x17f)](_0x31f5e3(0x126)),console[_0x31f5e3(0x17f)](_0x31f5e3(0x15c)+_0x554838);_0x14b5b5!=='online'&&console[_0x31f5e3(0x17f)](_0x31f5e3(0x182)+_0x14b5b5);console[_0x31f5e3(0x17f)](_0x31f5e3(0x173));const _0x3acbad=join(_0x4506c1,_0x31f5e3(0x188)),_0x3946cc=join(_0x3acbad,_0x31f5e3(0x198));if(!existsSync(_0x3946cc))try{!existsSync(_0x3acbad)&&mkdirSync(_0x3acbad,{'recursive':!![]});const _0x5997c9=resolve(__dirname,_0x31f5e3(0x181));existsSync(_0x5997c9)?(copyFileSync(_0x5997c9,_0x3946cc),logger[_0x31f5e3(0x144)](_0x31f5e3(0x149),_0x31f5e3(0x158),{'from':_0x5997c9,'to':_0x3946cc}),console[_0x31f5e3(0x17f)](_0x31f5e3(0x15f))):logger['warn'](_0x31f5e3(0x149),_0x31f5e3(0x18b),{'templatePath':_0x5997c9});}catch(_0x5a23cb){logger[_0x31f5e3(0x143)](_0x31f5e3(0x149),'复制\x20Cursor\x20Rules\x20文件失败',{'error':_0x5a23cb instanceof Error?_0x5a23cb[_0x31f5e3(0x13d)]:String(_0x5a23cb)});}else console[_0x31f5e3(0x17f)](_0x31f5e3(0x180));return _0x31f5e3(0x159);}async function configureClaudeMcp(){const _0xad6858=a53_0x2c5c33,_0x4feba0=readConfig(),_0x2ccee4=_0x4feba0['appcode']||_0x4feba0[_0xad6858(0x145)],_0x123486=_0x4feba0['env']||'online';if(!_0x2ccee4)return console[_0xad6858(0x17f)]('⚠️\x20\x20未找到\x20appcode\x20配置'),console['log'](_0xad6858(0x19e)),logger[_0xad6858(0x12b)](_0xad6858(0x149),_0xad6858(0x156)),_0xad6858(0x172);let _0x109eac=_0xad6858(0x194)+MCP_SERVER_NAME+'\x20'+MCP_COMMAND+'\x20'+MCP_ARGS[_0xad6858(0x133)]('\x20')+_0xad6858(0x16f)+_0x2ccee4;_0x123486!==_0xad6858(0x14a)&&(_0x109eac+=_0xad6858(0x146)+_0x123486);console[_0xad6858(0x17f)](_0xad6858(0x18e)),console[_0xad6858(0x17f)]('\x20\x20'+_0x109eac+'\x0a'),console['log'](_0xad6858(0x137)),console[_0xad6858(0x17f)](_0xad6858(0x15c)+_0x2ccee4);_0x123486!==_0xad6858(0x14a)&&console[_0xad6858(0x17f)](_0xad6858(0x182)+_0x123486);console[_0xad6858(0x17f)](_0xad6858(0x15b)),logger[_0xad6858(0x144)](_0xad6858(0x149),_0xad6858(0x13c),{'command':_0x109eac,'appcode':_0x2ccee4,'env':_0x123486});const _0x10b66c=join(process[_0xad6858(0x161)](),_0xad6858(0x151));if(!existsSync(_0x10b66c))try{const _0x3bc00b=resolve(__dirname,_0xad6858(0x181));if(existsSync(_0x3bc00b)){const _0x3a7c80=readFileSync(_0x3bc00b,_0xad6858(0x150));writeFileSync(_0x10b66c,_0x3a7c80,_0xad6858(0x150)),logger[_0xad6858(0x144)](_0xad6858(0x149),'创建\x20agents.md\x20文件',{'from':_0x3bc00b,'to':_0x10b66c}),console[_0xad6858(0x17f)](_0xad6858(0x196));}else logger[_0xad6858(0x12b)](_0xad6858(0x149),_0xad6858(0x19b),{'templatePath':_0x3bc00b});}catch(_0x1d76bc){logger[_0xad6858(0x143)](_0xad6858(0x149),_0xad6858(0x19d),{'error':_0x1d76bc instanceof Error?_0x1d76bc[_0xad6858(0x13d)]:String(_0x1d76bc)});}else console['log'](_0xad6858(0x174));return _0xad6858(0x157);}async function showOtherGuide(){const _0x1b76b7=a53_0x2c5c33,_0x3429af=readConfig(),_0x1c48a0=_0x3429af[_0x1b76b7(0x184)]||_0x3429af[_0x1b76b7(0x145)],_0x3fda50=_0x3429af[_0x1b76b7(0x154)]||_0x1b76b7(0x14a);if(!_0x1c48a0)return console[_0x1b76b7(0x17f)](_0x1b76b7(0x187)),console['log'](_0x1b76b7(0x19e)),logger[_0x1b76b7(0x12b)]('mcp-install',_0x1b76b7(0x156)),_0x1b76b7(0x172);return console[_0x1b76b7(0x17f)]('\x0a📋\x20Lovrabet\x20MCP\x20服务器配置\x0a'),console[_0x1b76b7(0x17f)](_0x1b76b7(0x171)+_0x1c48a0+_0x1b76b7(0x140)+_0x3fda50+'\x0a'),console['log']('{'),console[_0x1b76b7(0x17f)](_0x1b76b7(0x168)),console[_0x1b76b7(0x17f)](_0x1b76b7(0x14f)+MCP_SERVER_NAME+_0x1b76b7(0x139)),console['log']('\x20\x20\x20\x20\x20\x20\x22command\x22:\x20\x22'+MCP_COMMAND+'\x22,'),console['log'](_0x1b76b7(0x1a1)+MCP_ARGS['map'](_0x1ec53a=>'\x22'+_0x1ec53a+'\x22')['join'](',\x20')+'],'),console['log'](_0x1b76b7(0x189)),console[_0x1b76b7(0x17f)](_0x1b76b7(0x153)+_0x1c48a0+'\x22,'),_0x3fda50!==_0x1b76b7(0x14a)&&console[_0x1b76b7(0x17f)](_0x1b76b7(0x197)+_0x3fda50+'\x22,'),console[_0x1b76b7(0x17f)]('\x20\x20\x20\x20\x20\x20}'),console['log'](_0x1b76b7(0x17c)),console[_0x1b76b7(0x17f)](_0x1b76b7(0x169)),console[_0x1b76b7(0x17f)]('}\x0a'),console[_0x1b76b7(0x17f)](_0x1b76b7(0x16e)),logger[_0x1b76b7(0x144)]('mcp-install',_0x1b76b7(0x12c),{'appcode':_0x1c48a0,'env':_0x3fda50}),_0x1b76b7(0x152);}
package/lib/mcp/claude.js CHANGED
@@ -1 +1 @@
1
- (function(_0x10bd96,_0x4c6a64){const _0x59bd7c=a54_0x5ca5,_0x123cd7=_0x10bd96();while(!![]){try{const _0x3aabb1=-parseInt(_0x59bd7c(0x147))/0x1+parseInt(_0x59bd7c(0x14d))/0x2+-parseInt(_0x59bd7c(0x157))/0x3+parseInt(_0x59bd7c(0x142))/0x4+parseInt(_0x59bd7c(0x15d))/0x5*(-parseInt(_0x59bd7c(0x140))/0x6)+-parseInt(_0x59bd7c(0x158))/0x7*(-parseInt(_0x59bd7c(0x13f))/0x8)+parseInt(_0x59bd7c(0x15a))/0x9*(-parseInt(_0x59bd7c(0x15b))/0xa);if(_0x3aabb1===_0x4c6a64)break;else _0x123cd7['push'](_0x123cd7['shift']());}catch(_0x3e5125){_0x123cd7['push'](_0x123cd7['shift']());}}}(a54_0x5d1f,0x5095a));function a54_0x5ca5(_0x17fbfb,_0x5e2b51){_0x17fbfb=_0x17fbfb-0x13f;const _0x5d1f66=a54_0x5d1f();let _0x5ca5b1=_0x5d1f66[_0x17fbfb];return _0x5ca5b1;}function a54_0x5d1f(){const _0x15f748=['-e\x20LOVRABET_ENV=daily','info','错误:\x20配置失败\x20-\x20','\x20\x202.\x20在\x20claude\x20code\x20中确认\x20lovrabet-dataset\x20MCP\x20服务器已加载\x0a','221460YNWeVP','配置失败','log','配置完成后:\x0a','error','未找到\x20appcode\x20配置','1302084maMaIi','生成配置命令','daily','\x20\x20-\x20环境:\x20','配置信息:','online','appcode','mcp-claude','message','\x20\x20-\x20AppCode:\x20','781245yTPPbD','3871XbTkyi','exit','69138zpslZz','200OwHwGo','trim','468610baIQLL','📋\x20请执行以下命令配置\x20Claude\x20Code\x20MCP:\x0a','claude\x20mcp\x20add\x20lovrabet-dataset\x20npx\x20@lovrabet/dataset-mcp-server@latest','680jWeJma','24AxlZHO','错误:\x20未找到\x20appcode\x20配置,请先运行\x20\x27lovrabet\x20init\x27\x20初始化项目配置','2569720BMRurM'];a54_0x5d1f=function(){return _0x15f748;};return a54_0x5d1f();}import{readConfig}from'../utils/config.js';import{logger}from'../utils/logger.js';export async function configureClaudeMcp(){const _0x438116=a54_0x5ca5;try{const _0x1d072c=readConfig(),_0x4adabe=_0x1d072c[_0x438116(0x153)]||_0x1d072c['app'],_0xe825d0=_0x1d072c['env']||_0x438116(0x152);!_0x4adabe&&(console[_0x438116(0x14b)](_0x438116(0x141)),logger[_0x438116(0x14b)]('mcp-claude',_0x438116(0x14c)),process[_0x438116(0x159)](0x1));console[_0x438116(0x149)](_0x438116(0x151)),console[_0x438116(0x149)](_0x438116(0x156)+_0x4adabe),console[_0x438116(0x149)](_0x438116(0x150)+_0xe825d0+'\x0a');const _0x2574e7=_0x438116(0x15f),_0x4c4b70='-e\x20LOVRABET_APP_CODE='+_0x4adabe,_0x1fb8c1=_0xe825d0===_0x438116(0x14f)?_0x438116(0x143):'',_0x37ca46=(_0x2574e7+'\x20'+_0x4c4b70+'\x20'+_0x1fb8c1)[_0x438116(0x15c)]();console[_0x438116(0x149)](_0x438116(0x15e)),console[_0x438116(0x149)]('\x20\x20'+_0x37ca46+'\x0a'),console[_0x438116(0x149)](_0x438116(0x14a)),console[_0x438116(0x149)]('\x20\x201.\x20重启\x20claude\x20code'),console[_0x438116(0x149)](_0x438116(0x146)),logger[_0x438116(0x144)](_0x438116(0x154),_0x438116(0x14e),{'appcode':_0x4adabe,'env':_0xe825d0}),process[_0x438116(0x159)](0x0);}catch(_0x2e2bc4){logger[_0x438116(0x14b)](_0x438116(0x154),_0x438116(0x148),{'error':_0x2e2bc4 instanceof Error?_0x2e2bc4[_0x438116(0x155)]:String(_0x2e2bc4)}),console[_0x438116(0x14b)](_0x438116(0x145)+(_0x2e2bc4 instanceof Error?_0x2e2bc4['message']:String(_0x2e2bc4))),process[_0x438116(0x159)](0x1);}}
1
+ function a54_0x3528(){const _0x1e0c81=['30WKfgfe','未找到\x20appcode\x20配置','错误:\x20配置失败\x20-\x20','1171880FtHRvj','\x20\x20-\x20AppCode:\x20','-e\x20LOVRABET_ENV=daily','1174030YXxvvq','info','\x20\x201.\x20重启\x20claude\x20code','222707fFFhXP','\x20\x20-\x20环境:\x20','exit','571720fJIaDM','配置失败','22IeytvP','daily','app','error','trim','log','env','\x20\x202.\x20在\x20claude\x20code\x20中确认\x20lovrabet-dataset\x20MCP\x20服务器已加载\x0a','27vsSXuq','配置信息:','18ZdpAZg','appcode','mcp-claude','message','📋\x20请执行以下命令配置\x20Claude\x20Code\x20MCP:\x0a','1022860pwdaFl','18616HVDpMl','68446YxiozV'];a54_0x3528=function(){return _0x1e0c81;};return a54_0x3528();}function a54_0x52a0(_0x30fde1,_0x49cb91){_0x30fde1=_0x30fde1-0x15b;const _0x352850=a54_0x3528();let _0x52a008=_0x352850[_0x30fde1];return _0x52a008;}(function(_0x1af297,_0x22c2f4){const _0x54ba1c=a54_0x52a0,_0x2d0176=_0x1af297();while(!![]){try{const _0x2b28ad=parseInt(_0x54ba1c(0x15e))/0x1+-parseInt(_0x54ba1c(0x173))/0x2*(-parseInt(_0x54ba1c(0x16b))/0x3)+-parseInt(_0x54ba1c(0x172))/0x4+parseInt(_0x54ba1c(0x161))/0x5+-parseInt(_0x54ba1c(0x175))/0x6*(-parseInt(_0x54ba1c(0x174))/0x7)+-parseInt(_0x54ba1c(0x178))/0x8*(parseInt(_0x54ba1c(0x16d))/0x9)+parseInt(_0x54ba1c(0x15b))/0xa*(parseInt(_0x54ba1c(0x163))/0xb);if(_0x2b28ad===_0x22c2f4)break;else _0x2d0176['push'](_0x2d0176['shift']());}catch(_0x43f0d4){_0x2d0176['push'](_0x2d0176['shift']());}}}(a54_0x3528,0x260ba));import{readConfig}from'../utils/config.js';import{logger}from'../utils/logger.js';export async function configureClaudeMcp(){const _0x2001c6=a54_0x52a0;try{const _0x242545=readConfig(),_0x146dae=_0x242545[_0x2001c6(0x16e)]||_0x242545[_0x2001c6(0x165)],_0x614dc2=_0x242545[_0x2001c6(0x169)]||'online';!_0x146dae&&(console[_0x2001c6(0x166)]('错误:\x20未找到\x20appcode\x20配置,请先运行\x20\x27lovrabet\x20init\x27\x20初始化项目配置'),logger['error'](_0x2001c6(0x16f),_0x2001c6(0x176)),process['exit'](0x1));console[_0x2001c6(0x168)](_0x2001c6(0x16c)),console[_0x2001c6(0x168)](_0x2001c6(0x179)+_0x146dae),console[_0x2001c6(0x168)](_0x2001c6(0x15f)+_0x614dc2+'\x0a');const _0x3438c8='claude\x20mcp\x20add\x20lovrabet-dataset\x20npx\x20@lovrabet/dataset-mcp-server@latest',_0x4a8da9='-e\x20LOVRABET_APP_CODE='+_0x146dae,_0x27dcc5=_0x614dc2===_0x2001c6(0x164)?_0x2001c6(0x17a):'',_0x214d47=(_0x3438c8+'\x20'+_0x4a8da9+'\x20'+_0x27dcc5)[_0x2001c6(0x167)]();console['log'](_0x2001c6(0x171)),console[_0x2001c6(0x168)]('\x20\x20'+_0x214d47+'\x0a'),console[_0x2001c6(0x168)]('配置完成后:\x0a'),console[_0x2001c6(0x168)](_0x2001c6(0x15d)),console[_0x2001c6(0x168)](_0x2001c6(0x16a)),logger[_0x2001c6(0x15c)]('mcp-claude','生成配置命令',{'appcode':_0x146dae,'env':_0x614dc2}),process[_0x2001c6(0x160)](0x0);}catch(_0x471621){logger[_0x2001c6(0x166)](_0x2001c6(0x16f),_0x2001c6(0x162),{'error':_0x471621 instanceof Error?_0x471621[_0x2001c6(0x170)]:String(_0x471621)}),console['error'](_0x2001c6(0x177)+(_0x471621 instanceof Error?_0x471621[_0x2001c6(0x170)]:String(_0x471621))),process[_0x2001c6(0x160)](0x1);}}
package/lib/mcp/cursor.js CHANGED
@@ -1 +1 @@
1
- function a55_0x8ed9(){const _0x45a828=['错误:\x20未找到\x20appcode\x20配置,请先运行\x20\x27lovrabet\x20init\x27\x20初始化项目配置','配置\x20Cursor\x20MCP\x20失败','13891nhllyP','创建\x20.cursor/rules\x20目录','解析现有\x20mcp.json\x20失败','517QvMvdF','log','exit','29418pcFtIh','info','复制\x20Cursor\x20Rules\x20文件','mcp.json','parse','警告:\x20复制\x20Cursor\x20Rules\x20文件失败:\x20','message','cwd','✓\x20创建\x20mcp.json\x20配置文件','配置\x20Cursor\x20MCP\x20成功','\x0a✓\x20Cursor\x20MCP\x20配置成功!','2216uZlAfg','npx','error','stringify','10rxFclA','596rvyJkN','!\x20Cursor\x20Rules\x20文件已存在,跳过创建,如需重新创建,请删除\x20.cursor/rules/lovrabet_rules.mdc\x20文件','Cursor\x20Rules\x20文件已存在,跳过','appcode','env','4280660BDyIxd','✓\x20创建\x20Cursor\x20Rules\x20文件:\x20.cursor/rules/lovrabet_rules.mdc','warn','\x20\x20-\x20配置文件:\x20','1129092nEPmjV','创建\x20.cursor\x20目录','错误:\x20配置失败:\x20','\x0a现在您可以在\x20Cursor\x20中使用\x20Lovrabet\x20数据集\x20MCP\x20工具了。','../../templates/rules/lovrabet_rules.mdc.tpl','rules','37751jEsXcl','online','mcp-cursor','复制\x20Cursor\x20Rules\x20文件失败','7517598sXvNht','mcpServers','\x0a配置信息:','.cursor','@lovrabet/dataset-mcp-server','130QVcsrV','\x20\x20-\x20环境:\x20','错误:\x20解析现有\x20mcp.json\x20失败:\x20','utf8','5978061QqUAEk','更新现有\x20mcp.json\x20配置','app'];a55_0x8ed9=function(){return _0x45a828;};return a55_0x8ed9();}function a55_0x96e5(_0x3c4c6b,_0x17e40d){_0x3c4c6b=_0x3c4c6b-0x1b2;const _0x8ed9ec=a55_0x8ed9();let _0x96e5e2=_0x8ed9ec[_0x3c4c6b];return _0x96e5e2;}(function(_0x2cd088,_0x1026f6){const _0x32c47c=a55_0x96e5,_0x3d2f99=_0x2cd088();while(!![]){try{const _0x2fc749=parseInt(_0x32c47c(0x1d4))/0x1*(parseInt(_0x32c47c(0x1cb))/0x2)+parseInt(_0x32c47c(0x1da))/0x3*(parseInt(_0x32c47c(0x1b3))/0x4)+parseInt(_0x32c47c(0x1b8))/0x5+parseInt(_0x32c47c(0x1c6))/0x6+parseInt(_0x32c47c(0x1c2))/0x7*(parseInt(_0x32c47c(0x1e5))/0x8)+-parseInt(_0x32c47c(0x1cf))/0x9*(parseInt(_0x32c47c(0x1b2))/0xa)+parseInt(_0x32c47c(0x1d7))/0xb*(-parseInt(_0x32c47c(0x1bc))/0xc);if(_0x2fc749===_0x1026f6)break;else _0x3d2f99['push'](_0x3d2f99['shift']());}catch(_0x443f54){_0x3d2f99['push'](_0x3d2f99['shift']());}}}(a55_0x8ed9,0xd6f2d));import{existsSync,mkdirSync,writeFileSync,readFileSync,copyFileSync}from'node:fs';import{resolve,dirname}from'node:path';import{fileURLToPath}from'node:url';import{readConfig}from'../utils/config.js';import{logger}from'../utils/logger.js';export async function configureCursorMcp(){const _0x16f6fd=a55_0x96e5;try{const _0x21c58c=process[_0x16f6fd(0x1e1)](),_0x2d04bc=resolve(_0x21c58c,_0x16f6fd(0x1c9)),_0x1b817c=resolve(_0x2d04bc,_0x16f6fd(0x1dd)),_0x413646=readConfig(),_0x34d7b1=_0x413646[_0x16f6fd(0x1b6)]||_0x413646[_0x16f6fd(0x1d1)],_0x102c95=_0x413646[_0x16f6fd(0x1b7)]||_0x16f6fd(0x1c3);!_0x34d7b1&&(console[_0x16f6fd(0x1e7)](_0x16f6fd(0x1d2)),logger[_0x16f6fd(0x1e7)]('mcp-cursor','未找到\x20appcode\x20配置'),process[_0x16f6fd(0x1d9)](0x1));!existsSync(_0x2d04bc)&&(mkdirSync(_0x2d04bc,{'recursive':!![]}),logger[_0x16f6fd(0x1db)](_0x16f6fd(0x1c4),_0x16f6fd(0x1bd),{'path':_0x2d04bc}),console[_0x16f6fd(0x1d8)]('✓\x20创建\x20.cursor\x20目录:\x20'+_0x2d04bc));const _0x158adc={'command':_0x16f6fd(0x1e6),'args':['-y',_0x16f6fd(0x1ca)],'env':{'LOVRABET_APP_CODE':String(_0x34d7b1),'LOVRABET_ENV':String(_0x102c95)}};let _0x336d14;if(existsSync(_0x1b817c))try{const _0x48edf4=readFileSync(_0x1b817c,_0x16f6fd(0x1ce));_0x336d14=JSON[_0x16f6fd(0x1de)](_0x48edf4),!_0x336d14['mcpServers']&&(_0x336d14[_0x16f6fd(0x1c7)]={}),_0x336d14[_0x16f6fd(0x1c7)]['lovrabet-dataset']=_0x158adc,logger[_0x16f6fd(0x1db)](_0x16f6fd(0x1c4),_0x16f6fd(0x1d0),{'path':_0x1b817c,'appcode':_0x34d7b1,'env':_0x102c95}),console[_0x16f6fd(0x1d8)]('✓\x20更新\x20mcp.json\x20配置');}catch(_0x10c661){logger[_0x16f6fd(0x1e7)](_0x16f6fd(0x1c4),_0x16f6fd(0x1d6),{'error':_0x10c661 instanceof Error?_0x10c661[_0x16f6fd(0x1e0)]:String(_0x10c661)}),console[_0x16f6fd(0x1e7)](_0x16f6fd(0x1cd)+(_0x10c661 instanceof Error?_0x10c661[_0x16f6fd(0x1e0)]:String(_0x10c661))),process[_0x16f6fd(0x1d9)](0x1);}else _0x336d14={'mcpServers':{'lovrabet-dataset':_0x158adc}},logger[_0x16f6fd(0x1db)](_0x16f6fd(0x1c4),'创建新的\x20mcp.json\x20配置',{'path':_0x1b817c,'appcode':_0x34d7b1,'env':_0x102c95}),console['log'](_0x16f6fd(0x1e2));writeFileSync(_0x1b817c,JSON[_0x16f6fd(0x1e8)](_0x336d14,null,0x2),{'encoding':'utf8'});const _0x5f4de0=resolve(_0x2d04bc,_0x16f6fd(0x1c1)),_0x468538=resolve(_0x5f4de0,'lovrabet_rules.mdc');if(!existsSync(_0x468538))try{!existsSync(_0x5f4de0)&&(mkdirSync(_0x5f4de0,{'recursive':!![]}),logger[_0x16f6fd(0x1db)](_0x16f6fd(0x1c4),_0x16f6fd(0x1d5),{'path':_0x5f4de0}));const _0x5bd990=fileURLToPath(import.meta.url),_0x42972a=dirname(_0x5bd990),_0xb2c415=resolve(_0x42972a,_0x16f6fd(0x1c0));existsSync(_0xb2c415)?(copyFileSync(_0xb2c415,_0x468538),logger[_0x16f6fd(0x1db)](_0x16f6fd(0x1c4),_0x16f6fd(0x1dc),{'from':_0xb2c415,'to':_0x468538}),console[_0x16f6fd(0x1d8)](_0x16f6fd(0x1b9))):logger[_0x16f6fd(0x1ba)]('mcp-cursor','Cursor\x20Rules\x20模板文件不存在',{'templatePath':_0xb2c415});}catch(_0x1f6275){logger[_0x16f6fd(0x1e7)](_0x16f6fd(0x1c4),_0x16f6fd(0x1c5),{'error':_0x1f6275 instanceof Error?_0x1f6275[_0x16f6fd(0x1e0)]:String(_0x1f6275)}),console['warn'](_0x16f6fd(0x1df)+(_0x1f6275 instanceof Error?_0x1f6275['message']:String(_0x1f6275)));}else console['log'](_0x16f6fd(0x1b4)),logger[_0x16f6fd(0x1db)]('mcp-cursor',_0x16f6fd(0x1b5),{'path':_0x468538});console[_0x16f6fd(0x1d8)](_0x16f6fd(0x1e4)),console[_0x16f6fd(0x1d8)](_0x16f6fd(0x1c8)),console[_0x16f6fd(0x1d8)]('\x20\x20-\x20AppCode:\x20'+_0x34d7b1),console[_0x16f6fd(0x1d8)](_0x16f6fd(0x1cc)+_0x102c95),console['log'](_0x16f6fd(0x1bb)+_0x1b817c),console[_0x16f6fd(0x1d8)](_0x16f6fd(0x1bf)),console[_0x16f6fd(0x1d8)]('请重启\x20Cursor\x20以加载新的\x20MCP\x20配置。'),logger['info'](_0x16f6fd(0x1c4),_0x16f6fd(0x1e3),{'appcode':_0x34d7b1,'env':_0x102c95,'configPath':_0x1b817c}),process[_0x16f6fd(0x1d9)](0x0);}catch(_0x24d7ce){logger[_0x16f6fd(0x1e7)]('mcp-cursor',_0x16f6fd(0x1d3),{'error':_0x24d7ce instanceof Error?_0x24d7ce[_0x16f6fd(0x1e0)]:String(_0x24d7ce)}),console[_0x16f6fd(0x1e7)](_0x16f6fd(0x1be)+(_0x24d7ce instanceof Error?_0x24d7ce['message']:String(_0x24d7ce))),process[_0x16f6fd(0x1d9)](0x1);}}
1
+ (function(_0x3f25dc,_0x545b95){const _0x3199bf=a55_0xe87e,_0x441525=_0x3f25dc();while(!![]){try{const _0x21b0e4=-parseInt(_0x3199bf(0x110))/0x1+parseInt(_0x3199bf(0x11a))/0x2+parseInt(_0x3199bf(0x102))/0x3*(-parseInt(_0x3199bf(0x132))/0x4)+parseInt(_0x3199bf(0x104))/0x5+parseInt(_0x3199bf(0x118))/0x6*(-parseInt(_0x3199bf(0x10a))/0x7)+parseInt(_0x3199bf(0x122))/0x8*(parseInt(_0x3199bf(0x10b))/0x9)+parseInt(_0x3199bf(0x127))/0xa*(-parseInt(_0x3199bf(0x124))/0xb);if(_0x21b0e4===_0x545b95)break;else _0x441525['push'](_0x441525['shift']());}catch(_0x985a1f){_0x441525['push'](_0x441525['shift']());}}}(a55_0x4dc7,0xd60a4));import{existsSync,mkdirSync,writeFileSync,readFileSync,copyFileSync}from'node:fs';import{resolve,dirname}from'node:path';import{fileURLToPath}from'node:url';import{readConfig}from'../utils/config.js';import{logger}from'../utils/logger.js';export async function configureCursorMcp(){const _0x3114dc=a55_0xe87e;try{const _0x451834=process[_0x3114dc(0x11d)](),_0x1be3b7=resolve(_0x451834,_0x3114dc(0x107)),_0x21fc6e=resolve(_0x1be3b7,'mcp.json'),_0x2c45e2=readConfig(),_0x8281=_0x2c45e2[_0x3114dc(0x103)]||_0x2c45e2[_0x3114dc(0x119)],_0x3ed5e1=_0x2c45e2['env']||_0x3114dc(0x125);!_0x8281&&(console['error'](_0x3114dc(0x121)),logger[_0x3114dc(0x113)](_0x3114dc(0xff),'未找到\x20appcode\x20配置'),process[_0x3114dc(0x116)](0x1));!existsSync(_0x1be3b7)&&(mkdirSync(_0x1be3b7,{'recursive':!![]}),logger[_0x3114dc(0x12c)]('mcp-cursor',_0x3114dc(0x115),{'path':_0x1be3b7}),console['log'](_0x3114dc(0x11c)+_0x1be3b7));const _0x5c6a1f={'command':_0x3114dc(0x123),'args':['-y','@lovrabet/dataset-mcp-server'],'env':{'LOVRABET_APP_CODE':String(_0x8281),'LOVRABET_ENV':String(_0x3ed5e1)}};let _0x689e29;if(existsSync(_0x21fc6e))try{const _0x4efa4f=readFileSync(_0x21fc6e,_0x3114dc(0x11f));_0x689e29=JSON['parse'](_0x4efa4f),!_0x689e29[_0x3114dc(0x12f)]&&(_0x689e29[_0x3114dc(0x12f)]={}),_0x689e29[_0x3114dc(0x12f)]['lovrabet-dataset']=_0x5c6a1f,logger[_0x3114dc(0x12c)](_0x3114dc(0xff),_0x3114dc(0x100),{'path':_0x21fc6e,'appcode':_0x8281,'env':_0x3ed5e1}),console['log'](_0x3114dc(0x12b));}catch(_0x57c002){logger[_0x3114dc(0x113)](_0x3114dc(0xff),_0x3114dc(0x111),{'error':_0x57c002 instanceof Error?_0x57c002[_0x3114dc(0x10f)]:String(_0x57c002)}),console['error'](_0x3114dc(0x10d)+(_0x57c002 instanceof Error?_0x57c002[_0x3114dc(0x10f)]:String(_0x57c002))),process[_0x3114dc(0x116)](0x1);}else _0x689e29={'mcpServers':{'lovrabet-dataset':_0x5c6a1f}},logger[_0x3114dc(0x12c)](_0x3114dc(0xff),_0x3114dc(0x10c),{'path':_0x21fc6e,'appcode':_0x8281,'env':_0x3ed5e1}),console[_0x3114dc(0x126)](_0x3114dc(0x12a));writeFileSync(_0x21fc6e,JSON[_0x3114dc(0x117)](_0x689e29,null,0x2),{'encoding':_0x3114dc(0x11f)});const _0x27171e=resolve(_0x1be3b7,_0x3114dc(0x129)),_0x4dae4e=resolve(_0x27171e,_0x3114dc(0x108));if(!existsSync(_0x4dae4e))try{!existsSync(_0x27171e)&&(mkdirSync(_0x27171e,{'recursive':!![]}),logger['info']('mcp-cursor',_0x3114dc(0x112),{'path':_0x27171e}));const _0x456c82=fileURLToPath(import.meta.url),_0x4dc925=dirname(_0x456c82),_0x4228a6=resolve(_0x4dc925,_0x3114dc(0x131));existsSync(_0x4228a6)?(copyFileSync(_0x4228a6,_0x4dae4e),logger[_0x3114dc(0x12c)]('mcp-cursor','复制\x20Cursor\x20Rules\x20文件',{'from':_0x4228a6,'to':_0x4dae4e}),console[_0x3114dc(0x126)](_0x3114dc(0x128))):logger[_0x3114dc(0x114)](_0x3114dc(0xff),_0x3114dc(0x101),{'templatePath':_0x4228a6});}catch(_0x4d075a){logger['error']('mcp-cursor','复制\x20Cursor\x20Rules\x20文件失败',{'error':_0x4d075a instanceof Error?_0x4d075a['message']:String(_0x4d075a)}),console[_0x3114dc(0x114)](_0x3114dc(0x106)+(_0x4d075a instanceof Error?_0x4d075a[_0x3114dc(0x10f)]:String(_0x4d075a)));}else console['log'](_0x3114dc(0x12d)),logger['info']('mcp-cursor',_0x3114dc(0x120),{'path':_0x4dae4e});console[_0x3114dc(0x126)]('\x0a✓\x20Cursor\x20MCP\x20配置成功!'),console[_0x3114dc(0x126)](_0x3114dc(0x12e)),console[_0x3114dc(0x126)](_0x3114dc(0x11b)+_0x8281),console[_0x3114dc(0x126)](_0x3114dc(0xfe)+_0x3ed5e1),console['log'](_0x3114dc(0x11e)+_0x21fc6e),console['log'](_0x3114dc(0x109)),console[_0x3114dc(0x126)](_0x3114dc(0x130)),logger['info']('mcp-cursor','配置\x20Cursor\x20MCP\x20成功',{'appcode':_0x8281,'env':_0x3ed5e1,'configPath':_0x21fc6e}),process['exit'](0x0);}catch(_0x61bf07){logger[_0x3114dc(0x113)](_0x3114dc(0xff),_0x3114dc(0x105),{'error':_0x61bf07 instanceof Error?_0x61bf07[_0x3114dc(0x10f)]:String(_0x61bf07)}),console[_0x3114dc(0x113)](_0x3114dc(0x10e)+(_0x61bf07 instanceof Error?_0x61bf07['message']:String(_0x61bf07))),process['exit'](0x1);}}function a55_0xe87e(_0x23ba8d,_0x16ad9a){_0x23ba8d=_0x23ba8d-0xfe;const _0x4dc7fd=a55_0x4dc7();let _0xe87e90=_0x4dc7fd[_0x23ba8d];return _0xe87e90;}function a55_0x4dc7(){const _0x1fde93=['\x0a配置信息:','mcpServers','请重启\x20Cursor\x20以加载新的\x20MCP\x20配置。','../../templates/rules/lovrabet_rules.mdc.tpl','16620ckpcHp','\x20\x20-\x20环境:\x20','mcp-cursor','更新现有\x20mcp.json\x20配置','Cursor\x20Rules\x20模板文件不存在','135oTBmiw','appcode','8263680vrKFzc','配置\x20Cursor\x20MCP\x20失败','警告:\x20复制\x20Cursor\x20Rules\x20文件失败:\x20','.cursor','lovrabet_rules.mdc','\x0a现在您可以在\x20Cursor\x20中使用\x20Lovrabet\x20数据集\x20MCP\x20工具了。','7LLiHTM','11212254Jfglrk','创建新的\x20mcp.json\x20配置','错误:\x20解析现有\x20mcp.json\x20失败:\x20','错误:\x20配置失败:\x20','message','157829JkLJqb','解析现有\x20mcp.json\x20失败','创建\x20.cursor/rules\x20目录','error','warn','创建\x20.cursor\x20目录','exit','stringify','6221166DAdDjp','app','1818410yuCtLy','\x20\x20-\x20AppCode:\x20','✓\x20创建\x20.cursor\x20目录:\x20','cwd','\x20\x20-\x20配置文件:\x20','utf8','Cursor\x20Rules\x20文件已存在,跳过','错误:\x20未找到\x20appcode\x20配置,请先运行\x20\x27lovrabet\x20init\x27\x20初始化项目配置','8MuXhpZ','npx','11aSzhSn','online','log','15493740knWEZl','✓\x20创建\x20Cursor\x20Rules\x20文件:\x20.cursor/rules/lovrabet_rules.mdc','rules','✓\x20创建\x20mcp.json\x20配置文件','✓\x20更新\x20mcp.json\x20配置','info','!\x20Cursor\x20Rules\x20文件已存在,跳过创建,如需重新创建,请删除\x20.cursor/rules/lovrabet_rules.mdc\x20文件'];a55_0x4dc7=function(){return _0x1fde93;};return a55_0x4dc7();}
package/lib/mcp/main.js CHANGED
@@ -1 +1 @@
1
- const a56_0x4184e6=a56_0x131a;(function(_0x4876ab,_0x44e182){const _0x17a06a=a56_0x131a,_0x31f732=_0x4876ab();while(!![]){try{const _0x596537=-parseInt(_0x17a06a(0x148))/0x1*(parseInt(_0x17a06a(0x14d))/0x2)+-parseInt(_0x17a06a(0x15a))/0x3+-parseInt(_0x17a06a(0x14f))/0x4+-parseInt(_0x17a06a(0x156))/0x5+-parseInt(_0x17a06a(0x15f))/0x6+-parseInt(_0x17a06a(0x13d))/0x7+-parseInt(_0x17a06a(0x154))/0x8*(-parseInt(_0x17a06a(0x146))/0x9);if(_0x596537===_0x44e182)break;else _0x31f732['push'](_0x31f732['shift']());}catch(_0x4051cf){_0x31f732['push'](_0x31f732['shift']());}}}(a56_0x2ef6,0x7a763));function a56_0x131a(_0x3f97c8,_0x3ab3f8){_0x3f97c8=_0x3f97c8-0x13a;const _0x2ef650=a56_0x2ef6();let _0x131a03=_0x2ef650[_0x3f97c8];return _0x131a03;}function a56_0x2ef6(){const _0x4eaf05=['cwd','错误:\x20不支持的命令:\x20','\x20\x20lovrabet\x20mcp\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20显示帮助信息\x0a','40ZOcrKB','\x20\x20lovrabet\x20mcp\x20install\x20claude\x20\x20\x20\x20#\x20claude\x20code\x0a','783165JmjSvW','\x0a支持的平台:\x20cursor,\x20claude\x0a','\x20\x20lovrabet\x20mcp\x20install\x20cursor\x20\x20\x20\x20#\x20Cursor\x20IDE','log','2409765PRWXgw','message','claude\x20code','help','\x0a请指定要配置的平台:\x0a','1320360nKTwks','Cursor','setLogPath','\x0a📦\x20正在配置\x20','不支持的命令:\x20','3874276USxaRA','支持的平台:','\x20MCP...\x0a','--help','错误:\x20不支持的平台:\x20','\x20\x20claude\x20\x20\x20-\x20claude\x20code\x0a','toLowerCase','error','\x0a可用命令:','6007131faHHJH','claude','952317irCJlU','\x0a错误:\x20配置失败\x20-\x20','install','name','\x0aLovrabet\x20MCP\x20-\x20MCP\x20服务器配置工具\x0a\x0a用法:\x0a\x20\x20lovrabet\x20mcp\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20显示帮助信息\x0a\x20\x20lovrabet\x20mcp\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20交互式选择并配置\x20MCP\x0a\x20\x20lovrabet\x20mcp\x20install\x20--cursor\x20\x20\x20\x20直接配置\x20Cursor\x20MCP\x0a\x20\x20lovrabet\x20mcp\x20install\x20--claude\x20\x20\x20\x20直接配置\x20Claude\x20Code\x20MCP\x0a\x20\x20lovrabet\x20mcp\x20install\x20--other\x20\x20\x20\x20\x20显示其他\x20IDE\x20配置指引\x0a\x0a配置方式:\x0a\x20\x20\x20交互式选择\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20显示\x20IDE\x20列表供选择,支持多选\x0a\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x0a\x20\x20\x20\x20→\x20使用\x20↑↓\x20移动光标,空格选中/取消,Enter\x20确认\x0a\x20\x20\x20\x20→\x20按\x20a\x20全选,按\x20i/r\x20反选,按\x20q\x20退出\x0a\x0a\x20\x20直接配置指定\x20IDE\x20(支持多个)\x20\x20\x20\x20\x20-\x20使用\x20--ide\x20标志直接配置\x0a\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x20--cursor\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20配置\x20Cursor\x0a\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x20--cursor\x20--claude\x20\x20#\x20配置多个\x0a\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x20--other\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20显示其他\x20IDE\x20配置指引\x0a\x0a支持的\x20IDE:\x0a\x20\x20--cursor\x20\x20\x20\x20\x20\x20\x20Cursor\x20\x20\x20\x20\x20-\x20自动写入\x20.cursor/mcp.json,重启\x20IDE\x20后生效\x0a\x20\x20--claude\x20\x20\x20\x20\x20\x20\x20Claude\x20Code\x20-\x20输出配置命令供手动执行\x0a\x20\x20--other\x20\x20\x20\x20\x20\x20\x20\x20其他\x20IDE\x20\x20\x20\x20-\x20显示各\x20IDE\x20的配置指引(Antigravity/Codex/Copilot/OpenCode/Qoder/Windsurf\x20等)\x0a\x0a示例:\x0a\x20\x20$\x20lovrabet\x20mcp\x20install\x0a\x20\x20\x20\x20→\x20交互式选择\x20IDE\x0a\x0a\x20\x20$\x20lovrabet\x20mcp\x20install\x20--cursor\x0a\x20\x20\x20\x20→\x20自动配置\x20Cursor\x20MCP\x20(写入\x20.cursor/mcp.json)\x0a\x0a\x20\x20$\x20lovrabet\x20mcp\x20install\x20--claude\x0a\x20\x20\x20\x20→\x20输出\x20Claude\x20Code\x20MCP\x20配置命令\x0a\x0a\x20\x20$\x20lovrabet\x20mcp\x20install\x20--other\x0a\x20\x20\x20\x20→\x20显示其他\x20IDE\x20的配置指引\x0a\x0a配置指南:\x0a\x20\x20https://help.yuntoo.com/mcp/config-guide\x0a','2yOtCWK','exit','599836wGpCoO','(空)'];a56_0x2ef6=function(){return _0x4eaf05;};return a56_0x2ef6();}import{configureCursorMcp}from'./cursor.js';import{configureClaudeMcp}from'./claude.js';import{logger}from'../utils/logger.js';const IDE_CONFIGS={'cursor':{'name':a56_0x4184e6(0x160),'description':'Cursor\x20IDE'},'claude':{'name':a56_0x4184e6(0x15c),'description':a56_0x4184e6(0x15c)}};export async function mcpCommand(_0x461cc5,_0x3ba786,_0x357f30){const _0x408017=a56_0x4184e6;logger[_0x408017(0x13a)](process[_0x408017(0x151)]());if(_0x357f30?.[_0x408017(0x15d)]||_0x461cc5===_0x408017(0x140)){showHelp();return;}_0x461cc5!==_0x408017(0x14a)&&(console['error'](_0x408017(0x152)+(_0x461cc5||_0x408017(0x150))),console[_0x408017(0x159)](_0x408017(0x145)),console[_0x408017(0x159)]('\x20\x20lovrabet\x20mcp\x20install\x20<ide>\x20\x20\x20\x20#\x20安装\x20MCP\x20配置'),console[_0x408017(0x159)](_0x408017(0x153)),console[_0x408017(0x159)](_0x408017(0x13e)),console['log']('\x20\x20cursor\x20\x20\x20-\x20Cursor\x20IDE'),console[_0x408017(0x159)](_0x408017(0x142)),logger[_0x408017(0x144)]('mcp',_0x408017(0x13c)+_0x461cc5),process[_0x408017(0x14e)](0x1)),await installMcp(_0x3ba786?.[0x0]);}function showHelp(){const _0x2d7f90=a56_0x4184e6;console[_0x2d7f90(0x159)](_0x2d7f90(0x14c));}async function installMcp(_0x3c8a09){const _0x2ebc93=a56_0x4184e6;!_0x3c8a09&&(console[_0x2ebc93(0x159)](_0x2ebc93(0x15e)),console[_0x2ebc93(0x159)](_0x2ebc93(0x158)),console[_0x2ebc93(0x159)](_0x2ebc93(0x155)),process[_0x2ebc93(0x14e)](0x1));const _0x4269bd=_0x3c8a09[_0x2ebc93(0x143)]();!IDE_CONFIGS[_0x4269bd]&&(console[_0x2ebc93(0x144)](_0x2ebc93(0x141)+_0x3c8a09),console[_0x2ebc93(0x159)](_0x2ebc93(0x157)),process[_0x2ebc93(0x14e)](0x1));try{console[_0x2ebc93(0x159)](_0x2ebc93(0x13b)+IDE_CONFIGS[_0x4269bd][_0x2ebc93(0x14b)]+_0x2ebc93(0x13f));switch(_0x4269bd){case'cursor':await configureCursorMcp();break;case _0x2ebc93(0x147):await configureClaudeMcp();break;}}catch(_0x1eaee6){logger['error']('mcp-install','配置失败',{'error':_0x1eaee6 instanceof Error?_0x1eaee6[_0x2ebc93(0x15b)]:String(_0x1eaee6)}),console[_0x2ebc93(0x144)](_0x2ebc93(0x149)+(_0x1eaee6 instanceof Error?_0x1eaee6[_0x2ebc93(0x15b)]:String(_0x1eaee6))+'\x0a'),process[_0x2ebc93(0x14e)](0x1);}}
1
+ const a56_0x58da98=a56_0x24b4;(function(_0x12c4a4,_0x21456f){const _0x56e130=a56_0x24b4,_0x1efdc2=_0x12c4a4();while(!![]){try{const _0x4d6058=-parseInt(_0x56e130(0x77))/0x1*(parseInt(_0x56e130(0x8a))/0x2)+parseInt(_0x56e130(0x7b))/0x3*(parseInt(_0x56e130(0x93))/0x4)+-parseInt(_0x56e130(0x8c))/0x5+parseInt(_0x56e130(0x9d))/0x6+parseInt(_0x56e130(0x96))/0x7*(-parseInt(_0x56e130(0x7d))/0x8)+-parseInt(_0x56e130(0x90))/0x9+-parseInt(_0x56e130(0x84))/0xa*(-parseInt(_0x56e130(0x94))/0xb);if(_0x4d6058===_0x21456f)break;else _0x1efdc2['push'](_0x1efdc2['shift']());}catch(_0xb8a695){_0x1efdc2['push'](_0x1efdc2['shift']());}}}(a56_0x4200,0x190d3));import{configureCursorMcp}from'./cursor.js';import{configureClaudeMcp}from'./claude.js';import{logger}from'../utils/logger.js';const IDE_CONFIGS={'cursor':{'name':a56_0x58da98(0x8e),'description':a56_0x58da98(0x8f)},'claude':{'name':'claude\x20code','description':'claude\x20code'}};export async function mcpCommand(_0xc127a3,_0x18893e,_0x5378a9){const _0x14ea29=a56_0x58da98;logger['setLogPath'](process[_0x14ea29(0x86)]());if(_0x5378a9?.[_0x14ea29(0x9c)]||_0xc127a3===_0x14ea29(0x79)){showHelp();return;}_0xc127a3!==_0x14ea29(0x95)&&(console[_0x14ea29(0x87)](_0x14ea29(0x81)+(_0xc127a3||_0x14ea29(0x9b))),console[_0x14ea29(0x75)](_0x14ea29(0x88)),console[_0x14ea29(0x75)](_0x14ea29(0x98)),console['log'](_0x14ea29(0x8d)),console[_0x14ea29(0x75)](_0x14ea29(0x7e)),console['log'](_0x14ea29(0x9f)),console[_0x14ea29(0x75)](_0x14ea29(0x7a)),logger['error']('mcp',_0x14ea29(0x76)+_0xc127a3),process[_0x14ea29(0x8b)](0x1)),await installMcp(_0x18893e?.[0x0]);}function showHelp(){const _0x469bda=a56_0x58da98;console[_0x469bda(0x75)](_0x469bda(0x83));}async function installMcp(_0x489538){const _0x3d3424=a56_0x58da98;!_0x489538&&(console[_0x3d3424(0x75)](_0x3d3424(0x91)),console[_0x3d3424(0x75)](_0x3d3424(0x9a)),console[_0x3d3424(0x75)](_0x3d3424(0x74)),process[_0x3d3424(0x8b)](0x1));const _0x43dbdf=_0x489538[_0x3d3424(0x85)]();!IDE_CONFIGS[_0x43dbdf]&&(console[_0x3d3424(0x87)](_0x3d3424(0x89)+_0x489538),console['log'](_0x3d3424(0x82)),process[_0x3d3424(0x8b)](0x1));try{console[_0x3d3424(0x75)](_0x3d3424(0x80)+IDE_CONFIGS[_0x43dbdf][_0x3d3424(0x7c)]+_0x3d3424(0x78));switch(_0x43dbdf){case _0x3d3424(0x7f):await configureCursorMcp();break;case'claude':await configureClaudeMcp();break;}}catch(_0x5d70c9){logger[_0x3d3424(0x87)](_0x3d3424(0x97),_0x3d3424(0x99),{'error':_0x5d70c9 instanceof Error?_0x5d70c9[_0x3d3424(0x92)]:String(_0x5d70c9)}),console['error'](_0x3d3424(0x9e)+(_0x5d70c9 instanceof Error?_0x5d70c9[_0x3d3424(0x92)]:String(_0x5d70c9))+'\x0a'),process[_0x3d3424(0x8b)](0x1);}}function a56_0x24b4(_0x759eca,_0x11c5c1){_0x759eca=_0x759eca-0x74;const _0x4200d7=a56_0x4200();let _0x24b40f=_0x4200d7[_0x759eca];return _0x24b40f;}function a56_0x4200(){const _0x5030ce=['\x20\x20lovrabet\x20mcp\x20install\x20cursor\x20\x20\x20\x20#\x20Cursor\x20IDE','(空)','help','230802svYtzy','\x0a错误:\x20配置失败\x20-\x20','\x20\x20cursor\x20\x20\x20-\x20Cursor\x20IDE','\x20\x20lovrabet\x20mcp\x20install\x20claude\x20\x20\x20\x20#\x20claude\x20code\x0a','log','不支持的命令:\x20','1lyhWNq','\x20MCP...\x0a','--help','\x20\x20claude\x20\x20\x20-\x20claude\x20code\x0a','27LpocEg','name','87680lvOYaN','支持的平台:','cursor','\x0a📦\x20正在配置\x20','错误:\x20不支持的命令:\x20','\x0a支持的平台:\x20cursor,\x20claude\x0a','\x0aLovrabet\x20MCP\x20-\x20MCP\x20服务器配置工具\x0a\x0a用法:\x0a\x20\x20lovrabet\x20mcp\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20显示帮助信息\x0a\x20\x20lovrabet\x20mcp\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20交互式选择并配置\x20MCP\x0a\x20\x20lovrabet\x20mcp\x20install\x20--cursor\x20\x20\x20\x20直接配置\x20Cursor\x20MCP\x0a\x20\x20lovrabet\x20mcp\x20install\x20--claude\x20\x20\x20\x20直接配置\x20Claude\x20Code\x20MCP\x0a\x20\x20lovrabet\x20mcp\x20install\x20--other\x20\x20\x20\x20\x20显示其他\x20IDE\x20配置指引\x0a\x0a配置方式:\x0a\x20\x20\x20交互式选择\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20显示\x20IDE\x20列表供选择,支持多选\x0a\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x0a\x20\x20\x20\x20→\x20使用\x20↑↓\x20移动光标,空格选中/取消,Enter\x20确认\x0a\x20\x20\x20\x20→\x20按\x20a\x20全选,按\x20i/r\x20反选,按\x20q\x20退出\x0a\x0a\x20\x20直接配置指定\x20IDE\x20(支持多个)\x20\x20\x20\x20\x20-\x20使用\x20--ide\x20标志直接配置\x0a\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x20--cursor\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20配置\x20Cursor\x0a\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x20--cursor\x20--claude\x20\x20#\x20配置多个\x0a\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x20--other\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20显示其他\x20IDE\x20配置指引\x0a\x0a支持的\x20IDE:\x0a\x20\x20--cursor\x20\x20\x20\x20\x20\x20\x20Cursor\x20\x20\x20\x20\x20-\x20自动写入\x20.cursor/mcp.json,重启\x20IDE\x20后生效\x0a\x20\x20--claude\x20\x20\x20\x20\x20\x20\x20Claude\x20Code\x20-\x20输出配置命令供手动执行\x0a\x20\x20--other\x20\x20\x20\x20\x20\x20\x20\x20其他\x20IDE\x20\x20\x20\x20-\x20显示各\x20IDE\x20的配置指引(Antigravity/Codex/Copilot/OpenCode/Qoder/Windsurf\x20等)\x0a\x0a示例:\x0a\x20\x20$\x20lovrabet\x20mcp\x20install\x0a\x20\x20\x20\x20→\x20交互式选择\x20IDE\x0a\x0a\x20\x20$\x20lovrabet\x20mcp\x20install\x20--cursor\x0a\x20\x20\x20\x20→\x20自动配置\x20Cursor\x20MCP\x20(写入\x20.cursor/mcp.json)\x0a\x0a\x20\x20$\x20lovrabet\x20mcp\x20install\x20--claude\x0a\x20\x20\x20\x20→\x20输出\x20Claude\x20Code\x20MCP\x20配置命令\x0a\x0a\x20\x20$\x20lovrabet\x20mcp\x20install\x20--other\x0a\x20\x20\x20\x20→\x20显示其他\x20IDE\x20的配置指引\x0a\x0a配置指南:\x0a\x20\x20https://help.yuntoo.com/mcp/config-guide\x0a','790dJAjNi','toLowerCase','cwd','error','\x0a可用命令:','错误:\x20不支持的平台:\x20','388588wKPmAa','exit','76950kOcWKy','\x20\x20lovrabet\x20mcp\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20显示帮助信息\x0a','Cursor','Cursor\x20IDE','504810eiBtSY','\x0a请指定要配置的平台:\x0a','message','53752xyASeL','30624jteTVi','install','7uRkubv','mcp-install','\x20\x20lovrabet\x20mcp\x20install\x20<ide>\x20\x20\x20\x20#\x20安装\x20MCP\x20配置','配置失败'];a56_0x4200=function(){return _0x5030ce;};return a56_0x4200();}
@@ -1 +1 @@
1
- const a57_0x3c8635=a57_0x39b6;(function(_0x44c7da,_0xb56838){const _0x58a4ed=a57_0x39b6,_0x1327fd=_0x44c7da();while(!![]){try{const _0x4ffca7=-parseInt(_0x58a4ed(0x155))/0x1+parseInt(_0x58a4ed(0x12c))/0x2*(parseInt(_0x58a4ed(0x149))/0x3)+-parseInt(_0x58a4ed(0x157))/0x4*(parseInt(_0x58a4ed(0x143))/0x5)+-parseInt(_0x58a4ed(0x158))/0x6+parseInt(_0x58a4ed(0x132))/0x7*(-parseInt(_0x58a4ed(0x169))/0x8)+parseInt(_0x58a4ed(0x14a))/0x9*(-parseInt(_0x58a4ed(0x175))/0xa)+parseInt(_0x58a4ed(0x148))/0xb;if(_0x4ffca7===_0xb56838)break;else _0x1327fd['push'](_0x1327fd['shift']());}catch(_0xb5632b){_0x1327fd['push'](_0x1327fd['shift']());}}}(a57_0xdf53,0x8ac25));import{jsx as a57_0x201771,jsxs as a57_0x1f6342,Fragment as a57_0x48d05f}from'react/jsx-runtime';import{useState,useEffect}from'react';import{Text,Box,useInput,useApp}from'ink';import{existsSync,mkdirSync,writeFileSync,copyFileSync,readdirSync,statSync}from'node:fs';import{resolve,dirname,join}from'node:path';function a57_0xdf53(){const _0x379dd9=['length','../../templates/skills','qoder','stringify','开发者指南位置:\x20.lovrabet/skill/.shared/guides/','white','OpenCode','.lovrabet/skill-manifest.json','.claude','.lovrabet','102734bzLtQD','info','2.0.0','toISOString','Cursor','\x20\x20✓\x20','7627977hfijFb','description','.codex','add','selecting','upArrow','Qoder','已安装\x20','delete','name','其他\x20(通用模板)','value','utf-8','通用模板\x20(.agent/skills/)\x20-\x20兜底方案','.windsurf','\x20\x20✗\x20安装\x20','map','15dSFKwZ','OpenCode\x20IDE\x20(.opencode/skills/)','.agent','.trae','Codex\x20IDE\x20(.codex/skills/)','35448402LPQsHC','57lZYcXf','72GORSJf','*\x20安装\x20Lovrabet\x20技能包\x20-\x20选择\x20IDE','trae','installing','green','正在安装技能包...','[\x20]','gray','Cursor\x20IDE\x20(.cursorrules\x20+\x20.cursor/commands/)','setLogPath','cursor','378893fRakWo','codex','1512492qxfcHd','3752694WyistM','downArrow','.opencode','CodeBuddy','CodeBuddy\x20IDE\x20(.codebuddy/skills/)','\x20个目录','agent','按任意键退出...','size','claude','[✓]','label','Trae','.lovrabet/skill/.shared','cyan','Windsurf\x20IDE\x20(.windsurf/workflows/)','.shared','8jQVict','Antigravity','cwd','Claude\x20Code\x20(.claude/skills/)','安装成功','return','Antigravity\x20IDE\x20(.agent/skills/)','windsurf','from','done','red','.cursor','502220PWIkSD','antigravity','error','has','.qoder','column','filter','folders'];a57_0xdf53=function(){return _0x379dd9;};return a57_0xdf53();}import{fileURLToPath}from'node:url';import{logger}from'../utils/logger.js';const __dirname=dirname(fileURLToPath(import.meta.url)),IDE_CONFIGS={'cursor':{'name':a57_0x3c8635(0x130),'description':a57_0x3c8635(0x152),'folders':['.cursorrules',a57_0x3c8635(0x174)]},'windsurf':{'name':'Windsurf','description':a57_0x3c8635(0x167),'folders':[a57_0x3c8635(0x140)]},'claude':{'name':'Claude\x20Code','description':a57_0x3c8635(0x16c),'folders':[a57_0x3c8635(0x12a)]},'codex':{'name':'Codex','description':a57_0x3c8635(0x147),'folders':[a57_0x3c8635(0x134)]},'opencode':{'name':a57_0x3c8635(0x128),'description':a57_0x3c8635(0x144),'folders':[a57_0x3c8635(0x15a)]},'qoder':{'name':a57_0x3c8635(0x138),'description':'Qoder\x20IDE\x20(.qoder/rules/\x20+\x20.qoder/skills/)','folders':[a57_0x3c8635(0x179)]},'codebuddy':{'name':a57_0x3c8635(0x15b),'description':a57_0x3c8635(0x15c),'folders':['.codebuddy']},'trae':{'name':a57_0x3c8635(0x164),'description':'Trae\x20IDE\x20(.trae/skills/)','folders':[a57_0x3c8635(0x146)]},'agent':{'name':a57_0x3c8635(0x13c),'description':a57_0x3c8635(0x13f),'folders':[a57_0x3c8635(0x145)]},'antigravity':{'name':a57_0x3c8635(0x16a),'description':a57_0x3c8635(0x16f),'folders':[a57_0x3c8635(0x145)]}},IDE_LIST=[a57_0x3c8635(0x176),a57_0x3c8635(0x161),'codebuddy',a57_0x3c8635(0x156),a57_0x3c8635(0x154),'opencode',a57_0x3c8635(0x17f),a57_0x3c8635(0x14c),a57_0x3c8635(0x170),a57_0x3c8635(0x15e)];function a57_0x39b6(_0x10c417,_0x4dee3d){_0x10c417=_0x10c417-0x127;const _0xdf5361=a57_0xdf53();let _0x39b683=_0xdf5361[_0x10c417];return _0x39b683;}export function SkillInstallUI({preselectedIDEs:preselectedIDEs=[]}){const _0xd41561=a57_0x3c8635,{exit:_0x23a83b}=useApp(),[_0x264a11,_0x18030d]=useState(_0xd41561(0x136)),[_0x5a9ef2,_0x5c95ce]=useState(new Set(preselectedIDEs['map'](_0x2d49c8=>IDE_LIST['indexOf'](_0x2d49c8))[_0xd41561(0x17b)](_0x3e3ab6=>_0x3e3ab6>=0x0))),[_0x137dd0,_0x1df98e]=useState(0x0),[_0x559fa0,_0x21bb06]=useState([]),[_0x1dae14,_0x2ea52b]=useState([]),[_0x49fdba,_0x20b0e1]=useState(0x0),[_0x4803ae,_0x5b6091]=useState('');useEffect(()=>{const _0x1db811=_0xd41561;preselectedIDEs[_0x1db811(0x17d)]>0x0&&_0x5a9ef2[_0x1db811(0x160)]>0x0&&_0x34cca1();},[]),useInput((_0x7d6d7d,_0x487a32)=>{const _0x25d7db=_0xd41561;if(_0x264a11===_0x25d7db(0x136)){if(_0x487a32[_0x25d7db(0x137)]){_0x1df98e(_0x271c98=>_0x271c98>0x0?_0x271c98-0x1:IDE_LIST[_0x25d7db(0x17d)]-0x1);return;}if(_0x487a32[_0x25d7db(0x159)]){_0x1df98e(_0x5f2cea=>_0x5f2cea<IDE_LIST[_0x25d7db(0x17d)]-0x1?_0x5f2cea+0x1:0x0);return;}if(_0x7d6d7d==='\x20'){_0x5c95ce(_0x389e10=>{const _0x38386d=_0x25d7db,_0x4fdab0=new Set(_0x389e10);return _0x4fdab0['has'](_0x137dd0)?_0x4fdab0[_0x38386d(0x13a)](_0x137dd0):_0x4fdab0[_0x38386d(0x135)](_0x137dd0),_0x4fdab0;});return;}if(_0x7d6d7d==='a'||_0x7d6d7d==='A'){const _0x32003a=new Set(IDE_LIST[_0x25d7db(0x142)]((_0x2b856f,_0x273b47)=>_0x273b47));_0x5c95ce(_0x32003a);return;}if(_0x7d6d7d==='i'||_0x7d6d7d==='I'||_0x7d6d7d==='r'||_0x7d6d7d==='R'){_0x5c95ce(_0x1e45e8=>{const _0x2c058c=_0x25d7db,_0x21147d=new Set();for(let _0x4e39b4=0x0;_0x4e39b4<IDE_LIST[_0x2c058c(0x17d)];_0x4e39b4++){!_0x1e45e8[_0x2c058c(0x178)](_0x4e39b4)&&_0x21147d['add'](_0x4e39b4);}return _0x21147d;});return;}if(_0x7d6d7d==='q'||_0x7d6d7d==='Q'){_0x23a83b();return;}if(_0x487a32[_0x25d7db(0x16e)]){if(_0x5a9ef2[_0x25d7db(0x160)]===0x0){_0x5b6091('请至少选择一个\x20IDE');return;}_0x34cca1();return;}}if(_0x264a11===_0x25d7db(0x172)){_0x23a83b();return;}});async function _0x34cca1(){const _0x23be61=_0xd41561,_0xcad4fa=Array[_0x23be61(0x171)](_0x5a9ef2)[_0x23be61(0x142)](_0x5f296b=>IDE_LIST[_0x5f296b])[_0x23be61(0x17b)](_0x217734=>_0x217734!==undefined);_0x2ea52b(_0xcad4fa),_0x21bb06([{'label':'已选择\x20IDE','value':_0x5a9ef2['size']+'\x20个'}]),_0x18030d(_0x23be61(0x14d)),await _0x1700dc(_0xcad4fa);}async function _0x1700dc(_0x5e2519){const _0x25c459=_0xd41561,_0x19038f=process[_0x25c459(0x16b)](),_0xc89747=resolve(__dirname,_0x25c459(0x17e));logger[_0x25c459(0x153)](_0x19038f);const _0x348f89=join(_0xc89747,_0x25c459(0x168)),_0x177ae4=join(_0x19038f,_0x25c459(0x165));existsSync(_0x348f89)&&await copyDir(_0x348f89,_0x177ae4);let _0x26f82e=0x1;for(const _0x182b89 of _0x5e2519){try{const _0x370ea5=await installSingleIDE(_0x182b89,_0x19038f,_0xc89747);_0x26f82e+=_0x370ea5,_0x20b0e1(_0x26f82e);}catch(_0x203775){console[_0x25c459(0x177)](_0x25c459(0x141)+_0x182b89+'\x20失败:\x20'+(_0x203775 instanceof Error?_0x203775['message']:String(_0x203775)));}}const _0x14c123={'version':_0x25c459(0x12e),'installedAt':new Date()[_0x25c459(0x12f)](),'platforms':_0x5e2519},_0x556a72=join(_0x19038f,_0x25c459(0x129));!existsSync(join(_0x19038f,_0x25c459(0x12b)))&&mkdirSync(join(_0x19038f,_0x25c459(0x12b)),{'recursive':!![]}),writeFileSync(_0x556a72,JSON[_0x25c459(0x180)](_0x14c123,null,0x2),_0x25c459(0x13e)),logger[_0x25c459(0x12d)]('skill-install',_0x25c459(0x16d),{'projectRoot':_0x19038f,'ides':_0x5e2519,'foldersCount':_0x26f82e}),_0x18030d(_0x25c459(0x172)),setTimeout(()=>{_0x23a83b();},0x3e8);}return a57_0x1f6342(Box,{'flexDirection':_0xd41561(0x17a),'marginTop':0x1,'children':[_0x264a11===_0xd41561(0x136)&&a57_0x1f6342(a57_0x48d05f,{'children':[a57_0x201771(Box,{'children':a57_0x201771(Text,{'color':_0xd41561(0x166),'children':_0xd41561(0x14b)})}),_0x4803ae&&a57_0x201771(Box,{'marginTop':0x1,'children':a57_0x1f6342(Text,{'color':_0xd41561(0x173),'children':['✗\x20',_0x4803ae]})}),a57_0x1f6342(Box,{'marginTop':0x1,'flexDirection':_0xd41561(0x17a),'children':[a57_0x201771(Text,{'bold':!![],'children':'*\x20请选择要安装的\x20IDE:'}),IDE_LIST[_0xd41561(0x142)]((_0x25f488,_0x29075d)=>{const _0x5976dc=_0xd41561,_0x35d5e9=_0x137dd0===_0x29075d,_0x56468c=_0x5a9ef2['has'](_0x29075d);return a57_0x201771(Box,{'children':a57_0x1f6342(Text,{'backgroundColor':_0x35d5e9?'blue':undefined,'color':_0x35d5e9?_0x5976dc(0x127):undefined,'children':['\x20\x20',_0x56468c?_0x5976dc(0x162):_0x5976dc(0x150),'\x20',IDE_CONFIGS[_0x25f488][_0x5976dc(0x13b)],'\x20',a57_0x1f6342(Text,{'color':_0x35d5e9?_0x5976dc(0x127):_0x5976dc(0x151),'dimColor':!_0x35d5e9,'children':['-\x20',IDE_CONFIGS[_0x25f488][_0x5976dc(0x133)]]})]})},_0x25f488);}),a57_0x201771(Box,{'marginTop':0x1,'children':a57_0x1f6342(Text,{'color':_0xd41561(0x151),'children':['\x20','↑/↓:\x20移动光标\x20空格:\x20切换选中\x20a:\x20全选\x20i/r:\x20反选\x20q:\x20退出\x20Enter:\x20确认']})})]})]}),_0x264a11===_0xd41561(0x14d)&&a57_0x1f6342(a57_0x48d05f,{'children':[_0x559fa0[_0xd41561(0x142)]((_0x5c8455,_0x1cc182)=>a57_0x1f6342(Box,{'children':[a57_0x1f6342(Text,{'color':_0xd41561(0x14e),'children':['√\x20',_0x5c8455[_0xd41561(0x163)],':\x20']}),a57_0x201771(Text,{'color':'cyan','children':_0x5c8455[_0xd41561(0x13d)]})]},_0x1cc182)),a57_0x201771(Box,{'marginTop':0x1,'children':a57_0x201771(Text,{'children':_0xd41561(0x14f)})}),_0x1dae14[_0xd41561(0x142)](_0x350dee=>a57_0x1f6342(Box,{'children':[a57_0x201771(Text,{'color':_0xd41561(0x14e),'children':_0xd41561(0x131)}),a57_0x201771(Text,{'children':IDE_CONFIGS[_0x350dee]?.[_0xd41561(0x13b)]||_0x350dee})]},_0x350dee)),a57_0x201771(Box,{'marginTop':0x1,'children':a57_0x1f6342(Text,{'color':_0xd41561(0x151),'children':[_0xd41561(0x139),_0x49fdba,_0xd41561(0x15d)]})})]}),_0x264a11===_0xd41561(0x172)&&a57_0x1f6342(a57_0x48d05f,{'children':[a57_0x201771(Box,{'children':a57_0x1f6342(Text,{'color':_0xd41561(0x14e),'children':['✓\x20技能包安装成功!共安装\x20',_0x49fdba,_0xd41561(0x15d)]})}),a57_0x201771(Box,{'marginTop':0x1,'children':a57_0x201771(Text,{'color':_0xd41561(0x151),'children':_0xd41561(0x181)})}),a57_0x201771(Box,{'marginTop':0x1,'children':a57_0x201771(Text,{'color':_0xd41561(0x151),'children':_0xd41561(0x15f)})})]})]});}async function copyDir(_0xc96b09,_0x50fc3b){const _0x28408a=statSync(_0xc96b09);if(_0x28408a['isDirectory']()){!existsSync(_0x50fc3b)&&mkdirSync(_0x50fc3b,{'recursive':!![]});const _0xcf6e26=readdirSync(_0xc96b09);for(const _0x58e779 of _0xcf6e26){await copyDir(join(_0xc96b09,_0x58e779),join(_0x50fc3b,_0x58e779));}}else copyFileSync(_0xc96b09,_0x50fc3b);}async function installSingleIDE(_0x40d21c,_0x16eae9,_0xdda1f0){const _0x1809a0=a57_0x3c8635,_0x143d4d=_0x40d21c!==_0x1809a0(0x15e)&&IDE_CONFIGS[_0x40d21c]!==undefined,_0x26318d=_0x40d21c===_0x1809a0(0x15e)||!_0x143d4d,_0xaf4474=_0x26318d?['.agent']:_0x143d4d?IDE_CONFIGS[_0x40d21c][_0x1809a0(0x17c)]:[_0x1809a0(0x145)];let _0x17d8a9=0x0;for(const _0xfe1a78 of _0xaf4474){const _0x39f296=join(_0xdda1f0,_0xfe1a78),_0x1ac3e2=join(_0x16eae9,_0xfe1a78);if(!existsSync(_0x39f296))continue;await copyDir(_0x39f296,_0x1ac3e2),_0x17d8a9++;}return _0x17d8a9;}
1
+ const a57_0x3f831d=a57_0x8cfa;(function(_0xc855c6,_0x105b1d){const _0x213dfd=a57_0x8cfa,_0x545079=_0xc855c6();while(!![]){try{const _0x556dfb=parseInt(_0x213dfd(0x188))/0x1*(-parseInt(_0x213dfd(0x151))/0x2)+-parseInt(_0x213dfd(0x177))/0x3+parseInt(_0x213dfd(0x183))/0x4*(parseInt(_0x213dfd(0x17b))/0x5)+-parseInt(_0x213dfd(0x169))/0x6*(parseInt(_0x213dfd(0x181))/0x7)+-parseInt(_0x213dfd(0x19d))/0x8+-parseInt(_0x213dfd(0x178))/0x9*(parseInt(_0x213dfd(0x150))/0xa)+parseInt(_0x213dfd(0x19c))/0xb;if(_0x556dfb===_0x105b1d)break;else _0x545079['push'](_0x545079['shift']());}catch(_0x51f597){_0x545079['push'](_0x545079['shift']());}}}(a57_0x47ee,0xec09c));function a57_0x8cfa(_0x362238,_0x303dc0){_0x362238=_0x362238-0x147;const _0x47ee3b=a57_0x47ee();let _0x8cfade=_0x47ee3b[_0x362238];return _0x8cfade;}import{jsx as a57_0x203c53,jsxs as a57_0x1937e0,Fragment as a57_0x27a5db}from'react/jsx-runtime';import{useState,useEffect}from'react';import{Text,Box,useInput,useApp}from'ink';function a57_0x47ee(){const _0xe8d753=['../../templates/skills','value','upArrow','agent','.lovrabet','codebuddy','opencode','1022142rtuSuy','9146484mSqWal','[\x20]','\x20\x20✓\x20','4735345FJYBiR','OpenCode','name','info','\x20失败:\x20','.codebuddy','7RnoGlI','↑/↓:\x20移动光标\x20空格:\x20切换选中\x20a:\x20全选\x20i/r:\x20反选\x20q:\x20退出\x20Enter:\x20确认','4wfnpos','请至少选择一个\x20IDE','Trae','Windsurf\x20IDE\x20(.windsurf/workflows/)','column','961yhQGXv','cursor','按任意键退出...','error','green','size','downArrow','from','antigravity','CodeBuddy','.agent','return','Claude\x20Code','gray','blue','cwd','.opencode','通用模板\x20(.agent/skills/)\x20-\x20兜底方案','.lovrabet/skill/.shared','installing','32035553afSPdv','2680816fdnRwn','has','Windsurf','\x20\x20✗\x20安装\x20','white','已安装\x20','delete','codex','Claude\x20Code\x20(.claude/skills/)','.lovrabet/skill-manifest.json','skill-install','.trae','10QgRDvg','1910mLWJQS','Cursor\x20IDE\x20(.cursorrules\x20+\x20.cursor/commands/)','windsurf','\x20个目录','OpenCode\x20IDE\x20(.opencode/skills/)','2.0.0','map','Trae\x20IDE\x20(.trae/skills/)','CodeBuddy\x20IDE\x20(.codebuddy/skills/)','.windsurf','add','label','length','Cursor','开发者指南位置:\x20.lovrabet/skill/.shared/guides/','claude','.codex','正在安装技能包...','cyan','selecting','done','isDirectory','folders','toISOString','1696398rIFwoP','Codex\x20IDE\x20(.codex/skills/)','Codex','Antigravity\x20IDE\x20(.agent/skills/)','indexOf','.qoder','其他\x20(通用模板)'];a57_0x47ee=function(){return _0xe8d753;};return a57_0x47ee();}import{existsSync,mkdirSync,writeFileSync,copyFileSync,readdirSync,statSync}from'node:fs';import{resolve,dirname,join}from'node:path';import{fileURLToPath}from'node:url';import{logger}from'../utils/logger.js';const __dirname=dirname(fileURLToPath(import.meta.url)),IDE_CONFIGS={'cursor':{'name':a57_0x3f831d(0x15e),'description':a57_0x3f831d(0x152),'folders':['.cursorrules','.cursor']},'windsurf':{'name':a57_0x3f831d(0x19f),'description':a57_0x3f831d(0x186),'folders':[a57_0x3f831d(0x15a)]},'claude':{'name':a57_0x3f831d(0x194),'description':a57_0x3f831d(0x14c),'folders':['.claude']},'codex':{'name':a57_0x3f831d(0x16b),'description':a57_0x3f831d(0x16a),'folders':[a57_0x3f831d(0x161)]},'opencode':{'name':a57_0x3f831d(0x17c),'description':a57_0x3f831d(0x155),'folders':[a57_0x3f831d(0x198)]},'qoder':{'name':'Qoder','description':'Qoder\x20IDE\x20(.qoder/rules/\x20+\x20.qoder/skills/)','folders':[a57_0x3f831d(0x16e)]},'codebuddy':{'name':a57_0x3f831d(0x191),'description':a57_0x3f831d(0x159),'folders':[a57_0x3f831d(0x180)]},'trae':{'name':a57_0x3f831d(0x185),'description':a57_0x3f831d(0x158),'folders':[a57_0x3f831d(0x14f)]},'agent':{'name':a57_0x3f831d(0x16f),'description':a57_0x3f831d(0x199),'folders':[a57_0x3f831d(0x192)]},'antigravity':{'name':'Antigravity','description':a57_0x3f831d(0x16c),'folders':[a57_0x3f831d(0x192)]}},IDE_LIST=[a57_0x3f831d(0x190),a57_0x3f831d(0x160),a57_0x3f831d(0x175),a57_0x3f831d(0x14b),a57_0x3f831d(0x189),a57_0x3f831d(0x176),'qoder','trae',a57_0x3f831d(0x153),a57_0x3f831d(0x173)];export function SkillInstallUI({preselectedIDEs:preselectedIDEs=[]}){const _0x43f7f6=a57_0x3f831d,{exit:_0x268608}=useApp(),[_0x1b71a7,_0x25af7c]=useState(_0x43f7f6(0x164)),[_0x2219d5,_0x4eb260]=useState(new Set(preselectedIDEs['map'](_0x399d12=>IDE_LIST[_0x43f7f6(0x16d)](_0x399d12))['filter'](_0x4ddb0e=>_0x4ddb0e>=0x0))),[_0x3bbaec,_0x3a2205]=useState(0x0),[_0x3fb6b5,_0x330649]=useState([]),[_0x31a5c6,_0x46e43e]=useState([]),[_0x3f1f10,_0x3f5d56]=useState(0x0),[_0xf60ed,_0x2239cd]=useState('');useEffect(()=>{const _0x88c34d=_0x43f7f6;preselectedIDEs[_0x88c34d(0x15d)]>0x0&&_0x2219d5[_0x88c34d(0x18d)]>0x0&&_0xdbb1b4();},[]),useInput((_0x24085c,_0x2acb32)=>{const _0x2372f1=_0x43f7f6;if(_0x1b71a7==='selecting'){if(_0x2acb32[_0x2372f1(0x172)]){_0x3a2205(_0x4a67be=>_0x4a67be>0x0?_0x4a67be-0x1:IDE_LIST[_0x2372f1(0x15d)]-0x1);return;}if(_0x2acb32[_0x2372f1(0x18e)]){_0x3a2205(_0x2e2a36=>_0x2e2a36<IDE_LIST['length']-0x1?_0x2e2a36+0x1:0x0);return;}if(_0x24085c==='\x20'){_0x4eb260(_0x392b53=>{const _0x38b8ad=_0x2372f1,_0x2d397b=new Set(_0x392b53);return _0x2d397b[_0x38b8ad(0x19e)](_0x3bbaec)?_0x2d397b[_0x38b8ad(0x14a)](_0x3bbaec):_0x2d397b[_0x38b8ad(0x15b)](_0x3bbaec),_0x2d397b;});return;}if(_0x24085c==='a'||_0x24085c==='A'){const _0x1c127d=new Set(IDE_LIST[_0x2372f1(0x157)]((_0x3cff6e,_0x23f4b1)=>_0x23f4b1));_0x4eb260(_0x1c127d);return;}if(_0x24085c==='i'||_0x24085c==='I'||_0x24085c==='r'||_0x24085c==='R'){_0x4eb260(_0x46bc67=>{const _0x5b2a64=_0x2372f1,_0x5598f2=new Set();for(let _0x47436b=0x0;_0x47436b<IDE_LIST['length'];_0x47436b++){!_0x46bc67[_0x5b2a64(0x19e)](_0x47436b)&&_0x5598f2['add'](_0x47436b);}return _0x5598f2;});return;}if(_0x24085c==='q'||_0x24085c==='Q'){_0x268608();return;}if(_0x2acb32[_0x2372f1(0x193)]){if(_0x2219d5['size']===0x0){_0x2239cd(_0x2372f1(0x184));return;}_0xdbb1b4();return;}}if(_0x1b71a7==='done'){_0x268608();return;}});async function _0xdbb1b4(){const _0x39817a=_0x43f7f6,_0x3cf7e8=Array[_0x39817a(0x18f)](_0x2219d5)[_0x39817a(0x157)](_0x2bfc76=>IDE_LIST[_0x2bfc76])['filter'](_0xf5872=>_0xf5872!==undefined);_0x46e43e(_0x3cf7e8),_0x330649([{'label':'已选择\x20IDE','value':_0x2219d5[_0x39817a(0x18d)]+'\x20个'}]),_0x25af7c('installing'),await _0x53beae(_0x3cf7e8);}async function _0x53beae(_0x378ae4){const _0x2672cd=_0x43f7f6,_0x245a71=process[_0x2672cd(0x197)](),_0x1b13c4=resolve(__dirname,_0x2672cd(0x170));logger['setLogPath'](_0x245a71);const _0xfc8a94=join(_0x1b13c4,'.shared'),_0x2f254a=join(_0x245a71,_0x2672cd(0x19a));existsSync(_0xfc8a94)&&await copyDir(_0xfc8a94,_0x2f254a);let _0x455d42=0x1;for(const _0x59c264 of _0x378ae4){try{const _0x5a6f00=await installSingleIDE(_0x59c264,_0x245a71,_0x1b13c4);_0x455d42+=_0x5a6f00,_0x3f5d56(_0x455d42);}catch(_0x4dbb6e){console[_0x2672cd(0x18b)](_0x2672cd(0x147)+_0x59c264+_0x2672cd(0x17f)+(_0x4dbb6e instanceof Error?_0x4dbb6e['message']:String(_0x4dbb6e)));}}const _0x4840d4={'version':_0x2672cd(0x156),'installedAt':new Date()[_0x2672cd(0x168)](),'platforms':_0x378ae4},_0x39a4ca=join(_0x245a71,_0x2672cd(0x14d));!existsSync(join(_0x245a71,_0x2672cd(0x174)))&&mkdirSync(join(_0x245a71,'.lovrabet'),{'recursive':!![]}),writeFileSync(_0x39a4ca,JSON['stringify'](_0x4840d4,null,0x2),'utf-8'),logger[_0x2672cd(0x17e)](_0x2672cd(0x14e),'安装成功',{'projectRoot':_0x245a71,'ides':_0x378ae4,'foldersCount':_0x455d42}),_0x25af7c('done'),setTimeout(()=>{_0x268608();},0x3e8);}return a57_0x1937e0(Box,{'flexDirection':_0x43f7f6(0x187),'marginTop':0x1,'children':[_0x1b71a7==='selecting'&&a57_0x1937e0(a57_0x27a5db,{'children':[a57_0x203c53(Box,{'children':a57_0x203c53(Text,{'color':_0x43f7f6(0x163),'children':'*\x20安装\x20Lovrabet\x20技能包\x20-\x20选择\x20IDE'})}),_0xf60ed&&a57_0x203c53(Box,{'marginTop':0x1,'children':a57_0x1937e0(Text,{'color':'red','children':['✗\x20',_0xf60ed]})}),a57_0x1937e0(Box,{'marginTop':0x1,'flexDirection':'column','children':[a57_0x203c53(Text,{'bold':!![],'children':'*\x20请选择要安装的\x20IDE:'}),IDE_LIST['map']((_0xa3a5e3,_0x3286ce)=>{const _0x31e2c4=_0x43f7f6,_0x230ce3=_0x3bbaec===_0x3286ce,_0x5554fe=_0x2219d5['has'](_0x3286ce);return a57_0x203c53(Box,{'children':a57_0x1937e0(Text,{'backgroundColor':_0x230ce3?_0x31e2c4(0x196):undefined,'color':_0x230ce3?_0x31e2c4(0x148):undefined,'children':['\x20\x20',_0x5554fe?'[✓]':_0x31e2c4(0x179),'\x20',IDE_CONFIGS[_0xa3a5e3][_0x31e2c4(0x17d)],'\x20',a57_0x1937e0(Text,{'color':_0x230ce3?_0x31e2c4(0x148):_0x31e2c4(0x195),'dimColor':!_0x230ce3,'children':['-\x20',IDE_CONFIGS[_0xa3a5e3]['description']]})]})},_0xa3a5e3);}),a57_0x203c53(Box,{'marginTop':0x1,'children':a57_0x1937e0(Text,{'color':_0x43f7f6(0x195),'children':['\x20',_0x43f7f6(0x182)]})})]})]}),_0x1b71a7===_0x43f7f6(0x19b)&&a57_0x1937e0(a57_0x27a5db,{'children':[_0x3fb6b5['map']((_0x2d6ffe,_0x5bdae9)=>a57_0x1937e0(Box,{'children':[a57_0x1937e0(Text,{'color':'green','children':['√\x20',_0x2d6ffe[_0x43f7f6(0x15c)],':\x20']}),a57_0x203c53(Text,{'color':'cyan','children':_0x2d6ffe[_0x43f7f6(0x171)]})]},_0x5bdae9)),a57_0x203c53(Box,{'marginTop':0x1,'children':a57_0x203c53(Text,{'children':_0x43f7f6(0x162)})}),_0x31a5c6[_0x43f7f6(0x157)](_0x263dad=>a57_0x1937e0(Box,{'children':[a57_0x203c53(Text,{'color':_0x43f7f6(0x18c),'children':_0x43f7f6(0x17a)}),a57_0x203c53(Text,{'children':IDE_CONFIGS[_0x263dad]?.[_0x43f7f6(0x17d)]||_0x263dad})]},_0x263dad)),a57_0x203c53(Box,{'marginTop':0x1,'children':a57_0x1937e0(Text,{'color':'gray','children':[_0x43f7f6(0x149),_0x3f1f10,'\x20个目录']})})]}),_0x1b71a7===_0x43f7f6(0x165)&&a57_0x1937e0(a57_0x27a5db,{'children':[a57_0x203c53(Box,{'children':a57_0x1937e0(Text,{'color':_0x43f7f6(0x18c),'children':['✓\x20技能包安装成功!共安装\x20',_0x3f1f10,_0x43f7f6(0x154)]})}),a57_0x203c53(Box,{'marginTop':0x1,'children':a57_0x203c53(Text,{'color':_0x43f7f6(0x195),'children':_0x43f7f6(0x15f)})}),a57_0x203c53(Box,{'marginTop':0x1,'children':a57_0x203c53(Text,{'color':_0x43f7f6(0x195),'children':_0x43f7f6(0x18a)})})]})]});}async function copyDir(_0x5228d0,_0x1caeee){const _0x102080=a57_0x3f831d,_0x455d19=statSync(_0x5228d0);if(_0x455d19[_0x102080(0x166)]()){!existsSync(_0x1caeee)&&mkdirSync(_0x1caeee,{'recursive':!![]});const _0x21b92a=readdirSync(_0x5228d0);for(const _0x299556 of _0x21b92a){await copyDir(join(_0x5228d0,_0x299556),join(_0x1caeee,_0x299556));}}else copyFileSync(_0x5228d0,_0x1caeee);}async function installSingleIDE(_0x2378b3,_0x5cbe7e,_0x1a9dd7){const _0x7030e6=a57_0x3f831d,_0x4285b4=_0x2378b3!=='agent'&&IDE_CONFIGS[_0x2378b3]!==undefined,_0x1fb675=_0x2378b3===_0x7030e6(0x173)||!_0x4285b4,_0x3339fb=_0x1fb675?[_0x7030e6(0x192)]:_0x4285b4?IDE_CONFIGS[_0x2378b3][_0x7030e6(0x167)]:[_0x7030e6(0x192)];let _0x2f314d=0x0;for(const _0x2756b9 of _0x3339fb){const _0x5e6bcf=join(_0x1a9dd7,_0x2756b9),_0x4368e3=join(_0x5cbe7e,_0x2756b9);if(!existsSync(_0x5e6bcf))continue;await copyDir(_0x5e6bcf,_0x4368e3),_0x2f314d++;}return _0x2f314d;}
@@ -1 +1 @@
1
- const a58_0x5c78f2=a58_0x31f7;(function(_0x333f04,_0x11135d){const _0x1043a1=a58_0x31f7,_0x528ee2=_0x333f04();while(!![]){try{const _0x4a960c=-parseInt(_0x1043a1(0xd1))/0x1*(parseInt(_0x1043a1(0xe4))/0x2)+-parseInt(_0x1043a1(0xc6))/0x3+parseInt(_0x1043a1(0xfa))/0x4*(parseInt(_0x1043a1(0xd0))/0x5)+parseInt(_0x1043a1(0xb1))/0x6*(parseInt(_0x1043a1(0xec))/0x7)+parseInt(_0x1043a1(0xd4))/0x8*(parseInt(_0x1043a1(0xc0))/0x9)+-parseInt(_0x1043a1(0x106))/0xa+-parseInt(_0x1043a1(0x108))/0xb;if(_0x4a960c===_0x11135d)break;else _0x528ee2['push'](_0x528ee2['shift']());}catch(_0x5aff62){_0x528ee2['push'](_0x528ee2['shift']());}}}(a58_0x148b,0xdb571));import{existsSync,mkdirSync,writeFileSync,copyFileSync,readdirSync,statSync}from'node:fs';import{resolve,dirname,join}from'node:path';import{fileURLToPath}from'node:url';import{createInterface}from'node:readline';import{logger}from'../utils/logger.js';const __dirname=dirname(fileURLToPath(import.meta.url)),IDE_CONFIGS={'cursor':{'name':a58_0x5c78f2(0xf5),'description':a58_0x5c78f2(0xd9),'folders':[a58_0x5c78f2(0xc2),a58_0x5c78f2(0xd5)]},'windsurf':{'name':a58_0x5c78f2(0xcc),'description':a58_0x5c78f2(0x111),'folders':[a58_0x5c78f2(0xf9)]},'claude':{'name':a58_0x5c78f2(0xbd),'description':a58_0x5c78f2(0xad),'folders':[a58_0x5c78f2(0xaa)]},'codex':{'name':a58_0x5c78f2(0xae),'description':a58_0x5c78f2(0x10e),'folders':[a58_0x5c78f2(0xdb)]},'opencode':{'name':a58_0x5c78f2(0xba),'description':a58_0x5c78f2(0xaf),'folders':[a58_0x5c78f2(0xb7)]},'qoder':{'name':'Qoder','description':a58_0x5c78f2(0xfb),'folders':[a58_0x5c78f2(0xc7)]},'codebuddy':{'name':a58_0x5c78f2(0xe6),'description':'CodeBuddy\x20IDE\x20(.codebuddy/skills/)','folders':['.codebuddy']},'trae':{'name':a58_0x5c78f2(0xd3),'description':a58_0x5c78f2(0xe0),'folders':[a58_0x5c78f2(0xca)]}};function a58_0x148b(){const _0x1dc8e6=['\x20-\x20','使用示例:','utf-8','.windsurf','479008GAiOmz','Qoder\x20IDE\x20(.qoder/rules/\x20+\x20.qoder/skills/)','\x20\x200.\x20全部安装','stdout','skill','\x0a未选择任何\x20IDE,安装取消\x0a','warn','\x20失败:\x20','.agent','claude','opencode','log','11964260LPbTZc','info','11983818rtYaMx','\x0a可用命令:','trae','安装失败','开发者指南位置:','trim','Codex\x20IDE\x20(.codex/skills/)','.lovrabet','quit','Windsurf\x20IDE\x20(.windsurf/workflows/)','exit','.claude','\x20\x20lovrabet\x20skill\x20install\x20<ide>\x20\x20\x20\x20\x20#\x20直接安装指定\x20IDE\x20的技能包','includes','claude\x20code\x20(.claude/skills/)','Codex','OpenCode\x20IDE\x20(.opencode/skills/)','windsurf','6wAWCro','.lovrabet/skill/.shared/','error','⚠️\x20\x20未知的平台:\x20','\x0a✓\x20技能包安装成功!共安装\x20','\x20\x20.lovrabet/skill/.shared/guides/\x20-\x20详细开发指南\x0a','.opencode','\x0a错误:\x20安装失败\x20-\x20','description','OpenCode','../../templates/skills','cwd','claude\x20code','stdin','\x0a没有有效的\x20IDE\x20需要安装\x0a','199593BeuIbl','错误:\x20不支持的命令:\x20','.cursorrules','message','\x0a已取消安装\x0a','不支持的命令:\x20','394872BiJOrQ','.qoder','codebuddy','agent','.trae','输入\x200\x20安装所有\x20IDE,输入\x20q\x20取消\x0a','Windsurf','请选择:\x20','cursor','\x20\x20✗\x20安装\x20','40WQGjbj','397355QOlGjD','✓\x20创建\x20.lovrabet/skill-manifest.json','Trae','360oJtYCZ','.cursor','安装成功','install','folders','Cursor\x20IDE\x20(.cursorrules\x20+\x20.cursor/commands/)','\x20\x20lovrabet\x20skill\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20显示帮助信息\x0a','.codex','\x20\x20q.\x20取消\x0a','length','\x20个目录\x0a','--help','Trae\x20IDE\x20(.trae/skills/)','skill-install','setLogPath','\x20\x20lovrabet\x20skill\x20install\x20cursor\x20\x20\x20\x20#\x20直接安装\x20Cursor\x20技能包\x0a','2tfJmCl','codex','CodeBuddy','name','all','qoder','.shared','(空)','12300953UenWeG','模板不存在:\x20','\x0a📦\x20正在安装\x20','toLowerCase','通用模板','✓\x20复制\x20.lovrabet/skill/.shared/','\x0a请选择要安装技能包的\x20IDE\x20(可多选):\x0a','close','push','Cursor'];a58_0x148b=function(){return _0x1dc8e6;};return a58_0x148b();}export async function skillsCommand(_0x3662d7,_0x16b4f0,_0x221512){const _0x3a7846=a58_0x5c78f2;logger[_0x3a7846(0xe2)](process['cwd']());if(_0x221512?.['help']||_0x3662d7===_0x3a7846(0xdf)){showHelp();return;}_0x3662d7!==_0x3a7846(0xd7)&&(console[_0x3a7846(0xb3)](_0x3a7846(0xc1)+(_0x3662d7||_0x3a7846(0xeb))),console[_0x3a7846(0x105)](_0x3a7846(0x109)),console['log']('\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择并安装技能包'),console[_0x3a7846(0x105)](_0x3a7846(0xab)),console[_0x3a7846(0x105)](_0x3a7846(0xda)),console['log'](_0x3a7846(0xf7)),console[_0x3a7846(0x105)]('\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择\x20IDE'),console['log'](_0x3a7846(0xe3)),logger[_0x3a7846(0xb3)](_0x3a7846(0xfe),_0x3a7846(0xc5)+_0x3662d7),process[_0x3a7846(0x112)](0x1)),await installSkill(_0x16b4f0?.[0x0]);}async function selectIDEs(){const _0x11c9e4=a58_0x5c78f2,_0x248625=[_0x11c9e4(0xce),'windsurf','claude','codex',_0x11c9e4(0x104),_0x11c9e4(0xe9),_0x11c9e4(0xc8),_0x11c9e4(0x10a)];return console[_0x11c9e4(0x105)](_0x11c9e4(0xf2)),_0x248625['forEach']((_0x6fcefe,_0x53bd3a)=>{const _0x3ba0e1=_0x11c9e4;console[_0x3ba0e1(0x105)]('\x20\x20'+(_0x53bd3a+0x1)+'.\x20'+IDE_CONFIGS[_0x6fcefe][_0x3ba0e1(0xe7)]+_0x3ba0e1(0xf6)+IDE_CONFIGS[_0x6fcefe][_0x3ba0e1(0xb9)]);}),console[_0x11c9e4(0x105)](_0x11c9e4(0xfc)),console[_0x11c9e4(0x105)](_0x11c9e4(0xdc)),console['log']('输入格式:\x20输入编号,用空格分隔\x20(例如:\x201\x203\x205)'),console[_0x11c9e4(0x105)](_0x11c9e4(0xcb)),new Promise(_0x4ccde5=>{const _0x38e9fa=_0x11c9e4,_0x3fe0b2=createInterface({'input':process[_0x38e9fa(0xbe)],'output':process[_0x38e9fa(0xfd)]});_0x3fe0b2['question'](_0x38e9fa(0xcd),_0x2c2edd=>{const _0x3a5648=_0x38e9fa;_0x3fe0b2[_0x3a5648(0xf3)]();const _0x4cf5f4=_0x2c2edd[_0x3a5648(0x10d)]()[_0x3a5648(0xef)]();(_0x4cf5f4==='q'||_0x4cf5f4===_0x3a5648(0x110)||_0x4cf5f4===_0x3a5648(0x112))&&(console[_0x3a5648(0x105)](_0x3a5648(0xc4)),process[_0x3a5648(0x112)](0x0));if(_0x4cf5f4==='0'||_0x4cf5f4==='all'){_0x4ccde5([_0x3a5648(0xe8)]);return;}const _0x120201=_0x4cf5f4['split'](/\s+/)['filter'](Boolean),_0x2bad50=[];for(const _0x358f9b of _0x120201){const _0x3423d2=parseInt(_0x358f9b,0xa);if(!isNaN(_0x3423d2)&&_0x3423d2>=0x1&&_0x3423d2<=_0x248625[_0x3a5648(0xdd)]){const _0x8c8f96=_0x248625[_0x3423d2-0x1];_0x8c8f96&&!_0x2bad50[_0x3a5648(0xac)](_0x8c8f96)&&_0x2bad50['push'](_0x8c8f96);}}_0x2bad50[_0x3a5648(0xdd)]===0x0&&(console[_0x3a5648(0x105)](_0x3a5648(0xff)),process[_0x3a5648(0x112)](0x0)),_0x4ccde5(_0x2bad50);});});}function a58_0x31f7(_0xd7d5b8,_0x577bdc){_0xd7d5b8=_0xd7d5b8-0xaa;const _0x148b9b=a58_0x148b();let _0x31f72e=_0x148b9b[_0xd7d5b8];return _0x31f72e;}function showHelp(){console['log']('\x0aLovrabet\x20Skill\x20-\x20开发者技能包安装工具\x0a\x0a用法:\x0a\x20\x20lovrabet\x20skill\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20显示帮助信息\x0a\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20交互式选择并安装技能包\x0a\x20\x20lovrabet\x20skill\x20install\x20--cursor\x20\x20\x20\x20直接安装指定\x20IDE\x20的技能包\x0a\x20\x20lovrabet\x20skill\x20install\x20--all\x20\x20\x20\x20\x20\x20\x20安装所有技能包\x0a\x0a安装方式:\x0a\x20\x20\x20交互式选择\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20显示\x20IDE\x20列表供选择,支持多选\x0a\x20\x20\x20\x20$\x20lovrabet\x20skill\x20install\x0a\x20\x20\x20\x20→\x20使用\x20↑↓\x20移动光标,空格选中/取消,Enter\x20确认\x0a\x20\x20\x20\x20→\x20按\x20a\x20全选,按\x20i/r\x20反选,按\x20q\x20退出\x0a\x0a\x20\x20直接安装指定\x20IDE\x20(支持多个)\x20\x20\x20\x20\x20\x20\x20-\x20使用\x20--ide\x20标志直接安装\x0a\x20\x20\x20\x20$\x20lovrabet\x20skill\x20install\x20--cursor\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20安装\x20Cursor\x0a\x20\x20\x20\x20$\x20lovrabet\x20skill\x20install\x20--cursor\x20--claude\x20\x20#\x20安装多个\x0a\x20\x20\x20\x20$\x20lovrabet\x20skill\x20install\x20--all\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20安装全部\x0a\x0a支持的\x20IDE:\x0a\x20\x20--cursor\x20\x20\x20\x20\x20\x20\x20Cursor\x20IDE\x20(.cursorrules\x20+\x20.cursor/commands/)\x0a\x20\x20--windsurf\x20\x20\x20\x20\x20Windsurf\x20IDE\x20(.windsurf/workflows/)\x0a\x20\x20--claude\x20\x20\x20\x20\x20\x20\x20Claude\x20Code\x20(.claude/skills/)\x0a\x20\x20--codex\x20\x20\x20\x20\x20\x20\x20\x20Codex\x20IDE\x20(.codex/skills/)\x0a\x20\x20--opencode\x20\x20\x20\x20\x20OpenCode\x20IDE\x20(.opencode/skills/)\x0a\x20\x20--qoder\x20\x20\x20\x20\x20\x20\x20\x20Qoder\x20IDE\x20(.qoder/rules/\x20+\x20.qoder/skills/)\x0a\x20\x20--codebuddy\x20\x20\x20\x20CodeBuddy\x20IDE\x20(.codebuddy/skills/)\x0a\x20\x20--trae\x20\x20\x20\x20\x20\x20\x20\x20\x20Trae\x20IDE\x20(.trae/skills/)\x0a\x20\x20--agent\x20\x20\x20\x20\x20\x20\x20\x20其他\x20(通用模板)\x20(.agent/skills/)\x20-\x20兜底方案\x0a\x20\x20--antigravity\x20\x20Antigravity\x20IDE\x20(.agent/skills/)\x0a\x20\x20--all\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20安装所有\x20IDE\x20技能包(包括通用模板)\x0a\x0a技能包内容包括:\x0a\x20\x20-\x20Filter\x20查询构建规范\x20(10\x20种常见错误对照)\x0a\x20\x20-\x20MCP\x20SQL\x20创建工作流\x20(5\x20步强制流程)\x0a\x20\x20-\x20AntD\x20UI\x20开发规范\x20(禁止\x20AI\x20味道)\x0a\x20\x20-\x20API\x20集成指南\x20(lovrabet\x20api\x20pull\x20流程)\x0a\x20\x20-\x20菜单管理指南\x20(menu\x20sync/update\x20流程)\x0a\x20\x20-\x20Backend\x20Function\x20脚本编写规范\x20(权限过滤、数据脱敏、业务逻辑)\x0a\x0a示例:\x0a\x20\x20$\x20lovrabet\x20skill\x20install\x0a\x20\x20\x20\x20→\x20交互式选择\x20IDE\x0a\x0a\x20\x20$\x20lovrabet\x20skill\x20install\x20--cursor\x20--claude\x0a\x20\x20\x20\x20→\x20直接安装\x20Cursor\x20和\x20claude\x20code\x20技能包\x0a\x0a\x20\x20$\x20lovrabet\x20skill\x20install\x20--all\x0a\x20\x20\x20\x20→\x20安装所有\x20IDE\x20技能包\x0a\x0a安装后会在项目中创建:\x0a\x20\x20-\x20IDE\x20特定配置文件\x20(.cursorrules,\x20.windsurf/,\x20.claude/,\x20.codex/,\x20.opencode/,\x20.qoder/,\x20.codebuddy/,\x20.trae/)\x0a\x20\x20-\x20.lovrabet/skill/.shared/guides/\x20\x20-\x20开发者技能指南\x0a\x0a开发者指南位置:\x0a\x20\x20.lovrabet/skill/.shared/guides/01-filter-query/guide.md\x0a\x20\x20.lovrabet/skill/.shared/guides/02-mcp-sql-workflow/guide.md\x0a\x20\x20.lovrabet/skill/.shared/guides/03-antd-style/guide.md\x0a\x20\x20.lovrabet/skill/.shared/guides/05-api-integration/guide.md\x0a\x20\x20.lovrabet/skill/.shared/guides/06-menu-management/guide.md\x0a\x20\x20.lovrabet/skill/.shared/guides/07-backend-function/guide.md\x0a\x20\x20');}async function copyDir(_0x4bfe4c,_0xb299d8){const _0x23a122=statSync(_0x4bfe4c);if(_0x23a122['isDirectory']()){!existsSync(_0xb299d8)&&mkdirSync(_0xb299d8,{'recursive':!![]});const _0x2f0dd1=readdirSync(_0x4bfe4c);for(const _0x37d0d2 of _0x2f0dd1){await copyDir(join(_0x4bfe4c,_0x37d0d2),join(_0xb299d8,_0x37d0d2));}}else copyFileSync(_0x4bfe4c,_0xb299d8);}async function installSingleIDE(_0x299b67,_0x26a89c,_0x4d4af2){const _0x219e3a=a58_0x5c78f2,_0x518ad4=_0x299b67!==_0x219e3a(0xc9)&&IDE_CONFIGS[_0x299b67]!==undefined,_0x5d40ca=_0x299b67===_0x219e3a(0xc9)||!_0x518ad4,_0x56aa9f=_0x5d40ca?_0x219e3a(0xf0):_0x518ad4?IDE_CONFIGS[_0x299b67][_0x219e3a(0xe7)]:_0x299b67;console['log'](_0x219e3a(0xee)+_0x56aa9f+'...\x0a');let _0x4a5898=0x0;const _0x5dce38=_0x5d40ca?[_0x219e3a(0x102)]:_0x518ad4?IDE_CONFIGS[_0x299b67][_0x219e3a(0xd8)]:['.agent'];for(const _0x507459 of _0x5dce38){const _0x280351=join(_0x4d4af2,_0x507459),_0x3744b2=join(_0x26a89c,_0x507459);if(!existsSync(_0x280351)){logger[_0x219e3a(0x100)](_0x219e3a(0xe1),_0x219e3a(0xed)+_0x280351);continue;}await copyDir(_0x280351,_0x3744b2),_0x4a5898++,console['log']('\x20\x20✓\x20复制\x20'+_0x507459+'/');}return _0x4a5898;}async function installSkill(_0x4ea200){const _0x39ac8e=a58_0x5c78f2,_0x53c13b=process[_0x39ac8e(0xbc)](),_0x468965=resolve(__dirname,_0x39ac8e(0xbb));let _0x161bfd=[];!_0x4ea200?_0x161bfd=await selectIDEs():_0x161bfd=[_0x4ea200];_0x161bfd['includes']('all')&&(_0x161bfd=[_0x39ac8e(0xce),_0x39ac8e(0xb0),_0x39ac8e(0x103),_0x39ac8e(0xe5),_0x39ac8e(0x104),_0x39ac8e(0xe9),_0x39ac8e(0xc8),'trae',_0x39ac8e(0xc9)]);const _0x844801=[];for(const _0x1a6d05 of _0x161bfd){if(_0x1a6d05===_0x39ac8e(0xc9))_0x844801['push'](_0x39ac8e(0xc9));else{if(_0x1a6d05===_0x39ac8e(0xe8))continue;else IDE_CONFIGS[_0x1a6d05]?_0x844801[_0x39ac8e(0xf4)](_0x1a6d05):(console[_0x39ac8e(0x105)](_0x39ac8e(0xb4)+_0x1a6d05+',使用通用模板'),_0x844801[_0x39ac8e(0xf4)](_0x39ac8e(0xc9)));}}_0x844801[_0x39ac8e(0xdd)]===0x0&&(console[_0x39ac8e(0x105)](_0x39ac8e(0xbf)),process[_0x39ac8e(0x112)](0x0));const _0x7c67ea=join(_0x468965,_0x39ac8e(0xea)),_0x5ad3f9=join(_0x53c13b,'.lovrabet/skill/.shared');existsSync(_0x7c67ea)&&(await copyDir(_0x7c67ea,_0x5ad3f9),console[_0x39ac8e(0x105)](_0x39ac8e(0xf1)));let _0x429fd4=0x0;for(const _0x142427 of _0x844801){try{const _0x1dcfae=await installSingleIDE(_0x142427,_0x53c13b,_0x468965);_0x429fd4+=_0x1dcfae;}catch(_0x5a6f02){console[_0x39ac8e(0xb3)]('\x20\x20✗\x20安装\x20'+_0x142427+_0x39ac8e(0x101)+(_0x5a6f02 instanceof Error?_0x5a6f02[_0x39ac8e(0xc3)]:String(_0x5a6f02)));}}const _0x494d9a={'version':'2.0.0','installedAt':new Date()['toISOString'](),'platforms':_0x844801};try{const _0x21f53b=join(_0x468965,_0x39ac8e(0xea)),_0x2dd7de=join(_0x53c13b,_0x39ac8e(0xb2));existsSync(_0x21f53b)&&(await copyDir(_0x21f53b,_0x2dd7de),console[_0x39ac8e(0x105)](_0x39ac8e(0xf1)));let _0x3a0179=0x0;for(const _0x215f5d of _0x844801){try{const _0x2fa0a5=await installSingleIDE(_0x215f5d,_0x53c13b,_0x468965);_0x3a0179+=_0x2fa0a5;}catch(_0x117c21){console[_0x39ac8e(0xb3)](_0x39ac8e(0xcf)+_0x215f5d+_0x39ac8e(0x101)+(_0x117c21 instanceof Error?_0x117c21[_0x39ac8e(0xc3)]:String(_0x117c21)));}}const _0x1d8431={'version':'2.0.0','installedAt':new Date()['toISOString'](),'platforms':_0x844801},_0x555365=join(_0x53c13b,'.lovrabet/skill-manifest.json');!existsSync(join(_0x53c13b,_0x39ac8e(0x10f)))&&mkdirSync(join(_0x53c13b,_0x39ac8e(0x10f)),{'recursive':!![]}),writeFileSync(_0x555365,JSON['stringify'](_0x1d8431,null,0x2),_0x39ac8e(0xf8)),console[_0x39ac8e(0x105)](_0x39ac8e(0xd2)),console['log'](_0x39ac8e(0xb5)+_0x3a0179+_0x39ac8e(0xde)),console['log'](_0x39ac8e(0x10c)),console[_0x39ac8e(0x105)](_0x39ac8e(0xb6)),logger[_0x39ac8e(0x107)](_0x39ac8e(0xe1),_0x39ac8e(0xd6),{'projectRoot':_0x53c13b,'ides':_0x844801,'foldersCount':_0x3a0179});}catch(_0x479686){logger[_0x39ac8e(0xb3)]('skill-install',_0x39ac8e(0x10b),{'error':_0x479686 instanceof Error?_0x479686[_0x39ac8e(0xc3)]:String(_0x479686)}),console[_0x39ac8e(0xb3)](_0x39ac8e(0xb8)+(_0x479686 instanceof Error?_0x479686[_0x39ac8e(0xc3)]:String(_0x479686))+'\x0a'),process[_0x39ac8e(0x112)](0x1);}}
1
+ const a58_0x2c6c58=a58_0x40cc;function a58_0x40cc(_0x8bf14a,_0x3b8fbd){_0x8bf14a=_0x8bf14a-0xa1;const _0xaebbd9=a58_0xaebb();let _0x40cc43=_0xaebbd9[_0x8bf14a];return _0x40cc43;}(function(_0x3f37ea,_0x2cd5fa){const _0x272808=a58_0x40cc,_0x5efbb3=_0x3f37ea();while(!![]){try{const _0x336b26=parseInt(_0x272808(0xb3))/0x1+parseInt(_0x272808(0x104))/0x2*(parseInt(_0x272808(0xed))/0x3)+-parseInt(_0x272808(0xdd))/0x4+-parseInt(_0x272808(0xff))/0x5*(parseInt(_0x272808(0xd7))/0x6)+parseInt(_0x272808(0xa5))/0x7+parseInt(_0x272808(0xb6))/0x8+-parseInt(_0x272808(0xc5))/0x9*(parseInt(_0x272808(0xd5))/0xa);if(_0x336b26===_0x2cd5fa)break;else _0x5efbb3['push'](_0x5efbb3['shift']());}catch(_0x1cad71){_0x5efbb3['push'](_0x5efbb3['shift']());}}}(a58_0xaebb,0xf0696));import{existsSync,mkdirSync,writeFileSync,copyFileSync,readdirSync,statSync}from'node:fs';import{resolve,dirname,join}from'node:path';function a58_0xaebb(){const _0x18439c=['.opencode','.agent','10754360wEmwtr','toISOString','.codex','\x0a未选择任何\x20IDE,安装取消\x0a','\x0a📦\x20正在安装\x20','codebuddy','stdout','filter','输入\x200\x20安装所有\x20IDE,输入\x20q\x20取消\x0a','.windsurf','\x20\x20lovrabet\x20skill\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20显示帮助信息\x0a','skill-install','description','agent','使用示例:','63tFiVkg','isDirectory','setLogPath','\x20\x20lovrabet\x20skill\x20install\x20<ide>\x20\x20\x20\x20\x20#\x20直接安装指定\x20IDE\x20的技能包','.cursor','通用模板','Qoder','\x20\x20q.\x20取消\x0a','close','question','(空)','\x0aLovrabet\x20Skill\x20-\x20开发者技能包安装工具\x0a\x0a用法:\x0a\x20\x20lovrabet\x20skill\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20显示帮助信息\x0a\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20交互式选择并安装技能包\x0a\x20\x20lovrabet\x20skill\x20install\x20--cursor\x20\x20\x20\x20直接安装指定\x20IDE\x20的技能包\x0a\x20\x20lovrabet\x20skill\x20install\x20--all\x20\x20\x20\x20\x20\x20\x20安装所有技能包\x0a\x0a安装方式:\x0a\x20\x20\x20交互式选择\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20显示\x20IDE\x20列表供选择,支持多选\x0a\x20\x20\x20\x20$\x20lovrabet\x20skill\x20install\x0a\x20\x20\x20\x20→\x20使用\x20↑↓\x20移动光标,空格选中/取消,Enter\x20确认\x0a\x20\x20\x20\x20→\x20按\x20a\x20全选,按\x20i/r\x20反选,按\x20q\x20退出\x0a\x0a\x20\x20直接安装指定\x20IDE\x20(支持多个)\x20\x20\x20\x20\x20\x20\x20-\x20使用\x20--ide\x20标志直接安装\x0a\x20\x20\x20\x20$\x20lovrabet\x20skill\x20install\x20--cursor\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20安装\x20Cursor\x0a\x20\x20\x20\x20$\x20lovrabet\x20skill\x20install\x20--cursor\x20--claude\x20\x20#\x20安装多个\x0a\x20\x20\x20\x20$\x20lovrabet\x20skill\x20install\x20--all\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20安装全部\x0a\x0a支持的\x20IDE:\x0a\x20\x20--cursor\x20\x20\x20\x20\x20\x20\x20Cursor\x20IDE\x20(.cursorrules\x20+\x20.cursor/commands/)\x0a\x20\x20--windsurf\x20\x20\x20\x20\x20Windsurf\x20IDE\x20(.windsurf/workflows/)\x0a\x20\x20--claude\x20\x20\x20\x20\x20\x20\x20Claude\x20Code\x20(.claude/skills/)\x0a\x20\x20--codex\x20\x20\x20\x20\x20\x20\x20\x20Codex\x20IDE\x20(.codex/skills/)\x0a\x20\x20--opencode\x20\x20\x20\x20\x20OpenCode\x20IDE\x20(.opencode/skills/)\x0a\x20\x20--qoder\x20\x20\x20\x20\x20\x20\x20\x20Qoder\x20IDE\x20(.qoder/rules/\x20+\x20.qoder/skills/)\x0a\x20\x20--codebuddy\x20\x20\x20\x20CodeBuddy\x20IDE\x20(.codebuddy/skills/)\x0a\x20\x20--trae\x20\x20\x20\x20\x20\x20\x20\x20\x20Trae\x20IDE\x20(.trae/skills/)\x0a\x20\x20--agent\x20\x20\x20\x20\x20\x20\x20\x20其他\x20(通用模板)\x20(.agent/skills/)\x20-\x20兜底方案\x0a\x20\x20--antigravity\x20\x20Antigravity\x20IDE\x20(.agent/skills/)\x0a\x20\x20--all\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20安装所有\x20IDE\x20技能包(包括通用模板)\x0a\x0a技能包内容包括:\x0a\x20\x20-\x20Filter\x20查询构建规范\x20(10\x20种常见错误对照)\x0a\x20\x20-\x20MCP\x20SQL\x20创建工作流\x20(5\x20步强制流程)\x0a\x20\x20-\x20AntD\x20UI\x20开发规范\x20(禁止\x20AI\x20味道)\x0a\x20\x20-\x20API\x20集成指南\x20(lovrabet\x20api\x20pull\x20流程)\x0a\x20\x20-\x20菜单管理指南\x20(menu\x20sync/update\x20流程)\x0a\x20\x20-\x20Backend\x20Function\x20脚本编写规范\x20(权限过滤、数据脱敏、业务逻辑)\x0a\x0a示例:\x0a\x20\x20$\x20lovrabet\x20skill\x20install\x0a\x20\x20\x20\x20→\x20交互式选择\x20IDE\x0a\x0a\x20\x20$\x20lovrabet\x20skill\x20install\x20--cursor\x20--claude\x0a\x20\x20\x20\x20→\x20直接安装\x20Cursor\x20和\x20claude\x20code\x20技能包\x0a\x0a\x20\x20$\x20lovrabet\x20skill\x20install\x20--all\x0a\x20\x20\x20\x20→\x20安装所有\x20IDE\x20技能包\x0a\x0a安装后会在项目中创建:\x0a\x20\x20-\x20IDE\x20特定配置文件\x20(.cursorrules,\x20.windsurf/,\x20.claude/,\x20.codex/,\x20.opencode/,\x20.qoder/,\x20.codebuddy/,\x20.trae/)\x0a\x20\x20-\x20.lovrabet/skill/.shared/guides/\x20\x20-\x20开发者技能指南\x0a\x0a开发者指南位置:\x0a\x20\x20.lovrabet/skill/.shared/guides/01-filter-query/guide.md\x0a\x20\x20.lovrabet/skill/.shared/guides/02-mcp-sql-workflow/guide.md\x0a\x20\x20.lovrabet/skill/.shared/guides/03-antd-style/guide.md\x0a\x20\x20.lovrabet/skill/.shared/guides/05-api-integration/guide.md\x0a\x20\x20.lovrabet/skill/.shared/guides/06-menu-management/guide.md\x0a\x20\x20.lovrabet/skill/.shared/guides/07-backend-function/guide.md\x0a\x20\x20',',使用通用模板','.lovrabet/skill/.shared/','--help','help','2671630epNWmN','exit','6306AMpNoJ','install','Cursor\x20IDE\x20(.cursorrules\x20+\x20.cursor/commands/)','Trae','\x20-\x20','.lovrabet/skill-manifest.json','6106412EGKvxw','includes','OpenCode\x20IDE\x20(.opencode/skills/)','cursor','quit','toLowerCase','Trae\x20IDE\x20(.trae/skills/)','log','claude\x20code\x20(.claude/skills/)','安装成功','\x0a✓\x20技能包安装成功!共安装\x20','name','OpenCode','all','\x20\x20✗\x20安装\x20','push','5173107WOQXqJ','folders','Windsurf\x20IDE\x20(.windsurf/workflows/)','cwd','错误:\x20不支持的命令:\x20','codex','\x0a错误:\x20安装失败\x20-\x20','\x20个目录\x0a','\x0a已取消安装\x0a','CodeBuddy\x20IDE\x20(.codebuddy/skills/)','stringify','opencode','输入格式:\x20输入编号,用空格分隔\x20(例如:\x201\x203\x205)','...\x0a','utf-8','✓\x20创建\x20.lovrabet/skill-manifest.json','.lovrabet/skill/.shared','Codex\x20IDE\x20(.codex/skills/)','3085QXwoEz','请选择:\x20','windsurf','trim','\x20失败:\x20','2xZFENa','length','2.0.0','✓\x20复制\x20.lovrabet/skill/.shared/','.qoder','7148687LIJNRF','.claude','安装失败','skill','\x20\x20.lovrabet/skill/.shared/guides/\x20-\x20详细开发指南\x0a','error','.cursorrules','.lovrabet','message','.shared','不支持的命令:\x20','claude','\x0a可用命令:','Cursor','940032LliGhH'];a58_0xaebb=function(){return _0x18439c;};return a58_0xaebb();}import{fileURLToPath}from'node:url';import{createInterface}from'node:readline';import{logger}from'../utils/logger.js';const __dirname=dirname(fileURLToPath(import.meta.url)),IDE_CONFIGS={'cursor':{'name':a58_0x2c6c58(0xb2),'description':a58_0x2c6c58(0xd9),'folders':[a58_0x2c6c58(0xab),a58_0x2c6c58(0xc9)]},'windsurf':{'name':'Windsurf','description':a58_0x2c6c58(0xef),'folders':[a58_0x2c6c58(0xbf)]},'claude':{'name':'claude\x20code','description':a58_0x2c6c58(0xe5),'folders':[a58_0x2c6c58(0xa6)]},'codex':{'name':'Codex','description':a58_0x2c6c58(0xfe),'folders':[a58_0x2c6c58(0xb8)]},'opencode':{'name':a58_0x2c6c58(0xe9),'description':a58_0x2c6c58(0xdf),'folders':[a58_0x2c6c58(0xb4)]},'qoder':{'name':a58_0x2c6c58(0xcb),'description':'Qoder\x20IDE\x20(.qoder/rules/\x20+\x20.qoder/skills/)','folders':[a58_0x2c6c58(0xa4)]},'codebuddy':{'name':'CodeBuddy','description':a58_0x2c6c58(0xf6),'folders':['.codebuddy']},'trae':{'name':a58_0x2c6c58(0xda),'description':a58_0x2c6c58(0xe3),'folders':['.trae']}};export async function skillsCommand(_0x6c5d33,_0x24a157,_0x451bee){const _0x1aeac6=a58_0x2c6c58;logger[_0x1aeac6(0xc7)](process['cwd']());if(_0x451bee?.[_0x1aeac6(0xd4)]||_0x6c5d33===_0x1aeac6(0xd3)){showHelp();return;}_0x6c5d33!==_0x1aeac6(0xd8)&&(console[_0x1aeac6(0xaa)](_0x1aeac6(0xf1)+(_0x6c5d33||_0x1aeac6(0xcf))),console[_0x1aeac6(0xe4)](_0x1aeac6(0xb1)),console[_0x1aeac6(0xe4)]('\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择并安装技能包'),console[_0x1aeac6(0xe4)](_0x1aeac6(0xc8)),console['log'](_0x1aeac6(0xc0)),console[_0x1aeac6(0xe4)](_0x1aeac6(0xc4)),console[_0x1aeac6(0xe4)]('\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择\x20IDE'),console[_0x1aeac6(0xe4)]('\x20\x20lovrabet\x20skill\x20install\x20cursor\x20\x20\x20\x20#\x20直接安装\x20Cursor\x20技能包\x0a'),logger[_0x1aeac6(0xaa)](_0x1aeac6(0xa8),_0x1aeac6(0xaf)+_0x6c5d33),process[_0x1aeac6(0xd6)](0x1)),await installSkill(_0x24a157?.[0x0]);}async function selectIDEs(){const _0x4004c6=a58_0x2c6c58,_0x382e1b=['cursor',_0x4004c6(0x101),_0x4004c6(0xb0),_0x4004c6(0xf2),_0x4004c6(0xf8),'qoder',_0x4004c6(0xbb),'trae'];return console[_0x4004c6(0xe4)]('\x0a请选择要安装技能包的\x20IDE\x20(可多选):\x0a'),_0x382e1b['forEach']((_0x30d2e6,_0xdfa144)=>{const _0x56e9d8=_0x4004c6;console[_0x56e9d8(0xe4)]('\x20\x20'+(_0xdfa144+0x1)+'.\x20'+IDE_CONFIGS[_0x30d2e6][_0x56e9d8(0xe8)]+_0x56e9d8(0xdb)+IDE_CONFIGS[_0x30d2e6][_0x56e9d8(0xc2)]);}),console['log']('\x20\x200.\x20全部安装'),console[_0x4004c6(0xe4)](_0x4004c6(0xcc)),console[_0x4004c6(0xe4)](_0x4004c6(0xf9)),console['log'](_0x4004c6(0xbe)),new Promise(_0x150b26=>{const _0x2ba211=_0x4004c6,_0x275c3b=createInterface({'input':process['stdin'],'output':process[_0x2ba211(0xbc)]});_0x275c3b[_0x2ba211(0xce)](_0x2ba211(0x100),_0x9d5101=>{const _0x1555a2=_0x2ba211;_0x275c3b[_0x1555a2(0xcd)]();const _0x414235=_0x9d5101[_0x1555a2(0x102)]()[_0x1555a2(0xe2)]();(_0x414235==='q'||_0x414235===_0x1555a2(0xe1)||_0x414235===_0x1555a2(0xd6))&&(console['log'](_0x1555a2(0xf5)),process['exit'](0x0));if(_0x414235==='0'||_0x414235==='all'){_0x150b26([_0x1555a2(0xea)]);return;}const _0x39523b=_0x414235['split'](/\s+/)[_0x1555a2(0xbd)](Boolean),_0x4641d2=[];for(const _0x53c01b of _0x39523b){const _0x30567b=parseInt(_0x53c01b,0xa);if(!isNaN(_0x30567b)&&_0x30567b>=0x1&&_0x30567b<=_0x382e1b[_0x1555a2(0xa1)]){const _0x482c5f=_0x382e1b[_0x30567b-0x1];_0x482c5f&&!_0x4641d2[_0x1555a2(0xde)](_0x482c5f)&&_0x4641d2['push'](_0x482c5f);}}_0x4641d2[_0x1555a2(0xa1)]===0x0&&(console['log'](_0x1555a2(0xb9)),process[_0x1555a2(0xd6)](0x0)),_0x150b26(_0x4641d2);});});}function showHelp(){const _0x2778d7=a58_0x2c6c58;console['log'](_0x2778d7(0xd0));}async function copyDir(_0x3aa335,_0x572c25){const _0x45697=a58_0x2c6c58,_0x31b3e1=statSync(_0x3aa335);if(_0x31b3e1[_0x45697(0xc6)]()){!existsSync(_0x572c25)&&mkdirSync(_0x572c25,{'recursive':!![]});const _0x4a7dfc=readdirSync(_0x3aa335);for(const _0x44dea6 of _0x4a7dfc){await copyDir(join(_0x3aa335,_0x44dea6),join(_0x572c25,_0x44dea6));}}else copyFileSync(_0x3aa335,_0x572c25);}async function installSingleIDE(_0xd42776,_0xc4195e,_0x2175af){const _0x5ef2d4=a58_0x2c6c58,_0x52d90c=_0xd42776!==_0x5ef2d4(0xc3)&&IDE_CONFIGS[_0xd42776]!==undefined,_0x205975=_0xd42776==='agent'||!_0x52d90c,_0x3943ee=_0x205975?_0x5ef2d4(0xca):_0x52d90c?IDE_CONFIGS[_0xd42776][_0x5ef2d4(0xe8)]:_0xd42776;console['log'](_0x5ef2d4(0xba)+_0x3943ee+_0x5ef2d4(0xfa));let _0x3c7902=0x0;const _0x4d167c=_0x205975?[_0x5ef2d4(0xb5)]:_0x52d90c?IDE_CONFIGS[_0xd42776][_0x5ef2d4(0xee)]:[_0x5ef2d4(0xb5)];for(const _0x47064a of _0x4d167c){const _0x597044=join(_0x2175af,_0x47064a),_0x5249fa=join(_0xc4195e,_0x47064a);if(!existsSync(_0x597044)){logger['warn']('skill-install','模板不存在:\x20'+_0x597044);continue;}await copyDir(_0x597044,_0x5249fa),_0x3c7902++,console[_0x5ef2d4(0xe4)]('\x20\x20✓\x20复制\x20'+_0x47064a+'/');}return _0x3c7902;}async function installSkill(_0x29ed15){const _0x5dd3e4=a58_0x2c6c58,_0x47a94e=process[_0x5dd3e4(0xf0)](),_0xbb48ac=resolve(__dirname,'../../templates/skills');let _0x205432=[];!_0x29ed15?_0x205432=await selectIDEs():_0x205432=[_0x29ed15];_0x205432[_0x5dd3e4(0xde)]('all')&&(_0x205432=[_0x5dd3e4(0xe0),'windsurf','claude',_0x5dd3e4(0xf2),_0x5dd3e4(0xf8),'qoder','codebuddy','trae',_0x5dd3e4(0xc3)]);const _0x3553ff=[];for(const _0x4f6edd of _0x205432){if(_0x4f6edd===_0x5dd3e4(0xc3))_0x3553ff[_0x5dd3e4(0xec)](_0x5dd3e4(0xc3));else{if(_0x4f6edd==='all')continue;else IDE_CONFIGS[_0x4f6edd]?_0x3553ff[_0x5dd3e4(0xec)](_0x4f6edd):(console[_0x5dd3e4(0xe4)]('⚠️\x20\x20未知的平台:\x20'+_0x4f6edd+_0x5dd3e4(0xd1)),_0x3553ff[_0x5dd3e4(0xec)](_0x5dd3e4(0xc3)));}}_0x3553ff[_0x5dd3e4(0xa1)]===0x0&&(console[_0x5dd3e4(0xe4)]('\x0a没有有效的\x20IDE\x20需要安装\x0a'),process[_0x5dd3e4(0xd6)](0x0));const _0xee4aca=join(_0xbb48ac,_0x5dd3e4(0xae)),_0x32a812=join(_0x47a94e,_0x5dd3e4(0xfd));existsSync(_0xee4aca)&&(await copyDir(_0xee4aca,_0x32a812),console['log']('✓\x20复制\x20.lovrabet/skill/.shared/'));let _0x4fb05b=0x0;for(const _0x3b3650 of _0x3553ff){try{const _0x103055=await installSingleIDE(_0x3b3650,_0x47a94e,_0xbb48ac);_0x4fb05b+=_0x103055;}catch(_0x4ed40c){console['error'](_0x5dd3e4(0xeb)+_0x3b3650+_0x5dd3e4(0x103)+(_0x4ed40c instanceof Error?_0x4ed40c[_0x5dd3e4(0xad)]:String(_0x4ed40c)));}}const _0x4187b0={'version':_0x5dd3e4(0xa2),'installedAt':new Date()[_0x5dd3e4(0xb7)](),'platforms':_0x3553ff};try{const _0x5882ff=join(_0xbb48ac,_0x5dd3e4(0xae)),_0x5c47ac=join(_0x47a94e,_0x5dd3e4(0xd2));existsSync(_0x5882ff)&&(await copyDir(_0x5882ff,_0x5c47ac),console[_0x5dd3e4(0xe4)](_0x5dd3e4(0xa3)));let _0x64234d=0x0;for(const _0x45b28a of _0x3553ff){try{const _0x361b16=await installSingleIDE(_0x45b28a,_0x47a94e,_0xbb48ac);_0x64234d+=_0x361b16;}catch(_0x4c8d5f){console[_0x5dd3e4(0xaa)](_0x5dd3e4(0xeb)+_0x45b28a+_0x5dd3e4(0x103)+(_0x4c8d5f instanceof Error?_0x4c8d5f[_0x5dd3e4(0xad)]:String(_0x4c8d5f)));}}const _0x16c1d1={'version':_0x5dd3e4(0xa2),'installedAt':new Date()[_0x5dd3e4(0xb7)](),'platforms':_0x3553ff},_0xdd6bf5=join(_0x47a94e,_0x5dd3e4(0xdc));!existsSync(join(_0x47a94e,_0x5dd3e4(0xac)))&&mkdirSync(join(_0x47a94e,'.lovrabet'),{'recursive':!![]}),writeFileSync(_0xdd6bf5,JSON[_0x5dd3e4(0xf7)](_0x16c1d1,null,0x2),_0x5dd3e4(0xfb)),console['log'](_0x5dd3e4(0xfc)),console['log'](_0x5dd3e4(0xe7)+_0x64234d+_0x5dd3e4(0xf4)),console[_0x5dd3e4(0xe4)]('开发者指南位置:'),console[_0x5dd3e4(0xe4)](_0x5dd3e4(0xa9)),logger['info'](_0x5dd3e4(0xc1),_0x5dd3e4(0xe6),{'projectRoot':_0x47a94e,'ides':_0x3553ff,'foldersCount':_0x64234d});}catch(_0x33515b){logger[_0x5dd3e4(0xaa)](_0x5dd3e4(0xc1),_0x5dd3e4(0xa7),{'error':_0x33515b instanceof Error?_0x33515b['message']:String(_0x33515b)}),console[_0x5dd3e4(0xaa)](_0x5dd3e4(0xf3)+(_0x33515b instanceof Error?_0x33515b[_0x5dd3e4(0xad)]:String(_0x33515b))+'\x0a'),process[_0x5dd3e4(0xd6)](0x1);}}
@@ -1 +1 @@
1
- const a60_0x92acf0=a60_0x3133;function a60_0x2669(){const _0x48cee1=['\x20\x20\x20查看最新版本:\x20https://www.npmjs.com/package/@lovrabet/sdk','16185110OnJose','existsSync','\x20或更高版本:','\x20\x20\x20当前\x20CLI\x20版本已升级模型注册协议,但检测到您的\x20@lovrabet/sdk\x20版本\x20','578589tnZTTP','\x20\x20\x20请升级\x20SDK\x20至\x20','package.json','coerce','482ZggtHa','needsUpgrade','\x1b[1m','log','utf8','\x1b[0m','version','2907795vhRndi','1107naaaXr','@lovrabet/sdk','13329hEvmZT','parse','devDependencies','1190567EwjxHP','368920NuNlGe','1.2.0','readFileSync','dependencies','12ctzkcf','944VTUbXG','\x20\x20\x20npm\x20install\x20@lovrabet/sdk@latest','join','\x1b[33m'];a60_0x2669=function(){return _0x48cee1;};return a60_0x2669();}(function(_0x1885d5,_0x5f45ae){const _0x4ab4be=a60_0x3133,_0x19728f=_0x1885d5();while(!![]){try{const _0x6f5a16=-parseInt(_0x4ab4be(0x141))/0x1+parseInt(_0x4ab4be(0x145))/0x2*(-parseInt(_0x4ab4be(0x14d))/0x3)+parseInt(_0x4ab4be(0x153))/0x4+-parseInt(_0x4ab4be(0x14c))/0x5+parseInt(_0x4ab4be(0x137))/0x6*(-parseInt(_0x4ab4be(0x152))/0x7)+parseInt(_0x4ab4be(0x138))/0x8*(parseInt(_0x4ab4be(0x14f))/0x9)+parseInt(_0x4ab4be(0x13d))/0xa;if(_0x6f5a16===_0x5f45ae)break;else _0x19728f['push'](_0x19728f['shift']());}catch(_0x10706a){_0x19728f['push'](_0x19728f['shift']());}}}(a60_0x2669,0x48544));function a60_0x3133(_0x35a403,_0x46b938){_0x35a403=_0x35a403-0x137;const _0x2669cf=a60_0x2669();let _0x313312=_0x2669cf[_0x35a403];return _0x313312;}import a60_0x1d1287 from'node:fs';import a60_0x3fb59b from'node:path';import a60_0x175ccf from'semver';const MIN_SDK_VERSION=a60_0x92acf0(0x154);export function checkSdkVersion(_0xcc8ee1){const _0x216c48=a60_0x92acf0,_0x214123=a60_0x3fb59b[_0x216c48(0x13a)](_0xcc8ee1,_0x216c48(0x143));if(!a60_0x1d1287[_0x216c48(0x13e)](_0x214123))return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':MIN_SDK_VERSION};try{const _0x4c4367=JSON[_0x216c48(0x150)](a60_0x1d1287[_0x216c48(0x155)](_0x214123,_0x216c48(0x149))),_0x2bfd0b=_0x4c4367[_0x216c48(0x156)]||{},_0x3781ad=_0x4c4367[_0x216c48(0x151)]||{},_0x1c1822=_0x2bfd0b[_0x216c48(0x14e)]||_0x3781ad[_0x216c48(0x14e)];if(!_0x1c1822)return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':MIN_SDK_VERSION};const _0x5752fb=a60_0x175ccf[_0x216c48(0x144)](_0x1c1822),_0x2b336e=_0x5752fb?a60_0x175ccf['lt'](_0x5752fb,MIN_SDK_VERSION):![];return{'installed':!![],'version':_0x1c1822,'needsUpgrade':_0x2b336e,'minVersion':MIN_SDK_VERSION};}catch{return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':MIN_SDK_VERSION};}}export function printSdkUpgradeWarning(_0x32e53a){const _0x307f95=a60_0x92acf0;if(!_0x32e53a[_0x307f95(0x146)])return;const _0x4e6cb8=_0x307f95(0x13b),_0x789dba=_0x307f95(0x14a),_0x41f438=_0x307f95(0x147);console[_0x307f95(0x148)](),console['log'](''+_0x4e6cb8+_0x41f438+'⚠️\x20\x20SDK\x20版本不兼容'+_0x789dba),console[_0x307f95(0x148)](_0x4e6cb8+_0x307f95(0x140)+_0x32e53a[_0x307f95(0x14b)]+'\x20不支持新协议。'+_0x789dba),console[_0x307f95(0x148)](_0x4e6cb8+_0x307f95(0x142)+_0x32e53a['minVersion']+_0x307f95(0x13f)+_0x789dba),console['log'](_0x4e6cb8+_0x307f95(0x139)+_0x789dba),console[_0x307f95(0x148)](_0x4e6cb8+_0x307f95(0x13c)+_0x789dba),console[_0x307f95(0x148)]();}
1
+ const a60_0x39d9ad=a60_0x3749;function a60_0x48cc(){const _0x470db3=['1.2.0','2330415smwmMb','12GVoqnJ','join','parse','12pTYfqm','94moMthB','minVersion','existsSync','\x20\x20\x20请升级\x20SDK\x20至\x20','readFileSync','@lovrabet/sdk','package.json','12rxxcnz','⚠️\x20\x20SDK\x20版本不兼容','4947467nrZdfM','61589307OVCFKK','version','\x1b[1m','\x20\x20\x20查看最新版本:\x20https://www.npmjs.com/package/@lovrabet/sdk','utf8','839931OktZQz','\x1b[0m','11LuGesn','\x20\x20\x20当前\x20CLI\x20版本已升级模型注册协议,但检测到您的\x20@lovrabet/sdk\x20版本\x20','dependencies','18cjRLJz','log','coerce','4190944DyFedn','737540wJfavg','\x20或更高版本:','84030Nshdcv','devDependencies'];a60_0x48cc=function(){return _0x470db3;};return a60_0x48cc();}(function(_0x1dca9e,_0x3cefc1){const _0x4bfe1e=a60_0x3749,_0x80ecc2=_0x1dca9e();while(!![]){try{const _0x2daafc=-parseInt(_0x4bfe1e(0xbb))/0x1+parseInt(_0x4bfe1e(0xac))/0x2*(-parseInt(_0x4bfe1e(0xc6))/0x3)+-parseInt(_0x4bfe1e(0xca))/0x4*(parseInt(_0x4bfe1e(0xc9))/0x5)+parseInt(_0x4bfe1e(0xb3))/0x6*(-parseInt(_0x4bfe1e(0xb5))/0x7)+parseInt(_0x4bfe1e(0xc3))/0x8*(parseInt(_0x4bfe1e(0xc0))/0x9)+-parseInt(_0x4bfe1e(0xc4))/0xa*(parseInt(_0x4bfe1e(0xbd))/0xb)+parseInt(_0x4bfe1e(0xab))/0xc*(parseInt(_0x4bfe1e(0xb6))/0xd);if(_0x2daafc===_0x3cefc1)break;else _0x80ecc2['push'](_0x80ecc2['shift']());}catch(_0xc1b5bf){_0x80ecc2['push'](_0x80ecc2['shift']());}}}(a60_0x48cc,0xb57f1));import a60_0x196550 from'node:fs';import a60_0x53d5b8 from'node:path';import a60_0x49b93d from'semver';const MIN_SDK_VERSION=a60_0x39d9ad(0xc8);export function checkSdkVersion(_0x30fc8e){const _0x4d6ec6=a60_0x39d9ad,_0x117fd8=a60_0x53d5b8[_0x4d6ec6(0xcb)](_0x30fc8e,_0x4d6ec6(0xb2));if(!a60_0x196550[_0x4d6ec6(0xae)](_0x117fd8))return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':MIN_SDK_VERSION};try{const _0x108779=JSON[_0x4d6ec6(0xcc)](a60_0x196550[_0x4d6ec6(0xb0)](_0x117fd8,_0x4d6ec6(0xba))),_0x57ba09=_0x108779[_0x4d6ec6(0xbf)]||{},_0x31b827=_0x108779[_0x4d6ec6(0xc7)]||{},_0xc365f5=_0x57ba09[_0x4d6ec6(0xb1)]||_0x31b827['@lovrabet/sdk'];if(!_0xc365f5)return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':MIN_SDK_VERSION};const _0x8f64b4=a60_0x49b93d[_0x4d6ec6(0xc2)](_0xc365f5),_0x1c2096=_0x8f64b4?a60_0x49b93d['lt'](_0x8f64b4,MIN_SDK_VERSION):![];return{'installed':!![],'version':_0xc365f5,'needsUpgrade':_0x1c2096,'minVersion':MIN_SDK_VERSION};}catch{return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':MIN_SDK_VERSION};}}function a60_0x3749(_0x2c1fe9,_0x46dacb){_0x2c1fe9=_0x2c1fe9-0xab;const _0x48ccb4=a60_0x48cc();let _0x3749b0=_0x48ccb4[_0x2c1fe9];return _0x3749b0;}export function printSdkUpgradeWarning(_0x2df487){const _0x3211f8=a60_0x39d9ad;if(!_0x2df487['needsUpgrade'])return;const _0x3414f8='\x1b[33m',_0x5c3a50=_0x3211f8(0xbc),_0xb3f0d=_0x3211f8(0xb8);console[_0x3211f8(0xc1)](),console[_0x3211f8(0xc1)](''+_0x3414f8+_0xb3f0d+_0x3211f8(0xb4)+_0x5c3a50),console[_0x3211f8(0xc1)](_0x3414f8+_0x3211f8(0xbe)+_0x2df487[_0x3211f8(0xb7)]+'\x20不支持新协议。'+_0x5c3a50),console[_0x3211f8(0xc1)](_0x3414f8+_0x3211f8(0xaf)+_0x2df487[_0x3211f8(0xad)]+_0x3211f8(0xc5)+_0x5c3a50),console[_0x3211f8(0xc1)](_0x3414f8+'\x20\x20\x20npm\x20install\x20@lovrabet/sdk@latest'+_0x5c3a50),console[_0x3211f8(0xc1)](_0x3414f8+_0x3211f8(0xb9)+_0x5c3a50),console[_0x3211f8(0xc1)]();}