@lovrabet/cli 1.3.2-beta.0 → 1.3.2

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 (80) 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-flags.js +1 -1
  31. package/lib/cli.js +1 -1
  32. package/lib/cmd/build-watch.js +1 -1
  33. package/lib/cmd/build.js +1 -1
  34. package/lib/cmd/logs.js +1 -1
  35. package/lib/cmd/preview.js +1 -1
  36. package/lib/cmd/start.js +1 -1
  37. package/lib/config/config-help.js +1 -1
  38. package/lib/config/main.js +1 -1
  39. package/lib/constant/domain.js +1 -1
  40. package/lib/constant/env.js +1 -1
  41. package/lib/create-app/enhanced-guided-create.js +1 -1
  42. package/lib/create-app/format-elapsed.js +1 -1
  43. package/lib/create-app/main.js +1 -1
  44. package/lib/create-app/non-interactive.js +1 -1
  45. package/lib/create-app/task-finished.js +1 -1
  46. package/lib/create-app/task-loading.js +1 -1
  47. package/lib/create-app/task-running.js +1 -1
  48. package/lib/create-app/task-time.js +1 -1
  49. package/lib/create-app/use-copy-project-template.js +1 -1
  50. package/lib/create-app/use-format-code.js +1 -1
  51. package/lib/create-app/use-install-dependencies.js +1 -1
  52. package/lib/help.js +1 -1
  53. package/lib/init/main.js +1 -1
  54. package/lib/mcp/McpInstallUI.js +1 -1
  55. package/lib/mcp/claude.js +1 -1
  56. package/lib/mcp/cursor.js +1 -1
  57. package/lib/mcp/main.js +1 -1
  58. package/lib/mcp/mcp-install-non-interactive.js +1 -1
  59. package/lib/mcp/mcp-installer.js +1 -1
  60. package/lib/skills/SkillInstallUI.js +1 -1
  61. package/lib/skills/main.js +1 -1
  62. package/lib/skills/skill-install-non-interactive.js +1 -1
  63. package/lib/skills/skill-installer.js +1 -1
  64. package/lib/ui/IDESelector.js +1 -1
  65. package/lib/ui/useIDESelection.js +1 -1
  66. package/lib/utils/ai_config.js +1 -1
  67. package/lib/utils/cdn-config.js +1 -1
  68. package/lib/utils/check-sdk-version.js +1 -1
  69. package/lib/utils/cli-version-check.js +1 -1
  70. package/lib/utils/config.js +1 -1
  71. package/lib/utils/copy-directory.js +1 -1
  72. package/lib/utils/file-utils.js +1 -1
  73. package/lib/utils/guides-cdn.js +1 -1
  74. package/lib/utils/http-client.js +1 -1
  75. package/lib/utils/logger.js +1 -1
  76. package/lib/utils/router-updater.js +1 -1
  77. package/lib/utils/rules-cdn.js +1 -1
  78. package/lib/utils/sleep.js +1 -1
  79. package/lib/utils/template-replacer.js +1 -1
  80. package/package.json +1 -1
@@ -1 +1 @@
1
- const a60_0x50cfbc=a60_0x2052;(function(_0x5d08c4,_0xac7570){const _0x29ab09=a60_0x2052,_0x248424=_0x5d08c4();while(!![]){try{const _0x59137d=-parseInt(_0x29ab09(0x141))/0x1+parseInt(_0x29ab09(0x15c))/0x2+parseInt(_0x29ab09(0x154))/0x3*(parseInt(_0x29ab09(0x158))/0x4)+parseInt(_0x29ab09(0x135))/0x5*(-parseInt(_0x29ab09(0x134))/0x6)+parseInt(_0x29ab09(0x12a))/0x7+parseInt(_0x29ab09(0x162))/0x8*(-parseInt(_0x29ab09(0x12e))/0x9)+parseInt(_0x29ab09(0x152))/0xa;if(_0x59137d===_0xac7570)break;else _0x248424['push'](_0x248424['shift']());}catch(_0x7ec85c){_0x248424['push'](_0x248424['shift']());}}}(a60_0x5202,0xafeb8));import{existsSync,mkdirSync,writeFileSync,readFileSync}from'node:fs';import{join,dirname}from'node:path';import{fileURLToPath}from'node:url';import{readConfig}from'../utils/config.js';import{logger}from'../utils/logger.js';import{getRulesContent}from'../utils/rules-cdn.js';const __dirname=dirname(fileURLToPath(import.meta.url));export const MCP_SERVER_NAME=a60_0x50cfbc(0x128);function a60_0x2052(_0x29c05a,_0xa199b8){_0x29c05a=_0x29c05a-0x128;const _0x520240=a60_0x5202();let _0x20524e=_0x520240[_0x29c05a];return _0x20524e;}export const MCP_COMMAND=a60_0x50cfbc(0x157);export const MCP_ARGS=['@lovrabet/dataset-mcp-server@latest'];export function getAppConfig(){const _0x54fd14=a60_0x50cfbc,_0x1ba315=readConfig(),_0x59d207=_0x1ba315[_0x54fd14(0x142)]||_0x1ba315[_0x54fd14(0x160)],_0x21561d=_0x1ba315[_0x54fd14(0x15f)]||'online';if(!_0x59d207)throw new Error(_0x54fd14(0x143));return{'appcode':String(_0x59d207),'env':_0x21561d};}export function buildMcpEnv(_0x1cf738,_0x3c950a){const _0x3980da=a60_0x50cfbc,_0xfae599={'LOVRABET_APP_CODE':_0x1cf738};return _0x3c950a!==_0x3980da(0x148)&&(_0xfae599[_0x3980da(0x165)]=_0x3c950a),_0xfae599;}function a60_0x5202(){const _0x1a2fcc=['AppCode:\x20',',\x20env=','7848qbgbel','\x22LOVRABET_APP_CODE\x22:\x20\x22','配置失败','配置信息:','环境:\x20','claude\x20mcp\x20add\x20','2748858nQNWvq','5WHuJwJ','创建新的\x20mcp.json\x20配置','mcp-cursor','创建\x20Cursor\x20Rules\x20文件','\x20\x20\x20\x20\x22lovrabet-dataset\x22:\x20{','push','\x20\x20\x20\x20\x20\x20\x22args\x22:\x20[\x22@lovrabet/dataset-mcp-server@latest\x22],','\x20-e\x20LOVRABET_ENV=','\x22LOVRABET_ENV\x22:\x20\x22','\x0a\x20\x20','lovrabet_rules.mdc','utf8','592712KEBMCJ','appcode','未找到\x20appcode\x20配置,请先运行\x20\x27lovrabet\x20init\x27\x20初始化项目配置','\x20\x20\x20\x20\x20\x20\x22command\x22:\x20\x22npx\x22,','复制\x20agents.md\x20文件失败','message','重启\x20Cursor\x20后生效','online','join','\x20\x20}','Cursor\x20Rules\x20文件已存在,跳过','stringify','mcpServers','.cursor','parse','\x20\x20\x20\x20\x20\x20}','创建\x20agents.md\x20文件','11545330IaIvjj','info','9ttYzgG','复制\x20Cursor\x20Rules\x20文件失败','error','npx','1177716eyVkVW','重启\x20Claude\x20Code\x20后生效','mcp-install','utf-8','874092Hqnkeh','配置\x20Cursor\x20MCP\x20失败','mcp.json','env','app','map','12896LShWDx','\x20\x20\x20\x20\x20\x20\x22env\x22:\x20{','agents.md','LOVRABET_ENV','更新现有\x20mcp.json\x20配置','mcp-claude','配置信息:\x20appcode=','详细配置指南:\x20https://help.yuntoo.com/mcp/config-guide','agents.md\x20文件已存在,跳过','lovrabet-dataset','\x20\x20\x20\x20}','4915547TbzyLG','配置\x20Cursor\x20MCP\x20成功'];a60_0x5202=function(){return _0x1a2fcc;};return a60_0x5202();}export function buildMcpServerConfig(_0x6d09e0,_0x670345){return{'command':MCP_COMMAND,'args':MCP_ARGS,'env':buildMcpEnv(_0x6d09e0,_0x670345)};}export function buildClaudeMcpCommand(_0x587f5f,_0xf8a6b0){const _0x20dcfa=a60_0x50cfbc,_0x2d4827=_0x20dcfa(0x133)+MCP_SERVER_NAME+'\x20'+MCP_COMMAND+'\x20'+MCP_ARGS['join']('\x20')+'\x20-e\x20LOVRABET_APP_CODE='+_0x587f5f,_0xa50d26=_0xf8a6b0!=='online'?_0x20dcfa(0x13c)+_0xf8a6b0:'';return''+_0x2d4827+_0xa50d26;}export async function copyCursorRules(_0x258746){const _0x521657=a60_0x50cfbc,_0x42f07e=join(_0x258746,_0x521657(0x14e)),_0x4ae98f=join(_0x42f07e,'rules'),_0x2d6b06=join(_0x4ae98f,_0x521657(0x13f));if(existsSync(_0x2d6b06))return logger[_0x521657(0x153)](_0x521657(0x15a),_0x521657(0x14b),{'path':_0x2d6b06}),![];try{ensureDir(_0x4ae98f);const _0x4bc750=await getRulesContent();return writeFileSync(_0x2d6b06,_0x4bc750,_0x521657(0x15b)),logger['info'](_0x521657(0x15a),_0x521657(0x138),{'to':_0x2d6b06}),!![];}catch(_0x3e65d9){return logger[_0x521657(0x156)]('mcp-install',_0x521657(0x155),{'error':_0x3e65d9 instanceof Error?_0x3e65d9[_0x521657(0x146)]:String(_0x3e65d9)}),![];}}export async function copyAgentsMd(_0xba27ab){const _0x1ae9e0=a60_0x50cfbc,_0x4f800b=join(_0xba27ab,_0x1ae9e0(0x164));if(existsSync(_0x4f800b))return logger[_0x1ae9e0(0x153)](_0x1ae9e0(0x15a),_0x1ae9e0(0x16a),{'path':_0x4f800b}),![];try{const _0x4111dc=await getRulesContent();return writeFileSync(_0x4f800b,_0x4111dc,_0x1ae9e0(0x15b)),logger[_0x1ae9e0(0x153)](_0x1ae9e0(0x15a),_0x1ae9e0(0x151),{'to':_0x4f800b}),!![];}catch(_0x3c3fee){return logger[_0x1ae9e0(0x156)]('mcp-install',_0x1ae9e0(0x145),{'error':_0x3c3fee instanceof Error?_0x3c3fee[_0x1ae9e0(0x146)]:String(_0x3c3fee)}),![];}}export async function configureCursorMcp(_0x17f844){const _0x3b13d6=a60_0x50cfbc;try{const {appcode:_0x2db09d,env:_0x5607b0}=getAppConfig(),_0x4fe846=join(_0x17f844,'.cursor'),_0xa18f93=join(_0x4fe846,_0x3b13d6(0x15e));ensureDir(_0x4fe846);const _0x4bdf17=buildMcpServerConfig(_0x2db09d,_0x5607b0);let _0x45693f;if(existsSync(_0xa18f93)){const _0x554ad4=readFileSync(_0xa18f93,_0x3b13d6(0x140));_0x45693f=JSON[_0x3b13d6(0x14f)](_0x554ad4),!_0x45693f[_0x3b13d6(0x14d)]&&(_0x45693f[_0x3b13d6(0x14d)]={}),logger[_0x3b13d6(0x153)](_0x3b13d6(0x137),_0x3b13d6(0x166),{'path':_0xa18f93,'appcode':_0x2db09d,'env':_0x5607b0});}else _0x45693f={'mcpServers':{}},logger[_0x3b13d6(0x153)](_0x3b13d6(0x137),_0x3b13d6(0x136),{'path':_0xa18f93,'appcode':_0x2db09d,'env':_0x5607b0});_0x45693f[_0x3b13d6(0x14d)][MCP_SERVER_NAME]=_0x4bdf17,writeFileSync(_0xa18f93,JSON[_0x3b13d6(0x14c)](_0x45693f,null,0x2),{'encoding':_0x3b13d6(0x140)});const _0x195d30=await copyCursorRules(_0x17f844),_0x40c7b3=['已写入\x20.cursor/mcp.json',_0x3b13d6(0x12c)+_0x2db09d];return _0x5607b0!==_0x3b13d6(0x148)&&_0x40c7b3[_0x3b13d6(0x13a)](_0x3b13d6(0x132)+_0x5607b0),_0x40c7b3['push'](_0x3b13d6(0x147)),_0x195d30&&_0x40c7b3[_0x3b13d6(0x13a)]('已创建\x20Cursor\x20Rules\x20文件'),logger[_0x3b13d6(0x153)](_0x3b13d6(0x137),_0x3b13d6(0x12b),{'appcode':_0x2db09d,'env':_0x5607b0,'configPath':_0xa18f93}),{'success':!![],'message':_0x40c7b3['join'](_0x3b13d6(0x13e))};}catch(_0x413fa7){return logger[_0x3b13d6(0x156)]('mcp-cursor',_0x3b13d6(0x15d),{'error':_0x413fa7 instanceof Error?_0x413fa7['message']:String(_0x413fa7)}),{'success':![],'message':_0x413fa7 instanceof Error?_0x413fa7[_0x3b13d6(0x146)]:String(_0x413fa7)};}}export function configureClaudeMcp(_0x483b32){const _0x3dbb2e=a60_0x50cfbc;try{const {appcode:_0x3f4b72,env:_0xc16ba7}=getAppConfig();copyAgentsMd(_0x483b32);const _0x1caeb0=buildClaudeMcpCommand(_0x3f4b72,_0xc16ba7),_0x110dab=['请执行以下命令配置\x20Claude\x20Code\x20MCP:',''+_0x1caeb0,_0x3dbb2e(0x131),_0x3dbb2e(0x12c)+_0x3f4b72];return _0xc16ba7!==_0x3dbb2e(0x148)&&_0x110dab['push'](_0x3dbb2e(0x132)+_0xc16ba7),_0x110dab[_0x3dbb2e(0x13a)](_0x3dbb2e(0x159)),logger[_0x3dbb2e(0x153)](_0x3dbb2e(0x167),'生成配置命令',{'appcode':_0x3f4b72,'env':_0xc16ba7,'command':_0x1caeb0}),{'success':!![],'message':_0x110dab['join']('\x0a\x20\x20'),'needsManualAction':!![]};}catch(_0x415a70){return logger[_0x3dbb2e(0x156)](_0x3dbb2e(0x167),_0x3dbb2e(0x130),{'error':_0x415a70 instanceof Error?_0x415a70[_0x3dbb2e(0x146)]:String(_0x415a70)}),{'success':![],'message':_0x415a70 instanceof Error?_0x415a70[_0x3dbb2e(0x146)]:String(_0x415a70)};}}export function showOtherMcpGuide(_0x54d6c3){const _0x37bbf2=a60_0x50cfbc;try{const {appcode:_0x3d597b,env:_0x27af48}=getAppConfig(),_0x2bc280=buildMcpServerConfig(_0x3d597b,_0x27af48),_0xe117ec=[_0x37bbf2(0x12f)+_0x3d597b+'\x22'];_0x27af48!==_0x37bbf2(0x148)&&_0xe117ec[_0x37bbf2(0x13a)](_0x37bbf2(0x13d)+_0x27af48+'\x22');const _0x10238f=[_0x37bbf2(0x168)+_0x3d597b+_0x37bbf2(0x12d)+_0x27af48,'{','\x20\x20\x22mcpServers\x22:\x20{',_0x37bbf2(0x139),_0x37bbf2(0x144),_0x37bbf2(0x13b),_0x37bbf2(0x163),..._0xe117ec[_0x37bbf2(0x161)](_0x4dd2fd=>'\x20\x20\x20\x20\x20\x20\x20\x20'+_0x4dd2fd+','),_0x37bbf2(0x150),_0x37bbf2(0x129),_0x37bbf2(0x14a),'}',_0x37bbf2(0x169)];return logger['info'](_0x37bbf2(0x15a),'其他\x20IDE\x20配置指引已显示',{'appcode':_0x3d597b,'env':_0x27af48}),{'success':!![],'message':_0x10238f[_0x37bbf2(0x149)]('\x0a'),'needsManualAction':!![]};}catch(_0x28342c){return{'success':![],'message':_0x28342c instanceof Error?_0x28342c[_0x37bbf2(0x146)]:String(_0x28342c)};}}function ensureDir(_0x23f6b8){!existsSync(_0x23f6b8)&&mkdirSync(_0x23f6b8,{'recursive':!![]});}
1
+ const a60_0x39c62e=a60_0x1c5e;(function(_0x39c6eb,_0x1f01df){const _0x98e136=a60_0x1c5e,_0x6f1a29=_0x39c6eb();while(!![]){try{const _0x1f834c=parseInt(_0x98e136(0x119))/0x1*(parseInt(_0x98e136(0x11d))/0x2)+parseInt(_0x98e136(0x12b))/0x3*(-parseInt(_0x98e136(0x11e))/0x4)+-parseInt(_0x98e136(0x107))/0x5*(parseInt(_0x98e136(0x132))/0x6)+parseInt(_0x98e136(0x123))/0x7*(-parseInt(_0x98e136(0x117))/0x8)+parseInt(_0x98e136(0x111))/0x9*(-parseInt(_0x98e136(0x125))/0xa)+parseInt(_0x98e136(0x103))/0xb*(-parseInt(_0x98e136(0x106))/0xc)+parseInt(_0x98e136(0x10d))/0xd;if(_0x1f834c===_0x1f01df)break;else _0x6f1a29['push'](_0x6f1a29['shift']());}catch(_0x2d9b94){_0x6f1a29['push'](_0x6f1a29['shift']());}}}(a60_0x5167,0x70fa5));import{existsSync,mkdirSync,writeFileSync,readFileSync}from'node:fs';import{join,dirname}from'node:path';import{fileURLToPath}from'node:url';function a60_0x5167(){const _0x3808ab=['utf8','mcpServers','721uMcfTZ','其他\x20IDE\x20配置指引已显示','90gikNcn','\x20\x20\x20\x20}','复制\x20agents.md\x20文件失败','\x0a\x20\x20','\x20\x20\x20\x20\x20\x20\x22env\x22:\x20{','join','95754GoxvSz','\x20\x20\x20\x20\x22lovrabet-dataset\x22:\x20{','app','已创建\x20Cursor\x20Rules\x20文件','Cursor\x20Rules\x20文件已存在,跳过','更新现有\x20mcp.json\x20配置','\x20\x20\x22mcpServers\x22:\x20{','5204334LbycCl','\x20-e\x20LOVRABET_ENV=','message','配置信息:\x20appcode=','\x22LOVRABET_APP_CODE\x22:\x20\x22','.cursor','env','agents.md\x20文件已存在,跳过','mcp-install','复制\x20Cursor\x20Rules\x20文件失败','\x20\x20\x20\x20\x20\x20\x22command\x22:\x20\x22npx\x22,','已写入\x20.cursor/mcp.json','创建新的\x20mcp.json\x20配置','\x20\x20\x20\x20\x20\x20\x20\x20','rules','utf-8','4088381dYtLWv','lovrabet_rules.mdc','详细配置指南:\x20https://help.yuntoo.com/mcp/config-guide','12iEweFS','5YqJWxw','agents.md','\x20\x20\x20\x20\x20\x20\x22args\x22:\x20[\x22@lovrabet/dataset-mcp-server@latest\x22],','claude\x20mcp\x20add\x20','appcode','AppCode:\x20','37268660kbUtlj','mcp.json','npx','环境:\x20','452331qOkaPh','配置失败','info','mcp-claude','push','\x20-e\x20LOVRABET_APP_CODE=','29816jxjBax',',\x20env=','41AhkOCt','error','配置\x20Cursor\x20MCP\x20失败','mcp-cursor','10430gpzrOp','68aqiKzu','online','请执行以下命令配置\x20Claude\x20Code\x20MCP:'];a60_0x5167=function(){return _0x3808ab;};return a60_0x5167();}import{readConfig}from'../utils/config.js';import{logger}from'../utils/logger.js';import{getRulesContent}from'../utils/rules-cdn.js';const __dirname=dirname(fileURLToPath(import.meta.url));export const MCP_SERVER_NAME='lovrabet-dataset';function a60_0x1c5e(_0x218fe9,_0x30b849){_0x218fe9=_0x218fe9-0xfa;const _0x51671f=a60_0x5167();let _0x1c5e38=_0x51671f[_0x218fe9];return _0x1c5e38;}export const MCP_COMMAND=a60_0x39c62e(0x10f);export const MCP_ARGS=['@lovrabet/dataset-mcp-server@latest'];export function getAppConfig(){const _0x13f190=a60_0x39c62e,_0x256516=readConfig(),_0x3089b4=_0x256516[_0x13f190(0x10b)]||_0x256516[_0x13f190(0x12d)],_0x744c47=_0x256516[_0x13f190(0x138)]||'online';if(!_0x3089b4)throw new Error('未找到\x20appcode\x20配置,请先运行\x20\x27lovrabet\x20init\x27\x20初始化项目配置');return{'appcode':String(_0x3089b4),'env':_0x744c47};}export function buildMcpEnv(_0x26343f,_0x4037dd){const _0x5e58c0={'LOVRABET_APP_CODE':_0x26343f};return _0x4037dd!=='online'&&(_0x5e58c0['LOVRABET_ENV']=_0x4037dd),_0x5e58c0;}export function buildMcpServerConfig(_0x15a309,_0x286f4a){return{'command':MCP_COMMAND,'args':MCP_ARGS,'env':buildMcpEnv(_0x15a309,_0x286f4a)};}export function buildClaudeMcpCommand(_0x78bad3,_0x261442){const _0x46e023=a60_0x39c62e,_0xcffc91=_0x46e023(0x10a)+MCP_SERVER_NAME+'\x20'+MCP_COMMAND+'\x20'+MCP_ARGS[_0x46e023(0x12a)]('\x20')+_0x46e023(0x116)+_0x78bad3,_0x52d4e3=_0x261442!==_0x46e023(0x11f)?_0x46e023(0x133)+_0x261442:'';return''+_0xcffc91+_0x52d4e3;}export async function copyCursorRules(_0x37afee){const _0x296e31=a60_0x39c62e,_0x595e30=join(_0x37afee,_0x296e31(0x137)),_0x594a60=join(_0x595e30,_0x296e31(0x101)),_0x2bd88a=join(_0x594a60,_0x296e31(0x104));if(existsSync(_0x2bd88a))return logger['info']('mcp-install',_0x296e31(0x12f),{'path':_0x2bd88a}),![];try{ensureDir(_0x594a60);const _0x4f6869=await getRulesContent();return writeFileSync(_0x2bd88a,_0x4f6869,_0x296e31(0x102)),logger['info'](_0x296e31(0xfb),'创建\x20Cursor\x20Rules\x20文件',{'to':_0x2bd88a}),!![];}catch(_0x45ed93){return logger[_0x296e31(0x11a)](_0x296e31(0xfb),_0x296e31(0xfc),{'error':_0x45ed93 instanceof Error?_0x45ed93[_0x296e31(0x134)]:String(_0x45ed93)}),![];}}export async function copyAgentsMd(_0x262af6){const _0x4298a9=a60_0x39c62e,_0x289ea2=join(_0x262af6,_0x4298a9(0x108));if(existsSync(_0x289ea2))return logger[_0x4298a9(0x113)](_0x4298a9(0xfb),_0x4298a9(0xfa),{'path':_0x289ea2}),![];try{const _0x468d8f=await getRulesContent();return writeFileSync(_0x289ea2,_0x468d8f,'utf-8'),logger[_0x4298a9(0x113)](_0x4298a9(0xfb),'创建\x20agents.md\x20文件',{'to':_0x289ea2}),!![];}catch(_0x5e2968){return logger['error'](_0x4298a9(0xfb),_0x4298a9(0x127),{'error':_0x5e2968 instanceof Error?_0x5e2968[_0x4298a9(0x134)]:String(_0x5e2968)}),![];}}export async function configureCursorMcp(_0x26138a){const _0x5b2a11=a60_0x39c62e;try{const {appcode:_0x55cc66,env:_0x5070ab}=getAppConfig(),_0x2e36c8=join(_0x26138a,_0x5b2a11(0x137)),_0x4f254c=join(_0x2e36c8,_0x5b2a11(0x10e));ensureDir(_0x2e36c8);const _0x5b4735=buildMcpServerConfig(_0x55cc66,_0x5070ab);let _0xbe7f3c;if(existsSync(_0x4f254c)){const _0xac5abe=readFileSync(_0x4f254c,_0x5b2a11(0x121));_0xbe7f3c=JSON['parse'](_0xac5abe),!_0xbe7f3c['mcpServers']&&(_0xbe7f3c['mcpServers']={}),logger[_0x5b2a11(0x113)]('mcp-cursor',_0x5b2a11(0x130),{'path':_0x4f254c,'appcode':_0x55cc66,'env':_0x5070ab});}else _0xbe7f3c={'mcpServers':{}},logger[_0x5b2a11(0x113)](_0x5b2a11(0x11c),_0x5b2a11(0xff),{'path':_0x4f254c,'appcode':_0x55cc66,'env':_0x5070ab});_0xbe7f3c[_0x5b2a11(0x122)][MCP_SERVER_NAME]=_0x5b4735,writeFileSync(_0x4f254c,JSON['stringify'](_0xbe7f3c,null,0x2),{'encoding':_0x5b2a11(0x121)});const _0x2aebf7=await copyCursorRules(_0x26138a),_0x2077a2=[_0x5b2a11(0xfe),_0x5b2a11(0x10c)+_0x55cc66];return _0x5070ab!==_0x5b2a11(0x11f)&&_0x2077a2['push'](_0x5b2a11(0x110)+_0x5070ab),_0x2077a2[_0x5b2a11(0x115)]('重启\x20Cursor\x20后生效'),_0x2aebf7&&_0x2077a2[_0x5b2a11(0x115)](_0x5b2a11(0x12e)),logger[_0x5b2a11(0x113)](_0x5b2a11(0x11c),'配置\x20Cursor\x20MCP\x20成功',{'appcode':_0x55cc66,'env':_0x5070ab,'configPath':_0x4f254c}),{'success':!![],'message':_0x2077a2[_0x5b2a11(0x12a)]('\x0a\x20\x20')};}catch(_0x125d79){return logger[_0x5b2a11(0x11a)](_0x5b2a11(0x11c),_0x5b2a11(0x11b),{'error':_0x125d79 instanceof Error?_0x125d79['message']:String(_0x125d79)}),{'success':![],'message':_0x125d79 instanceof Error?_0x125d79[_0x5b2a11(0x134)]:String(_0x125d79)};}}export function configureClaudeMcp(_0x35f0ad){const _0x5404a6=a60_0x39c62e;try{const {appcode:_0x88befe,env:_0x9d7f3}=getAppConfig();copyAgentsMd(_0x35f0ad);const _0x141fa2=buildClaudeMcpCommand(_0x88befe,_0x9d7f3),_0x56fd2a=[_0x5404a6(0x120),''+_0x141fa2,'配置信息:','AppCode:\x20'+_0x88befe];return _0x9d7f3!==_0x5404a6(0x11f)&&_0x56fd2a['push']('环境:\x20'+_0x9d7f3),_0x56fd2a['push']('重启\x20Claude\x20Code\x20后生效'),logger['info']('mcp-claude','生成配置命令',{'appcode':_0x88befe,'env':_0x9d7f3,'command':_0x141fa2}),{'success':!![],'message':_0x56fd2a['join'](_0x5404a6(0x128)),'needsManualAction':!![]};}catch(_0x3eae69){return logger['error'](_0x5404a6(0x114),_0x5404a6(0x112),{'error':_0x3eae69 instanceof Error?_0x3eae69[_0x5404a6(0x134)]:String(_0x3eae69)}),{'success':![],'message':_0x3eae69 instanceof Error?_0x3eae69['message']:String(_0x3eae69)};}}export function showOtherMcpGuide(_0x81a842){const _0xea0604=a60_0x39c62e;try{const {appcode:_0x575315,env:_0x17899d}=getAppConfig(),_0x4ccc08=buildMcpServerConfig(_0x575315,_0x17899d),_0x4b4183=[_0xea0604(0x136)+_0x575315+'\x22'];_0x17899d!==_0xea0604(0x11f)&&_0x4b4183[_0xea0604(0x115)]('\x22LOVRABET_ENV\x22:\x20\x22'+_0x17899d+'\x22');const _0x46bd4f=[_0xea0604(0x135)+_0x575315+_0xea0604(0x118)+_0x17899d,'{',_0xea0604(0x131),_0xea0604(0x12c),_0xea0604(0xfd),_0xea0604(0x109),_0xea0604(0x129),..._0x4b4183['map'](_0x29cce1=>_0xea0604(0x100)+_0x29cce1+','),'\x20\x20\x20\x20\x20\x20}',_0xea0604(0x126),'\x20\x20}','}',_0xea0604(0x105)];return logger[_0xea0604(0x113)](_0xea0604(0xfb),_0xea0604(0x124),{'appcode':_0x575315,'env':_0x17899d}),{'success':!![],'message':_0x46bd4f[_0xea0604(0x12a)]('\x0a'),'needsManualAction':!![]};}catch(_0x4f4af3){return{'success':![],'message':_0x4f4af3 instanceof Error?_0x4f4af3[_0xea0604(0x134)]:String(_0x4f4af3)};}}function ensureDir(_0x119d5a){!existsSync(_0x119d5a)&&mkdirSync(_0x119d5a,{'recursive':!![]});}
@@ -1 +1 @@
1
- const a61_0x5a5309=a61_0x2af6;(function(_0x18d5fe,_0x116973){const _0x4f9cb0=a61_0x2af6,_0x3047bc=_0x18d5fe();while(!![]){try{const _0x261058=-parseInt(_0x4f9cb0(0xd0))/0x1*(-parseInt(_0x4f9cb0(0xc8))/0x2)+parseInt(_0x4f9cb0(0xa4))/0x3+-parseInt(_0x4f9cb0(0xbc))/0x4+parseInt(_0x4f9cb0(0xc7))/0x5+-parseInt(_0x4f9cb0(0xb5))/0x6+-parseInt(_0x4f9cb0(0xbb))/0x7*(parseInt(_0x4f9cb0(0xa9))/0x8)+-parseInt(_0x4f9cb0(0xbf))/0x9*(parseInt(_0x4f9cb0(0xb8))/0xa);if(_0x261058===_0x116973)break;else _0x3047bc['push'](_0x3047bc['shift']());}catch(_0x5f5acf){_0x3047bc['push'](_0x3047bc['shift']());}}}(a61_0x512f,0x80727));import{jsx as a61_0x3c92e8,jsxs as a61_0x43864a,Fragment as a61_0x3bb50e}from'react/jsx-runtime';import{useState,useEffect}from'react';import{Text,Box,useInput,useApp}from'ink';import{writeFileSync}from'node:fs';import{resolve,join}from'node:path';import{fileURLToPath}from'node:url';import{dirname}from'node:path';import{logger}from'../utils/logger.js';import{copyDir}from'../utils/file-utils.js';import{IDE_CONFIGS,IDE_LIST}from'../utils/ai_config.js';import{installSingleIDE}from'./skill-installer.js';function a61_0x512f(){const _0x1c95e2=['column','已安装\x20','2332290vHAdCA','安装成功','done','20hrpoZU','按任意键退出...','length','7eHqpKX','68940EEBqeo','skill-install','selecting','1123749qaWQaJ','keys','error','\x20个目录','utf-8','正在安装技能包...','cwd','selectedIndexes','5036815cEdScz','14pNwbLD','log','description','return','.lovrabet','正在从\x20CDN\x20拉取开发者指南','cyan','.lovrabet/skill-manifest.json','52007MUEbOG','green','setErrorMsg','\x20失败:\x20','请至少选择一个\x20IDE','\x20\x20✗\x20安装\x20','✓\x20技能包安装成功!共安装\x20','.lovrabet/skill/.shared/guides','...','262098tvmipT','installing','message','size','✓\x20拉取\x20','2215896hLHkRf','value','\x20个开发者指南','gray','name','开发者指南位置:\x20.lovrabet/skill/.shared/guides/','info','已选择\x20IDE','2.0.0','map'];a61_0x512f=function(){return _0x1c95e2;};return a61_0x512f();}import{fetchGuidesFromCDN,writeGuidesToProject}from'../utils/guides-cdn.js';import{IDESelector,useIDESelection}from'../ui/IDESelector.js';const __dirname=dirname(fileURLToPath(import.meta.url)),UI_IDE_LIST=IDE_LIST[a61_0x5a5309(0xb2)](_0x3e5bbe=>({'key':_0x3e5bbe,'name':IDE_CONFIGS[_0x3e5bbe][a61_0x5a5309(0xad)],'description':IDE_CONFIGS[_0x3e5bbe][a61_0x5a5309(0xca)]}));export function SkillInstallUI({preselectedIDEs:preselectedIDEs=[],providedFlags:_0x72ae11}){const _0x2a09c4=a61_0x5a5309,{exit:_0x11ef2d}=useApp(),[_0x538b5c,_0x1151ff]=useState(_0x2a09c4(0xbe)),[_0xe9747b,_0x2066e7]=useState([]),[_0x4045f4,_0x58d699]=useState([]),[_0x48c59b,_0x110e3a]=useState(0x0),_0x24e5bf=useIDESelection({'ideList':UI_IDE_LIST,'preselectedIDEs':preselectedIDEs,'multiSelect':!![]});useEffect(()=>{const _0x41e1b0=_0x2a09c4;preselectedIDEs[_0x41e1b0(0xba)]>0x0&&_0x24e5bf['selectedIndexes'][_0x41e1b0(0xa7)]>0x0&&_0x25d85e();},[]),useInput((_0x17f914,_0x4c1ac2)=>{const _0x334aac=_0x2a09c4;if(_0x538b5c===_0x334aac(0xbe)){if(_0x17f914==='q'||_0x17f914==='Q'){_0x11ef2d();return;}if(_0x4c1ac2[_0x334aac(0xcb)]){if(_0x24e5bf['selectedIndexes'][_0x334aac(0xa7)]===0x0){_0x24e5bf[_0x334aac(0x9d)](_0x334aac(0x9f));return;}_0x25d85e();return;}_0x24e5bf['handleKeyDown'](_0x17f914,_0x4c1ac2);}_0x538b5c==='done'&&_0x11ef2d();});async function _0x25d85e(){const _0x2e77eb=_0x2a09c4,_0x520159=_0x24e5bf['getSelectedIDEs']();_0x58d699(_0x520159),_0x2066e7([{'label':_0x2e77eb(0xb0),'value':_0x24e5bf[_0x2e77eb(0xc6)]['size']+'\x20个'}]),_0x1151ff(_0x2e77eb(0xa5)),await _0x26a691(_0x520159);}async function _0x26a691(_0x8f00ed){const _0x572278=_0x2a09c4,_0x3a15fc=process[_0x572278(0xc5)](),_0x5b151c=resolve(__dirname,'../../cdn-source/skills');logger['setLogPath'](_0x3a15fc);const _0x34e2c5=_0x72ae11&&_0x72ae11[_0x572278(0xba)]>0x0;console[_0x572278(0xc9)](_0x572278(0xcd)+(_0x34e2c5?'(含扩展)':'')+_0x572278(0xa3));let _0x493a2b;try{_0x493a2b=await fetchGuidesFromCDN(_0x34e2c5),console[_0x572278(0xc9)](_0x572278(0xa8)+Object[_0x572278(0xc0)](_0x493a2b['guides'])[_0x572278(0xba)]+_0x572278(0xab));}catch(_0x477704){console['warn']('\x20\x20!\x20CDN\x20拉取失败,跳过指南安装:\x20'+(_0x477704 instanceof Error?_0x477704[_0x572278(0xa6)]:String(_0x477704)));}let _0x1de9e8=0x0;for(const _0x1db772 of _0x8f00ed){try{const _0x20181d=IDE_CONFIGS[_0x1db772],_0x45bd06=await installSingleIDE(_0x1db772,_0x20181d,_0x3a15fc,_0x5b151c,_0x493a2b,_0x72ae11);_0x1de9e8+=_0x45bd06,_0x110e3a(_0x1de9e8);}catch(_0x2d9957){console[_0x572278(0xc1)](_0x572278(0xa0)+_0x1db772+_0x572278(0x9e)+(_0x2d9957 instanceof Error?_0x2d9957[_0x572278(0xa6)]:String(_0x2d9957)));}}_0x493a2b&&writeGuidesToProject(_0x493a2b,_0x3a15fc,_0x572278(0xa2),_0x72ae11);const _0xb17d14={'version':_0x572278(0xb1),'installedAt':new Date()['toISOString'](),'platforms':_0x8f00ed},_0x56eb4a=join(_0x3a15fc,_0x572278(0xcf)),_0x590832=join(_0x3a15fc,_0x572278(0xcc));await copyDir(_0x590832,_0x590832),writeFileSync(_0x56eb4a,JSON['stringify'](_0xb17d14,null,0x2),_0x572278(0xc3)),logger[_0x572278(0xaf)](_0x572278(0xbd),_0x572278(0xb6),{'projectRoot':_0x3a15fc,'ides':_0x8f00ed,'foldersCount':_0x1de9e8}),_0x1151ff(_0x572278(0xb7)),setTimeout(()=>{_0x11ef2d();},0x3e8);}return a61_0x43864a(Box,{'flexDirection':_0x2a09c4(0xb3),'marginTop':0x1,'children':[_0x538b5c===_0x2a09c4(0xbe)&&a61_0x3c92e8(IDESelector,{'ideList':UI_IDE_LIST,'title':'安装\x20Lovrabet\x20技能包\x20-\x20选择\x20IDE','selection':_0x24e5bf}),_0x538b5c==='installing'&&a61_0x3c92e8(InstallingStep,{'completedSteps':_0xe9747b,'installingIDEs':_0x4045f4,'installedCount':_0x48c59b}),_0x538b5c===_0x2a09c4(0xb7)&&a61_0x3c92e8(DoneStep,{'installedCount':_0x48c59b})]});}function InstallingStep({completedSteps:_0x461329,installingIDEs:_0x568e25,installedCount:_0xe08016}){const _0x4fa097=a61_0x5a5309;return a61_0x43864a(a61_0x3bb50e,{'children':[_0x461329[_0x4fa097(0xb2)]((_0x3dd9f2,_0x2161d0)=>a61_0x43864a(Box,{'children':[a61_0x43864a(Text,{'color':_0x4fa097(0x9c),'children':['√\x20',_0x3dd9f2['label'],':\x20']}),a61_0x3c92e8(Text,{'color':_0x4fa097(0xce),'children':_0x3dd9f2[_0x4fa097(0xaa)]})]},_0x2161d0)),a61_0x3c92e8(Box,{'marginTop':0x1,'children':a61_0x3c92e8(Text,{'children':_0x4fa097(0xc4)})}),_0x568e25[_0x4fa097(0xb2)](_0x38d615=>a61_0x43864a(Box,{'children':[a61_0x3c92e8(Text,{'color':'green','children':'\x20\x20✓\x20'}),a61_0x3c92e8(Text,{'children':IDE_CONFIGS[_0x38d615]?.[_0x4fa097(0xad)]||_0x38d615})]},_0x38d615)),a61_0x3c92e8(Box,{'marginTop':0x1,'children':a61_0x43864a(Text,{'color':_0x4fa097(0xac),'children':[_0x4fa097(0xb4),_0xe08016,'\x20个目录']})})]});}function a61_0x2af6(_0x31e929,_0x59704c){_0x31e929=_0x31e929-0x9c;const _0x512ff7=a61_0x512f();let _0x2af6d7=_0x512ff7[_0x31e929];return _0x2af6d7;}function DoneStep({installedCount:_0x372e9e}){const _0x3e8715=a61_0x5a5309;return a61_0x43864a(a61_0x3bb50e,{'children':[a61_0x3c92e8(Box,{'children':a61_0x43864a(Text,{'color':_0x3e8715(0x9c),'children':[_0x3e8715(0xa1),_0x372e9e,_0x3e8715(0xc2)]})}),a61_0x3c92e8(Box,{'marginTop':0x1,'children':a61_0x3c92e8(Text,{'color':_0x3e8715(0xac),'children':_0x3e8715(0xae)})}),a61_0x3c92e8(Box,{'marginTop':0x1,'children':a61_0x3c92e8(Text,{'color':_0x3e8715(0xac),'children':_0x3e8715(0xb9)})})]});}async function copyDirIfNeeded(_0x5d7265,_0x7198f6){try{return await copyDir(_0x5d7265,_0x7198f6),!![];}catch{return![];}}
1
+ const a61_0x417cd5=a61_0x4150;(function(_0x3bce8e,_0x503835){const _0x47fbf0=a61_0x4150,_0x499c19=_0x3bce8e();while(!![]){try{const _0x53bd04=-parseInt(_0x47fbf0(0x120))/0x1+parseInt(_0x47fbf0(0xf3))/0x2*(-parseInt(_0x47fbf0(0x10a))/0x3)+parseInt(_0x47fbf0(0x113))/0x4+-parseInt(_0x47fbf0(0x110))/0x5*(parseInt(_0x47fbf0(0x114))/0x6)+parseInt(_0x47fbf0(0x11f))/0x7+-parseInt(_0x47fbf0(0x115))/0x8+parseInt(_0x47fbf0(0x11c))/0x9;if(_0x53bd04===_0x503835)break;else _0x499c19['push'](_0x499c19['shift']());}catch(_0x334791){_0x499c19['push'](_0x499c19['shift']());}}}(a61_0x2977,0xb6f3b));import{jsx as a61_0x1aba55,jsxs as a61_0x5a98d9,Fragment as a61_0x28546c}from'react/jsx-runtime';import{useState,useEffect}from'react';function a61_0x4150(_0xb03a02,_0xb09aea){_0xb03a02=_0xb03a02-0xf1;const _0x297712=a61_0x2977();let _0x4150b6=_0x297712[_0xb03a02];return _0x4150b6;}import{Text,Box,useInput,useApp}from'ink';import{writeFileSync}from'node:fs';import{resolve,join}from'node:path';function a61_0x2977(){const _0x4efbc1=['\x20\x20✓\x20','cyan','正在安装技能包...','24263271PIPpvG','\x20个目录','已选择\x20IDE','1515549HQTflO','1186087GyCavA','installing','stringify','toISOString','.lovrabet','name','message','getSelectedIDEs','26oEtfdK','selectedIndexes','green','../../cdn-source/skills','keys','已安装\x20','size','安装\x20Lovrabet\x20技能包\x20-\x20选择\x20IDE','请至少选择一个\x20IDE','\x20个开发者指南','description','info','done','...','selecting','gray','\x20\x20!\x20CDN\x20拉取失败,跳过指南安装:\x20','✓\x20拉取\x20','\x20失败:\x20','✓\x20技能包安装成功!共安装\x20','map','label','handleKeyDown','170937wPYLhI','length','正在从\x20CDN\x20拉取开发者指南','warn','setLogPath','setErrorMsg','20xgTrRi','cwd','column','3729952Eyqunn','1494618UZNLup','1378536sbeXfA','log','开发者指南位置:\x20.lovrabet/skill/.shared/guides/','guides'];a61_0x2977=function(){return _0x4efbc1;};return a61_0x2977();}import{fileURLToPath}from'node:url';import{dirname}from'node:path';import{logger}from'../utils/logger.js';import{copyDir}from'../utils/file-utils.js';import{IDE_CONFIGS,IDE_LIST}from'../utils/ai_config.js';import{installSingleIDE}from'./skill-installer.js';import{fetchGuidesFromCDN,writeGuidesToProject}from'../utils/guides-cdn.js';import{IDESelector,useIDESelection}from'../ui/IDESelector.js';const __dirname=dirname(fileURLToPath(import.meta.url)),UI_IDE_LIST=IDE_LIST[a61_0x417cd5(0x107)](_0x58219d=>({'key':_0x58219d,'name':IDE_CONFIGS[_0x58219d][a61_0x417cd5(0x125)],'description':IDE_CONFIGS[_0x58219d][a61_0x417cd5(0xfd)]}));export function SkillInstallUI({preselectedIDEs:preselectedIDEs=[],providedFlags:_0x39d683}){const _0x2d94c2=a61_0x417cd5,{exit:_0x1f2e0e}=useApp(),[_0x5466a1,_0x46750a]=useState(_0x2d94c2(0x101)),[_0x590eef,_0x4634b2]=useState([]),[_0x15ccb7,_0x312863]=useState([]),[_0x578787,_0x64a928]=useState(0x0),_0x219158=useIDESelection({'ideList':UI_IDE_LIST,'preselectedIDEs':preselectedIDEs,'multiSelect':!![]});useEffect(()=>{const _0x5bf022=_0x2d94c2;preselectedIDEs['length']>0x0&&_0x219158[_0x5bf022(0xf4)][_0x5bf022(0xf9)]>0x0&&_0x4c2c0f();},[]),useInput((_0x44c1cb,_0x6bc9e2)=>{const _0x39b6fe=_0x2d94c2;if(_0x5466a1===_0x39b6fe(0x101)){if(_0x44c1cb==='q'||_0x44c1cb==='Q'){_0x1f2e0e();return;}if(_0x6bc9e2['return']){if(_0x219158[_0x39b6fe(0xf4)][_0x39b6fe(0xf9)]===0x0){_0x219158[_0x39b6fe(0x10f)](_0x39b6fe(0xfb));return;}_0x4c2c0f();return;}_0x219158[_0x39b6fe(0x109)](_0x44c1cb,_0x6bc9e2);}_0x5466a1==='done'&&_0x1f2e0e();});async function _0x4c2c0f(){const _0x13f72b=_0x2d94c2,_0x443abc=_0x219158[_0x13f72b(0xf2)]();_0x312863(_0x443abc),_0x4634b2([{'label':_0x13f72b(0x11e),'value':_0x219158['selectedIndexes']['size']+'\x20个'}]),_0x46750a(_0x13f72b(0x121)),await _0x94fec7(_0x443abc);}async function _0x94fec7(_0x14eb30){const _0x2e71c0=_0x2d94c2,_0x53ff3f=process[_0x2e71c0(0x111)](),_0x4fabc7=resolve(__dirname,_0x2e71c0(0xf6));logger[_0x2e71c0(0x10e)](_0x53ff3f);const _0x388277=_0x39d683&&_0x39d683[_0x2e71c0(0x10b)]>0x0;console['log'](_0x2e71c0(0x10c)+(_0x388277?'(含扩展)':'')+_0x2e71c0(0x100));let _0x3b87c6;try{_0x3b87c6=await fetchGuidesFromCDN(_0x388277),console[_0x2e71c0(0x116)](_0x2e71c0(0x104)+Object[_0x2e71c0(0xf7)](_0x3b87c6[_0x2e71c0(0x118)])[_0x2e71c0(0x10b)]+_0x2e71c0(0xfc));}catch(_0x40ada2){console[_0x2e71c0(0x10d)](_0x2e71c0(0x103)+(_0x40ada2 instanceof Error?_0x40ada2['message']:String(_0x40ada2)));}let _0x4cf380=0x0;for(const _0x557bd0 of _0x14eb30){try{const _0x52fcb9=IDE_CONFIGS[_0x557bd0],_0xec31bc=await installSingleIDE(_0x557bd0,_0x52fcb9,_0x53ff3f,_0x4fabc7,_0x3b87c6,_0x39d683);_0x4cf380+=_0xec31bc,_0x64a928(_0x4cf380);}catch(_0x5bb02d){console['error']('\x20\x20✗\x20安装\x20'+_0x557bd0+_0x2e71c0(0x105)+(_0x5bb02d instanceof Error?_0x5bb02d[_0x2e71c0(0xf1)]:String(_0x5bb02d)));}}_0x3b87c6&&writeGuidesToProject(_0x3b87c6,_0x53ff3f,'.lovrabet/skill/.shared/guides',_0x39d683);const _0x38be9c={'version':'2.0.0','installedAt':new Date()[_0x2e71c0(0x123)](),'platforms':_0x14eb30},_0x58b8b9=join(_0x53ff3f,'.lovrabet/skill-manifest.json'),_0x576706=join(_0x53ff3f,_0x2e71c0(0x124));await copyDir(_0x576706,_0x576706),writeFileSync(_0x58b8b9,JSON[_0x2e71c0(0x122)](_0x38be9c,null,0x2),'utf-8'),logger[_0x2e71c0(0xfe)]('skill-install','安装成功',{'projectRoot':_0x53ff3f,'ides':_0x14eb30,'foldersCount':_0x4cf380}),_0x46750a(_0x2e71c0(0xff)),setTimeout(()=>{_0x1f2e0e();},0x3e8);}return a61_0x5a98d9(Box,{'flexDirection':_0x2d94c2(0x112),'marginTop':0x1,'children':[_0x5466a1==='selecting'&&a61_0x1aba55(IDESelector,{'ideList':UI_IDE_LIST,'title':_0x2d94c2(0xfa),'selection':_0x219158}),_0x5466a1===_0x2d94c2(0x121)&&a61_0x1aba55(InstallingStep,{'completedSteps':_0x590eef,'installingIDEs':_0x15ccb7,'installedCount':_0x578787}),_0x5466a1===_0x2d94c2(0xff)&&a61_0x1aba55(DoneStep,{'installedCount':_0x578787})]});}function InstallingStep({completedSteps:_0x4471c4,installingIDEs:_0x27c3a3,installedCount:_0x277db2}){const _0x1c6a02=a61_0x417cd5;return a61_0x5a98d9(a61_0x28546c,{'children':[_0x4471c4[_0x1c6a02(0x107)]((_0x53d4d1,_0x28ac92)=>a61_0x5a98d9(Box,{'children':[a61_0x5a98d9(Text,{'color':_0x1c6a02(0xf5),'children':['√\x20',_0x53d4d1[_0x1c6a02(0x108)],':\x20']}),a61_0x1aba55(Text,{'color':_0x1c6a02(0x11a),'children':_0x53d4d1['value']})]},_0x28ac92)),a61_0x1aba55(Box,{'marginTop':0x1,'children':a61_0x1aba55(Text,{'children':_0x1c6a02(0x11b)})}),_0x27c3a3[_0x1c6a02(0x107)](_0x4f1555=>a61_0x5a98d9(Box,{'children':[a61_0x1aba55(Text,{'color':_0x1c6a02(0xf5),'children':_0x1c6a02(0x119)}),a61_0x1aba55(Text,{'children':IDE_CONFIGS[_0x4f1555]?.['name']||_0x4f1555})]},_0x4f1555)),a61_0x1aba55(Box,{'marginTop':0x1,'children':a61_0x5a98d9(Text,{'color':_0x1c6a02(0x102),'children':[_0x1c6a02(0xf8),_0x277db2,_0x1c6a02(0x11d)]})})]});}function DoneStep({installedCount:_0x4dda05}){const _0x2325d3=a61_0x417cd5;return a61_0x5a98d9(a61_0x28546c,{'children':[a61_0x1aba55(Box,{'children':a61_0x5a98d9(Text,{'color':_0x2325d3(0xf5),'children':[_0x2325d3(0x106),_0x4dda05,'\x20个目录']})}),a61_0x1aba55(Box,{'marginTop':0x1,'children':a61_0x1aba55(Text,{'color':_0x2325d3(0x102),'children':_0x2325d3(0x117)})}),a61_0x1aba55(Box,{'marginTop':0x1,'children':a61_0x1aba55(Text,{'color':'gray','children':'按任意键退出...'})})]});}async function copyDirIfNeeded(_0x5bb6b7,_0x1ab121){try{return await copyDir(_0x5bb6b7,_0x1ab121),!![];}catch{return![];}}
@@ -1 +1 @@
1
- function a62_0x213c(){const _0xd1598b=['\x20\x20✓\x20创建\x20','all','(含扩展)','\x20\x20lovrabet\x20skill\x20install\x20<ide>\x20\x20\x20\x20\x20#\x20直接安装指定\x20IDE\x20的技能包','.lovrabet/skill-manifest.json','--help','2.0.0','\x20\x20!\x20CDN\x20拉取失败,跳过指南安装:\x20','close','19631619UrgiTo','.lovrabet/skill/.shared/guides','1326708VkFywe','\x0a📦\x20正在安装\x20','\x20\x20q.\x20取消\x0a','\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择\x20IDE','1505452tWIQzL','trim','4GXtjjY','481083YBEYxI','cwd','question','length','.lovrabet','push','输入格式:\x20输入编号,用空格分隔\x20(例如:\x201\x203\x205)','toLowerCase','quit','stringify','\x20\x20lovrabet\x20skill\x20install\x20cursor\x20\x20\x20\x20#\x20直接安装\x20Cursor\x20技能包\x0a','split','error','setLogPath',',使用通用模板','\x20个开发者指南','\x0a✓\x20技能包安装成功!共安装\x20','message','⚠️\x20\x20未知的平台:\x20','不支持的命令:\x20','...','files','120OXVbKJ','log','\x0a请选择要安装技能包的\x20IDE\x20(可多选):\x0a','\x20失败:\x20','filter','\x20\x200.\x20全部安装','\x0a未选择任何\x20IDE,安装取消\x0a','agent','name','entries','slice','\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择并安装技能包','安装成功','some','from','argv','forEach','exit','folders','✓\x20拉取\x20','\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\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\x20\x20\x20\x20\x20\x20\x20\x20交互式选择并安装技能包\x0a\x20\x20lovrabet\x20skill\x20install\x20--cursor\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20直接安装指定\x20IDE\x20的技能包\x0a\x20\x20lovrabet\x20skill\x20install\x20--all\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20安装所有技能包\x0a\x20\x20lovrabet\x20skill\x20install\x20--dangerously-bff-save\x20\x20包含\x20Backend\x20Function\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\x20\x20包含\x20Backend\x20Function\x20同步工作流\x20\x20\x20-\x20使用\x20--dangerously-bff-save\x20标志\x0a\x20\x20\x20\x20$\x20lovrabet\x20skill\x20install\x20--dangerously-bff-save\x0a\x20\x20\x20\x20$\x20lovrabet\x20skill\x20install\x20cursor\x20--dangerously-bff-save\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--cline\x20\x20\x20\x20\x20\x20\x20\x20Cline\x20IDE\x20(.cline/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--dangerously-bff-save\x20\x20\x20\x20包含\x20Backend\x20Function\x20同步工作流指南\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\x20(需要\x20MCP\x20服务器启用相应\x20tools)\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\x20\x20-\x20Backend\x20Function\x20同步工作流\x20(需\x20--dangerously-bff-save\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--dangerously-bff-save\x0a\x20\x20\x20\x20→\x20安装技能包并包含\x20Backend\x20Function\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.cline/,\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-typescript-sdk/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/04-troubleshooting/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','warn','\x0a没有有效的\x20IDE\x20需要安装\x0a','643993McdLOI','输入\x200\x20安装所有\x20IDE,输入\x20q\x20取消\x0a','path','keys','-$1','toISOString','1516728EYzhrI','\x20-\x20','stdout','3533045nYDUpI','includes','utf-8','help','使用示例:','✓\x20创建\x20.lovrabet/skill-manifest.json','install','startsWith','\x20个目录\x0a','错误:\x20不支持的命令:\x20','info'];a62_0x213c=function(){return _0xd1598b;};return a62_0x213c();}(function(_0x5ac38b,_0x31f6e1){const _0x319e0f=a62_0x497b,_0x77e7d9=_0x5ac38b();while(!![]){try{const _0x101670=-parseInt(_0x319e0f(0xce))/0x1+parseInt(_0x319e0f(0xca))/0x2+-parseInt(_0x319e0f(0xd1))/0x3+-parseInt(_0x319e0f(0xd0))/0x4*(-parseInt(_0x319e0f(0x107))/0x5)+parseInt(_0x319e0f(0x104))/0x6+parseInt(_0x319e0f(0xfe))/0x7*(-parseInt(_0x319e0f(0xe7))/0x8)+parseInt(_0x319e0f(0xc8))/0x9;if(_0x101670===_0x31f6e1)break;else _0x77e7d9['push'](_0x77e7d9['shift']());}catch(_0xc5cede){_0x77e7d9['push'](_0x77e7d9['shift']());}}}(a62_0x213c,0xb91e4));import{writeFileSync}from'node:fs';import{resolve,join}from'node:path';import{fileURLToPath}from'node:url';import{dirname}from'node:path';import{createInterface}from'node:readline';import{logger}from'../utils/logger.js';import{copyDir}from'../utils/file-utils.js';function a62_0x497b(_0x29f78a,_0x97e398){_0x29f78a=_0x29f78a-0xc8;const _0x213c94=a62_0x213c();let _0x497b91=_0x213c94[_0x29f78a];return _0x497b91;}import{IDE_CONFIGS,CORE_IDE_LIST,ALL_CORE_IDES}from'../utils/ai_config.js';import{installSingleIDE}from'./skill-installer.js';import{fetchGuidesFromCDN,writeGuidesToProject}from'../utils/guides-cdn.js';const __dirname=dirname(fileURLToPath(import.meta.url));export function camelCaseFlagsToKebab(_0x2aa617){const _0x2f23f2=a62_0x497b,_0x5471ff=[];for(const [_0x42c98d,_0x18fbd3]of Object[_0x2f23f2(0xf0)](_0x2aa617)){if(_0x18fbd3===!![]){const _0xb971f8=_0x42c98d['replace'](/([A-Z])/g,_0x2f23f2(0x102))[_0x2f23f2(0xd8)]();_0x5471ff[_0x2f23f2(0xd6)](_0xb971f8);}}return _0x5471ff;}export function parseDynamicFlags(){const _0x5bc22e=a62_0x497b,_0x285a3e=[];for(let _0x12323c=0x3;_0x12323c<process[_0x5bc22e(0xf6)][_0x5bc22e(0xd4)];_0x12323c++){const _0x3cfdf2=process['argv'][_0x12323c];if(_0x3cfdf2&&_0x3cfdf2[_0x5bc22e(0x10e)]('--')){const _0x5b8bcc=_0x3cfdf2[_0x5bc22e(0xf1)](0x2);_0x5b8bcc&&!_0x5b8bcc[_0x5bc22e(0x108)]('=')&&_0x285a3e[_0x5bc22e(0xd6)](_0x5b8bcc);}}return _0x285a3e;}export function getAllProvidedFlags(_0x24bbc7){const _0x144653=a62_0x497b,_0x16103f=camelCaseFlagsToKebab(_0x24bbc7),_0x468415=parseDynamicFlags(),_0x24cfd0=new Set([..._0x16103f,..._0x468415]);return Array[_0x144653(0xf5)](_0x24cfd0);}export async function skillsCommand(_0x590903,_0x1ca6e7,_0x393e27){const _0xf95561=a62_0x497b;logger[_0xf95561(0xde)](process[_0xf95561(0xd2)]());if(_0x393e27?.[_0xf95561(0x10a)]||_0x590903===_0xf95561(0x117)){showHelp();return;}_0x590903!==_0xf95561(0x10d)&&(console[_0xf95561(0xdd)](_0xf95561(0x110)+(_0x590903||'(空)')),console['log']('\x0a可用命令:'),console[_0xf95561(0xe8)](_0xf95561(0xf2)),console[_0xf95561(0xe8)](_0xf95561(0x115)),console[_0xf95561(0xe8)]('\x20\x20lovrabet\x20skill\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20显示帮助信息\x0a'),console[_0xf95561(0xe8)](_0xf95561(0x10b)),console['log'](_0xf95561(0xcd)),console[_0xf95561(0xe8)](_0xf95561(0xdb)),logger[_0xf95561(0xdd)]('skill',_0xf95561(0xe4)+_0x590903),process[_0xf95561(0xf8)](0x1));let _0x53cd15=_0x1ca6e7?.[0x0];const _0x46b7b9=getAllProvidedFlags(_0x393e27??{});_0x53cd15?.['startsWith']('--')&&(_0x53cd15=undefined),await installSkill(_0x53cd15??_0xf95561(0xee),_0x46b7b9);}async function selectIDEs(){const _0xad06a9=a62_0x497b;return console[_0xad06a9(0xe8)](_0xad06a9(0xe9)),CORE_IDE_LIST[_0xad06a9(0xf7)]((_0x3684d7,_0x4c7d14)=>{const _0xe2fb3d=_0xad06a9;console[_0xe2fb3d(0xe8)]('\x20\x20'+(_0x4c7d14+0x1)+'.\x20'+IDE_CONFIGS[_0x3684d7][_0xe2fb3d(0xef)]+_0xe2fb3d(0x105)+IDE_CONFIGS[_0x3684d7]['description']);}),console['log'](_0xad06a9(0xec)),console['log'](_0xad06a9(0xcc)),console['log'](_0xad06a9(0xd7)),console[_0xad06a9(0xe8)](_0xad06a9(0xff)),new Promise(_0x2ecf78=>{const _0x112b8d=_0xad06a9,_0x1d809b=createInterface({'input':process['stdin'],'output':process[_0x112b8d(0x106)]});_0x1d809b[_0x112b8d(0xd3)]('请选择:\x20',_0x24bbe8=>{const _0x20eb4c=_0x112b8d;_0x1d809b[_0x20eb4c(0x11a)]();const _0x132444=_0x24bbe8[_0x20eb4c(0xcf)]()[_0x20eb4c(0xd8)]();(_0x132444==='q'||_0x132444===_0x20eb4c(0xd9)||_0x132444===_0x20eb4c(0xf8))&&(console[_0x20eb4c(0xe8)]('\x0a已取消安装\x0a'),process['exit'](0x0));if(_0x132444==='0'||_0x132444==='all'){_0x2ecf78(['all']);return;}const _0x51dc9b=_0x132444[_0x20eb4c(0xdc)](/\s+/)[_0x20eb4c(0xeb)](Boolean),_0x46f77d=[];for(const _0x103a6a of _0x51dc9b){const _0x400c94=parseInt(_0x103a6a,0xa);if(!isNaN(_0x400c94)&&_0x400c94>=0x1&&_0x400c94<=CORE_IDE_LIST['length']){const _0x3cfd84=CORE_IDE_LIST[_0x400c94-0x1];_0x3cfd84&&!_0x46f77d[_0x20eb4c(0x108)](_0x3cfd84)&&_0x46f77d[_0x20eb4c(0xd6)](_0x3cfd84);}}_0x46f77d['length']===0x0&&(console['log'](_0x20eb4c(0xed)),process['exit'](0x0)),_0x2ecf78(_0x46f77d);});});}function showHelp(){const _0x5403f9=a62_0x497b;console['log'](_0x5403f9(0xfb));}async function installSkill(_0x3e9eba,_0x511e84){const _0x4ae34d=a62_0x497b,_0x2335be=process[_0x4ae34d(0xd2)](),_0x5c889c=resolve(__dirname,'../../cdn-source/skills');let _0x18b704=[];!_0x3e9eba?_0x18b704=await selectIDEs():_0x18b704=[_0x3e9eba];_0x18b704[_0x4ae34d(0x108)](_0x4ae34d(0x113))&&(_0x18b704=[...ALL_CORE_IDES,'agent']);const _0x19e21b=[];for(const _0x131033 of _0x18b704){if(_0x131033===_0x4ae34d(0xee))_0x19e21b[_0x4ae34d(0xd6)](_0x4ae34d(0xee));else{if(_0x131033===_0x4ae34d(0x113))continue;else IDE_CONFIGS[_0x131033]?_0x19e21b[_0x4ae34d(0xd6)](_0x131033):(console[_0x4ae34d(0xe8)](_0x4ae34d(0xe3)+_0x131033+_0x4ae34d(0xdf)),_0x19e21b[_0x4ae34d(0xd6)](_0x4ae34d(0xee)));}}_0x19e21b['length']===0x0&&(console[_0x4ae34d(0xe8)](_0x4ae34d(0xfd)),process[_0x4ae34d(0xf8)](0x0));const _0x154b63=_0x511e84&&_0x511e84['length']>0x0;console['log']('正在从\x20CDN\x20拉取开发者指南'+(_0x154b63?_0x4ae34d(0x114):'')+_0x4ae34d(0xe5));let _0x447c23;try{_0x447c23=await fetchGuidesFromCDN(_0x154b63),console[_0x4ae34d(0xe8)](_0x4ae34d(0xfa)+Object[_0x4ae34d(0x101)](_0x447c23['guides'])[_0x4ae34d(0xd4)]+_0x4ae34d(0xe0));}catch(_0x358108){console[_0x4ae34d(0xfc)](_0x4ae34d(0x119)+(_0x358108 instanceof Error?_0x358108[_0x4ae34d(0xe2)]:String(_0x358108)));}let _0x4d1e6f=0x0;for(const _0x323c3f of _0x19e21b){try{const _0x20755a=_0x323c3f===_0x4ae34d(0xee)?'通用模板':IDE_CONFIGS[_0x323c3f]?.[_0x4ae34d(0xef)]||_0x323c3f;console[_0x4ae34d(0xe8)](_0x4ae34d(0xcb)+_0x20755a+'...\x0a');const _0xbaface=_0x323c3f===_0x4ae34d(0xee)?undefined:IDE_CONFIGS[_0x323c3f],_0x32ec8f=await installSingleIDE(_0x323c3f,_0xbaface,_0x2335be,_0x5c889c,_0x447c23,_0x511e84);_0x4d1e6f+=_0x32ec8f;if(_0xbaface?.['folders'])for(const _0x3fb127 of _0xbaface[_0x4ae34d(0xf9)]){const _0x5df51b=_0xbaface[_0x4ae34d(0xe6)]?.[_0x4ae34d(0xf4)](_0x1dd6a6=>_0x1dd6a6[_0x4ae34d(0x100)][_0x4ae34d(0x10e)](_0x3fb127+'/'))??![];_0x5df51b?console[_0x4ae34d(0xe8)](_0x4ae34d(0x112)+_0x3fb127+'/'):console[_0x4ae34d(0xe8)](_0x4ae34d(0x112)+_0x3fb127);}if(_0xbaface?.[_0x4ae34d(0xe6)])for(const _0x319f2a of _0xbaface['files']){console[_0x4ae34d(0xe8)]('\x20\x20✓\x20创建\x20'+_0x319f2a['path']);}}catch(_0xcd330a){console[_0x4ae34d(0xdd)]('\x20\x20✗\x20安装\x20'+_0x323c3f+_0x4ae34d(0xea)+(_0xcd330a instanceof Error?_0xcd330a[_0x4ae34d(0xe2)]:String(_0xcd330a)));}}_0x447c23&&writeGuidesToProject(_0x447c23,_0x2335be,_0x4ae34d(0xc9),_0x511e84);const _0x3b49b9={'version':_0x4ae34d(0x118),'installedAt':new Date()[_0x4ae34d(0x103)](),'platforms':_0x19e21b},_0x250774=join(_0x2335be,_0x4ae34d(0x116)),_0x28b190=join(_0x2335be,_0x4ae34d(0xd5));await copyDir(_0x28b190,_0x28b190),writeFileSync(_0x250774,JSON[_0x4ae34d(0xda)](_0x3b49b9,null,0x2),_0x4ae34d(0x109)),console[_0x4ae34d(0xe8)](_0x4ae34d(0x10c)),console['log'](_0x4ae34d(0xe1)+_0x4d1e6f+_0x4ae34d(0x10f)),console[_0x4ae34d(0xe8)]('开发者指南位置:'),console[_0x4ae34d(0xe8)]('\x20\x20.lovrabet/skill/.shared/guides/\x20-\x20详细开发指南\x0a'),logger[_0x4ae34d(0x111)]('skill-install',_0x4ae34d(0xf3),{'projectRoot':_0x2335be,'ides':_0x19e21b,'foldersCount':_0x4d1e6f});}
1
+ (function(_0x14d620,_0x50cb45){const _0x1a6a09=a62_0x5a00,_0x29aa22=_0x14d620();while(!![]){try{const _0x173768=-parseInt(_0x1a6a09(0xfb))/0x1*(parseInt(_0x1a6a09(0x149))/0x2)+-parseInt(_0x1a6a09(0x14a))/0x3+parseInt(_0x1a6a09(0x11e))/0x4+parseInt(_0x1a6a09(0x144))/0x5*(parseInt(_0x1a6a09(0x11c))/0x6)+-parseInt(_0x1a6a09(0x124))/0x7+parseInt(_0x1a6a09(0x100))/0x8*(-parseInt(_0x1a6a09(0x10a))/0x9)+parseInt(_0x1a6a09(0x11f))/0xa*(parseInt(_0x1a6a09(0x106))/0xb);if(_0x173768===_0x50cb45)break;else _0x29aa22['push'](_0x29aa22['shift']());}catch(_0x2ce8ab){_0x29aa22['push'](_0x29aa22['shift']());}}}(a62_0x17da,0x49bfe));import{writeFileSync}from'node:fs';import{resolve,join}from'node:path';import{fileURLToPath}from'node:url';import{dirname}from'node:path';import{createInterface}from'node:readline';function a62_0x5a00(_0x2e5a79,_0x7aedc5){_0x2e5a79=_0x2e5a79-0xf4;const _0x17da48=a62_0x17da();let _0x5a0078=_0x17da48[_0x2e5a79];return _0x5a0078;}import{logger}from'../utils/logger.js';import{copyDir}from'../utils/file-utils.js';import{IDE_CONFIGS,CORE_IDE_LIST,ALL_CORE_IDES}from'../utils/ai_config.js';import{installSingleIDE}from'./skill-installer.js';function a62_0x17da(){const _0x4ea346=['from','.lovrabet/skill/.shared/guides','输入格式:\x20输入编号,用空格分隔\x20(例如:\x201\x203\x205)','✓\x20创建\x20.lovrabet/skill-manifest.json','--help','keys','\x20\x20!\x20CDN\x20拉取失败,跳过指南安装:\x20','8286AiMvgO','stdout','path','✓\x20拉取\x20','stdin','2128dcFIqq','\x20\x20✓\x20创建\x20','includes','entries','⚠️\x20\x20未知的平台:\x20','\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择\x20IDE','924TrHiKV','\x20\x20q.\x20取消\x0a','\x20\x20lovrabet\x20skill\x20install\x20<ide>\x20\x20\x20\x20\x20#\x20直接安装指定\x20IDE\x20的技能包','argv','2925pIoPSJ','错误:\x20不支持的命令:\x20','guides','some','warn','slice','skill-install','stringify','\x20个目录\x0a','trim','(含扩展)','\x20\x20✗\x20安装\x20','setLogPath','log','exit','-$1','.lovrabet','utf-8','159516TvOHDx','不支持的命令:\x20','913828hcbKYR','75410BIeFal','info','\x20\x20.lovrabet/skill/.shared/guides/\x20-\x20详细开发指南\x0a',',使用通用模板','\x0a没有有效的\x20IDE\x20需要安装\x0a','1615978lRCQfv','\x0a📦\x20正在安装\x20','description','length','\x0a✓\x20技能包安装成功!共安装\x20','install','message','startsWith','...\x0a','使用示例:','\x0a未选择任何\x20IDE,安装取消\x0a','\x20个开发者指南','\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\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\x20\x20\x20\x20\x20\x20\x20\x20交互式选择并安装技能包\x0a\x20\x20lovrabet\x20skill\x20install\x20--cursor\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20直接安装指定\x20IDE\x20的技能包\x0a\x20\x20lovrabet\x20skill\x20install\x20--all\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20安装所有技能包\x0a\x20\x20lovrabet\x20skill\x20install\x20--dangerously-bff-save\x20\x20包含\x20Backend\x20Function\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\x20\x20包含\x20Backend\x20Function\x20同步工作流\x20\x20\x20-\x20使用\x20--dangerously-bff-save\x20标志\x0a\x20\x20\x20\x20$\x20lovrabet\x20skill\x20install\x20--dangerously-bff-save\x0a\x20\x20\x20\x20$\x20lovrabet\x20skill\x20install\x20cursor\x20--dangerously-bff-save\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--cline\x20\x20\x20\x20\x20\x20\x20\x20Cline\x20IDE\x20(.cline/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--dangerously-bff-save\x20\x20\x20\x20包含\x20Backend\x20Function\x20同步工作流指南\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\x20(需要\x20MCP\x20服务器启用相应\x20tools)\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\x20\x20-\x20Backend\x20Function\x20同步工作流\x20(需\x20--dangerously-bff-save\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--dangerously-bff-save\x0a\x20\x20\x20\x20→\x20安装技能包并包含\x20Backend\x20Function\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.cline/,\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-typescript-sdk/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/04-troubleshooting/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','help','split','replace','正在从\x20CDN\x20拉取开发者指南','.lovrabet/skill-manifest.json','\x20\x20lovrabet\x20skill\x20install\x20cursor\x20\x20\x20\x20#\x20直接安装\x20Cursor\x20技能包\x0a','...','../../cdn-source/skills','push','toLowerCase','\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择并安装技能包','quit','\x20\x20lovrabet\x20skill\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20显示帮助信息\x0a','folders','agent','files','forEach','cwd','close','30MNkvGS','开发者指南位置:','question','name','all','2OIQPqK','1181247sxuUHO'];a62_0x17da=function(){return _0x4ea346;};return a62_0x17da();}import{fetchGuidesFromCDN,writeGuidesToProject}from'../utils/guides-cdn.js';const __dirname=dirname(fileURLToPath(import.meta.url));export function camelCaseFlagsToKebab(_0x17e27f){const _0x1aea06=a62_0x5a00,_0x562a82=[];for(const [_0x1fcfcb,_0x52afc9]of Object[_0x1aea06(0x103)](_0x17e27f)){if(_0x52afc9===!![]){const _0x30491e=_0x1fcfcb[_0x1aea06(0x133)](/([A-Z])/g,_0x1aea06(0x119))[_0x1aea06(0x13a)]();_0x562a82[_0x1aea06(0x139)](_0x30491e);}}return _0x562a82;}export function parseDynamicFlags(){const _0x166ede=a62_0x5a00,_0x38bcee=[];for(let _0x2a55fc=0x3;_0x2a55fc<process[_0x166ede(0x109)]['length'];_0x2a55fc++){const _0x1f67b1=process[_0x166ede(0x109)][_0x2a55fc];if(_0x1f67b1&&_0x1f67b1[_0x166ede(0x12b)]('--')){const _0x17a4b8=_0x1f67b1[_0x166ede(0x10f)](0x2);_0x17a4b8&&!_0x17a4b8[_0x166ede(0x102)]('=')&&_0x38bcee[_0x166ede(0x139)](_0x17a4b8);}}return _0x38bcee;}export function getAllProvidedFlags(_0x9287b1){const _0x2e1988=a62_0x5a00,_0xe18e8d=camelCaseFlagsToKebab(_0x9287b1),_0x131dcb=parseDynamicFlags(),_0x3ff72b=new Set([..._0xe18e8d,..._0x131dcb]);return Array[_0x2e1988(0xf4)](_0x3ff72b);}export async function skillsCommand(_0x4d47e0,_0x47d6b7,_0x3bb52d){const _0x2fff7b=a62_0x5a00;logger[_0x2fff7b(0x116)](process[_0x2fff7b(0x142)]());if(_0x3bb52d?.[_0x2fff7b(0x131)]||_0x4d47e0===_0x2fff7b(0xf8)){showHelp();return;}_0x4d47e0!==_0x2fff7b(0x129)&&(console['error'](_0x2fff7b(0x10b)+(_0x4d47e0||'(空)')),console[_0x2fff7b(0x117)]('\x0a可用命令:'),console['log'](_0x2fff7b(0x13b)),console[_0x2fff7b(0x117)](_0x2fff7b(0x108)),console[_0x2fff7b(0x117)](_0x2fff7b(0x13d)),console[_0x2fff7b(0x117)](_0x2fff7b(0x12d)),console[_0x2fff7b(0x117)](_0x2fff7b(0x105)),console[_0x2fff7b(0x117)](_0x2fff7b(0x136)),logger['error']('skill',_0x2fff7b(0x11d)+_0x4d47e0),process[_0x2fff7b(0x118)](0x1));let _0x4c5a1a=_0x47d6b7?.[0x0];const _0x4b11b6=getAllProvidedFlags(_0x3bb52d??{});_0x4c5a1a?.[_0x2fff7b(0x12b)]('--')&&(_0x4c5a1a=undefined),await installSkill(_0x4c5a1a??'agent',_0x4b11b6);}async function selectIDEs(){const _0x119d24=a62_0x5a00;return console[_0x119d24(0x117)]('\x0a请选择要安装技能包的\x20IDE\x20(可多选):\x0a'),CORE_IDE_LIST[_0x119d24(0x141)]((_0x453c26,_0x5af22d)=>{const _0x8a0b99=_0x119d24;console[_0x8a0b99(0x117)]('\x20\x20'+(_0x5af22d+0x1)+'.\x20'+IDE_CONFIGS[_0x453c26]['name']+'\x20-\x20'+IDE_CONFIGS[_0x453c26][_0x8a0b99(0x126)]);}),console['log']('\x20\x200.\x20全部安装'),console[_0x119d24(0x117)](_0x119d24(0x107)),console[_0x119d24(0x117)](_0x119d24(0xf6)),console[_0x119d24(0x117)]('输入\x200\x20安装所有\x20IDE,输入\x20q\x20取消\x0a'),new Promise(_0x528e46=>{const _0x59cf48=_0x119d24,_0x21bdbe=createInterface({'input':process[_0x59cf48(0xff)],'output':process[_0x59cf48(0xfc)]});_0x21bdbe[_0x59cf48(0x146)]('请选择:\x20',_0x4661a8=>{const _0x3e23e8=_0x59cf48;_0x21bdbe[_0x3e23e8(0x143)]();const _0x5e3c2f=_0x4661a8[_0x3e23e8(0x113)]()[_0x3e23e8(0x13a)]();(_0x5e3c2f==='q'||_0x5e3c2f===_0x3e23e8(0x13c)||_0x5e3c2f===_0x3e23e8(0x118))&&(console[_0x3e23e8(0x117)]('\x0a已取消安装\x0a'),process[_0x3e23e8(0x118)](0x0));if(_0x5e3c2f==='0'||_0x5e3c2f==='all'){_0x528e46([_0x3e23e8(0x148)]);return;}const _0x488a65=_0x5e3c2f[_0x3e23e8(0x132)](/\s+/)['filter'](Boolean),_0x435031=[];for(const _0x52f14e of _0x488a65){const _0xab3a90=parseInt(_0x52f14e,0xa);if(!isNaN(_0xab3a90)&&_0xab3a90>=0x1&&_0xab3a90<=CORE_IDE_LIST[_0x3e23e8(0x127)]){const _0x358b93=CORE_IDE_LIST[_0xab3a90-0x1];_0x358b93&&!_0x435031['includes'](_0x358b93)&&_0x435031['push'](_0x358b93);}}_0x435031[_0x3e23e8(0x127)]===0x0&&(console[_0x3e23e8(0x117)](_0x3e23e8(0x12e)),process['exit'](0x0)),_0x528e46(_0x435031);});});}function showHelp(){const _0x50cf9b=a62_0x5a00;console[_0x50cf9b(0x117)](_0x50cf9b(0x130));}async function installSkill(_0x3bf829,_0x2abdd8){const _0x5dfb9b=a62_0x5a00,_0x2e4696=process[_0x5dfb9b(0x142)](),_0x284b3c=resolve(__dirname,_0x5dfb9b(0x138));let _0x5404ca=[];!_0x3bf829?_0x5404ca=await selectIDEs():_0x5404ca=[_0x3bf829];_0x5404ca[_0x5dfb9b(0x102)](_0x5dfb9b(0x148))&&(_0x5404ca=[...ALL_CORE_IDES,_0x5dfb9b(0x13f)]);const _0x59bd93=[];for(const _0x2408a7 of _0x5404ca){if(_0x2408a7==='agent')_0x59bd93['push'](_0x5dfb9b(0x13f));else{if(_0x2408a7===_0x5dfb9b(0x148))continue;else IDE_CONFIGS[_0x2408a7]?_0x59bd93[_0x5dfb9b(0x139)](_0x2408a7):(console[_0x5dfb9b(0x117)](_0x5dfb9b(0x104)+_0x2408a7+_0x5dfb9b(0x122)),_0x59bd93[_0x5dfb9b(0x139)](_0x5dfb9b(0x13f)));}}_0x59bd93['length']===0x0&&(console[_0x5dfb9b(0x117)](_0x5dfb9b(0x123)),process[_0x5dfb9b(0x118)](0x0));const _0x2e67fd=_0x2abdd8&&_0x2abdd8['length']>0x0;console[_0x5dfb9b(0x117)](_0x5dfb9b(0x134)+(_0x2e67fd?_0x5dfb9b(0x114):'')+_0x5dfb9b(0x137));let _0x427263;try{_0x427263=await fetchGuidesFromCDN(_0x2e67fd),console[_0x5dfb9b(0x117)](_0x5dfb9b(0xfe)+Object[_0x5dfb9b(0xf9)](_0x427263[_0x5dfb9b(0x10c)])['length']+_0x5dfb9b(0x12f));}catch(_0x1d9ce0){console[_0x5dfb9b(0x10e)](_0x5dfb9b(0xfa)+(_0x1d9ce0 instanceof Error?_0x1d9ce0[_0x5dfb9b(0x12a)]:String(_0x1d9ce0)));}let _0x5a4f98=0x0;for(const _0x4ce9dc of _0x59bd93){try{const _0x1f1209=_0x4ce9dc==='agent'?'通用模板':IDE_CONFIGS[_0x4ce9dc]?.[_0x5dfb9b(0x147)]||_0x4ce9dc;console[_0x5dfb9b(0x117)](_0x5dfb9b(0x125)+_0x1f1209+_0x5dfb9b(0x12c));const _0x3a29de=_0x4ce9dc===_0x5dfb9b(0x13f)?undefined:IDE_CONFIGS[_0x4ce9dc],_0x3e74ad=await installSingleIDE(_0x4ce9dc,_0x3a29de,_0x2e4696,_0x284b3c,_0x427263,_0x2abdd8);_0x5a4f98+=_0x3e74ad;if(_0x3a29de?.[_0x5dfb9b(0x13e)])for(const _0x14add5 of _0x3a29de[_0x5dfb9b(0x13e)]){const _0x1966f7=_0x3a29de[_0x5dfb9b(0x140)]?.[_0x5dfb9b(0x10d)](_0x4f369d=>_0x4f369d['path'][_0x5dfb9b(0x12b)](_0x14add5+'/'))??![];_0x1966f7?console[_0x5dfb9b(0x117)](_0x5dfb9b(0x101)+_0x14add5+'/'):console[_0x5dfb9b(0x117)]('\x20\x20✓\x20创建\x20'+_0x14add5);}if(_0x3a29de?.[_0x5dfb9b(0x140)])for(const _0x119c25 of _0x3a29de[_0x5dfb9b(0x140)]){console[_0x5dfb9b(0x117)](_0x5dfb9b(0x101)+_0x119c25[_0x5dfb9b(0xfd)]);}}catch(_0x5edf24){console['error'](_0x5dfb9b(0x115)+_0x4ce9dc+'\x20失败:\x20'+(_0x5edf24 instanceof Error?_0x5edf24[_0x5dfb9b(0x12a)]:String(_0x5edf24)));}}_0x427263&&writeGuidesToProject(_0x427263,_0x2e4696,_0x5dfb9b(0xf5),_0x2abdd8);const _0x351367={'version':'2.0.0','installedAt':new Date()['toISOString'](),'platforms':_0x59bd93},_0x11a5eb=join(_0x2e4696,_0x5dfb9b(0x135)),_0x4c0a4b=join(_0x2e4696,_0x5dfb9b(0x11a));await copyDir(_0x4c0a4b,_0x4c0a4b),writeFileSync(_0x11a5eb,JSON[_0x5dfb9b(0x111)](_0x351367,null,0x2),_0x5dfb9b(0x11b)),console[_0x5dfb9b(0x117)](_0x5dfb9b(0xf7)),console[_0x5dfb9b(0x117)](_0x5dfb9b(0x128)+_0x5a4f98+_0x5dfb9b(0x112)),console[_0x5dfb9b(0x117)](_0x5dfb9b(0x145)),console[_0x5dfb9b(0x117)](_0x5dfb9b(0x121)),logger[_0x5dfb9b(0x120)](_0x5dfb9b(0x110),'安装成功',{'projectRoot':_0x2e4696,'ides':_0x59bd93,'foldersCount':_0x5a4f98});}
@@ -1 +1 @@
1
- const a63_0x141263=a63_0x32ed;(function(_0x3cde7d,_0x39a9b3){const _0x22f182=a63_0x32ed,_0x16aa7=_0x3cde7d();while(!![]){try{const _0x30a2f2=-parseInt(_0x22f182(0xe2))/0x1*(-parseInt(_0x22f182(0xe7))/0x2)+parseInt(_0x22f182(0xef))/0x3+-parseInt(_0x22f182(0xf0))/0x4+-parseInt(_0x22f182(0xd6))/0x5*(-parseInt(_0x22f182(0xf4))/0x6)+parseInt(_0x22f182(0xe8))/0x7*(-parseInt(_0x22f182(0xdc))/0x8)+parseInt(_0x22f182(0xf5))/0x9+-parseInt(_0x22f182(0xd7))/0xa;if(_0x30a2f2===_0x39a9b3)break;else _0x16aa7['push'](_0x16aa7['shift']());}catch(_0x4c6be6){_0x16aa7['push'](_0x16aa7['shift']());}}}(a63_0x3cd1,0x18ef8));import{writeFileSync,existsSync,mkdirSync}from'node:fs';function a63_0x32ed(_0xd57dfc,_0x51d65d){_0xd57dfc=_0xd57dfc-0xd4;const _0x3cd1ec=a63_0x3cd1();let _0x32edf2=_0x3cd1ec[_0xd57dfc];return _0x32edf2;}import{resolve,join}from'node:path';import{fileURLToPath}from'node:url';import{dirname}from'node:path';import{logger}from'../utils/logger.js';import{IDE_CONFIGS}from'../utils/ai_config.js';import{installSingleIDE}from'./skill-installer.js';import{fetchGuidesFromCDN,writeGuidesToProject}from'../utils/guides-cdn.js';function a63_0x3cd1(){const _0x5be582=['skill-install-non-interactive','../../cdn-source/skills','安装成功','.lovrabet','49990WocqrV','261960zuHQVr','\x20\x20!\x20CDN\x20拉取失败,跳过指南安装:\x20','error','guides','\x20\x20✓\x20','14776HPCqlq','keys','\x20个目录','cwd','2.0.0','message','14104AJroBO','...','(含扩展)','开始安装技能包','length','20hMjYUQ','637SnYYMn','\x20个开发者指南','setLogPath','\x20\x20✗\x20未知的\x20IDE:\x20','.lovrabet/skill/.shared/guides','\x20\x20✗\x20安装\x20','warn','110640YmPOOg','755656vonEfJ','name','✓\x20拉取\x20','.lovrabet/skill-manifest.json','114VsNZBD','1056969TiOSCS','\x20失败:\x20','开发者指南位置:\x20.lovrabet/skill/.shared/guides/','log'];a63_0x3cd1=function(){return _0x5be582;};return a63_0x3cd1();}const __dirname=dirname(fileURLToPath(import.meta.url));export async function installSkillsNonInteractive(_0x331841,_0xa574dd,_0x3c7f8b=process[a63_0x141263(0xdf)]()){const _0x150861=a63_0x141263,_0x2d7ed1=resolve(__dirname,_0x150861(0xfa));logger[_0x150861(0xea)](_0x3c7f8b),logger['info'](_0x150861(0xf9),_0x150861(0xe5),{'ides':_0x331841});const _0xeff417=join(_0x3c7f8b,_0x150861(0xd5));!existsSync(_0xeff417)&&mkdirSync(_0xeff417,{'recursive':!![]});const _0x2bee8e=_0xa574dd&&_0xa574dd[_0x150861(0xe6)]>0x0;console['log']('正在从\x20CDN\x20拉取开发者指南'+(_0x2bee8e?_0x150861(0xe4):'')+_0x150861(0xe3));let _0x56a59e;try{_0x56a59e=await fetchGuidesFromCDN(_0x2bee8e),console[_0x150861(0xf8)](_0x150861(0xf2)+Object[_0x150861(0xdd)](_0x56a59e[_0x150861(0xda)])['length']+_0x150861(0xe9));}catch(_0x40439d){console[_0x150861(0xee)](_0x150861(0xd8)+(_0x40439d instanceof Error?_0x40439d['message']:String(_0x40439d)));}let _0xa825e=0x0;for(const _0x2a1426 of _0x331841){try{const _0x326ab1=IDE_CONFIGS[_0x2a1426];if(!_0x326ab1){console['warn'](_0x150861(0xeb)+_0x2a1426);continue;}const _0x47463d=await installSingleIDE(_0x2a1426,_0x326ab1,_0x3c7f8b,_0x2d7ed1,_0x56a59e,_0xa574dd);_0xa825e+=_0x47463d,console[_0x150861(0xf8)](_0x150861(0xdb)+(_0x326ab1[_0x150861(0xf1)]||_0x2a1426));}catch(_0x3ca046){console[_0x150861(0xd9)](_0x150861(0xed)+_0x2a1426+_0x150861(0xf6)+(_0x3ca046 instanceof Error?_0x3ca046[_0x150861(0xe1)]:String(_0x3ca046)));}}_0x56a59e&&writeGuidesToProject(_0x56a59e,_0x3c7f8b,_0x150861(0xec),_0xa574dd);const _0x47d952={'version':_0x150861(0xe0),'installedAt':new Date()['toISOString'](),'platforms':_0x331841},_0x43daf1=join(_0x3c7f8b,_0x150861(0xf3));writeFileSync(_0x43daf1,JSON['stringify'](_0x47d952,null,0x2),'utf-8'),logger['info'](_0x150861(0xf9),_0x150861(0xd4),{'projectRoot':_0x3c7f8b,'ides':_0x331841,'foldersCount':_0xa825e}),console[_0x150861(0xf8)]('\x0a✓\x20技能包安装成功!共安装\x20'+_0xa825e+_0x150861(0xde)),console[_0x150861(0xf8)](_0x150861(0xf7));}
1
+ const a63_0x528d29=a63_0x259a;(function(_0x34aeec,_0x725f77){const _0x33cf40=a63_0x259a,_0x3c8234=_0x34aeec();while(!![]){try{const _0x16629c=-parseInt(_0x33cf40(0x1d2))/0x1*(parseInt(_0x33cf40(0x1ce))/0x2)+parseInt(_0x33cf40(0x1c5))/0x3*(-parseInt(_0x33cf40(0x1d8))/0x4)+-parseInt(_0x33cf40(0x1c2))/0x5+parseInt(_0x33cf40(0x1c7))/0x6*(-parseInt(_0x33cf40(0x1d3))/0x7)+-parseInt(_0x33cf40(0x1d5))/0x8+parseInt(_0x33cf40(0x1df))/0x9*(-parseInt(_0x33cf40(0x1dd))/0xa)+-parseInt(_0x33cf40(0x1d1))/0xb*(-parseInt(_0x33cf40(0x1d7))/0xc);if(_0x16629c===_0x725f77)break;else _0x3c8234['push'](_0x3c8234['shift']());}catch(_0x3fa496){_0x3c8234['push'](_0x3c8234['shift']());}}}(a63_0x1e44,0x23cf2));import{writeFileSync,existsSync,mkdirSync}from'node:fs';import{resolve,join}from'node:path';import{fileURLToPath}from'node:url';import{dirname}from'node:path';import{logger}from'../utils/logger.js';import{IDE_CONFIGS}from'../utils/ai_config.js';import{installSingleIDE}from'./skill-installer.js';import{fetchGuidesFromCDN,writeGuidesToProject}from'../utils/guides-cdn.js';function a63_0x1e44(){const _0x4eda7f=['\x20失败:\x20','length','2.0.0','\x20\x20✗\x20未知的\x20IDE:\x20','setLogPath','skill-install-non-interactive','345652YbqUSN','正在从\x20CDN\x20拉取开发者指南','(含扩展)','11iBMNGN','1wGvgwm','7QRCpSk','.lovrabet/skill/.shared/guides','2025072ovDKvY','error','15128988hdoqHY','801844vNZWMj','stringify','\x20个开发者指南','\x20\x20✓\x20','message','270zunISE','\x20\x20!\x20CDN\x20拉取失败,跳过指南安装:\x20','71703UyxbaC','开发者指南位置:\x20.lovrabet/skill/.shared/guides/','\x20\x20✗\x20安装\x20','✓\x20拉取\x20','\x20个目录','info','.lovrabet','\x0a✓\x20技能包安装成功!共安装\x20','开始安装技能包','name','cwd','534635jfwtFy','guides','log','3BfYFnW','...','993708ooRrrT'];a63_0x1e44=function(){return _0x4eda7f;};return a63_0x1e44();}const __dirname=dirname(fileURLToPath(import.meta.url));function a63_0x259a(_0x12bf0d,_0x4ae39d){_0x12bf0d=_0x12bf0d-0x1be;const _0x1e447b=a63_0x1e44();let _0x259a7d=_0x1e447b[_0x12bf0d];return _0x259a7d;}export async function installSkillsNonInteractive(_0x9877ec,_0x4f8c05,_0x50c0c7=process[a63_0x528d29(0x1c1)]()){const _0x26503e=a63_0x528d29,_0x192c24=resolve(__dirname,'../../cdn-source/skills');logger[_0x26503e(0x1cc)](_0x50c0c7),logger[_0x26503e(0x1e4)](_0x26503e(0x1cd),_0x26503e(0x1bf),{'ides':_0x9877ec});const _0x15be95=join(_0x50c0c7,_0x26503e(0x1e5));!existsSync(_0x15be95)&&mkdirSync(_0x15be95,{'recursive':!![]});const _0xa9913=_0x4f8c05&&_0x4f8c05[_0x26503e(0x1c9)]>0x0;console['log'](_0x26503e(0x1cf)+(_0xa9913?_0x26503e(0x1d0):'')+_0x26503e(0x1c6));let _0x2b7dfe;try{_0x2b7dfe=await fetchGuidesFromCDN(_0xa9913),console[_0x26503e(0x1c4)](_0x26503e(0x1e2)+Object['keys'](_0x2b7dfe[_0x26503e(0x1c3)])[_0x26503e(0x1c9)]+_0x26503e(0x1da));}catch(_0x396a97){console['warn'](_0x26503e(0x1de)+(_0x396a97 instanceof Error?_0x396a97[_0x26503e(0x1dc)]:String(_0x396a97)));}let _0x2ac606=0x0;for(const _0x2400be of _0x9877ec){try{const _0x51281d=IDE_CONFIGS[_0x2400be];if(!_0x51281d){console['warn'](_0x26503e(0x1cb)+_0x2400be);continue;}const _0x433070=await installSingleIDE(_0x2400be,_0x51281d,_0x50c0c7,_0x192c24,_0x2b7dfe,_0x4f8c05);_0x2ac606+=_0x433070,console[_0x26503e(0x1c4)](_0x26503e(0x1db)+(_0x51281d[_0x26503e(0x1c0)]||_0x2400be));}catch(_0x5d3ea7){console[_0x26503e(0x1d6)](_0x26503e(0x1e1)+_0x2400be+_0x26503e(0x1c8)+(_0x5d3ea7 instanceof Error?_0x5d3ea7[_0x26503e(0x1dc)]:String(_0x5d3ea7)));}}_0x2b7dfe&&writeGuidesToProject(_0x2b7dfe,_0x50c0c7,_0x26503e(0x1d4),_0x4f8c05);const _0x20f717={'version':_0x26503e(0x1ca),'installedAt':new Date()['toISOString'](),'platforms':_0x9877ec},_0x599e05=join(_0x50c0c7,'.lovrabet/skill-manifest.json');writeFileSync(_0x599e05,JSON[_0x26503e(0x1d9)](_0x20f717,null,0x2),'utf-8'),logger[_0x26503e(0x1e4)](_0x26503e(0x1cd),'安装成功',{'projectRoot':_0x50c0c7,'ides':_0x9877ec,'foldersCount':_0x2ac606}),console[_0x26503e(0x1c4)](_0x26503e(0x1be)+_0x2ac606+_0x26503e(0x1e3)),console[_0x26503e(0x1c4)](_0x26503e(0x1e0));}
@@ -1 +1 @@
1
- function a64_0x4f98(){const _0x14a2a1=['startsWith','replace','length','files','indexOf','29429472okcpAZ','template','356522utGtQM','5208588pgpdtE','folders','name','794140ZvjQHb','keys','<!--\x20GUIDES_APPEND\x20-->','utf-8','5824855aEeIAp','213976pLWlIP','guides','includes','join','30TFqmQq','sort','requireFlags','some','path','3361170CzKQzR','test'];a64_0x4f98=function(){return _0x14a2a1;};return a64_0x4f98();}(function(_0x1a3af7,_0x257d5e){const _0x1a3916=a64_0x1a37,_0x495a28=_0x1a3af7();while(!![]){try{const _0x1db19f=parseInt(_0x1a3916(0x10c))/0x1+-parseInt(_0x1a3916(0x110))/0x2+-parseInt(_0x1a3916(0x119))/0x3*(parseInt(_0x1a3916(0x115))/0x4)+-parseInt(_0x1a3916(0x114))/0x5+-parseInt(_0x1a3916(0x11e))/0x6+-parseInt(_0x1a3916(0x10d))/0x7+parseInt(_0x1a3916(0x10a))/0x8;if(_0x1db19f===_0x257d5e)break;else _0x495a28['push'](_0x495a28['shift']());}catch(_0x377077){_0x495a28['push'](_0x495a28['shift']());}}}(a64_0x4f98,0x9ac5a));import{existsSync,mkdirSync,writeFileSync,readFileSync}from'node:fs';import{dirname,join}from'node:path';import{writeSkillFile,appendExtendContents}from'../utils/guides-cdn.js';export async function installSingleIDE(_0x2d0637,_0x278fe4,_0x1cd875,_0x24ea44,_0x1d4532,_0x26d6ac){const _0x1cc3bc=a64_0x1a37;let _0x212bf6=0x0;const _0x1534da=_0x278fe4?.[_0x1cc3bc(0x10e)]??['.'+_0x2d0637];for(const _0xba5378 of _0x1534da){const _0x3b287f=join(_0x1cd875,_0xba5378),_0x33a2f0=_0x278fe4?.['files']?.['some'](_0x1fbe72=>_0x1fbe72[_0x1cc3bc(0x11d)][_0x1cc3bc(0x120)](_0xba5378+'/'))??![];_0x33a2f0?!existsSync(_0x3b287f)&&(mkdirSync(_0x3b287f,{'recursive':!![]}),_0x212bf6++):!existsSync(_0x3b287f)&&(writeFileSync(_0x3b287f,'',_0x1cc3bc(0x113)),_0x212bf6++);}if(_0x278fe4?.[_0x1cc3bc(0x108)]){const _0x4924fc=_0x278fe4[_0x1cc3bc(0x10f)]||_0x2d0637;for(const _0x3d3a67 of _0x278fe4[_0x1cc3bc(0x108)]){const _0x394e9b=join(_0x1cd875,_0x3d3a67[_0x1cc3bc(0x11d)]);await createFileFromTemplate(_0x3d3a67,_0x394e9b,_0x4924fc,_0x24ea44,_0x1d4532,_0x26d6ac),_0x212bf6++;}}return _0x212bf6;}function a64_0x1a37(_0x4afd41,_0x288ef6){_0x4afd41=_0x4afd41-0x108;const _0x4f982b=a64_0x4f98();let _0x1a37f8=_0x4f982b[_0x4afd41];return _0x1a37f8;}export async function createFileFromTemplate(_0x13b6ca,_0x549e24,_0x2ff59b,_0x41d4ba,_0x30e98c,_0x4fd78d){const _0x2130e3=a64_0x1a37,_0x3fef1c=dirname(_0x549e24);!existsSync(_0x3fef1c)&&mkdirSync(_0x3fef1c,{'recursive':!![]});const _0x3fb0fb=_0x13b6ca['template']==='SKILL.md.tpl';if(existsSync(_0x549e24)&&!_0x3fb0fb)return;if(_0x13b6ca[_0x2130e3(0x10b)]){const _0x5acaa2=join(_0x41d4ba,_0x13b6ca['template']);if(existsSync(_0x5acaa2)){let _0x40fd9d=readFileSync(_0x5acaa2,_0x2130e3(0x113));_0x40fd9d=_0x40fd9d['replace'](/\{\{IDE_NAME\}\}/g,_0x2ff59b);_0x30e98c&&_0x3fb0fb&&(_0x40fd9d=insertGuidesSection(_0x40fd9d,_0x30e98c,_0x4fd78d),_0x40fd9d=appendExtendContents(_0x40fd9d,_0x30e98c,_0x4fd78d));writeFileSync(_0x549e24,_0x40fd9d,'utf-8');return;}if(_0x30e98c&&_0x3fb0fb)try{writeSkillFile(_0x30e98c,_0x549e24,_0x2ff59b,_0x4fd78d);return;}catch{}}writeFileSync(_0x549e24,'',_0x2130e3(0x113));}function insertGuidesSection(_0x363b93,_0xcdbf08,_0x4031d8){const _0x446fb4=a64_0x1a37,_0x5d96a1=_0x446fb4(0x112),_0x51de79=_0x363b93[_0x446fb4(0x109)](_0x5d96a1);if(_0x51de79===-0x1)return _0x363b93;const _0x4e96ed=[],_0x3ad960=Object[_0x446fb4(0x111)](_0xcdbf08['guides'])[_0x446fb4(0x11a)]();for(const _0x438d05 of _0x3ad960){const _0x574cb5=_0xcdbf08[_0x446fb4(0x116)][_0x438d05];if(!_0x574cb5)continue;if(/^0[1-6]-/[_0x446fb4(0x11f)](_0x438d05))continue;if(_0x574cb5[_0x446fb4(0x11b)]&&_0x574cb5['requireFlags'][_0x446fb4(0x122)]>0x0){const _0x37ec93=_0x574cb5[_0x446fb4(0x11b)][_0x446fb4(0x11c)](_0x27e11e=>_0x4031d8?.[_0x446fb4(0x117)](_0x27e11e));if(!_0x37ec93)continue;}const _0x4ee188=_0x574cb5[_0x446fb4(0x11d)]['replace'](/^\.lovrabet\/skill\/\.shared\/guides\//,'');_0x4e96ed['push']('|\x20`'+_0x4ee188+'`\x20|\x20'+_0x574cb5['title']+'\x20|');}if(_0x4e96ed[_0x446fb4(0x122)]===0x0)return _0x363b93[_0x446fb4(0x121)](_0x5d96a1,_0x446fb4(0x112));const _0xa25cc0=_0x4e96ed[_0x446fb4(0x118)]('\x0a');return _0x363b93[_0x446fb4(0x121)](_0x5d96a1,_0xa25cc0+'\x0a<!--\x20GUIDES_APPEND\x20-->');}
1
+ (function(_0x137f9b,_0x415dd1){const _0x57150c=a64_0x2bf8,_0x5e40f6=_0x137f9b();while(!![]){try{const _0x2c2af9=parseInt(_0x57150c(0x1d7))/0x1*(parseInt(_0x57150c(0x1cb))/0x2)+-parseInt(_0x57150c(0x1df))/0x3*(-parseInt(_0x57150c(0x1de))/0x4)+parseInt(_0x57150c(0x1d1))/0x5+parseInt(_0x57150c(0x1d6))/0x6*(parseInt(_0x57150c(0x1da))/0x7)+parseInt(_0x57150c(0x1d8))/0x8*(-parseInt(_0x57150c(0x1e2))/0x9)+parseInt(_0x57150c(0x1ca))/0xa+-parseInt(_0x57150c(0x1d0))/0xb;if(_0x2c2af9===_0x415dd1)break;else _0x5e40f6['push'](_0x5e40f6['shift']());}catch(_0x43f4a3){_0x5e40f6['push'](_0x5e40f6['shift']());}}}(a64_0x16bb,0xc217a));import{existsSync,mkdirSync,writeFileSync,readFileSync}from'node:fs';import{dirname,join}from'node:path';import{writeSkillFile,appendExtendContents}from'../utils/guides-cdn.js';function a64_0x16bb(){const _0x88357a=['8PxakeX','some','115654jNJkDU','startsWith','`\x20|\x20','|\x20`','3416sjfoaC','1071auPFww','folders','utf-8','13295988kdsXqM','path','files','guides','join','length','<!--\x20GUIDES_APPEND\x20-->','name','title','10657690TOMbtC','6hLFUYk','sort','push','indexOf','SKILL.md.tpl','14995233DvQVLI','3130450Wdifzu','\x0a<!--\x20GUIDES_APPEND\x20-->','requireFlags','template','replace','318izJBRj','254378Oyqwzl'];a64_0x16bb=function(){return _0x88357a;};return a64_0x16bb();}export async function installSingleIDE(_0x2903b2,_0x21f121,_0x403f2e,_0x3689e0,_0x120173,_0x37cd23){const _0x2f3cf7=a64_0x2bf8;let _0x3d4b00=0x0;const _0x5e4bcd=_0x21f121?.[_0x2f3cf7(0x1e0)]??['.'+_0x2903b2];for(const _0x40913f of _0x5e4bcd){const _0x29070e=join(_0x403f2e,_0x40913f),_0x476aa5=_0x21f121?.[_0x2f3cf7(0x1e4)]?.[_0x2f3cf7(0x1d9)](_0x508e42=>_0x508e42[_0x2f3cf7(0x1e3)][_0x2f3cf7(0x1db)](_0x40913f+'/'))??![];_0x476aa5?!existsSync(_0x29070e)&&(mkdirSync(_0x29070e,{'recursive':!![]}),_0x3d4b00++):!existsSync(_0x29070e)&&(writeFileSync(_0x29070e,'',_0x2f3cf7(0x1e1)),_0x3d4b00++);}if(_0x21f121?.[_0x2f3cf7(0x1e4)]){const _0x33800e=_0x21f121[_0x2f3cf7(0x1c8)]||_0x2903b2;for(const _0x33240b of _0x21f121[_0x2f3cf7(0x1e4)]){const _0x5deb57=join(_0x403f2e,_0x33240b[_0x2f3cf7(0x1e3)]);await createFileFromTemplate(_0x33240b,_0x5deb57,_0x33800e,_0x3689e0,_0x120173,_0x37cd23),_0x3d4b00++;}}return _0x3d4b00;}export async function createFileFromTemplate(_0x59a1b8,_0x3f4330,_0x14d8b1,_0xc05d22,_0x24e472,_0x4ba6b5){const _0xae62a7=a64_0x2bf8,_0x179d17=dirname(_0x3f4330);!existsSync(_0x179d17)&&mkdirSync(_0x179d17,{'recursive':!![]});const _0x12dad5=_0x59a1b8[_0xae62a7(0x1d4)]===_0xae62a7(0x1cf);if(existsSync(_0x3f4330)&&!_0x12dad5)return;if(_0x59a1b8[_0xae62a7(0x1d4)]){const _0x34d21f=join(_0xc05d22,_0x59a1b8[_0xae62a7(0x1d4)]);if(existsSync(_0x34d21f)){let _0x3c0409=readFileSync(_0x34d21f,_0xae62a7(0x1e1));_0x3c0409=_0x3c0409[_0xae62a7(0x1d5)](/\{\{IDE_NAME\}\}/g,_0x14d8b1);_0x24e472&&_0x12dad5&&(_0x3c0409=insertGuidesSection(_0x3c0409,_0x24e472,_0x4ba6b5),_0x3c0409=appendExtendContents(_0x3c0409,_0x24e472,_0x4ba6b5));writeFileSync(_0x3f4330,_0x3c0409,'utf-8');return;}if(_0x24e472&&_0x12dad5)try{writeSkillFile(_0x24e472,_0x3f4330,_0x14d8b1,_0x4ba6b5);return;}catch{}}writeFileSync(_0x3f4330,'',_0xae62a7(0x1e1));}function a64_0x2bf8(_0x1df876,_0xc9ff57){_0x1df876=_0x1df876-0x1c4;const _0x16bb23=a64_0x16bb();let _0x2bf8be=_0x16bb23[_0x1df876];return _0x2bf8be;}function insertGuidesSection(_0x22c0c4,_0xa9a3f,_0x13ea8a){const _0x16d939=a64_0x2bf8,_0x1bcd64=_0x16d939(0x1c7),_0x67eae9=_0x22c0c4[_0x16d939(0x1ce)](_0x1bcd64);if(_0x67eae9===-0x1)return _0x22c0c4;const _0x30cd0=[],_0x2cb5d1=Object['keys'](_0xa9a3f[_0x16d939(0x1c4)])[_0x16d939(0x1cc)]();for(const _0x60a92a of _0x2cb5d1){const _0x86c9fe=_0xa9a3f['guides'][_0x60a92a];if(!_0x86c9fe)continue;if(/^0[1-6]-/['test'](_0x60a92a))continue;if(_0x86c9fe['requireFlags']&&_0x86c9fe[_0x16d939(0x1d3)][_0x16d939(0x1c6)]>0x0){const _0xa838bc=_0x86c9fe['requireFlags'][_0x16d939(0x1d9)](_0xf0d47e=>_0x13ea8a?.['includes'](_0xf0d47e));if(!_0xa838bc)continue;}const _0x4a44fd=_0x86c9fe[_0x16d939(0x1e3)][_0x16d939(0x1d5)](/^\.lovrabet\/skill\/\.shared\/guides\//,'');_0x30cd0[_0x16d939(0x1cd)](_0x16d939(0x1dd)+_0x4a44fd+_0x16d939(0x1dc)+_0x86c9fe[_0x16d939(0x1c9)]+'\x20|');}if(_0x30cd0[_0x16d939(0x1c6)]===0x0)return _0x22c0c4[_0x16d939(0x1d5)](_0x1bcd64,'<!--\x20GUIDES_APPEND\x20-->');const _0x523cf2=_0x30cd0[_0x16d939(0x1c5)]('\x0a');return _0x22c0c4[_0x16d939(0x1d5)](_0x1bcd64,_0x523cf2+_0x16d939(0x1d2));}
@@ -1 +1 @@
1
- function a66_0x1622(){const _0x35f603=['has','[✓]','2CXebOt','blue','4377951aXiMQF','white','3528240lFgrUG','1002084zMmFuu','column','[\x20]','72LCfBNg','name','83315hWrJts','cyan','description','map','310377LSEkfj','key','gray','1657227arSoUx','2031484ERffUj','*\x20请选择要配置的\x20IDE:'];a66_0x1622=function(){return _0x35f603;};return a66_0x1622();}(function(_0x5d1831,_0x4215a1){const _0x3463f4=a66_0x439d,_0x3abed5=_0x5d1831();while(!![]){try{const _0x1393a5=-parseInt(_0x3463f4(0xeb))/0x1+-parseInt(_0x3463f4(0xdd))/0x2*(-parseInt(_0x3463f4(0xd8))/0x3)+parseInt(_0x3463f4(0xe2))/0x4+-parseInt(_0x3463f4(0xe7))/0x5*(-parseInt(_0x3463f4(0xe5))/0x6)+-parseInt(_0x3463f4(0xd9))/0x7+parseInt(_0x3463f4(0xe1))/0x8+-parseInt(_0x3463f4(0xdf))/0x9;if(_0x1393a5===_0x4215a1)break;else _0x3abed5['push'](_0x3abed5['shift']());}catch(_0x2a2684){_0x3abed5['push'](_0x3abed5['shift']());}}}(a66_0x1622,0x57218));import{jsxs as a66_0x30ca11,jsx as a66_0x53d49e}from'react/jsx-runtime';import{Text,Box}from'ink';function a66_0x439d(_0x344ac6,_0x284204){_0x344ac6=_0x344ac6-0xd8;const _0x16223b=a66_0x1622();let _0x439dfe=_0x16223b[_0x344ac6];return _0x439dfe;}export function IDESelector({ideList:_0x1ec9b5,title:_0x2d913a,selection:_0x4ad81f}){const _0x3559de=a66_0x439d,{selectedIndexes:_0x3f2199,highlightIndex:_0x4ae212,errorMsg:_0x8a1094}=_0x4ad81f;return a66_0x30ca11(Box,{'flexDirection':_0x3559de(0xe3),'marginTop':0x1,'children':[a66_0x53d49e(Box,{'children':a66_0x30ca11(Text,{'color':_0x3559de(0xe8),'children':['*\x20',_0x2d913a]})}),_0x8a1094&&a66_0x53d49e(Box,{'marginTop':0x1,'children':a66_0x30ca11(Text,{'color':'red','children':['✗\x20',_0x8a1094]})}),a66_0x30ca11(Box,{'marginTop':0x1,'flexDirection':_0x3559de(0xe3),'children':[a66_0x53d49e(Text,{'bold':!![],'children':_0x3559de(0xda)}),_0x1ec9b5[_0x3559de(0xea)]((_0x50f881,_0x177586)=>{const _0x32217c=_0x3559de,_0x44f263=_0x4ae212===_0x177586,_0x2a6e68=_0x3f2199[_0x32217c(0xdb)](_0x177586);return a66_0x53d49e(Box,{'children':a66_0x30ca11(Text,{'backgroundColor':_0x44f263?_0x32217c(0xde):undefined,'color':_0x44f263?'white':undefined,'children':['\x20\x20',_0x2a6e68?_0x32217c(0xdc):_0x32217c(0xe4),'\x20',_0x50f881[_0x32217c(0xe6)],'\x20',a66_0x30ca11(Text,{'color':_0x44f263?_0x32217c(0xe0):_0x32217c(0xed),'dimColor':!_0x44f263,'children':['-\x20',_0x50f881[_0x32217c(0xe9)]]})]})},_0x50f881[_0x32217c(0xec)]);}),a66_0x53d49e(Box,{'marginTop':0x1,'children':a66_0x30ca11(Text,{'color':_0x3559de(0xed),'children':['\x20','↑/↓:\x20移动光标\x20空格:\x20切换选中\x20a:\x20全选\x20i/r:\x20反选\x20q:\x20退出\x20Enter:\x20确认']})})]})]});}export{useIDESelection}from'./useIDESelection.js';
1
+ function a66_0x1b05(){const _0x278c4d=['39263859qxBcYs','2eqmcTT','6450104ubnvlk','gray','8446494NfbDRY','white','cyan','899210pxfiwc','description','has','7588938nmscdk','2284aloopT','map','↑/↓:\x20移动光标\x20空格:\x20切换选中\x20a:\x20全选\x20i/r:\x20反选\x20q:\x20退出\x20Enter:\x20确认','name','red','column','5589890LYXlCK','[✓]','723FPHsTX','key'];a66_0x1b05=function(){return _0x278c4d;};return a66_0x1b05();}function a66_0x5d55(_0x184fb8,_0x3deeae){_0x184fb8=_0x184fb8-0x195;const _0x1b0523=a66_0x1b05();let _0x5d55a6=_0x1b0523[_0x184fb8];return _0x5d55a6;}(function(_0x177e55,_0x4a99b4){const _0x53bb5d=a66_0x5d55,_0x173153=_0x177e55();while(!![]){try{const _0x18792b=parseInt(_0x53bb5d(0x195))/0x1*(parseInt(_0x53bb5d(0x19b))/0x2)+parseInt(_0x53bb5d(0x1a7))/0x3*(parseInt(_0x53bb5d(0x19f))/0x4)+-parseInt(_0x53bb5d(0x1a5))/0x5+-parseInt(_0x53bb5d(0x198))/0x6+-parseInt(_0x53bb5d(0x19e))/0x7+-parseInt(_0x53bb5d(0x196))/0x8+parseInt(_0x53bb5d(0x1a9))/0x9;if(_0x18792b===_0x4a99b4)break;else _0x173153['push'](_0x173153['shift']());}catch(_0x21732){_0x173153['push'](_0x173153['shift']());}}}(a66_0x1b05,0xf0134));import{jsxs as a66_0x31266c,jsx as a66_0x456131}from'react/jsx-runtime';import{Text,Box}from'ink';export function IDESelector({ideList:_0x481d19,title:_0x19a05b,selection:_0x183e1c}){const _0x29a102=a66_0x5d55,{selectedIndexes:_0x488428,highlightIndex:_0x2bb0bb,errorMsg:_0x4fe104}=_0x183e1c;return a66_0x31266c(Box,{'flexDirection':'column','marginTop':0x1,'children':[a66_0x456131(Box,{'children':a66_0x31266c(Text,{'color':_0x29a102(0x19a),'children':['*\x20',_0x19a05b]})}),_0x4fe104&&a66_0x456131(Box,{'marginTop':0x1,'children':a66_0x31266c(Text,{'color':_0x29a102(0x1a3),'children':['✗\x20',_0x4fe104]})}),a66_0x31266c(Box,{'marginTop':0x1,'flexDirection':_0x29a102(0x1a4),'children':[a66_0x456131(Text,{'bold':!![],'children':'*\x20请选择要配置的\x20IDE:'}),_0x481d19[_0x29a102(0x1a0)]((_0x934097,_0x31af1f)=>{const _0x495ce8=_0x29a102,_0x1926da=_0x2bb0bb===_0x31af1f,_0x289350=_0x488428[_0x495ce8(0x19d)](_0x31af1f);return a66_0x456131(Box,{'children':a66_0x31266c(Text,{'backgroundColor':_0x1926da?'blue':undefined,'color':_0x1926da?'white':undefined,'children':['\x20\x20',_0x289350?_0x495ce8(0x1a6):'[\x20]','\x20',_0x934097[_0x495ce8(0x1a2)],'\x20',a66_0x31266c(Text,{'color':_0x1926da?_0x495ce8(0x199):'gray','dimColor':!_0x1926da,'children':['-\x20',_0x934097[_0x495ce8(0x19c)]]})]})},_0x934097[_0x495ce8(0x1a8)]);}),a66_0x456131(Box,{'marginTop':0x1,'children':a66_0x31266c(Text,{'color':_0x29a102(0x197),'children':['\x20',_0x29a102(0x1a1)]})})]})]});}export{useIDESelection}from'./useIDESelection.js';
@@ -1 +1 @@
1
- (function(_0x4ab8f0,_0x28acb9){const _0xd4f97d=a67_0x53fa,_0x4ee75c=_0x4ab8f0();while(!![]){try{const _0x45bf9d=parseInt(_0xd4f97d(0x100))/0x1*(parseInt(_0xd4f97d(0xf4))/0x2)+parseInt(_0xd4f97d(0xfc))/0x3+parseInt(_0xd4f97d(0x102))/0x4*(-parseInt(_0xd4f97d(0x103))/0x5)+parseInt(_0xd4f97d(0xf5))/0x6+-parseInt(_0xd4f97d(0x101))/0x7+-parseInt(_0xd4f97d(0x105))/0x8*(parseInt(_0xd4f97d(0xff))/0x9)+parseInt(_0xd4f97d(0xf8))/0xa;if(_0x45bf9d===_0x28acb9)break;else _0x4ee75c['push'](_0x4ee75c['shift']());}catch(_0x350f42){_0x4ee75c['push'](_0x4ee75c['shift']());}}}(a67_0x553a,0xbecc4));import{useState,useCallback}from'react';function a67_0x53fa(_0x38fa48,_0xb406a7){_0x38fa48=_0x38fa48-0xf4;const _0x553ae1=a67_0x553a();let _0x53fae6=_0x553ae1[_0x38fa48];return _0x53fae6;}export function useIDESelection({ideList:_0x28042f,preselectedIDEs:preselectedIDEs=[],multiSelect:multiSelect=!![]}){const _0x530172=a67_0x53fa,[_0x16bc52,_0x362afb]=useState(new Set(preselectedIDEs[_0x530172(0x106)](_0x5925df=>_0x28042f['findIndex'](_0x1eea82=>_0x1eea82['key']===_0x5925df))[_0x530172(0xf6)](_0x3b2dc1=>_0x3b2dc1>=0x0))),[_0x109a56,_0x533430]=useState(0x0),[_0x3ee1ee,_0x12fdf3]=useState(''),_0x26a419=useCallback(()=>{const _0x408d54=_0x530172;_0x533430(_0x471f95=>_0x471f95>0x0?_0x471f95-0x1:_0x28042f[_0x408d54(0xfe)]-0x1);},[_0x28042f['length']]),_0x56d32a=useCallback(()=>{const _0x40bf4f=_0x530172;_0x533430(_0x3f1262=>_0x3f1262<_0x28042f[_0x40bf4f(0xfe)]-0x1?_0x3f1262+0x1:0x0);},[_0x28042f[_0x530172(0xfe)]]),_0x52012a=useCallback(()=>{if(!multiSelect){_0x362afb(new Set([_0x109a56]));return;}_0x362afb(_0x1b2f5f=>{const _0x3b8ac6=a67_0x53fa,_0x57988b=new Set(_0x1b2f5f);return _0x57988b[_0x3b8ac6(0x104)](_0x109a56)?_0x57988b['delete'](_0x109a56):_0x57988b['add'](_0x109a56),_0x57988b;});},[_0x109a56,multiSelect]),_0x5c3c8e=useCallback(()=>{const _0x2d57d2=_0x530172;_0x362afb(new Set(_0x28042f[_0x2d57d2(0x106)]((_0x172779,_0x13906f)=>_0x13906f)));},[_0x28042f]),_0x1a007a=useCallback(()=>{_0x362afb(_0x42c6e3=>{const _0x4a759e=a67_0x53fa,_0x100848=new Set();for(let _0x333800=0x0;_0x333800<_0x28042f['length'];_0x333800++){!_0x42c6e3[_0x4a759e(0x104)](_0x333800)&&_0x100848[_0x4a759e(0xf9)](_0x333800);}return _0x100848;});},[_0x28042f]),_0x50c859=useCallback(()=>{const _0x2c45b2=_0x530172;return Array[_0x2c45b2(0xfa)](_0x16bc52)[_0x2c45b2(0x106)](_0xc540f8=>_0x28042f[_0xc540f8]?.[_0x2c45b2(0xfb)])[_0x2c45b2(0xf6)](_0xfc6463=>_0xfc6463!==undefined);},[_0x16bc52,_0x28042f]),_0x4eaf75=useCallback(()=>{const _0x4b52e5=_0x530172;return _0x16bc52[_0x4b52e5(0xfd)]===_0x28042f[_0x4b52e5(0xfe)];},[_0x16bc52,_0x28042f]),_0x18230b=useCallback((_0xab2794,_0x56f88f)=>{const _0x4503c0=_0x530172;if(_0x56f88f[_0x4503c0(0xf7)])return _0x26a419(),!![];if(_0x56f88f['downArrow'])return _0x56d32a(),!![];if(_0xab2794==='\x20')return _0x52012a(),!![];if(_0xab2794==='a'||_0xab2794==='A')return _0x5c3c8e(),!![];if(_0xab2794==='i'||_0xab2794==='I'||_0xab2794==='r'||_0xab2794==='R')return _0x1a007a(),!![];return![];},[_0x26a419,_0x56d32a,_0x52012a,_0x5c3c8e,_0x1a007a]);return{'selectedIndexes':_0x16bc52,'highlightIndex':_0x109a56,'errorMsg':_0x3ee1ee,'setErrorMsg':_0x12fdf3,'handleKeyDown':_0x18230b,'getSelectedIDEs':_0x50c859,'isAllSelected':_0x4eaf75,'toggleSelection':_0x52012a,'selectAll':_0x5c3c8e,'invertSelection':_0x1a007a,'moveHighlightUp':_0x26a419,'moveHighlightDown':_0x56d32a};}function a67_0x553a(){const _0x4ea9eb=['1027086TQgcjY','size','length','320427czoDwW','2tdgmfw','4524730QFcoMe','54632MbUQby','285PAkylg','has','280ylXCby','map','750454kwfLXH','1584612BDFuLy','filter','upArrow','20955910yJnVPQ','add','from','key'];a67_0x553a=function(){return _0x4ea9eb;};return a67_0x553a();}
1
+ (function(_0x105bc0,_0x5e20ff){const _0x383317=a67_0xd5e3,_0x1d4368=_0x105bc0();while(!![]){try{const _0x38dfa1=-parseInt(_0x383317(0x1ea))/0x1+-parseInt(_0x383317(0x1da))/0x2+-parseInt(_0x383317(0x1e1))/0x3*(-parseInt(_0x383317(0x1e4))/0x4)+-parseInt(_0x383317(0x1dd))/0x5+-parseInt(_0x383317(0x1d8))/0x6+-parseInt(_0x383317(0x1db))/0x7*(-parseInt(_0x383317(0x1e9))/0x8)+-parseInt(_0x383317(0x1e8))/0x9*(-parseInt(_0x383317(0x1d9))/0xa);if(_0x38dfa1===_0x5e20ff)break;else _0x1d4368['push'](_0x1d4368['shift']());}catch(_0xf774b9){_0x1d4368['push'](_0x1d4368['shift']());}}}(a67_0x52d3,0x8914d));import{useState,useCallback}from'react';function a67_0xd5e3(_0x2a5797,_0x26f37b){_0x2a5797=_0x2a5797-0x1d8;const _0x52d3aa=a67_0x52d3();let _0xd5e31a=_0x52d3aa[_0x2a5797];return _0xd5e31a;}function a67_0x52d3(){const _0x272287=['delete','3534402lgDcvV','73420BCUMRI','2177512JBdLDs','153839gsKNFq','size','4347895mQurNF','key','from','add','17319xtFxmg','length','upArrow','460CkhbXO','has','findIndex','map','3249oyDhLB','8FuLAxR','227447ugcNDH','filter'];a67_0x52d3=function(){return _0x272287;};return a67_0x52d3();}export function useIDESelection({ideList:_0x3f2fde,preselectedIDEs:preselectedIDEs=[],multiSelect:multiSelect=!![]}){const _0x5a5b8b=a67_0xd5e3,[_0x522049,_0x1d5a91]=useState(new Set(preselectedIDEs[_0x5a5b8b(0x1e7)](_0x26942e=>_0x3f2fde[_0x5a5b8b(0x1e6)](_0x1d8a7c=>_0x1d8a7c[_0x5a5b8b(0x1de)]===_0x26942e))[_0x5a5b8b(0x1eb)](_0x3e97ef=>_0x3e97ef>=0x0))),[_0x27cf4f,_0x3b99db]=useState(0x0),[_0x100374,_0x429078]=useState(''),_0x3a5452=useCallback(()=>{const _0x25ebf8=_0x5a5b8b;_0x3b99db(_0x4083e1=>_0x4083e1>0x0?_0x4083e1-0x1:_0x3f2fde[_0x25ebf8(0x1e2)]-0x1);},[_0x3f2fde[_0x5a5b8b(0x1e2)]]),_0x490fe6=useCallback(()=>{const _0xd99415=_0x5a5b8b;_0x3b99db(_0x469e3a=>_0x469e3a<_0x3f2fde[_0xd99415(0x1e2)]-0x1?_0x469e3a+0x1:0x0);},[_0x3f2fde['length']]),_0x5db1e2=useCallback(()=>{if(!multiSelect){_0x1d5a91(new Set([_0x27cf4f]));return;}_0x1d5a91(_0x332a3a=>{const _0x9b050e=a67_0xd5e3,_0x9aac5a=new Set(_0x332a3a);return _0x9aac5a['has'](_0x27cf4f)?_0x9aac5a[_0x9b050e(0x1ec)](_0x27cf4f):_0x9aac5a[_0x9b050e(0x1e0)](_0x27cf4f),_0x9aac5a;});},[_0x27cf4f,multiSelect]),_0x838a9d=useCallback(()=>{_0x1d5a91(new Set(_0x3f2fde['map']((_0x37bb31,_0x204954)=>_0x204954)));},[_0x3f2fde]),_0x49d244=useCallback(()=>{_0x1d5a91(_0x4f1568=>{const _0xda81fe=a67_0xd5e3,_0xbb1e35=new Set();for(let _0xb4ed1=0x0;_0xb4ed1<_0x3f2fde['length'];_0xb4ed1++){!_0x4f1568[_0xda81fe(0x1e5)](_0xb4ed1)&&_0xbb1e35['add'](_0xb4ed1);}return _0xbb1e35;});},[_0x3f2fde]),_0x3453e0=useCallback(()=>{const _0x392add=_0x5a5b8b;return Array[_0x392add(0x1df)](_0x522049)[_0x392add(0x1e7)](_0x3c6ccd=>_0x3f2fde[_0x3c6ccd]?.[_0x392add(0x1de)])[_0x392add(0x1eb)](_0xfbaea8=>_0xfbaea8!==undefined);},[_0x522049,_0x3f2fde]),_0x12a22d=useCallback(()=>{const _0x2c9ff7=_0x5a5b8b;return _0x522049[_0x2c9ff7(0x1dc)]===_0x3f2fde['length'];},[_0x522049,_0x3f2fde]),_0x24bb0d=useCallback((_0x463aba,_0x1d333a)=>{const _0x11ac2f=_0x5a5b8b;if(_0x1d333a[_0x11ac2f(0x1e3)])return _0x3a5452(),!![];if(_0x1d333a['downArrow'])return _0x490fe6(),!![];if(_0x463aba==='\x20')return _0x5db1e2(),!![];if(_0x463aba==='a'||_0x463aba==='A')return _0x838a9d(),!![];if(_0x463aba==='i'||_0x463aba==='I'||_0x463aba==='r'||_0x463aba==='R')return _0x49d244(),!![];return![];},[_0x3a5452,_0x490fe6,_0x5db1e2,_0x838a9d,_0x49d244]);return{'selectedIndexes':_0x522049,'highlightIndex':_0x27cf4f,'errorMsg':_0x100374,'setErrorMsg':_0x429078,'handleKeyDown':_0x24bb0d,'getSelectedIDEs':_0x3453e0,'isAllSelected':_0x12a22d,'toggleSelection':_0x5db1e2,'selectAll':_0x838a9d,'invertSelection':_0x49d244,'moveHighlightUp':_0x3a5452,'moveHighlightDown':_0x490fe6};}
@@ -1 +1 @@
1
- const a68_0x25901e=a68_0x45e9;(function(_0x181b59,_0x1b2993){const _0x2e8438=a68_0x45e9,_0x529ed1=_0x181b59();while(!![]){try{const _0x185d35=-parseInt(_0x2e8438(0x208))/0x1+-parseInt(_0x2e8438(0x221))/0x2+parseInt(_0x2e8438(0x21f))/0x3*(parseInt(_0x2e8438(0x218))/0x4)+parseInt(_0x2e8438(0x206))/0x5*(parseInt(_0x2e8438(0x20f))/0x6)+-parseInt(_0x2e8438(0x20e))/0x7*(parseInt(_0x2e8438(0x207))/0x8)+parseInt(_0x2e8438(0x1fd))/0x9+-parseInt(_0x2e8438(0x1ee))/0xa;if(_0x185d35===_0x1b2993)break;else _0x529ed1['push'](_0x529ed1['shift']());}catch(_0x333ccd){_0x529ed1['push'](_0x529ed1['shift']());}}}(a68_0x5069,0x192ff));export const CORE_IDE_CONFIGS={'cursor':{'name':a68_0x25901e(0x21d),'description':a68_0x25901e(0x1ec),'folders':[a68_0x25901e(0x1ed),a68_0x25901e(0x1fb)],'files':[{'type':a68_0x25901e(0x1f2),'path':a68_0x25901e(0x201),'template':'SKILL.md.tpl'}]},'windsurf':{'name':a68_0x25901e(0x216),'description':a68_0x25901e(0x1ff),'folders':[a68_0x25901e(0x1f3)],'files':[{'type':a68_0x25901e(0x1f2),'path':a68_0x25901e(0x21c),'template':'SKILL.md.tpl'}]},'claude':{'name':a68_0x25901e(0x209),'description':a68_0x25901e(0x209),'folders':['.claude'],'files':[{'type':a68_0x25901e(0x1f2),'path':a68_0x25901e(0x21b),'template':a68_0x25901e(0x220)}]},'cline':{'name':a68_0x25901e(0x212),'description':'Cline\x20IDE','folders':[a68_0x25901e(0x1ef)],'files':[{'type':a68_0x25901e(0x1f2),'path':a68_0x25901e(0x217),'template':'SKILL.md.tpl'}]},'codex':{'name':a68_0x25901e(0x213),'description':a68_0x25901e(0x21e),'folders':['.codex'],'files':[{'type':a68_0x25901e(0x1f2),'path':a68_0x25901e(0x1f1),'template':a68_0x25901e(0x220)}]},'opencode':{'name':a68_0x25901e(0x20a),'description':a68_0x25901e(0x211),'folders':[a68_0x25901e(0x1fa)],'files':[{'type':a68_0x25901e(0x1f2),'path':a68_0x25901e(0x1eb),'template':a68_0x25901e(0x220)}]},'qoder':{'name':a68_0x25901e(0x1fe),'description':a68_0x25901e(0x1f7),'folders':['.qoder'],'files':[{'type':'file','path':'.qoder/rules/lovrabet.md','template':a68_0x25901e(0x220)},{'type':a68_0x25901e(0x1f2),'path':a68_0x25901e(0x204),'template':'SKILL.md.tpl'}]},'codebuddy':{'name':'CodeBuddy','description':a68_0x25901e(0x1e9),'folders':[a68_0x25901e(0x1f5)],'files':[{'type':a68_0x25901e(0x1f2),'path':a68_0x25901e(0x205),'template':a68_0x25901e(0x220)}]},'trae':{'name':a68_0x25901e(0x203),'description':'Trae\x20IDE','folders':[a68_0x25901e(0x1f0)],'files':[{'type':a68_0x25901e(0x1f2),'path':a68_0x25901e(0x219),'template':a68_0x25901e(0x220)}]}};export const IDE_CONFIGS={...CORE_IDE_CONFIGS,'agent':{'name':'其他\x20(通用模板)','description':a68_0x25901e(0x215),'folders':[a68_0x25901e(0x20c)],'files':[{'type':a68_0x25901e(0x1f2),'path':a68_0x25901e(0x1f6),'template':'SKILL.md.tpl'}]},'antigravity':{'name':a68_0x25901e(0x20b),'description':a68_0x25901e(0x202),'folders':[a68_0x25901e(0x20c)],'files':[{'type':a68_0x25901e(0x1f2),'path':a68_0x25901e(0x1f6),'template':'SKILL.md.tpl'}]}};function a68_0x5069(){const _0x4e83bb=['.windsurf/workflows/lovrabet.md','Cursor','Codex\x20IDE','1365nuqBIu','SKILL.md.tpl','336466EQCWcw','agent','CodeBuddy\x20IDE','trae','.opencode/skills/lovrabet/SKILL.md','Cursor\x20IDE','.cursorrules','1507830lyvJos','.cline','.trae','.codex/skills/lovrabet/SKILL.md','file','.windsurf','qoder','.codebuddy','.agent/skills/lovrabet/SKILL.md','Qoder\x20IDE','cursor','codebuddy','.opencode','.cursor','antigravity','1659384yYIXmG','Qoder','Windsurf\x20IDE','cline','.cursor/skills/lovrabet.md','Antigravity\x20IDE','Trae','.qoder/skills/lovrabet/SKILL.md','.codebuddy/skills/lovrabet/SKILL.md','110bCTGcC','8TaxGBf','37242UBFNny','Claude\x20Code','OpenCode','Antigravity','.agent','claude','17339AVqfdH','38958EnfuxC','windsurf','OpenCode\x20IDE','Cline','Codex','opencode','通用模板\x20-\x20兜底方案','Windsurf','.cline/skills/lovrabet/SKILL.md','1184wSIBHf','.trae/skills/lovrabet/SKILL.md','codex','.claude/skills/lovrabet/SKILL.md'];a68_0x5069=function(){return _0x4e83bb;};return a68_0x5069();}export const CORE_IDE_LIST=['claude',a68_0x25901e(0x200),'codebuddy','codex','cursor',a68_0x25901e(0x214),a68_0x25901e(0x1f4),'trae',a68_0x25901e(0x210)];export const IDE_LIST=[a68_0x25901e(0x1fc),a68_0x25901e(0x20d),a68_0x25901e(0x200),a68_0x25901e(0x1f9),a68_0x25901e(0x21a),a68_0x25901e(0x1f8),a68_0x25901e(0x214),a68_0x25901e(0x1f4),'trae','windsurf',a68_0x25901e(0x1e8)];export const ALL_CORE_IDES=[a68_0x25901e(0x1f8),a68_0x25901e(0x210),a68_0x25901e(0x20d),a68_0x25901e(0x200),'codex',a68_0x25901e(0x214),a68_0x25901e(0x1f4),a68_0x25901e(0x1f9),a68_0x25901e(0x1ea)];function a68_0x45e9(_0x15ebf1,_0x4a6d7c){_0x15ebf1=_0x15ebf1-0x1e8;const _0x5069e9=a68_0x5069();let _0x45e90f=_0x5069e9[_0x15ebf1];return _0x45e90f;}export const MCP_IDES=new Set([a68_0x25901e(0x1f8),a68_0x25901e(0x20d)]);
1
+ const a68_0x579a03=a68_0x1601;function a68_0x1601(_0x493206,_0x207cd3){_0x493206=_0x493206-0xeb;const _0xe2c9c7=a68_0xe2c9();let _0x16015c=_0xe2c9c7[_0x493206];return _0x16015c;}(function(_0x33838e,_0x92b993){const _0x6f8c5b=a68_0x1601,_0x2ac588=_0x33838e();while(!![]){try{const _0x53852f=-parseInt(_0x6f8c5b(0x11e))/0x1*(-parseInt(_0x6f8c5b(0x10f))/0x2)+parseInt(_0x6f8c5b(0xec))/0x3*(-parseInt(_0x6f8c5b(0x116))/0x4)+-parseInt(_0x6f8c5b(0x118))/0x5*(parseInt(_0x6f8c5b(0x102))/0x6)+parseInt(_0x6f8c5b(0x105))/0x7+-parseInt(_0x6f8c5b(0xfb))/0x8+-parseInt(_0x6f8c5b(0x114))/0x9*(parseInt(_0x6f8c5b(0xf4))/0xa)+parseInt(_0x6f8c5b(0x10c))/0xb;if(_0x53852f===_0x92b993)break;else _0x2ac588['push'](_0x2ac588['shift']());}catch(_0x1ec696){_0x2ac588['push'](_0x2ac588['shift']());}}}(a68_0xe2c9,0xbee5b));export const CORE_IDE_CONFIGS={'cursor':{'name':a68_0x579a03(0x10e),'description':a68_0x579a03(0x100),'folders':[a68_0x579a03(0x115),a68_0x579a03(0x11d)],'files':[{'type':a68_0x579a03(0x104),'path':a68_0x579a03(0xf8),'template':a68_0x579a03(0x11b)}]},'windsurf':{'name':'Windsurf','description':'Windsurf\x20IDE','folders':[a68_0x579a03(0x106)],'files':[{'type':'file','path':a68_0x579a03(0xf6),'template':a68_0x579a03(0x11b)}]},'claude':{'name':'Claude\x20Code','description':a68_0x579a03(0xee),'folders':[a68_0x579a03(0xfc)],'files':[{'type':'file','path':a68_0x579a03(0xed),'template':a68_0x579a03(0x11b)}]},'cline':{'name':'Cline','description':a68_0x579a03(0xff),'folders':[a68_0x579a03(0x108)],'files':[{'type':a68_0x579a03(0x104),'path':'.cline/skills/lovrabet/SKILL.md','template':'SKILL.md.tpl'}]},'codex':{'name':'Codex','description':a68_0x579a03(0xef),'folders':[a68_0x579a03(0x10a)],'files':[{'type':a68_0x579a03(0x104),'path':a68_0x579a03(0xf1),'template':a68_0x579a03(0x11b)}]},'opencode':{'name':a68_0x579a03(0x117),'description':a68_0x579a03(0x110),'folders':[a68_0x579a03(0x10b)],'files':[{'type':'file','path':a68_0x579a03(0xf3),'template':'SKILL.md.tpl'}]},'qoder':{'name':'Qoder','description':a68_0x579a03(0xf5),'folders':[a68_0x579a03(0x120)],'files':[{'type':a68_0x579a03(0x104),'path':a68_0x579a03(0x113),'template':a68_0x579a03(0x11b)},{'type':'file','path':a68_0x579a03(0x111),'template':a68_0x579a03(0x11b)}]},'codebuddy':{'name':a68_0x579a03(0xeb),'description':a68_0x579a03(0x109),'folders':[a68_0x579a03(0xfe)],'files':[{'type':'file','path':a68_0x579a03(0xf0),'template':'SKILL.md.tpl'}]},'trae':{'name':'Trae','description':'Trae\x20IDE','folders':[a68_0x579a03(0x121)],'files':[{'type':a68_0x579a03(0x104),'path':a68_0x579a03(0x11c),'template':a68_0x579a03(0x11b)}]}};export const IDE_CONFIGS={...CORE_IDE_CONFIGS,'agent':{'name':a68_0x579a03(0x119),'description':'通用模板\x20-\x20兜底方案','folders':['.agent'],'files':[{'type':a68_0x579a03(0x104),'path':a68_0x579a03(0xfd),'template':a68_0x579a03(0x11b)}]},'antigravity':{'name':a68_0x579a03(0x10d),'description':'Antigravity\x20IDE','folders':['.agent'],'files':[{'type':'file','path':a68_0x579a03(0xfd),'template':a68_0x579a03(0x11b)}]}};export const CORE_IDE_LIST=[a68_0x579a03(0x11f),a68_0x579a03(0xf9),a68_0x579a03(0xf2),a68_0x579a03(0x11a),a68_0x579a03(0xfa),'opencode',a68_0x579a03(0xf7),a68_0x579a03(0x112),a68_0x579a03(0x107)];function a68_0xe2c9(){const _0x8bc436=['Cline\x20IDE','Cursor\x20IDE','antigravity','1803342NPbVuK','agent','file','1736987hHfNgr','.windsurf','windsurf','.cline','CodeBuddy\x20IDE','.codex','.opencode','43864073DiIpkp','Antigravity','Cursor','314pXwWdI','OpenCode\x20IDE','.qoder/skills/lovrabet/SKILL.md','trae','.qoder/rules/lovrabet.md','9fbRStC','.cursorrules','906172vklwGS','OpenCode','10xQFTIO','其他\x20(通用模板)','codex','SKILL.md.tpl','.trae/skills/lovrabet/SKILL.md','.cursor','2597rYlqgU','claude','.qoder','.trae','CodeBuddy','15wqLCyA','.claude/skills/lovrabet/SKILL.md','Claude\x20Code','Codex\x20IDE','.codebuddy/skills/lovrabet/SKILL.md','.codex/skills/lovrabet/SKILL.md','codebuddy','.opencode/skills/lovrabet/SKILL.md','14039390lIkLhS','Qoder\x20IDE','.windsurf/workflows/lovrabet.md','qoder','.cursor/skills/lovrabet.md','cline','cursor','5790640MRcpto','.claude','.agent/skills/lovrabet/SKILL.md','.codebuddy'];a68_0xe2c9=function(){return _0x8bc436;};return a68_0xe2c9();}export const IDE_LIST=[a68_0x579a03(0x101),a68_0x579a03(0x11f),a68_0x579a03(0xf9),a68_0x579a03(0xf2),a68_0x579a03(0x11a),'cursor','opencode',a68_0x579a03(0xf7),a68_0x579a03(0x112),a68_0x579a03(0x107),a68_0x579a03(0x103)];export const ALL_CORE_IDES=['cursor',a68_0x579a03(0x107),a68_0x579a03(0x11f),a68_0x579a03(0xf9),a68_0x579a03(0x11a),'opencode','qoder','codebuddy','trae'];export const MCP_IDES=new Set([a68_0x579a03(0xfa),a68_0x579a03(0x11f)]);
@@ -1 +1 @@
1
- (function(_0x5b8178,_0x458922){const _0x353815=a69_0x19fd,_0x2ab7f5=_0x5b8178();while(!![]){try{const _0x52ad71=parseInt(_0x353815(0x169))/0x1+parseInt(_0x353815(0x16d))/0x2*(-parseInt(_0x353815(0x16a))/0x3)+-parseInt(_0x353815(0x167))/0x4*(-parseInt(_0x353815(0x16f))/0x5)+-parseInt(_0x353815(0x174))/0x6*(parseInt(_0x353815(0x168))/0x7)+-parseInt(_0x353815(0x172))/0x8+-parseInt(_0x353815(0x171))/0x9+-parseInt(_0x353815(0x173))/0xa*(-parseInt(_0x353815(0x16c))/0xb);if(_0x52ad71===_0x458922)break;else _0x2ab7f5['push'](_0x2ab7f5['shift']());}catch(_0x1283fe){_0x2ab7f5['push'](_0x2ab7f5['shift']());}}}(a69_0x453d,0xf2760));import{getTemplateBaseUrl}from'./config.js';export async function fetchCdnConfig(){const _0x41cf24=a69_0x19fd;try{const _0x42c3e0=getTemplateBaseUrl(),_0x1f092d=_0x42c3e0+_0x41cf24(0x170),_0x246539=await fetch(_0x1f092d,{'headers':{'Accept':'application/json'}});if(!_0x246539['ok'])return null;const _0x506971=await _0x246539[_0x41cf24(0x16e)]();if(!_0x506971['cli']?.[_0x41cf24(0x16b)]||!_0x506971['sdk']?.['node']?.[_0x41cf24(0x16b)])return null;return _0x506971;}catch{return null;}}function a69_0x453d(){const _0x1a791e=['1489663xSPWYj','46851sBUsXq','stableVersion','11RyllzS','162GySlqp','json','4310585ApeAjU','/config.json','11888775LcwPEz','7497080yvgZBa','39592570JShWbM','10768980yYvjtV','4RBFuTd','7WtkpKw'];a69_0x453d=function(){return _0x1a791e;};return a69_0x453d();}let cachedConfig=null,cacheTime=0x0;const CACHE_TTL=0x5*0x3c*0x3e8;export async function getCdnConfig(){const _0x50919e=Date['now']();if(cachedConfig&&_0x50919e-cacheTime<CACHE_TTL)return cachedConfig;const _0x225f0=await fetchCdnConfig();return _0x225f0&&(cachedConfig=_0x225f0,cacheTime=_0x50919e),_0x225f0;}function a69_0x19fd(_0x25c853,_0x45d55b){_0x25c853=_0x25c853-0x167;const _0x453d73=a69_0x453d();let _0x19fd34=_0x453d73[_0x25c853];return _0x19fd34;}export function clearCdnConfigCache(){cachedConfig=null,cacheTime=0x0;}
1
+ (function(_0x3cf592,_0x5d0b37){const _0x27adbc=a69_0x4e73,_0x21d085=_0x3cf592();while(!![]){try{const _0x572b51=parseInt(_0x27adbc(0x1c8))/0x1+-parseInt(_0x27adbc(0x1c3))/0x2+-parseInt(_0x27adbc(0x1cf))/0x3*(parseInt(_0x27adbc(0x1d0))/0x4)+parseInt(_0x27adbc(0x1cc))/0x5*(parseInt(_0x27adbc(0x1ca))/0x6)+parseInt(_0x27adbc(0x1c6))/0x7+parseInt(_0x27adbc(0x1ce))/0x8+-parseInt(_0x27adbc(0x1cd))/0x9;if(_0x572b51===_0x5d0b37)break;else _0x21d085['push'](_0x21d085['shift']());}catch(_0x23436b){_0x21d085['push'](_0x21d085['shift']());}}}(a69_0x3928,0x5e9e2));import{getTemplateBaseUrl}from'./config.js';function a69_0x3928(){const _0x4fe8bc=['stableVersion','97320NqHCjj','json','126SillxG','application/json','104565yyIqer','5474682AKXXyy','3653872owQycr','683727bfiogh','4MdubJh','sdk','now','278376zOwjjI','/config.json','node','2588054AXbMdO'];a69_0x3928=function(){return _0x4fe8bc;};return a69_0x3928();}function a69_0x4e73(_0x461afe,_0x25635a){_0x461afe=_0x461afe-0x1c2;const _0x392860=a69_0x3928();let _0x4e73ca=_0x392860[_0x461afe];return _0x4e73ca;}export async function fetchCdnConfig(){const _0x3f6588=a69_0x4e73;try{const _0x37ad44=getTemplateBaseUrl(),_0x1cbfdc=_0x37ad44+_0x3f6588(0x1c4),_0x2b576e=await fetch(_0x1cbfdc,{'headers':{'Accept':_0x3f6588(0x1cb)}});if(!_0x2b576e['ok'])return null;const _0x596e95=await _0x2b576e[_0x3f6588(0x1c9)]();if(!_0x596e95['cli']?.[_0x3f6588(0x1c7)]||!_0x596e95[_0x3f6588(0x1d1)]?.[_0x3f6588(0x1c5)]?.[_0x3f6588(0x1c7)])return null;return _0x596e95;}catch{return null;}}let cachedConfig=null,cacheTime=0x0;const CACHE_TTL=0x5*0x3c*0x3e8;export async function getCdnConfig(){const _0x26845e=a69_0x4e73,_0x2c674a=Date[_0x26845e(0x1c2)]();if(cachedConfig&&_0x2c674a-cacheTime<CACHE_TTL)return cachedConfig;const _0x52b6eb=await fetchCdnConfig();return _0x52b6eb&&(cachedConfig=_0x52b6eb,cacheTime=_0x2c674a),_0x52b6eb;}export function clearCdnConfigCache(){cachedConfig=null,cacheTime=0x0;}
@@ -1 +1 @@
1
- const a70_0x4feeb0=a70_0xdc21;(function(_0x21fffd,_0xbaad36){const _0x137cec=a70_0xdc21,_0x10a635=_0x21fffd();while(!![]){try{const _0x5d2b2e=parseInt(_0x137cec(0x180))/0x1*(-parseInt(_0x137cec(0x196))/0x2)+-parseInt(_0x137cec(0x175))/0x3+-parseInt(_0x137cec(0x177))/0x4+parseInt(_0x137cec(0x18a))/0x5*(-parseInt(_0x137cec(0x186))/0x6)+-parseInt(_0x137cec(0x18c))/0x7+-parseInt(_0x137cec(0x17f))/0x8*(-parseInt(_0x137cec(0x17b))/0x9)+parseInt(_0x137cec(0x179))/0xa;if(_0x5d2b2e===_0xbaad36)break;else _0x10a635['push'](_0x10a635['shift']());}catch(_0x1d0165){_0x10a635['push'](_0x10a635['shift']());}}}(a70_0x2947,0x4b385));import a70_0x4641a9 from'node:fs';import a70_0x3a67c9 from'node:path';import a70_0x477708 from'semver';function a70_0xdc21(_0xea77f8,_0x11e8d2){_0xea77f8=_0xea77f8-0x174;const _0x294775=a70_0x2947();let _0xdc212e=_0x294775[_0xea77f8];return _0xdc212e;}import{getCdnConfig}from'./cdn-config.js';const FALLBACK_MIN_SDK_VERSION=a70_0x4feeb0(0x18b);function isNonNumericVersion(_0x7c05f4){const _0x443471=[/^latest$/i,/^beta$/i,/^alpha$/i,/^canary$/i,/^\*$/,/^x$/];return _0x443471['some'](_0x3a5449=>_0x3a5449['test'](_0x7c05f4));}function getInstalledVersion(_0x296759,_0x3aef61){const _0x29dbbe=a70_0x4feeb0;try{const _0x1d983b=a70_0x3a67c9[_0x29dbbe(0x18f)](_0x296759,'node_modules',_0x3aef61,'package.json');if(a70_0x4641a9[_0x29dbbe(0x18d)](_0x1d983b)){const _0x7d5db3=JSON[_0x29dbbe(0x17a)](a70_0x4641a9[_0x29dbbe(0x194)](_0x1d983b,_0x29dbbe(0x174)));return _0x7d5db3[_0x29dbbe(0x189)]||null;}}catch{}return null;}async function getSdkStableVersion(){const _0xc55045=a70_0x4feeb0;try{const _0x4d7220=await getCdnConfig();return _0x4d7220?.[_0xc55045(0x183)]?.[_0xc55045(0x178)]?.[_0xc55045(0x188)]||null;}catch{return null;}}function a70_0x2947(){const _0x2f0d1f=['node','16111140ZqbdoB','parse','228825LeLsMK','latest','minVersion','\x1b[0m','104rBhBjQ','2HcVNEM','utf8','dependencies','sdk','devDependencies','@lovrabet/sdk','293538tmprhH','\x1b[1m','stableVersion','version','5Dpkkas','1.2.0','3487155fVsAFT','existsSync','log','join','\x20\x20\x20升级命令:\x20npm\x20install\x20','\x1b[33m','\x20\x20\x20当前版本:\x20','packageName','readFileSync','coerce','360224pZfkgG','all','utf-8','914409nEJyZS','package.json','1685692RZUeea'];a70_0x2947=function(){return _0x2f0d1f;};return a70_0x2947();}async function getSdkPackageName(){const _0x4b10a4=a70_0x4feeb0;try{const _0xb4ba80=await getCdnConfig();return _0xb4ba80?.[_0x4b10a4(0x183)]?.[_0x4b10a4(0x178)]?.[_0x4b10a4(0x193)]||_0x4b10a4(0x185);}catch{return _0x4b10a4(0x185);}}export async function checkSdkVersion(_0x592e2d){const _0x3bff97=a70_0x4feeb0,_0x47feaa=a70_0x3a67c9[_0x3bff97(0x18f)](_0x592e2d,_0x3bff97(0x176)),[_0x7ecc4b,_0x25ce49]=await Promise[_0x3bff97(0x197)]([getSdkStableVersion(),getSdkPackageName()]),_0x533973=_0x7ecc4b||FALLBACK_MIN_SDK_VERSION;if(!a70_0x4641a9[_0x3bff97(0x18d)](_0x47feaa))return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':_0x533973,'packageName':_0x25ce49,'stableVersion':_0x7ecc4b};try{const _0x242d75=JSON[_0x3bff97(0x17a)](a70_0x4641a9[_0x3bff97(0x194)](_0x47feaa,'utf8')),_0x3ba9cd=_0x242d75[_0x3bff97(0x182)]||{},_0x1538f1=_0x242d75[_0x3bff97(0x184)]||{},_0xf262c=_0x3ba9cd[_0x25ce49]||_0x1538f1[_0x25ce49];if(!_0xf262c)return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':_0x533973,'packageName':_0x25ce49,'stableVersion':_0x7ecc4b};let _0x498224=getInstalledVersion(_0x592e2d,_0x25ce49);!_0x498224&&(_0x498224=_0xf262c);if(isNonNumericVersion(_0xf262c))return{'installed':!![],'version':_0x498224,'needsUpgrade':![],'minVersion':_0x533973,'packageName':_0x25ce49,'stableVersion':_0x7ecc4b};const _0x3e68e7=a70_0x477708['coerce'](_0x498224),_0x21720b=a70_0x477708[_0x3bff97(0x195)](_0x533973),_0x17e53c=_0x3e68e7&&_0x21720b?a70_0x477708['lt'](_0x3e68e7,_0x21720b):![];return{'installed':!![],'version':_0x498224,'needsUpgrade':_0x17e53c,'minVersion':_0x533973,'packageName':_0x25ce49,'stableVersion':_0x7ecc4b};}catch{return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':_0x533973,'packageName':_0x25ce49,'stableVersion':_0x7ecc4b};}}export function checkSdkVersionSync(_0x579745){const _0x22543d=a70_0x4feeb0,_0x4cde33=a70_0x3a67c9[_0x22543d(0x18f)](_0x579745,_0x22543d(0x176)),_0x1e0b7e=_0x22543d(0x185);if(!a70_0x4641a9[_0x22543d(0x18d)](_0x4cde33))return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':FALLBACK_MIN_SDK_VERSION,'packageName':_0x1e0b7e,'stableVersion':null};try{const _0x2bdc66=JSON['parse'](a70_0x4641a9[_0x22543d(0x194)](_0x4cde33,_0x22543d(0x181))),_0x9adaaf=_0x2bdc66[_0x22543d(0x182)]||{},_0x5229ed=_0x2bdc66[_0x22543d(0x184)]||{},_0x172214=_0x9adaaf[_0x1e0b7e]||_0x5229ed[_0x1e0b7e];if(!_0x172214)return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':FALLBACK_MIN_SDK_VERSION,'packageName':_0x1e0b7e,'stableVersion':null};let _0xbd6de7=getInstalledVersion(_0x579745,_0x1e0b7e);!_0xbd6de7&&(_0xbd6de7=_0x172214);if(isNonNumericVersion(_0x172214))return{'installed':!![],'version':_0xbd6de7,'needsUpgrade':![],'minVersion':FALLBACK_MIN_SDK_VERSION,'packageName':_0x1e0b7e,'stableVersion':null};const _0x4de8ec=a70_0x477708[_0x22543d(0x195)](_0xbd6de7),_0x158561=_0x4de8ec?a70_0x477708['lt'](_0x4de8ec,FALLBACK_MIN_SDK_VERSION):![];return{'installed':!![],'version':_0xbd6de7,'needsUpgrade':_0x158561,'minVersion':FALLBACK_MIN_SDK_VERSION,'packageName':_0x1e0b7e,'stableVersion':null};}catch{return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':FALLBACK_MIN_SDK_VERSION,'packageName':_0x1e0b7e,'stableVersion':null};}}export function printSdkUpgradeWarning(_0x4d4afc){const _0x57a982=a70_0x4feeb0;if(!_0x4d4afc['needsUpgrade'])return;const _0x4a40ee=_0x57a982(0x191),_0x13d27b=_0x57a982(0x17e),_0x3f061f=_0x57a982(0x187),_0x51f6e5=_0x4d4afc[_0x57a982(0x193)]||_0x57a982(0x185);console[_0x57a982(0x18e)](),console['log'](''+_0x4a40ee+_0x3f061f+'↪\x20SDK\x20版本更新'+_0x13d27b),console[_0x57a982(0x18e)](_0x4a40ee+_0x57a982(0x192)+_0x51f6e5+'@'+_0x4d4afc[_0x57a982(0x189)]+_0x13d27b),console[_0x57a982(0x18e)](_0x4a40ee+'\x20\x20\x20稳定版本:\x20'+(_0x4d4afc['stableVersion']||_0x4d4afc[_0x57a982(0x17d)])+_0x13d27b),console[_0x57a982(0x18e)](_0x4a40ee+_0x57a982(0x190)+_0x51f6e5+'@'+(_0x4d4afc['stableVersion']||_0x57a982(0x17c))+_0x13d27b),console[_0x57a982(0x18e)]();}
1
+ function a70_0x500a(){const _0x1439f1=['all','4942dhYPdJ','1300250EmBIMd','2456xaCbMk','2780510hgpGPL','\x1b[1m','devDependencies','needsUpgrade','\x20\x20\x20升级命令:\x20npm\x20install\x20','1.2.0','dependencies','9XTyHqR','readFileSync','existsSync','node','sdk','package.json','join','@lovrabet/sdk','log','latest','utf8','version','24KvujNJ','\x20\x20\x20当前版本:\x20','node_modules','some','17094913vUftEF','packageName','\x1b[33m','stableVersion','coerce','912388OAxMmv','148474YKUOCw','323204urvzfG','6aQpTid','parse'];a70_0x500a=function(){return _0x1439f1;};return a70_0x500a();}const a70_0x505497=a70_0x2d4e;(function(_0x182d71,_0x3fcd35){const _0x4a369f=a70_0x2d4e,_0x51bc29=_0x182d71();while(!![]){try{const _0x193478=parseInt(_0x4a369f(0x1db))/0x1+parseInt(_0x4a369f(0x1da))/0x2*(-parseInt(_0x4a369f(0x1d0))/0x3)+-parseInt(_0x4a369f(0x1d9))/0x4+-parseInt(_0x4a369f(0x1e0))/0x5*(parseInt(_0x4a369f(0x1dc))/0x6)+parseInt(_0x4a369f(0x1df))/0x7*(-parseInt(_0x4a369f(0x1e1))/0x8)+parseInt(_0x4a369f(0x1c4))/0x9*(-parseInt(_0x4a369f(0x1e2))/0xa)+parseInt(_0x4a369f(0x1d4))/0xb;if(_0x193478===_0x3fcd35)break;else _0x51bc29['push'](_0x51bc29['shift']());}catch(_0x389a21){_0x51bc29['push'](_0x51bc29['shift']());}}}(a70_0x500a,0x495a3));import a70_0xcc05e3 from'node:fs';import a70_0x25908e from'node:path';import a70_0x552e17 from'semver';import{getCdnConfig}from'./cdn-config.js';const FALLBACK_MIN_SDK_VERSION=a70_0x505497(0x1c2);function a70_0x2d4e(_0x44e6f3,_0x4d05f0){_0x44e6f3=_0x44e6f3-0x1c1;const _0x500aad=a70_0x500a();let _0x2d4e89=_0x500aad[_0x44e6f3];return _0x2d4e89;}function isNonNumericVersion(_0x28e945){const _0x34f762=a70_0x505497,_0x474a32=[/^latest$/i,/^beta$/i,/^alpha$/i,/^canary$/i,/^\*$/,/^x$/];return _0x474a32[_0x34f762(0x1d3)](_0xedc2cc=>_0xedc2cc['test'](_0x28e945));}function getInstalledVersion(_0xf1276b,_0xdca16d){const _0x1f0867=a70_0x505497;try{const _0xea60a3=a70_0x25908e[_0x1f0867(0x1ca)](_0xf1276b,_0x1f0867(0x1d2),_0xdca16d,_0x1f0867(0x1c9));if(a70_0xcc05e3['existsSync'](_0xea60a3)){const _0x3e76e3=JSON[_0x1f0867(0x1dd)](a70_0xcc05e3[_0x1f0867(0x1c5)](_0xea60a3,'utf-8'));return _0x3e76e3[_0x1f0867(0x1cf)]||null;}}catch{}return null;}async function getSdkStableVersion(){const _0x5caffe=a70_0x505497;try{const _0x29826f=await getCdnConfig();return _0x29826f?.[_0x5caffe(0x1c8)]?.[_0x5caffe(0x1c7)]?.['stableVersion']||null;}catch{return null;}}async function getSdkPackageName(){const _0x5e65be=a70_0x505497;try{const _0xb7892d=await getCdnConfig();return _0xb7892d?.[_0x5e65be(0x1c8)]?.[_0x5e65be(0x1c7)]?.[_0x5e65be(0x1d5)]||_0x5e65be(0x1cb);}catch{return _0x5e65be(0x1cb);}}export async function checkSdkVersion(_0x10d990){const _0x1c024a=a70_0x505497,_0x29f5b4=a70_0x25908e[_0x1c024a(0x1ca)](_0x10d990,'package.json'),[_0x46d2a1,_0x3056ba]=await Promise[_0x1c024a(0x1de)]([getSdkStableVersion(),getSdkPackageName()]),_0x5219b3=_0x46d2a1||FALLBACK_MIN_SDK_VERSION;if(!a70_0xcc05e3[_0x1c024a(0x1c6)](_0x29f5b4))return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':_0x5219b3,'packageName':_0x3056ba,'stableVersion':_0x46d2a1};try{const _0x2883db=JSON[_0x1c024a(0x1dd)](a70_0xcc05e3[_0x1c024a(0x1c5)](_0x29f5b4,_0x1c024a(0x1ce))),_0x55b47c=_0x2883db[_0x1c024a(0x1c3)]||{},_0x1d53bc=_0x2883db[_0x1c024a(0x1e4)]||{},_0x1368e0=_0x55b47c[_0x3056ba]||_0x1d53bc[_0x3056ba];if(!_0x1368e0)return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':_0x5219b3,'packageName':_0x3056ba,'stableVersion':_0x46d2a1};let _0x5d2b52=getInstalledVersion(_0x10d990,_0x3056ba);!_0x5d2b52&&(_0x5d2b52=_0x1368e0);if(isNonNumericVersion(_0x1368e0))return{'installed':!![],'version':_0x5d2b52,'needsUpgrade':![],'minVersion':_0x5219b3,'packageName':_0x3056ba,'stableVersion':_0x46d2a1};const _0x434925=a70_0x552e17[_0x1c024a(0x1d8)](_0x5d2b52),_0x4f2e15=a70_0x552e17[_0x1c024a(0x1d8)](_0x5219b3),_0x57bb16=_0x434925&&_0x4f2e15?a70_0x552e17['lt'](_0x434925,_0x4f2e15):![];return{'installed':!![],'version':_0x5d2b52,'needsUpgrade':_0x57bb16,'minVersion':_0x5219b3,'packageName':_0x3056ba,'stableVersion':_0x46d2a1};}catch{return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':_0x5219b3,'packageName':_0x3056ba,'stableVersion':_0x46d2a1};}}export function checkSdkVersionSync(_0x56dadb){const _0x1bf6ee=a70_0x505497,_0x47296b=a70_0x25908e[_0x1bf6ee(0x1ca)](_0x56dadb,_0x1bf6ee(0x1c9)),_0x5b50a0=_0x1bf6ee(0x1cb);if(!a70_0xcc05e3['existsSync'](_0x47296b))return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':FALLBACK_MIN_SDK_VERSION,'packageName':_0x5b50a0,'stableVersion':null};try{const _0x50b471=JSON['parse'](a70_0xcc05e3[_0x1bf6ee(0x1c5)](_0x47296b,_0x1bf6ee(0x1ce))),_0x1e48e2=_0x50b471[_0x1bf6ee(0x1c3)]||{},_0x12f926=_0x50b471[_0x1bf6ee(0x1e4)]||{},_0x1facc0=_0x1e48e2[_0x5b50a0]||_0x12f926[_0x5b50a0];if(!_0x1facc0)return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':FALLBACK_MIN_SDK_VERSION,'packageName':_0x5b50a0,'stableVersion':null};let _0x2c89ed=getInstalledVersion(_0x56dadb,_0x5b50a0);!_0x2c89ed&&(_0x2c89ed=_0x1facc0);if(isNonNumericVersion(_0x1facc0))return{'installed':!![],'version':_0x2c89ed,'needsUpgrade':![],'minVersion':FALLBACK_MIN_SDK_VERSION,'packageName':_0x5b50a0,'stableVersion':null};const _0x583bfa=a70_0x552e17[_0x1bf6ee(0x1d8)](_0x2c89ed),_0x1e018d=_0x583bfa?a70_0x552e17['lt'](_0x583bfa,FALLBACK_MIN_SDK_VERSION):![];return{'installed':!![],'version':_0x2c89ed,'needsUpgrade':_0x1e018d,'minVersion':FALLBACK_MIN_SDK_VERSION,'packageName':_0x5b50a0,'stableVersion':null};}catch{return{'installed':![],'version':null,'needsUpgrade':![],'minVersion':FALLBACK_MIN_SDK_VERSION,'packageName':_0x5b50a0,'stableVersion':null};}}export function printSdkUpgradeWarning(_0x2d5370){const _0x28e9e1=a70_0x505497;if(!_0x2d5370[_0x28e9e1(0x1e5)])return;const _0x44bc63=_0x28e9e1(0x1d6),_0x159d24='\x1b[0m',_0x118ee5=_0x28e9e1(0x1e3),_0x59dd7b=_0x2d5370['packageName']||_0x28e9e1(0x1cb);console['log'](),console['log'](''+_0x44bc63+_0x118ee5+'↪\x20SDK\x20版本更新'+_0x159d24),console[_0x28e9e1(0x1cc)](_0x44bc63+_0x28e9e1(0x1d1)+_0x59dd7b+'@'+_0x2d5370[_0x28e9e1(0x1cf)]+_0x159d24),console['log'](_0x44bc63+'\x20\x20\x20稳定版本:\x20'+(_0x2d5370[_0x28e9e1(0x1d7)]||_0x2d5370['minVersion'])+_0x159d24),console[_0x28e9e1(0x1cc)](_0x44bc63+_0x28e9e1(0x1c1)+_0x59dd7b+'@'+(_0x2d5370['stableVersion']||_0x28e9e1(0x1cd))+_0x159d24),console[_0x28e9e1(0x1cc)]();}
@@ -1 +1 @@
1
- (function(_0x11b079,_0x4c16f9){const _0x3d2073=a71_0xb7a9,_0x21dd61=_0x11b079();while(!![]){try{const _0x8fb73d=-parseInt(_0x3d2073(0xa8))/0x1*(-parseInt(_0x3d2073(0xb6))/0x2)+-parseInt(_0x3d2073(0xa3))/0x3*(parseInt(_0x3d2073(0xaf))/0x4)+-parseInt(_0x3d2073(0x9e))/0x5*(parseInt(_0x3d2073(0xb7))/0x6)+-parseInt(_0x3d2073(0xac))/0x7+parseInt(_0x3d2073(0x9d))/0x8*(parseInt(_0x3d2073(0xaa))/0x9)+parseInt(_0x3d2073(0xa9))/0xa+parseInt(_0x3d2073(0xad))/0xb*(parseInt(_0x3d2073(0xa6))/0xc);if(_0x8fb73d===_0x4c16f9)break;else _0x21dd61['push'](_0x21dd61['shift']());}catch(_0x353322){_0x21dd61['push'](_0x21dd61['shift']());}}}(a71_0x2f94,0x7be13));import{readFileSync}from'node:fs';import{resolve,dirname}from'node:path';import{fileURLToPath}from'node:url';function a71_0xb7a9(_0x3f83a5,_0x5f06c9){_0x3f83a5=_0x3f83a5-0x9d;const _0x2f9461=a71_0x2f94();let _0xb7a99e=_0x2f9461[_0x3f83a5];return _0xb7a99e;}import a71_0x262756 from'semver';function a71_0x2f94(){const _0x1d897b=['test','3440bZxPWy','6sbwdFB','128PwWfgY','4290170VkRquC','currentVersion','package.json','stableVersion','parse','9HdXoay','\x1b[1m','needsUpgrade','141708sfSene','\x20\x20\x20升级命令:\x20npm\x20install\x20-g\x20@lovrabet/cli@latest','22GbRwoh','2398510KPrFmY','256554vAxZRq','\x20\x20\x20稳定版本:\x20','1295301ABKEgd','913peIjnm','↪\x20新版本可用','217928vfHQUT','log','\x1b[0m','\x20\x20\x20当前\x20CLI\x20版本:\x20','../..','coerce'];a71_0x2f94=function(){return _0x1d897b;};return a71_0x2f94();}import{getCdnConfig}from'./cdn-config.js';function getCurrentCliVersion(){const _0x26572a=a71_0xb7a9;try{const _0x1e9942=fileURLToPath(import.meta.url),_0x241a54=resolve(dirname(_0x1e9942),_0x26572a(0xb3)),_0x8ae4e0=resolve(_0x241a54,_0x26572a(0xa0)),_0x368fbe=JSON[_0x26572a(0xa2)](readFileSync(_0x8ae4e0,'utf-8'));return _0x368fbe['version']||'1.0.0';}catch{return'1.0.0';}}function isNonNumericVersion(_0x3140ac){const _0x13184e=a71_0xb7a9,_0x5edca9=[/^latest$/i,/^beta$/i,/^alpha$/i,/^canary$/i,/^\^/,/^~/,/^>/,/^</,/^\*/,/^x$/];return _0x5edca9['some'](_0x2e5623=>_0x2e5623[_0x13184e(0xb5)](_0x3140ac));}export async function checkCliVersion(){const _0x4e9ba2=a71_0xb7a9,_0x4f167=getCurrentCliVersion(),_0x1cad01=await getCdnConfig(),_0x527876=_0x1cad01?.['cli']?.[_0x4e9ba2(0xa1)]||null;let _0x2a19d2=![];if(_0x527876)try{const _0x3f419b=a71_0x262756[_0x4e9ba2(0xb4)](_0x4f167),_0x363f24=a71_0x262756['coerce'](_0x527876);_0x3f419b&&_0x363f24&&(_0x2a19d2=a71_0x262756['lt'](_0x3f419b,_0x363f24));}catch{_0x2a19d2=![];}return{'currentVersion':_0x4f167,'stableVersion':_0x527876,'needsUpgrade':_0x2a19d2,'isPreRelease':![]};}export function printCliUpgradeWarning(_0x44aa8f){const _0x5c2ba8=a71_0xb7a9;if(!_0x44aa8f[_0x5c2ba8(0xa5)])return;const _0xd9f010='\x1b[33m',_0x37411e=_0x5c2ba8(0xb1),_0x18c4d6=_0x5c2ba8(0xa4);console[_0x5c2ba8(0xb0)](),console[_0x5c2ba8(0xb0)](''+_0xd9f010+_0x18c4d6+_0x5c2ba8(0xae)+_0x37411e),console['log'](_0xd9f010+_0x5c2ba8(0xb2)+_0x44aa8f[_0x5c2ba8(0x9f)]+_0x37411e),console[_0x5c2ba8(0xb0)](_0xd9f010+_0x5c2ba8(0xab)+_0x44aa8f[_0x5c2ba8(0xa1)]+_0x37411e),console[_0x5c2ba8(0xb0)](_0xd9f010+_0x5c2ba8(0xa7)+_0x37411e),console[_0x5c2ba8(0xb0)]();}
1
+ (function(_0x3919dc,_0x5aaaff){const _0x427621=a71_0x24e9,_0x13afb9=_0x3919dc();while(!![]){try{const _0x1cb6e0=parseInt(_0x427621(0x14a))/0x1+parseInt(_0x427621(0x15e))/0x2*(-parseInt(_0x427621(0x15f))/0x3)+-parseInt(_0x427621(0x156))/0x4*(-parseInt(_0x427621(0x158))/0x5)+parseInt(_0x427621(0x155))/0x6*(-parseInt(_0x427621(0x14e))/0x7)+parseInt(_0x427621(0x159))/0x8+-parseInt(_0x427621(0x14f))/0x9+parseInt(_0x427621(0x15c))/0xa*(-parseInt(_0x427621(0x14b))/0xb);if(_0x1cb6e0===_0x5aaaff)break;else _0x13afb9['push'](_0x13afb9['shift']());}catch(_0x58328f){_0x13afb9['push'](_0x13afb9['shift']());}}}(a71_0x1b81,0xbd1af));function a71_0x1b81(){const _0x72d298=['710bPWdfz','1.0.0','78922rxKxhy','3FgoAqP','../..','434085wARjxO','57497CuNPpY','some','\x20\x20\x20当前\x20CLI\x20版本:\x20','6384juRwMd','2610063WOPShL','\x1b[1m','coerce','stableVersion','package.json','cli','3462MytXsZ','4XHwxxm','parse','220755sqUEjV','12185184muLXfy','currentVersion','log'];a71_0x1b81=function(){return _0x72d298;};return a71_0x1b81();}import{readFileSync}from'node:fs';function a71_0x24e9(_0x20929a,_0x33c502){_0x20929a=_0x20929a-0x149;const _0x1b8160=a71_0x1b81();let _0x24e9fc=_0x1b8160[_0x20929a];return _0x24e9fc;}import{resolve,dirname}from'node:path';import{fileURLToPath}from'node:url';import a71_0x40d0c2 from'semver';import{getCdnConfig}from'./cdn-config.js';function getCurrentCliVersion(){const _0x2059e8=a71_0x24e9;try{const _0x4eecf9=fileURLToPath(import.meta.url),_0x57c1d6=resolve(dirname(_0x4eecf9),_0x2059e8(0x149)),_0x40838c=resolve(_0x57c1d6,_0x2059e8(0x153)),_0x3b3cb7=JSON[_0x2059e8(0x157)](readFileSync(_0x40838c,'utf-8'));return _0x3b3cb7['version']||_0x2059e8(0x15d);}catch{return _0x2059e8(0x15d);}}function isNonNumericVersion(_0x4fe75b){const _0x1bf9a4=a71_0x24e9,_0xdc9800=[/^latest$/i,/^beta$/i,/^alpha$/i,/^canary$/i,/^\^/,/^~/,/^>/,/^</,/^\*/,/^x$/];return _0xdc9800[_0x1bf9a4(0x14c)](_0x428a57=>_0x428a57['test'](_0x4fe75b));}export async function checkCliVersion(){const _0x381d3c=a71_0x24e9,_0xc1622b=getCurrentCliVersion(),_0x4bf85f=await getCdnConfig(),_0x10612e=_0x4bf85f?.[_0x381d3c(0x154)]?.[_0x381d3c(0x152)]||null;let _0x392ff0=![];if(_0x10612e)try{const _0x5da40b=a71_0x40d0c2[_0x381d3c(0x151)](_0xc1622b),_0x5d77a7=a71_0x40d0c2[_0x381d3c(0x151)](_0x10612e);_0x5da40b&&_0x5d77a7&&(_0x392ff0=a71_0x40d0c2['lt'](_0x5da40b,_0x5d77a7));}catch{_0x392ff0=![];}return{'currentVersion':_0xc1622b,'stableVersion':_0x10612e,'needsUpgrade':_0x392ff0,'isPreRelease':![]};}export function printCliUpgradeWarning(_0x3e1dcf){const _0x25ac7c=a71_0x24e9;if(!_0x3e1dcf['needsUpgrade'])return;const _0x296956='\x1b[33m',_0x2fe9da='\x1b[0m',_0x1cdea6=_0x25ac7c(0x150);console[_0x25ac7c(0x15b)](),console[_0x25ac7c(0x15b)](''+_0x296956+_0x1cdea6+'↪\x20新版本可用'+_0x2fe9da),console[_0x25ac7c(0x15b)](_0x296956+_0x25ac7c(0x14d)+_0x3e1dcf[_0x25ac7c(0x15a)]+_0x2fe9da),console[_0x25ac7c(0x15b)](_0x296956+'\x20\x20\x20稳定版本:\x20'+_0x3e1dcf['stableVersion']+_0x2fe9da),console[_0x25ac7c(0x15b)](_0x296956+'\x20\x20\x20升级命令:\x20npm\x20install\x20-g\x20@lovrabet/cli@latest'+_0x2fe9da),console[_0x25ac7c(0x15b)]();}
@@ -1 +1 @@
1
- const a72_0x58dab2=a72_0x19e8;(function(_0x357d0d,_0xb3c915){const _0x33101f=a72_0x19e8,_0x136c01=_0x357d0d();while(!![]){try{const _0x14f843=-parseInt(_0x33101f(0xf4))/0x1*(-parseInt(_0x33101f(0xe2))/0x2)+parseInt(_0x33101f(0xe3))/0x3*(parseInt(_0x33101f(0xef))/0x4)+parseInt(_0x33101f(0xf6))/0x5+parseInt(_0x33101f(0xf7))/0x6*(parseInt(_0x33101f(0xf5))/0x7)+-parseInt(_0x33101f(0xe8))/0x8*(-parseInt(_0x33101f(0xec))/0x9)+-parseInt(_0x33101f(0xf0))/0xa*(-parseInt(_0x33101f(0xe1))/0xb)+-parseInt(_0x33101f(0xe4))/0xc;if(_0x14f843===_0xb3c915)break;else _0x136c01['push'](_0x136c01['shift']());}catch(_0x3363e4){_0x136c01['push'](_0x136c01['shift']());}}}(a72_0x1a8e,0x19337));import{existsSync,readFileSync}from'node:fs';import{resolve}from'node:path';import{homedir}from'node:os';import{initEnv}from'../constant/env.js';export const projectConfigPath=resolve(process[a72_0x58dab2(0xf2)](),a72_0x58dab2(0xed));export const globalConfigPath=resolve(homedir(),a72_0x58dab2(0xed));export function readConfig(_0x28902d){const _0x39c8bd=a72_0x58dab2;let _0x3fde63={};try{if(existsSync(globalConfigPath)){const _0x53c42a=readFileSync(globalConfigPath,{'encoding':_0x39c8bd(0xeb)});_0x53c42a&&(_0x3fde63=JSON['parse'](_0x53c42a));}}catch(_0x201e62){}try{const _0xc3e08d=_0x28902d?resolve(_0x28902d,_0x39c8bd(0xed)):projectConfigPath;if(existsSync(_0xc3e08d)){const _0x1f3d53=readFileSync(_0xc3e08d,{'encoding':'utf8'});if(_0x1f3d53){const _0x555ce6=JSON['parse'](_0x1f3d53);_0x3fde63={..._0x3fde63,..._0x555ce6};}}}catch(_0xc9cb41){}return _0x3fde63[_0x39c8bd(0xe9)]&&typeof _0x3fde63[_0x39c8bd(0xe9)]===_0x39c8bd(0xe5)&&initEnv(_0x3fde63['env']),_0x3fde63;}export function getConfigAppCode(){const _0x503d80=a72_0x58dab2;let _0x33634b={},_0x42c30f={};try{if(existsSync(globalConfigPath)){const _0x36e9be=readFileSync(globalConfigPath,{'encoding':'utf8'});_0x36e9be&&(_0x42c30f=JSON[_0x503d80(0xf1)](_0x36e9be));}}catch(_0x1f6164){}try{if(existsSync(projectConfigPath)){const _0x528a8f=readFileSync(projectConfigPath,{'encoding':_0x503d80(0xeb)});_0x528a8f&&(_0x33634b=JSON[_0x503d80(0xf1)](_0x528a8f));}}catch(_0x271a8b){}let _0x31b001;if('appcode'in _0x33634b)_0x31b001=_0x33634b[_0x503d80(0xee)];else{if(_0x503d80(0xea)in _0x33634b)_0x31b001=_0x33634b[_0x503d80(0xea)];else{if(_0x503d80(0xee)in _0x42c30f)_0x31b001=_0x42c30f[_0x503d80(0xee)];else _0x503d80(0xea)in _0x42c30f&&(_0x31b001=_0x42c30f[_0x503d80(0xea)]);}}if(typeof _0x31b001!==_0x503d80(0xe5)||_0x31b001[_0x503d80(0xe6)]()==='')return undefined;return _0x31b001;}export function isInProject(){return existsSync(projectConfigPath);}function a72_0x19e8(_0x420c12,_0x1a4b75){_0x420c12=_0x420c12-0xe1;const _0x1a8e91=a72_0x1a8e();let _0x19e83c=_0x1a8e91[_0x420c12];return _0x19e83c;}export function getTemplateBaseUrl(){const _0x192503=a72_0x58dab2,_0x25d5a7=readConfig();if(_0x25d5a7['template_base_url']&&typeof _0x25d5a7[_0x192503(0xe7)]===_0x192503(0xe5))return _0x25d5a7[_0x192503(0xe7)][_0x192503(0xf3)](/\/$/,'');return _0x192503(0xf8);}function a72_0x1a8e(){const _0x596865=['1868970qjNlfr','parse','cwd','replace','2fpTLGf','632870lDbsnb','299705VmAneq','12FgMGVz','https://g.lovrabet.com/dist/lovrabet-cli','11vdBibD','171714zbszwe','15QKBTnC','10139664KHrIhX','string','trim','template_base_url','136GtzBZt','env','app','utf8','108036uFGysG','.lovrabetrc','appcode','115804MzFmrT'];a72_0x1a8e=function(){return _0x596865;};return a72_0x1a8e();}
1
+ const a72_0x2c15e3=a72_0x58f1;(function(_0x22641b,_0x3a413f){const _0x453b19=a72_0x58f1,_0x193b12=_0x22641b();while(!![]){try{const _0x2cfb8a=-parseInt(_0x453b19(0x110))/0x1+parseInt(_0x453b19(0x113))/0x2*(-parseInt(_0x453b19(0x10d))/0x3)+parseInt(_0x453b19(0x10c))/0x4+parseInt(_0x453b19(0x116))/0x5*(parseInt(_0x453b19(0x111))/0x6)+-parseInt(_0x453b19(0x10f))/0x7+-parseInt(_0x453b19(0x10e))/0x8+parseInt(_0x453b19(0x10a))/0x9*(parseInt(_0x453b19(0x10b))/0xa);if(_0x2cfb8a===_0x3a413f)break;else _0x193b12['push'](_0x193b12['shift']());}catch(_0x2b7d30){_0x193b12['push'](_0x193b12['shift']());}}}(a72_0x4aef,0x8238a));import{existsSync,readFileSync}from'node:fs';import{resolve}from'node:path';import{homedir}from'node:os';function a72_0x58f1(_0x174409,_0x191bde){_0x174409=_0x174409-0x10a;const _0x4aefc0=a72_0x4aef();let _0x58f1c6=_0x4aefc0[_0x174409];return _0x58f1c6;}import{initEnv}from'../constant/env.js';export const projectConfigPath=resolve(process[a72_0x2c15e3(0x11d)](),a72_0x2c15e3(0x117));export const globalConfigPath=resolve(homedir(),'.lovrabetrc');export function readConfig(_0x12bd5c){const _0x57b8da=a72_0x2c15e3;let _0x1b0482={};try{if(existsSync(globalConfigPath)){const _0x2329f4=readFileSync(globalConfigPath,{'encoding':_0x57b8da(0x115)});_0x2329f4&&(_0x1b0482=JSON[_0x57b8da(0x119)](_0x2329f4));}}catch(_0x794a3b){}try{const _0x426e7e=_0x12bd5c?resolve(_0x12bd5c,_0x57b8da(0x117)):projectConfigPath;if(existsSync(_0x426e7e)){const _0x36f900=readFileSync(_0x426e7e,{'encoding':'utf8'});if(_0x36f900){const _0x335a7d=JSON[_0x57b8da(0x119)](_0x36f900);_0x1b0482={..._0x1b0482,..._0x335a7d};}}}catch(_0x34f093){}return _0x1b0482[_0x57b8da(0x11c)]&&typeof _0x1b0482[_0x57b8da(0x11c)]===_0x57b8da(0x11b)&&initEnv(_0x1b0482[_0x57b8da(0x11c)]),_0x1b0482;}export function getConfigAppCode(){const _0x15f0e1=a72_0x2c15e3;let _0x2d6a45={},_0x2c70ff={};try{if(existsSync(globalConfigPath)){const _0x58e02a=readFileSync(globalConfigPath,{'encoding':_0x15f0e1(0x115)});_0x58e02a&&(_0x2c70ff=JSON['parse'](_0x58e02a));}}catch(_0x169ecd){}try{if(existsSync(projectConfigPath)){const _0x5bf837=readFileSync(projectConfigPath,{'encoding':'utf8'});_0x5bf837&&(_0x2d6a45=JSON['parse'](_0x5bf837));}}catch(_0x50b732){}let _0x18981d;if(_0x15f0e1(0x11a)in _0x2d6a45)_0x18981d=_0x2d6a45[_0x15f0e1(0x11a)];else{if(_0x15f0e1(0x112)in _0x2d6a45)_0x18981d=_0x2d6a45['app'];else{if(_0x15f0e1(0x11a)in _0x2c70ff)_0x18981d=_0x2c70ff[_0x15f0e1(0x11a)];else _0x15f0e1(0x112)in _0x2c70ff&&(_0x18981d=_0x2c70ff[_0x15f0e1(0x112)]);}}if(typeof _0x18981d!==_0x15f0e1(0x11b)||_0x18981d['trim']()==='')return undefined;return _0x18981d;}function a72_0x4aef(){const _0x5d2769=['appcode','string','env','cwd','9873lKMRui','8180BlnozR','517772lNzKos','1217427lNZxbo','3977936FNSiFw','1264781xqSxWl','179309gBrmwI','1626GGBhih','app','2XeOzMJ','replace','utf8','14200BgsQQI','.lovrabetrc','template_base_url','parse'];a72_0x4aef=function(){return _0x5d2769;};return a72_0x4aef();}export function isInProject(){return existsSync(projectConfigPath);}export function getTemplateBaseUrl(){const _0x259a5b=a72_0x2c15e3,_0x92429a=readConfig();if(_0x92429a['template_base_url']&&typeof _0x92429a['template_base_url']===_0x259a5b(0x11b))return _0x92429a[_0x259a5b(0x118)][_0x259a5b(0x114)](/\/$/,'');return'https://g.lovrabet.com/dist/lovrabet-cli';}
@@ -1 +1 @@
1
- (function(_0x392b5a,_0x5cc1b8){const _0x32d525=a73_0x563d,_0x27f4bb=_0x392b5a();while(!![]){try{const _0x165624=parseInt(_0x32d525(0x16a))/0x1*(-parseInt(_0x32d525(0x169))/0x2)+parseInt(_0x32d525(0x16f))/0x3+-parseInt(_0x32d525(0x173))/0x4+parseInt(_0x32d525(0x172))/0x5*(-parseInt(_0x32d525(0x165))/0x6)+-parseInt(_0x32d525(0x174))/0x7*(-parseInt(_0x32d525(0x16d))/0x8)+-parseInt(_0x32d525(0x16c))/0x9*(parseInt(_0x32d525(0x168))/0xa)+parseInt(_0x32d525(0x171))/0xb;if(_0x165624===_0x5cc1b8)break;else _0x27f4bb['push'](_0x27f4bb['shift']());}catch(_0x3c70a5){_0x27f4bb['push'](_0x27f4bb['shift']());}}}(a73_0x1004,0xaec4e));function a73_0x563d(_0x43224a,_0x31a757){_0x43224a=_0x43224a-0x165;const _0x100481=a73_0x1004();let _0x563dc0=_0x100481[_0x43224a];return _0x563dc0;}import a73_0xc60770 from'node:path';import a73_0xe27843 from'node:fs';function a73_0x1004(){const _0x2cc39b=['3540702FLnHnL','error','6285543VrAxvZ','25595NJYluG','1465844TCLaET','210qqtpbo','join','1254LHsdxv','isDirectory','readdirSync','3252660TvODYX','546yHLVVD','735uXGrTN','mkdirSync','9IjETmg','247056pEMwos','copyFileSync'];a73_0x1004=function(){return _0x2cc39b;};return a73_0x1004();}export async function copyDirectory(_0x46390d,_0x344371){const _0xfa747d=a73_0x563d;try{const _0x79bc69=a73_0xe27843[_0xfa747d(0x167)](_0x46390d,{'withFileTypes':!![]});a73_0xe27843[_0xfa747d(0x16b)](_0x344371,{'recursive':!![]});for(const _0x4dbee0 of _0x79bc69){const _0x1672e5=a73_0xc60770[_0xfa747d(0x175)](_0x46390d,_0x4dbee0['name']),_0x475746=a73_0xc60770[_0xfa747d(0x175)](_0x344371,_0x4dbee0['name']);_0x4dbee0[_0xfa747d(0x166)]()?await copyDirectory(_0x1672e5,_0x475746):a73_0xe27843[_0xfa747d(0x16e)](_0x1672e5,_0x475746);}}catch(_0x3aaa82){console[_0xfa747d(0x170)]('复制目录时出错:',_0x3aaa82);}}
1
+ (function(_0x4d7b6d,_0x4cc7dd){const _0x4225ba=a73_0x3008,_0x58ff3e=_0x4d7b6d();while(!![]){try{const _0x2d52da=-parseInt(_0x4225ba(0xb5))/0x1*(-parseInt(_0x4225ba(0xb7))/0x2)+-parseInt(_0x4225ba(0xad))/0x3*(-parseInt(_0x4225ba(0xb0))/0x4)+parseInt(_0x4225ba(0xb1))/0x5+-parseInt(_0x4225ba(0xaf))/0x6+parseInt(_0x4225ba(0xb6))/0x7+-parseInt(_0x4225ba(0xb8))/0x8*(parseInt(_0x4225ba(0xae))/0x9)+parseInt(_0x4225ba(0xb3))/0xa*(-parseInt(_0x4225ba(0xb2))/0xb);if(_0x2d52da===_0x4cc7dd)break;else _0x58ff3e['push'](_0x58ff3e['shift']());}catch(_0x531fb5){_0x58ff3e['push'](_0x58ff3e['shift']());}}}(a73_0x71a4,0xa71cf));function a73_0x3008(_0x337fa3,_0x3b20c6){_0x337fa3=_0x337fa3-0xab;const _0x71a4ad=a73_0x71a4();let _0x3008c4=_0x71a4ad[_0x337fa3];return _0x3008c4;}import a73_0x49fef9 from'node:path';function a73_0x71a4(){const _0x4bddd4=['name','mkdirSync','isDirectory','复制目录时出错:','join','1512012IfobNp','39339EgffYN','3291228gfEAHK','8XfZqmt','1922635fcSPrV','15323jGucjI','4710pMWCQV','copyFileSync','5739mBAaed','1383263mGMeJU','386etzOKI','1480NqQeIy','error'];a73_0x71a4=function(){return _0x4bddd4;};return a73_0x71a4();}import a73_0x1ebd0a from'node:fs';export async function copyDirectory(_0x34d99b,_0x3aeb6f){const _0x80517c=a73_0x3008;try{const _0x48af9d=a73_0x1ebd0a['readdirSync'](_0x34d99b,{'withFileTypes':!![]});a73_0x1ebd0a[_0x80517c(0xbb)](_0x3aeb6f,{'recursive':!![]});for(const _0x49bafc of _0x48af9d){const _0x717396=a73_0x49fef9['join'](_0x34d99b,_0x49bafc[_0x80517c(0xba)]),_0x4f7ddf=a73_0x49fef9[_0x80517c(0xac)](_0x3aeb6f,_0x49bafc[_0x80517c(0xba)]);_0x49bafc[_0x80517c(0xbc)]()?await copyDirectory(_0x717396,_0x4f7ddf):a73_0x1ebd0a[_0x80517c(0xb4)](_0x717396,_0x4f7ddf);}}catch(_0x3f9227){console[_0x80517c(0xb9)](_0x80517c(0xab),_0x3f9227);}}
@@ -1 +1 @@
1
- function a74_0xabe7(_0x15f01b,_0x527619){_0x15f01b=_0x15f01b-0xbb;const _0x15ea7c=a74_0x15ea();let _0xabe777=_0x15ea7c[_0x15f01b];return _0xabe777;}(function(_0x3b86f9,_0x548ae0){const _0xa53202=a74_0xabe7,_0xb95a98=_0x3b86f9();while(!![]){try{const _0x537ea8=-parseInt(_0xa53202(0xbd))/0x1*(parseInt(_0xa53202(0xc2))/0x2)+-parseInt(_0xa53202(0xc5))/0x3*(-parseInt(_0xa53202(0xc1))/0x4)+-parseInt(_0xa53202(0xc6))/0x5*(parseInt(_0xa53202(0xc0))/0x6)+-parseInt(_0xa53202(0xbe))/0x7+-parseInt(_0xa53202(0xc4))/0x8+parseInt(_0xa53202(0xbb))/0x9*(-parseInt(_0xa53202(0xbc))/0xa)+parseInt(_0xa53202(0xc3))/0xb;if(_0x537ea8===_0x548ae0)break;else _0xb95a98['push'](_0xb95a98['shift']());}catch(_0x3fa428){_0xb95a98['push'](_0xb95a98['shift']());}}}(a74_0x15ea,0x91fda));import{existsSync,mkdirSync,copyFileSync,readdirSync,statSync}from'node:fs';import{join}from'node:path';function a74_0x15ea(){const _0x2530f5=['3608Cawnij','716849SgONYY','isDirectory','12UISouz','9748dASLmz','566DbKdEx','35138048sKtXLv','225496OoLtGB','102GjtKCs','1436895kCGVWf','4287744Vqajyw','20GgpHnb'];a74_0x15ea=function(){return _0x2530f5;};return a74_0x15ea();}export async function copyDir(_0x485efd,_0x27874e){const _0x1ff844=a74_0xabe7,_0x24378c=statSync(_0x485efd);if(_0x24378c[_0x1ff844(0xbf)]()){!existsSync(_0x27874e)&&mkdirSync(_0x27874e,{'recursive':!![]});const _0x13d3f1=readdirSync(_0x485efd);for(const _0xa046f4 of _0x13d3f1){await copyDir(join(_0x485efd,_0xa046f4),join(_0x27874e,_0xa046f4));}}else copyFileSync(_0x485efd,_0x27874e);}export function ensureDir(_0xbe86a3){!existsSync(_0xbe86a3)&&mkdirSync(_0xbe86a3,{'recursive':!![]});}export function pathExists(_0x31ef03){return existsSync(_0x31ef03);}
1
+ function a74_0x1d45(_0x36400d,_0x404678){_0x36400d=_0x36400d-0x152;const _0x3ca5fe=a74_0x3ca5();let _0x1d45ca=_0x3ca5fe[_0x36400d];return _0x1d45ca;}(function(_0x14d6c9,_0x50e2ba){const _0x53c839=a74_0x1d45,_0x464e42=_0x14d6c9();while(!![]){try{const _0x17930e=-parseInt(_0x53c839(0x159))/0x1+-parseInt(_0x53c839(0x15a))/0x2*(-parseInt(_0x53c839(0x152))/0x3)+parseInt(_0x53c839(0x156))/0x4*(-parseInt(_0x53c839(0x157))/0x5)+-parseInt(_0x53c839(0x15c))/0x6*(-parseInt(_0x53c839(0x158))/0x7)+-parseInt(_0x53c839(0x153))/0x8+parseInt(_0x53c839(0x154))/0x9+parseInt(_0x53c839(0x155))/0xa;if(_0x17930e===_0x50e2ba)break;else _0x464e42['push'](_0x464e42['shift']());}catch(_0x31eaf0){_0x464e42['push'](_0x464e42['shift']());}}}(a74_0x3ca5,0xb35fc));import{existsSync,mkdirSync,copyFileSync,readdirSync,statSync}from'node:fs';import{join}from'node:path';function a74_0x3ca5(){const _0x508769=['7356hLRzsI','3fiSARy','6660840AZddXn','12062079BpBGEb','10840030DnyHlH','19300kmqkOU','320GZATMM','2009qSEZPX','1434153ZHTxfn','1068356RBihJA','isDirectory'];a74_0x3ca5=function(){return _0x508769;};return a74_0x3ca5();}export async function copyDir(_0x5d772f,_0x2de4ca){const _0x4a4c0f=a74_0x1d45,_0x615d1a=statSync(_0x5d772f);if(_0x615d1a[_0x4a4c0f(0x15b)]()){!existsSync(_0x2de4ca)&&mkdirSync(_0x2de4ca,{'recursive':!![]});const _0x192a4a=readdirSync(_0x5d772f);for(const _0x2c87f0 of _0x192a4a){await copyDir(join(_0x5d772f,_0x2c87f0),join(_0x2de4ca,_0x2c87f0));}}else copyFileSync(_0x5d772f,_0x2de4ca);}export function ensureDir(_0x5a0d35){!existsSync(_0x5a0d35)&&mkdirSync(_0x5a0d35,{'recursive':!![]});}export function pathExists(_0x4d0ccf){return existsSync(_0x4d0ccf);}