@lovrabet/cli 1.2.5-beta.4 → 1.2.5-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/add-page/input-page-router.js +1 -1
- package/lib/add-page/main.js +1 -1
- package/lib/add-page/select-page-template.js +1 -1
- package/lib/ai-setup/AISetupUI.js +1 -1
- package/lib/ai-setup/config.js +1 -1
- package/lib/api/api-doc-ui.js +1 -1
- package/lib/api/api-doc.js +1 -1
- package/lib/api/api-pull-ui.js +1 -1
- package/lib/api/fetch-model-list.js +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/api/main.js +1 -1
- package/lib/api/pull-silent.js +1 -1
- package/lib/app-menu/app-menu-sync-ui.js +1 -1
- package/lib/app-menu/create-menu.js +1 -1
- package/lib/app-menu/get-local-pages.js +1 -1
- package/lib/app-menu/get-online-menu-list.js +1 -1
- package/lib/app-menu/use-get-online-menu-list.js +1 -1
- package/lib/app-menu/utils.js +1 -1
- package/lib/app-menu/valid-url.js +1 -1
- package/lib/app-menu-update-cdn/current-content.js +1 -1
- package/lib/app-menu-update-cdn/input-cdn-asset.js +1 -1
- package/lib/app-menu-update-cdn/main.js +1 -1
- package/lib/app-menu-update-cdn/update-menu-cdn-url.js +1 -1
- package/lib/auth/auth-server-ui.js +1 -1
- package/lib/auth/auth-server.js +1 -1
- package/lib/auth/constant.js +1 -1
- package/lib/auth/get-cookie.js +1 -1
- package/lib/auth/is-session-valid.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/cmd/build-watch.js +1 -1
- package/lib/cmd/build.js +1 -1
- package/lib/cmd/logs.js +1 -1
- package/lib/cmd/preview.js +1 -1
- package/lib/cmd/start.js +1 -1
- package/lib/config/config-help.js +1 -1
- package/lib/config/main.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/create-app/enhanced-guided-create.js +1 -1
- package/lib/create-app/format-elapsed.js +1 -1
- package/lib/create-app/main.js +1 -1
- package/lib/create-app/task-finished.js +1 -1
- package/lib/create-app/task-loading.js +1 -1
- package/lib/create-app/task-running.js +1 -1
- package/lib/create-app/task-time.js +1 -1
- package/lib/create-app/use-copy-project-template.js +1 -1
- package/lib/create-app/use-format-code.js +1 -1
- package/lib/create-app/use-install-dependencies.js +1 -1
- package/lib/help.js +1 -1
- package/lib/init/main.js +1 -1
- package/lib/mcp/McpInstallUI.js +1 -1
- package/lib/mcp/claude.js +1 -1
- package/lib/mcp/cursor.js +1 -1
- package/lib/mcp/main.js +1 -1
- package/lib/skills/SkillInstallUI.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/copy-directory.js +1 -1
- package/lib/utils/http-client.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/router-updater.js +1 -1
- package/lib/utils/sleep.js +1 -1
- package/lib/utils/template-replacer.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x39136a,_0x286696){const _0x4a5da3=a0_0x5b4f,_0x101331=_0x39136a();while(!![]){try{const _0x150849=parseInt(_0x4a5da3(0x1e6))/0x1*(-parseInt(_0x4a5da3(0x1d9))/0x2)+parseInt(_0x4a5da3(0x1ea))/0x3*(parseInt(_0x4a5da3(0x1f0))/0x4)+-parseInt(_0x4a5da3(0x1f2))/0x5*(parseInt(_0x4a5da3(0x1e1))/0x6)+-parseInt(_0x4a5da3(0x1e9))/0x7+-parseInt(_0x4a5da3(0x1ef))/0x8+parseInt(_0x4a5da3(0x1e2))/0x9+parseInt(_0x4a5da3(0x1f3))/0xa;if(_0x150849===_0x286696)break;else _0x101331['push'](_0x101331['shift']());}catch(_0x2442b1){_0x101331['push'](_0x101331['shift']());}}}(a0_0x6ad5,0x4b3a4));function a0_0x6ad5(){const _0x27b100=['\x20Step2:\x20','页面路径不合法','28542ICEdLE','4114116DyUIth','gray','red','trim','479213bAWIpR','页面路径长度不能超过\x20100\x20个字符','路径不能包含连续的\x20/','2262239kdqvPl','99741lRBkYS','\x20直接回车确认,或输入自定义路由地址','return','endsWith','green','2980960GOsgiC','56ETwYoc','split','190EuDSYL','7413260uDHMfR','页面路由地址:\x20','my-page','路径中的每个段只能以字母或数字开头,且只包含字母、数字、-\x20和\x20_','2EgOZAM','existsSync','\x20已存在,请使用其他路径','路径不能以\x20/\x20开头或结尾','includes','length'];a0_0x6ad5=function(){return _0x27b100;};return a0_0x6ad5();}import{jsx as a0_0x2993d1,jsxs as a0_0x323283}from'react/jsx-runtime';function a0_0x5b4f(_0x2c7b46,_0x51fe7d){_0x2c7b46=_0x2c7b46-0x1d9;const _0x6ad547=a0_0x6ad5();let _0x5b4f38=_0x6ad547[_0x2c7b46];return _0x5b4f38;}import{useState}from'react';import{Text,Box,useInput}from'ink';import a0_0x38900f from'node:fs';export function InputProjectCode(_0x4059b8){const _0x343a53=a0_0x5b4f,{onSubmit:_0x3fa26d,pagePath:_0x3dc3cb}=_0x4059b8,[_0x305bfb,_0x3a623c]=useState(''),[_0x2e2711,_0x2ac048]=useState(''),_0x1b1e73=_0x343a53(0x1f5);function _0x220e79(_0x1ef833){const _0x28dc58=_0x343a53;if(_0x1ef833[_0x28dc58(0x1de)]>0x64)return{'valid':![],'message':_0x28dc58(0x1e7)};if(_0x1ef833['startsWith']('/')||_0x1ef833[_0x28dc58(0x1ed)]('/'))return{'valid':![],'message':_0x28dc58(0x1dc)};if(_0x1ef833[_0x28dc58(0x1dd)]('//'))return{'valid':![],'message':_0x28dc58(0x1e8)};const _0x3f8e5b=_0x1ef833[_0x28dc58(0x1f1)]('/');for(const _0xd72977 of _0x3f8e5b){if(!_0xd72977)continue;const _0x390025=/^[A-Za-z0-9][A-Za-z0-9_-]*$/;if(!_0x390025['test'](_0xd72977))return{'valid':![],'message':_0x28dc58(0x1f6)};}return{'valid':!![]};}return useInput((_0x56fe80,_0x144ee2)=>{const _0x5d34b3=_0x343a53;if(_0x144ee2[_0x5d34b3(0x1ec)]){const _0x20ef39=_0x305bfb[_0x5d34b3(0x1e5)]()||_0x1b1e73;if(_0x2e2711)return;const _0x51b7f3=_0x3dc3cb+'/'+_0x20ef39;if(a0_0x38900f[_0x5d34b3(0x1da)](_0x51b7f3)){_0x2ac048('页面路径\x20'+_0x20ef39+_0x5d34b3(0x1db));return;}_0x3fa26d(_0x20ef39),_0x3a623c(''),_0x2ac048('');}else _0x144ee2['backspace']||_0x144ee2['delete']?_0x3a623c(_0x7662d=>{const _0x104e5c=_0x5d34b3,_0x3b7137=_0x7662d['slice'](0x0,-0x1),{valid:_0x28c7ba,message:_0x13a8bb}=_0x220e79(_0x3b7137);return _0x2ac048(_0x28c7ba?'':_0x13a8bb||_0x104e5c(0x1e0)),_0x3b7137;}):_0x3a623c(_0x125536=>{const _0x56e59f=_0x5d34b3,_0x160a54=_0x125536+_0x56fe80,{valid:_0x1297e1,message:_0x11f067}=_0x220e79(_0x160a54);return _0x2ac048(_0x1297e1?'':_0x11f067||_0x56e59f(0x1e0)),_0x160a54;});}),a0_0x323283(Box,{'flexDirection':'column','children':[a0_0x323283(Box,{'children':[a0_0x2993d1(Text,{'color':'gray','children':_0x343a53(0x1df)}),a0_0x2993d1(Text,{'children':_0x343a53(0x1f4)}),_0x305bfb?a0_0x2993d1(Text,{'color':_0x343a53(0x1ee),'children':_0x305bfb}):a0_0x2993d1(Text,{'color':_0x343a53(0x1e3),'children':_0x1b1e73}),_0x2e2711&&a0_0x323283(Text,{'color':_0x343a53(0x1e4),'children':['\x20←\x20',_0x2e2711]})]}),!_0x2e2711&&!_0x305bfb&&a0_0x2993d1(Box,{'children':a0_0x2993d1(Text,{'color':_0x343a53(0x1e3),'children':_0x343a53(0x1eb)})})]});}
|
package/lib/add-page/main.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a1_0x3884e4=a1_0x1102;(function(_0x44f6ba,_0x4d2297){const _0x405d18=a1_0x1102,_0x3bd481=_0x44f6ba();while(!![]){try{const _0x4eece6=-parseInt(_0x405d18(0xb2))/0x1*(-parseInt(_0x405d18(0xc6))/0x2)+parseInt(_0x405d18(0xc2))/0x3+-parseInt(_0x405d18(0xaa))/0x4*(-parseInt(_0x405d18(0xc7))/0x5)+-parseInt(_0x405d18(0xbd))/0x6+parseInt(_0x405d18(0xc1))/0x7+parseInt(_0x405d18(0xb6))/0x8+parseInt(_0x405d18(0xae))/0x9*(-parseInt(_0x405d18(0xb9))/0xa);if(_0x4eece6===_0x4d2297)break;else _0x3bd481['push'](_0x3bd481['shift']());}catch(_0x5719a2){_0x3bd481['push'](_0x3bd481['shift']());}}}(a1_0x3890,0xe4fe9));import{jsx as a1_0x43cd81,jsxs as a1_0x5a1ad0,Fragment as a1_0x368778}from'react/jsx-runtime';import{fileURLToPath}from'node:url';import a1_0x42f560 from'node:path';import{useEffect,useState}from'react';import{Box,Text,useApp}from'ink';import{SelectPageTemplate}from'./select-page-template.js';function a1_0x3890(){const _0xf5bab6=['pages','message','gray','476293yeLMBx','error','now','页面添加失败:\x20','1310344GvaQZq','then','join','20VLZsbV','\x20*\x20路由地址:\x20','catch','src','5755614aaxVuJ','\x20Step2:\x20','\x20*\x20页面文件已创建,可直接通过路由访问','cwd','11646509KGUZkr','4900248VYxake','页面添加成功:\x20','正在创建页面,请稍候…','success','2dWaYis','696785KlecHM','cyan','add-page','green','setLogPath','\x20Step1:\x20','已选择页面模板\x20','44TIyPyP','resolve','column','../../templates/pages','16078437KnjpQO'];a1_0x3890=function(){return _0xf5bab6;};return a1_0x3890();}import{InputProjectCode}from'./input-page-router.js';import{logger}from'../utils/logger.js';function a1_0x1102(_0x456e84,_0x392ac0){_0x456e84=_0x456e84-0xaa;const _0x3890f7=a1_0x3890();let _0x1102e5=_0x3890f7[_0x456e84];return _0x1102e5;}import{TemplateReplacer}from'../utils/template-replacer.js';const __dirname=a1_0x42f560['dirname'](fileURLToPath(import.meta.url)),pageTemplateDir=a1_0x42f560['resolve'](__dirname,a1_0x3884e4(0xad)),projectDir=process[a1_0x3884e4(0xc0)]();export const AddPage=()=>{const _0x2852fb=a1_0x3884e4,{exit:_0x359d8c}=useApp(),[_0x43c9b9,_0x4f48e2]=useState(''),[_0x49e034,_0x40d53a]=useState(''),[_0x5a3ef5,_0x449793]=useState(![]),[_0x20bf5c,_0x2a0a8d]=useState(![]),_0x3f0428=a1_0x42f560[_0x2852fb(0xb8)](projectDir,_0x2852fb(0xbc),_0x2852fb(0xaf)),_0x4c82b6=a1_0x42f560[_0x2852fb(0xb8)](_0x3f0428,_0x49e034),_0x51055d=a1_0x42f560[_0x2852fb(0xb8)](_0x2852fb(0xbc),_0x2852fb(0xaf),_0x49e034);useEffect(()=>{const _0x17293e=_0x2852fb,_0xaa4d86=a1_0x42f560[_0x17293e(0xab)](pageTemplateDir,_0x43c9b9);if(_0x43c9b9&&_0x49e034){_0x449793(!![]),logger[_0x17293e(0xcb)](process['cwd']());const _0x200c56=Date[_0x17293e(0xb4)]();logger['info']('add-page','开始添加页面:\x20'+_0x49e034,{'template':_0x43c9b9,'targetPath':_0x51055d}),TemplateReplacer['processTemplate'](_0xaa4d86,a1_0x42f560[_0x17293e(0xb8)](_0x3f0428,_0x49e034),_0x49e034,_0x43c9b9)[_0x17293e(0xb7)](()=>{const _0x5c7b8d=_0x17293e,_0x2645b9=Date[_0x5c7b8d(0xb4)]()-_0x200c56;logger[_0x5c7b8d(0xc5)](_0x5c7b8d(0xc9),_0x5c7b8d(0xc3)+_0x49e034,_0x2645b9,{'template':_0x43c9b9,'targetPath':_0x51055d,'routePath':_0x49e034}),_0x2a0a8d(!![]);})[_0x17293e(0xbb)](_0x1bfd4e=>{const _0xf801e1=_0x17293e,_0x4fe16a=Date[_0xf801e1(0xb4)]()-_0x200c56;logger[_0xf801e1(0xb3)]('add-page',_0xf801e1(0xb5)+_0x49e034,{'template':_0x43c9b9,'targetPath':_0x51055d,'error':_0x1bfd4e instanceof Error?_0x1bfd4e[_0xf801e1(0xb0)]:String(_0x1bfd4e),'duration':_0x4fe16a});})['finally'](()=>{_0x449793(![]);});}},[_0x43c9b9,_0x49e034]),useEffect(()=>{_0x20bf5c&&setTimeout(()=>{_0x359d8c();});},[_0x20bf5c]);if(_0x43c9b9)return a1_0x5a1ad0(Box,{'flexDirection':_0x2852fb(0xac),'paddingY':0x1,'children':[a1_0x5a1ad0(Box,{'children':[a1_0x43cd81(Text,{'color':_0x2852fb(0xb1),'children':_0x2852fb(0xcc)}),a1_0x43cd81(Text,{'children':_0x2852fb(0xcd)}),a1_0x43cd81(Text,{'color':'green','children':_0x43c9b9})]}),_0x49e034?a1_0x5a1ad0(Box,{'children':[a1_0x43cd81(Text,{'color':_0x2852fb(0xb1),'children':_0x2852fb(0xbe)}),a1_0x43cd81(Text,{'children':'已输入的页面路由\x20'}),a1_0x43cd81(Text,{'color':_0x2852fb(0xca),'children':_0x49e034})]}):a1_0x43cd81(InputProjectCode,{'pagePath':_0x4c82b6,'onSubmit':_0x40d53a}),_0x49e034&&_0x5a3ef5?a1_0x5a1ad0(Box,{'marginTop':0x1,'children':[a1_0x43cd81(Box,{'width':'4'}),a1_0x43cd81(Text,{'children':_0x2852fb(0xc4)})]}):null,_0x20bf5c?a1_0x5a1ad0(a1_0x368778,{'children':[a1_0x43cd81(Box,{'marginTop':0x1,'children':a1_0x43cd81(Text,{'color':'gray','children':'\x20*\x20页面创建成功!'})}),a1_0x5a1ad0(Box,{'children':[a1_0x43cd81(Text,{'color':_0x2852fb(0xb1),'children':'\x20*\x20页面路径:\x20'}),a1_0x43cd81(Text,{'color':_0x2852fb(0xca),'children':_0x51055d})]}),a1_0x5a1ad0(Box,{'children':[a1_0x43cd81(Text,{'color':_0x2852fb(0xb1),'children':_0x2852fb(0xba)}),a1_0x5a1ad0(Text,{'color':_0x2852fb(0xca),'children':['/',_0x49e034]})]}),a1_0x43cd81(Box,{'marginTop':0x1,'children':a1_0x43cd81(Text,{'color':_0x2852fb(0xc8),'children':_0x2852fb(0xbf)})})]}):null]});return a1_0x43cd81(SelectPageTemplate,{'onSelect':_0x4f48e2});};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x425586,_0x1ad340){const _0x863bdd=a2_0x8c3c,_0xd838b6=_0x425586();while(!![]){try{const _0x1f1bfa=-parseInt(_0x863bdd(0x1d4))/0x1+parseInt(_0x863bdd(0x1d7))/0x2+parseInt(_0x863bdd(0x1d2))/0x3+parseInt(_0x863bdd(0x1ca))/0x4+parseInt(_0x863bdd(0x1cc))/0x5*(-parseInt(_0x863bdd(0x1ce))/0x6)+parseInt(_0x863bdd(0x1e5))/0x7*(parseInt(_0x863bdd(0x1e2))/0x8)+parseInt(_0x863bdd(0x1cf))/0x9;if(_0x1f1bfa===_0x1ad340)break;else _0xd838b6['push'](_0xd838b6['shift']());}catch(_0x2ba1d5){_0xd838b6['push'](_0xd838b6['shift']());}}}(a2_0x2466,0x4392b));import{jsx as a2_0x85656d,jsxs as a2_0x15255b}from'react/jsx-runtime';import{useState,useEffect}from'react';import{Text,Box,useInput}from'ink';import{readdir}from'node:fs/promises';import a2_0x70f610 from'node:path';function a2_0x8c3c(_0x11510c,_0x33faae){_0x11510c=_0x11510c-0x1c9;const _0x246669=a2_0x2466();let _0x8c3c5=_0x246669[_0x11510c];return _0x8c3c5;}import{fileURLToPath}from'node:url';async function getTemplateList(){const _0x2a1568=a2_0x8c3c;try{const _0x10bddb=fileURLToPath(import.meta.url),_0x5200ea=a2_0x70f610[_0x2a1568(0x1e4)](a2_0x70f610[_0x2a1568(0x1d1)](_0x10bddb),_0x2a1568(0x1cd)),_0x3a8ed3=a2_0x70f610[_0x2a1568(0x1db)](_0x5200ea,_0x2a1568(0x1da)),_0x5c9dd4=await readdir(_0x3a8ed3,{'withFileTypes':!![]}),_0x1c46bc=_0x5c9dd4[_0x2a1568(0x1e6)](_0x12a6e6=>_0x12a6e6[_0x2a1568(0x1c9)]())[_0x2a1568(0x1df)](_0x48cf9e=>({'label':_0x48cf9e[_0x2a1568(0x1d9)]}))['sort']((_0x592b1f,_0x13c047)=>_0x592b1f[_0x2a1568(0x1d8)]['localeCompare'](_0x13c047[_0x2a1568(0x1d8)]));return _0x1c46bc;}catch(_0x599af0){return console['error'](_0x2a1568(0x1d6),_0x599af0),[{'label':_0x2a1568(0x1de)},{'label':_0x2a1568(0x1d5)}];}}function a2_0x2466(){const _0x4c43e3=['return','blank','map','请选择您要创建的页面模板','gray','8YBxeoX','正在加载页面模板...','resolve','3150777qDVkYw','filter','isDirectory','1023844hDPVFV','\x20\x20\x20\x20\x20\x20\x20\x20','1300140ctxgJH','../..','6UFzdBT','1327716OfPAkf','length','dirname','497412AEtmHY','column','530128mbUlEJ','sdk-fetch','获取模板列表失败:','95070WnSqdQ','label','name','templates/pages','join','\x20Step1:\x20'];a2_0x2466=function(){return _0x4c43e3;};return a2_0x2466();}export function SelectPageTemplate(_0x4a45b4){const _0x2e4fdb=a2_0x8c3c,[_0x5798d2,_0x359f39]=useState(0x0),[_0x12db1a,_0x1a80d8]=useState([]),[_0x367dca,_0x4a1f2d]=useState(!![]);useEffect(()=>{async function _0x19d822(){const _0x18052a=await getTemplateList();_0x1a80d8(_0x18052a),_0x4a1f2d(![]);}_0x19d822();},[]),useInput((_0x1e2f78,_0x2e4fef)=>{const _0xf12174=a2_0x8c3c;if(_0x367dca)return;if(_0x2e4fef[_0xf12174(0x1dd)]){const _0x37eca1=_0x12db1a[_0x5798d2];_0x37eca1&&_0x4a45b4['onSelect'](_0x37eca1['label']);}_0x2e4fef['upArrow']&&_0x359f39(_0x3e1f9a=>_0x3e1f9a===0x0?_0x12db1a[_0xf12174(0x1d0)]-0x1:_0x3e1f9a-0x1),_0x2e4fef['downArrow']&&_0x359f39(_0x1c2e0a=>_0x1c2e0a===_0x12db1a[_0xf12174(0x1d0)]-0x1?0x0:_0x1c2e0a+0x1);});if(_0x367dca)return a2_0x85656d(Box,{'flexDirection':_0x2e4fdb(0x1d3),'paddingY':0x1,'children':a2_0x15255b(Box,{'children':[a2_0x85656d(Text,{'color':_0x2e4fdb(0x1e1),'children':_0x2e4fdb(0x1dc)}),a2_0x85656d(Text,{'children':_0x2e4fdb(0x1e3)})]})});return a2_0x15255b(Box,{'flexDirection':_0x2e4fdb(0x1d3),'paddingY':0x1,'children':[a2_0x15255b(Box,{'children':[a2_0x85656d(Text,{'color':'gray','children':_0x2e4fdb(0x1dc)}),a2_0x85656d(Text,{'children':_0x2e4fdb(0x1e0)})]}),_0x12db1a[_0x2e4fdb(0x1df)]((_0x412143,_0x4a9827)=>{const _0x3cc1d1=_0x2e4fdb,_0x294828=_0x4a9827===_0x5798d2,_0x31293c=_0x294828?'\x20\x20\x20\x20\x20\x20>\x20'+_0x412143['label']:_0x3cc1d1(0x1cb)+_0x412143[_0x3cc1d1(0x1d8)];return a2_0x85656d(Box,{'children':a2_0x85656d(Text,{'color':_0x294828?'green':undefined,'children':_0x31293c})},_0x31293c);})]});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a3_0x178e51=a3_0x2d77;function a3_0x18d5(){const _0x2fa8a4=['success','2797568XSRdut','status','[Y]\x20是,配置\x20AI\x20助手','Claude\x20Code','cursor','8889528lhkxMr','•\x20Skill:\x20安装研发最佳实践、Backend\x20Function\x20规范','75729870vLzdjo','[✓]','⭐\x20配置\x20AI\x20助手\x20(研发效率提升\x2010x)','has','error','length','selecting','codex','claude','name','[N]\x20跳过,稍后手动配置','return','Cursor','codebuddy','projectRoot','size','green','installing','delete','•\x20MCP:\x20让\x20AI\x20直接访问\x20Lovrabet\x20数据集','qoder','skill-','Enter\x20默认:\x20是','add','正在配置\x20AI\x20助手...','*\x20选择要配置的\x20IDE:','dimColor','5CgdQEi','ide','gray','473861jXOUcu','column','blue','3004816UZkKHQ','white','技能包\x20(研发规范指南)','mcp-','map','7SkOTWo','done','[\x20]','trae','1931169murkvD','agent','15094386eeojku','confirming','yellow','antigravity','push','↑/↓:\x20移动\x20空格:\x20切换\x20a:\x20全选\x20q:\x20退出\x20Enter:\x20确认','message','8KQMyUD','MCP\x20服务器\x20(AI\x20访问数据集)'];a3_0x18d5=function(){return _0x2fa8a4;};return a3_0x18d5();}(function(_0x1afdb9,_0xb00033){const _0xedebfb=a3_0x2d77,_0xe2738b=_0x1afdb9();while(!![]){try{const _0xe913a6=-parseInt(_0xedebfb(0x203))/0x1+-parseInt(_0xedebfb(0x21b))/0x2+parseInt(_0xedebfb(0x20f))/0x3*(-parseInt(_0xedebfb(0x218))/0x4)+-parseInt(_0xedebfb(0x200))/0x5*(parseInt(_0xedebfb(0x220))/0x6)+parseInt(_0xedebfb(0x20b))/0x7*(-parseInt(_0xedebfb(0x206))/0x8)+-parseInt(_0xedebfb(0x211))/0x9+parseInt(_0xedebfb(0x1e5))/0xa;if(_0xe913a6===_0xb00033)break;else _0xe2738b['push'](_0xe2738b['shift']());}catch(_0x5d9a93){_0xe2738b['push'](_0xe2738b['shift']());}}}(a3_0x18d5,0xd67d8));import{jsx as a3_0x5095f8,jsxs as a3_0x2113de}from'react/jsx-runtime';import{useState,useEffect}from'react';import{Box,Text,useInput,useApp}from'ink';import{configureMcp}from'./config.js';import{installSkill,copySharedSkills,createSkillManifest,SKILL_IDE_CONFIGS}from'./config.js';const MCP_IDE_LIST=[a3_0x178e51(0x21f),a3_0x178e51(0x1ed)],SKILL_IDE_LIST=[a3_0x178e51(0x214),'claude',a3_0x178e51(0x1f2),a3_0x178e51(0x1ec),'cursor','opencode',a3_0x178e51(0x1f9),a3_0x178e51(0x20e),'windsurf',a3_0x178e51(0x210)];export function AISetupUI({config:_0x377759,onComplete:_0x2ac395}){const _0x605687=a3_0x178e51,{exit:_0x521d56}=useApp(),[_0x2f3f3c,_0xdd36b3]=useState(_0x605687(0x212)),[_0x57039f,_0x2ffc49]=useState(0x0),[_0x573c4d,_0x3cf8c1]=useState(new Set([0x0,0x1])),[_0xb2e09b,_0x5d9a5d]=useState(new Set(SKILL_IDE_LIST[_0x605687(0x20a)]((_0x2e0f89,_0x12835a)=>_0x12835a))),[_0x2d19c9,_0x30a67e]=useState('');useEffect(()=>{!_0x377759['appcode']&&_0x2ac395({'mcpResults':[],'skillResults':[]});},[_0x377759['appcode'],_0x2ac395]),useInput((_0x7a7a24,_0x20b43f)=>{const _0xf5445b=_0x605687;if(_0x2f3f3c===_0xf5445b(0x212)){if(_0x7a7a24==='y'||_0x7a7a24==='Y'||_0x20b43f[_0xf5445b(0x1f0)]){_0x557ba8();return;}if(_0x7a7a24==='n'||_0x7a7a24==='N'){_0x2ac395({'mcpResults':[],'skillResults':[]});return;}if(_0x20b43f[_0xf5445b(0x1f0)]){_0x557ba8();return;}}if(_0x2f3f3c===_0xf5445b(0x1eb)){if(_0x20b43f['upArrow']){_0x2ffc49(_0xb062f9=>_0xb062f9>0x0?_0xb062f9-0x1:SKILL_IDE_LIST['length']-0x1);return;}if(_0x20b43f['downArrow']){_0x2ffc49(_0x12c738=>_0x12c738<SKILL_IDE_LIST[_0xf5445b(0x1ea)]-0x1?_0x12c738+0x1:0x0);return;}if(_0x7a7a24==='\x20'){const _0x466836=_0x57039f<MCP_IDE_LIST[_0xf5445b(0x1ea)];if(_0x466836){const _0x239a66=new Set(_0x573c4d);_0x239a66[_0xf5445b(0x1e8)](_0x57039f)?_0x239a66[_0xf5445b(0x1f7)](_0x57039f):_0x239a66[_0xf5445b(0x1fc)](_0x57039f),_0x3cf8c1(_0x239a66);}else{const _0xd4ff52=_0x57039f-MCP_IDE_LIST[_0xf5445b(0x1ea)],_0x5250cc=new Set(_0xb2e09b);_0x5250cc[_0xf5445b(0x1e8)](_0xd4ff52)?_0x5250cc[_0xf5445b(0x1f7)](_0xd4ff52):_0x5250cc[_0xf5445b(0x1fc)](_0xd4ff52),_0x5d9a5d(_0x5250cc);}return;}if(_0x7a7a24==='a'||_0x7a7a24==='A'){_0x3cf8c1(new Set(MCP_IDE_LIST[_0xf5445b(0x20a)]((_0x271e71,_0x3df06e)=>_0x3df06e))),_0x5d9a5d(new Set(SKILL_IDE_LIST['map']((_0x3331c9,_0x1ee4e3)=>_0x1ee4e3)));return;}if(_0x7a7a24==='q'||_0x7a7a24==='Q'){_0x521d56();return;}if(_0x20b43f[_0xf5445b(0x1f0)]){if(_0x573c4d[_0xf5445b(0x1f4)]===0x0&&_0xb2e09b[_0xf5445b(0x1f4)]===0x0){_0x30a67e('请至少选择一个配置项');return;}_0x557ba8();return;}}if(_0x2f3f3c===_0xf5445b(0x20c)){_0x521d56();return;}});async function _0x557ba8(){const _0xa67af4=_0x605687;_0xdd36b3(_0xa67af4(0x1f6));const _0x5b2157=[],_0x283ab0=[];for(const _0x556c1b of _0x573c4d){const _0x322f7d=MCP_IDE_LIST[_0x556c1b];if(!_0x322f7d)continue;try{const _0x33faf6=await configureMcp(_0x322f7d,_0x377759[_0xa67af4(0x1f3)]);_0x5b2157[_0xa67af4(0x215)](_0x33faf6);}catch(_0x329582){_0x5b2157['push']({'ide':MCP_IDE_CONFIGS[_0x322f7d]?.['name']||_0x322f7d,'status':'error','message':_0x329582 instanceof Error?_0x329582[_0xa67af4(0x217)]:String(_0x329582)});}}await copySharedSkills(_0x377759[_0xa67af4(0x1f3)]);for(const _0x23ef25 of _0xb2e09b){const _0x9552fc=SKILL_IDE_LIST[_0x23ef25];if(!_0x9552fc)continue;try{const _0x31bea0=await installSkill(_0x9552fc,_0x377759[_0xa67af4(0x1f3)]);_0x283ab0[_0xa67af4(0x215)](_0x31bea0);}catch(_0x34b496){_0x283ab0[_0xa67af4(0x215)]({'ide':SKILL_IDE_CONFIGS[_0x9552fc]?.[_0xa67af4(0x1ee)]||_0x9552fc,'status':_0xa67af4(0x1e9),'message':_0x34b496 instanceof Error?_0x34b496[_0xa67af4(0x217)]:String(_0x34b496)});}}if(_0x283ab0[_0xa67af4(0x1ea)]>0x0){const _0x11b782=_0x283ab0['filter'](_0x3a69d5=>_0x3a69d5[_0xa67af4(0x21c)]===_0xa67af4(0x21a))[_0xa67af4(0x20a)](_0x4ea76e=>_0x4ea76e[_0xa67af4(0x201)]);_0x11b782[_0xa67af4(0x1ea)]>0x0&&createSkillManifest(_0x377759['projectRoot'],_0x11b782);}_0xdd36b3('done'),setTimeout(()=>{_0x2ac395({'mcpResults':_0x5b2157,'skillResults':_0x283ab0});},0xbb8);}if(_0x2f3f3c===_0x605687(0x212))return a3_0x2113de(Box,{'flexDirection':_0x605687(0x204),'marginTop':0x1,'children':[a3_0x5095f8(Box,{'children':a3_0x5095f8(Text,{'color':_0x605687(0x213),'bold':!![],'children':_0x605687(0x1e7)})}),a3_0x5095f8(Box,{'marginTop':0x1,'children':a3_0x5095f8(Text,{'color':_0x605687(0x207),'children':'是否同时配置\x20AI\x20助手?这将:'})}),a3_0x5095f8(Box,{'marginLeft':0x2,'marginTop':0x1,'children':a3_0x5095f8(Text,{'color':_0x605687(0x202),'children':_0x605687(0x1f8)})}),a3_0x5095f8(Box,{'marginLeft':0x2,'children':a3_0x5095f8(Text,{'color':_0x605687(0x202),'children':_0x605687(0x221)})}),a3_0x2113de(Box,{'marginTop':0x1,'flexDirection':'column','children':[a3_0x5095f8(Box,{'children':a3_0x5095f8(Text,{'color':_0x605687(0x1f5),'children':_0x605687(0x21d)})}),a3_0x5095f8(Box,{'children':a3_0x5095f8(Text,{'color':'gray','children':_0x605687(0x1ef)})}),a3_0x5095f8(Box,{'children':a3_0x5095f8(Text,{'color':_0x605687(0x1ff),'children':_0x605687(0x1fb)})})]}),_0x2d19c9&&a3_0x5095f8(Box,{'marginTop':0x1,'children':a3_0x2113de(Text,{'color':'red','children':['✗\x20',_0x2d19c9]})})]});if(_0x2f3f3c===_0x605687(0x1eb))return a3_0x2113de(Box,{'flexDirection':_0x605687(0x204),'marginTop':0x1,'children':[a3_0x5095f8(Box,{'children':a3_0x5095f8(Text,{'color':'cyan','bold':!![],'children':_0x605687(0x1fe)})}),_0x2d19c9&&a3_0x5095f8(Box,{'marginTop':0x1,'children':a3_0x2113de(Text,{'color':'red','children':['✗\x20',_0x2d19c9]})}),a3_0x2113de(Box,{'marginTop':0x1,'flexDirection':_0x605687(0x204),'children':[a3_0x5095f8(Text,{'bold':!![],'color':'yellow','children':_0x605687(0x219)}),MCP_IDE_LIST['map']((_0x1b125a,_0x3bfaf6)=>{const _0x2f9824=_0x605687,_0x108f6b=_0x57039f===_0x3bfaf6,_0x44fe42=_0x573c4d[_0x2f9824(0x1e8)](_0x3bfaf6);return a3_0x5095f8(Box,{'children':a3_0x2113de(Text,{'backgroundColor':_0x108f6b?_0x2f9824(0x205):undefined,'color':_0x108f6b?_0x2f9824(0x207):undefined,'children':[_0x44fe42?_0x2f9824(0x1e6):_0x2f9824(0x20d),'\x20',_0x1b125a==='cursor'?_0x2f9824(0x1f1):_0x2f9824(0x21e)]})},_0x2f9824(0x209)+_0x1b125a);}),a3_0x5095f8(Box,{'marginTop':0x1,'children':a3_0x5095f8(Text,{'bold':!![],'color':_0x605687(0x213),'children':_0x605687(0x208)})}),SKILL_IDE_LIST[_0x605687(0x20a)]((_0x345a7e,_0x4a81f7)=>{const _0x5a708c=_0x605687,_0x26c502=_0x4a81f7+MCP_IDE_LIST[_0x5a708c(0x1ea)],_0x2b4ad4=_0x57039f===_0x26c502,_0x597bbe=_0xb2e09b[_0x5a708c(0x1e8)](_0x26c502);return a3_0x5095f8(Box,{'children':a3_0x2113de(Text,{'backgroundColor':_0x2b4ad4?'blue':undefined,'color':_0x2b4ad4?_0x5a708c(0x207):undefined,'children':[_0x597bbe?_0x5a708c(0x1e6):_0x5a708c(0x20d),'\x20',SKILL_IDE_CONFIGS[_0x345a7e]['name']]})},_0x5a708c(0x1fa)+_0x345a7e);}),a3_0x5095f8(Box,{'marginTop':0x1,'children':a3_0x5095f8(Text,{'color':'gray','children':_0x605687(0x216)})})]})]});if(_0x2f3f3c==='installing')return a3_0x5095f8(Box,{'flexDirection':_0x605687(0x204),'marginTop':0x1,'children':a3_0x5095f8(Box,{'children':a3_0x5095f8(Text,{'children':_0x605687(0x1fd)})})});if(_0x2f3f3c===_0x605687(0x20c))return null;return null;}function a3_0x2d77(_0xb7b54a,_0xc64994){_0xb7b54a=_0xb7b54a-0x1e5;const _0x18d580=a3_0x18d5();let _0x2d77cc=_0x18d580[_0xb7b54a];return _0x2d77cc;}const MCP_IDE_CONFIGS={'cursor':{'name':'Cursor'},'claude':{'name':a3_0x178e51(0x21e)}};
|
package/lib/ai-setup/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a4_0x4303ac=a4_0xc875;(function(_0x31c63a,_0x5462b1){const _0x312de9=a4_0xc875,_0x17a416=_0x31c63a();while(!![]){try{const _0x566595=-parseInt(_0x312de9(0x1a4))/0x1*(-parseInt(_0x312de9(0x1e7))/0x2)+parseInt(_0x312de9(0x1be))/0x3*(parseInt(_0x312de9(0x1ce))/0x4)+-parseInt(_0x312de9(0x1c3))/0x5+parseInt(_0x312de9(0x1c9))/0x6+parseInt(_0x312de9(0x1aa))/0x7*(parseInt(_0x312de9(0x19f))/0x8)+-parseInt(_0x312de9(0x1ad))/0x9*(parseInt(_0x312de9(0x1d5))/0xa)+-parseInt(_0x312de9(0x1ea))/0xb;if(_0x566595===_0x5462b1)break;else _0x17a416['push'](_0x17a416['shift']());}catch(_0x3603b0){_0x17a416['push'](_0x17a416['shift']());}}}(a4_0x4381,0x6317e));import{existsSync,mkdirSync,writeFileSync,readFileSync,copyFileSync}from'node:fs';import{join,resolve,dirname}from'node:path';import{fileURLToPath}from'node:url';import{readConfig}from'../utils/config.js';function a4_0x4381(){const _0xd7f912=['.lovrabet','info','189oZLvuV','\x20\x20\x20\x20\x20\x20\x20\x20\x22LOVRABET_ENV\x22:\x20\x22','.trae','manual','Cursor','.lovrabet/skill/.shared','Qoder\x20IDE','已写入\x20.cursor/mcp.json','parse','配置信息:','\x20个目录','\x0a📋\x20其他\x20IDE\x20MCP\x20配置:\x0a','CodeBuddy','log','\x20\x20\x20\x20\x20\x20\x22env\x22:\x20{','isDirectory','OpenCode\x20IDE','2422713rIGmSw','message','共享技能文件复制成功','通用模板','\x20技能包安装成功','3043160ahGNpK','.qoder','npx','Cursor\x20MCP\x20配置失败','env','共享技能文件复制失败','193032RkqJFi','\x20\x20重启\x20Claude\x20Code\x20后生效\x0a','node:fs','toISOString','其他\x20IDE\x20配置指引已显示','4KWgXce','\x20\x20\x20\x20\x20\x20\x22args\x22:\x20[','Cursor\x20MCP\x20配置成功','\x22:\x20{','复制\x20agents.md\x20文件失败','\x20\x20}','success','19770UybHip','\x20\x20\x20\x20}','agents.md','utf-8','Windsurf\x20IDE','join','\x20\x20\x20\x20\x22','cwd','创建\x20Cursor\x20Rules\x20文件','\x20\x20\x20\x20\x20\x20}','.lovrabet/skill-manifest.json','Windsurf','error','.shared','online','claude\x20mcp\x20add\x20','app','claude','1049366YrMufs','CodeBuddy\x20IDE','Antigravity\x20IDE','9154013cVBRaX','\x20\x20环境:\x20','\x20技能包安装失败','.claude','\x20\x20AppCode:\x20','.cursor','@lovrabet/dataset-mcp-server@latest','Trae','warn','mcp-install','\x20-e\x20LOVRABET_APP_CODE=','\x0a📋\x20请执行以下命令配置\x20Claude\x20Code\x20MCP:\x0a','\x20-e\x20LOVRABET_ENV=','\x20\x20\x20\x20\x20\x20\x20\x20\x22LOVRABET_APP_CODE\x22:\x20\x22','需要先配置\x20appcode','复制\x20Cursor\x20Rules\x20文件失败','.agent','../../templates/rules/lovrabet_rules.mdc.tpl','skill-install','Antigravity','.codebuddy','Cursor\x20IDE','appcode','lovrabet-dataset','name','16HbsmwY','LOVRABET_ENV','.codex','../../templates/skills','mcpServers','1cdVPUg','模板不存在:\x20','.windsurf','创建\x20agents.md\x20文件','Claude\x20Code','请手动执行:\x20','1833272bOCuCe'];a4_0x4381=function(){return _0xd7f912;};return a4_0x4381();}import{logger}from'../utils/logger.js';function a4_0xc875(_0x11eab6,_0x15c10){_0x11eab6=_0x11eab6-0x19c;const _0x4381e5=a4_0x4381();let _0xc875cc=_0x4381e5[_0x11eab6];return _0xc875cc;}const __dirname=dirname(fileURLToPath(import.meta.url)),MCP_SERVER_NAME=a4_0x4303ac(0x19d),MCP_COMMAND=a4_0x4303ac(0x1c5),MCP_ARGS=[a4_0x4303ac(0x1f0)];export function buildEnvConfig(_0x269461,_0x4eb997){const _0x3e7b26=a4_0x4303ac,_0x28d778={'LOVRABET_APP_CODE':String(_0x269461)};return _0x4eb997!=='online'&&(_0x28d778[_0x3e7b26(0x1a0)]=String(_0x4eb997)),_0x28d778;}export async function configureCursorMcp(_0x1f9372){const _0x4e1265=a4_0x4303ac,_0x18450c=_0x1f9372||process[_0x4e1265(0x1dc)](),_0x1bd6b8=readConfig(_0x18450c),_0x1f26d2=_0x1bd6b8['appcode']||_0x1bd6b8[_0x4e1265(0x1e5)],_0x53cd31=_0x1bd6b8[_0x4e1265(0x1c7)]||'online';if(!_0x1f26d2)return{'ide':'Cursor','status':_0x4e1265(0x1e1),'message':_0x4e1265(0x1f8)};const _0x375c6f=buildEnvConfig(_0x1f26d2,_0x53cd31),_0x43174f={'command':MCP_COMMAND,'args':MCP_ARGS,'env':_0x375c6f},_0x3af689=join(_0x18450c,'.cursor','mcp.json'),_0x4b8b4f=join(_0x18450c,_0x4e1265(0x1ef));try{!existsSync(_0x4b8b4f)&&mkdirSync(_0x4b8b4f,{'recursive':!![]});let _0x1b9f59={'mcpServers':{}};if(existsSync(_0x3af689)){const _0x2561dd=readFileSync(_0x3af689,_0x4e1265(0x1d8));_0x1b9f59=JSON[_0x4e1265(0x1b5)](_0x2561dd);}return(!_0x1b9f59[_0x4e1265(0x1a3)]||typeof _0x1b9f59[_0x4e1265(0x1a3)]!=='object')&&(_0x1b9f59[_0x4e1265(0x1a3)]={}),_0x1b9f59[_0x4e1265(0x1a3)][MCP_SERVER_NAME]=_0x43174f,writeFileSync(_0x3af689,JSON['stringify'](_0x1b9f59,null,0x2),_0x4e1265(0x1d8)),logger[_0x4e1265(0x1ac)](_0x4e1265(0x1f3),_0x4e1265(0x1d0),{'appcode':_0x1f26d2,'env':_0x53cd31,'path':_0x3af689}),await copyCursorRules(_0x4b8b4f),{'ide':'Cursor','status':_0x4e1265(0x1d4),'message':_0x4e1265(0x1b4)};}catch(_0x290088){return logger[_0x4e1265(0x1e1)](_0x4e1265(0x1f3),_0x4e1265(0x1c6),{'error':_0x290088 instanceof Error?_0x290088[_0x4e1265(0x1bf)]:String(_0x290088)}),{'ide':_0x4e1265(0x1b1),'status':_0x4e1265(0x1e1),'message':_0x290088 instanceof Error?_0x290088[_0x4e1265(0x1bf)]:String(_0x290088)};}}export async function configureClaudeMcp(_0x1b60ec){const _0xa8f949=a4_0x4303ac,_0x5ec802=_0x1b60ec||process['cwd'](),_0x3394ce=readConfig(_0x5ec802),_0x287154=_0x3394ce[_0xa8f949(0x19c)]||_0x3394ce['app'],_0x385c40=_0x3394ce[_0xa8f949(0x1c7)]||_0xa8f949(0x1e3);if(!_0x287154)return{'ide':_0xa8f949(0x1a8),'status':'error','message':'需要先配置\x20appcode'};let _0x47ec19=_0xa8f949(0x1e4)+MCP_SERVER_NAME+'\x20'+MCP_COMMAND+'\x20'+MCP_ARGS[_0xa8f949(0x1da)]('\x20')+_0xa8f949(0x1f4)+_0x287154;return _0x385c40!==_0xa8f949(0x1e3)&&(_0x47ec19+=_0xa8f949(0x1f6)+_0x385c40),await copyAgentsMd(_0x5ec802),logger['info'](_0xa8f949(0x1f3),'Claude\x20Code\x20MCP\x20命令已生成',{'command':_0x47ec19,'appcode':_0x287154,'env':_0x385c40}),console[_0xa8f949(0x1ba)](_0xa8f949(0x1f5)),console['log']('\x20\x20'+_0x47ec19+'\x0a'),console[_0xa8f949(0x1ba)](_0xa8f949(0x1b6)),console['log'](_0xa8f949(0x1ee)+_0x287154),_0x385c40!==_0xa8f949(0x1e3)&&console[_0xa8f949(0x1ba)](_0xa8f949(0x1eb)+_0x385c40),console['log'](_0xa8f949(0x1ca)),{'ide':_0xa8f949(0x1a8),'status':_0xa8f949(0x1b0),'message':_0xa8f949(0x1a9)+_0x47ec19};}export async function showOtherGuide(_0x5d55cc){const _0x513b2a=a4_0x4303ac,_0x250977=_0x5d55cc||process['cwd'](),_0x22f318=readConfig(_0x250977),_0x23fd32=_0x22f318[_0x513b2a(0x19c)]||_0x22f318[_0x513b2a(0x1e5)],_0x15a353=_0x22f318[_0x513b2a(0x1c7)]||_0x513b2a(0x1e3);if(!_0x23fd32)return{'ide':'其他','status':_0x513b2a(0x1e1),'message':_0x513b2a(0x1f8)};return console[_0x513b2a(0x1ba)](_0x513b2a(0x1b8)),console[_0x513b2a(0x1ba)]('{'),console['log']('\x20\x20\x22mcpServers\x22:\x20{'),console[_0x513b2a(0x1ba)](_0x513b2a(0x1db)+MCP_SERVER_NAME+_0x513b2a(0x1d1)),console[_0x513b2a(0x1ba)]('\x20\x20\x20\x20\x20\x20\x22command\x22:\x20\x22'+MCP_COMMAND+'\x22,'),console[_0x513b2a(0x1ba)](_0x513b2a(0x1cf)+MCP_ARGS['map'](_0x3d2c25=>'\x22'+_0x3d2c25+'\x22')[_0x513b2a(0x1da)](',\x20')+'],'),console[_0x513b2a(0x1ba)](_0x513b2a(0x1bb)),console[_0x513b2a(0x1ba)](_0x513b2a(0x1f7)+_0x23fd32+'\x22,'),_0x15a353!==_0x513b2a(0x1e3)&&console['log'](_0x513b2a(0x1ae)+_0x15a353+'\x22,'),console['log'](_0x513b2a(0x1de)),console['log'](_0x513b2a(0x1d6)),console['log'](_0x513b2a(0x1d3)),console[_0x513b2a(0x1ba)]('}\x0a'),logger[_0x513b2a(0x1ac)]('mcp-install',_0x513b2a(0x1cd),{'appcode':_0x23fd32,'env':_0x15a353}),{'ide':'其他','status':'manual','message':'配置指引已显示'};}export async function configureMcp(_0x243d60,_0x57ad06){const _0x150bd9=a4_0x4303ac;switch(_0x243d60){case'cursor':return await configureCursorMcp(_0x57ad06);case _0x150bd9(0x1e6):return await configureClaudeMcp(_0x57ad06);default:throw new Error('不支持的\x20MCP\x20IDE:\x20'+_0x243d60);}}async function copyCursorRules(_0x175698){const _0x4d605c=a4_0x4303ac,_0x1f4a47=join(_0x175698,'rules'),_0x195532=join(_0x1f4a47,'lovrabet_rules.mdc');if(existsSync(_0x195532))return;try{!existsSync(_0x1f4a47)&&mkdirSync(_0x1f4a47,{'recursive':!![]});const _0xd32afe=resolve(__dirname,'../../templates/rules/lovrabet_rules.mdc.tpl');existsSync(_0xd32afe)&&(copyFileSync(_0xd32afe,_0x195532),logger[_0x4d605c(0x1ac)](_0x4d605c(0x1f3),_0x4d605c(0x1dd),{'from':_0xd32afe,'to':_0x195532}));}catch(_0x4871fa){logger[_0x4d605c(0x1e1)]('mcp-install',_0x4d605c(0x1f9),{'error':_0x4871fa instanceof Error?_0x4871fa[_0x4d605c(0x1bf)]:String(_0x4871fa)});}}async function copyAgentsMd(_0x64297c){const _0x2a7c3f=a4_0x4303ac,_0x5398a5=join(_0x64297c,_0x2a7c3f(0x1d7));if(existsSync(_0x5398a5))return;try{const _0x14bd39=resolve(__dirname,_0x2a7c3f(0x1fb));if(existsSync(_0x14bd39)){const _0x39ef73=readFileSync(_0x14bd39,_0x2a7c3f(0x1d8));writeFileSync(_0x5398a5,_0x39ef73,_0x2a7c3f(0x1d8)),logger[_0x2a7c3f(0x1ac)](_0x2a7c3f(0x1f3),_0x2a7c3f(0x1a7),{'from':_0x14bd39,'to':_0x5398a5});}}catch(_0x1cbac3){logger[_0x2a7c3f(0x1e1)](_0x2a7c3f(0x1f3),_0x2a7c3f(0x1d2),{'error':_0x1cbac3 instanceof Error?_0x1cbac3[_0x2a7c3f(0x1bf)]:String(_0x1cbac3)});}}export const SKILL_IDE_CONFIGS={'cursor':{'name':a4_0x4303ac(0x1b1),'description':a4_0x4303ac(0x1ff),'folders':['.cursorrules',a4_0x4303ac(0x1ef)]},'windsurf':{'name':a4_0x4303ac(0x1e0),'description':a4_0x4303ac(0x1d9),'folders':[a4_0x4303ac(0x1a6)]},'claude':{'name':'Claude\x20Code','description':a4_0x4303ac(0x1a8),'folders':[a4_0x4303ac(0x1ed)]},'codex':{'name':'Codex','description':'Codex\x20IDE','folders':[a4_0x4303ac(0x1a1)]},'opencode':{'name':'OpenCode','description':a4_0x4303ac(0x1bd),'folders':['.opencode']},'qoder':{'name':'Qoder','description':a4_0x4303ac(0x1b3),'folders':[a4_0x4303ac(0x1c4)]},'codebuddy':{'name':a4_0x4303ac(0x1b9),'description':a4_0x4303ac(0x1e8),'folders':[a4_0x4303ac(0x1fe)]},'trae':{'name':a4_0x4303ac(0x1f1),'description':'Trae\x20IDE','folders':[a4_0x4303ac(0x1af)]},'antigravity':{'name':a4_0x4303ac(0x1fd),'description':a4_0x4303ac(0x1e9),'folders':[a4_0x4303ac(0x1fa)]},'agent':{'name':a4_0x4303ac(0x1c1),'description':'其他\x20IDE','folders':[a4_0x4303ac(0x1fa)]}};async function copyDir(_0x30502a,_0x46c22f){const _0x278d12=a4_0x4303ac,{statSync:_0x96f28f}=await import(_0x278d12(0x1cb)),{readdirSync:_0x369762}=await import(_0x278d12(0x1cb)),_0x5546cd=_0x96f28f(_0x30502a);if(_0x5546cd[_0x278d12(0x1bc)]()){!existsSync(_0x46c22f)&&mkdirSync(_0x46c22f,{'recursive':!![]});const _0x51b1da=_0x369762(_0x30502a);for(const _0x1e7175 of _0x51b1da){await copyDir(join(_0x30502a,_0x1e7175),join(_0x46c22f,_0x1e7175));}}else copyFileSync(_0x30502a,_0x46c22f);}export async function installSkill(_0x257b8c,_0x471b34){const _0x7043aa=a4_0x4303ac,_0x5ca94c=_0x471b34||process[_0x7043aa(0x1dc)](),_0x26e792=resolve(__dirname,_0x7043aa(0x1a2)),_0x44b659=_0x257b8c==='agent',_0x55b9d6=SKILL_IDE_CONFIGS[_0x257b8c],_0xc8073=_0x44b659?_0x7043aa(0x1c1):_0x55b9d6[_0x7043aa(0x19e)];try{let _0x2384c5=0x0;const _0x16a0bf=_0x44b659?['.agent']:_0x55b9d6['folders'];for(const _0x5cfbab of _0x16a0bf){const _0xb1ed06=join(_0x26e792,_0x5cfbab),_0x6fbbf6=join(_0x5ca94c,_0x5cfbab);if(!existsSync(_0xb1ed06)){logger[_0x7043aa(0x1f2)](_0x7043aa(0x1fc),_0x7043aa(0x1a5)+_0xb1ed06);continue;}await copyDir(_0xb1ed06,_0x6fbbf6),_0x2384c5++;}return logger[_0x7043aa(0x1ac)](_0x7043aa(0x1fc),_0xc8073+_0x7043aa(0x1c2),{'ide':_0x257b8c,'foldersCount':_0x2384c5}),{'ide':_0xc8073,'status':_0x7043aa(0x1d4),'message':'已复制\x20'+_0x2384c5+_0x7043aa(0x1b7)};}catch(_0x5667d1){return logger['error'](_0x7043aa(0x1fc),_0xc8073+_0x7043aa(0x1ec),{'error':_0x5667d1 instanceof Error?_0x5667d1[_0x7043aa(0x1bf)]:String(_0x5667d1)}),{'ide':_0xc8073,'status':_0x7043aa(0x1e1),'message':_0x5667d1 instanceof Error?_0x5667d1[_0x7043aa(0x1bf)]:String(_0x5667d1)};}}export async function copySharedSkills(_0x499232){const _0x11d754=a4_0x4303ac,_0x383ecc=_0x499232||process[_0x11d754(0x1dc)](),_0x5d2c9c=resolve(__dirname,'../../templates/skills'),_0x2aa56e=join(_0x5d2c9c,_0x11d754(0x1e2)),_0x59b3=join(_0x383ecc,_0x11d754(0x1b2));if(!existsSync(_0x2aa56e))return![];try{return await copyDir(_0x2aa56e,_0x59b3),logger[_0x11d754(0x1ac)](_0x11d754(0x1fc),_0x11d754(0x1c0),{'path':_0x59b3}),!![];}catch(_0x5cf568){return logger[_0x11d754(0x1e1)](_0x11d754(0x1fc),_0x11d754(0x1c8),{'error':_0x5cf568 instanceof Error?_0x5cf568[_0x11d754(0x1bf)]:String(_0x5cf568)}),![];}}export function createSkillManifest(_0x3a0d88,_0x490392){const _0x33153c=a4_0x4303ac,_0x42badc={'version':'2.0.0','installedAt':new Date()[_0x33153c(0x1cc)](),'platforms':_0x490392},_0x20e62a=join(_0x3a0d88,_0x33153c(0x1df)),_0x4b18c8=join(_0x3a0d88,_0x33153c(0x1ab));!existsSync(_0x4b18c8)&&mkdirSync(_0x4b18c8,{'recursive':!![]}),writeFileSync(_0x20e62a,JSON['stringify'](_0x42badc,null,0x2),_0x33153c(0x1d8)),logger[_0x33153c(0x1ac)](_0x33153c(0x1fc),'创建技能包\x20manifest',{'path':_0x20e62a});}
|
|
1
|
+
const a4_0x1c957a=a4_0x1b8d;(function(_0x3bca02,_0x3b4ae3){const _0xf97535=a4_0x1b8d,_0x53334a=_0x3bca02();while(!![]){try{const _0x358853=-parseInt(_0xf97535(0x226))/0x1*(-parseInt(_0xf97535(0x1eb))/0x2)+-parseInt(_0xf97535(0x1dc))/0x3+-parseInt(_0xf97535(0x1cb))/0x4+parseInt(_0xf97535(0x217))/0x5*(-parseInt(_0xf97535(0x1c6))/0x6)+-parseInt(_0xf97535(0x20e))/0x7+-parseInt(_0xf97535(0x1f9))/0x8*(parseInt(_0xf97535(0x1c7))/0x9)+-parseInt(_0xf97535(0x1ca))/0xa*(-parseInt(_0xf97535(0x1d6))/0xb);if(_0x358853===_0x3b4ae3)break;else _0x53334a['push'](_0x53334a['shift']());}catch(_0x478f03){_0x53334a['push'](_0x53334a['shift']());}}}(a4_0x2a44,0x9a0ab));import{existsSync,mkdirSync,writeFileSync,readFileSync,copyFileSync}from'node:fs';import{join,resolve,dirname}from'node:path';import{fileURLToPath}from'node:url';import{readConfig}from'../utils/config.js';import{logger}from'../utils/logger.js';const __dirname=dirname(fileURLToPath(import.meta.url)),MCP_SERVER_NAME=a4_0x1c957a(0x1f2),MCP_COMMAND='npx',MCP_ARGS=[a4_0x1c957a(0x200)];export function buildEnvConfig(_0x23811d,_0x12bc35){const _0x2a260f=a4_0x1c957a,_0x3efc18={'LOVRABET_APP_CODE':String(_0x23811d)};return _0x12bc35!==_0x2a260f(0x228)&&(_0x3efc18[_0x2a260f(0x1f4)]=String(_0x12bc35)),_0x3efc18;}export async function configureCursorMcp(_0x4caf38){const _0xa18d96=a4_0x1c957a,_0x3c1502=_0x4caf38||process[_0xa18d96(0x213)](),_0x4be7ff=readConfig(_0x3c1502),_0x53e307=_0x4be7ff[_0xa18d96(0x1d7)]||_0x4be7ff['app'],_0x3a4a66=_0x4be7ff[_0xa18d96(0x1e1)]||_0xa18d96(0x228);if(!_0x53e307)return{'ide':_0xa18d96(0x227),'status':_0xa18d96(0x1db),'message':'需要先配置\x20appcode'};const _0x2652dc=buildEnvConfig(_0x53e307,_0x3a4a66),_0x31d03e={'command':MCP_COMMAND,'args':MCP_ARGS,'env':_0x2652dc},_0x45b371=join(_0x3c1502,_0xa18d96(0x1c2),_0xa18d96(0x1c4)),_0xabb969=join(_0x3c1502,'.cursor');try{!existsSync(_0xabb969)&&mkdirSync(_0xabb969,{'recursive':!![]});let _0xd81aef={'mcpServers':{}};if(existsSync(_0x45b371)){const _0x5f3fdb=readFileSync(_0x45b371,_0xa18d96(0x1ef));_0xd81aef=JSON['parse'](_0x5f3fdb);}return(!_0xd81aef[_0xa18d96(0x1c3)]||typeof _0xd81aef[_0xa18d96(0x1c3)]!==_0xa18d96(0x1f1))&&(_0xd81aef['mcpServers']={}),_0xd81aef[_0xa18d96(0x1c3)][MCP_SERVER_NAME]=_0x31d03e,writeFileSync(_0x45b371,JSON['stringify'](_0xd81aef,null,0x2),_0xa18d96(0x1ef)),logger['info'](_0xa18d96(0x21d),_0xa18d96(0x1ff),{'appcode':_0x53e307,'env':_0x3a4a66,'path':_0x45b371}),await copyCursorRules(_0xabb969),{'ide':_0xa18d96(0x227),'status':_0xa18d96(0x224),'message':_0xa18d96(0x1e9)};}catch(_0x89170c){return logger[_0xa18d96(0x1db)](_0xa18d96(0x21d),_0xa18d96(0x210),{'error':_0x89170c instanceof Error?_0x89170c['message']:String(_0x89170c)}),{'ide':_0xa18d96(0x227),'status':_0xa18d96(0x1db),'message':_0x89170c instanceof Error?_0x89170c[_0xa18d96(0x1d1)]:String(_0x89170c)};}}export async function configureClaudeMcp(_0x2fe0cc){const _0x577109=a4_0x1c957a,_0x2c20c5=_0x2fe0cc||process['cwd'](),_0x3c7827=readConfig(_0x2c20c5),_0x293548=_0x3c7827[_0x577109(0x1d7)]||_0x3c7827['app'],_0x1be537=_0x3c7827[_0x577109(0x1e1)]||_0x577109(0x228);if(!_0x293548)return{'ide':'Claude\x20Code','status':_0x577109(0x1db),'message':'需要先配置\x20appcode'};let _0x1c9404='claude\x20mcp\x20add\x20'+MCP_SERVER_NAME+'\x20'+MCP_COMMAND+'\x20'+MCP_ARGS[_0x577109(0x20c)]('\x20')+_0x577109(0x1da)+_0x293548;return _0x1be537!==_0x577109(0x228)&&(_0x1c9404+=_0x577109(0x1d4)+_0x1be537),await copyAgentsMd(_0x2c20c5),logger[_0x577109(0x211)](_0x577109(0x21d),_0x577109(0x1ea),{'command':_0x1c9404,'appcode':_0x293548,'env':_0x1be537}),console[_0x577109(0x1c9)]('\x0a📋\x20请执行以下命令配置\x20Claude\x20Code\x20MCP:\x0a'),console[_0x577109(0x1c9)]('\x20\x20'+_0x1c9404+'\x0a'),console['log'](_0x577109(0x21b)),console[_0x577109(0x1c9)]('\x20\x20AppCode:\x20'+_0x293548),_0x1be537!==_0x577109(0x228)&&console[_0x577109(0x1c9)]('\x20\x20环境:\x20'+_0x1be537),console[_0x577109(0x1c9)](_0x577109(0x212)),{'ide':_0x577109(0x1cd),'status':_0x577109(0x1cf),'message':_0x577109(0x204)+_0x1c9404};}function a4_0x1b8d(_0x567285,_0xec9422){_0x567285=_0x567285-0x1c1;const _0x2a44cc=a4_0x2a44();let _0x1b8d8f=_0x2a44cc[_0x567285];return _0x1b8d8f;}function a4_0x2a44(){const _0x2eeba4=['utf-8','name','object','lovrabet-dataset','.shared','LOVRABET_ENV','node:fs','\x20\x20\x22mcpServers\x22:\x20{','Qoder','2.0.0','638576WTJTen','其他\x20IDE\x20配置指引已显示','已复制\x20','rules','\x22:\x20{','创建技能包\x20manifest','Cursor\x20MCP\x20配置成功','@lovrabet/dataset-mcp-server@latest','\x20\x20\x20\x20\x20\x20\x22env\x22:\x20{','\x20技能包安装成功','skill-install','请手动执行:\x20','.lovrabet/skill/.shared','模板不存在:\x20','lovrabet_rules.mdc','.codebuddy','OpenCode','\x20个目录','\x20技能包安装失败','join','\x20\x20\x20\x20\x20\x20\x20\x20\x22LOVRABET_ENV\x22:\x20\x22','4218760EqmjSE','创建\x20Cursor\x20Rules\x20文件','Cursor\x20MCP\x20配置失败','info','\x20\x20重启\x20Claude\x20Code\x20后生效\x0a','cwd','\x20\x20\x20\x20\x20\x20}','\x20\x20}','.agent','4976515rcxzeZ','agents.md','创建\x20agents.md\x20文件','map','配置信息:','复制\x20agents.md\x20文件失败','mcp-install','.trae','.qoder','Windsurf','Antigravity','cursor','\x20\x20\x20\x20\x20\x20\x22command\x22:\x20\x22','success','Codex','572249kMoayh','Cursor','online','不支持的\x20MCP\x20IDE:\x20','.cursor','mcpServers','mcp.json','复制\x20Cursor\x20Rules\x20文件失败','6pJnqJp','72kSOctG','\x20\x20\x20\x20\x20\x20\x22args\x22:\x20[','log','10MhUGoo','853012vOGGgR','.claude','Claude\x20Code','共享技能文件复制失败','manual','Qoder\x20IDE','message','\x20\x20\x20\x20\x20\x20\x20\x20\x22LOVRABET_APP_CODE\x22:\x20\x22','Antigravity\x20IDE','\x20-e\x20LOVRABET_ENV=','isDirectory','30568043TsImKV','appcode','通用模板','.lovrabet','\x20-e\x20LOVRABET_APP_CODE=','error','811185mnIUSn','.lovrabet/skill-manifest.json','.codex','配置指引已显示','stringify','env','其他\x20IDE','OpenCode\x20IDE','agent','Trae\x20IDE','Windsurf\x20IDE','CodeBuddy\x20IDE','../../templates/rules/lovrabet_rules.mdc.tpl','已写入\x20.cursor/mcp.json','Claude\x20Code\x20MCP\x20命令已生成','2ihoMYM','共享技能文件复制成功','../../templates/skills','.windsurf'];a4_0x2a44=function(){return _0x2eeba4;};return a4_0x2a44();}export async function showOtherGuide(_0x9aa553){const _0x1dbc82=a4_0x1c957a,_0x8e86fb=_0x9aa553||process[_0x1dbc82(0x213)](),_0x36719f=readConfig(_0x8e86fb),_0x19fb0c=_0x36719f['appcode']||_0x36719f['app'],_0x381a22=_0x36719f['env']||_0x1dbc82(0x228);if(!_0x19fb0c)return{'ide':'其他','status':_0x1dbc82(0x1db),'message':'需要先配置\x20appcode'};return console[_0x1dbc82(0x1c9)]('\x0a📋\x20其他\x20IDE\x20MCP\x20配置:\x0a'),console[_0x1dbc82(0x1c9)]('{'),console['log'](_0x1dbc82(0x1f6)),console['log']('\x20\x20\x20\x20\x22'+MCP_SERVER_NAME+_0x1dbc82(0x1fd)),console[_0x1dbc82(0x1c9)](_0x1dbc82(0x223)+MCP_COMMAND+'\x22,'),console[_0x1dbc82(0x1c9)](_0x1dbc82(0x1c8)+MCP_ARGS[_0x1dbc82(0x21a)](_0x72157f=>'\x22'+_0x72157f+'\x22')[_0x1dbc82(0x20c)](',\x20')+'],'),console[_0x1dbc82(0x1c9)](_0x1dbc82(0x201)),console[_0x1dbc82(0x1c9)](_0x1dbc82(0x1d2)+_0x19fb0c+'\x22,'),_0x381a22!==_0x1dbc82(0x228)&&console[_0x1dbc82(0x1c9)](_0x1dbc82(0x20d)+_0x381a22+'\x22,'),console[_0x1dbc82(0x1c9)](_0x1dbc82(0x214)),console[_0x1dbc82(0x1c9)]('\x20\x20\x20\x20}'),console[_0x1dbc82(0x1c9)](_0x1dbc82(0x215)),console['log']('}\x0a'),logger[_0x1dbc82(0x211)]('mcp-install',_0x1dbc82(0x1fa),{'appcode':_0x19fb0c,'env':_0x381a22}),{'ide':'其他','status':_0x1dbc82(0x1cf),'message':_0x1dbc82(0x1df)};}export async function configureMcp(_0x347550,_0x11451c){const _0x26e80d=a4_0x1c957a;switch(_0x347550){case _0x26e80d(0x222):return await configureCursorMcp(_0x11451c);case'claude':return await configureClaudeMcp(_0x11451c);default:throw new Error(_0x26e80d(0x1c1)+_0x347550);}}async function copyCursorRules(_0x9e0eee){const _0x292175=a4_0x1c957a,_0xf7f299=join(_0x9e0eee,_0x292175(0x1fc)),_0x5c3f0e=join(_0xf7f299,_0x292175(0x207));if(existsSync(_0x5c3f0e))return;try{!existsSync(_0xf7f299)&&mkdirSync(_0xf7f299,{'recursive':!![]});const _0x2a825c=resolve(__dirname,_0x292175(0x1e8));existsSync(_0x2a825c)&&(copyFileSync(_0x2a825c,_0x5c3f0e),logger['info'](_0x292175(0x21d),_0x292175(0x20f),{'from':_0x2a825c,'to':_0x5c3f0e}));}catch(_0x3db18e){logger['error'](_0x292175(0x21d),_0x292175(0x1c5),{'error':_0x3db18e instanceof Error?_0x3db18e['message']:String(_0x3db18e)});}}async function copyAgentsMd(_0x47a4fc){const _0x53b1dc=a4_0x1c957a,_0x1b83fe=join(_0x47a4fc,_0x53b1dc(0x218));if(existsSync(_0x1b83fe))return;try{const _0x489e1f=resolve(__dirname,'../../templates/rules/lovrabet_rules.mdc.tpl');if(existsSync(_0x489e1f)){const _0x3bf357=readFileSync(_0x489e1f,'utf-8');writeFileSync(_0x1b83fe,_0x3bf357,_0x53b1dc(0x1ef)),logger[_0x53b1dc(0x211)](_0x53b1dc(0x21d),_0x53b1dc(0x219),{'from':_0x489e1f,'to':_0x1b83fe});}}catch(_0x1e9e03){logger[_0x53b1dc(0x1db)]('mcp-install',_0x53b1dc(0x21c),{'error':_0x1e9e03 instanceof Error?_0x1e9e03[_0x53b1dc(0x1d1)]:String(_0x1e9e03)});}}export const SKILL_IDE_CONFIGS={'cursor':{'name':a4_0x1c957a(0x227),'description':'Cursor\x20IDE','folders':['.cursorrules',a4_0x1c957a(0x1c2)]},'windsurf':{'name':a4_0x1c957a(0x220),'description':a4_0x1c957a(0x1e6),'folders':[a4_0x1c957a(0x1ee)]},'claude':{'name':a4_0x1c957a(0x1cd),'description':a4_0x1c957a(0x1cd),'folders':[a4_0x1c957a(0x1cc)]},'codex':{'name':a4_0x1c957a(0x225),'description':'Codex\x20IDE','folders':[a4_0x1c957a(0x1de)]},'opencode':{'name':a4_0x1c957a(0x209),'description':a4_0x1c957a(0x1e3),'folders':['.opencode']},'qoder':{'name':a4_0x1c957a(0x1f7),'description':a4_0x1c957a(0x1d0),'folders':[a4_0x1c957a(0x21f)]},'codebuddy':{'name':'CodeBuddy','description':a4_0x1c957a(0x1e7),'folders':[a4_0x1c957a(0x208)]},'trae':{'name':'Trae','description':a4_0x1c957a(0x1e5),'folders':[a4_0x1c957a(0x21e)]},'antigravity':{'name':a4_0x1c957a(0x221),'description':a4_0x1c957a(0x1d3),'folders':[a4_0x1c957a(0x216)]},'agent':{'name':a4_0x1c957a(0x1d8),'description':a4_0x1c957a(0x1e2),'folders':['.agent']}};async function copyDir(_0x327e1c,_0x4bc2e7){const _0x2a5742=a4_0x1c957a,{statSync:_0x22a127}=await import('node:fs'),{readdirSync:_0x39d9e5}=await import(_0x2a5742(0x1f5)),_0x1ab44f=_0x22a127(_0x327e1c);if(_0x1ab44f[_0x2a5742(0x1d5)]()){!existsSync(_0x4bc2e7)&&mkdirSync(_0x4bc2e7,{'recursive':!![]});const _0x4a80c4=_0x39d9e5(_0x327e1c);for(const _0x57c95a of _0x4a80c4){await copyDir(join(_0x327e1c,_0x57c95a),join(_0x4bc2e7,_0x57c95a));}}else copyFileSync(_0x327e1c,_0x4bc2e7);}export async function installSkill(_0x725710,_0x4f91fd){const _0x3e4576=a4_0x1c957a,_0x2f0a49=_0x4f91fd||process[_0x3e4576(0x213)](),_0x26f44b=resolve(__dirname,_0x3e4576(0x1ed)),_0x1646ae=_0x725710===_0x3e4576(0x1e4),_0x4cc40e=SKILL_IDE_CONFIGS[_0x725710],_0x561845=_0x1646ae?'通用模板':_0x4cc40e[_0x3e4576(0x1f0)];try{let _0x45e806=0x0;const _0x499a51=_0x1646ae?[_0x3e4576(0x216)]:_0x4cc40e['folders'];for(const _0x436b09 of _0x499a51){const _0x476f2c=join(_0x26f44b,_0x436b09),_0x5e2d09=join(_0x2f0a49,_0x436b09);if(!existsSync(_0x476f2c)){logger['warn'](_0x3e4576(0x203),_0x3e4576(0x206)+_0x476f2c);continue;}await copyDir(_0x476f2c,_0x5e2d09),_0x45e806++;}return logger['info'](_0x3e4576(0x203),_0x561845+_0x3e4576(0x202),{'ide':_0x725710,'foldersCount':_0x45e806}),{'ide':_0x561845,'status':_0x3e4576(0x224),'message':_0x3e4576(0x1fb)+_0x45e806+_0x3e4576(0x20a)};}catch(_0xf14dc1){return logger[_0x3e4576(0x1db)](_0x3e4576(0x203),_0x561845+_0x3e4576(0x20b),{'error':_0xf14dc1 instanceof Error?_0xf14dc1['message']:String(_0xf14dc1)}),{'ide':_0x561845,'status':_0x3e4576(0x1db),'message':_0xf14dc1 instanceof Error?_0xf14dc1[_0x3e4576(0x1d1)]:String(_0xf14dc1)};}}export async function copySharedSkills(_0x5e1e20){const _0x48a189=a4_0x1c957a,_0x2ae9a9=_0x5e1e20||process[_0x48a189(0x213)](),_0x506adf=resolve(__dirname,_0x48a189(0x1ed)),_0x4ea48a=join(_0x506adf,_0x48a189(0x1f3)),_0x4b3a89=join(_0x2ae9a9,_0x48a189(0x205));if(!existsSync(_0x4ea48a))return![];try{return await copyDir(_0x4ea48a,_0x4b3a89),logger[_0x48a189(0x211)](_0x48a189(0x203),_0x48a189(0x1ec),{'path':_0x4b3a89}),!![];}catch(_0x8108af){return logger[_0x48a189(0x1db)](_0x48a189(0x203),_0x48a189(0x1ce),{'error':_0x8108af instanceof Error?_0x8108af['message']:String(_0x8108af)}),![];}}export function createSkillManifest(_0x45006b,_0x4bb079){const _0x4c7639=a4_0x1c957a,_0x5db11f={'version':_0x4c7639(0x1f8),'installedAt':new Date()['toISOString'](),'platforms':_0x4bb079},_0x47efb5=join(_0x45006b,_0x4c7639(0x1dd)),_0x2f46f3=join(_0x45006b,_0x4c7639(0x1d9));!existsSync(_0x2f46f3)&&mkdirSync(_0x2f46f3,{'recursive':!![]}),writeFileSync(_0x47efb5,JSON[_0x4c7639(0x1e0)](_0x5db11f,null,0x2),'utf-8'),logger[_0x4c7639(0x211)](_0x4c7639(0x203),_0x4c7639(0x1fe),{'path':_0x47efb5});}
|
package/lib/api/api-doc-ui.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x32e6db,_0x4e4a18){const _0x377340=a5_0x3ed5,_0x279944=_0x32e6db();while(!![]){try{const _0x2581c3=-parseInt(_0x377340(0x103))/0x1*(-parseInt(_0x377340(0xe7))/0x2)+-parseInt(_0x377340(0xcd))/0x3+-parseInt(_0x377340(0x100))/0x4*(-parseInt(_0x377340(0xd7))/0x5)+parseInt(_0x377340(0xf8))/0x6+parseInt(_0x377340(0xd9))/0x7*(-parseInt(_0x377340(0xff))/0x8)+-parseInt(_0x377340(0xfb))/0x9+-parseInt(_0x377340(0xfa))/0xa;if(_0x2581c3===_0x4e4a18)break;else _0x279944['push'](_0x279944['shift']());}catch(_0x558dbf){_0x279944['push'](_0x279944['shift']());}}}(a5_0x1919,0x91c7d));function a5_0x3ed5(_0x4b1b79,_0x45c17a){_0x4b1b79=_0x4b1b79-0xcb;const _0x19199e=a5_0x1919();let _0x3ed598=_0x19199e[_0x4b1b79];return _0x3ed598;}import{jsx as a5_0x2a9027,jsxs as a5_0x5a412b,Fragment as a5_0xb9bcfd}from'react/jsx-runtime';import{useEffect,useState}from'react';import{Box,Text,useApp}from'ink';function a5_0x1919(){const _0x1ca5d3=['8VledWz','\x20重新登录后再试','正在生成\x20','1075436dynnrk','join','\x20个匹配的数据集\x1b[0m','3566877BxjsTS','文档生成完成','\x20个数据集','length','文档生成失败:\x20','.md\x20(','filePath','\x20(环境:\x20','🚀\x20','dim','1436455DgPvAx','setLogPath','350007qqdbdB','指定的数据集代码都不存在:\x20','*\x20生成的文档文件:','*\x20共处理\x20','\x20个数据集的文档...','⚠️\x20以下数据集生成失败:','正在获取数据集列表...','cwd','gray','filter','message','\x1b[90m*\x20从\x20','\x20个数据集中筛选出\x20','√\x20文档生成完成!成功\x20','2MLoFTy','💡\x20请使用\x20','white','includes','success','未找到任何数据集','env','cyan','column','yellow','datasetName',',\x20失败\x20','map','datasetCode','*\x20输出目录:\x20','\x20-\x20','log','6724302MZkOOl','api-doc','4710250BORMqS','1922652kEXAss','error','未提供应用AppCode,且配置中也没有默认值','green','48HHwLWG'];a5_0x1919=function(){return _0x1ca5d3;};return a5_0x1919();}import{readConfig,getConfigAppCode}from'../utils/config.js';import{initEnv}from'../constant/env.js';import{fetchModelList}from'./fetch-model-list.js';import{generateDatasetDocs}from'./api-doc.js';import{logger}from'../utils/logger.js';export const ApiDocUI=({appCode:_0x1814be,env:_0x23d8b4,output:_0x4548df,extraParams:_0x29f8cd,datasetCodes:_0x43102f})=>{const _0x1a699d=a5_0x3ed5,{exit:_0x186c87}=useApp(),[_0x1d30a5,_0x583c41]=useState(![]),[_0x458075,_0x1be484]=useState(''),[_0x4a83a5,_0xc3f928]=useState(![]),[_0x17b92d,_0x410096]=useState(null),[_0x5be56c,_0x365646]=useState(null),[_0x463ff6,_0x246961]=useState(0x0),_0x524505=readConfig(),_0x5c98cf=getConfigAppCode(),_0x21f7a4=_0x1814be||_0x5c98cf,_0x2462aa=typeof _0x524505?.[_0x1a699d(0xed)]==='string'?_0x524505[_0x1a699d(0xed)]:undefined,_0x45eaaf=_0x23d8b4||_0x2462aa||'online';initEnv(_0x45eaaf);const _0x545088=_0x4548df||'./docs',_0x305e49=_0x1814be?'使用指定的应用AppCode:\x20'+_0x21f7a4:'使用配置的应用AppCode:\x20'+_0x21f7a4;useEffect(()=>{_0x583c41(!![]),_0x15545f();},[]),useEffect(()=>{(_0x4a83a5||_0x17b92d)&&_0x186c87();},[_0x4a83a5,_0x17b92d,_0x186c87]);async function _0x15545f(){const _0x7fadba=_0x1a699d;if(!_0x21f7a4){_0x410096(_0x7fadba(0xfd));return;}try{logger[_0x7fadba(0xd8)](process[_0x7fadba(0xe0)]()),_0x1be484(_0x7fadba(0xdf));const {configArray:_0x36bb8e}=await fetchModelList(_0x21f7a4);_0x246961(_0x36bb8e[_0x7fadba(0xd0)]);if(_0x36bb8e['length']===0x0){_0x410096(_0x7fadba(0xec));return;}let _0x2d2283=_0x36bb8e;if(_0x43102f&&_0x43102f['length']>0x0){_0x2d2283=_0x36bb8e[_0x7fadba(0xe2)](_0x16d34d=>_0x43102f[_0x7fadba(0xea)](_0x16d34d[_0x7fadba(0xf4)]));const _0x46b857=_0x2d2283[_0x7fadba(0xf3)](_0xa58105=>_0xa58105[_0x7fadba(0xf4)]),_0x59b572=_0x43102f[_0x7fadba(0xe2)](_0x3a4942=>!_0x46b857[_0x7fadba(0xea)](_0x3a4942));_0x59b572[_0x7fadba(0xd0)]>0x0&&console[_0x7fadba(0xf7)]('\x1b[33m!\x20以下数据集代码不存在:\x20'+_0x59b572[_0x7fadba(0xcb)](',\x20')+'\x1b[0m');if(_0x2d2283[_0x7fadba(0xd0)]===0x0){_0x410096(_0x7fadba(0xda)+_0x43102f[_0x7fadba(0xcb)](',\x20'));return;}console[_0x7fadba(0xf7)](_0x7fadba(0xe4)+_0x36bb8e[_0x7fadba(0xd0)]+_0x7fadba(0xe5)+_0x2d2283[_0x7fadba(0xd0)]+_0x7fadba(0xcc));}_0x1be484(_0x7fadba(0x102)+_0x2d2283[_0x7fadba(0xd0)]+_0x7fadba(0xdd));const _0x581ec2=await generateDatasetDocs(_0x2d2283,_0x21f7a4,_0x545088,(_0x2d8538,_0xe9ff5b,_0xbbbcd9)=>{const _0x57b621=_0x7fadba;_0x1be484(_0x57b621(0x102)+_0xbbbcd9+_0x57b621(0xd2)+_0x2d8538+'/'+_0xe9ff5b+')');},_0x29f8cd);_0x365646(_0x581ec2),_0xc3f928(!![]);const _0x2af082=_0x581ec2[_0x7fadba(0xe2)](_0x433d41=>_0x433d41[_0x7fadba(0xeb)])[_0x7fadba(0xd0)],_0x4ae8c7=_0x581ec2['filter'](_0x4e3cd3=>!_0x4e3cd3['success'])['length'];logger[_0x7fadba(0xeb)](_0x7fadba(0xf9),_0x7fadba(0xce),undefined,{'totalCount':_0x581ec2[_0x7fadba(0xd0)],'successCount':_0x2af082,'failCount':_0x4ae8c7,'outputDir':_0x545088});}catch(_0xc60986){const _0x476119=_0xc60986 instanceof Error?_0xc60986[_0x7fadba(0xe3)]:String(_0xc60986);logger[_0x7fadba(0xfc)]('api-doc',_0x7fadba(0xd1)+_0x476119,{'appCode':_0x21f7a4,'outputDir':_0x545088}),_0x410096(_0x7fadba(0xd1)+_0x476119);}finally{_0x583c41(![]);}}const _0x4c6912=_0x5be56c?.['filter'](_0x382f55=>_0x382f55[_0x1a699d(0xeb)])['length']||0x0,_0x3afee3=_0x5be56c?.[_0x1a699d(0xe2)](_0x121f03=>!_0x121f03[_0x1a699d(0xeb)])[_0x1a699d(0xd0)]||0x0;return a5_0x5a412b(Box,{'flexDirection':_0x1a699d(0xef),'children':[(_0x1d30a5||_0x4a83a5)&&a5_0x5a412b(Box,{'children':[a5_0x2a9027(Text,{'color':_0x1a699d(0xe1),'children':'*\x20'}),a5_0x2a9027(Text,{'color':_0x1814be?_0x1a699d(0xe9):'dim','children':_0x305e49})]}),_0x1d30a5&&a5_0x2a9027(Box,{'children':a5_0x5a412b(Text,{'children':[_0x1a699d(0xd5),_0x458075,_0x1a699d(0xd4),_0x45eaaf,')']})}),_0x4a83a5&&_0x5be56c&&a5_0x5a412b(Box,{'flexDirection':'column','children':[a5_0x2a9027(Box,{'children':a5_0x5a412b(Text,{'color':_0x1a699d(0xfe),'children':[_0x1a699d(0xe6),_0x4c6912,'\x20个',_0x3afee3>0x0&&_0x1a699d(0xf2)+_0x3afee3+'\x20个']})}),a5_0x2a9027(Box,{'marginTop':0x1,'children':a5_0x5a412b(Text,{'color':'gray','children':[_0x1a699d(0xdc),_0x463ff6,_0x1a699d(0xcf)]})}),a5_0x5a412b(Box,{'marginTop':0x1,'children':[a5_0x2a9027(Text,{'color':_0x1a699d(0xe1),'children':_0x1a699d(0xf5)}),a5_0x2a9027(Text,{'color':_0x1a699d(0xee),'children':_0x545088})]}),_0x4c6912>0x0&&a5_0x5a412b(a5_0xb9bcfd,{'children':[a5_0x2a9027(Box,{'marginTop':0x1,'children':a5_0x2a9027(Text,{'color':_0x1a699d(0xe1),'children':_0x1a699d(0xdb)})}),_0x5be56c[_0x1a699d(0xe2)](_0x1bd226=>_0x1bd226['success'])[_0x1a699d(0xf3)]((_0x16f2d1,_0x5dea0c)=>a5_0x5a412b(Box,{'marginLeft':0x2,'children':[a5_0x5a412b(Text,{'color':_0x1a699d(0xee),'children':['•\x20',_0x16f2d1[_0x1a699d(0xd3)]]}),a5_0x5a412b(Text,{'color':_0x1a699d(0xd6),'children':[_0x1a699d(0xf6),_0x16f2d1[_0x1a699d(0xf1)]]})]},_0x5dea0c))]}),_0x3afee3>0x0&&a5_0x5a412b(a5_0xb9bcfd,{'children':[a5_0x2a9027(Box,{'marginTop':0x1,'children':a5_0x2a9027(Text,{'color':_0x1a699d(0xf0),'children':_0x1a699d(0xde)})}),_0x5be56c[_0x1a699d(0xe2)](_0x57f653=>!_0x57f653[_0x1a699d(0xeb)])[_0x1a699d(0xf3)]((_0x579aa0,_0x4c023e)=>a5_0x5a412b(Box,{'marginLeft':0x2,'flexDirection':_0x1a699d(0xef),'children':[a5_0x5a412b(Text,{'color':'red','children':['•\x20',_0x579aa0[_0x1a699d(0xf1)],'\x20(',_0x579aa0[_0x1a699d(0xf4)],')']}),_0x579aa0[_0x1a699d(0xfc)]&&a5_0x2a9027(Box,{'marginLeft':0x2,'children':a5_0x2a9027(Text,{'color':_0x1a699d(0xd6),'children':_0x579aa0['error']})})]},_0x4c023e))]})]}),_0x17b92d&&a5_0x5a412b(Box,{'flexDirection':'column','children':[a5_0x2a9027(Box,{'children':a5_0x5a412b(Text,{'color':'red','children':['❌\x20',_0x17b92d]})}),_0x17b92d[_0x1a699d(0xea)]('登录')&&a5_0x5a412b(Box,{'marginTop':0x1,'children':[a5_0x2a9027(Text,{'color':'yellow','children':_0x1a699d(0xe8)}),a5_0x2a9027(Text,{'color':_0x1a699d(0xee),'children':'lovrabet\x20auth'}),a5_0x2a9027(Text,{'color':_0x1a699d(0xf0),'children':_0x1a699d(0x101)})]})]})]});};
|
package/lib/api/api-doc.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a6_0x32bc67=a6_0x285b;(function(_0x3d97e6,_0x59441f){const _0x3b7562=a6_0x285b,_0x1bf69e=_0x3d97e6();while(!![]){try{const _0x4e8fe5=parseInt(_0x3b7562(0xc6))/0x1+parseInt(_0x3b7562(0xcf))/0x2+parseInt(_0x3b7562(0xcd))/0x3+-parseInt(_0x3b7562(0xd9))/0x4*(-parseInt(_0x3b7562(0xb6))/0x5)+parseInt(_0x3b7562(0xc5))/0x6*(parseInt(_0x3b7562(0xd2))/0x7)+-parseInt(_0x3b7562(0xc4))/0x8+-parseInt(_0x3b7562(0xd7))/0x9*(parseInt(_0x3b7562(0xd5))/0xa);if(_0x4e8fe5===_0x59441f)break;else _0x1bf69e['push'](_0x1bf69e['shift']());}catch(_0x47e18e){_0x1bf69e['push'](_0x1bf69e['shift']());}}}(a6_0x14a6,0x6ee73));import{mkdirSync,writeFileSync}from'node:fs';function a6_0x285b(_0x1b2a71,_0x26eecb){_0x1b2a71=_0x1b2a71-0xb4;const _0x14a64a=a6_0x14a6();let _0x285b4e=_0x14a64a[_0x1b2a71];return _0x285b4e;}import a6_0x5a638f from'node:path';import{getCookie}from'../auth/get-cookie.js';import{getApiDomain}from'../constant/domain.js';import{logger}from'../utils/logger.js';function a6_0x14a6(){const _0x1990a4=['message','710422rzfnPH','\x20个数据集需要生成文档\x0a','datasetCode','35oqzLTq','join','name','650tbFYxM','markdown','128745WXfemC','stringify','1619924uNbLHX','push','✗\x20失败:\x20','\x0a共有\x20','5ITgTog','utf8','):缺少\x20data.markdown\x20字段','log','获取文档失败\x20(','),HTTP状态码:\x20','status',']\x20正在生成:\x20','data','./docs','length','等待\x203\x20秒...\x0a','/api/node-toolbox/api-doc-generator','string','6773360pthYES','343716uLCtGG','442203dOILjN','响应数据格式错误\x20(','application/json','error','登录鉴权失败,登录已过期,请使用\x20lovrabet\x20auth\x20重新登录','api-doc','.md\x20(','2225787CPnQDZ'];a6_0x14a6=function(){return _0x1990a4;};return a6_0x14a6();}export async function fetchDatasetDoc(_0x1834ed){const _0x536bb9=a6_0x285b,{appCode:_0x7bcd85,datasetCode:_0x4e8e8d,datasetId:_0xac3808,extraParams:_0x9c453e}=_0x1834ed,_0x1153a1=getApiDomain(),_0x254e77=_0x1153a1+_0x536bb9(0xc2),_0x5cde68={'appCode':_0x7bcd85,'datasetCode':_0x4e8e8d,'datasetId':_0xac3808,..._0x9c453e||{}},_0x4ef99e=await fetch(_0x254e77,{'method':'POST','headers':{'Content-Type':_0x536bb9(0xc8),'Cookie':getCookie()},'body':JSON[_0x536bb9(0xd8)](_0x5cde68)});if(!_0x4ef99e['ok']){if(_0x4ef99e['status']===0x191)throw new Error(_0x536bb9(0xca));let _0x49c561='';try{_0x49c561=await _0x4ef99e['text']();}catch(_0x5c7cef){}throw new Error(_0x536bb9(0xba)+_0x4e8e8d+_0x536bb9(0xbb)+_0x4ef99e[_0x536bb9(0xbc)]+(_0x49c561?'\x0a'+_0x49c561:''));}const _0x12858e=await _0x4ef99e['json']();if(!_0x12858e[_0x536bb9(0xbe)]||typeof _0x12858e[_0x536bb9(0xbe)]['markdown']!==_0x536bb9(0xc3))throw new Error(_0x536bb9(0xc7)+_0x4e8e8d+_0x536bb9(0xb8));return _0x12858e[_0x536bb9(0xbe)][_0x536bb9(0xd6)];}function delay(_0x4aa7ec){return new Promise(_0x5e5aab=>setTimeout(_0x5e5aab,_0x4aa7ec));}export async function generateDatasetDocs(_0x23ef2b,_0x171bb1,_0x2f670c=a6_0x32bc67(0xbf),_0x18e556,_0x1ba178){const _0x2ce50c=a6_0x32bc67;mkdirSync(_0x2f670c,{'recursive':!![]});const _0x263e9f=[],_0x19bda1=_0x23ef2b['length'];console[_0x2ce50c(0xb9)](_0x2ce50c(0xb5)+_0x19bda1+_0x2ce50c(0xd0));for(let _0x18f912=0x0;_0x18f912<_0x23ef2b[_0x2ce50c(0xc0)];_0x18f912++){const _0x2996bf=_0x23ef2b[_0x18f912],_0x19cbe4=_0x18f912+0x1,_0x172077=_0x2996bf['tableName'];try{console[_0x2ce50c(0xb9)]('['+_0x19cbe4+'/'+_0x19bda1+_0x2ce50c(0xbd)+_0x172077+_0x2ce50c(0xcc)+_0x2996bf[_0x2ce50c(0xd4)]+')');_0x18e556&&_0x18e556(_0x19cbe4,_0x19bda1,_0x172077);const _0x4b0245=await fetchDatasetDoc({'appCode':_0x171bb1,'datasetCode':_0x2996bf[_0x2ce50c(0xd1)],'datasetId':_0x2996bf['id'],'enableAI':![],'extraParams':_0x1ba178}),_0x6df375=a6_0x5a638f[_0x2ce50c(0xd3)](_0x2f670c,_0x172077+'.md');writeFileSync(_0x6df375,_0x4b0245,{'encoding':_0x2ce50c(0xb7)}),console[_0x2ce50c(0xb9)]('✓\x20成功生成:\x20'+_0x172077+'.md'),logger['success']('api-doc','生成文档成功:\x20'+_0x172077,undefined,{'datasetCode':_0x2996bf[_0x2ce50c(0xd1)],'datasetName':_0x2996bf[_0x2ce50c(0xd4)],'filePath':_0x6df375,'progress':_0x19cbe4+'/'+_0x19bda1}),_0x263e9f[_0x2ce50c(0xda)]({'datasetCode':_0x2996bf[_0x2ce50c(0xd1)],'datasetName':_0x2996bf[_0x2ce50c(0xd4)],'filePath':_0x6df375,'success':!![]}),_0x19cbe4<_0x19bda1&&await delay(0x1388);}catch(_0x5cc887){const _0x19064c=_0x5cc887 instanceof Error?_0x5cc887[_0x2ce50c(0xce)]:String(_0x5cc887);console[_0x2ce50c(0xb9)](_0x2ce50c(0xb4)+_0x172077+'.md\x20-\x20'+_0x19064c+'\x0a'),logger[_0x2ce50c(0xc9)](_0x2ce50c(0xcb),'生成文档失败:\x20'+_0x2996bf[_0x2ce50c(0xd1)],{'datasetCode':_0x2996bf[_0x2ce50c(0xd1)],'datasetName':_0x2996bf[_0x2ce50c(0xd4)],'error':_0x19064c,'progress':_0x19cbe4+'/'+_0x19bda1}),_0x263e9f[_0x2ce50c(0xda)]({'datasetCode':_0x2996bf[_0x2ce50c(0xd1)],'datasetName':_0x2996bf[_0x2ce50c(0xd4)],'filePath':'','success':![],'error':_0x19064c}),_0x19cbe4<_0x19bda1&&(console[_0x2ce50c(0xb9)](_0x2ce50c(0xc1)),await delay(0xbb8));}}return _0x263e9f;}
|
package/lib/api/api-pull-ui.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x3ecd61,_0x2a46c8){const _0x3fb52d=a7_0x488f,_0x24d0df=_0x3ecd61();while(!![]){try{const _0x4c8c73=-parseInt(_0x3fb52d(0xad))/0x1+parseInt(_0x3fb52d(0xaf))/0x2*(-parseInt(_0x3fb52d(0x85))/0x3)+parseInt(_0x3fb52d(0x96))/0x4*(parseInt(_0x3fb52d(0x90))/0x5)+-parseInt(_0x3fb52d(0x82))/0x6+parseInt(_0x3fb52d(0x9f))/0x7+parseInt(_0x3fb52d(0xa9))/0x8+parseInt(_0x3fb52d(0x99))/0x9;if(_0x4c8c73===_0x2a46c8)break;else _0x24d0df['push'](_0x24d0df['shift']());}catch(_0x610525){_0x24d0df['push'](_0x24d0df['shift']());}}}(a7_0x7006,0x778af));import{jsx as a7_0x36d74d,jsxs as a7_0x53d548}from'react/jsx-runtime';import{useEffect,useState}from'react';function a7_0x7006(){const _0x453a52=['duplicateCount','拉取\x20API\x20配置失败:\x20','split','join','565103FdMzrb','使用指定的应用AppCode:\x20','client','-api','modelCount','setLogPath','red','green','-client','*\x20已生成文件:','1775928cAlLGK','\x20from\x20\x27@/','\x20重新登录后再试','\x20个数据集,生成','867145uPMpVC','!\x20原始数据集\x20','19484pFyzlD','dim','datasetCount','env','lovrabet\x20auth','api','string','\x20个模型)','💡\x20请使用\x20','column','{\x20lovrabetClient\x20}','1490430IpgFhb','online','./src/api/','183OVeLnR','.ts','cwd','yellow','gray','includes','import\x20','-\x20模型配置文件\x20(','\x20个模型','slice','\x20个,过滤重复','95FmguUW','replace','endsWith','length','api-pull','🚀\x20正在从服务器拉取\x20API\x20配置...\x20(环境:\x20','116652inZeoo','cyan','message','12083778lkgXRr','white'];a7_0x7006=function(){return _0x453a52;};return a7_0x7006();}import{Box,Text,useApp}from'ink';import{readConfig,getConfigAppCode}from'../utils/config.js';import{initEnv}from'../constant/env.js';import{generateApiFile}from'./generate-api-file.js';import{logger}from'../utils/logger.js';import{fetchModelList}from'./fetch-model-list.js';function a7_0x488f(_0x525d86,_0xa25457){_0x525d86=_0x525d86-0x7f;const _0x7006d6=a7_0x7006();let _0x488fac=_0x7006d6[_0x525d86];return _0x488fac;}export const ApiPullUI=({appCode:_0x4ac886,env:_0x585d60,output:_0x3f7f21})=>{const _0x272d25=a7_0x488f,{exit:_0x105476}=useApp(),[_0x5d793e,_0x50007a]=useState(![]),[_0x3e5b13,_0x1b776e]=useState(![]),[_0x1d4ac1,_0x366d3d]=useState(null),[_0x571ffd,_0x1ea97f]=useState(null),_0x4f3a4c=readConfig(),_0x5a240f=getConfigAppCode(),_0x12799b=_0x4ac886||_0x5a240f,_0x255b34=typeof _0x4f3a4c?.['env']===_0x272d25(0xb5)?_0x4f3a4c[_0x272d25(0xb2)]:undefined,_0x3ae713=_0x585d60||_0x255b34||_0x272d25(0x83);initEnv(_0x3ae713);const _0x5a3306=_0x3f7f21||_0x272d25(0x84),_0x308a56=_0x4ac886&&_0x4ac886[_0x272d25(0x8a)]('-')?_0x4ac886[_0x272d25(0x9d)]('-')[_0x272d25(0x8e)](0x1)[_0x272d25(0x9e)]('-'):'',_0x4f4fa6=_0x4ac886?_0x272d25(0xa0)+_0x12799b:'使用配置的应用AppCode:\x20'+_0x12799b,_0x1db253=_0x308a56?_0x308a56+_0x272d25(0xa2):_0x272d25(0xb4),_0x4641b7=_0x308a56?_0x308a56+_0x272d25(0xa7):'client';useEffect(()=>{_0x50007a(!![]),_0x4e612c();},[]),useEffect(()=>{(_0x3e5b13||_0x1d4ac1)&&_0x105476();},[_0x3e5b13,_0x1d4ac1,_0x105476]);async function _0x4e612c(){const _0x24dc1a=_0x272d25;if(!_0x12799b){_0x366d3d('未提供应用AppCode,且配置中也没有默认值');return;}try{logger[_0x24dc1a(0xa4)](process[_0x24dc1a(0x87)]());const {configArray:_0x188b12}=await fetchModelList(_0x12799b),_0x5d9888=_0x188b12[_0x24dc1a(0x93)],_0x2fc303=!_0x4ac886,_0x44ed5e=await generateApiFile(_0x188b12,_0x308a56,_0x12799b,_0x2fc303,_0x3ae713,_0x5a3306),_0xd1e607=_0x5a3306[_0x24dc1a(0x92)]('/')?_0x5a3306:_0x5a3306+'/';_0x1ea97f({'api':''+_0xd1e607+_0x1db253+_0x24dc1a(0x86),'client':''+_0xd1e607+_0x4641b7+_0x24dc1a(0x86),'modelCount':_0x44ed5e['modelCount'],'datasetCount':_0x5d9888,'originalCount':_0x5d9888,'duplicateCount':0x0}),_0x1b776e(!![]);}catch(_0x36bcd1){const _0x3b3432=_0x36bcd1 instanceof Error?_0x36bcd1[_0x24dc1a(0x98)]:String(_0x36bcd1);logger['error'](_0x24dc1a(0x94),_0x24dc1a(0x9c)+_0x3b3432,{'appCode':_0x12799b,'error':_0x3b3432}),_0x366d3d('拉取\x20API\x20配置失败:\x20'+_0x3b3432);}finally{_0x50007a(![]);}}return a7_0x53d548(Box,{'flexDirection':_0x272d25(0x80),'children':[(_0x5d793e||_0x3e5b13)&&a7_0x53d548(Box,{'children':[a7_0x36d74d(Text,{'color':_0x272d25(0x89),'children':'*\x20'}),a7_0x36d74d(Text,{'color':_0x4ac886?_0x272d25(0x9a):'dim','children':_0x4f4fa6})]}),_0x5d793e&&a7_0x36d74d(Box,{'children':a7_0x53d548(Text,{'children':[_0x272d25(0x95),_0x3ae713,')']})}),_0x3e5b13&&_0x571ffd&&a7_0x53d548(Box,{'flexDirection':_0x272d25(0x80),'children':[a7_0x36d74d(Box,{'children':a7_0x53d548(Text,{'color':_0x272d25(0xa6),'children':['√\x20成功拉取\x20',_0x571ffd[_0x272d25(0xb1)],_0x272d25(0xac),'\x20',_0x571ffd[_0x272d25(0xa3)],_0x272d25(0x8d)]})}),_0x571ffd[_0x272d25(0x9b)]>0x0&&a7_0x36d74d(Box,{'marginTop':0x1,'children':a7_0x53d548(Text,{'color':_0x272d25(0x88),'children':[_0x272d25(0xae),_0x571ffd['originalCount'],_0x272d25(0x8f),'\x20',_0x571ffd[_0x272d25(0x9b)],'\x20个']})}),a7_0x36d74d(Box,{'marginTop':0x1,'children':a7_0x36d74d(Text,{'color':'gray','children':_0x272d25(0xa8)})}),a7_0x53d548(Box,{'marginLeft':0x2,'children':[a7_0x53d548(Text,{'color':_0x272d25(0x97),'children':['•\x20',_0x571ffd[_0x272d25(0xb4)]]}),a7_0x53d548(Text,{'color':_0x272d25(0xb0),'children':['\x20',_0x272d25(0x8c),_0x571ffd[_0x272d25(0xa3)],_0x272d25(0xb6)]})]}),a7_0x53d548(Box,{'marginLeft':0x2,'children':[a7_0x53d548(Text,{'color':_0x272d25(0x97),'children':['•\x20',_0x571ffd['client']]}),a7_0x36d74d(Text,{'color':'dim','children':'\x20-\x20客户端实例文件'})]}),a7_0x36d74d(Box,{'marginTop':0x1,'children':a7_0x36d74d(Text,{'color':_0x272d25(0x89),'children':'*\x20导入方式:'})}),a7_0x36d74d(Box,{'marginLeft':0x2,'children':a7_0x53d548(Text,{'color':_0x272d25(0x88),'children':[_0x272d25(0x8b),_0x272d25(0x81),_0x272d25(0xaa),_0x571ffd[_0x272d25(0xa1)][_0x272d25(0x91)](/^\.\//,'')[_0x272d25(0x91)](_0x272d25(0x86),''),'\x27']})})]}),_0x1d4ac1&&a7_0x53d548(Box,{'flexDirection':_0x272d25(0x80),'children':[a7_0x36d74d(Box,{'children':a7_0x53d548(Text,{'color':_0x272d25(0xa5),'children':['❌\x20',_0x1d4ac1]})}),_0x1d4ac1[_0x272d25(0x8a)]('登录')&&a7_0x53d548(Box,{'marginTop':0x1,'children':[a7_0x36d74d(Text,{'color':'yellow','children':_0x272d25(0x7f)}),a7_0x36d74d(Text,{'color':_0x272d25(0x97),'children':_0x272d25(0xb3)}),a7_0x36d74d(Text,{'color':_0x272d25(0x88),'children':_0x272d25(0xab)})]})]})]});};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x2190f9,_0x2151ee){const _0x10b941=a8_0x2e6b,_0x1c1419=_0x2190f9();while(!![]){try{const _0x5a5b96=-parseInt(_0x10b941(0xea))/0x1*(-parseInt(_0x10b941(0xd6))/0x2)+parseInt(_0x10b941(0xcf))/0x3*(parseInt(_0x10b941(0xd4))/0x4)+-parseInt(_0x10b941(0xd1))/0x5*(parseInt(_0x10b941(0xe1))/0x6)+-parseInt(_0x10b941(0xe4))/0x7+-parseInt(_0x10b941(0xdb))/0x8+-parseInt(_0x10b941(0xe5))/0x9*(-parseInt(_0x10b941(0xd5))/0xa)+parseInt(_0x10b941(0xdc))/0xb*(parseInt(_0x10b941(0xec))/0xc);if(_0x5a5b96===_0x2151ee)break;else _0x1c1419['push'](_0x1c1419['shift']());}catch(_0x1d75d6){_0x1c1419['push'](_0x1c1419['shift']());}}}(a8_0xf7fc,0x7afa7));function a8_0x2e6b(_0x32eee6,_0x154a1c){_0x32eee6=_0x32eee6-0xcf;const _0xf7fc50=a8_0xf7fc();let _0x2e6b77=_0xf7fc50[_0x32eee6];return _0x2e6b77;}import{getCookie}from'../auth/get-cookie.js';import{getApiDomain}from'../constant/domain.js';import{logger}from'../utils/logger.js';function a8_0xf7fc(){const _0x32b41a=['7790296gqTZVH','11BobsAi','401','&otype=array','登录鉴权失败,登录已过期,请使用\x20lovrabet\x20auth\x20重新登录','message','6tiPWBX','/api/node-toolbox/dataset/model-list?appcode=','未知错误','6984607cxGQaH','675isaRrO','errorCode','获取数据集失败,HTTP状态码:\x20','data','errorMessage','392BjDPMC','errorMsg','18045204mCpOCD','includes','error','info','29379oGpBDn','正在从服务器拉取模型列表...\x20(环境:\x20','2595170soNsYU','json','status','340wqyEVE','8990bIbuJI','3014WCWDiO','UNAUTHORIZED','configArray','fetch-model-list','success'];a8_0xf7fc=function(){return _0x32b41a;};return a8_0xf7fc();}import{getEnv}from'../constant/env.js';export async function fetchModelList(_0x191e96){const _0x1da5d6=a8_0x2e6b,_0x27d7a8=getEnv(),_0x13ad92=getApiDomain()+_0x1da5d6(0xe2)+_0x191e96+_0x1da5d6(0xde);logger[_0x1da5d6(0xef)](_0x1da5d6(0xd9),_0x1da5d6(0xd0)+_0x27d7a8+')',{'apiUrl':_0x13ad92});const _0x51106b=await fetch(_0x13ad92,{'headers':{'Cookie':getCookie()}});if(!_0x51106b['ok']){if(_0x51106b[_0x1da5d6(0xd3)]===0x191)throw new Error(_0x1da5d6(0xdf));throw new Error(_0x1da5d6(0xe7)+_0x51106b[_0x1da5d6(0xd3)]);}const _0x17da7=await _0x51106b[_0x1da5d6(0xd2)]();if(!_0x17da7[_0x1da5d6(0xda)]){const _0x3c65bd=_0x17da7[_0x1da5d6(0xeb)]||_0x17da7[_0x1da5d6(0xe0)]||_0x17da7[_0x1da5d6(0xe8)]?.['message']||_0x17da7[_0x1da5d6(0xe9)]||_0x17da7[_0x1da5d6(0xee)]||_0x1da5d6(0xe3);if(_0x3c65bd[_0x1da5d6(0xed)](_0x1da5d6(0xdd))||_0x3c65bd[_0x1da5d6(0xed)]('Unauthorized')||_0x3c65bd[_0x1da5d6(0xed)]('登录')||_0x3c65bd['includes']('认证')||_0x17da7[_0x1da5d6(0xe6)]===_0x1da5d6(0xd7)||_0x17da7['code']===0x191||_0x17da7['code']==='401')throw new Error(_0x1da5d6(0xdf));throw new Error('获取数据集失败:\x20'+_0x3c65bd);}return{'configArray':_0x17da7[_0x1da5d6(0xe8)][_0x1da5d6(0xd8)],'count':_0x17da7[_0x1da5d6(0xe8)]['count']};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x486626,_0x2ca3d2){const _0x2232c0=a9_0x4603,_0x2fdde2=_0x486626();while(!![]){try{const _0x23204d=-parseInt(_0x2232c0(0x143))/0x1*(parseInt(_0x2232c0(0x154))/0x2)+parseInt(_0x2232c0(0x146))/0x3*(parseInt(_0x2232c0(0x165))/0x4)+parseInt(_0x2232c0(0x153))/0x5+parseInt(_0x2232c0(0x141))/0x6*(parseInt(_0x2232c0(0x161))/0x7)+-parseInt(_0x2232c0(0x163))/0x8*(-parseInt(_0x2232c0(0x152))/0x9)+-parseInt(_0x2232c0(0x140))/0xa+parseInt(_0x2232c0(0x14e))/0xb*(-parseInt(_0x2232c0(0x148))/0xc);if(_0x23204d===_0x2ca3d2)break;else _0x2fdde2['push'](_0x2fdde2['shift']());}catch(_0x5cdec8){_0x2fdde2['push'](_0x2fdde2['shift']());}}}(a9_0x5039,0xdb133));import a9_0xc4df4d from'prettier';import{mkdirSync,writeFileSync,readFileSync}from'node:fs';import a9_0x14d93e from'node:path';import{fileURLToPath}from'node:url';function a9_0x4603(_0x19b5b2,_0x1d4ab0){_0x19b5b2=_0x19b5b2-0x140;const _0x5039cd=a9_0x5039();let _0x4603ea=_0x5039cd[_0x19b5b2];return _0x4603ea;}import{readConfig}from'../utils/config.js';import{TemplateReplacer}from'../utils/template-replacer.js';import{logger}from'../utils/logger.js';export async function generateApiFile(_0x12b6f2,_0x265494='',_0x1a13d1,_0x5c226b=![],_0x98c9b1,_0x1eda4b='./src/api/'){const _0x367495=a9_0x4603,_0x4f6d98=readConfig(),_0xc1d7a7=_0x1a13d1||_0x4f6d98?.['app'];if(typeof _0xc1d7a7!==_0x367495(0x159)||!_0xc1d7a7)throw new Error(_0x367495(0x14c));const _0x5b24c9=_0x5c226b?_0x367495(0x151):'\x22'+_0xc1d7a7+'\x22',_0xc703a5=typeof _0x4f6d98[_0x367495(0x14d)]===_0x367495(0x159)?_0x4f6d98[_0x367495(0x14d)]:undefined,_0x146830=_0x98c9b1||_0xc703a5||_0x367495(0x15c),_0x49253b=_0x146830!==_0x367495(0x15c);let _0x2871ea;if(_0x5c226b)_0x49253b?_0x2871ea=_0x367495(0x162)+_0x5b24c9+_0x367495(0x160)+_0x146830+'\x22\x20}':_0x2871ea='';else{const _0x1c9f0c=_0x49253b?_0x367495(0x160)+_0x146830+'\x22':'';_0x2871ea=_0x367495(0x15f)+_0xc1d7a7+'\x22'+_0x1c9f0c+'\x20}';}const _0x2d65d2=_0x265494?_0x265494+'-api':'api',_0x1ac4b5=_0x265494?_0x265494+_0x367495(0x156):_0x367495(0x145),_0x18a817=[];_0x12b6f2[_0x367495(0x149)](_0x8e4271=>{const _0x23685f=_0x367495;_0x18a817[_0x23685f(0x15b)]({'datasetCode':_0x8e4271[_0x23685f(0x15a)],'tableName':_0x8e4271['tableName'],'name':_0x8e4271[_0x23685f(0x164)]||'','alias':_0x8e4271[_0x23685f(0x144)]||_0x8e4271['key']});});const _0x5526eb=fileURLToPath(import.meta.url),_0x40453e=a9_0x14d93e['resolve'](a9_0x14d93e['dirname'](_0x5526eb),_0x367495(0x155)),_0x3e1fd1=a9_0x14d93e[_0x367495(0x15d)](_0x40453e,_0x367495(0x147)),_0xd05867=a9_0x14d93e[_0x367495(0x15d)](_0x3e1fd1,'api.ts.tpl'),_0x33eabf=a9_0x14d93e[_0x367495(0x15d)](_0x3e1fd1,_0x367495(0x157)),_0x11ae5a=_0x1eda4b[_0x367495(0x15e)]('/')?_0x1eda4b['slice'](0x0,-0x1):_0x1eda4b;mkdirSync(_0x11ae5a,{'recursive':!![]});const _0x3f5561=_0x18a817[0x0]?.[_0x367495(0x144)],_0x4f39c3=readFileSync(_0xd05867,'utf8'),_0x368d93=TemplateReplacer[_0x367495(0x150)](_0x4f39c3,_0xc1d7a7,_0x18a817,_0x3f5561,_0x2d65d2,_0x5b24c9),_0x2d9990=await a9_0xc4df4d[_0x367495(0x14b)](_0x368d93,{'parser':_0x367495(0x158)}),_0x18825e=_0x11ae5a+'/'+_0x2d65d2+_0x367495(0x142);writeFileSync(_0x18825e,_0x2d9990,{'encoding':_0x367495(0x14a)});const _0x54e65d=readFileSync(_0x33eabf,_0x367495(0x14a)),_0x120e19=TemplateReplacer[_0x367495(0x150)](_0x54e65d,_0xc1d7a7,_0x18a817,_0x3f5561,_0x2d65d2,_0x5b24c9,_0x2871ea),_0x4b89b3=await a9_0xc4df4d[_0x367495(0x14b)](_0x120e19,{'parser':_0x367495(0x158)}),_0x47e820=_0x11ae5a+'/'+_0x1ac4b5+_0x367495(0x142);writeFileSync(_0x47e820,_0x4b89b3,{'encoding':_0x367495(0x14a)});const _0x34d48e=_0x18a817['length'];return logger['success']('init-api',_0x367495(0x14f),undefined,{'apiFile':_0x18825e,'clientFile':_0x47e820,'modelCount':_0x34d48e,'configName':_0x5b24c9}),{'modelCount':_0x34d48e,'apiFilePath':_0x18825e,'clientFilePath':_0x47e820,'configName':_0x5b24c9};}function a9_0x5039(){const _0x1a1035=['name','7088524AMbVOI','10546050eQZMIX','342PjaayA','.ts','19238cuIkqZ','alias','client','3eOXeBN','templates/generate-api','5872404PVsjlF','forEach','utf8','format','请先通过\x20`lovrabet\x20config\x20set\x20app\x20<value>`\x20配置应用\x20Code','env','11MaXjOE','API\x20文件生成成功!','replaceApiContent','CONFIG_NAMES.DEFAULT','81eAvurN','3653485xNkgZO','142QIHLPZ','../..','-client','client.ts.tpl','typescript','string','datasetCode','push','online','join','endsWith','{\x20apiConfigName:\x20\x22',',\x20env:\x20\x22','50701mZbknW','{\x20apiConfigName:\x20','792464nQcqaO'];a9_0x5039=function(){return _0x1a1035;};return a9_0x5039();}
|