@lovrabet/cli 1.3.4 → 1.4.1-beta.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.
- 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/update-menu.js +1 -0
- 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.js +1 -0
- 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-flags.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-execa.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/non-interactive.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/i18n/I18nProvider.js +1 -1
- package/lib/i18n/hooks.js +1 -1
- package/lib/i18n/index.js +1 -1
- package/lib/i18n/locales/en-US.js +1 -1
- package/lib/i18n/locales/zh-CN.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/mcp/mcp-install-non-interactive.js +1 -1
- package/lib/mcp/mcp-installer.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -0
- package/lib/ui/IDESelector.js +1 -1
- package/lib/ui/useIDESelection.js +1 -1
- package/lib/utils/ai_config.js +1 -1
- package/lib/utils/cdn-config.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/copy-directory.js +1 -1
- package/lib/utils/file-utils.js +1 -1
- package/lib/utils/guides-cdn.js +1 -1
- package/lib/utils/http-client.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/rules-cdn.js +1 -1
- package/lib/utils/sleep.js +1 -1
- package/lib/utils/template-replacer.js +1 -1
- package/package.json +5 -5
- package/sidecar/flags.json +10 -0
- package/templates/rules/lovrabet_rules.mdc.tpl +891 -0
- package/templates/skill/SKILL.md.tpl +120 -0
- package/lib/ai-setup/AISetupUI.js +0 -1
- package/lib/app-menu-update-cdn/update-menu-cdn-url.js +0 -1
- package/lib/skills/SkillInstallUI.js +0 -1
- package/lib/skills/skill-install-non-interactive.js +0 -1
- package/lib/skills/skill-installer.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
function a56_0x3fb4(_0xcc60cd,_0x487786){_0xcc60cd=_0xcc60cd-0x18f;var _0xec6eeb=a56_0xec6e();var _0x3fb42e=_0xec6eeb[_0xcc60cd];return _0x3fb42e;}var a56_0x5cc0a0=a56_0x3fb4;(function(_0x39b3ba,_0x249ba4){var _0x35bda8=a56_0x3fb4,_0x316f19=_0x39b3ba();while(!![]){try{var _0x4ab09f=parseInt(_0x35bda8(0x273))/0x1*(parseInt(_0x35bda8(0x220))/0x2)+-parseInt(_0x35bda8(0x2da))/0x3*(parseInt(_0x35bda8(0x26d))/0x4)+parseInt(_0x35bda8(0x272))/0x5+-parseInt(_0x35bda8(0x2e0))/0x6+-parseInt(_0x35bda8(0x25a))/0x7*(parseInt(_0x35bda8(0x28f))/0x8)+parseInt(_0x35bda8(0x279))/0x9*(-parseInt(_0x35bda8(0x1fb))/0xa)+-parseInt(_0x35bda8(0x20b))/0xb*(-parseInt(_0x35bda8(0x298))/0xc);if(_0x4ab09f===_0x249ba4)break;else _0x316f19['push'](_0x316f19['shift']());}catch(_0x5b3c99){_0x316f19['push'](_0x316f19['shift']());}}}(a56_0xec6e,0xbcaa4));export default{'common':{'success':'成功','error':'错误','warning':'警告','info':'信息','loading':'加载中...','cancel':'取消','confirm':'确认','next':a56_0x5cc0a0(0x22f),'previous':'上一步','finish':'完成'},'help':{'invalidCommand':a56_0x5cc0a0(0x1da),'usageHint':'使用','viewCommands':a56_0x5cc0a0(0x2f9)},'cli':{'usage':'使用','examples':'示例','description':'描述'},'init':{'inputAppCode':'请输入应用代码\x20(AppCode):','appCodeDesc':a56_0x5cc0a0(0x1c9),'fileExists':a56_0x5cc0a0(0x2a4),'creating':a56_0x5cc0a0(0x27c),'success':a56_0x5cc0a0(0x2e5),'appCodeLabel':a56_0x5cc0a0(0x235),'nextSteps':a56_0x5cc0a0(0x2be),'validation':{'required':a56_0x5cc0a0(0x2b7),'tooLong':a56_0x5cc0a0(0x1b6),'invalidFormat':a56_0x5cc0a0(0x261),'invalidCode':a56_0x5cc0a0(0x299)}},'create':{'projectNameLabel':a56_0x5cc0a0(0x21b),'appCodeLabel':a56_0x5cc0a0(0x270),'validation':{'required':a56_0x5cc0a0(0x1d2),'invalidChars':a56_0x5cc0a0(0x1d3),'tooLong':a56_0x5cc0a0(0x2cf),'dirExists':a56_0x5cc0a0(0x240),'noPermission':a56_0x5cc0a0(0x1ce),'projectName':{'tooLong':a56_0x5cc0a0(0x1a9),'invalidFormat':'项目名只能以字母或数字开头,且只包含字母、数字、-\x20和\x20_','invalid':a56_0x5cc0a0(0x1d4),'dirExistsShort':a56_0x5cc0a0(0x291)},'appCode':{'tooLong':a56_0x5cc0a0(0x24c),'invalidFormat':a56_0x5cc0a0(0x1d8),'invalid':a56_0x5cc0a0(0x20a)},'ide':{'required':'请至少选择一个\x20IDE'}},'common':{'yes':'是','no':'否','selectHint':a56_0x5cc0a0(0x2f5)},'steps':{'pullingApi':a56_0x5cc0a0(0x24e),'apiPullSuccess':a56_0x5cc0a0(0x20f),'apiPullFailed':a56_0x5cc0a0(0x2fe),'apiPullError':a56_0x5cc0a0(0x267),'updatingPackage':'*\x20正在更新\x20package.json\x20的\x20name\x20和\x20description\x20字段','packageUpdated':a56_0x5cc0a0(0x1e7),'configuringAppCode':a56_0x5cc0a0(0x2a7),'creatingConfig':'*\x20正在为项目\x20{{name}}\x20创建配置文件','configCreatedWithAppCode':a56_0x5cc0a0(0x2ef),'configCreated':a56_0x5cc0a0(0x19d),'configuringMcp':a56_0x5cc0a0(0x2c1),'mcpConfigComplete':a56_0x5cc0a0(0x1e5),'cleaningUp':'*\x20清理失败的项目目录:\x20{{dir}}','projectName':{'label':a56_0x5cc0a0(0x1c8)},'appCode':{'label':a56_0x5cc0a0(0x270),'notSet':a56_0x5cc0a0(0x294)},'apiPull':{'label':a56_0x5cc0a0(0x25e)},'lovrabetSetup':{'label':a56_0x5cc0a0(0x282),'ideCount':a56_0x5cc0a0(0x2a1)},'login':{'label':a56_0x5cc0a0(0x1e8),'loggedIn':a56_0x5cc0a0(0x265),'failed':a56_0x5cc0a0(0x1bf),'skipped':a56_0x5cc0a0(0x232)}},'title':a56_0x5cc0a0(0x2ab),'completedStep':a56_0x5cc0a0(0x213),'input':{'projectName':{'label':a56_0x5cc0a0(0x21c),'hint':a56_0x5cc0a0(0x1ca)},'appCode':{'label':a56_0x5cc0a0(0x1e2),'optional':a56_0x5cc0a0(0x1db),'hint':'绑定应用AppCode可自动配置\x20API,如:\x20app-c4c89304\x20(直接回车跳过)'}},'login':{'checking':a56_0x5cc0a0(0x230),'checkingStatus':'\x20检查中...','valid':'√\x20检测到有效登录状态','notDetected':a56_0x5cc0a0(0x243),'prompt':a56_0x5cc0a0(0x22b),'inProgress':a56_0x5cc0a0(0x1a8),'inProgressStatus':a56_0x5cc0a0(0x281)},'apiPull':{'confirm':a56_0x5cc0a0(0x2c2),'recommendation':a56_0x5cc0a0(0x1d1)},'lovrabetSetup':{'confirm':a56_0x5cc0a0(0x2d7),'selectIdeHint':'\x20\x20使用\x20←→\x20返回修改选择,回车确认\x20IDE','selectIdeTitle':'选择要配置的\x20IDE:','keyboardShortcuts':a56_0x5cc0a0(0x218),'inProgress':a56_0x5cc0a0(0x2c1),'mcpCompleted':a56_0x5cc0a0(0x1ec),'skillCompleted':a56_0x5cc0a0(0x219)},'creating':a56_0x5cc0a0(0x1fe),'display':{'projectName':a56_0x5cc0a0(0x239),'appCode':a56_0x5cc0a0(0x205)},'packageJson':{'updating':a56_0x5cc0a0(0x225),'updated':a56_0x5cc0a0(0x1e7)},'config':{'configuringAppCode':a56_0x5cc0a0(0x2a7),'creating':'*\x20正在为项目\x20{{name}}\x20创建配置文件','createdWithAppCode':a56_0x5cc0a0(0x2ef),'createdWithoutAppCode':a56_0x5cc0a0(0x19d)},'cleanup':{'inProgress':a56_0x5cc0a0(0x2ce)},'results':{'mcpComplete':a56_0x5cc0a0(0x1ec),'skillComplete':'✓\x20Skill\x20安装完成:','nextSteps':a56_0x5cc0a0(0x1e4)},'nextSteps':{'configureMcpAndSkill':a56_0x5cc0a0(0x2fb),'skill':a56_0x5cc0a0(0x2ed),'mcp':a56_0x5cc0a0(0x264),'startProject':'启动项目:','pullApi':a56_0x5cc0a0(0x26c),'configAppCode':'配置AppCode:'},'errors':{'createFailed':'×\x20项目创建失败:\x20{{error}}','cleanupFailed':a56_0x5cc0a0(0x2df),'depsInstallFailed':a56_0x5cc0a0(0x238)},'nonInteractive':{'creating':'*\x20正在创建项目\x20{{name}}...','templateCreated':a56_0x5cc0a0(0x192),'packageJsonUpdated':a56_0x5cc0a0(0x21e),'installingDeps':'\x20\x20正在安装依赖...','depsSkipped':a56_0x5cc0a0(0x27b),'codeFormatted':a56_0x5cc0a0(0x19f),'envConfigured':a56_0x5cc0a0(0x2f3),'success':'\x0a√\x20项目\x20{{name}}\x20创建成功!'},'tasks':{'copyFiles':a56_0x5cc0a0(0x1c7),'formatCode':a56_0x5cc0a0(0x229),'installDependencies':a56_0x5cc0a0(0x251)},'nextStepsAlt':{'startProject':a56_0x5cc0a0(0x210),'pullApi':a56_0x5cc0a0(0x25d),'configureLovrabet':a56_0x5cc0a0(0x2fb)}},'config':{'title':'项目配置','help':{'invalidCommand':'无效的命令,可用命令如下:','examples':'配置示例:','set':a56_0x5cc0a0(0x27a),'get':a56_0x5cc0a0(0x2db),'list':a56_0x5cc0a0(0x1ba),'exampleApp':'配置当前项目的\x20App\x20Code','exampleEnv':a56_0x5cc0a0(0x2f6),'exampleLocale':'设置显示语言\x20(zh/en)'},'validation':{'envInvalid':a56_0x5cc0a0(0x23a),'localeInvalid':a56_0x5cc0a0(0x1b5),'valueInvalid':a56_0x5cc0a0(0x292),'noValue':a56_0x5cc0a0(0x1f6),'saveFailed':a56_0x5cc0a0(0x24a)},'success':{'envSet':'✓\x20{{scope}}环境配置已设置为:\x20{{value}}','localeSet':a56_0x5cc0a0(0x297)},'scope':{'project':'项目','global':'全局'}},'api':{'title':a56_0x5cc0a0(0x2a5),'pull':a56_0x5cc0a0(0x216),'doc':a56_0x5cc0a0(0x268),'help':{'title':'lovrabet\x20api\x20-\x20API\x20相关操作','usage':'用法:','options':'选项:','optAppcode':a56_0x5cc0a0(0x195),'optOutput':a56_0x5cc0a0(0x274),'optEnv':a56_0x5cc0a0(0x256),'optDatasetcode':'指定要生成文档的数据集代码(多个用逗号分隔,仅\x20doc\x20命令)','optHelp':a56_0x5cc0a0(0x1e0),'examples':a56_0x5cc0a0(0x221),'pullDesc':'拉取并生成\x20API\x20配置文件','pullAppcode':a56_0x5cc0a0(0x2b3),'pullOutput':a56_0x5cc0a0(0x2fa),'pullEnv':a56_0x5cc0a0(0x2f8),'docDesc':a56_0x5cc0a0(0x1d7),'docAppcode':a56_0x5cc0a0(0x2b3),'docOutput':a56_0x5cc0a0(0x1f9),'docEnv':a56_0x5cc0a0(0x2f0),'docDataset':a56_0x5cc0a0(0x1f1),'docDatasets':a56_0x5cc0a0(0x2d2),'unknownCommand':a56_0x5cc0a0(0x29d),'availableCommands':a56_0x5cc0a0(0x2dc)},'common':{'noPositionalArgs':a56_0x5cc0a0(0x18f),'useAppcodeFlag':'请使用\x20--appcode\x20参数,例如:','noAppCode':a56_0x5cc0a0(0x2b2),'noAppCodeHint':a56_0x5cc0a0(0x237),'noAppCodeOption1':'\x20\x20\x201.\x20配置默认值:\x20lovrabet\x20config\x20set\x20appcode\x20<app-code>','noAppCodeOption2Pull':a56_0x5cc0a0(0x1c3),'noAppCodeOption2Doc':'\x20\x20\x202.\x20使用参数:\x20lovrabet\x20api\x20doc\x20--appcode\x20<app-code>','usingConfigAppCode':a56_0x5cc0a0(0x21d),'usingConfigAppCodeHint':a56_0x5cc0a0(0x1b4),'usingSpecifiedAppCode':a56_0x5cc0a0(0x1ad),'usingDefaultAppCode':a56_0x5cc0a0(0x2e9),'noAppCodeDefault':a56_0x5cc0a0(0x22c),'paramsInvalidJson':a56_0x5cc0a0(0x2cd),'paramsNotJson':a56_0x5cc0a0(0x212),'paramsError':a56_0x5cc0a0(0x28a),'datasetcodeEmpty':a56_0x5cc0a0(0x2c7),'onlyGenerateDatasets':a56_0x5cc0a0(0x242),'authExpired':a56_0x5cc0a0(0x254),'authRetry':'重新登录后再试','unknownError':'未知错误'},'pullUI':{'fetching':a56_0x5cc0a0(0x2b8),'successPull':a56_0x5cc0a0(0x23f),'duplicateInfo':a56_0x5cc0a0(0x1c2),'generatedFiles':a56_0x5cc0a0(0x1eb),'modelFile':a56_0x5cc0a0(0x2eb),'clientFile':'-\x20客户端实例文件','importHint':a56_0x5cc0a0(0x1a1),'pullFailed':a56_0x5cc0a0(0x2f2)},'docUI':{'fetchingDatasets':'正在获取数据集列表...','noDatasets':a56_0x5cc0a0(0x1d6),'datasetsNotFound':a56_0x5cc0a0(0x24d),'allDatasetsNotFound':a56_0x5cc0a0(0x197),'filteredDatasets':'*\x20从\x20{{total}}\x20个数据集中筛选出\x20{{count}}\x20个匹配的数据集','generatingDocs':a56_0x5cc0a0(0x1ed),'generatingFile':'正在生成\x20{{fileName}}.md\x20({{current}}/{{total}})','docComplete':a56_0x5cc0a0(0x1e3),'docFailed':a56_0x5cc0a0(0x2e2),'processedDatasets':a56_0x5cc0a0(0x255),'outputDir':a56_0x5cc0a0(0x1a7),'generatedDocs':'*\x20生成的文档文件:','failedDatasets':a56_0x5cc0a0(0x2e3),'docGenerateFailed':a56_0x5cc0a0(0x263)},'fetchModel':{'fetching':'正在从服务器拉取模型列表...\x20(环境:\x20{{env}})','httpError':'获取数据集失败,HTTP状态码:\x20{{status}}','fetchError':'获取数据集失败:\x20{{error}}'},'generateFile':{'noAppCode':a56_0x5cc0a0(0x2bd)},'docBatch':{'totalDatasets':a56_0x5cc0a0(0x211),'generating':a56_0x5cc0a0(0x1ea),'success':a56_0x5cc0a0(0x27d),'failed':a56_0x5cc0a0(0x2e1),'waiting':a56_0x5cc0a0(0x1f0),'docFormatError':'响应数据格式错误\x20({{datasetCode}}):缺少\x20data.markdown\x20字段','httpError':a56_0x5cc0a0(0x2c0)},'silent':{'invalidPrefix':a56_0x5cc0a0(0x1fa),'fetching':a56_0x5cc0a0(0x2b8),'generating':'*\x20开始生成\x20API\x20配置文件:','modelFileName':'\x20\x20\x20•\x20{{name}}.ts\x20-\x20模型配置文件','clientFileName':a56_0x5cc0a0(0x1e1),'processing':'*\x20正在处理\x20{{count}}\x20个数据集...','success':a56_0x5cc0a0(0x23f),'error':a56_0x5cc0a0(0x21f)}},'auth':{'title':'登录认证','login':{'success':{'title':a56_0x5cc0a0(0x1cb),'message':a56_0x5cc0a0(0x1a4),'manualClose':'无法自动关闭窗口,请手动关闭此标签页或窗口。'},'successCli':a56_0x5cc0a0(0x2ba),'inProgress':a56_0x5cc0a0(0x2cb),'browserPrompt':a56_0x5cc0a0(0x1b7),'pressEnter':'*\x20按回车开始登录。','pressQToExit':a56_0x5cc0a0(0x2ea)},'session':{'valid':a56_0x5cc0a0(0x29a)},'server':{'starting':a56_0x5cc0a0(0x246),'loginUrl':a56_0x5cc0a0(0x2ae),'openingBrowser':a56_0x5cc0a0(0x2bf),'manualOpenHint':'💡\x20如果浏览器没有自动打开,请手动复制上面的登录地址到浏览器中打开','browserOpened':a56_0x5cc0a0(0x204),'browserOpenFailed':'⚠️\x20\x20无法自动打开浏览器','manualCopyUrl':'🔗\x20请手动复制登录地址到浏览器:'},'logout':{'success':a56_0x5cc0a0(0x200),'notLoggedIn':'!\x20当前未登录'}},'menu':{'sync':a56_0x5cc0a0(0x26a),'update':a56_0x5cc0a0(0x1f7)},'mcp':{'cursor':a56_0x5cc0a0(0x2a2),'claude':'Claude\x20Code','error':{'unsupportedCommand':a56_0x5cc0a0(0x1b3),'missingAppcode':a56_0x5cc0a0(0x2e8)},'help':{'title':a56_0x5cc0a0(0x193),'availableCommands':a56_0x5cc0a0(0x1de),'command':{'install':a56_0x5cc0a0(0x1fc),'help':a56_0x5cc0a0(0x227)},'usage':{'help':a56_0x5cc0a0(0x22d),'install':'\x20\x20lovrabet\x20mcp\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20交互式选择并配置\x20MCP','installCursor':a56_0x5cc0a0(0x28c),'installClaude':a56_0x5cc0a0(0x22a)},'configMethods':'配置方式:','configMethodsInteractive':a56_0x5cc0a0(0x20d),'configMethodsInteractiveHint':a56_0x5cc0a0(0x1ff),'configMethodsDirect':'\x20\x20直接配置指定\x20IDE\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20使用\x20--ide\x20标志直接配置','configMethodsDirectCursor':a56_0x5cc0a0(0x22e),'configMethodsDirectClaude':a56_0x5cc0a0(0x1f2),'supportedIDEs':a56_0x5cc0a0(0x27f),'examples':a56_0x5cc0a0(0x1b8),'exampleInstall':a56_0x5cc0a0(0x1cd),'exampleInstallHint':'\x20\x20\x20\x20→\x20交互式选择\x20IDE','exampleInstallCursor':a56_0x5cc0a0(0x207),'exampleInstallCursorHint':a56_0x5cc0a0(0x25c),'configGuide':'配置指南:'},'select':{'chooseIDE':'\x0a请选择要配置\x20MCP\x20的\x20IDE:\x0a','cancel':a56_0x5cc0a0(0x217),'enterNumber':a56_0x5cc0a0(0x295),'prompt':'请选择:\x20','cancelled':a56_0x5cc0a0(0x286),'invalidChoice':'\x0a无效的选择,请输入\x201-{{count}}\x20之间的数字\x0a'},'installFlow':{'configuring':a56_0x5cc0a0(0x2b6),'error':a56_0x5cc0a0(0x260)},'cursorConfig':{'success':a56_0x5cc0a0(0x1e9),'configInfo':a56_0x5cc0a0(0x1b2),'usageHint':a56_0x5cc0a0(0x1f4),'restartRequired':'请重启\x20Cursor\x20以加载新的\x20MCP\x20配置。','error':'\x0a错误:\x20配置失败\x20-\x20{{error}}\x0a','rules':{'exists':'Cursor\x20Rules\x20文件已存在,跳过','created':a56_0x5cc0a0(0x293),'copyFailed':a56_0x5cc0a0(0x28d)},'updateExisting':a56_0x5cc0a0(0x2b5),'createNew':'创建新的\x20mcp.json\x20配置','written':a56_0x5cc0a0(0x289)},'claudeConfig':{'error':'\x0a错误:\x20配置失败\x20-\x20{{error}}\x0a','agents':{'exists':a56_0x5cc0a0(0x2e4),'created':a56_0x5cc0a0(0x1cc),'copyFailed':a56_0x5cc0a0(0x19a)},'manualCommand':a56_0x5cc0a0(0x199),'configInfo':a56_0x5cc0a0(0x1b2),'restartRequired':a56_0x5cc0a0(0x1a3),'commandGenerated':a56_0x5cc0a0(0x19e)},'other':{'configInfo':a56_0x5cc0a0(0x2ac),'configGuide':'详细配置指南:\x20https://help.yuntoo.com/mcp/config-guide','guideShown':a56_0x5cc0a0(0x2a0)},'config':{'env':a56_0x5cc0a0(0x29f)},'install':{'starting':a56_0x5cc0a0(0x228),'unknownIDE':a56_0x5cc0a0(0x1a6),'otherIDE':a56_0x5cc0a0(0x1bb),'success':'\x0a✓\x20{{ide}}\x20MCP\x20配置成功','failed':a56_0x5cc0a0(0x247),'completed':a56_0x5cc0a0(0x271),'manualActionRequired':a56_0x5cc0a0(0x258)},'ui':{'otherIDE':a56_0x5cc0a0(0x1bb),'otherIDEDescription':a56_0x5cc0a0(0x23c),'selectAtLeastOne':'请至少选择一个\x20IDE','selectedIDE':a56_0x5cc0a0(0x1f8),'count':a56_0x5cc0a0(0x202),'title':a56_0x5cc0a0(0x25f),'configuring':a56_0x5cc0a0(0x2a6),'completed':a56_0x5cc0a0(0x2b4),'partialManual':'⚠️\x20部分配置需要手动完成','failed':a56_0x5cc0a0(0x2a8),'manualRequired':'⚠️\x20配置需要手动完成','pressAnyKeyToExit':a56_0x5cc0a0(0x2b0),'unsupportedIDE':a56_0x5cc0a0(0x2c4)}},'aiSetup':{'error':{'missingAppcode':'需要先配置\x20appcode'},'mcp':{'cursor':{'success':'Cursor\x20MCP\x20配置成功','written':a56_0x5cc0a0(0x289),'error':a56_0x5cc0a0(0x215),'rules':{'created':a56_0x5cc0a0(0x293),'copyFailed':a56_0x5cc0a0(0x28d)}},'claude':{'commandGenerated':a56_0x5cc0a0(0x2fc),'manualCommand':a56_0x5cc0a0(0x28b),'configInfo':a56_0x5cc0a0(0x1b2),'env':a56_0x5cc0a0(0x20c),'restartRequired':a56_0x5cc0a0(0x253),'manualExecute':a56_0x5cc0a0(0x1d0),'agents':{'created':a56_0x5cc0a0(0x1cc),'copyFailed':a56_0x5cc0a0(0x19a)}},'other':{'name':'其他','title':a56_0x5cc0a0(0x2b1),'guideShown':a56_0x5cc0a0(0x2d3)},'unsupportedIDE':a56_0x5cc0a0(0x244)},'skill':{'unknownIDE':a56_0x5cc0a0(0x1a6),'installSuccess':'{{name}}\x20技能包安装成功','itemsCreated':a56_0x5cc0a0(0x241),'installFailed':a56_0x5cc0a0(0x2f4),'sharedCopied':a56_0x5cc0a0(0x284),'sharedCopyFailed':a56_0x5cc0a0(0x2c9),'manifestCreated':a56_0x5cc0a0(0x278)},'ui':{'selectAtLeastOne':a56_0x5cc0a0(0x2dd),'confirm':{'title':a56_0x5cc0a0(0x1dc),'mcpDescription':'•\x20MCP:\x20让\x20AI\x20直接访问\x20Lovrabet\x20数据集','skillDescription':'•\x20Skill:\x20安装研发最佳实践、Backend\x20Function\x20规范','yes':a56_0x5cc0a0(0x2b9),'no':a56_0x5cc0a0(0x250),'default':a56_0x5cc0a0(0x191)},'select':{'title':a56_0x5cc0a0(0x288),'mcpSection':a56_0x5cc0a0(0x1fd),'skillSection':a56_0x5cc0a0(0x2d5),'controls':a56_0x5cc0a0(0x198)},'installing':a56_0x5cc0a0(0x20e)}},'appMenu':{'error':{'missingAppCode':a56_0x5cc0a0(0x22c),'appCodeHint':{'title':a56_0x5cc0a0(0x237),'option1':a56_0x5cc0a0(0x252),'option2':'\x20\x20\x202.\x20配置默认值:\x20lovrabet\x20config\x20set\x20app\x20<app-code>'},'authExpired':a56_0x5cc0a0(0x254),'authValidationFailed':a56_0x5cc0a0(0x1dd),'httpStatus':a56_0x5cc0a0(0x224),'fetchFailed':a56_0x5cc0a0(0x201),'createHttpStatus':a56_0x5cc0a0(0x285),'createFailed':a56_0x5cc0a0(0x259)},'info':{'emptyMenuList':a56_0x5cc0a0(0x2ee)},'success':{'fetched':a56_0x5cc0a0(0x2bc),'created':a56_0x5cc0a0(0x257)},'fetching':{'online':a56_0x5cc0a0(0x2af),'daily':a56_0x5cc0a0(0x194)},'creating':{'single':a56_0x5cc0a0(0x29b),'batch':{'start':a56_0x5cc0a0(0x2ca),'completed':a56_0x5cc0a0(0x1a0)}},'sync':{'title':a56_0x5cc0a0(0x1c6),'table':{'menuName':a56_0x5cc0a0(0x248),'local':'本地','lovrabetPlatform':a56_0x5cc0a0(0x1f5)},'error':{'noMenuSelected':a56_0x5cc0a0(0x21a),'invalidJsUrl':a56_0x5cc0a0(0x226),'jsUrlUnreachable':a56_0x5cc0a0(0x1aa),'invalidCssUrl':a56_0x5cc0a0(0x280),'cssUrlUnreachable':a56_0x5cc0a0(0x28e),'createMenuFailed':'创建菜单失败','authHint':{'prefix':a56_0x5cc0a0(0x2c8),'suffix':a56_0x5cc0a0(0x2de)},'noLocalPages':'!\x20未找到本地页面,请先创建页面'},'step':{'selectedMenus':a56_0x5cc0a0(0x287),'selectedMenusCount':a56_0x5cc0a0(0x202),'jsUrl':a56_0x5cc0a0(0x2f1),'cssUrl':a56_0x5cc0a0(0x231),'selectMenus':a56_0x5cc0a0(0x2c3),'creating':a56_0x5cc0a0(0x222),'completed':a56_0x5cc0a0(0x206)},'operation':{'update':'更新','create':'新建'},'loading':{'fetchingMenuList':a56_0x5cc0a0(0x208)},'hotkeys':a56_0x5cc0a0(0x2e7),'input':{'jsUrl':{'label':a56_0x5cc0a0(0x2bb),'placeholder':'\x20输入项目的\x20JS\x20资源链接(https://...)'},'cssUrl':{'label':a56_0x5cc0a0(0x275),'placeholder':a56_0x5cc0a0(0x2e6)}}},'updateCdn':{'title':a56_0x5cc0a0(0x2d9),'error':{'invalidJsUrl':a56_0x5cc0a0(0x226),'jsUrlUnreachable':'JS\x20链接无法访问','invalidCssUrl':a56_0x5cc0a0(0x280),'cssUrlUnreachable':a56_0x5cc0a0(0x28e),'authHint':{'prefix':a56_0x5cc0a0(0x2c8),'suffix':a56_0x5cc0a0(0x2de)},'noCdnLinks':a56_0x5cc0a0(0x276),'updateFailed':a56_0x5cc0a0(0x236)},'loading':{'fetching':a56_0x5cc0a0(0x2d8),'syncing':'\x20资源正在同步中...'},'action':{'continue':'继续更新','cancel':a56_0x5cc0a0(0x1a5)},'success':{'updated':a56_0x5cc0a0(0x29e),'synced':a56_0x5cc0a0(0x2d6)},'updating':'正在更新菜单资源链接:\x20{{label}}\x20({{path}})','preview':{'title':a56_0x5cc0a0(0x190),'menuList':'待更新的菜单列表:','resourceLinks':a56_0x5cc0a0(0x234)},'input':{'title':a56_0x5cc0a0(0x203),'jsUrl':{'label':a56_0x5cc0a0(0x24b),'placeholder':'输入项目的\x20JS\x20资源链接(https://...)'},'cssUrl':{'label':a56_0x5cc0a0(0x283),'placeholder':a56_0x5cc0a0(0x209)}}}},'skill':{'install':'安装技能包','error':{'unsupportedCommand':'错误:\x20不支持的命令:\x20{{cmd}}','installFailed':a56_0x5cc0a0(0x196),'unknownPlatform':a56_0x5cc0a0(0x1be),'unknownIDE':'\x20\x20✗\x20未知的\x20IDE:\x20{{ide}}','noValidIDE':a56_0x5cc0a0(0x26e),'selectAtLeastOne':a56_0x5cc0a0(0x296)},'errorHint':{'availableCommands':a56_0x5cc0a0(0x1de),'installInteractive':'\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择并安装技能包','installDirect':'\x20\x20lovrabet\x20skill\x20install\x20<ide>\x20\x20\x20\x20\x20#\x20直接安装指定\x20IDE\x20的技能包','showHelp':'\x20\x20lovrabet\x20skill\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20显示帮助信息\x0a','usageExamples':a56_0x5cc0a0(0x19b),'exampleInteractive':a56_0x5cc0a0(0x214),'exampleDirect':a56_0x5cc0a0(0x2f7)},'select':{'title':a56_0x5cc0a0(0x1c4),'installAll':a56_0x5cc0a0(0x233),'cancel':'取消','inputFormat':a56_0x5cc0a0(0x2d0),'inputHint':a56_0x5cc0a0(0x1ef),'prompt':'请选择:\x20','cancelled':'\x0a已取消安装\x0a','noneSelected':'\x0a未选择任何\x20IDE,安装取消\x0a','selectedIDE':a56_0x5cc0a0(0x1f8),'count':a56_0x5cc0a0(0x202)},'cdn':{'fetching':a56_0x5cc0a0(0x1b1),'fetchingExtend':'正在从\x20CDN\x20拉取开发者指南(含扩展)...','fetchSuccess':'✓\x20拉取\x20{{count}}\x20个开发者指南','fetchFailed':a56_0x5cc0a0(0x1bd)},'installing':{'title':a56_0x5cc0a0(0x1bc),'progress':'正在安装技能包...','ide':a56_0x5cc0a0(0x2ec),'installed':a56_0x5cc0a0(0x25b),'created':a56_0x5cc0a0(0x2d1),'createdDir':a56_0x5cc0a0(0x29c),'createdManifest':a56_0x5cc0a0(0x23b)},'done':{'success':a56_0x5cc0a0(0x1ac),'successInline':a56_0x5cc0a0(0x1d5),'guidesLocation':'开发者指南位置:','guidesPath':a56_0x5cc0a0(0x1ab),'guidesPathInline':a56_0x5cc0a0(0x290),'pressAnyKey':a56_0x5cc0a0(0x2b0)},'generic':a56_0x5cc0a0(0x249),'help':{'title':'Lovrabet\x20Skill\x20-\x20开发者技能包安装工具','usage':a56_0x5cc0a0(0x269),'showHelp':'显示帮助信息','installInteractive':a56_0x5cc0a0(0x1f3),'installDirect':a56_0x5cc0a0(0x1df),'installAll':a56_0x5cc0a0(0x1e6),'installWithBff':a56_0x5cc0a0(0x1ae),'installMethods':a56_0x5cc0a0(0x277),'interactiveSelect':a56_0x5cc0a0(0x245),'interactiveKeys':a56_0x5cc0a0(0x23d),'directInstall':'\x20\x20直接安装指定\x20IDE\x20(支持多个)\x20\x20\x20\x20\x20\x20\x20-\x20使用\x20--ide\x20标志直接安装','bffWorkflow':a56_0x5cc0a0(0x1cf),'supportedIDEs':a56_0x5cc0a0(0x27f),'agentDesc':'其他\x20(通用模板)\x20(.agent/skills/)\x20-\x20兜底方案','allDesc':a56_0x5cc0a0(0x24f),'options':a56_0x5cc0a0(0x23e),'bffOption':a56_0x5cc0a0(0x1b0),'skillContents':a56_0x5cc0a0(0x1b9),'skillContentsList':a56_0x5cc0a0(0x2cc),'examples':a56_0x5cc0a0(0x1b8),'exampleInteractive':a56_0x5cc0a0(0x1c0),'exampleDirectDesc':a56_0x5cc0a0(0x26b),'exampleBffDesc':a56_0x5cc0a0(0x1c1),'exampleAllDesc':a56_0x5cc0a0(0x27e),'afterInstall':a56_0x5cc0a0(0x2aa),'afterInstallList':'\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开发者技能指南','guidesLocationTitle':a56_0x5cc0a0(0x223)}},'logs':{'title':'日志','view':a56_0x5cc0a0(0x1d9),'clear':a56_0x5cc0a0(0x26f),'noLogs':'*\x20暂无日志记录','header':a56_0x5cc0a0(0x2ad),'time':a56_0x5cc0a0(0x266),'duration':a56_0x5cc0a0(0x1a2),'details':a56_0x5cc0a0(0x262),'cleared':a56_0x5cc0a0(0x1ee)},'start':{'starting':a56_0x5cc0a0(0x1c5)},'build':{'building':a56_0x5cc0a0(0x2c5)},'preview':{'previewing':a56_0x5cc0a0(0x2a3),'watchMode':a56_0x5cc0a0(0x2a9)},'ui':{'ideSelector':{'title':a56_0x5cc0a0(0x2c6),'hotkeys':a56_0x5cc0a0(0x2d4)}},'upgrade':{'cli':{'title':'↪\x20新版本可用','current':a56_0x5cc0a0(0x19c),'stable':a56_0x5cc0a0(0x2fd),'command':a56_0x5cc0a0(0x1af)},'sdk':{'title':'↪\x20SDK\x20版本更新','current':'\x20\x20\x20当前版本:\x20{{package}}@{{version}}','stable':a56_0x5cc0a0(0x2fd),'command':'\x20\x20\x20升级命令:\x20{{command}}'}}};function a56_0xec6e(){var _0x3cc118=['\x20\x20q.\x20取消\x0a','↑/↓:\x20移动\x20空格:\x20切换\x20a:\x20全选\x20i/r:\x20反选\x20Enter:\x20确认','✓\x20Skill\x20安装完成:','请至少选择一个菜单','项目名称','*\x20项目名:\x20','*\x20使用配置的应用AppCode:\x20{{appCode}}','\x20\x20√\x20package.json\x20已更新','×\x20API\x20配置拉取异常:\x20{{error}}','2YsPSWv','示例:','*\x20正在创建菜单...','开发者指南位置:','获取菜单列表失败,HTTP状态码:\x20{{status}}','*\x20正在更新\x20package.json\x20的\x20name\x20和\x20description\x20字段','请输入有效的\x20JS\x20https\x20链接','\x20\x20lovrabet\x20mcp\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20显示帮助信息\x0a','开始配置\x20MCP','格式化代码','\x20\x20lovrabet\x20mcp\x20install\x20--claude\x20\x20\x20\x20直接配置\x20Claude\x20Code\x20MCP','*\x20是否要先登录以便拉取\x20API\x20配置?','未提供应用AppCode,且配置中也没有默认值','\x20\x20lovrabet\x20mcp\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20显示帮助信息','\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x20--cursor\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20配置\x20Cursor','下一步','*\x20正在检查登录状态...','CSS\x20链接','跳过登录','全部安装','待更新的资源链接:','AppCode','更新菜单资源失败:\x20{{error}}','!\x20请使用以下方式之一:','依赖安装失败:\x20{{error}}','项目名称:\x20','环境配置值只能是\x20\x22online\x22\x20或\x20\x22daily\x22','✓\x20创建\x20.lovrabet/skill-manifest.json','其他\x20IDE\x20配置指引','\x20\x20\x20\x20→\x20使用\x20↑↓\x20移动光标,空格选中/取消,Enter\x20确认\x0a\x20\x20\x20\x20→\x20按\x20a\x20全选,按\x20i/r\x20反选,按\x20q\x20退出','选项:','√\x20成功拉取\x20{{datasetCount}}\x20个数据集,生成\x20{{modelCount}}\x20个模型','项目目录\x20{{name}}\x20已存在,请使用其他项目名','已创建\x20{{count}}\x20项','*\x20仅生成指定数据集的文档:\x20{{codes}}','!\x20未检测到有效登录','不支持的\x20MCP\x20IDE:\x20{{ide}}','\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列表供选择,支持多选','🔐\x20正在启动登录服务...','\x0a✗\x20{{ide}}\x20MCP\x20配置失败:\x20{{error}}','菜单名称','通用模板','保存配置失败','JS\x20链接:\x20','应用AppCode长度不能超过\x20100\x20个字符','!\x20以下数据集代码不存在:\x20{{codes}}','*\x20正在拉取\x20API\x20配置...','安装所有\x20IDE\x20技能包(包括通用模板)','[N]\x20跳过,稍后手动配置','安装依赖','\x20\x20\x201.\x20直接指定:\x20lovrabet\x20api\x20pull\x20<app-code>','\x20\x20重启\x20Claude\x20Code\x20后生效\x0a','登录鉴权失败,登录已过期,请使用\x20lovrabet\x20auth\x20重新登录','*\x20共处理\x20{{count}}\x20个数据集','指定环境(如:daily、online)','菜单创建成功:','\x0a注意:部分配置需要手动执行命令,请按照上述说明操作','创建菜单失败:\x20{{error}}','10269bMfRDR','已安装\x20{{count}}\x20个目录','\x20\x20\x20\x20→\x20直接配置\x20Cursor\x20MCP\x20(写入\x20.cursor/mcp.json)','拉取API配置:\x20','拉取API配置','配置\x20Lovrabet\x20MCP\x20服务器','\x0a错误:\x20配置失败\x20-\x20{{error}}\x0a','应用代码只能包含字母、数字、-\x20和\x20_','\x20\x20\x20详情:\x20{{details}}','文档生成失败:\x20{{error}}','\x20\x20•\x20MCP\x20服务器:','已登录','\x20\x20\x20时间:\x20{{time}}','!\x20API\x20配置拉取异常,项目已创建,可稍后手动执行:\x20lovrabet\x20api\x20pull','生成文档','用法:','同步菜单','\x20\x20\x20\x20→\x20直接安装\x20Cursor\x20和\x20claude\x20code\x20技能包','拉取API配置:','755916EISDxL','\x0a没有有效的\x20IDE\x20需要安装\x0a','清空日志','应用AppCode','\x0a✓\x20MCP\x20配置完成\x20({{successCount}}/{{totalCount}}\x20成功)','139075aoopks','1163207HrAsLX','指定输出目录(pull:\x20./src/api/,doc:\x20./docs)','*\x20CSS\x20链接:\x20','!\x20未找到菜单资源链接','安装方式:','创建技能包\x20manifest','531QwWfaN','设置配置项','\x20\x20√\x20依赖安装跳过(非交互模式)','正在初始化配置文件...','✓\x20成功生成:\x20{{fileName}}.md','\x20\x20\x20\x20→\x20安装所有\x20IDE\x20技能包','支持的\x20IDE:','请输入有效的\x20CSS\x20https\x20链接','\x20登录中...','MCP\x20和\x20Skill','CSS\x20链接:\x20','共享技能文件复制成功','创建菜单失败,HTTP状态码:\x20{{status}}','\x0a已取消配置\x0a','已选择菜单','*\x20选择要配置的\x20IDE:','已写入\x20.cursor/mcp.json','\x20\x20错误:\x20{{error}}','\x0a📋\x20请执行以下命令配置\x20Claude\x20Code\x20MCP:\x0a','\x20\x20lovrabet\x20mcp\x20install\x20--cursor\x20\x20\x20\x20直接配置\x20Cursor\x20MCP','复制\x20Cursor\x20Rules\x20文件失败','CSS\x20链接无法访问','2192WiQiBZ','开发者指南位置:\x20.lovrabet/skill/.shared/guides/','目录\x20\x22{{name}}\x22\x20已存在','配置值无效或过长','创建\x20Cursor\x20Rules\x20文件','未设置','请输入编号选择\x20IDE:\x0a','请至少选择一个\x20IDE','✓\x20{{scope}}语言配置已设置为:\x20{{value}}','1360008okRhwu','应用代码不合法','√\x20当前为有效会话,无需重新登录。','正在创建菜单:\x20{{label}}\x20({{path}})','\x20\x20✓\x20创建\x20{{path}}/','未知的\x20api\x20命令','√\x20更新成功','环境:\x20{{env}}','其他\x20IDE\x20配置指引已显示','{{count}}\x20个\x20IDE','Cursor','正在预览项目...','当前目录已存在\x20.lovrabetrc\x20文件','API\x20管理','正在配置\x20MCP\x20服务器...','*\x20正在为项目\x20{{name}}\x20配置应用AppCode:\x20{{appCode}}','✗\x20配置失败','监听模式','安装后会在项目中创建:','*\x20创建新项目','配置信息:\x20appcode={{appcode}},\x20env={{env}}','*\x20Lovrabet\x20CLI\x20日志记录:\x0a','📍\x20登录地址:','正在获取线上菜单列表...\x20(appCode:\x20{{appCode}})','按任意键退出...','\x0a📋\x20其他\x20IDE\x20MCP\x20配置:\x0a','×\x20未配置\x20AppCode','使用指定的\x20appcode','✓\x20MCP\x20配置完成!','更新现有\x20mcp.json\x20配置','\x0a📦\x20正在配置\x20{{name}}\x20MCP...\x0a','应用代码不能为空','*\x20正在从服务器拉取\x20API\x20配置...\x20(环境:\x20{{env}})','[Y]\x20是,配置\x20AI\x20助手','登录成功!','*\x20JS\x20链接:\x20','成功获取\x20{{count}}\x20个线上菜单','请先通过\x20`lovrabet\x20config\x20set\x20app\x20<value>`\x20配置应用\x20Code','现在您可以使用\x20lovrabet\x20api\x20doc\x20和\x20lovrabet\x20api\x20pull\x20等命令了','🌐\x20正在尝试自动打开浏览器...','获取文档失败\x20({{datasetCode}}),HTTP状态码:\x20{{status}}','*\x20正在配置\x20Lovrabet\x20MCP\x20和\x20Skill...','*\x20是否要自动拉取\x20API\x20配置?','*\x20请选择要同步的菜单:','不支持的\x20IDE:\x20{{ide}}','正在构建项目...','请选择要配置的\x20IDE:','×\x20--datasetcode\x20参数不能为空','提示:使用\x20','共享技能文件复制失败','开始批量创建菜单,共\x20{{count}}\x20个','正在登录...','\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启用)','×\x20--params\x20参数必须是一个有效的\x20JSON\x20对象','*\x20清理失败的项目目录:\x20{{dir}}','项目名过长,最多支持\x20100\x20个字符','输入格式:\x20输入编号,用空格分隔\x20(例如:\x201\x203\x205)','\x20\x20✓\x20创建\x20{{path}}','生成多个数据集的文档','配置指引已显示','↑/↓:\x20移动光标\x20空格:\x20切换选中\x20a:\x20全选\x20i/r:\x20反选\x20q:\x20退出\x20Enter:\x20确认','技能包\x20(研发规范指南)','菜单资源同步成功:\x20{{label}}','*\x20是否配置\x20Lovrabet\x20MCP\x20和\x20Skill?','\x20正在获取线上菜单资源链接...','*\x20请输入新的资源链接','3tikmwk','获取配置项','可用命令:','请至少选择一个配置项','\x20命令重新登录','清理项目目录失败','2335932JrAGUH','✗\x20失败:\x20{{fileName}}.md\x20-\x20{{error}}',',\x20失败\x20{{failCount}}\x20个','⚠️\x20以下数据集生成失败:','agents.md\x20文件已存在,跳过','成功在当前目录初始化\x20.lovrabetrc\x20文件','\x20输入项目的\x20CSS\x20资源链接(https://...)','↑/↓:\x20移动光标\x20空格:\x20切换选中\x20a:\x20全选\x20i/r:\x20反选\x20Enter:\x20确认','未找到\x20appcode\x20配置,请先运行\x20\x27lovrabet\x20init\x27\x20初始化项目配置','使用配置的应用AppCode:\x20{{appCode}}','按\x20“q”\x20退出。','-\x20模型配置文件\x20({{count}}\x20个模型)','\x0a📦\x20正在安装\x20{{name}}...\x0a','\x20\x20•\x20Skill:','服务端返回空菜单列表','√\x20配置文件已创建,应用AppCode:\x20{{appCode}}','指定环境生成文档','JS\x20链接','拉取\x20API\x20配置失败:\x20{{error}}','\x20\x20√\x20环境配置完成','{{name}}\x20技能包安装失败','\x20\x20使用\x20←→\x20选择,回车确认','设置环境\x20(online/daily)','\x20\x20lovrabet\x20skill\x20install\x20cursor\x20\x20\x20\x20#\x20直接安装\x20Cursor\x20技能包\x0a','指定环境拉取\x20API','查看可用命令。','指定输出目录','1.\x20配置\x20Lovrabet\x20MCP\x20和\x20Skill','Claude\x20Code\x20MCP\x20命令已生成','\x20\x20\x20稳定版本:\x20{{version}}','!\x20API\x20配置拉取失败,可稍后手动执行:\x20lovrabet\x20api\x20pull','❌\x20错误:不再支持位置参数方式','*\x20待更新的菜单&资源链接','Enter\x20默认:\x20是','\x20\x20√\x20项目模板已创建','Lovrabet\x20MCP\x20-\x20MCP\x20服务器配置工具','正在获取日常菜单列表...\x20(appCode:\x20{{appCode}})','指定应用代码','\x20\x20✗\x20安装\x20{{ide}}\x20失败:\x20{{error}}','指定的数据集代码都不存在:\x20{{codes}}','↑/↓:\x20移动\x20空格:\x20切换\x20a:\x20全选\x20q:\x20退出\x20Enter:\x20确认','请执行以下命令配置\x20Claude\x20Code\x20MCP:','复制\x20agents.md\x20文件失败','使用示例:','\x20\x20\x20当前\x20CLI\x20版本:\x20{{version}}','√\x20配置文件已创建,可稍后使用\x20\x27lovrabet\x20config\x20set\x20appcode\x20<app-code>\x27\x20配置','生成配置命令','\x20\x20√\x20代码已格式化','批量创建菜单完成,共\x20{{count}}\x20个','*\x20导入方式:','\x20\x20\x20耗时:\x20{{duration}}ms','重启\x20Claude\x20Code\x20后生效','登录成功,请返回命令行继续操作。当前窗口将在\x20{{seconds}}\x20秒内关闭。','取消更新','未知的\x20IDE:\x20{{ide}}','*\x20输出目录:\x20','*\x20正在登录,请前往浏览器完成登录...','项目名长度不能超过\x2050\x20个字符','JS\x20链接无法访问','\x20\x20.lovrabet/skill/.shared/guides/\x20-\x20详细开发指南\x0a','\x0a✓\x20技能包安装成功!共安装\x20{{count}}\x20个目录\x0a','使用指定的应用AppCode:\x20{{appCode}}','包含\x20Backend\x20Function\x20同步工作流','\x20\x20\x20升级命令:\x20{{command}}','\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)','正在从\x20CDN\x20拉取开发者指南...','配置信息:','错误:\x20不支持的命令:\x20{{cmd}}','\x20\x20(注:\x20--appcode\x20参数与配置一致,将使用默认配置)','locale\x20配置值无效,支持的值:\x20zh,\x20en,\x20zh-CN,\x20en-US','应用代码长度不能超过\x20100\x20个字符','请前往浏览器完成登录。','示例:','技能包内容包括:','列出所有配置项','其他\x20IDE','安装\x20Lovrabet\x20技能包\x20-\x20选择\x20IDE','\x20\x20!\x20CDN\x20拉取失败,跳过指南安装:\x20{{error}}','⚠️\x20\x20未知的平台:\x20{{ide}},使用通用模板','登录失败','\x20\x20\x20\x20→\x20交互式选择\x20IDE','\x20\x20\x20\x20→\x20安装技能包并包含\x20Backend\x20Function\x20同步工作流','!\x20原始数据集\x20{{originalCount}}\x20个,过滤重复\x20{{duplicateCount}}\x20个','\x20\x20\x202.\x20使用参数:\x20lovrabet\x20api\x20pull\x20--appcode\x20<app-code>','\x0a请选择要安装技能包的\x20IDE\x20(可多选):\x0a','正在启动开发服务器...','*\x20同步菜单到\x20Lovrabet\x20平台','复制项目文件','项目名','应用代码用于标识您的项目,只能包含字母、数字、-\x20和\x20_','\x20直接回车确认,或输入自定义名称','登录成功','创建\x20agents.md\x20文件','\x20\x20$\x20lovrabet\x20mcp\x20install','无法在当前目录创建项目,请检查目录权限','\x20\x20包含\x20Backend\x20Function\x20同步工作流\x20\x20\x20-\x20使用\x20--dangerously-bff-save\x20标志','请手动执行:\x20{{command}}','\x20\x20推荐选择\x20Yes,可自动配置\x20API\x20接口','项目名不能为空','项目名包含非法字符,不允许使用:\x20<\x20>\x20:\x20\x22\x20|\x20?\x20*\x20及控制字符','项目名不合法','✓\x20技能包安装成功!共安装\x20{{count}}\x20个目录','未找到任何数据集','生成所有数据集的文档','应用AppCode只能包含字母、数字、连字符和下划线,且必须以字母或数字开头','查看日志','!\x20请指定一个有效的命令。','[可选]:\x20','是否同时配置\x20AI\x20助手?这将:','登录态校验失败,请使用\x20lovrabet\x20auth\x20重新登录','\x0a可用命令:','直接安装指定\x20IDE\x20的技能包','显示此帮助信息','\x20\x20\x20•\x20{{name}}.ts\x20-\x20客户端实例文件','*\x20应用AppCode\x20','√\x20文档生成完成!成功\x20{{successCount}}\x20个','🚀\x20接下来:','√\x20Lovrabet\x20MCP\x20和\x20Skill\x20配置完成','安装所有技能包','√\x20package.json\x20已更新:\x20name={{name}}','登录状态','\x0a✓\x20Cursor\x20MCP\x20配置成功!\x0a','[{{current}}/{{total}}]\x20正在生成:\x20{{fileName}}.md\x20({{name}})','*\x20已生成文件:','✓\x20MCP\x20服务器配置完成:','正在生成\x20{{count}}\x20个数据集的文档...','*\x20日志已清空','输入\x200\x20安装所有\x20IDE,输入\x20q\x20取消\x0a','等待\x203\x20秒...\x0a','只生成指定数据集的文档','\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x20--claude\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20配置\x20Claude\x20Code','交互式选择并安装技能包','现在您可以在\x20Cursor\x20中使用\x20Lovrabet\x20数据集\x20MCP\x20工具了。','Lovrabet平台','未提供配置值','更新菜单\x20CDN\x20资源','已选择\x20IDE','指定文档输出目录','×\x20文件前缀格式不正确。只能包含字母、数字、连字符和下划线,且必须以字母开头。','790okEbsn','\x20\x20lovrabet\x20mcp\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择并配置\x20MCP','MCP\x20服务器\x20(AI\x20访问数据集)','*\x20正在创建项目...','\x20\x20\x20\x20→\x20输入编号选择\x20IDE','✓\x20已退出登录','获取菜单列表失败:\x20{{error}}','{{count}}\x20个','*\x20已输入的资源资源','✅\x20浏览器已自动打开,请在浏览器中完成登录','\x20|\x20应用AppCode:\x20','√\x20菜单创建完成','\x20\x20$\x20lovrabet\x20mcp\x20install\x20--cursor','\x20正在获取线上菜单列表...','输入项目的\x20CSS\x20资源链接(https://...)','应用AppCode不合法','55BCRdPm','\x20\x20环境:\x20{{env}}','\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列表供选择','正在配置\x20AI\x20助手...','√\x20API\x20配置拉取完成','启动项目:\x20','\x0a共有\x20{{count}}\x20个数据集需要生成文档\x0a','×\x20--params\x20参数不是有效的\x20JSON\x20格式','√\x20{{label}}:\x20','\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择\x20IDE','Cursor\x20MCP\x20配置失败','拉取\x20API'];a56_0xec6e=function(){return _0x3cc118;};return a56_0xec6e();}
|
|
1
|
+
function a56_0x3888(){var _0x5d2725=['拉取\x20API','\x20\x20\x20\x20→\x20交互式选择\x20IDE','创建菜单失败:\x20{{error}}','指定文档输出目录','*\x20正在拉取\x20API\x20配置...','格式化代码','输入\x200\x20安装所有\x20IDE,输入\x20q\x20取消\x0a','\x20\x20--enable-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;旧名\x20--dangerously-bff-save\x20仍可用)','其他\x20IDE\x20配置指引已显示','已写入规则','AppCode','🚀\x20接下来:','*\x20请输入新的资源链接','*\x20仅生成指定数据集的文档:\x20{{codes}}','清空日志','\x20\x20\x20当前\x20CLI\x20版本:\x20{{version}}','正在获取数据集列表...','!\x20当前未登录','开始配置\x20MCP','正在获取日常菜单列表...\x20(appCode:\x20{{appCode}})','\x0a已取消安装\x0a','⚠️\x20配置需要手动完成','\x20登录中...','登录成功!','更新菜单\x20CDN\x20资源','菜单名称','\x20\x20重启\x20Claude\x20Code\x20后生效\x0a','拉取API配置:','共享技能文件复制失败','\x0a📦\x20正在安装\x20{{name}}...\x0a','\x20正在获取线上菜单资源链接...','Cursor\x20MCP\x20配置失败','请执行以下命令配置\x20Claude\x20Code\x20MCP:','包含\x20Backend\x20Function\x20同步工作流','×\x20未配置\x20AppCode','*\x20项目名:\x20','生成文档','\x20\x20lovrabet\x20mcp\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20交互式选择并配置\x20MCP','指定输出目录(pull:\x20./src/api/,doc:\x20./docs)','\x20\x20\x20\x20→\x20安装技能包并包含\x20Backend\x20Function\x20同步工作流','清理项目目录失败','✗\x20失败:\x20{{fileName}}.md\x20-\x20{{error}}','环境配置值只能是\x20\x22production\x22\x20或\x20\x22daily\x22','上一步','\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列表供选择,支持多选','请输入有效的\x20JS\x20https\x20链接','√\x20更新成功','*\x20是否配置\x20Lovrabet\x20MCP\x20和\x20Skill?','JS\x20链接:\x20','选项:','共享技能文件复制成功','{{count}}\x20个\x20IDE','跳过登录','*\x20正在通过\x20npx\x20skills\x20安装\x20AI\x20Skills...','2581686aNiwwG','重新登录后再试','成功在当前目录初始化\x20.lovrabetrc\x20文件','*\x20JS\x20链接:\x20','*\x20是否要先登录以便拉取\x20API\x20配置?','该\x20IDE\x20无独立\x20rules\x20落盘(指南见\x20skills/lovrabet/)','指定输出目录','选择要配置的\x20IDE:','未提供应用AppCode,且配置中也没有默认值','环境:\x20{{env}}','\x20\x20使用\x20←→\x20选择,回车确认','\x0a可用命令:','*\x20正在创建项目...','文档生成失败:\x20{{error}}','直接安装指定\x20IDE\x20的技能包','lovrabet\x20api\x20-\x20API\x20相关操作','\x20\x20√\x20依赖安装跳过(非交互模式)','\x20\x20直接配置指定\x20IDE\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20使用\x20--ide\x20标志直接配置','\x20\x20环境:\x20{{env}}','\x20\x20\x20升级命令:\x20{{command}}','已写入\x20.cursor/mcp.json','-\x20客户端实例文件','CSS\x20链接无法访问','请选择要配置的\x20IDE:','应用代码不合法','菜单资源同步成功:\x20{{label}}','\x20\x20\x20\x20→\x20直接配置\x20Cursor\x20MCP\x20(写入\x20.cursor/mcp.json)','\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择并安装技能包','Cursor\x20Rules\x20文件已存在,跳过','\x20\x20lovrabet\x20mcp\x20install\x20--claude\x20\x20\x20\x20直接配置\x20Claude\x20Code\x20MCP','输入项目的\x20CSS\x20资源链接(https://...)','*\x20Lovrabet\x20CLI\x20日志记录:\x0a','npx\x20skills\x20add\x20已完成','✓\x20{{scope}}语言配置已设置为:\x20{{value}}','创建技能包\x20manifest','项目名称','•\x20Skill:\x20通过\x20npx\x20安装官方包并写入\x20Cursor/Claude\x20规则(需联网)','安装后会在项目中创建:','!\x20请指定一个有效的命令。','注意:部分配置需要手动执行命令,请按照上述说明操作','正在从\x20CDN\x20拉取开发者指南(含扩展)...','请输入应用代码\x20(AppCode):','继续更新','\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--enable-bff-save\x20启用)','创建新的\x20mcp.json\x20配置','*\x20待更新的菜单&资源链接','×\x20API\x20配置拉取异常:\x20{{error}}','通用模板由\x20skills/lovrabet/\x20提供,无需额外\x20IDE\x20规则文件','支持的\x20IDE:','配置\x20Lovrabet\x20MCP\x20服务器','指定环境(如:daily、production)','已处理\x20Cursor/Claude\x20规则文件(若不存在则创建)','选项:','CSS\x20链接:\x20','正在从服务器拉取模型列表...\x20(环境:\x20{{env}})','设置环境\x20(production/daily)','开始批量创建菜单,共\x20{{count}}\x20个','*\x20请选择要同步的菜单:','[N]\x20跳过,稍后手动配置','⚠️\x20\x20无法自动打开浏览器','请至少选择一个配置项','未找到\x20appcode\x20配置,请先运行\x20\x27lovrabet\x20init\x27\x20初始化项目配置','说明:由\x20npx\x20skills\x20选择\x20agent\x20并落盘;开发指南见\x20skills/lovrabet/guides/。','已选择\x20IDE','开发者指南位置:','\x20检查中...','\x0a已取消配置\x0a','项目名过长,最多支持\x20100\x20个字符','保存配置失败','Skills\x20和\x20MCP\x20配置完成','\x20\x20!\x20CDN\x20拉取失败,跳过指南安装:\x20{{error}}','🔗\x20请手动复制登录地址到浏览器:','❌\x20错误:不再支持位置参数方式','\x20\x20\x20•\x20{{name}}.ts\x20-\x20模型配置文件','\x20\x20正在安装依赖...','配置指引已显示',',\x20失败\x20{{failCount}}\x20个','MCP\x20服务器\x20(AI\x20访问数据集)','复制\x20Cursor\x20Rules\x20文件失败','*\x20是否要自动拉取\x20API\x20配置?','\x20\x20.lovrabet/skill/guides/\x20-\x20详细开发指南\x0a','*\x20正在检查登录状态...','等价命令:{{command}}','当前目录已存在\x20.lovrabetrc\x20文件','*\x20应用AppCode\x20','输入项目的\x20JS\x20资源链接(https://...)','2589340zvdGOQ','交互式选择并安装技能包','✓\x20创建\x20.lovrabet/skill-manifest.json','\x20\x20skills/lovrabet/guides/\x20-\x20详细开发指南(由\x20npx\x20skills\x20add\x20安装)\x0a','正在安装技能包...','*\x20正在处理\x20{{count}}\x20个数据集...','未找到任何数据集','√\x20Lovrabet\x20MCP\x20和\x20Skill\x20配置完成','\x20\x20\x201.\x20配置默认值:\x20lovrabet\x20config\x20set\x20appcode\x20<app-code>','\x20输入项目的\x20CSS\x20资源链接(https://...)','\x20\x20\x202.\x20使用参数:\x20lovrabet\x20api\x20doc\x20--appcode\x20<app-code>','应用代码不能为空','\x20|\x20应用AppCode:\x20','×\x20--params\x20参数不是有效的\x20JSON\x20格式','Skills\x20安装和\x20MCP\x20配置完成','✓\x20{{scope}}环境配置已设置为:\x20{{value}}','需要先配置\x20appcode','\x20\x20lovrabet\x20skill\x20install\x20cursor\x20\x20\x20\x20#\x20直接安装\x20Cursor\x20技能包\x0a','登录态校验失败,请使用\x20lovrabet\x20auth\x20重新登录','\x0a📋\x20其他\x20IDE\x20MCP\x20配置:\x0a','不支持的\x20MCP\x20IDE:\x20{{ide}}','是否同时配置\x20AI\x20助手?这将:','*\x20输出目录:\x20','\x20\x20√\x20环境配置完成','\x20\x20lovrabet\x20skill\x20install\x20<ide>\x20\x20\x20\x20\x20#\x20直接安装指定\x20IDE\x20的技能包','MCP\x20和\x20Skill','提示:使用\x20','使用指定的应用AppCode:\x20{{appCode}}','请选择:\x20','\x0a✗\x20{{ide}}\x20MCP\x20配置失败:\x20{{error}}','\x20\x20\x202.\x20使用参数:\x20lovrabet\x20api\x20pull\x20--appcode\x20<app-code>','请先通过\x20`lovrabet\x20config\x20set\x20app\x20<value>`\x20配置应用\x20Code','✗\x20配置失败','Lovrabet平台','其他\x20IDE\x20配置指引','!\x20API\x20配置拉取异常,项目已创建,可稍后手动执行:\x20lovrabet\x20api\x20pull','!\x20请使用以下方式之一:','✓\x20拉取\x20{{count}}\x20个开发者指南','•\x20MCP:\x20让\x20AI\x20直接访问\x20Lovrabet\x20数据集','\x20\x20(注:\x20--appcode\x20参数与配置一致,将使用默认配置)','配置示例:','更新菜单资源失败:\x20{{error}}','显示此帮助信息','⚠️\x20以下数据集生成失败:','*\x20选择要配置的\x20IDE:','正在登录...','创建菜单失败','\x0a请选择要安装技能包的\x20IDE\x20(可多选):\x0a','\x20\x20使用\x20←→\x20返回修改选择,回车确认\x20IDE','使用示例:','拉取并生成\x20API\x20配置文件','复制项目文件','\x20\x20直接安装指定\x20IDE\x20(支持多个)\x20\x20\x20\x20\x20\x20\x20-\x20使用\x20--ide\x20标志直接安装','\x20\x20lovrabet\x20mcp\x20install\x20--cursor\x20\x20\x20\x20直接配置\x20Cursor\x20MCP','指定环境生成文档','×\x20--datasetcode\x20参数不能为空','正在预览项目...','拉取API配置','*\x20CSS\x20链接:\x20','√\x20package.json\x20已更新:\x20name={{name}}','*\x20已输入的资源资源','项目目录\x20{{name}}\x20已存在,请使用其他项目名','*\x20导入方式:','拉取API配置:\x20','服务端返回空菜单列表','安装\x20Lovrabet\x20技能包\x20-\x20选择\x20IDE','配置指南:','已选择菜单','重启\x20Claude\x20Code\x20后生效','locale\x20配置值无效,支持的值:\x20zh,\x20en,\x20zh-CN,\x20en-US','安装所有\x20IDE\x20技能包(包括通用模板)','JS\x20链接无法访问','登录成功','启动项目:','无效的命令,可用命令如下:','生成配置命令','\x20\x20✗\x20未知的\x20IDE:\x20{{ide}}','7KrLFRW','菜单创建成功:','请至少选择一个\x20IDE','应用AppCode只能包含字母、数字、连字符和下划线,且必须以字母或数字开头','⚠️\x20\x20未知的平台:\x20{{ide}},使用通用模板','配置信息:','使用指定的\x20appcode','正在更新菜单资源链接:\x20{{label}}\x20({{path}})','配置\x20MCP\x20可让\x20AI\x20直接访问\x20Lovrabet\x20数据集','Lovrabet\x20Skill\x20-\x20开发者技能包安装工具','npx\x20skills\x20add\x20失败','*\x20暂无日志记录','!\x20API\x20配置拉取失败,可稍后手动执行:\x20lovrabet\x20api\x20pull','Claude\x20Code','应用AppCode不合法','*\x20共处理\x20{{count}}\x20个数据集','\x20\x20$\x20lovrabet\x20mcp\x20install','登录鉴权失败,登录已过期,请使用\x20lovrabet\x20auth\x20重新登录','\x0a✓\x20Cursor\x20MCP\x20配置成功!\x0a','指定要生成文档的数据集代码(多个用逗号分隔,仅\x20doc\x20命令)','其他\x20IDE','正在启动开发服务器...','↪\x20新版本可用','√\x20菜单创建完成','3261592pezcxw','项目名称:\x20','\x20\x20lovrabet\x20skill\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20显示帮助信息\x0a','配置信息:\x20appcode={{appcode}}{{envSuffix}}','2468KAVasP','6211614zeIEpT','↑/↓:\x20移动\x20空格:\x20切换\x20a:\x20全选\x20q:\x20退出\x20Enter:\x20确认','配置\x20MCP\x20服务器:\x20','正在生成\x20{{fileName}}.md\x20({{current}}/{{total}})','未知的\x20IDE:\x20{{ide}}','指定环境拉取\x20API','登录成功,请返回命令行继续操作。当前窗口将在\x20{{seconds}}\x20秒内关闭。','√\x20配置文件已创建,可稍后使用\x20\x27lovrabet\x20config\x20set\x20appcode\x20<app-code>\x27\x20配置','设置配置项','√\x20{{label}}:\x20','无法自动关闭窗口,请手动关闭此标签页或窗口。','已创建\x20{{count}}\x20项','现在您可以使用\x20lovrabet\x20api\x20doc\x20和\x20lovrabet\x20api\x20pull\x20等命令了','*\x20正在创建项目\x20{{name}}...','1.\x20配置\x20Lovrabet\x20MCP\x20和\x20Skill','获取菜单列表失败:\x20{{error}}','请重启\x20Cursor\x20以加载新的\x20MCP\x20配置。','使用配置的应用AppCode:\x20{{appCode}}','\x20\x20\x20\x20→\x20安装所有\x20IDE\x20技能包','{{name}}\x20技能包安装失败','✓\x20Skill\x20安装完成:','安装所有技能包','\x20\x20q.\x20取消\x0a','按\x20“q”\x20退出。','复制\x20agents.md\x20文件失败','请前往浏览器完成登录。','√\x20成功拉取\x20{{datasetCount}}\x20个数据集,生成\x20{{modelCount}}\x20个模型','正在构建项目...','\x20\x20\x20详情:\x20{{details}}','创建\x20agents.md\x20文件','只生成指定数据集的文档','已安装\x20{{count}}\x20个目录','\x20\x20\x202.\x20配置默认值:\x20lovrabet\x20config\x20set\x20app\x20<app-code>','CSS\x20链接','获取数据集失败:\x20{{error}}','\x20直接回车确认,或输入自定义名称','用法:','\x20\x20错误:\x20{{error}}','!\x20未找到本地页面,请先创建页面','\x20正在获取线上菜单列表...','*\x20已生成文件:','设置显示语言\x20(zh/en)','获取文档失败\x20({{datasetCode}}),HTTP状态码:\x20{{status}}','↑/↓:\x20移动光标\x20空格:\x20切换选中\x20a:\x20全选\x20i/r:\x20反选\x20Enter:\x20确认','\x0a✓\x20{{ide}}\x20MCP\x20配置成功','√\x20当前为有效会话,无需重新登录。','现在您可以在\x20Cursor\x20中使用\x20Lovrabet\x20数据集\x20MCP\x20工具了。','[可选]:\x20','查看日志','*\x20按回车开始登录。','539pEGVSS','已跳过\x20npx(LOVRABET_SKIP_NPX_SKILLS=1),假定\x20skill\x20已就绪。','未提供配置值','示例:','\x20\x20\x20稳定版本:\x20{{version}}','错误:\x20不支持的命令:\x20{{cmd}}','\x20\x20亦可手动:\x20npx\x20-y\x20skills\x20add\x20lovrabet/lovrabet-skill\x20--skill\x20Lovrabet','📍\x20登录地址:','\x20\x20lovrabet\x20mcp\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20显示帮助信息\x0a','*\x20正在为项目\x20{{name}}\x20创建配置文件','加载中...','6127288TTsFSz','已为以下\x20IDE\x20处理规则文件:\x20{{ides}}','\x0a√\x20项目\x20{{name}}\x20创建成功!','项目配置','查看可用命令。','\x20\x20lovrabet\x20mcp\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择并配置\x20MCP','指定应用代码','获取配置项','*\x20从\x20{{total}}\x20个数据集中筛选出\x20{{count}}\x20个匹配的数据集','13759029ciKIEm','\x0a无效的选择,请输入\x201-{{count}}\x20之间的数字\x0a','✅\x20浏览器已自动打开,请在浏览器中完成登录','lovrabet\x20skill\x20已安装','*\x20正在更新\x20package.json\x20的\x20name\x20和\x20description\x20字段','启动项目:\x20','安装依赖','详细配置指南:\x20https://open.lovrabet.com/zh/docs/mcp/config-guide','\x20\x20•\x20MCP\x20服务器:','!\x20未找到菜单资源链接','列出所有配置项','\x0a错误:\x20配置失败\x20-\x20{{error}}\x0a','\x20\x20\x20时间:\x20{{time}}','\x20\x20\x20•\x20{{name}}.ts\x20-\x20客户端实例文件','*\x20清理失败的项目目录:\x20{{dir}}','项目名','\x0a📋\x20请执行以下命令配置\x20Claude\x20Code\x20MCP:\x0a','*\x20使用配置的应用AppCode:\x20{{appCode}}','正在通过\x20npx\x20安装官方\x20skill(npx\x20-y\x20skills\x20add\x20lovrabet/lovrabet-skill\x20--skill\x20Lovrabet)...','*\x20开始生成\x20API\x20配置文件:','√\x20文档生成完成!成功\x20{{successCount}}\x20个','安装\x20AI\x20Skills:\x20','!\x20以下数据集代码不存在:\x20{{codes}}','\x0a✓\x20技能包安装成功!共安装\x20{{count}}\x20个目录\x0a','\x20\x20(已跳过\x20npx,假定\x20skills\x20已就绪)','请至少选择一个菜单','{{name}}\x20技能包安装成功','成功获取\x20{{count}}\x20个线上菜单','\x20\x20✓\x20创建\x20{{path}}/','登录状态','\x20\x20lovrabet\x20mcp\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20显示帮助信息','待更新的资源链接:','🔐\x20正在启动登录服务...','√\x20检测到有效登录状态','Cursor\x20MCP\x20配置成功','{{count}}\x20个','\x20命令重新登录','×\x20项目创建失败:\x20{{error}}','已跳过\x20npx(环境变量),假定官方\x20skill\x20已安装','开发者指南:\x20skills/lovrabet/guides/','请输入有效的\x20CSS\x20https\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显示\x20IDE\x20列表供选择','✓\x20成功生成:\x20{{fileName}}.md','指定的数据集代码都不存在:\x20{{codes}}','应用AppCode','正在生成\x20{{count}}\x20个数据集的文档...','应用AppCode长度不能超过\x20100\x20个字符','Cursor','不支持的\x20IDE:\x20{{ide}}','配置方式:','获取菜单列表失败,HTTP状态码:\x20{{status}}','\x20\x20•\x20Skill(CLI\x20会执行\x20npx\x20skills\x20add\x20并写规则):','✓\x20MCP\x20服务器配置完成:','×\x20文件前缀格式不正确。只能包含字母、数字、连字符和下划线,且必须以字母开头。','目录\x20\x22{{name}}\x22\x20已存在','\x20输入项目的\x20JS\x20资源链接(https://...)','💡\x20如果浏览器没有自动打开,请手动复制上面的登录地址到浏览器中打开','*\x20正在配置\x20MCP...','\x20\x20\x20\x20→\x20直接安装\x20Cursor\x20和\x20claude\x20code\x20技能包','未设置','请手动执行:\x20{{command}}','\x0a📦\x20正在配置\x20{{name}}\x20MCP...\x0a','其他\x20(通用模板)\x20(.agent/skills/)\x20-\x20兜底方案','技能包\x20(研发规范指南)','Skills\x20和\x20MCP','配置当前项目的\x20App\x20Code','按任意键退出...','批量创建菜单完成,共\x20{{count}}\x20个','*\x20同步菜单到\x20Lovrabet\x20平台','*\x20正在配置\x20Lovrabet\x20MCP\x20和\x20Skill...','显示帮助信息','依赖安装失败:\x20{{error}}'];a56_0x3888=function(){return _0x5d2725;};return a56_0x3888();}var a56_0x1713ca=a56_0x43c0;function a56_0x43c0(_0x109c35,_0x6deda5){_0x109c35=_0x109c35-0xa7;var _0x388828=a56_0x3888();var _0x43c0a8=_0x388828[_0x109c35];return _0x43c0a8;}(function(_0x1f2a11,_0x273445){var _0x36e5d6=a56_0x43c0,_0x27b946=_0x1f2a11();while(!![]){try{var _0xd69891=-parseInt(_0x36e5d6(0x223))/0x1*(-parseInt(_0x36e5d6(0x1f0))/0x2)+parseInt(_0x36e5d6(0x131))/0x3+parseInt(_0x36e5d6(0x1ec))/0x4+-parseInt(_0x36e5d6(0x187))/0x5+parseInt(_0x36e5d6(0x1f1))/0x6+parseInt(_0x36e5d6(0x1d4))/0x7*(-parseInt(_0x36e5d6(0xa9))/0x8)+-parseInt(_0x36e5d6(0xb2))/0x9;if(_0xd69891===_0x273445)break;else _0x27b946['push'](_0x27b946['shift']());}catch(_0x42ddc0){_0x27b946['push'](_0x27b946['shift']());}}}(a56_0x3888,0x89a53));export default{'common':{'success':'成功','error':'错误','warning':'警告','info':'信息','loading':a56_0x1713ca(0xa8),'cancel':'取消','confirm':'确认','next':a56_0x1713ca(0xdb),'previous':a56_0x1713ca(0x126),'finish':'完成'},'help':{'invalidCommand':a56_0x1713ca(0x157),'usageHint':'使用','viewCommands':a56_0x1713ca(0xad)},'cli':{'usage':'使用','examples':'示例','description':'描述'},'init':{'inputAppCode':a56_0x1713ca(0x15a),'appCodeDesc':'应用代码用于标识您的项目,只能包含字母、数字、-\x20和\x20_','fileExists':a56_0x1713ca(0x184),'creating':'正在初始化配置文件...','success':a56_0x1713ca(0x133),'appCodeLabel':a56_0x1713ca(0x105),'nextSteps':a56_0x1713ca(0x1fd),'validation':{'required':a56_0x1713ca(0x192),'tooLong':'应用代码长度不能超过\x20100\x20个字符','invalidFormat':'应用代码只能包含字母、数字、-\x20和\x20_','invalidCode':a56_0x1713ca(0x149)}},'create':{'projectNameLabel':a56_0x1713ca(0x154),'appCodeLabel':'应用AppCode','validation':{'required':'项目名不能为空','invalidChars':'项目名包含非法字符,不允许使用:\x20<\x20>\x20:\x20\x22\x20|\x20?\x20*\x20及控制字符','tooLong':a56_0x1713ca(0x174),'dirExists':a56_0x1713ca(0x1c4),'noPermission':'无法在当前目录创建项目,请检查目录权限','projectName':{'tooLong':'项目名长度不能超过\x2050\x20个字符','invalidFormat':'项目名只能以字母或数字开头,且只包含字母、数字、-\x20和\x20_','invalid':'项目名不合法','dirExistsShort':a56_0x1713ca(0xe9)},'appCode':{'tooLong':a56_0x1713ca(0xe1),'invalidFormat':a56_0x1713ca(0x1d7),'invalid':a56_0x1713ca(0x1e2)},'ide':{'required':a56_0x1713ca(0x1d6)}},'common':{'yes':'是','no':'否','selectHint':a56_0x1713ca(0x13b)},'steps':{'pullingApi':a56_0x1713ca(0xff),'apiPullSuccess':'√\x20API\x20配置拉取完成','apiPullFailed':a56_0x1713ca(0x1e0),'apiPullError':a56_0x1713ca(0x1aa),'updatingPackage':a56_0x1713ca(0xb6),'packageUpdated':a56_0x1713ca(0x1c2),'configuringAppCode':'*\x20正在为项目\x20{{name}}\x20配置应用AppCode:\x20{{appCode}}','creatingConfig':a56_0x1713ca(0xa7),'configCreatedWithAppCode':'√\x20配置文件已创建,应用AppCode:\x20{{appCode}}','configCreated':a56_0x1713ca(0x1f8),'configuringMcp':a56_0x1713ca(0xf8),'mcpConfigComplete':a56_0x1713ca(0x18e),'cleaningUp':'*\x20清理失败的项目目录:\x20{{dir}}','projectName':{'label':a56_0x1713ca(0xc1)},'appCode':{'label':a56_0x1713ca(0xdf),'notSet':a56_0x1713ca(0xee)},'apiPull':{'label':a56_0x1713ca(0x1c0)},'lovrabetSetup':{'label':a56_0x1713ca(0x1a0),'ideCount':a56_0x1713ca(0x12e)},'mcpSetup':{'label':a56_0x1713ca(0xf3)},'skillsMcpSetup':{'label':a56_0x1713ca(0xf3)},'login':{'label':a56_0x1713ca(0xcf),'loggedIn':'已登录','failed':'登录失败','skipped':a56_0x1713ca(0x12f)}},'title':'*\x20创建新项目','completedStep':a56_0x1713ca(0x1fa),'input':{'projectName':{'label':a56_0x1713ca(0x11e),'hint':a56_0x1713ca(0x214)},'appCode':{'label':a56_0x1713ca(0x185),'optional':a56_0x1713ca(0x220),'hint':'绑定应用AppCode可自动配置\x20API,如:\x20app-c4c89304\x20(直接回车跳过)'}},'login':{'checking':a56_0x1713ca(0x182),'checkingStatus':a56_0x1713ca(0x172),'valid':a56_0x1713ca(0xd3),'notDetected':'!\x20未检测到有效登录','prompt':a56_0x1713ca(0x135),'inProgress':'*\x20正在登录,请前往浏览器完成登录...','inProgressStatus':a56_0x1713ca(0x111)},'apiPull':{'confirm':a56_0x1713ca(0x180),'recommendation':'\x20\x20推荐选择\x20Yes,可自动配置\x20API\x20接口'},'lovrabetSetup':{'confirm':a56_0x1713ca(0x12a),'selectIdeHint':a56_0x1713ca(0x1b7),'selectIdeTitle':a56_0x1713ca(0x138),'keyboardShortcuts':'↑/↓:\x20移动\x20空格:\x20切换\x20a:\x20全选\x20i/r:\x20反选\x20Enter:\x20确认','inProgress':a56_0x1713ca(0xf8),'mcpCompleted':a56_0x1713ca(0xe7),'skillCompleted':a56_0x1713ca(0x205)},'skillsMcpSetup':{'confirm':'*\x20是否安装\x20AI\x20Skills\x20并配置\x20MCP?','hint':'选\x20Yes\x20后,npx\x20skills\x20将引导您选择\x20AI\x20助手并安装开发者技能包,随后自动配置\x20Cursor\x20MCP','skillsInProgress':a56_0x1713ca(0x130),'skillsSkipped':a56_0x1713ca(0xca),'mcpInProgress':a56_0x1713ca(0xec),'completed':a56_0x1713ca(0x195)},'mcpSetup':{'confirm':a56_0x1713ca(0x12a),'hint':a56_0x1713ca(0x1dc),'inProgress':'*\x20正在安装\x20Skills\x20和配置\x20MCP...','prompt':'*\x20正在配置\x20MCP...','completed':a56_0x1713ca(0x176)},'creating':a56_0x1713ca(0x13d),'display':{'projectName':a56_0x1713ca(0x1ed),'appCode':a56_0x1713ca(0x193)},'packageJson':{'updating':a56_0x1713ca(0xb6),'updated':a56_0x1713ca(0x1c2)},'config':{'configuringAppCode':'*\x20正在为项目\x20{{name}}\x20配置应用AppCode:\x20{{appCode}}','creating':a56_0x1713ca(0xa7),'createdWithAppCode':'√\x20配置文件已创建,应用AppCode:\x20{{appCode}}','createdWithoutAppCode':a56_0x1713ca(0x1f8)},'cleanup':{'inProgress':a56_0x1713ca(0xc0)},'results':{'mcpComplete':a56_0x1713ca(0xe7),'skillComplete':a56_0x1713ca(0x205),'nextSteps':a56_0x1713ca(0x106)},'nextSteps':{'configureMcpAndSkill':'1.\x20配置\x20Lovrabet\x20MCP\x20和\x20Skill','skill':a56_0x1713ca(0xe6),'skillNpxHint':a56_0x1713ca(0x229),'mcp':a56_0x1713ca(0xba),'installSkill':a56_0x1713ca(0xc7),'installMcp':a56_0x1713ca(0x1f3),'startProject':a56_0x1713ca(0x1d0),'pullApi':a56_0x1713ca(0x116),'configAppCode':'配置AppCode:'},'errors':{'createFailed':a56_0x1713ca(0xd7),'cleanupFailed':a56_0x1713ca(0x123),'depsInstallFailed':a56_0x1713ca(0xfa)},'nonInteractive':{'creating':a56_0x1713ca(0x1fe),'templateCreated':'\x20\x20√\x20项目模板已创建','packageJsonUpdated':'\x20\x20√\x20package.json\x20已更新','installingDeps':a56_0x1713ca(0x17b),'depsSkipped':a56_0x1713ca(0x141),'codeFormatted':'\x20\x20√\x20代码已格式化','envConfigured':a56_0x1713ca(0x19e),'success':a56_0x1713ca(0xab)},'tasks':{'copyFiles':a56_0x1713ca(0x1ba),'formatCode':a56_0x1713ca(0x100),'installDependencies':a56_0x1713ca(0xb8)},'nextStepsAlt':{'startProject':a56_0x1713ca(0xb7),'pullApi':a56_0x1713ca(0x1c6),'configureLovrabet':a56_0x1713ca(0x1ff)}},'config':{'title':a56_0x1713ca(0xac),'help':{'invalidCommand':a56_0x1713ca(0x1d1),'examples':a56_0x1713ca(0x1af),'set':a56_0x1713ca(0x1f9),'get':a56_0x1713ca(0xb0),'list':a56_0x1713ca(0xbc),'exampleApp':a56_0x1713ca(0xf4),'exampleEnv':a56_0x1713ca(0x168),'exampleLocale':a56_0x1713ca(0x21a)},'validation':{'envInvalid':a56_0x1713ca(0x125),'localeInvalid':a56_0x1713ca(0x1cc),'valueInvalid':'配置值无效或过长','noValue':a56_0x1713ca(0x225),'saveFailed':a56_0x1713ca(0x175)},'success':{'envSet':a56_0x1713ca(0x196),'localeSet':a56_0x1713ca(0x152)},'scope':{'project':'项目','global':'全局'}},'api':{'title':'API\x20管理','pull':a56_0x1713ca(0xfb),'doc':a56_0x1713ca(0x11f),'help':{'title':a56_0x1713ca(0x140),'usage':'用法:','options':a56_0x1713ca(0x165),'optAppcode':a56_0x1713ca(0xaf),'optOutput':a56_0x1713ca(0x121),'optEnv':a56_0x1713ca(0x163),'optDatasetcode':a56_0x1713ca(0x1e7),'optHelp':a56_0x1713ca(0x1b1),'examples':'示例:','pullDesc':a56_0x1713ca(0x1b9),'pullAppcode':a56_0x1713ca(0x1da),'pullOutput':a56_0x1713ca(0x137),'pullEnv':a56_0x1713ca(0x1f6),'docDesc':'生成所有数据集的文档','docAppcode':'使用指定的\x20appcode','docOutput':a56_0x1713ca(0xfe),'docEnv':a56_0x1713ca(0x1bd),'docDataset':a56_0x1713ca(0x20f),'docDatasets':'生成多个数据集的文档','unknownCommand':'未知的\x20api\x20命令','availableCommands':'可用命令:'},'common':{'noPositionalArgs':a56_0x1713ca(0x179),'useAppcodeFlag':'请使用\x20--appcode\x20参数,例如:','noAppCode':a56_0x1713ca(0x11d),'noAppCodeHint':'!\x20请使用以下方式之一:','noAppCodeOption1':a56_0x1713ca(0x18f),'noAppCodeOption2Pull':a56_0x1713ca(0x1a5),'noAppCodeOption2Doc':a56_0x1713ca(0x191),'usingConfigAppCode':a56_0x1713ca(0xc3),'usingConfigAppCodeHint':a56_0x1713ca(0x1ae),'usingSpecifiedAppCode':a56_0x1713ca(0x1a2),'usingDefaultAppCode':a56_0x1713ca(0x202),'noAppCodeDefault':'未提供应用AppCode,且配置中也没有默认值','paramsInvalidJson':'×\x20--params\x20参数必须是一个有效的\x20JSON\x20对象','paramsNotJson':a56_0x1713ca(0x194),'paramsError':a56_0x1713ca(0x216),'datasetcodeEmpty':a56_0x1713ca(0x1be),'onlyGenerateDatasets':a56_0x1713ca(0x108),'authExpired':a56_0x1713ca(0x1e5),'authRetry':a56_0x1713ca(0x132),'unknownError':'未知错误'},'pullUI':{'fetching':'*\x20正在从服务器拉取\x20API\x20配置...\x20(环境:\x20{{env}})','successPull':a56_0x1713ca(0x20b),'duplicateInfo':'!\x20原始数据集\x20{{originalCount}}\x20个,过滤重复\x20{{duplicateCount}}\x20个','generatedFiles':a56_0x1713ca(0x219),'modelFile':'-\x20模型配置文件\x20({{count}}\x20个模型)','clientFile':a56_0x1713ca(0x146),'importHint':a56_0x1713ca(0x1c5),'pullFailed':'拉取\x20API\x20配置失败:\x20{{error}}'},'docUI':{'fetchingDatasets':a56_0x1713ca(0x10b),'noDatasets':a56_0x1713ca(0x18d),'datasetsNotFound':a56_0x1713ca(0xc8),'allDatasetsNotFound':a56_0x1713ca(0xde),'filteredDatasets':a56_0x1713ca(0xb1),'generatingDocs':a56_0x1713ca(0xe0),'generatingFile':a56_0x1713ca(0x1f4),'docComplete':a56_0x1713ca(0xc6),'docFailed':a56_0x1713ca(0x17d),'processedDatasets':a56_0x1713ca(0x1e3),'outputDir':a56_0x1713ca(0x19d),'generatedDocs':'*\x20生成的文档文件:','failedDatasets':a56_0x1713ca(0x1b2),'docGenerateFailed':a56_0x1713ca(0x13e)},'fetchModel':{'fetching':a56_0x1713ca(0x167),'httpError':'获取数据集失败,HTTP状态码:\x20{{status}}','fetchError':a56_0x1713ca(0x213)},'generateFile':{'noAppCode':a56_0x1713ca(0x1a6)},'docBatch':{'totalDatasets':'\x0a共有\x20{{count}}\x20个数据集需要生成文档\x0a','generating':'[{{current}}/{{total}}]\x20正在生成:\x20{{fileName}}.md\x20({{name}})','success':a56_0x1713ca(0xdd),'failed':a56_0x1713ca(0x124),'waiting':'等待\x203\x20秒...\x0a','docFormatError':'响应数据格式错误\x20({{datasetCode}}):缺少\x20data.markdown\x20字段','httpError':a56_0x1713ca(0x21b)},'silent':{'invalidPrefix':a56_0x1713ca(0xe8),'fetching':'*\x20正在从服务器拉取\x20API\x20配置...\x20(环境:\x20{{env}})','generating':a56_0x1713ca(0xc5),'modelFileName':a56_0x1713ca(0x17a),'clientFileName':a56_0x1713ca(0xbf),'processing':a56_0x1713ca(0x18c),'success':a56_0x1713ca(0x20b),'error':a56_0x1713ca(0x15f)}},'auth':{'title':'登录认证','login':{'success':{'title':a56_0x1713ca(0x1cf),'message':a56_0x1713ca(0x1f7),'manualClose':a56_0x1713ca(0x1fb)},'successCli':a56_0x1713ca(0x112),'inProgress':a56_0x1713ca(0x1b4),'browserPrompt':a56_0x1713ca(0x20a),'pressEnter':a56_0x1713ca(0x222),'pressQToExit':a56_0x1713ca(0x208)},'session':{'valid':a56_0x1713ca(0x21e)},'server':{'starting':a56_0x1713ca(0xd2),'loginUrl':a56_0x1713ca(0x22a),'openingBrowser':'🌐\x20正在尝试自动打开浏览器...','manualOpenHint':a56_0x1713ca(0xeb),'browserOpened':a56_0x1713ca(0xb4),'browserOpenFailed':a56_0x1713ca(0x16c),'manualCopyUrl':a56_0x1713ca(0x178)},'logout':{'success':'✓\x20已退出登录','notLoggedIn':a56_0x1713ca(0x10c)}},'menu':{'sync':'同步菜单','update':a56_0x1713ca(0x113)},'mcp':{'cursor':a56_0x1713ca(0xe2),'claude':a56_0x1713ca(0x1e1),'error':{'unsupportedCommand':a56_0x1713ca(0x228),'missingAppcode':a56_0x1713ca(0x16e)},'help':{'title':'Lovrabet\x20MCP\x20-\x20MCP\x20服务器配置工具','availableCommands':a56_0x1713ca(0x13c),'command':{'install':a56_0x1713ca(0xae),'help':a56_0x1713ca(0x22b)},'usage':{'help':a56_0x1713ca(0xd0),'install':a56_0x1713ca(0x120),'installCursor':a56_0x1713ca(0x1bc),'installClaude':a56_0x1713ca(0x14e)},'configMethods':a56_0x1713ca(0xe4),'configMethodsInteractive':a56_0x1713ca(0xdc),'configMethodsInteractiveHint':'\x20\x20\x20\x20→\x20输入编号选择\x20IDE','configMethodsDirect':a56_0x1713ca(0x142),'configMethodsDirectCursor':'\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x20--cursor\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20配置\x20Cursor','configMethodsDirectClaude':'\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x20--claude\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20配置\x20Claude\x20Code','supportedIDEs':a56_0x1713ca(0x161),'examples':a56_0x1713ca(0x226),'exampleInstall':a56_0x1713ca(0x1e4),'exampleInstallHint':a56_0x1713ca(0xfc),'exampleInstallCursor':'\x20\x20$\x20lovrabet\x20mcp\x20install\x20--cursor','exampleInstallCursorHint':a56_0x1713ca(0x14b),'configGuide':a56_0x1713ca(0x1c9)},'select':{'chooseIDE':'\x0a请选择要配置\x20MCP\x20的\x20IDE:\x0a','cancel':a56_0x1713ca(0x207),'enterNumber':'请输入编号选择\x20IDE:\x0a','prompt':a56_0x1713ca(0x1a3),'cancelled':a56_0x1713ca(0x173),'invalidChoice':a56_0x1713ca(0xb3)},'installFlow':{'configuring':a56_0x1713ca(0xf0),'error':a56_0x1713ca(0xbd)},'cursorConfig':{'success':a56_0x1713ca(0x1e6),'configInfo':a56_0x1713ca(0x1d9),'usageHint':a56_0x1713ca(0x21f),'restartRequired':a56_0x1713ca(0x201),'error':a56_0x1713ca(0xbd),'rules':{'exists':a56_0x1713ca(0x14d),'created':'创建\x20Cursor\x20Rules\x20文件','copyFailed':a56_0x1713ca(0x17f)},'updateExisting':'更新现有\x20mcp.json\x20配置','createNew':a56_0x1713ca(0x15d),'written':'已写入\x20.cursor/mcp.json'},'claudeConfig':{'error':'\x0a错误:\x20配置失败\x20-\x20{{error}}\x0a','agents':{'exists':'agents.md\x20文件已存在,跳过','created':a56_0x1713ca(0x20e),'copyFailed':a56_0x1713ca(0x209)},'manualCommand':a56_0x1713ca(0x11b),'configInfo':a56_0x1713ca(0x1d9),'restartRequired':a56_0x1713ca(0x1cb),'commandGenerated':a56_0x1713ca(0x1d2)},'other':{'configInfo':a56_0x1713ca(0x1ef),'configGuide':a56_0x1713ca(0xb9),'guideShown':a56_0x1713ca(0x103)},'config':{'env':a56_0x1713ca(0x13a)},'install':{'starting':a56_0x1713ca(0x10d),'unknownIDE':a56_0x1713ca(0x1f5),'otherIDE':a56_0x1713ca(0x1e8),'success':a56_0x1713ca(0x21d),'failed':a56_0x1713ca(0x1a4),'completed':'\x0a✓\x20MCP\x20配置完成\x20({{successCount}}/{{totalCount}}\x20成功)','manualActionRequired':a56_0x1713ca(0x158)},'ui':{'otherIDE':a56_0x1713ca(0x1e8),'otherIDEDescription':a56_0x1713ca(0x1a9),'selectAtLeastOne':a56_0x1713ca(0x1d6),'selectedIDE':a56_0x1713ca(0x170),'count':'{{count}}\x20个','title':a56_0x1713ca(0x162),'configuring':'正在配置\x20MCP\x20服务器...','completed':'✓\x20MCP\x20配置完成!','partialManual':'⚠️\x20部分配置需要手动完成','failed':a56_0x1713ca(0x1a7),'manualRequired':a56_0x1713ca(0x110),'pressAnyKeyToExit':a56_0x1713ca(0xf5),'unsupportedIDE':a56_0x1713ca(0xe3)}},'aiSetup':{'error':{'missingAppcode':a56_0x1713ca(0x197)},'mcp':{'cursor':{'success':a56_0x1713ca(0xd4),'written':a56_0x1713ca(0x145),'error':a56_0x1713ca(0x11a),'rules':{'created':'创建\x20Cursor\x20Rules\x20文件','copyFailed':a56_0x1713ca(0x17f)}},'claude':{'commandGenerated':'Claude\x20Code\x20MCP\x20命令已生成','manualCommand':a56_0x1713ca(0xc2),'configInfo':a56_0x1713ca(0x1d9),'env':a56_0x1713ca(0x143),'restartRequired':a56_0x1713ca(0x115),'manualExecute':a56_0x1713ca(0xef),'agents':{'created':a56_0x1713ca(0x20e),'copyFailed':'复制\x20agents.md\x20文件失败'}},'other':{'name':'其他','title':a56_0x1713ca(0x19a),'guideShown':a56_0x1713ca(0x17c)},'unsupportedIDE':a56_0x1713ca(0x19b)},'skill':{'unknownIDE':'未知的\x20IDE:\x20{{ide}}','installSuccess':a56_0x1713ca(0xcc),'itemsCreated':a56_0x1713ca(0x1fc),'installFailed':a56_0x1713ca(0x204),'sharedCopied':a56_0x1713ca(0x12d),'sharedCopyFailed':a56_0x1713ca(0x117),'manifestCreated':a56_0x1713ca(0x153),'npxSkippedMsg':a56_0x1713ca(0xd8),'npxOkMsg':a56_0x1713ca(0x151),'npxFailMsg':a56_0x1713ca(0x1de),'agentNote':a56_0x1713ca(0x160),'rulesAppliedMsg':a56_0x1713ca(0x164),'noRulesForIdeMsg':a56_0x1713ca(0x136)},'ui':{'selectAtLeastOne':a56_0x1713ca(0x16d),'confirm':{'title':a56_0x1713ca(0x19c),'mcpDescription':a56_0x1713ca(0x1ad),'skillDescription':a56_0x1713ca(0x155),'yes':'[Y]\x20是,配置\x20AI\x20助手','no':a56_0x1713ca(0x16b),'default':'Enter\x20默认:\x20是'},'select':{'title':a56_0x1713ca(0x1b3),'mcpSection':a56_0x1713ca(0x17e),'skillSection':a56_0x1713ca(0xf2),'controls':a56_0x1713ca(0x1f2)},'installing':'正在配置\x20AI\x20助手...'}},'appMenu':{'error':{'missingAppCode':a56_0x1713ca(0x139),'appCodeHint':{'title':a56_0x1713ca(0x1ab),'option1':'\x20\x20\x201.\x20直接指定:\x20lovrabet\x20api\x20pull\x20<app-code>','option2':a56_0x1713ca(0x211)},'authExpired':'登录鉴权失败,登录已过期,请使用\x20lovrabet\x20auth\x20重新登录','authValidationFailed':a56_0x1713ca(0x199),'httpStatus':a56_0x1713ca(0xe5),'fetchFailed':a56_0x1713ca(0x200),'createHttpStatus':'创建菜单失败,HTTP状态码:\x20{{status}}','createFailed':a56_0x1713ca(0xfd)},'info':{'emptyMenuList':a56_0x1713ca(0x1c7)},'success':{'fetched':a56_0x1713ca(0xcd),'created':a56_0x1713ca(0x1d5)},'fetching':{'online':'正在获取线上菜单列表...\x20(appCode:\x20{{appCode}})','daily':a56_0x1713ca(0x10e)},'creating':{'single':'正在创建菜单:\x20{{label}}\x20({{path}})','batch':{'start':a56_0x1713ca(0x169),'completed':a56_0x1713ca(0xf6)}},'sync':{'title':a56_0x1713ca(0xf7),'table':{'menuName':a56_0x1713ca(0x114),'local':'本地','lovrabetPlatform':a56_0x1713ca(0x1a8)},'error':{'noMenuSelected':a56_0x1713ca(0xcb),'invalidJsUrl':'请输入有效的\x20JS\x20https\x20链接','jsUrlUnreachable':'JS\x20链接无法访问','invalidCssUrl':'请输入有效的\x20CSS\x20https\x20链接','cssUrlUnreachable':a56_0x1713ca(0x147),'createMenuFailed':a56_0x1713ca(0x1b5),'authHint':{'prefix':a56_0x1713ca(0x1a1),'suffix':a56_0x1713ca(0xd6)},'noLocalPages':a56_0x1713ca(0x217)},'step':{'selectedMenus':a56_0x1713ca(0x1ca),'selectedMenusCount':a56_0x1713ca(0xd5),'jsUrl':'JS\x20链接','cssUrl':a56_0x1713ca(0x212),'selectMenus':a56_0x1713ca(0x16a),'creating':'*\x20正在创建菜单...','completed':a56_0x1713ca(0x1eb)},'operation':{'update':'更新','create':'新建'},'loading':{'fetchingMenuList':a56_0x1713ca(0x218)},'hotkeys':a56_0x1713ca(0x21c),'input':{'jsUrl':{'label':a56_0x1713ca(0x134),'placeholder':a56_0x1713ca(0xea)},'cssUrl':{'label':a56_0x1713ca(0x1c1),'placeholder':a56_0x1713ca(0x190)}}},'updateCdn':{'title':a56_0x1713ca(0x107),'error':{'invalidJsUrl':a56_0x1713ca(0x128),'jsUrlUnreachable':a56_0x1713ca(0x1ce),'invalidCssUrl':a56_0x1713ca(0xda),'cssUrlUnreachable':a56_0x1713ca(0x147),'authHint':{'prefix':'提示:使用\x20','suffix':a56_0x1713ca(0xd6)},'noCdnLinks':a56_0x1713ca(0xbb),'updateFailed':a56_0x1713ca(0x1b0)},'loading':{'fetching':a56_0x1713ca(0x119),'syncing':'\x20资源正在同步中...'},'action':{'continue':a56_0x1713ca(0x15b),'cancel':'取消更新'},'success':{'updated':a56_0x1713ca(0x129),'synced':a56_0x1713ca(0x14a)},'updating':a56_0x1713ca(0x1db),'preview':{'title':a56_0x1713ca(0x15e),'menuList':'待更新的菜单列表:','resourceLinks':a56_0x1713ca(0xd1)},'input':{'title':a56_0x1713ca(0x1c3),'jsUrl':{'label':a56_0x1713ca(0x12b),'placeholder':a56_0x1713ca(0x186)},'cssUrl':{'label':a56_0x1713ca(0x166),'placeholder':a56_0x1713ca(0x14f)}}}},'skill':{'error':{'unsupportedCommand':a56_0x1713ca(0x228),'installFailed':'\x20\x20✗\x20安装\x20{{ide}}\x20失败:\x20{{error}}','unknownPlatform':a56_0x1713ca(0x1d8),'unknownIDE':a56_0x1713ca(0x1d3),'noValidIDE':'\x0a没有有效的\x20IDE\x20需要安装\x0a','selectAtLeastOne':a56_0x1713ca(0x1d6)},'errorHint':{'availableCommands':'\x0a可用命令:','installInteractive':a56_0x1713ca(0x14c),'installDirect':a56_0x1713ca(0x19f),'showHelp':a56_0x1713ca(0x1ee),'usageExamples':a56_0x1713ca(0x1b8),'exampleInteractive':'\x20\x20lovrabet\x20skill\x20install\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20交互式选择\x20IDE','exampleDirect':a56_0x1713ca(0x198)},'select':{'title':a56_0x1713ca(0x1b6),'installAll':'全部安装','cancel':'取消','inputFormat':'输入格式:\x20输入编号,用空格分隔\x20(例如:\x201\x203\x205)','inputHint':a56_0x1713ca(0x101),'prompt':a56_0x1713ca(0x1a3),'cancelled':a56_0x1713ca(0x10f),'noneSelected':'\x0a未选择任何\x20IDE,安装取消\x0a','selectedIDE':'已选择\x20IDE','count':a56_0x1713ca(0xd5)},'cdn':{'fetching':'正在从\x20CDN\x20拉取开发者指南...','fetchingExtend':a56_0x1713ca(0x159),'fetchSuccess':a56_0x1713ca(0x1ac),'fetchFailed':a56_0x1713ca(0x177)},'install':{'npxIntro':a56_0x1713ca(0xc4),'npxFailed':'npx\x20skills\x20add\x20失败:\x20{{error}}','npxSkippedEnv':a56_0x1713ca(0x224),'npxDone':a56_0x1713ca(0xb5),'rulesFor':a56_0x1713ca(0xaa),'rulesAppliedShort':a56_0x1713ca(0x104),'rulesSkipShort':'规则已存在或未适用'},'installing':{'title':a56_0x1713ca(0x1c8),'progress':a56_0x1713ca(0x18b),'progressNpx':'正在运行\x20npx\x20skills\x20add\x20并写入规则...','ide':a56_0x1713ca(0x118),'installed':a56_0x1713ca(0x210),'created':'\x20\x20✓\x20创建\x20{{path}}','createdDir':a56_0x1713ca(0xce),'createdManifest':a56_0x1713ca(0x189)},'done':{'success':a56_0x1713ca(0xc9),'successInline':'✓\x20技能包安装成功!共安装\x20{{count}}\x20个目录','successNpx':'\x0a✓\x20官方\x20skill\x20与规则处理完成\x0a','guidesLocation':'开发者指南位置:','guidesPath':a56_0x1713ca(0x181),'guidesPathSkills':a56_0x1713ca(0x18a),'guidesPathInline':'开发者指南位置:\x20.lovrabet/skill/guides/','guidesPathInlineSkills':a56_0x1713ca(0xd9),'pressAnyKey':a56_0x1713ca(0xf5)},'generic':'通用模板','help':{'title':a56_0x1713ca(0x1dd),'usage':a56_0x1713ca(0x215),'showHelp':a56_0x1713ca(0xf9),'installInteractive':a56_0x1713ca(0x188),'installDirect':a56_0x1713ca(0x13f),'installAll':a56_0x1713ca(0x206),'installWithBff':a56_0x1713ca(0x11c),'installMethods':'安装方式:','interactiveSelect':a56_0x1713ca(0x127),'interactiveKeys':'\x20\x20\x20\x20→\x20使用\x20↑↓\x20移动光标,空格选中/取消,Enter\x20确认\x0a\x20\x20\x20\x20→\x20按\x20a\x20全选,按\x20i/r\x20反选,按\x20q\x20退出','directInstall':a56_0x1713ca(0x1bb),'bffWorkflow':'\x20\x20包含\x20Backend\x20Function\x20同步工作流\x20\x20\x20-\x20使用\x20--enable-bff-save\x20标志(旧名\x20--dangerously-bff-save\x20仍可用)','sourceWorkflow':'\x20\x20指定\x20Skill\x20来源','supportedIDEs':a56_0x1713ca(0x161),'agentDesc':a56_0x1713ca(0xf1),'allDesc':a56_0x1713ca(0x1cd),'options':a56_0x1713ca(0x12c),'bffOption':a56_0x1713ca(0x102),'skillContents':'技能包内容包括:','skillContentsList':a56_0x1713ca(0x15c),'examples':'示例:','exampleInteractive':'\x20\x20\x20\x20→\x20交互式选择\x20IDE','exampleDirectDesc':a56_0x1713ca(0xed),'exampleBffDesc':a56_0x1713ca(0x122),'exampleAllDesc':a56_0x1713ca(0x203),'afterInstall':a56_0x1713ca(0x156),'afterInstallList':'\x20\x20-\x20skills/lovrabet/(npx\x20skills\x20add\x20安装的官方\x20skill)\x0a\x20\x20-\x20Cursor:\x20.cursor/rules/lovrabet_rules.mdc;Claude\x20Code:\x20agents.md(若适用)','guidesLocationTitle':a56_0x1713ca(0x171),'guidesLocationExample':'\x20\x20skills/lovrabet/guides/01-typescript-sdk.md','equivCommand':a56_0x1713ca(0x183),'compactNote':a56_0x1713ca(0x16f)}},'logs':{'title':'日志','view':a56_0x1713ca(0x221),'clear':a56_0x1713ca(0x109),'noLogs':a56_0x1713ca(0x1df),'header':a56_0x1713ca(0x150),'time':a56_0x1713ca(0xbe),'duration':'\x20\x20\x20耗时:\x20{{duration}}ms','details':a56_0x1713ca(0x20d),'cleared':'*\x20日志已清空'},'start':{'starting':a56_0x1713ca(0x1e9)},'build':{'building':a56_0x1713ca(0x20c)},'preview':{'previewing':a56_0x1713ca(0x1bf),'watchMode':'监听模式'},'ui':{'ideSelector':{'title':a56_0x1713ca(0x148),'hotkeys':'↑/↓:\x20移动光标\x20空格:\x20切换选中\x20a:\x20全选\x20i/r:\x20反选\x20q:\x20退出\x20Enter:\x20确认'}},'upgrade':{'cli':{'title':a56_0x1713ca(0x1ea),'current':a56_0x1713ca(0x10a),'stable':a56_0x1713ca(0x227),'command':'\x20\x20\x20升级命令:\x20{{command}}'},'sdk':{'title':'↪\x20SDK\x20版本更新','current':'\x20\x20\x20当前版本:\x20{{package}}@{{version}}','stable':'\x20\x20\x20稳定版本:\x20{{version}}','command':a56_0x1713ca(0x144)}}};
|
package/lib/init/main.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x535cce,_0x2a0a3d){const _0x5877f8=a57_0x1ee9,_0x9e27f0=_0x535cce();while(!![]){try{const _0x4e7229=-parseInt(_0x5877f8(0xdf))/0x1+parseInt(_0x5877f8(0xe8))/0x2*(parseInt(_0x5877f8(0xd5))/0x3)+parseInt(_0x5877f8(0xf5))/0x4+parseInt(_0x5877f8(0xf3))/0x5+parseInt(_0x5877f8(0xdb))/0x6*(-parseInt(_0x5877f8(0xf6))/0x7)+parseInt(_0x5877f8(0xe3))/0x8+-parseInt(_0x5877f8(0xde))/0x9;if(_0x4e7229===_0x2a0a3d)break;else _0x9e27f0['push'](_0x9e27f0['shift']());}catch(_0x4b5a4a){_0x9e27f0['push'](_0x9e27f0['shift']());}}}(a57_0x322b,0x78de3));import{jsxs as a57_0x3c5d21,jsx as a57_0x53c73f}from'react/jsx-runtime';import{useState,useEffect}from'react';function a57_0x1ee9(_0x577c55,_0xb83214){_0x577c55=_0x577c55-0xc7;const _0x322bb1=a57_0x322b();let _0x1ee9f9=_0x322bb1[_0x577c55];return _0x1ee9f9;}import{Box,Text,useInput}from'ink';import{existsSync,writeFileSync,readFileSync}from'node:fs';function a57_0x322b(){const _0x552473=['length','init.appCodeLabel','cwd','init.creating','init.success','3802600gPATlu','\x20←\x20','546204SIulOI','2506TNGCgj','创建配置文件失败','init.validation.tooLong','common.error','error','init.fileExists','init.inputAppCode','return','gray','slice','.lovrabetrc','message','init.validation.invalidCode','../..','toLocaleString','version','init.validation.required','26109JXtplX','utf8','column','init','backspace','初始化项目配置文件成功','7494TniReU','ctrl','1.0.0','1070154NLOpuS','349947OhXsBh','red','env','setLogPath','3206880WGjtkS','delete','init.validation.invalidFormat','cyan','parse','26SPoazH','trim','init.appCodeDesc','test','exit','green'];a57_0x322b=function(){return _0x552473;};return a57_0x322b();}import{resolve,join,dirname}from'node:path';import{fileURLToPath}from'node:url';import{logger}from'../utils/logger.js';import{readConfig}from'../utils/config.js';import{useI18n}from'../i18n/hooks.js';export function Init({appcode:_0x11b898,env:_0x93f456}){const _0x3392e1=a57_0x1ee9,{t:_0x4a90b1}=useI18n(),[_0x2cdbc9,_0x41246c]=useState(null),[_0x2b6b54,_0x122f3e]=useState(![]),[_0x258393,_0x4ba53b]=useState(!_0x11b898),[_0x350999,_0x6cbaf]=useState(''),[_0x529bd5,_0x9ef081]=useState(''),[_0x58ca99,_0xf6b981]=useState(_0x11b898||''),[_0x511674]=useState(_0x93f456);function _0x2acebe(_0x44394a){const _0x28ee10=a57_0x1ee9;if(_0x44394a[_0x28ee10(0xee)]===0x0)return{'valid':![],'message':''};if(_0x44394a[_0x28ee10(0xee)]>0x64)return{'valid':![],'message':_0x4a90b1(_0x28ee10(0xf8))};const _0x474dd4=/^[A-Za-z0-9_-]+$/;if(!_0x474dd4[_0x28ee10(0xeb)](_0x44394a))return{'valid':![],'message':_0x4a90b1(_0x28ee10(0xe5))};return{'valid':!![]};}useInput((_0x4956e5,_0xd6319a)=>{const _0x41bfe2=a57_0x1ee9;if(!_0x258393)return;if(_0xd6319a[_0x41bfe2(0xcb)]){if(_0x529bd5||!_0x350999[_0x41bfe2(0xe9)]()){_0x9ef081(_0x4a90b1(_0x41bfe2(0xd4)));return;}const _0x43716d=_0x350999['trim'](),{valid:_0x514864,message:_0x3170bd}=_0x2acebe(_0x43716d);if(!_0x514864){_0x9ef081(_0x3170bd||_0x4a90b1(_0x41bfe2(0xd0)));return;}_0xf6b981(_0x43716d),_0x4ba53b(![]);}else{if(_0xd6319a[_0x41bfe2(0xd9)]||_0xd6319a[_0x41bfe2(0xe4)])_0x6cbaf(_0x1f9103=>{const _0x38e4c4=_0x41bfe2,_0x16d1a3=_0x1f9103[_0x38e4c4(0xcd)](0x0,-0x1);if(_0x16d1a3[_0x38e4c4(0xee)]===0x0)_0x9ef081('');else{const {valid:_0x354162,message:_0x11dbc2}=_0x2acebe(_0x16d1a3);_0x9ef081(_0x354162?'':_0x11dbc2||_0x4a90b1('init.validation.invalidCode'));}return _0x16d1a3;});else _0xd6319a[_0x41bfe2(0xdc)]&&_0x4956e5==='c'?process[_0x41bfe2(0xec)](0x0):_0x6cbaf(_0x4f298e=>{const _0x423a55=_0x41bfe2,_0xe8350f=_0x4f298e+_0x4956e5,{valid:_0x278fce,message:_0x5b8158}=_0x2acebe(_0xe8350f);return _0x9ef081(_0x278fce?'':_0x5b8158||_0x4a90b1(_0x423a55(0xd0))),_0xe8350f;});}},{'isActive':_0x258393}),useEffect(()=>{const _0x3a8dd7=a57_0x1ee9;if(!_0x58ca99||_0x258393)return;const _0x241a02=resolve(process[_0x3a8dd7(0xf0)](),_0x3a8dd7(0xce));if(existsSync(_0x241a02)){_0x41246c(_0x4a90b1(_0x3a8dd7(0xc9))),setTimeout(()=>process[_0x3a8dd7(0xec)](0x1),0x64);return;}try{const _0x320f1b=fileURLToPath(import.meta.url),_0xf30270=resolve(dirname(_0x320f1b),_0x3a8dd7(0xd1)),_0x42ba1a=join(_0xf30270,'package.json');let _0x3493b4=_0x3a8dd7(0xdd);try{const _0x1ba44e=JSON[_0x3a8dd7(0xe7)](readFileSync(_0x42ba1a,_0x3a8dd7(0xd6)));_0x3493b4=_0x1ba44e[_0x3a8dd7(0xd3)]||_0x3a8dd7(0xdd);}catch(_0x1ca3ce){}const _0x2182de=readConfig(),_0xfefc3=typeof _0x2182de['env']==='string'?_0x2182de[_0x3a8dd7(0xe1)]:undefined,{app:_0x2830b3,appcode:_0x2d24b4,..._0x100543}=_0x2182de,_0x2a0752={..._0x100543,'appcode':_0x58ca99,'env':_0x511674||_0xfefc3||'production','createdAt':new Date()[_0x3a8dd7(0xd2)](),'version':_0x3493b4};writeFileSync(_0x241a02,JSON['stringify'](_0x2a0752,null,0x2),{'encoding':_0x3a8dd7(0xd6),'mode':0x180}),logger[_0x3a8dd7(0xe2)](process[_0x3a8dd7(0xf0)]()),logger['info'](_0x3a8dd7(0xd8),_0x3a8dd7(0xda),{'appcode':_0x58ca99,'env':_0x2a0752[_0x3a8dd7(0xe1)],'version':_0x2a0752['version'],'configPath':_0x241a02}),_0x122f3e(!![]),setTimeout(()=>process[_0x3a8dd7(0xec)](0x0),0x64);}catch(_0x59cdc1){logger[_0x3a8dd7(0xc8)](_0x3a8dd7(0xd8),_0x3a8dd7(0xf7),{'error':_0x59cdc1 instanceof Error?_0x59cdc1[_0x3a8dd7(0xcf)]:String(_0x59cdc1)}),_0x41246c(_0x4a90b1(_0x3a8dd7(0xc7))+':\x20'+(_0x59cdc1 instanceof Error?_0x59cdc1[_0x3a8dd7(0xcf)]:String(_0x59cdc1))),setTimeout(()=>process[_0x3a8dd7(0xec)](0x1),0x64);}},[_0x58ca99,_0x258393,_0x511674]);if(_0x2cdbc9)return a57_0x53c73f(Box,{'flexDirection':_0x3392e1(0xd7),'children':a57_0x3c5d21(Text,{'color':_0x3392e1(0xe0),'children':['✗\x20',_0x2cdbc9]})});if(_0x258393)return a57_0x3c5d21(Box,{'flexDirection':'column','children':[a57_0x3c5d21(Box,{'children':[a57_0x3c5d21(Text,{'color':_0x3392e1(0xe6),'children':[_0x4a90b1(_0x3392e1(0xca)),'\x20']}),_0x350999?a57_0x53c73f(Text,{'color':_0x3392e1(0xed),'children':_0x350999}):a57_0x53c73f(Text,{'color':_0x3392e1(0xcc),'children':'_'}),_0x529bd5&&a57_0x3c5d21(Text,{'color':_0x3392e1(0xe0),'children':[_0x3392e1(0xf4),_0x529bd5]})]}),!_0x529bd5&&!_0x350999&&a57_0x53c73f(Box,{'children':a57_0x53c73f(Text,{'color':_0x3392e1(0xcc),'children':_0x4a90b1(_0x3392e1(0xea))})})]});if(_0x2b6b54)return a57_0x3c5d21(Box,{'flexDirection':_0x3392e1(0xd7),'children':[a57_0x3c5d21(Text,{'color':_0x3392e1(0xed),'children':['✓\x20',_0x4a90b1(_0x3392e1(0xf2))]}),a57_0x3c5d21(Text,{'color':_0x3392e1(0xe6),'children':[_0x4a90b1(_0x3392e1(0xef)),':\x20',_0x58ca99]}),a57_0x53c73f(Text,{'children':_0x4a90b1('init.nextSteps')})]});return a57_0x53c73f(Box,{'children':a57_0x53c73f(Text,{'children':_0x4a90b1(_0x3392e1(0xf1))})});}
|
package/lib/mcp/McpInstallUI.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x508763,_0x4a5510){const _0x21ceef=a58_0x5824,_0x425ba0=_0x508763();while(!![]){try{const _0x5bfcb6=-parseInt(_0x21ceef(0x161))/0x1*(parseInt(_0x21ceef(0x157))/0x2)+-parseInt(_0x21ceef(0x165))/0x3*(parseInt(_0x21ceef(0x174))/0x4)+-parseInt(_0x21ceef(0x159))/0x5*(-parseInt(_0x21ceef(0x173))/0x6)+-parseInt(_0x21ceef(0x15f))/0x7+-parseInt(_0x21ceef(0x15b))/0x8+-parseInt(_0x21ceef(0x154))/0x9+-parseInt(_0x21ceef(0x16b))/0xa*(-parseInt(_0x21ceef(0x164))/0xb);if(_0x5bfcb6===_0x4a5510)break;else _0x425ba0['push'](_0x425ba0['shift']());}catch(_0x28772b){_0x425ba0['push'](_0x425ba0['shift']());}}}(a58_0x41e5,0xe688e));import{jsx as a58_0x4abc72,jsxs as a58_0x2312c7,Fragment as a58_0x16fd14}from'react/jsx-runtime';import{useState,useEffect,useMemo}from'react';import{Text,Box,useInput,useApp}from'ink';import{MCP_IDES,IDE_CONFIGS}from'../utils/ai_config.js';function a58_0x41e5(){const _0x331c6c=['message','other','mcp.ui.otherIDEDescription','mcp.ui.completed','selectedIndexes','selecting','setErrorMsg','value','getSelectedIDEs','done','key','mcp.ui.manualRequired','map','ide','mcp.ui.count','length','⚠️\x20','success','9793143gUgAsE','configuring','column','6sYozzL','cyan','7170720VsiOOY','mcp.ui.failed','9883376iDZDSH','gray','name','size','12151825xCcmSs','red','313289pLgvwM','label','yellow','9647uCkHUo','15cXzNtw','handleKeyDown','mcp.ui.selectAtLeastOne','mcp.ui.otherIDE','mcp.ui.title','white','69860CxhWGw','mcp.ui.pressAnyKeyToExit','needsManualAction','manual','green','mcp.ui.selectedIDE','mcp.ui.partialManual','status','6SCOMfe','1293764sKhZiF','error'];a58_0x41e5=function(){return _0x331c6c;};return a58_0x41e5();}function a58_0x5824(_0x8a2be2,_0x1876d7){_0x8a2be2=_0x8a2be2-0x154;const _0x41e555=a58_0x41e5();let _0x582435=_0x41e555[_0x8a2be2];return _0x582435;}import{IDESelector,useIDESelection}from'../ui/IDESelector.js';import{installMcp}from'./mcp-installer.js';import{useI18n}from'../i18n/hooks.js';export function McpInstallUI({preselectedIDEs:preselectedIDEs=[],enableBffSave:_0x3a314e}){const _0x7522ba=a58_0x5824,{t:_0x472d4f}=useI18n(),{exit:_0x5d32f4}=useApp(),[_0x3760cd,_0x52122c]=useState('selecting'),[_0x1ae1ea,_0x5a0f60]=useState([]),[_0x3344e0,_0x6c04f9]=useState([]),_0x9abccc=useMemo(()=>[...Array['from'](MCP_IDES)[_0x7522ba(0x182)](_0x3ea4a9=>({'key':_0x3ea4a9,'name':IDE_CONFIGS[_0x3ea4a9][_0x7522ba(0x15d)],'description':IDE_CONFIGS[_0x3ea4a9]['description']})),{'key':_0x7522ba(0x177),'name':_0x472d4f(_0x7522ba(0x168)),'description':_0x472d4f(_0x7522ba(0x178))}],[_0x472d4f]),_0xa59fcd=useIDESelection({'ideList':_0x9abccc,'preselectedIDEs':preselectedIDEs,'multiSelect':!![]});useEffect(()=>{const _0x33d930=_0x7522ba;preselectedIDEs[_0x33d930(0x185)]>0x0&&_0xa59fcd[_0x33d930(0x17a)][_0x33d930(0x15e)]>0x0&&_0x233c93();},[]),useInput((_0x327b85,_0x31f45c)=>{const _0xab331=_0x7522ba;if(_0x3760cd===_0xab331(0x17b)){if(_0x327b85==='q'||_0x327b85==='Q'){_0x5d32f4();return;}if(_0x31f45c['return']){if(_0xa59fcd[_0xab331(0x17a)]['size']===0x0){_0xa59fcd[_0xab331(0x17c)](_0x472d4f(_0xab331(0x167)));return;}_0x233c93();return;}_0xa59fcd[_0xab331(0x166)](_0x327b85,_0x31f45c);}_0x3760cd===_0xab331(0x17f)&&_0x5d32f4();});async function _0x233c93(){const _0x12b3d9=_0x7522ba,_0x4bdffb=_0xa59fcd[_0x12b3d9(0x17e)]();_0x5a0f60([{'label':_0x472d4f(_0x12b3d9(0x170)),'value':_0x472d4f(_0x12b3d9(0x184),{'count':_0xa59fcd[_0x12b3d9(0x17a)][_0x12b3d9(0x15e)]})}]),_0x52122c('configuring');const _0x20db0c=await installMcp(_0x4bdffb,_0x3a314e),_0x49d5d4=_0x20db0c[_0x12b3d9(0x182)](_0x17b1c9=>({'ide':_0x9abccc['find'](_0x36e883=>_0x36e883[_0x12b3d9(0x180)]===_0x17b1c9['ide'])?.[_0x12b3d9(0x15d)]||_0x17b1c9[_0x12b3d9(0x183)],'status':_0x17b1c9[_0x12b3d9(0x16d)]?_0x12b3d9(0x16e):_0x17b1c9['success']?_0x12b3d9(0x187):_0x12b3d9(0x175),'message':_0x17b1c9[_0x12b3d9(0x176)]}));_0x6c04f9(_0x49d5d4),_0x52122c(_0x12b3d9(0x17f)),setTimeout(()=>{_0x5d32f4();},0x1388);}return a58_0x2312c7(Box,{'flexDirection':_0x7522ba(0x156),'marginTop':0x1,'children':[_0x3760cd===_0x7522ba(0x17b)&&a58_0x4abc72(IDESelector,{'ideList':_0x9abccc,'title':_0x472d4f(_0x7522ba(0x169)),'selection':_0xa59fcd}),_0x3760cd===_0x7522ba(0x155)&&a58_0x2312c7(a58_0x16fd14,{'children':[_0x1ae1ea[_0x7522ba(0x182)]((_0x109560,_0x3e0bdd)=>a58_0x2312c7(Box,{'children':[a58_0x2312c7(Text,{'color':_0x7522ba(0x16f),'children':['√\x20',_0x109560[_0x7522ba(0x162)],':\x20']}),a58_0x4abc72(Text,{'color':_0x7522ba(0x158),'children':_0x109560[_0x7522ba(0x17d)]})]},_0x3e0bdd)),a58_0x4abc72(Box,{'marginTop':0x1,'children':a58_0x4abc72(Text,{'children':_0x472d4f('mcp.ui.configuring')})})]}),_0x3760cd===_0x7522ba(0x17f)&&a58_0x4abc72(DoneStep,{'configResults':_0x3344e0})]});}function DoneStep({configResults:_0x3d7745}){const _0x12bee5=a58_0x5824,{t:_0x292628}=useI18n(),_0x406be5=_0x3d7745['every'](_0x3b0f02=>_0x3b0f02[_0x12bee5(0x172)]===_0x12bee5(0x187)),_0x190a58=_0x3d7745['some'](_0x2e061d=>_0x2e061d[_0x12bee5(0x172)]===_0x12bee5(0x16e)),_0x4b93ee=_0x3d7745['some'](_0x2175c5=>_0x2175c5['status']===_0x12bee5(0x175));return a58_0x2312c7(Box,{'flexDirection':_0x12bee5(0x156),'children':[a58_0x4abc72(Box,{'marginTop':0x1,'marginBottom':0x1,'children':_0x406be5?a58_0x4abc72(Text,{'color':_0x12bee5(0x16f),'bold':!![],'children':_0x292628(_0x12bee5(0x179))}):_0x190a58?a58_0x4abc72(Text,{'color':_0x12bee5(0x163),'bold':!![],'children':_0x292628(_0x12bee5(0x171))}):_0x4b93ee?a58_0x4abc72(Text,{'color':_0x12bee5(0x160),'bold':!![],'children':_0x292628(_0x12bee5(0x15a))}):a58_0x4abc72(Text,{'color':_0x12bee5(0x163),'bold':!![],'children':_0x292628(_0x12bee5(0x181))})}),_0x3d7745[_0x12bee5(0x182)]((_0x4216aa,_0x3e08d6)=>{const _0x3ded2e=_0x12bee5,_0x3d625b=_0x4216aa[_0x3ded2e(0x172)]==='success',_0x1a4808=_0x4216aa['status']===_0x3ded2e(0x16e);return a58_0x2312c7(Box,{'flexDirection':'column','marginBottom':0x1,'children':[a58_0x4abc72(Box,{'children':a58_0x2312c7(Text,{'bold':!![],'color':_0x3d625b?_0x3ded2e(0x16f):_0x1a4808?_0x3ded2e(0x163):_0x3ded2e(0x160),'children':[_0x3d625b?'✓\x20':_0x1a4808?_0x3ded2e(0x186):'✗\x20',_0x4216aa[_0x3ded2e(0x183)],':']})}),a58_0x4abc72(Box,{'paddingLeft':0x3,'flexDirection':_0x3ded2e(0x156),'children':a58_0x4abc72(Text,{'color':_0x3ded2e(0x16a),'children':_0x4216aa[_0x3ded2e(0x176)]})})]},_0x3e08d6);}),a58_0x4abc72(Box,{'marginTop':0x1,'children':a58_0x4abc72(Text,{'color':_0x12bee5(0x15c),'children':_0x292628(_0x12bee5(0x16c))})})]});}
|
package/lib/mcp/claude.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x177c03,_0x5c2208){const _0x3f86e0=a59_0x4d4f,_0x48c001=_0x177c03();while(!![]){try{const _0x3df439=parseInt(_0x3f86e0(0x1a3))/0x1+parseInt(_0x3f86e0(0x19a))/0x2+-parseInt(_0x3f86e0(0x1ab))/0x3*(parseInt(_0x3f86e0(0x1a8))/0x4)+-parseInt(_0x3f86e0(0x19e))/0x5*(-parseInt(_0x3f86e0(0x1a6))/0x6)+-parseInt(_0x3f86e0(0x19b))/0x7+parseInt(_0x3f86e0(0x1a5))/0x8*(parseInt(_0x3f86e0(0x1a9))/0x9)+parseInt(_0x3f86e0(0x1a0))/0xa*(-parseInt(_0x3f86e0(0x1aa))/0xb);if(_0x3df439===_0x5c2208)break;else _0x48c001['push'](_0x48c001['shift']());}catch(_0x451e6d){_0x48c001['push'](_0x48c001['shift']());}}}(a59_0x4a7b,0xa3189));import{configureClaudeMcp as a59_0x3b3915}from'./mcp-installer.js';import a59_0x5cc565 from'../i18n/index.js';export async function configureClaudeMcp(){const _0xdb6280=a59_0x4d4f,_0x2da952=process[_0xdb6280(0x19f)](),_0x4958ef=a59_0x3b3915(_0x2da952);_0x4958ef[_0xdb6280(0x19c)]?(console[_0xdb6280(0x1a4)](_0xdb6280(0x1a7)+_0x4958ef['message']+'\x0a'),process[_0xdb6280(0x19d)](0x0)):(console['error'](a59_0x5cc565['t'](_0xdb6280(0x1a1),{'error':_0x4958ef[_0xdb6280(0x1a2)]})),process['exit'](0x1));}function a59_0x4d4f(_0x51d45a,_0x14dd38){_0x51d45a=_0x51d45a-0x19a;const _0x4a7b38=a59_0x4a7b();let _0x4d4f8b=_0x4a7b38[_0x51d45a];return _0x4d4f8b;}function a59_0x4a7b(){const _0x3ab0e6=['70cjukmu','mcp.claudeConfig.error','message','1190979OCZsFU','log','915528mqWznv','6zGVLwB','\x0a📋\x20','20BfQDPt','81RSOLyO','2863179EqIOpT','270306pdXhnd','404906pzyUmW','2148664sMPJxp','success','exit','4120625pduouX','cwd'];a59_0x4a7b=function(){return _0x3ab0e6;};return a59_0x4a7b();}
|
package/lib/mcp/cursor.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x1b9efd,_0x59b4f3){const _0x339f70=a60_0x4869,_0x40875a=_0x1b9efd();while(!![]){try{const _0x48652d=parseInt(_0x339f70(0x13e))/0x1+-parseInt(_0x339f70(0x144))/0x2+parseInt(_0x339f70(0x140))/0x3+-parseInt(_0x339f70(0x141))/0x4*(-parseInt(_0x339f70(0x149))/0x5)+-parseInt(_0x339f70(0x13f))/0x6+parseInt(_0x339f70(0x145))/0x7+-parseInt(_0x339f70(0x14b))/0x8;if(_0x48652d===_0x59b4f3)break;else _0x40875a['push'](_0x40875a['shift']());}catch(_0x1a6c0e){_0x40875a['push'](_0x40875a['shift']());}}}(a60_0x2705,0x70f0c));function a60_0x4869(_0x41fdd5,_0x4ee3a8){_0x41fdd5=_0x41fdd5-0x13d;const _0x270504=a60_0x2705();let _0x486921=_0x270504[_0x41fdd5];return _0x486921;}import{configureCursorMcp as a60_0x4824db}from'./mcp-installer.js';function a60_0x2705(){const _0x47b917=['1119243HJOyWZ','552880GvOJxB','cwd','mcp.cursorConfig.usageHint','92388CGJCBc','5368321dJrvhg','message','log','mcp.cursorConfig.configInfo','20hYXrOX','success','7923224VQprcW','mcp.cursorConfig.success','exit','342142BLBGhA','3214830RMfnDm'];a60_0x2705=function(){return _0x47b917;};return a60_0x2705();}import a60_0x586164 from'../i18n/index.js';export async function configureCursorMcp(){const _0x2871f9=a60_0x4869,_0x4c78b2=process[_0x2871f9(0x142)](),_0xe2cee1=await a60_0x4824db(_0x4c78b2);_0xe2cee1[_0x2871f9(0x14a)]?(console[_0x2871f9(0x147)](a60_0x586164['t'](_0x2871f9(0x14c))),console[_0x2871f9(0x147)](a60_0x586164['t'](_0x2871f9(0x148))),console[_0x2871f9(0x147)]('\x20\x20'+_0xe2cee1['message']+'\x0a'),console['log'](a60_0x586164['t'](_0x2871f9(0x143))),console['log'](a60_0x586164['t']('mcp.cursorConfig.restartRequired')),process[_0x2871f9(0x13d)](0x0)):(console['error'](a60_0x586164['t']('mcp.cursorConfig.error',{'error':_0xe2cee1[_0x2871f9(0x146)]})),process[_0x2871f9(0x13d)](0x1));}
|
package/lib/mcp/main.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x2ee6a9,_0x177a53){const _0x50cc74=a61_0x5e02,_0x2fb21f=_0x2ee6a9();while(!![]){try{const _0xe4c3cc=parseInt(_0x50cc74(0x13c))/0x1+parseInt(_0x50cc74(0x124))/0x2*(-parseInt(_0x50cc74(0x14e))/0x3)+parseInt(_0x50cc74(0x12d))/0x4*(-parseInt(_0x50cc74(0x14b))/0x5)+parseInt(_0x50cc74(0x14f))/0x6*(-parseInt(_0x50cc74(0x13f))/0x7)+parseInt(_0x50cc74(0x14a))/0x8*(-parseInt(_0x50cc74(0x128))/0x9)+parseInt(_0x50cc74(0x134))/0xa+-parseInt(_0x50cc74(0x127))/0xb*(-parseInt(_0x50cc74(0x13b))/0xc);if(_0xe4c3cc===_0x177a53)break;else _0x2fb21f['push'](_0x2fb21f['shift']());}catch(_0x27ff99){_0x2fb21f['push'](_0x2fb21f['shift']());}}}(a61_0x18e8,0xca5e6));import{installMcp}from'./mcp-installer.js';import{logger}from'../utils/logger.js';import{MCP_IDES,IDE_CONFIGS}from'../utils/ai_config.js';import a61_0x28aeee from'../i18n/index.js';export async function mcpCommand(_0x39e14f,_0x56a937,_0xb5162b){const _0x417847=a61_0x5e02;logger[_0x417847(0x12c)](process[_0x417847(0x148)]());if(_0xb5162b?.[_0x417847(0x147)]||_0x39e14f===_0x417847(0x14c)){showHelp();return;}_0x39e14f!==_0x417847(0x13d)&&(console[_0x417847(0x149)](a61_0x28aeee['t'](_0x417847(0x141),{'cmd':_0x39e14f||'-'})),console[_0x417847(0x131)](a61_0x28aeee['t'](_0x417847(0x139))),console['log'](a61_0x28aeee['t'](_0x417847(0x140))),console[_0x417847(0x131)](a61_0x28aeee['t']('mcp.help.command.help')),logger[_0x417847(0x149)](_0x417847(0x145),a61_0x28aeee['t'](_0x417847(0x141),{'cmd':_0x39e14f||'-'})),process[_0x417847(0x11f)](0x1));let _0x15af84;if(_0xb5162b?.[_0x417847(0x120)])_0x15af84=_0x417847(0x130);else{if(_0xb5162b?.[_0x417847(0x12e)])_0x15af84=_0x417847(0x150);else{if(_0x56a937?.[0x0]){const _0x2d432c=_0x56a937[0x0][_0x417847(0x132)]();MCP_IDES[_0x417847(0x135)](_0x2d432c)&&(_0x15af84=_0x2d432c);}}}const _0x5de980=_0x15af84?[_0x15af84]:[],_0x37f721=await installMcp(_0x5de980,_0xb5162b?.[_0x417847(0x126)]);for(const _0x3dc6f9 of _0x37f721){const _0x2196f9=IDE_CONFIGS[_0x3dc6f9[_0x417847(0x152)]]?.['name']||_0x3dc6f9[_0x417847(0x152)],_0x57ecee=_0x3dc6f9[_0x417847(0x138)]?'⚠️':_0x3dc6f9['success']?'✓':'✗',_0x5f054f=_0x3dc6f9['success']?console[_0x417847(0x131)]:console['error'];_0x5f054f(_0x57ecee+'\x20'+_0x2196f9+':');const _0x3a64bf=_0x3dc6f9['message'][_0x417847(0x144)]('\x0a');for(const _0x288152 of _0x3a64bf){_0x5f054f('\x20\x20'+_0x288152);}console['log']('');}}function a61_0x5e02(_0x48a166,_0x546ec2){_0x48a166=_0x48a166-0x11f;const _0x18e8fd=a61_0x18e8();let _0x5e02b5=_0x18e8fd[_0x48a166];return _0x5e02b5;}function a61_0x18e8(){const _0x25fa32=['mcp.help.examples','62wlRlvF','mcp.help.configGuide','enableBffSave','143OpxDoM','52506gNGCVu','mcp.help.configMethodsDirectClaude','from','mcp.help.exampleInstall','setLogPath','8VPBLCh','mcpClaude','mcp.help.configMethodsInteractive','cursor','log','toLowerCase','description','10046990npftBF','has','mcp.help.configMethodsInteractiveHint','mcp.help.configMethods','needsManualAction','mcp.help.availableCommands','mcp.help.supportedIDEs','2328204XwIimL','1304693Rlmrqe','install','mcp.help.usage.install','403424jutuCG','mcp.help.command.install','mcp.error.unsupportedCommand','\x20-\x20','mcp.help.usage.installCursor','split','mcp','mcp.help.configMethodsDirectCursor','help','cwd','error','1712gTIcek','517595EDSLsa','--help','mcp.help.usage.installClaude','151689ZWsrme','102bgspEW','claude','mcp.help.usage.help','ide','join','\x0a\x20\x20\x20\x20$\x20lovrabet\x20mcp\x20install\x0a','exit','mcpCursor','\x0a\x20\x20https://open.lovrabet.com/en/docs/mcp/config-guide\x0a','mcp.help.configMethodsDirect'];a61_0x18e8=function(){return _0x25fa32;};return a61_0x18e8();}function showHelp(){const _0x412577=a61_0x5e02;console['log']('\x0a'+a61_0x28aeee['t']('mcp.help.title')+'\x0a\x0a'+a61_0x28aeee['t'](_0x412577(0x151))+'\x0a'+a61_0x28aeee['t'](_0x412577(0x13e))+'\x0a'+a61_0x28aeee['t'](_0x412577(0x143))+'\x0a'+a61_0x28aeee['t'](_0x412577(0x14d))+'\x0a\x0a'+a61_0x28aeee['t'](_0x412577(0x137))+'\x0a'+a61_0x28aeee['t'](_0x412577(0x12f))+_0x412577(0x154)+a61_0x28aeee['t'](_0x412577(0x136))+'\x0a\x0a'+a61_0x28aeee['t'](_0x412577(0x122))+'\x0a'+a61_0x28aeee['t'](_0x412577(0x146))+'\x0a'+a61_0x28aeee['t'](_0x412577(0x129))+'\x0a\x0a'+a61_0x28aeee['t'](_0x412577(0x13a))+'\x0a'+Array[_0x412577(0x12a)](MCP_IDES)['map']((_0x247e6c,_0x395048)=>'\x20\x20'+(_0x395048+0x1)+'.\x20'+IDE_CONFIGS[_0x247e6c]['name']+_0x412577(0x142)+IDE_CONFIGS[_0x247e6c][_0x412577(0x133)])[_0x412577(0x153)]('\x0a')+'\x0a\x0a'+a61_0x28aeee['t'](_0x412577(0x123))+'\x0a'+a61_0x28aeee['t'](_0x412577(0x12b))+'\x0a'+a61_0x28aeee['t']('mcp.help.exampleInstallHint')+'\x0a\x0a'+a61_0x28aeee['t']('mcp.help.exampleInstallCursor')+'\x0a'+a61_0x28aeee['t']('mcp.help.exampleInstallCursorHint')+'\x0a\x0a'+a61_0x28aeee['t'](_0x412577(0x125))+_0x412577(0x121));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a62_0x3514(_0x49d8e9,_0x196a6a){_0x49d8e9=_0x49d8e9-0xe9;const _0x391b11=a62_0x391b();let _0x3514ff=_0x391b11[_0x49d8e9];return _0x3514ff;}const a62_0xca51f7=a62_0x3514;(function(_0x190e13,_0x52fb20){const _0x102433=a62_0x3514,_0x1bdd66=_0x190e13();while(!![]){try{const _0x8f3466=-parseInt(_0x102433(0x101))/0x1*(parseInt(_0x102433(0x103))/0x2)+parseInt(_0x102433(0xf5))/0x3*(parseInt(_0x102433(0xfe))/0x4)+-parseInt(_0x102433(0xec))/0x5*(-parseInt(_0x102433(0xea))/0x6)+parseInt(_0x102433(0xf2))/0x7+parseInt(_0x102433(0x104))/0x8*(parseInt(_0x102433(0xeb))/0x9)+parseInt(_0x102433(0xe9))/0xa*(-parseInt(_0x102433(0x102))/0xb)+parseInt(_0x102433(0x100))/0xc*(-parseInt(_0x102433(0xf9))/0xd);if(_0x8f3466===_0x52fb20)break;else _0x1bdd66['push'](_0x1bdd66['shift']());}catch(_0x3b6cc3){_0x1bdd66['push'](_0x1bdd66['shift']());}}}(a62_0x391b,0x266a3));import{installMcp}from'./mcp-installer.js';function a62_0x391b(){const _0x1f857a=['length','mcp-install-non-interactive','cwd','59836QeQhwM','success','1106868eNDLkA','1095ujkkpt','21857YlJkPx','150VIYsef','56iLRlTS','mcp.install.otherIDE','log','message','830RxFimP','444318TVzvyy','373311FHGmQc','15HLDnzz','claude','mcp.cursor','filter','error','needsManualAction','551908EbiRdD','mcp.install.completed','ide','18xpGVTr','⚠️\x20\x20','info','setLogPath','39mfiFxN','mcp.install.starting'];a62_0x391b=function(){return _0x1f857a;};return a62_0x391b();}import{logger}from'../utils/logger.js';import a62_0x39d63b from'../i18n/index.js';export async function installMcpNonInteractive(_0x2afd76,_0x575b67,_0x3a1cc3=process[a62_0xca51f7(0xfd)]()){const _0x3d080e=a62_0xca51f7;logger[_0x3d080e(0xf8)](_0x3a1cc3),logger[_0x3d080e(0xf7)](_0x3d080e(0xfc),a62_0x39d63b['t'](_0x3d080e(0xfa)),{'ides':_0x2afd76,'enableBffSave':_0x575b67});const _0xcea82b=await installMcp(_0x2afd76,_0x575b67,_0x3a1cc3);for(const _0xf43b3c of _0xcea82b){const _0x29a147=_0xf43b3c[_0x3d080e(0xf4)]==='cursor'?a62_0x39d63b['t'](_0x3d080e(0xee)):_0xf43b3c['ide']===_0x3d080e(0xed)?a62_0x39d63b['t']('mcp.claude'):a62_0x39d63b['t'](_0x3d080e(0x105)),_0x58560f=_0xf43b3c[_0x3d080e(0xf1)]?'⚠️':_0xf43b3c[_0x3d080e(0xff)]?'✓':'✗',_0x2c95b3=_0xf43b3c[_0x3d080e(0xff)]?console[_0x3d080e(0x106)]:console[_0x3d080e(0xf0)];_0x2c95b3(_0x58560f+'\x20'+_0x29a147+':');const _0x26cdf5=_0xf43b3c[_0x3d080e(0x107)]['split']('\x0a');for(const _0x1eeb61 of _0x26cdf5){_0x2c95b3('\x20\x20'+_0x1eeb61);}console[_0x3d080e(0x106)]('');}const _0x5d2b4d=_0xcea82b[_0x3d080e(0xef)](_0x46617f=>_0x46617f[_0x3d080e(0xff)])[_0x3d080e(0xfb)];console[_0x3d080e(0x106)](a62_0x39d63b['t'](_0x3d080e(0xf3),{'successCount':_0x5d2b4d,'totalCount':_0xcea82b['length']})),_0xcea82b['some'](_0x14a40e=>_0x14a40e[_0x3d080e(0xf1)])?(console[_0x3d080e(0x106)](''),console[_0x3d080e(0x106)](_0x3d080e(0xf6)+a62_0x39d63b['t']('mcp.install.manualActionRequired'))):console[_0x3d080e(0x106)]('');}
|
package/lib/mcp/mcp-installer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a63_0x28c0b8=a63_0x19dc;function a63_0x19dc(_0x22d3d4,_0x553c0d){_0x22d3d4=_0x22d3d4-0x1be;const _0x3cca98=a63_0x3cca();let _0x19dcec=_0x3cca98[_0x22d3d4];return _0x19dcec;}(function(_0x36ba09,_0x2d09c5){const _0x3ca706=a63_0x19dc,_0xa29aac=_0x36ba09();while(!![]){try{const _0x1277a5=-parseInt(_0x3ca706(0x1dc))/0x1*(-parseInt(_0x3ca706(0x1e7))/0x2)+-parseInt(_0x3ca706(0x1c0))/0x3*(-parseInt(_0x3ca706(0x1e8))/0x4)+parseInt(_0x3ca706(0x1be))/0x5+parseInt(_0x3ca706(0x1fc))/0x6*(-parseInt(_0x3ca706(0x1f2))/0x7)+-parseInt(_0x3ca706(0x1f0))/0x8+parseInt(_0x3ca706(0x1c3))/0x9*(parseInt(_0x3ca706(0x1eb))/0xa)+parseInt(_0x3ca706(0x1e0))/0xb*(-parseInt(_0x3ca706(0x1cb))/0xc);if(_0x1277a5===_0x2d09c5)break;else _0xa29aac['push'](_0xa29aac['shift']());}catch(_0x434393){_0xa29aac['push'](_0xa29aac['shift']());}}}(a63_0x3cca,0x4a643));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';import a63_0x53f532 from'../i18n/index.js';const __dirname=dirname(fileURLToPath(import.meta.url));export const MCP_SERVER_NAME='lovrabet-dataset';export const MCP_COMMAND=a63_0x28c0b8(0x1ca);export const MCP_ARGS=[a63_0x28c0b8(0x1e3)];export function getAppConfig(){const _0x196d1b=a63_0x28c0b8,_0xe11415=readConfig(),_0x509a69=_0xe11415[_0x196d1b(0x1d5)]||_0xe11415[_0x196d1b(0x1ec)],_0x3dbfb2=_0xe11415[_0x196d1b(0x1f5)]||_0x196d1b(0x1dd);if(!_0x509a69)throw new Error(a63_0x53f532['t'](_0x196d1b(0x1d2)));return{'appcode':String(_0x509a69),'env':_0x3dbfb2};}export function buildMcpEnv(_0x2a75d6,_0x232297){const _0xe4f6de=a63_0x28c0b8,_0x2bcf75={'LOVRABET_APP_CODE':_0x2a75d6};return _0x232297!==_0xe4f6de(0x1dd)&&(_0x2bcf75[_0xe4f6de(0x1bf)]=_0x232297),_0x2bcf75;}function a63_0x3cca(){const _0x1cf5bb=['message','mcp-cursor','mcp.other.guideShown','852240BidCLr','\x20\x20\x20\x20\x20\x20\x22command\x22:\x20\x22npx\x22,','1199625nIGhyH','lovrabet_rules.mdc','mcp.cursorConfig.rules.created','env','\x0a\x20\x20','\x20\x20\x20\x20\x20\x20\x20\x20','mcp.config.env','mcp-claude','claude\x20mcp\x20add\x20','.cursor','6DdKcdb','utf8','\x20\x20}','\x20\x20\x20\x20\x20\x20\x22env\x22:\x20{','2827565jfdtqr','LOVRABET_ENV','185220iSbhaK','mcp.other.configInfo','mcpServers','405171XRXiUS','mcp.cursorConfig.success','push','AppCode:\x20','mcp.claudeConfig.configInfo','\x20\x20\x20\x20}','stringify','npx','555372WLWkkg','\x22LOVRABET_ENV\x22:\x20\x22','mcp.cursorConfig.error','parse','mcp.claudeConfig.manualCommand','mcp.cursorConfig.updateExisting','\x20\x20\x20\x20\x20\x20\x22args\x22:\x20[\x22@lovrabet/dataset-mcp-server@latest\x22],','mcp.error.missingAppcode','info','error','appcode','mcp.cursorConfig.restartRequired','mcp.claudeConfig.agents.copyFailed','mcp.cursorConfig.rules.copyFailed','agents.md','join','mcp.claudeConfig.agents.exists','1qvdjKt','online','mcp-install','rules','231kqzrNN','mcp.other.configGuide','utf-8','@lovrabet/dataset-mcp-server@latest','\x20\x20\x20\x20\x22lovrabet-dataset\x22:\x20{','\x20\x20\x20\x20\x20\x20}','mcp.claudeConfig.agents.created','684026OVtzJr','4mqsTxq','\x20-e\x20LOVRABET_APP_CODE=','mcp.claudeConfig.restartRequired','130ZFCUlO','app'];a63_0x3cca=function(){return _0x1cf5bb;};return a63_0x3cca();}export function buildMcpServerConfig(_0x28745b,_0x54e20a){return{'command':MCP_COMMAND,'args':MCP_ARGS,'env':buildMcpEnv(_0x28745b,_0x54e20a)};}export function buildClaudeMcpCommand(_0x176af0,_0x3b660d){const _0x2db7cd=a63_0x28c0b8,_0x27322a=_0x2db7cd(0x1fa)+MCP_SERVER_NAME+'\x20'+MCP_COMMAND+'\x20'+MCP_ARGS[_0x2db7cd(0x1da)]('\x20')+_0x2db7cd(0x1e9)+_0x176af0,_0xd34ec5=_0x3b660d!=='online'?'\x20-e\x20LOVRABET_ENV='+_0x3b660d:'';return''+_0x27322a+_0xd34ec5;}export async function copyCursorRules(_0x113115){const _0x5e3102=a63_0x28c0b8,_0x1c861e=join(_0x113115,_0x5e3102(0x1fb)),_0x772466=join(_0x1c861e,_0x5e3102(0x1df)),_0xfa52b7=join(_0x772466,_0x5e3102(0x1f3));if(existsSync(_0xfa52b7))return logger[_0x5e3102(0x1d3)](_0x5e3102(0x1de),a63_0x53f532['t']('mcp.cursorConfig.rules.exists'),{'path':_0xfa52b7}),![];try{ensureDir(_0x772466);const _0x952c91=await getRulesContent();return writeFileSync(_0xfa52b7,_0x952c91,_0x5e3102(0x1e2)),logger[_0x5e3102(0x1d3)](_0x5e3102(0x1de),a63_0x53f532['t'](_0x5e3102(0x1f4)),{'to':_0xfa52b7}),!![];}catch(_0x542cb2){return logger[_0x5e3102(0x1d4)](_0x5e3102(0x1de),a63_0x53f532['t'](_0x5e3102(0x1d8)),{'error':_0x542cb2 instanceof Error?_0x542cb2[_0x5e3102(0x1ed)]:String(_0x542cb2)}),![];}}export async function copyAgentsMd(_0x31acda){const _0x4ed5de=a63_0x28c0b8,_0x3a78f1=join(_0x31acda,_0x4ed5de(0x1d9));if(existsSync(_0x3a78f1))return logger[_0x4ed5de(0x1d3)]('mcp-install',a63_0x53f532['t'](_0x4ed5de(0x1db)),{'path':_0x3a78f1}),![];try{const _0x54b004=await getRulesContent();return writeFileSync(_0x3a78f1,_0x54b004,_0x4ed5de(0x1e2)),logger[_0x4ed5de(0x1d3)](_0x4ed5de(0x1de),a63_0x53f532['t'](_0x4ed5de(0x1e6)),{'to':_0x3a78f1}),!![];}catch(_0x3b320e){return logger[_0x4ed5de(0x1d4)]('mcp-install',a63_0x53f532['t'](_0x4ed5de(0x1d7)),{'error':_0x3b320e instanceof Error?_0x3b320e[_0x4ed5de(0x1ed)]:String(_0x3b320e)}),![];}}export async function configureCursorMcp(_0x1bb9c2){const _0xcd1349=a63_0x28c0b8;try{const {appcode:_0x5189d2,env:_0xabb212}=getAppConfig(),_0x27ec4b=join(_0x1bb9c2,_0xcd1349(0x1fb)),_0x2bb72f=join(_0x27ec4b,'mcp.json');ensureDir(_0x27ec4b);const _0xf43442=buildMcpServerConfig(_0x5189d2,_0xabb212);let _0x5ae0e3;if(existsSync(_0x2bb72f)){const _0x37698b=readFileSync(_0x2bb72f,_0xcd1349(0x1fd));_0x5ae0e3=JSON[_0xcd1349(0x1ce)](_0x37698b),!_0x5ae0e3[_0xcd1349(0x1c2)]&&(_0x5ae0e3[_0xcd1349(0x1c2)]={}),logger['info'](_0xcd1349(0x1ee),a63_0x53f532['t'](_0xcd1349(0x1d0)),{'path':_0x2bb72f,'appcode':_0x5189d2,'env':_0xabb212});}else _0x5ae0e3={'mcpServers':{}},logger['info']('mcp-cursor',a63_0x53f532['t']('mcp.cursorConfig.createNew'),{'path':_0x2bb72f,'appcode':_0x5189d2,'env':_0xabb212});_0x5ae0e3[_0xcd1349(0x1c2)][MCP_SERVER_NAME]=_0xf43442,writeFileSync(_0x2bb72f,JSON[_0xcd1349(0x1c9)](_0x5ae0e3,null,0x2),{'encoding':'utf8'});const _0x5da489=await copyCursorRules(_0x1bb9c2),_0x3a0d43=[a63_0x53f532['t']('mcp.cursorConfig.written'),'AppCode:\x20'+_0x5189d2];return _0xabb212!=='online'&&_0x3a0d43['push'](a63_0x53f532['t'](_0xcd1349(0x1f8),{'env':_0xabb212})),_0x3a0d43[_0xcd1349(0x1c5)](a63_0x53f532['t'](_0xcd1349(0x1d6))),_0x5da489&&_0x3a0d43[_0xcd1349(0x1c5)](a63_0x53f532['t']('mcp.cursorConfig.rules.created')),logger[_0xcd1349(0x1d3)](_0xcd1349(0x1ee),a63_0x53f532['t'](_0xcd1349(0x1c4)),{'appcode':_0x5189d2,'env':_0xabb212,'configPath':_0x2bb72f}),{'success':!![],'message':_0x3a0d43[_0xcd1349(0x1da)](_0xcd1349(0x1f6))};}catch(_0x427761){return logger[_0xcd1349(0x1d4)](_0xcd1349(0x1ee),a63_0x53f532['t'](_0xcd1349(0x1cd),{'error':_0x427761 instanceof Error?_0x427761[_0xcd1349(0x1ed)]:String(_0x427761)}),{'error':_0x427761 instanceof Error?_0x427761['message']:String(_0x427761)}),{'success':![],'message':_0x427761 instanceof Error?_0x427761[_0xcd1349(0x1ed)]:String(_0x427761)};}}export function configureClaudeMcp(_0x43b757){const _0x4be626=a63_0x28c0b8;try{const {appcode:_0x2419e,env:_0x38dde3}=getAppConfig();copyAgentsMd(_0x43b757);const _0x14f228=buildClaudeMcpCommand(_0x2419e,_0x38dde3),_0x313715=[a63_0x53f532['t'](_0x4be626(0x1cf)),''+_0x14f228,a63_0x53f532['t'](_0x4be626(0x1c7)),_0x4be626(0x1c6)+_0x2419e];return _0x38dde3!==_0x4be626(0x1dd)&&_0x313715[_0x4be626(0x1c5)](a63_0x53f532['t'](_0x4be626(0x1f8),{'env':_0x38dde3})),_0x313715['push'](a63_0x53f532['t'](_0x4be626(0x1ea))),logger['info'](_0x4be626(0x1f9),a63_0x53f532['t']('mcp.claudeConfig.commandGenerated'),{'appcode':_0x2419e,'env':_0x38dde3,'command':_0x14f228}),{'success':!![],'message':_0x313715['join'](_0x4be626(0x1f6)),'needsManualAction':!![]};}catch(_0x384971){return logger[_0x4be626(0x1d4)](_0x4be626(0x1f9),a63_0x53f532['t']('mcp.claudeConfig.error',{'error':_0x384971 instanceof Error?_0x384971[_0x4be626(0x1ed)]:String(_0x384971)}),{'error':_0x384971 instanceof Error?_0x384971[_0x4be626(0x1ed)]:String(_0x384971)}),{'success':![],'message':_0x384971 instanceof Error?_0x384971[_0x4be626(0x1ed)]:String(_0x384971)};}}export function showOtherMcpGuide(_0x17b455){const _0xc6f5ff=a63_0x28c0b8;try{const {appcode:_0x11d677,env:_0x4b68fc}=getAppConfig(),_0x756f24=buildMcpServerConfig(_0x11d677,_0x4b68fc),_0xf3a28a=['\x22LOVRABET_APP_CODE\x22:\x20\x22'+_0x11d677+'\x22'];_0x4b68fc!==_0xc6f5ff(0x1dd)&&_0xf3a28a[_0xc6f5ff(0x1c5)](_0xc6f5ff(0x1cc)+_0x4b68fc+'\x22');const _0x563943=[a63_0x53f532['t'](_0xc6f5ff(0x1c1),{'appcode':_0x11d677,'env':_0x4b68fc}),'{','\x20\x20\x22mcpServers\x22:\x20{',_0xc6f5ff(0x1e4),_0xc6f5ff(0x1f1),_0xc6f5ff(0x1d1),_0xc6f5ff(0x1ff),..._0xf3a28a['map'](_0x16f549=>_0xc6f5ff(0x1f7)+_0x16f549+','),_0xc6f5ff(0x1e5),_0xc6f5ff(0x1c8),_0xc6f5ff(0x1fe),'}',a63_0x53f532['t'](_0xc6f5ff(0x1e1))];return logger[_0xc6f5ff(0x1d3)](_0xc6f5ff(0x1de),a63_0x53f532['t'](_0xc6f5ff(0x1ef)),{'appcode':_0x11d677,'env':_0x4b68fc}),{'success':!![],'message':_0x563943[_0xc6f5ff(0x1da)]('\x0a'),'needsManualAction':!![]};}catch(_0x207243){return{'success':![],'message':_0x207243 instanceof Error?_0x207243['message']:String(_0x207243)};}}function ensureDir(_0x3ff991){!existsSync(_0x3ff991)&&mkdirSync(_0x3ff991,{'recursive':!![]});}
|
|
1
|
+
const a63_0x18a024=a63_0x2e3b;(function(_0x522a3f,_0x5623c0){const _0x577e26=a63_0x2e3b,_0x58379e=_0x522a3f();while(!![]){try{const _0x309d07=parseInt(_0x577e26(0x1dd))/0x1*(-parseInt(_0x577e26(0x202))/0x2)+-parseInt(_0x577e26(0x1e4))/0x3+-parseInt(_0x577e26(0x1ff))/0x4+parseInt(_0x577e26(0x215))/0x5*(parseInt(_0x577e26(0x1e2))/0x6)+-parseInt(_0x577e26(0x1df))/0x7+-parseInt(_0x577e26(0x1e9))/0x8+parseInt(_0x577e26(0x20c))/0x9;if(_0x309d07===_0x5623c0)break;else _0x58379e['push'](_0x58379e['shift']());}catch(_0x4c84ea){_0x58379e['push'](_0x58379e['shift']());}}}(a63_0x153a,0xc2033));import{existsSync,mkdirSync,writeFileSync,readFileSync}from'node:fs';import{normalizeEnv}from'../constant/env.js';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';import a63_0x41e16b from'../i18n/index.js';const __dirname=dirname(fileURLToPath(import.meta.url));export const MCP_SERVER_NAME=a63_0x18a024(0x1ee);export const MCP_COMMAND=a63_0x18a024(0x208);export const MCP_ARGS=[a63_0x18a024(0x1db)];export function getAppConfig(){const _0x4f6ddd=a63_0x18a024,_0xa01c68=readConfig(),_0x6efb68=_0xa01c68[_0x4f6ddd(0x1fb)]||_0xa01c68['app'],_0x5dae69=normalizeEnv(_0xa01c68[_0x4f6ddd(0x1d5)]||_0x4f6ddd(0x1f8));if(!_0x6efb68)throw new Error(a63_0x41e16b['t']('mcp.error.missingAppcode'));return{'appcode':String(_0x6efb68),'env':_0x5dae69};}function a63_0x2e3b(_0x24adb4,_0x370d2c){_0x24adb4=_0x24adb4-0x1d4;const _0x153a78=a63_0x153a();let _0x2e3b93=_0x153a78[_0x24adb4];return _0x2e3b93;}export function buildMcpEnv(_0x1c47c9,_0x4c9d40){const _0x8c9fb3=a63_0x18a024,_0x1695b2={'LOVRABET_APP_CODE':_0x1c47c9};return _0x4c9d40!==_0x8c9fb3(0x1f8)&&(_0x1695b2[_0x8c9fb3(0x1ed)]=_0x4c9d40),_0x1695b2;}export function buildMcpArgs(_0xe4d83e){const _0x26ea26=a63_0x18a024,_0x5b169d=[_0x26ea26(0x1db)];return _0xe4d83e&&_0x5b169d[_0x26ea26(0x20a)](_0x26ea26(0x1f5)),_0x5b169d;}export function buildMcpServerConfig(_0x1b4ada,_0x8ac892,_0x5d1170){return{'command':MCP_COMMAND,'args':buildMcpArgs(_0x5d1170),'env':buildMcpEnv(_0x1b4ada,_0x8ac892)};}export function buildClaudeMcpCommand(_0x25b775,_0x4330a9,_0x5611dd){const _0xc3679d=a63_0x18a024,_0x65cb52=buildMcpArgs(_0x5611dd),_0xec473e=_0xc3679d(0x1fa)+MCP_SERVER_NAME+'\x20'+MCP_COMMAND+'\x20'+_0x65cb52['join']('\x20')+'\x20-e\x20LOVRABET_APP_CODE='+_0x25b775,_0x39998d=_0x4330a9!=='production'?_0xc3679d(0x1f0)+_0x4330a9:'';return''+_0xec473e+_0x39998d;}export async function copyCursorRules(_0xff2571){const _0x6bce85=a63_0x18a024,_0x436cb3=join(_0xff2571,_0x6bce85(0x200)),_0x2208b3=join(_0x436cb3,'rules'),_0x4c5c41=join(_0x2208b3,_0x6bce85(0x1f3));if(existsSync(_0x4c5c41))return logger[_0x6bce85(0x1fc)](_0x6bce85(0x1f9),a63_0x41e16b['t']('mcp.cursorConfig.rules.exists'),{'path':_0x4c5c41}),![];try{ensureDir(_0x2208b3);const _0x496861=await getRulesContent();return writeFileSync(_0x4c5c41,_0x496861,_0x6bce85(0x1e8)),logger[_0x6bce85(0x1fc)](_0x6bce85(0x1f9),a63_0x41e16b['t']('mcp.cursorConfig.rules.created'),{'to':_0x4c5c41}),!![];}catch(_0x44f003){return logger[_0x6bce85(0x1ef)]('mcp-install',a63_0x41e16b['t'](_0x6bce85(0x1ec)),{'error':_0x44f003 instanceof Error?_0x44f003[_0x6bce85(0x1fe)]:String(_0x44f003)}),![];}}export async function copyAgentsMd(_0x1b37d8){const _0x11753d=a63_0x18a024,_0x499848=join(_0x1b37d8,_0x11753d(0x209));if(existsSync(_0x499848))return logger['info']('mcp-install',a63_0x41e16b['t']('mcp.claudeConfig.agents.exists'),{'path':_0x499848}),![];try{const _0x286c64=await getRulesContent();return writeFileSync(_0x499848,_0x286c64,'utf-8'),logger[_0x11753d(0x1fc)]('mcp-install',a63_0x41e16b['t']('mcp.claudeConfig.agents.created'),{'to':_0x499848}),!![];}catch(_0x24d95e){return logger[_0x11753d(0x1ef)](_0x11753d(0x1f9),a63_0x41e16b['t'](_0x11753d(0x1e0)),{'error':_0x24d95e instanceof Error?_0x24d95e[_0x11753d(0x1fe)]:String(_0x24d95e)}),![];}}export async function configureCursorMcp(_0x243bb7,_0x4250e6){const _0x17ba44=a63_0x18a024;try{const {appcode:_0x545938,env:_0x32c7b9}=getAppConfig(),_0x362d6a=join(_0x243bb7,_0x17ba44(0x200)),_0x505d82=join(_0x362d6a,_0x17ba44(0x1d7));ensureDir(_0x362d6a);const _0x118bc3=buildMcpServerConfig(_0x545938,_0x32c7b9,_0x4250e6);let _0x588e9b;if(existsSync(_0x505d82)){const _0x3e261c=readFileSync(_0x505d82,_0x17ba44(0x1e5));_0x588e9b=JSON[_0x17ba44(0x214)](_0x3e261c),!_0x588e9b[_0x17ba44(0x1e3)]&&(_0x588e9b[_0x17ba44(0x1e3)]={}),logger[_0x17ba44(0x1fc)](_0x17ba44(0x204),a63_0x41e16b['t']('mcp.cursorConfig.updateExisting'),{'path':_0x505d82,'appcode':_0x545938,'env':_0x32c7b9});}else _0x588e9b={'mcpServers':{}},logger[_0x17ba44(0x1fc)]('mcp-cursor',a63_0x41e16b['t'](_0x17ba44(0x201)),{'path':_0x505d82,'appcode':_0x545938,'env':_0x32c7b9});_0x588e9b[_0x17ba44(0x1e3)][MCP_SERVER_NAME]=_0x118bc3,writeFileSync(_0x505d82,JSON['stringify'](_0x588e9b,null,0x2),{'encoding':_0x17ba44(0x1e5)});const _0x10f4e9=await copyCursorRules(_0x243bb7),_0xded1aa=[a63_0x41e16b['t']('mcp.cursorConfig.written'),_0x17ba44(0x1dc)+_0x545938];return _0x32c7b9!=='production'&&_0xded1aa['push'](a63_0x41e16b['t'](_0x17ba44(0x1d9),{'env':_0x32c7b9})),_0xded1aa['push'](a63_0x41e16b['t']('mcp.cursorConfig.restartRequired')),_0x10f4e9&&_0xded1aa[_0x17ba44(0x20a)](a63_0x41e16b['t'](_0x17ba44(0x213))),logger[_0x17ba44(0x1fc)](_0x17ba44(0x204),a63_0x41e16b['t'](_0x17ba44(0x210)),{'appcode':_0x545938,'env':_0x32c7b9,'configPath':_0x505d82}),{'success':!![],'message':_0xded1aa[_0x17ba44(0x1d6)]('\x0a')};}catch(_0x3e795e){return logger[_0x17ba44(0x1ef)]('mcp-cursor',a63_0x41e16b['t'](_0x17ba44(0x1eb),{'error':_0x3e795e instanceof Error?_0x3e795e[_0x17ba44(0x1fe)]:String(_0x3e795e)}),{'error':_0x3e795e instanceof Error?_0x3e795e[_0x17ba44(0x1fe)]:String(_0x3e795e)}),{'success':![],'message':_0x3e795e instanceof Error?_0x3e795e[_0x17ba44(0x1fe)]:String(_0x3e795e)};}}export function configureClaudeMcp(_0x52ace9,_0x2af7b7){const _0x1ee9d8=a63_0x18a024;try{const {appcode:_0xd51cda,env:_0x28bfb2}=getAppConfig();copyAgentsMd(_0x52ace9);const _0x429fd5=buildMcpArgs(_0x2af7b7),_0x407a8e=_0x1ee9d8(0x1fa)+MCP_SERVER_NAME+'\x20'+MCP_COMMAND+'\x20'+_0x429fd5[_0x1ee9d8(0x1d6)]('\x20')+_0x1ee9d8(0x20f)+_0xd51cda,_0x328a14=_0x28bfb2!==_0x1ee9d8(0x1f8)?_0x1ee9d8(0x1f0)+_0x28bfb2:'',_0x201d3f=''+_0x407a8e+_0x328a14,_0x56eb05=[a63_0x41e16b['t'](_0x1ee9d8(0x1ea)),'--------------------------------',''+_0x201d3f,_0x1ee9d8(0x212),a63_0x41e16b['t'](_0x1ee9d8(0x1da)),_0x1ee9d8(0x1dc)+_0xd51cda];return _0x28bfb2!==_0x1ee9d8(0x1f8)&&_0x56eb05['push'](a63_0x41e16b['t'](_0x1ee9d8(0x1d9),{'env':_0x28bfb2})),_0x56eb05[_0x1ee9d8(0x20a)](a63_0x41e16b['t'](_0x1ee9d8(0x211))),logger[_0x1ee9d8(0x1fc)](_0x1ee9d8(0x1f1),a63_0x41e16b['t'](_0x1ee9d8(0x207)),{'appcode':_0xd51cda,'env':_0x28bfb2,'command':_0x201d3f}),{'success':!![],'message':_0x56eb05[_0x1ee9d8(0x1d6)]('\x0a'),'needsManualAction':!![]};}catch(_0x4e46bb){return logger[_0x1ee9d8(0x1ef)](_0x1ee9d8(0x1f1),a63_0x41e16b['t'](_0x1ee9d8(0x203),{'error':_0x4e46bb instanceof Error?_0x4e46bb[_0x1ee9d8(0x1fe)]:String(_0x4e46bb)}),{'error':_0x4e46bb instanceof Error?_0x4e46bb[_0x1ee9d8(0x1fe)]:String(_0x4e46bb)}),{'success':![],'message':_0x4e46bb instanceof Error?_0x4e46bb[_0x1ee9d8(0x1fe)]:String(_0x4e46bb)};}}function a63_0x153a(){const _0x438cb4=['mcp.cursorConfig.success','mcp.claudeConfig.restartRequired','--------------------------------','mcp.cursorConfig.rules.created','parse','104305eYsvee','mcp.other.configInfo','env','join','mcp.json','\x20\x20\x20\x20\x20\x20}','mcp.config.env','mcp.claudeConfig.configInfo','@lovrabet/dataset-mcp-server@latest','AppCode:\x20','42CTmPxa','map','7978250hBcjJi','mcp.claudeConfig.agents.copyFailed','claude','438PjQBiT','mcpServers','1032459KKHWeI','utf8',',\x20env=','\x20\x20}','utf-8','409056gvUrnP','mcp.claudeConfig.manualCommand','mcp.cursorConfig.error','mcp.cursorConfig.rules.copyFailed','LOVRABET_ENV','lovrabet-dataset','error','\x20-e\x20LOVRABET_ENV=','mcp-claude','mcp.other.guideShown','lovrabet_rules.mdc','cwd','--enable-bff-save','\x22LOVRABET_APP_CODE\x22:\x20\x22','\x20\x20\x20\x20}','production','mcp-install','claude\x20mcp\x20add\x20','appcode','info','Unknown\x20IDE:\x20','message','1046636vPrsLJ','.cursor','mcp.cursorConfig.createNew','43102JYMaqj','mcp.claudeConfig.error','mcp-cursor','cursor','needsManualAction','mcp.claudeConfig.commandGenerated','npx','agents.md','push','mcp.other.configGuide','17762922rVxUZG','stringify','\x22LOVRABET_ENV\x22:\x20\x22','\x20-e\x20LOVRABET_APP_CODE='];a63_0x153a=function(){return _0x438cb4;};return a63_0x153a();}export function showOtherMcpGuide(_0x180a4f,_0x1c3017){const _0x194031=a63_0x18a024;try{const {appcode:_0xa09f1e,env:_0x1fc2cb}=getAppConfig(),_0x8d40e1=buildMcpServerConfig(_0xa09f1e,_0x1fc2cb,_0x1c3017),_0xe2fd73=buildMcpArgs(_0x1c3017),_0x53f53a=[_0x194031(0x1f6)+_0xa09f1e+'\x22'];_0x1fc2cb!==_0x194031(0x1f8)&&_0x53f53a[_0x194031(0x20a)](_0x194031(0x20e)+_0x1fc2cb+'\x22');const _0x34935f=[a63_0x41e16b['t'](_0x194031(0x1d4),{'appcode':_0xa09f1e,'envSuffix':_0x1fc2cb!==_0x194031(0x1f8)?_0x194031(0x1e6)+_0x1fc2cb:''}),'{','\x20\x20\x22mcpServers\x22:\x20{','\x20\x20\x20\x20\x22lovrabet-dataset\x22:\x20{','\x20\x20\x20\x20\x20\x20\x22command\x22:\x20\x22npx\x22,','\x20\x20\x20\x20\x20\x20\x22args\x22:\x20'+JSON[_0x194031(0x20d)](_0xe2fd73)+',','\x20\x20\x20\x20\x20\x20\x22env\x22:\x20{',..._0x53f53a[_0x194031(0x1de)](_0x484a11=>'\x20\x20\x20\x20\x20\x20\x20\x20'+_0x484a11+','),_0x194031(0x1d8),_0x194031(0x1f7),_0x194031(0x1e7),'}',a63_0x41e16b['t'](_0x194031(0x20b))];return logger[_0x194031(0x1fc)](_0x194031(0x1f9),a63_0x41e16b['t'](_0x194031(0x1f2)),{'appcode':_0xa09f1e,'env':_0x1fc2cb}),{'success':!![],'message':_0x34935f[_0x194031(0x1d6)]('\x0a'),'needsManualAction':!![]};}catch(_0x55b09d){return{'success':![],'message':_0x55b09d instanceof Error?_0x55b09d['message']:String(_0x55b09d)};}}function ensureDir(_0x2e3187){!existsSync(_0x2e3187)&&mkdirSync(_0x2e3187,{'recursive':!![]});}export async function installMcp(_0x3999e2,_0x36b3e4,_0x306b14=process[a63_0x18a024(0x1f4)]()){const _0x206530=a63_0x18a024,_0x548930=[];for(const _0x58d974 of _0x3999e2){try{let _0x555ae1;switch(_0x58d974){case _0x206530(0x205):_0x555ae1=await configureCursorMcp(_0x306b14,_0x36b3e4);break;case _0x206530(0x1e1):_0x555ae1=configureClaudeMcp(_0x306b14,_0x36b3e4);break;case'other':_0x555ae1=showOtherMcpGuide(_0x306b14,_0x36b3e4);break;default:_0x555ae1={'success':![],'message':_0x206530(0x1fd)+_0x58d974};}_0x548930[_0x206530(0x20a)]({'ide':_0x58d974,'success':_0x555ae1['success'],'message':_0x555ae1['message'],'needsManualAction':_0x555ae1[_0x206530(0x206)]});}catch(_0x29f8b7){_0x548930['push']({'ide':_0x58d974,'success':![],'message':_0x29f8b7 instanceof Error?_0x29f8b7['message']:String(_0x29f8b7)});}}return _0x548930;}
|