@michengai/dsh-skills-manager 1.1.6 → 1.1.7

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/CHANGELOG.md CHANGED
@@ -4,6 +4,10 @@
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 1.1.7 - 2026-09-30
8
+
9
+ - Installing a skill from a repository now records the same explicit enable policy as turning the switch on. The skill appears in the slash menu immediately, including when its description is not accepted by the host YAML parser.
10
+
7
11
  ## 1.1.6 - 2026-09-30
8
12
 
9
13
  This release supports DeepSeek Harness `0.2.0-rc.2`. Previously supported versions remain available.
@@ -4,6 +4,10 @@
4
4
 
5
5
  ## 未发布
6
6
 
7
+ ## 1.1.7 - 2026-09-30
8
+
9
+ - 从仓库安装技能时,会写入与手动开启相同的启用策略。安装后无需再关闭并重新开启,斜杠菜单即可调用;说明文字不被宿主 YAML 解析器接受时也同样生效。
10
+
7
11
  ## 1.1.6 - 2026-09-30
8
12
 
9
13
  现在可以安装到 DeepSeek Harness `0.2.0-rc.2`。此前已支持的版本仍然可用。
package/README.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  > DSH Skills Manager is a community-maintained DeepSeek Harness (DSH) plugin, not an official DeepSeek AI product.
21
21
 
22
- This README describes **1.1.6**. See the [changelog](CHANGELOG.md) and [release notes](https://github.com/MichengAI/dsh-skills-manager/releases/latest).
22
+ This README describes **1.1.7**. See the [changelog](CHANGELOG.md) and [release notes](https://github.com/MichengAI/dsh-skills-manager/releases/latest).
23
23
 
24
24
  ## Features
25
25
 
@@ -71,7 +71,7 @@ dsh plugin --profile web add @michengai/dsh-skills-manager@latest --registry=htt
71
71
 
72
72
  Restart DSH, refresh the page, and open **Settings → Skills**. To update, select **Check for updates** or run the installation command again.
73
73
 
74
- - Plugin `1.1.6` is tested with DeepSeek Harness `0.1.2-rc.1`, `0.1.5-rc.1`, `0.1.5-rc.2`, `0.1.5-rc.3`, `0.1.7-rc.1`, `0.1.7-rc.2`, `0.2.0-rc.1`, `0.2.0-rc.2`.
74
+ - Plugin `1.1.7` is tested with DeepSeek Harness `0.1.2-rc.1`, `0.1.5-rc.1`, `0.1.5-rc.2`, `0.1.5-rc.3`, `0.1.7-rc.1`, `0.1.7-rc.2`, `0.2.0-rc.1`, `0.2.0-rc.2`.
75
75
 
76
76
  ## Usage
77
77
 
package/README.zh-CN.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  > DSH Skills Manager 是社区维护的 DeepSeek Harness(DSH)插件,并非 DeepSeek AI 官方产品。
21
21
 
22
- 本文对应 **1.1.6**。完整变更见[更新日志](CHANGELOG.zh-CN.md)与[最新发行说明](https://github.com/MichengAI/dsh-skills-manager/releases/latest)。
22
+ 本文对应 **1.1.7**。完整变更见[更新日志](CHANGELOG.zh-CN.md)与[最新发行说明](https://github.com/MichengAI/dsh-skills-manager/releases/latest)。
23
23
 
24
24
  ## 功能概览
25
25
 
@@ -71,7 +71,7 @@ dsh plugin --profile web add @michengai/dsh-skills-manager@latest --registry=htt
71
71
 
72
72
  安装后重启 DSH 并刷新页面,打开「设置 → 技能」即可使用。更新时可点击「检查更新」,或重新执行安装命令。
73
73
 
74
- - `1.1.6` 已验证兼容 DeepSeek Harness `0.1.2-rc.1`、`0.1.5-rc.1`、`0.1.5-rc.2`、`0.1.5-rc.3`、`0.1.7-rc.1`、`0.1.7-rc.2`、`0.2.0-rc.1`、`0.2.0-rc.2`。
74
+ - `1.1.7` 已验证兼容 DeepSeek Harness `0.1.2-rc.1`、`0.1.5-rc.1`、`0.1.5-rc.2`、`0.1.5-rc.3`、`0.1.7-rc.1`、`0.1.7-rc.2`、`0.2.0-rc.1`、`0.2.0-rc.2`。
75
75
 
76
76
  ## 使用说明
77
77
 
package/lib/client.js CHANGED
@@ -1,7 +1,7 @@
1
1
  window.__ModuleLoader__.load({ id: "@michengai/dsh-skills-manager", factory: (require) => {
2
2
  var module = { exports: {} };
3
3
  var exports = module.exports;
4
- "use strict";var bM=Object.create;var cv=Object.defineProperty;var yM=Object.getOwnPropertyDescriptor;var xM=Object.getOwnPropertyNames;var CM=Object.getPrototypeOf,vM=Object.prototype.hasOwnProperty;var vg=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var SM=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of xM(t))!vM.call(e,n)&&n!==o&&cv(e,n,{get:()=>t[n],enumerable:!(r=yM(t,n))||r.enumerable});return e};var T=(e,t,o)=>(o=e!=null?bM(CM(e)):{},SM(t||!e||!e.__esModule?cv(o,"default",{value:e,enumerable:!0}):o,e));var Jv=vg(_t=>{"use strict";var jg=Symbol.for("react.transitional.element"),Ug=Symbol.for("react.portal"),Zu=Symbol.for("react.fragment"),Qu=Symbol.for("react.strict_mode"),Ju=Symbol.for("react.profiler"),ed=Symbol.for("react.consumer"),td=Symbol.for("react.context"),od=Symbol.for("react.forward_ref"),rd=Symbol.for("react.suspense"),nd=Symbol.for("react.suspense_list"),id=Symbol.for("react.memo"),ad=Symbol.for("react.lazy"),Qv=Symbol.for("react.view_transition"),_M=Symbol.for("react.client.reference");function Vr(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case jg:switch(e=e.type,e){case Zu:case Ju:case Qu:case rd:case nd:case Qv:return e;default:switch(e=e&&e.$$typeof,e){case td:case od:case ad:case id:return e;case ed:return e;default:return t}}case Ug:return t}}}_t.ContextConsumer=ed;_t.ContextProvider=td;_t.Element=jg;_t.ForwardRef=od;_t.Fragment=Zu;_t.Lazy=ad;_t.Memo=id;_t.Portal=Ug;_t.Profiler=Ju;_t.StrictMode=Qu;_t.Suspense=rd;_t.SuspenseList=nd;_t.isContextConsumer=function(e){return Vr(e)===ed};_t.isContextProvider=function(e){return Vr(e)===td};_t.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===jg};_t.isForwardRef=function(e){return Vr(e)===od};_t.isFragment=function(e){return Vr(e)===Zu};_t.isLazy=function(e){return Vr(e)===ad};_t.isMemo=function(e){return Vr(e)===id};_t.isPortal=function(e){return Vr(e)===Ug};_t.isProfiler=function(e){return Vr(e)===Ju};_t.isStrictMode=function(e){return Vr(e)===Qu};_t.isSuspense=function(e){return Vr(e)===rd};_t.isSuspenseList=function(e){return Vr(e)===nd};_t.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Zu||e===Ju||e===Qu||e===rd||e===nd||e===Qv||typeof e=="object"&&e!==null&&(e.$$typeof===ad||e.$$typeof===id||e.$$typeof===td||e.$$typeof===ed||e.$$typeof===od||e.$$typeof===_M||e.getModuleId!==void 0)};_t.typeOf=Vr});var tS=vg((N5,eS)=>{"use strict";eS.exports=Jv()});var fS=vg((Z5,ud)=>{"use strict";ud.exports=nh;ud.exports.isMobile=nh;ud.exports.default=nh;var nO=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|redmi|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,iO=/CrOS/,aO=/android|ipad|playbook|silk/i;function nh(e){e||(e={});let t=e.ua;if(!t&&typeof navigator<"u"&&(t=navigator.userAgent),t&&t.headers&&typeof t.headers["user-agent"]=="string"&&(t=t.headers["user-agent"]),typeof t!="string")return!1;let o=nO.test(t)&&!iO.test(t)||!!e.tablet&&aO.test(t);return!o&&e.tablet&&e.featureDetect&&navigator&&navigator.maxTouchPoints>1&&t.indexOf("Macintosh")!==-1&&t.indexOf("Safari")!==-1&&(o=!0),o}});var V_=T(require("react"),1);var Sg={zh:{"repo.refreshing":"\u6B63\u5728\u68C0\u67E5\u66F4\u65B0\u2026","repo.refreshed":"\u5237\u65B0\u4E0E\u66F4\u65B0\u68C0\u67E5\u5B8C\u6210","repo.detailLoading":"\u6B63\u5728\u8BFB\u53D6\u6280\u80FD\u8BF4\u660E\u2026","repo.local":"\u672C\u673A","repo.source":"\u5B89\u88C5\u6765\u6E90","repo.update":"\u53EF\u66F4\u65B0","repo.review":"\u67E5\u770B\u66F4\u65B0","repo.rollback":"\u6062\u590D\u4E0A\u4E00\u7248","repo.confirmUpdate":"\u5907\u4EFD\u5E76\u66F4\u65B0","repo.confirmRollback":"\u5907\u4EFD\u5E76\u6062\u590D","repo.overwrite":"\u5907\u4EFD\u672C\u5730\u4FEE\u6539\u5E76\u66FF\u6362","repo.modified":"\u68C0\u6D4B\u5230\u672C\u5730\u4FEE\u6539\u3002\u66FF\u6362\u4F1A\u8986\u76D6\u5F53\u524D\u6587\u4EF6\uFF0C\u539F\u6587\u4EF6\u5C06\u5B8C\u6574\u5907\u4EFD\uFF0C\u53EF\u6062\u590D\u3002","repo.noChanges":"\u6587\u4EF6\u5185\u5BB9\u6CA1\u6709\u53D8\u5316\u3002","repo.added":"\u65B0\u589E","repo.removed":"\u5220\u9664","repo.modifiedFile":"\u4FEE\u6539","repo.updating":"\u66F4\u65B0\u4E2D\u2026","repo.updateProgress":"\u6B63\u5728\u6821\u9A8C\u3001\u5907\u4EFD\u5E76\u66FF\u6362\uFF0C\u8BF7\u7A0D\u5019\u2026","repo.updateSuccess":"\u66F4\u65B0\u5B8C\u6210\uFF0C\u5DF2\u4FDD\u7559\u4E0A\u4E00\u7248\u5907\u4EFD\u3002","repo.rollbackSuccess":"\u5DF2\u6062\u590D\u4E0A\u4E00\u7248\u3002","repo.manageUpdate":"\u7BA1\u7406\u66F4\u65B0","error.repo.modified":"\u5B58\u5728\u672C\u5730\u4FEE\u6539\uFF0C\u8BF7\u9884\u89C8\u5E76\u786E\u8BA4\u5907\u4EFD\u540E\u66FF\u6362\u3002","scope.repositories":"\u6280\u80FD\u4ED3\u5E93","repo.add":"\u6DFB\u52A0\u4ED3\u5E93","repo.manage":"\u7BA1\u7406\u4ED3\u5E93","repo.refresh":"\u5237\u65B0\u5E76\u68C0\u67E5\u66F4\u65B0","repo.save":"\u6DFB\u52A0\u5E76\u626B\u63CF","repo.hint":"\u4ECE\u516C\u5F00 GitHub \u4ED3\u5E93\u53D1\u73B0\u6280\u80FD\uFF0C\u6309\u9700\u5B89\u88C5\u5230\u5168\u5C40 DSH\u3002","repo.footer":"\u5237\u65B0\u4F1A\u68C0\u67E5\u4ED3\u5E93\u4E0E\u6280\u80FD\u66F4\u65B0\uFF0C\u4E0D\u4F1A\u81EA\u52A8\u66FF\u6362\u672C\u5730\u6587\u4EF6\u3002\u5386\u53F2\u5907\u4EFD\u4E0D\u4F1A\u81EA\u52A8\u6E05\u7406\uFF0C\u5360\u7528\u7A7A\u95F4\u4F1A\u968F\u66F4\u65B0\u589E\u52A0\u3002","repo.search":"\u641C\u7D22\u4ED3\u5E93\u6280\u80FD","repo.all":"\u5168\u90E8\u4ED3\u5E93","repo.states":"\u5168\u90E8\u72B6\u6001","repo.available":"\u53EF\u5B89\u88C5","repo.installed":"\u5DF2\u5B89\u88C5","repo.conflict":"\u540C\u540D\u51B2\u7A81","repo.invalid":"\u683C\u5F0F\u65E0\u6548","repo.install":"\u5B89\u88C5","repo.detail":"\u8BE6\u60C5","repo.installing":"\u5B89\u88C5\u4E2D\u2026","repo.installProgress":"\u6B63\u5728\u8BFB\u53D6\u5E76\u6821\u9A8C\u6280\u80FD\u6587\u4EF6\uFF0C\u8BF7\u7A0D\u5019\u2026","repo.installSuccess":"\u5B89\u88C5\u6210\u529F\uFF0C\u53EF\u5728\u5168\u5C40\u6280\u80FD\u4E2D\u67E5\u770B\u3002","repo.empty":"\u8FD8\u6CA1\u6709\u6280\u80FD\u4ED3\u5E93\uFF0C\u6DFB\u52A0\u4E00\u4E2A\u516C\u5F00 GitHub \u4ED3\u5E93\u5F00\u59CB\u3002","repo.noSkills":"\u6CA1\u6709\u5339\u914D\u7684\u6280\u80FD\u3002\u53EF\u5237\u65B0\u4ED3\u5E93\u6216\u8C03\u6574\u7B5B\u9009\u3002","repo.url":"\u4ED3\u5E93\u5730\u5740","repo.ref":"\u5206\u652F\u6216\u6807\u7B7E\uFF08\u53EF\u9009\uFF09","repo.directory":"\u6280\u80FD\u5B50\u76EE\u5F55\uFF08\u53EF\u9009\uFF09","repo.defaultBranch":"\u7559\u7A7A\u4F7F\u7528\u9ED8\u8BA4\u5206\u652F","repo.directoryHint":"\u4F8B\u5982 skills\uFF0C\u7559\u7A7A\u626B\u63CF\u6574\u4E2A\u4ED3\u5E93","repo.remove":"\u79FB\u9664\u4ED3\u5E93","repo.removeHint":"\u4EC5\u79FB\u9664\u4ED3\u5E93\u8BA2\u9605\uFF0C\u5DF2\u5B89\u88C5\u7684\u6280\u80FD\u4F1A\u4FDD\u7559\u3002","repo.removeConfirm":"\u786E\u8BA4\u79FB\u9664","repo.cancel":"\u53D6\u6D88","repo.close":"\u5173\u95ED","repo.loading":"\u5904\u7406\u4E2D\u2026","repo.success":"\u64CD\u4F5C\u5B8C\u6210","repo.installHint":"\u6280\u80FD\u53EF\u80FD\u5305\u542B\u811A\u672C\uFF0C\u8BF7\u5148\u67E5\u770B\u8BF4\u660E\u5E76\u786E\u8BA4\u4FE1\u4EFB\u6765\u6E90\u3002\u5B89\u88C5\u4F1A\u4FDD\u7559\u8D44\u6E90\u6587\u4EF6\uFF0C\u4E0D\u4F1A\u6267\u884C\u811A\u672C\u3002","repo.commit":"\u626B\u63CF\u7248\u672C","repo.notScanned":"\u5C1A\u672A\u626B\u63CF","repo.updated":"\u4E0A\u6B21\u5237\u65B0","error.repo.tooLarge":"\u4ED3\u5E93\u5F52\u6863\u8D85\u8FC7 32 MiB\uFF0C\u8BF7\u9009\u62E9\u8F83\u5C0F\u7684\u6280\u80FD\u4ED3\u5E93\uFF1B\u5B50\u76EE\u5F55\u7B5B\u9009\u4E0D\u4F1A\u7F29\u5C0F\u4E0B\u8F7D\u91CF\u3002","error.repo.installState":"\u6280\u80FD\u6587\u4EF6\u5DF2\u4FDD\u7559\uFF0C\u4F46\u6765\u6E90\u72B6\u6001\u672A\u786E\u8BA4\u3002\u8BF7\u6062\u590D\u78C1\u76D8\u5199\u5165\u540E\u91CD\u65B0\u6253\u5F00\u4ED3\u5E93\u9875\uFF0C\u7CFB\u7EDF\u4F1A\u6821\u9A8C\u6587\u4EF6\u5E76\u6062\u590D\u8BB0\u5F55\u3002","error.repo.invalid":"\u4ED3\u5E93\u5730\u5740\u3001\u8DEF\u5F84\u6216\u5185\u5BB9\u65E0\u6548\uFF0C\u8BF7\u68C0\u67E5\u8F93\u5165\u53CA\u4ED3\u5E93\u5927\u5C0F\u3002","error.repo.network":"\u4ED3\u5E93\u8BBF\u95EE\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u6216\u7A0D\u540E\u91CD\u8BD5\u3002\u4E0A\u6B21\u5217\u8868\u5DF2\u4FDD\u7559\u3002","error.repo.state":"\u4ED3\u5E93\u72B6\u6001\u6587\u4EF6\u635F\u574F\u6216\u65E0\u6CD5\u8BFB\u53D6\uFF0C\u8BF7\u4FDD\u7559\u6587\u4EF6\u5E76\u4FEE\u590D\u540E\u91CD\u8BD5\u3002","error.repo.conflict":"\u540C\u540D\u6280\u80FD\u5DF2\u5B58\u5728\u6216\u5B89\u88C5\u5931\u8D25\uFF0C\u672C\u5730\u6587\u4EF6\u672A\u88AB\u8986\u76D6\u3002"},en:{"repo.refreshing":"Checking updates\u2026","repo.refreshed":"Refresh and update check completed","repo.detailLoading":"Loading skill instructions\u2026","repo.local":"Local","repo.source":"Installed from","repo.update":"Update available","repo.review":"Review update","repo.rollback":"Restore previous version","repo.confirmUpdate":"Back up and update","repo.confirmRollback":"Back up and restore","repo.overwrite":"Back up local edits and replace","repo.modified":"Local edits detected. Replacement overwrites current files and keeps a complete backup for restoration.","repo.noChanges":"No file changes.","repo.added":"Added","repo.removed":"Removed","repo.modifiedFile":"Modified","repo.updating":"Updating\u2026","repo.updateProgress":"Verifying, backing up and replacing files. Please wait\u2026","repo.updateSuccess":"Updated. Previous version backed up.","repo.rollbackSuccess":"Previous version restored.","repo.manageUpdate":"Manage updates","error.repo.modified":"Local edits detected. Review and confirm replacement with a backup.","scope.repositories":"Repositories","repo.add":"Add repository","repo.manage":"Manage repositories","repo.refresh":"Refresh & check updates","repo.save":"Add and scan","repo.hint":"Discover skills in public GitHub repositories and install them to global DSH.","repo.footer":"Refresh checks repositories and skill updates without replacing local files. Historical backups are not cleaned automatically and use additional disk space.","repo.search":"Search repository skills","repo.all":"All repositories","repo.states":"All statuses","repo.available":"Available","repo.installed":"Installed","repo.conflict":"Name conflict","repo.invalid":"Invalid format","repo.install":"Install","repo.detail":"Details","repo.installing":"Installing\u2026","repo.installProgress":"Reading and verifying skill files. Please wait\u2026","repo.installSuccess":"Installed. Available in global skills.","repo.empty":"No repositories yet. Add a public GitHub repository to get started.","repo.noSkills":"No matching skills. Refresh the repository or adjust your filters.","repo.url":"Repository URL","repo.ref":"Branch or tag (optional)","repo.directory":"Skill subdirectory (optional)","repo.defaultBranch":"Leave empty for the default branch","repo.directoryHint":"For example: skills. Leave empty to scan the repository.","repo.remove":"Remove repository","repo.removeHint":"This removes the subscription only. Installed skills are kept.","repo.removeConfirm":"Confirm removal","repo.cancel":"Cancel","repo.close":"Close","repo.loading":"Working\u2026","repo.success":"Completed","repo.installHint":"Skills may include scripts. Read the instructions and trust the source before installing. Resources are copied; scripts are not executed.","repo.commit":"Snapshot version","repo.notScanned":"Not scanned yet","repo.updated":"Last refreshed","error.repo.tooLarge":"Repository archive exceeds 32 MiB. Choose a smaller repository; a subdirectory filter does not reduce the download size.","error.repo.installState":"Skill files were preserved but source tracking could not be saved. Restore disk write access and reopen Repositories to verify files and recover the record.","error.repo.invalid":"Invalid repository URL, path or contents. Check the input and repository size.","error.repo.network":"Repository request failed. Check your connection or retry later. The previous catalog was kept.","error.repo.state":"Repository state is corrupt or unreadable. Preserve the file and repair it before retrying.","error.repo.conflict":"A skill with this name exists or installation failed. Local files were not overwritten."}},RM=".dssm-repo-spinner{display:inline-block;width:12px;height:12px;margin-right:6px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:dssm-repo-spin .8s linear infinite}@keyframes dssm-repo-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.dssm-repo-spinner{animation:none}}.dssm-repo-panel{display:flex;flex-direction:column;gap:12px;min-width:0}.dssm-repo-row{display:flex;align-items:center;gap:8px;padding:11px 13px;border-top:1px solid var(--dsw-alias-border-l1,#3a3a3a)}.dssm-repo-row:first-child{border-top:0}.dssm-repo-main{flex:1;min-width:0}.dssm-repo-description{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-tertiary,#a0a0a0);font-size:12px}.dssm-repo-filters{display:flex;gap:9px}.dssm-repo-filters>*{flex:1;min-width:0}.dssm-repo-panel .dssm-desc{margin:0}.dssm-repo-metadata{font-size:11px;color:var(--dsw-alias-label-tertiary,#a0a0a0);overflow-wrap:anywhere}.dssm-repo-panel .dssm-source{flex-shrink:0}@container(max-width:400px){.dssm-repo-row{flex-wrap:wrap}.dssm-repo-main{flex-basis:100%}}";function uv({react:e,Modal:t,Input:o,Button:r,SourceSelect:n,api:i,headers:a,translateError:s}){let l=e.createElement;return function({active:u,t:d,onInstalled:m}){let[p,f]=e.useState([]),[g,y]=e.useState(!1),[h,x]=e.useState(null),[b,v]=e.useState(null),[C,R]=e.useState(null),[S,E]=e.useState(""),[N,P]=e.useState(""),[$,I]=e.useState(""),[O,z]=e.useState({}),[M,B]=e.useState(null),[_,F]=e.useState({url:"",ref:"",subdirectory:""}),X=e.useRef(!1),H=e.useRef(!0);e.useEffect(()=>(H.current=!0,()=>{H.current=!1}),[]);async function V(){let K=await i("/repositories");H.current&&f(K.repositories||[])}function L(K){let Q=K;return d("format.locale")==="zh-CN"&&Q.code==="error.repo.invalid"?Q.error||Q.message||d(Q.code):s(d,K)||Q.message||String(K)}function G(K){return K.payload?L(K.payload):(K.key?d(K.key):K.text||"")+(K.name?" \xB7 "+K.name:"")}async function j(K,Q=!0,ge=!1){if(!X.current){X.current=!0,ge||(y(!0),v(null));try{await K(),Q&&await V()}catch(xe){let pe=xe;H.current&&v({error:!0,payload:pe})}finally{X.current=!1,H.current&&y(!1)}}}function D(K,Q){return i(`/repositories/${K}`,{method:"POST",headers:a,body:JSON.stringify(Q)})}async function W(K){let Q=await D("refresh",{id:K});Q.error&&v({error:!0,payload:Q.error})}function Y(K){return j(async()=>{let Q=!1;try{for(let ge=0;ge<K.length;ge++){let xe=K[ge];x({id:xe.id,name:xe.owner+"/"+xe.name,index:ge+1,total:K.length});let pe=await D("refresh",{id:xe.id});pe.error&&(Q=!0,v({error:!0,payload:pe.error}))}await V(),!Q&&H.current&&v({key:"repo.refreshed"})}finally{H.current&&x(null)}},!1)}function te(K,Q){return j(async()=>{B({type:"detail",repo:K,loading:!0});try{let ge=await D("detail",{id:K.id,path:Q.path});H.current&&B({type:"detail",detail:ge,repo:K})}catch(ge){let xe=ge;throw H.current&&B({type:"detail",repo:K,failed:!0}),xe}},!1,!0)}e.useEffect(()=>{u&&j(V,!1)},[u]);function Z(K,Q,ge=!0,xe=!1){return l(r,{type:ge?"default":"primary",disabled:g||xe,onClick:Q},d(K))}function U(K,Q=!1){let ge=h&&(!Q||h.id===K[0]?.id);return l(r,{type:"default",disabled:g||!K.length,"aria-busy":!!ge,onClick:()=>Y(K)},ge?l("span",{className:"dssm-repo-spinner","aria-hidden":!0}):null,d(ge?"repo.refreshing":"repo.refresh"))}function J(){X.current||B(null)}function q(K,Q){return j(async()=>{let ge={id:K.id,path:Q.path};R({...ge,pending:!0,key:"repo.installProgress"});try{await D("install",ge)}catch(xe){let pe=xe;throw H.current&&R({...ge,error:!0,payload:pe}),pe}H.current&&(R({...ge,key:"repo.installSuccess"}),v({key:"repo.installSuccess",name:Q.name}),m&&await m())})}function ie(K,Q,ge=!1){return j(async()=>{let xe=await D("preview",{id:K.id,path:Q.path,rollback:ge});B({type:ge?"rollback":"review",repo:K,skill:Q,detail:xe})})}function ne(){if(!M||M.type!=="review"&&M.type!=="rollback")return;let K=M,Q=K.type==="rollback";return j(async()=>{let ge={id:K.repo.id,path:K.skill.path};R({...ge,pending:!0,key:"repo.updateProgress"});try{await D(Q?"rollback":"update",{...ge,token:K.detail.token,overwrite:K.detail.localModified})}catch(pe){let ye=pe;throw H.current&&R({...ge,error:!0,payload:ye}),ye}if(!H.current)return;let xe=Q?"repo.rollbackSuccess":"repo.updateSuccess";R({...ge,key:xe}),v({key:xe}),B(null),m&&await m()})}let ce=l("div",{key:"repository-actions",className:"dssm-actions"},U(p),Z("repo.add",()=>{v(null),F({url:"",ref:"",subdirectory:""}),B({type:"add"})},!1),Z("repo.manage",()=>{v(null),B({type:"manage"})})),le=p.filter(K=>!N||K.id===N).map(K=>{let Q=S.trim().toLowerCase(),ge=K.skills.filter(ye=>(!$||ye.status===$)&&(!Q||`${ye.name} ${ye.description} ${K.owner}/${K.name}`.toLowerCase().includes(Q))),xe=O[K.id]===void 0?!!Q||!!$:O[K.id],pe="dssm-repo-"+K.id;return l("div",{key:K.id,className:"dssm-source"},l("div",{className:"dssm-source-head"},l("button",{type:"button",className:"dssm-source-head-main","aria-expanded":xe,"aria-controls":pe,onClick:()=>z({...O,[K.id]:!xe})},l("span",{className:"dssm-source-chevron","aria-hidden":!0},xe?"\u25BE":"\u25B8"),l("span",{className:"dssm-source-title"},K.owner+"/"+K.name),l("span",{className:"dssm-count"},ge.length)),l("span",{className:"dssm-repo-metadata"},K.commit?K.commit.slice(0,7):d("repo.notScanned"))),K.error?l("div",{className:"dssm-feedback dssm-error",role:"alert"},L(K.error)):null,l("div",{id:pe,className:"dssm-source-body",hidden:!xe},xe?ge.length?ge.map(ye=>l("div",{key:ye.path,className:"dssm-repo-row"},l("div",{className:"dssm-repo-main"},l("div",{className:"dssm-name"},ye.name),l("div",{className:"dssm-repo-description",title:ye.description},ye.description),C?.id===K.id&&C.path===ye.path?l("div",{className:"dssm-note"+(C.error?" dssm-error":""),role:C.error?"alert":"status","aria-live":"polite"},G(C)):null),Z("repo.detail",()=>te(K,ye)),ye.tracked&&(ye.updateAvailable||ye.status==="conflict")?Z("repo.review",()=>ie(K,ye)):null,ye.canRollback?Z("repo.rollback",()=>ie(K,ye,!0)):null,Z(C?.id===K.id&&C.path===ye.path&&C.pending?"repo.installing":ye.status==="available"?"repo.install":"repo."+ye.status,()=>q(K,ye),ye.status!=="available",ye.status!=="available"))):l("div",{className:"dssm-empty"},d("repo.noSkills")):null))});function ae(K,Q,ge,xe){return l(n,{label:d(K),value:Q,onChange:ge,options:[{value:"",label:d(K)},...xe.map(([pe,ye])=>({value:pe,label:ye}))]})}let de=b?l("div",{className:"dssm-feedback"+(b.error?" dssm-error":""),role:"status"},G(b)):null,ue=h?l("div",{className:"dssm-note",role:"status","aria-live":"polite"},d("repo.refreshing")+" "+h.index+"/"+h.total+" \xB7 "+h.name):null,Ce;if(M){let K;(M.type==="review"||M.type==="rollback")&&(K=l("div",{className:"dssm-repo-panel"},l("div",{className:"dssm-name"},M.skill.name),l("div",{className:"dssm-repo-metadata"},M.repo.owner+"/"+M.repo.name+" \xB7 "+M.detail.commit?.slice(0,7)),M.detail.localModified?l("p",{className:"dssm-feedback dssm-warning",role:"alert"},d("repo.modified")):null,M.detail.changes.length?l("ul",{style:{maxHeight:"240px",overflow:"auto",overflowWrap:"anywhere",paddingLeft:"20px"}},M.detail.changes.map(Q=>l("li",{key:Q.path},d("repo."+(Q.kind==="modified"?"modifiedFile":Q.kind))+" \xB7 "+Q.path))):l("p",null,d("repo.noChanges")),g?l("div",{role:"status"},d("repo.updateProgress")):null,de,l("div",{className:"dssm-modal-actions"},Z("repo.cancel",J),Z(M.detail.localModified?"repo.overwrite":M.type==="rollback"?"repo.confirmRollback":"repo.confirmUpdate",ne,!1,!M.detail.changes.length)))),M.type==="add"&&(K=l("form",{className:"dssm-form",onSubmit:Q=>{Q.preventDefault(),_.url.trim()&&j(async()=>{let ge=await D("add",_);await W(ge.id),B(null)})}},[["url","repo.url","https://github.com/owner/repo"],["ref","repo.ref",d("repo.defaultBranch")],["subdirectory","repo.directory",d("repo.directoryHint")]].map(([Q,ge,xe])=>l("label",{className:"dssm-field",key:Q},l("span",{className:"dssm-label"},d(ge)),l(o,{"aria-label":d(ge),value:_[Q],placeholder:xe,maxLength:Q==="url"?2048:512,required:Q==="url",disabled:g,onChange:pe=>F({..._,[Q]:pe.target.value})}))),de,l("div",{className:"dssm-modal-actions"},Z("repo.cancel",J),Z("repo.save",()=>{_.url.trim()&&j(async()=>{let Q=await D("add",_);await W(Q.id),B(null)})},!1,!_.url.trim())))),M.type==="manage"&&(K=l("div",{className:"dssm-repo-panel"},l("p",{className:"dssm-desc"},d("repo.removeHint")),ue,de,p.length?p.map(Q=>l("div",{key:Q.id,className:"dssm-repo-row"},l("div",{className:"dssm-repo-main"},l("div",{className:"dssm-name"},Q.owner+"/"+Q.name),l("div",{className:"dssm-note"},[Q.ref||d("repo.defaultBranch"),Q.subdirectory].filter(Boolean).join(" \xB7 ")),l("div",{className:"dssm-repo-metadata"},Q.refreshedAt?d("repo.updated")+" \xB7 "+new Date(Q.refreshedAt).toLocaleString(d("format.locale")):d("repo.notScanned"))),U([Q],!0),Z("repo.remove",()=>B({type:"remove",repo:Q})))):l("div",{className:"dssm-empty"},d("repo.empty")))),M.type==="remove"&&(K=l("div",null,l("p",{className:"dssm-desc"},M.repo.owner+"/"+M.repo.name),l("p",{className:"dssm-desc"},d("repo.removeHint")),de,l("div",{className:"dssm-modal-actions"},Z("repo.cancel",()=>B({type:"manage"})),Z("repo.removeConfirm",()=>j(async()=>{await D("remove",{id:M.repo.id}),N===M.repo.id&&P(""),B({type:"manage"})}),!1)))),M.type==="detail"&&M.detail&&(K=l("div",{className:"dssm-repo-panel"},l("div",{className:"dssm-name"},M.detail.name),l("p",{className:"dssm-desc"},M.detail.description),l("div",{className:"dssm-detail-path"},M.repo.owner+"/"+M.repo.name+" \xB7 "+M.detail.path),l("div",{className:"dssm-repo-metadata"},d("repo.commit")+" \xB7 "+M.detail.commit),l("p",{className:"dssm-note"},d("repo.installHint")),l(o.TextArea,{readOnly:!0,value:M.detail.body||"",autoSize:{minRows:6,maxRows:16}}))),M.type==="detail"&&!M.detail&&(K=l("div",{role:"status",className:"dssm-repo-panel"},M.loading?d("repo.detailLoading"):null,M.failed?de:null)),Ce=l(t,{title:d("repo."+(M.type==="remove"?"remove":M.type)),closeLabel:d("repo.close"),onClose:J},K)}let oe=l("div",{key:"repositories",id:"dssm-scope-panel",role:"tabpanel","aria-labelledby":"dssm-tab-repositories",className:"dssm-repo-panel","aria-busy":g},l("style",null,RM),l("p",{className:"dssm-desc"},d("repo.hint")),l(o,{className:"dssm-search",allowClear:!0,"aria-label":d("repo.search"),placeholder:d("repo.search"),value:S,onChange:K=>{E(K.target.value),z({})}}),l("div",{className:"dssm-repo-filters"},ae("repo.all",N,P,p.map(K=>[K.id,K.owner+"/"+K.name])),ae("repo.states",$,K=>{I(K),z({})},["available","installed","update","conflict","invalid"].map(K=>[K,d("repo."+K)]))),de,M?null:ue,g&&!h?l("div",{className:"dssm-note",role:"status"},d("repo.loading")):null,p.length?le:l("div",{className:"dssm-empty"},d("repo.empty")),l("p",{className:"dssm-note"},d("repo.footer")),Ce);return{actions:ce,content:oe,focusSource:(K,Q)=>{P(K.id),E(Q),I(""),z({[K.id]:!0})}}}}var ct=T(require("react"),1),ev=require("react-dom/client");var dv={locale:"zh-cn",global:{close:"\u5173\u95ED"},Modal:{okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",justOkText:"\u77E5\u9053\u4E86"}},wM={locale:"en",global:{close:"Close"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"}};function EM(e){return e==="en"?wM:dv}function Ql(){return typeof document>"u"?dv:EM(document.documentElement.lang.toLowerCase().startsWith("en")?"en":"zh")}var mv={aliceblue:"9ehhb",antiquewhite:"9sgk7",aqua:"1ekf",aquamarine:"4zsno",azure:"9eiv3",beige:"9lhp8",bisque:"9zg04",black:"0",blanchedalmond:"9zhe5",blue:"73",blueviolet:"5e31e",brown:"6g016",burlywood:"8ouiv",cadetblue:"3qba8",chartreuse:"4zshs",chocolate:"87k0u",coral:"9yvyo",cornflowerblue:"3xael",cornsilk:"9zjz0",crimson:"8l4xo",cyan:"1ekf",darkblue:"3v",darkcyan:"rkb",darkgoldenrod:"776yz",darkgray:"6mbhl",darkgreen:"jr4",darkgrey:"6mbhl",darkkhaki:"7ehkb",darkmagenta:"5f91n",darkolivegreen:"3bzfz",darkorange:"9yygw",darkorchid:"5z6x8",darkred:"5f8xs",darksalmon:"9441m",darkseagreen:"5lwgf",darkslateblue:"2th1n",darkslategray:"1ugcv",darkslategrey:"1ugcv",darkturquoise:"14up",darkviolet:"5rw7n",deeppink:"9yavn",deepskyblue:"11xb",dimgray:"442g9",dimgrey:"442g9",dodgerblue:"16xof",firebrick:"6y7tu",floralwhite:"9zkds",forestgreen:"1cisi",fuchsia:"9y70f",gainsboro:"8m8kc",ghostwhite:"9pq0v",goldenrod:"8j4f4",gold:"9zda8",gray:"50i2o",green:"pa8",greenyellow:"6senj",grey:"50i2o",honeydew:"9eiuo",hotpink:"9yrp0",indianred:"80gnw",indigo:"2xcoy",ivory:"9zldc",khaki:"9edu4",lavenderblush:"9ziet",lavender:"90c8q",lawngreen:"4vk74",lemonchiffon:"9zkct",lightblue:"6s73a",lightcoral:"9dtog",lightcyan:"8s1rz",lightgoldenrodyellow:"9sjiq",lightgray:"89jo3",lightgreen:"5nkwg",lightgrey:"89jo3",lightpink:"9z6wx",lightsalmon:"9z2ii",lightseagreen:"19xgq",lightskyblue:"5arju",lightslategray:"4nwk9",lightslategrey:"4nwk9",lightsteelblue:"6wau6",lightyellow:"9zlcw",lime:"1edc",limegreen:"1zcxe",linen:"9shk6",magenta:"9y70f",maroon:"4zsow",mediumaquamarine:"40eju",mediumblue:"5p",mediumorchid:"79qkz",mediumpurple:"5r3rv",mediumseagreen:"2d9ip",mediumslateblue:"4tcku",mediumspringgreen:"1di2",mediumturquoise:"2uabw",mediumvioletred:"7rn9h",midnightblue:"z980",mintcream:"9ljp6",mistyrose:"9zg0x",moccasin:"9zfzp",navajowhite:"9zest",navy:"3k",oldlace:"9wq92",olive:"50hz4",olivedrab:"472ub",orange:"9z3eo",orangered:"9ykg0",orchid:"8iu3a",palegoldenrod:"9bl4a",palegreen:"5yw0o",paleturquoise:"6v4ku",palevioletred:"8k8lv",papayawhip:"9zi6t",peachpuff:"9ze0p",peru:"80oqn",pink:"9z8wb",plum:"8nba5",powderblue:"6wgdi",purple:"4zssg",rebeccapurple:"3zk49",red:"9y6tc",rosybrown:"7cv4f",royalblue:"2jvtt",saddlebrown:"5fmkz",salmon:"9rvci",sandybrown:"9jn1c",seagreen:"1tdnb",seashell:"9zje6",sienna:"6973h",silver:"7ir40",skyblue:"5arjf",slateblue:"45e4t",slategray:"4e100",slategrey:"4e100",snow:"9zke2",springgreen:"1egv",steelblue:"2r1kk",tan:"87yx8",teal:"pds",thistle:"8ggk8",tomato:"9yqfb",turquoise:"2j4r4",violet:"9b10u",wheat:"9ld4j",white:"9zldr",whitesmoke:"9lhpx",yellow:"9zl6o",yellowgreen:"61fzm"};var Lo=Math.round;function Rg(e,t){let o=e.replace(/^[^(]*\((.*)/,"$1").replace(/\).*/,"").match(/\d*\.?\d+%?/g)||[],r=o.map(n=>parseFloat(n));for(let n=0;n<3;n+=1)r[n]=t(r[n]||0,o[n]||"",n);return o[3]?r[3]=o[3].includes("%")?r[3]/100:r[3]:r[3]=1,r}var pv=(e,t,o)=>o===0?e:e/100;function Jl(e,t){let o=t||255;return e>o?o:e<0?0:e}var lt=class e{isValid=!0;r=0;g=0;b=0;a=1;_h;_hsl_s;_hsv_s;_l;_v;_max;_min;_brightness;constructor(t){function o(r){return r[0]in t&&r[1]in t&&r[2]in t}if(t)if(typeof t=="string"){let n=function(i){return r.startsWith(i)},r=t.trim();if(/^#?[A-F\d]{3,8}$/i.test(r))this.fromHexString(r);else if(n("rgb"))this.fromRgbString(r);else if(n("hsl"))this.fromHslString(r);else if(n("hsv")||n("hsb"))this.fromHsvString(r);else{let i=mv[r.toLowerCase()];i&&this.fromHexString(parseInt(i,36).toString(16).padStart(6,"0"))}}else if(t instanceof e)this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a,this._h=t._h,this._hsl_s=t._hsl_s,this._hsv_s=t._hsv_s,this._l=t._l,this._v=t._v;else if(o("rgb"))this.r=Jl(t.r),this.g=Jl(t.g),this.b=Jl(t.b),this.a=typeof t.a=="number"?Jl(t.a,1):1;else if(o("hsl"))this.fromHsl(t);else if(o("hsv"))this.fromHsv(t);else throw new Error("@ant-design/fast-color: unsupported input "+JSON.stringify(t))}setR(t){return this._sc("r",t)}setG(t){return this._sc("g",t)}setB(t){return this._sc("b",t)}setA(t){return this._sc("a",t,1)}setHue(t){let o=this.toHsv();return o.h=t,this._c(o)}getLuminance(){function t(i){let a=i/255;return a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4)}let o=t(this.r),r=t(this.g),n=t(this.b);return .2126*o+.7152*r+.0722*n}getHue(){if(typeof this._h>"u"){let t=this.getMax()-this.getMin();t===0?this._h=0:this._h=Lo(60*(this.r===this.getMax()?(this.g-this.b)/t+(this.g<this.b?6:0):this.g===this.getMax()?(this.b-this.r)/t+2:(this.r-this.g)/t+4))}return this._h}getSaturation(){return this.getHSVSaturation()}getHSVSaturation(){if(typeof this._hsv_s>"u"){let t=this.getMax()-this.getMin();t===0?this._hsv_s=0:this._hsv_s=t/this.getMax()}return this._hsv_s}getHSLSaturation(){if(typeof this._hsl_s>"u"){let t=this.getMax()-this.getMin();if(t===0)this._hsl_s=0;else{let o=this.getLightness();this._hsl_s=t/255/(1-Math.abs(2*o-1))}}return this._hsl_s}getLightness(){return typeof this._l>"u"&&(this._l=(this.getMax()+this.getMin())/510),this._l}getValue(){return typeof this._v>"u"&&(this._v=this.getMax()/255),this._v}getBrightness(){return typeof this._brightness>"u"&&(this._brightness=(this.r*299+this.g*587+this.b*114)/1e3),this._brightness}darken(t=10){let o=this.getHue(),r=this.getSaturation(),n=this.getLightness()-t/100;return n<0&&(n=0),this._c({h:o,s:r,l:n,a:this.a})}lighten(t=10){let o=this.getHue(),r=this.getSaturation(),n=this.getLightness()+t/100;return n>1&&(n=1),this._c({h:o,s:r,l:n,a:this.a})}mix(t,o=50){let r=this._c(t),n=o/100,i=s=>(r[s]-this[s])*n+this[s],a={r:Lo(i("r")),g:Lo(i("g")),b:Lo(i("b")),a:Lo(i("a")*100)/100};return this._c(a)}tint(t=10){return this.mix({r:255,g:255,b:255,a:1},t)}shade(t=10){return this.mix({r:0,g:0,b:0,a:1},t)}onBackground(t){let o=this._c(t),r=this.a+o.a*(1-this.a),n=i=>Lo((this[i]*this.a+o[i]*o.a*(1-this.a))/r);return this._c({r:n("r"),g:n("g"),b:n("b"),a:r})}isDark(){return this.getBrightness()<128}isLight(){return this.getBrightness()>=128}equals(t){return this.r===t.r&&this.g===t.g&&this.b===t.b&&this.a===t.a}clone(){return this._c(this)}toHexString(){let t="#",o=(this.r||0).toString(16);t+=o.length===2?o:"0"+o;let r=(this.g||0).toString(16);t+=r.length===2?r:"0"+r;let n=(this.b||0).toString(16);if(t+=n.length===2?n:"0"+n,typeof this.a=="number"&&this.a>=0&&this.a<1){let i=Lo(this.a*255).toString(16);t+=i.length===2?i:"0"+i}return t}toHsl(){return{h:this.getHue(),s:this.getHSLSaturation(),l:this.getLightness(),a:this.a}}toHslString(){let t=this.getHue(),o=Lo(this.getHSLSaturation()*100),r=Lo(this.getLightness()*100);return this.a!==1?`hsla(${t},${o}%,${r}%,${this.a})`:`hsl(${t},${o}%,${r}%)`}toHsv(){return{h:this.getHue(),s:this.getHSVSaturation(),v:this.getValue(),a:this.a}}toRgb(){return{r:this.r,g:this.g,b:this.b,a:this.a}}toRgbString(){return this.a!==1?`rgba(${this.r},${this.g},${this.b},${this.a})`:`rgb(${this.r},${this.g},${this.b})`}toString(){return this.toRgbString()}_sc(t,o,r){let n=this.clone();return n[t]=Jl(o,r),n}_c(t){return new this.constructor(t)}getMax(){return typeof this._max>"u"&&(this._max=Math.max(this.r,this.g,this.b)),this._max}getMin(){return typeof this._min>"u"&&(this._min=Math.min(this.r,this.g,this.b)),this._min}fromHexString(t){let o=t.replace("#","");function r(n,i){return parseInt(o[n]+o[i||n],16)}o.length<6?(this.r=r(0),this.g=r(1),this.b=r(2),this.a=o[3]?r(3)/255:1):(this.r=r(0,1),this.g=r(2,3),this.b=r(4,5),this.a=o[6]?r(6,7)/255:1)}fromHsl({h:t,s:o,l:r,a:n}){let i=(t%360+360)%360;if(this._h=i,this._hsl_s=o,this._l=r,this.a=typeof n=="number"?n:1,o<=0){let p=Lo(r*255);this.r=p,this.g=p,this.b=p;return}let a=0,s=0,l=0,c=i/60,u=(1-Math.abs(2*r-1))*o,d=u*(1-Math.abs(c%2-1));c>=0&&c<1?(a=u,s=d):c>=1&&c<2?(a=d,s=u):c>=2&&c<3?(s=u,l=d):c>=3&&c<4?(s=d,l=u):c>=4&&c<5?(a=d,l=u):c>=5&&c<6&&(a=u,l=d);let m=r-u/2;this.r=Lo((a+m)*255),this.g=Lo((s+m)*255),this.b=Lo((l+m)*255)}fromHsv({h:t,s:o,v:r,a:n}){let i=(t%360+360)%360;this._h=i,this._hsv_s=o,this._v=r,this.a=typeof n=="number"?n:1;let a=Lo(r*255);if(this.r=a,this.g=a,this.b=a,o<=0)return;let s=i/60,l=Math.floor(s),c=s-l,u=Lo(r*(1-o)*255),d=Lo(r*(1-o*c)*255),m=Lo(r*(1-o*(1-c))*255);switch(l){case 0:this.g=m,this.b=u;break;case 1:this.r=d,this.b=u;break;case 2:this.r=u,this.b=m;break;case 3:this.r=u,this.g=d;break;case 4:this.r=m,this.g=u;break;case 5:default:this.g=u,this.b=d;break}}fromHsvString(t){let o=Rg(t,pv);this.fromHsv({h:o[0],s:o[1],v:o[2],a:o[3]})}fromHslString(t){let o=Rg(t,pv);this.fromHsl({h:o[0],s:o[1],l:o[2],a:o[3]})}fromRgbString(t){let o=Rg(t,(r,n)=>n.includes("%")?Lo(r/100*255):r);this.r=o[0],this.g=o[1],this.b=o[2],this.a=o[3]}};var Uu=2,fv=.16,$M=.05,NM=.05,PM=.15,yv=5,xv=4,IM=[{index:7,amount:15},{index:6,amount:25},{index:5,amount:30},{index:5,amount:45},{index:5,amount:65},{index:5,amount:85},{index:4,amount:90},{index:3,amount:95},{index:2,amount:97},{index:1,amount:98}];function gv(e,t,o){let r;return Math.round(e.h)>=60&&Math.round(e.h)<=240?r=o?Math.round(e.h)-Uu*t:Math.round(e.h)+Uu*t:r=o?Math.round(e.h)+Uu*t:Math.round(e.h)-Uu*t,r<0?r+=360:r>=360&&(r-=360),r}function hv(e,t,o){if(e.h===0&&e.s===0)return e.s;let r;return o?r=e.s-fv*t:t===xv?r=e.s+fv:r=e.s+$M*t,r>1&&(r=1),o&&t===yv&&r>.1&&(r=.1),r<.06&&(r=.06),Math.round(r*100)/100}function bv(e,t,o){let r;return o?r=e.v+NM*t:r=e.v-PM*t,r=Math.max(0,Math.min(1,r)),Math.round(r*100)/100}function Dn(e,t={}){let o=[],r=new lt(e),n=r.toHsv();for(let i=yv;i>0;i-=1){let a=new lt({h:gv(n,i,!0),s:hv(n,i,!0),v:bv(n,i,!0)});o.push(a)}o.push(r);for(let i=1;i<=xv;i+=1){let a=new lt({h:gv(n,i),s:hv(n,i),v:bv(n,i)});o.push(a)}return t.theme==="dark"?IM.map(({index:i,amount:a})=>new lt(t.backgroundColor||"#141414").mix(o[i],a).toHexString()):o.map(i=>i.toHexString())}var si={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1677FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},wg=["#fff1f0","#ffccc7","#ffa39e","#ff7875","#ff4d4f","#f5222d","#cf1322","#a8071a","#820014","#5c0011"];wg.primary=wg[5];var Eg=["#fff2e8","#ffd8bf","#ffbb96","#ff9c6e","#ff7a45","#fa541c","#d4380d","#ad2102","#871400","#610b00"];Eg.primary=Eg[5];var $g=["#fff7e6","#ffe7ba","#ffd591","#ffc069","#ffa940","#fa8c16","#d46b08","#ad4e00","#873800","#612500"];$g.primary=$g[5];var Ng=["#fffbe6","#fff1b8","#ffe58f","#ffd666","#ffc53d","#faad14","#d48806","#ad6800","#874d00","#613400"];Ng.primary=Ng[5];var Pg=["#feffe6","#ffffb8","#fffb8f","#fff566","#ffec3d","#fadb14","#d4b106","#ad8b00","#876800","#614700"];Pg.primary=Pg[5];var Ig=["#fcffe6","#f4ffb8","#eaff8f","#d3f261","#bae637","#a0d911","#7cb305","#5b8c00","#3f6600","#254000"];Ig.primary=Ig[5];var Tg=["#f6ffed","#d9f7be","#b7eb8f","#95de64","#73d13d","#52c41a","#389e0d","#237804","#135200","#092b00"];Tg.primary=Tg[5];var Mg=["#e6fffb","#b5f5ec","#87e8de","#5cdbd3","#36cfc9","#13c2c2","#08979c","#006d75","#00474f","#002329"];Mg.primary=Mg[5];var Og=["#e6f4ff","#bae0ff","#91caff","#69b1ff","#4096ff","#1677ff","#0958d9","#003eb3","#002c8c","#001d66"];Og.primary=Og[5];var Ag=["#f0f5ff","#d6e4ff","#adc6ff","#85a5ff","#597ef7","#2f54eb","#1d39c4","#10239e","#061178","#030852"];Ag.primary=Ag[5];var Lg=["#f9f0ff","#efdbff","#d3adf7","#b37feb","#9254de","#722ed1","#531dab","#391085","#22075e","#120338"];Lg.primary=Lg[5];var Dg=["#fff0f6","#ffd6e7","#ffadd2","#ff85c0","#f759ab","#eb2f96","#c41d7f","#9e1068","#780650","#520339"];Dg.primary=Dg[5];var zg=["#a6a6a6","#999999","#8c8c8c","#808080","#737373","#666666","#404040","#1a1a1a","#000000","#000000"];zg.primary=zg[5];var Ku={red:wg,volcano:Eg,orange:$g,gold:Ng,yellow:Pg,lime:Ig,green:Tg,cyan:Mg,blue:Og,geekblue:Ag,purple:Lg,magenta:Dg,grey:zg},Cv=["#2a1215","#431418","#58181c","#791a1f","#a61d24","#d32029","#e84749","#f37370","#f89f9a","#fac8c3"];Cv.primary=Cv[5];var vv=["#2b1611","#441d12","#592716","#7c3118","#aa3e19","#d84a1b","#e87040","#f3956a","#f8b692","#fad4bc"];vv.primary=vv[5];var Sv=["#2b1d11","#442a11","#593815","#7c4a15","#aa6215","#d87a16","#e89a3c","#f3b765","#f8cf8d","#fae3b7"];Sv.primary=Sv[5];var Rv=["#2b2111","#443111","#594214","#7c5914","#aa7714","#d89614","#e8b339","#f3cc62","#f8df8b","#faedb5"];Rv.primary=Rv[5];var wv=["#2b2611","#443b11","#595014","#7c6e14","#aa9514","#d8bd14","#e8d639","#f3ea62","#f8f48b","#fafab5"];wv.primary=wv[5];var Ev=["#1f2611","#2e3c10","#3e4f13","#536d13","#6f9412","#8bbb11","#a9d134","#c9e75d","#e4f88b","#f0fab5"];Ev.primary=Ev[5];var $v=["#162312","#1d3712","#274916","#306317","#3c8618","#49aa19","#6abe39","#8fd460","#b2e58b","#d5f2bb"];$v.primary=$v[5];var Nv=["#112123","#113536","#144848","#146262","#138585","#13a8a8","#33bcb7","#58d1c9","#84e2d8","#b2f1e8"];Nv.primary=Nv[5];var Pv=["#111a2c","#112545","#15325b","#15417e","#1554ad","#1668dc","#3c89e8","#65a9f3","#8dc5f8","#b7dcfa"];Pv.primary=Pv[5];var Iv=["#131629","#161d40","#1c2755","#203175","#263ea0","#2b4acb","#5273e0","#7f9ef3","#a8c1f8","#d2e0fa"];Iv.primary=Iv[5];var Tv=["#1a1325","#24163a","#301c4d","#3e2069","#51258f","#642ab5","#854eca","#ab7ae0","#cda8f0","#ebd7fa"];Tv.primary=Tv[5];var Mv=["#291321","#40162f","#551c3b","#75204f","#a02669","#cb2b83","#e0529c","#f37fb7","#f8a8cc","#fad2e3"];Mv.primary=Mv[5];var Ov=["#151515","#1f1f1f","#2d2d2d","#393939","#494949","#5a5a5a","#6a6a6a","#7b7b7b","#888888","#969696"];Ov.primary=Ov[5];var Fo=["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"];var ec={blue:"#1677FF",purple:"#722ED1",cyan:"#13C2C2",green:"#52C41A",magenta:"#EB2F96",pink:"#EB2F96",red:"#F5222D",orange:"#FA8C16",yellow:"#FADB14",volcano:"#FA541C",geekblue:"#2F54EB",gold:"#FAAD14",lime:"#A0D911"},TM={...ec,colorPrimary:"#1677ff",colorSuccess:"#52c41a",colorWarning:"#faad14",colorError:"#ff4d4f",colorInfo:"#1677ff",colorLink:"",colorTextBase:"",colorBgBase:"",fontFamily:`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
4
+ "use strict";var bM=Object.create;var cv=Object.defineProperty;var yM=Object.getOwnPropertyDescriptor;var xM=Object.getOwnPropertyNames;var CM=Object.getPrototypeOf,vM=Object.prototype.hasOwnProperty;var vg=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var SM=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of xM(t))!vM.call(e,n)&&n!==o&&cv(e,n,{get:()=>t[n],enumerable:!(r=yM(t,n))||r.enumerable});return e};var T=(e,t,o)=>(o=e!=null?bM(CM(e)):{},SM(t||!e||!e.__esModule?cv(o,"default",{value:e,enumerable:!0}):o,e));var Jv=vg(_t=>{"use strict";var jg=Symbol.for("react.transitional.element"),Ug=Symbol.for("react.portal"),Zu=Symbol.for("react.fragment"),Qu=Symbol.for("react.strict_mode"),Ju=Symbol.for("react.profiler"),ed=Symbol.for("react.consumer"),td=Symbol.for("react.context"),od=Symbol.for("react.forward_ref"),rd=Symbol.for("react.suspense"),nd=Symbol.for("react.suspense_list"),id=Symbol.for("react.memo"),ad=Symbol.for("react.lazy"),Qv=Symbol.for("react.view_transition"),_M=Symbol.for("react.client.reference");function Vr(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case jg:switch(e=e.type,e){case Zu:case Ju:case Qu:case rd:case nd:case Qv:return e;default:switch(e=e&&e.$$typeof,e){case td:case od:case ad:case id:return e;case ed:return e;default:return t}}case Ug:return t}}}_t.ContextConsumer=ed;_t.ContextProvider=td;_t.Element=jg;_t.ForwardRef=od;_t.Fragment=Zu;_t.Lazy=ad;_t.Memo=id;_t.Portal=Ug;_t.Profiler=Ju;_t.StrictMode=Qu;_t.Suspense=rd;_t.SuspenseList=nd;_t.isContextConsumer=function(e){return Vr(e)===ed};_t.isContextProvider=function(e){return Vr(e)===td};_t.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===jg};_t.isForwardRef=function(e){return Vr(e)===od};_t.isFragment=function(e){return Vr(e)===Zu};_t.isLazy=function(e){return Vr(e)===ad};_t.isMemo=function(e){return Vr(e)===id};_t.isPortal=function(e){return Vr(e)===Ug};_t.isProfiler=function(e){return Vr(e)===Ju};_t.isStrictMode=function(e){return Vr(e)===Qu};_t.isSuspense=function(e){return Vr(e)===rd};_t.isSuspenseList=function(e){return Vr(e)===nd};_t.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Zu||e===Ju||e===Qu||e===rd||e===nd||e===Qv||typeof e=="object"&&e!==null&&(e.$$typeof===ad||e.$$typeof===id||e.$$typeof===td||e.$$typeof===ed||e.$$typeof===od||e.$$typeof===_M||e.getModuleId!==void 0)};_t.typeOf=Vr});var tS=vg((N5,eS)=>{"use strict";eS.exports=Jv()});var fS=vg((Z5,ud)=>{"use strict";ud.exports=nh;ud.exports.isMobile=nh;ud.exports.default=nh;var nO=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|redmi|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,iO=/CrOS/,aO=/android|ipad|playbook|silk/i;function nh(e){e||(e={});let t=e.ua;if(!t&&typeof navigator<"u"&&(t=navigator.userAgent),t&&t.headers&&typeof t.headers["user-agent"]=="string"&&(t=t.headers["user-agent"]),typeof t!="string")return!1;let o=nO.test(t)&&!iO.test(t)||!!e.tablet&&aO.test(t);return!o&&e.tablet&&e.featureDetect&&navigator&&navigator.maxTouchPoints>1&&t.indexOf("Macintosh")!==-1&&t.indexOf("Safari")!==-1&&(o=!0),o}});var V_=T(require("react"),1);var Sg={zh:{"repo.refreshing":"\u6B63\u5728\u68C0\u67E5\u66F4\u65B0\u2026","repo.refreshed":"\u5237\u65B0\u4E0E\u66F4\u65B0\u68C0\u67E5\u5B8C\u6210","repo.detailLoading":"\u6B63\u5728\u8BFB\u53D6\u6280\u80FD\u8BF4\u660E\u2026","repo.local":"\u672C\u673A","repo.source":"\u5B89\u88C5\u6765\u6E90","repo.update":"\u53EF\u66F4\u65B0","repo.review":"\u67E5\u770B\u66F4\u65B0","repo.rollback":"\u6062\u590D\u4E0A\u4E00\u7248","repo.confirmUpdate":"\u5907\u4EFD\u5E76\u66F4\u65B0","repo.confirmRollback":"\u5907\u4EFD\u5E76\u6062\u590D","repo.overwrite":"\u5907\u4EFD\u672C\u5730\u4FEE\u6539\u5E76\u66FF\u6362","repo.modified":"\u68C0\u6D4B\u5230\u672C\u5730\u4FEE\u6539\u3002\u66FF\u6362\u4F1A\u8986\u76D6\u5F53\u524D\u6587\u4EF6\uFF0C\u539F\u6587\u4EF6\u5C06\u5B8C\u6574\u5907\u4EFD\uFF0C\u53EF\u6062\u590D\u3002","repo.noChanges":"\u6587\u4EF6\u5185\u5BB9\u6CA1\u6709\u53D8\u5316\u3002","repo.added":"\u65B0\u589E","repo.removed":"\u5220\u9664","repo.modifiedFile":"\u4FEE\u6539","repo.updating":"\u66F4\u65B0\u4E2D\u2026","repo.updateProgress":"\u6B63\u5728\u6821\u9A8C\u3001\u5907\u4EFD\u5E76\u66FF\u6362\uFF0C\u8BF7\u7A0D\u5019\u2026","repo.updateSuccess":"\u66F4\u65B0\u5B8C\u6210\uFF0C\u5DF2\u4FDD\u7559\u4E0A\u4E00\u7248\u5907\u4EFD\u3002","repo.rollbackSuccess":"\u5DF2\u6062\u590D\u4E0A\u4E00\u7248\u3002","repo.manageUpdate":"\u7BA1\u7406\u66F4\u65B0","error.repo.modified":"\u5B58\u5728\u672C\u5730\u4FEE\u6539\uFF0C\u8BF7\u9884\u89C8\u5E76\u786E\u8BA4\u5907\u4EFD\u540E\u66FF\u6362\u3002","scope.repositories":"\u6280\u80FD\u4ED3\u5E93","repo.add":"\u6DFB\u52A0\u4ED3\u5E93","repo.manage":"\u7BA1\u7406\u4ED3\u5E93","repo.refresh":"\u5237\u65B0\u5E76\u68C0\u67E5\u66F4\u65B0","repo.save":"\u6DFB\u52A0\u5E76\u626B\u63CF","repo.hint":"\u4ECE\u516C\u5F00 GitHub \u4ED3\u5E93\u53D1\u73B0\u6280\u80FD\uFF0C\u6309\u9700\u5B89\u88C5\u5230\u5168\u5C40 DSH\u3002","repo.footer":"\u5237\u65B0\u4F1A\u68C0\u67E5\u4ED3\u5E93\u4E0E\u6280\u80FD\u66F4\u65B0\uFF0C\u4E0D\u4F1A\u81EA\u52A8\u66FF\u6362\u672C\u5730\u6587\u4EF6\u3002\u5386\u53F2\u5907\u4EFD\u4E0D\u4F1A\u81EA\u52A8\u6E05\u7406\uFF0C\u5360\u7528\u7A7A\u95F4\u4F1A\u968F\u66F4\u65B0\u589E\u52A0\u3002","repo.search":"\u641C\u7D22\u4ED3\u5E93\u6280\u80FD","repo.all":"\u5168\u90E8\u4ED3\u5E93","repo.states":"\u5168\u90E8\u72B6\u6001","repo.available":"\u53EF\u5B89\u88C5","repo.installed":"\u5DF2\u5B89\u88C5","repo.conflict":"\u540C\u540D\u51B2\u7A81","repo.invalid":"\u683C\u5F0F\u65E0\u6548","repo.install":"\u5B89\u88C5","repo.detail":"\u8BE6\u60C5","repo.installing":"\u5B89\u88C5\u4E2D\u2026","repo.installProgress":"\u6B63\u5728\u8BFB\u53D6\u5E76\u6821\u9A8C\u6280\u80FD\u6587\u4EF6\uFF0C\u8BF7\u7A0D\u5019\u2026","repo.installSuccess":"\u5B89\u88C5\u6210\u529F\u5E76\u5DF2\u542F\u7528\uFF0C\u53EF\u5728\u5BF9\u8BDD\u4E2D\u7528\u659C\u6760\u8C03\u7528\u3002","repo.empty":"\u8FD8\u6CA1\u6709\u6280\u80FD\u4ED3\u5E93\uFF0C\u6DFB\u52A0\u4E00\u4E2A\u516C\u5F00 GitHub \u4ED3\u5E93\u5F00\u59CB\u3002","repo.noSkills":"\u6CA1\u6709\u5339\u914D\u7684\u6280\u80FD\u3002\u53EF\u5237\u65B0\u4ED3\u5E93\u6216\u8C03\u6574\u7B5B\u9009\u3002","repo.url":"\u4ED3\u5E93\u5730\u5740","repo.ref":"\u5206\u652F\u6216\u6807\u7B7E\uFF08\u53EF\u9009\uFF09","repo.directory":"\u6280\u80FD\u5B50\u76EE\u5F55\uFF08\u53EF\u9009\uFF09","repo.defaultBranch":"\u7559\u7A7A\u4F7F\u7528\u9ED8\u8BA4\u5206\u652F","repo.directoryHint":"\u4F8B\u5982 skills\uFF0C\u7559\u7A7A\u626B\u63CF\u6574\u4E2A\u4ED3\u5E93","repo.remove":"\u79FB\u9664\u4ED3\u5E93","repo.removeHint":"\u4EC5\u79FB\u9664\u4ED3\u5E93\u8BA2\u9605\uFF0C\u5DF2\u5B89\u88C5\u7684\u6280\u80FD\u4F1A\u4FDD\u7559\u3002","repo.removeConfirm":"\u786E\u8BA4\u79FB\u9664","repo.cancel":"\u53D6\u6D88","repo.close":"\u5173\u95ED","repo.loading":"\u5904\u7406\u4E2D\u2026","repo.success":"\u64CD\u4F5C\u5B8C\u6210","repo.installHint":"\u6280\u80FD\u53EF\u80FD\u5305\u542B\u811A\u672C\uFF0C\u8BF7\u5148\u67E5\u770B\u8BF4\u660E\u5E76\u786E\u8BA4\u4FE1\u4EFB\u6765\u6E90\u3002\u5B89\u88C5\u4F1A\u4FDD\u7559\u8D44\u6E90\u6587\u4EF6\uFF0C\u4E0D\u4F1A\u6267\u884C\u811A\u672C\u3002","repo.commit":"\u626B\u63CF\u7248\u672C","repo.notScanned":"\u5C1A\u672A\u626B\u63CF","repo.updated":"\u4E0A\u6B21\u5237\u65B0","error.repo.tooLarge":"\u4ED3\u5E93\u5F52\u6863\u8D85\u8FC7 32 MiB\uFF0C\u8BF7\u9009\u62E9\u8F83\u5C0F\u7684\u6280\u80FD\u4ED3\u5E93\uFF1B\u5B50\u76EE\u5F55\u7B5B\u9009\u4E0D\u4F1A\u7F29\u5C0F\u4E0B\u8F7D\u91CF\u3002","error.repo.installState":"\u6280\u80FD\u6587\u4EF6\u5DF2\u4FDD\u7559\uFF0C\u4F46\u6765\u6E90\u72B6\u6001\u672A\u786E\u8BA4\u3002\u8BF7\u6062\u590D\u78C1\u76D8\u5199\u5165\u540E\u91CD\u65B0\u6253\u5F00\u4ED3\u5E93\u9875\uFF0C\u7CFB\u7EDF\u4F1A\u6821\u9A8C\u6587\u4EF6\u5E76\u6062\u590D\u8BB0\u5F55\u3002","error.repo.invalid":"\u4ED3\u5E93\u5730\u5740\u3001\u8DEF\u5F84\u6216\u5185\u5BB9\u65E0\u6548\uFF0C\u8BF7\u68C0\u67E5\u8F93\u5165\u53CA\u4ED3\u5E93\u5927\u5C0F\u3002","error.repo.network":"\u4ED3\u5E93\u8BBF\u95EE\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u6216\u7A0D\u540E\u91CD\u8BD5\u3002\u4E0A\u6B21\u5217\u8868\u5DF2\u4FDD\u7559\u3002","error.repo.state":"\u4ED3\u5E93\u72B6\u6001\u6587\u4EF6\u635F\u574F\u6216\u65E0\u6CD5\u8BFB\u53D6\uFF0C\u8BF7\u4FDD\u7559\u6587\u4EF6\u5E76\u4FEE\u590D\u540E\u91CD\u8BD5\u3002","error.repo.conflict":"\u540C\u540D\u6280\u80FD\u5DF2\u5B58\u5728\u6216\u5B89\u88C5\u5931\u8D25\uFF0C\u672C\u5730\u6587\u4EF6\u672A\u88AB\u8986\u76D6\u3002","error.repo.enableState":"\u6280\u80FD\u6587\u4EF6\u5DF2\u64A4\u9500\uFF0C\u4F46\u542F\u7528\u72B6\u6001\u65E0\u6CD5\u5199\u5165\u3002\u8BF7\u6062\u590D\u78C1\u76D8\u5199\u5165\u540E\u91CD\u8BD5\u5B89\u88C5\u3002"},en:{"repo.refreshing":"Checking updates\u2026","repo.refreshed":"Refresh and update check completed","repo.detailLoading":"Loading skill instructions\u2026","repo.local":"Local","repo.source":"Installed from","repo.update":"Update available","repo.review":"Review update","repo.rollback":"Restore previous version","repo.confirmUpdate":"Back up and update","repo.confirmRollback":"Back up and restore","repo.overwrite":"Back up local edits and replace","repo.modified":"Local edits detected. Replacement overwrites current files and keeps a complete backup for restoration.","repo.noChanges":"No file changes.","repo.added":"Added","repo.removed":"Removed","repo.modifiedFile":"Modified","repo.updating":"Updating\u2026","repo.updateProgress":"Verifying, backing up and replacing files. Please wait\u2026","repo.updateSuccess":"Updated. Previous version backed up.","repo.rollbackSuccess":"Previous version restored.","repo.manageUpdate":"Manage updates","error.repo.modified":"Local edits detected. Review and confirm replacement with a backup.","scope.repositories":"Repositories","repo.add":"Add repository","repo.manage":"Manage repositories","repo.refresh":"Refresh & check updates","repo.save":"Add and scan","repo.hint":"Discover skills in public GitHub repositories and install them to global DSH.","repo.footer":"Refresh checks repositories and skill updates without replacing local files. Historical backups are not cleaned automatically and use additional disk space.","repo.search":"Search repository skills","repo.all":"All repositories","repo.states":"All statuses","repo.available":"Available","repo.installed":"Installed","repo.conflict":"Name conflict","repo.invalid":"Invalid format","repo.install":"Install","repo.detail":"Details","repo.installing":"Installing\u2026","repo.installProgress":"Reading and verifying skill files. Please wait\u2026","repo.installSuccess":"Installed and enabled. Invoke it from the slash menu.","repo.empty":"No repositories yet. Add a public GitHub repository to get started.","repo.noSkills":"No matching skills. Refresh the repository or adjust your filters.","repo.url":"Repository URL","repo.ref":"Branch or tag (optional)","repo.directory":"Skill subdirectory (optional)","repo.defaultBranch":"Leave empty for the default branch","repo.directoryHint":"For example: skills. Leave empty to scan the repository.","repo.remove":"Remove repository","repo.removeHint":"This removes the subscription only. Installed skills are kept.","repo.removeConfirm":"Confirm removal","repo.cancel":"Cancel","repo.close":"Close","repo.loading":"Working\u2026","repo.success":"Completed","repo.installHint":"Skills may include scripts. Read the instructions and trust the source before installing. Resources are copied; scripts are not executed.","repo.commit":"Snapshot version","repo.notScanned":"Not scanned yet","repo.updated":"Last refreshed","error.repo.tooLarge":"Repository archive exceeds 32 MiB. Choose a smaller repository; a subdirectory filter does not reduce the download size.","error.repo.installState":"Skill files were preserved but source tracking could not be saved. Restore disk write access and reopen Repositories to verify files and recover the record.","error.repo.invalid":"Invalid repository URL, path or contents. Check the input and repository size.","error.repo.network":"Repository request failed. Check your connection or retry later. The previous catalog was kept.","error.repo.state":"Repository state is corrupt or unreadable. Preserve the file and repair it before retrying.","error.repo.conflict":"A skill with this name exists or installation failed. Local files were not overwritten.","error.repo.enableState":"The copied skill was removed because its enabled state could not be saved. Restore disk write access and install again."}},RM=".dssm-repo-spinner{display:inline-block;width:12px;height:12px;margin-right:6px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:dssm-repo-spin .8s linear infinite}@keyframes dssm-repo-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.dssm-repo-spinner{animation:none}}.dssm-repo-panel{display:flex;flex-direction:column;gap:12px;min-width:0}.dssm-repo-row{display:flex;align-items:center;gap:8px;padding:11px 13px;border-top:1px solid var(--dsw-alias-border-l1,#3a3a3a)}.dssm-repo-row:first-child{border-top:0}.dssm-repo-main{flex:1;min-width:0}.dssm-repo-description{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-tertiary,#a0a0a0);font-size:12px}.dssm-repo-filters{display:flex;gap:9px}.dssm-repo-filters>*{flex:1;min-width:0}.dssm-repo-panel .dssm-desc{margin:0}.dssm-repo-metadata{font-size:11px;color:var(--dsw-alias-label-tertiary,#a0a0a0);overflow-wrap:anywhere}.dssm-repo-panel .dssm-source{flex-shrink:0}@container(max-width:400px){.dssm-repo-row{flex-wrap:wrap}.dssm-repo-main{flex-basis:100%}}";function uv({react:e,Modal:t,Input:o,Button:r,SourceSelect:n,api:i,headers:a,translateError:s}){let l=e.createElement;return function({active:u,t:d,onInstalled:m}){let[p,f]=e.useState([]),[g,y]=e.useState(!1),[h,x]=e.useState(null),[b,v]=e.useState(null),[C,R]=e.useState(null),[S,E]=e.useState(""),[N,P]=e.useState(""),[$,I]=e.useState(""),[O,z]=e.useState({}),[M,B]=e.useState(null),[_,F]=e.useState({url:"",ref:"",subdirectory:""}),X=e.useRef(!1),H=e.useRef(!0);e.useEffect(()=>(H.current=!0,()=>{H.current=!1}),[]);async function V(){let K=await i("/repositories");H.current&&f(K.repositories||[])}function L(K){let Q=K;return d("format.locale")==="zh-CN"&&Q.code==="error.repo.invalid"?Q.error||Q.message||d(Q.code):s(d,K)||Q.message||String(K)}function G(K){return K.payload?L(K.payload):(K.key?d(K.key):K.text||"")+(K.name?" \xB7 "+K.name:"")}async function j(K,Q=!0,ge=!1){if(!X.current){X.current=!0,ge||(y(!0),v(null));try{await K(),Q&&await V()}catch(xe){let pe=xe;H.current&&v({error:!0,payload:pe})}finally{X.current=!1,H.current&&y(!1)}}}function D(K,Q){return i(`/repositories/${K}`,{method:"POST",headers:a,body:JSON.stringify(Q)})}async function W(K){let Q=await D("refresh",{id:K});Q.error&&v({error:!0,payload:Q.error})}function Y(K){return j(async()=>{let Q=!1;try{for(let ge=0;ge<K.length;ge++){let xe=K[ge];x({id:xe.id,name:xe.owner+"/"+xe.name,index:ge+1,total:K.length});let pe=await D("refresh",{id:xe.id});pe.error&&(Q=!0,v({error:!0,payload:pe.error}))}await V(),!Q&&H.current&&v({key:"repo.refreshed"})}finally{H.current&&x(null)}},!1)}function te(K,Q){return j(async()=>{B({type:"detail",repo:K,loading:!0});try{let ge=await D("detail",{id:K.id,path:Q.path});H.current&&B({type:"detail",detail:ge,repo:K})}catch(ge){let xe=ge;throw H.current&&B({type:"detail",repo:K,failed:!0}),xe}},!1,!0)}e.useEffect(()=>{u&&j(V,!1)},[u]);function Z(K,Q,ge=!0,xe=!1){return l(r,{type:ge?"default":"primary",disabled:g||xe,onClick:Q},d(K))}function U(K,Q=!1){let ge=h&&(!Q||h.id===K[0]?.id);return l(r,{type:"default",disabled:g||!K.length,"aria-busy":!!ge,onClick:()=>Y(K)},ge?l("span",{className:"dssm-repo-spinner","aria-hidden":!0}):null,d(ge?"repo.refreshing":"repo.refresh"))}function J(){X.current||B(null)}function q(K,Q){return j(async()=>{let ge={id:K.id,path:Q.path};R({...ge,pending:!0,key:"repo.installProgress"});try{await D("install",ge)}catch(xe){let pe=xe;throw H.current&&R({...ge,error:!0,payload:pe}),pe}H.current&&(R({...ge,key:"repo.installSuccess"}),v({key:"repo.installSuccess",name:Q.name}),m&&await m())})}function ie(K,Q,ge=!1){return j(async()=>{let xe=await D("preview",{id:K.id,path:Q.path,rollback:ge});B({type:ge?"rollback":"review",repo:K,skill:Q,detail:xe})})}function ne(){if(!M||M.type!=="review"&&M.type!=="rollback")return;let K=M,Q=K.type==="rollback";return j(async()=>{let ge={id:K.repo.id,path:K.skill.path};R({...ge,pending:!0,key:"repo.updateProgress"});try{await D(Q?"rollback":"update",{...ge,token:K.detail.token,overwrite:K.detail.localModified})}catch(pe){let ye=pe;throw H.current&&R({...ge,error:!0,payload:ye}),ye}if(!H.current)return;let xe=Q?"repo.rollbackSuccess":"repo.updateSuccess";R({...ge,key:xe}),v({key:xe}),B(null),m&&await m()})}let ce=l("div",{key:"repository-actions",className:"dssm-actions"},U(p),Z("repo.add",()=>{v(null),F({url:"",ref:"",subdirectory:""}),B({type:"add"})},!1),Z("repo.manage",()=>{v(null),B({type:"manage"})})),le=p.filter(K=>!N||K.id===N).map(K=>{let Q=S.trim().toLowerCase(),ge=K.skills.filter(ye=>(!$||ye.status===$)&&(!Q||`${ye.name} ${ye.description} ${K.owner}/${K.name}`.toLowerCase().includes(Q))),xe=O[K.id]===void 0?!!Q||!!$:O[K.id],pe="dssm-repo-"+K.id;return l("div",{key:K.id,className:"dssm-source"},l("div",{className:"dssm-source-head"},l("button",{type:"button",className:"dssm-source-head-main","aria-expanded":xe,"aria-controls":pe,onClick:()=>z({...O,[K.id]:!xe})},l("span",{className:"dssm-source-chevron","aria-hidden":!0},xe?"\u25BE":"\u25B8"),l("span",{className:"dssm-source-title"},K.owner+"/"+K.name),l("span",{className:"dssm-count"},ge.length)),l("span",{className:"dssm-repo-metadata"},K.commit?K.commit.slice(0,7):d("repo.notScanned"))),K.error?l("div",{className:"dssm-feedback dssm-error",role:"alert"},L(K.error)):null,l("div",{id:pe,className:"dssm-source-body",hidden:!xe},xe?ge.length?ge.map(ye=>l("div",{key:ye.path,className:"dssm-repo-row"},l("div",{className:"dssm-repo-main"},l("div",{className:"dssm-name"},ye.name),l("div",{className:"dssm-repo-description",title:ye.description},ye.description),C?.id===K.id&&C.path===ye.path?l("div",{className:"dssm-note"+(C.error?" dssm-error":""),role:C.error?"alert":"status","aria-live":"polite"},G(C)):null),Z("repo.detail",()=>te(K,ye)),ye.tracked&&(ye.updateAvailable||ye.status==="conflict")?Z("repo.review",()=>ie(K,ye)):null,ye.canRollback?Z("repo.rollback",()=>ie(K,ye,!0)):null,Z(C?.id===K.id&&C.path===ye.path&&C.pending?"repo.installing":ye.status==="available"?"repo.install":"repo."+ye.status,()=>q(K,ye),ye.status!=="available",ye.status!=="available"))):l("div",{className:"dssm-empty"},d("repo.noSkills")):null))});function ae(K,Q,ge,xe){return l(n,{label:d(K),value:Q,onChange:ge,options:[{value:"",label:d(K)},...xe.map(([pe,ye])=>({value:pe,label:ye}))]})}let de=b?l("div",{className:"dssm-feedback"+(b.error?" dssm-error":""),role:"status"},G(b)):null,ue=h?l("div",{className:"dssm-note",role:"status","aria-live":"polite"},d("repo.refreshing")+" "+h.index+"/"+h.total+" \xB7 "+h.name):null,Ce;if(M){let K;(M.type==="review"||M.type==="rollback")&&(K=l("div",{className:"dssm-repo-panel"},l("div",{className:"dssm-name"},M.skill.name),l("div",{className:"dssm-repo-metadata"},M.repo.owner+"/"+M.repo.name+" \xB7 "+M.detail.commit?.slice(0,7)),M.detail.localModified?l("p",{className:"dssm-feedback dssm-warning",role:"alert"},d("repo.modified")):null,M.detail.changes.length?l("ul",{style:{maxHeight:"240px",overflow:"auto",overflowWrap:"anywhere",paddingLeft:"20px"}},M.detail.changes.map(Q=>l("li",{key:Q.path},d("repo."+(Q.kind==="modified"?"modifiedFile":Q.kind))+" \xB7 "+Q.path))):l("p",null,d("repo.noChanges")),g?l("div",{role:"status"},d("repo.updateProgress")):null,de,l("div",{className:"dssm-modal-actions"},Z("repo.cancel",J),Z(M.detail.localModified?"repo.overwrite":M.type==="rollback"?"repo.confirmRollback":"repo.confirmUpdate",ne,!1,!M.detail.changes.length)))),M.type==="add"&&(K=l("form",{className:"dssm-form",onSubmit:Q=>{Q.preventDefault(),_.url.trim()&&j(async()=>{let ge=await D("add",_);await W(ge.id),B(null)})}},[["url","repo.url","https://github.com/owner/repo"],["ref","repo.ref",d("repo.defaultBranch")],["subdirectory","repo.directory",d("repo.directoryHint")]].map(([Q,ge,xe])=>l("label",{className:"dssm-field",key:Q},l("span",{className:"dssm-label"},d(ge)),l(o,{"aria-label":d(ge),value:_[Q],placeholder:xe,maxLength:Q==="url"?2048:512,required:Q==="url",disabled:g,onChange:pe=>F({..._,[Q]:pe.target.value})}))),de,l("div",{className:"dssm-modal-actions"},Z("repo.cancel",J),Z("repo.save",()=>{_.url.trim()&&j(async()=>{let Q=await D("add",_);await W(Q.id),B(null)})},!1,!_.url.trim())))),M.type==="manage"&&(K=l("div",{className:"dssm-repo-panel"},l("p",{className:"dssm-desc"},d("repo.removeHint")),ue,de,p.length?p.map(Q=>l("div",{key:Q.id,className:"dssm-repo-row"},l("div",{className:"dssm-repo-main"},l("div",{className:"dssm-name"},Q.owner+"/"+Q.name),l("div",{className:"dssm-note"},[Q.ref||d("repo.defaultBranch"),Q.subdirectory].filter(Boolean).join(" \xB7 ")),l("div",{className:"dssm-repo-metadata"},Q.refreshedAt?d("repo.updated")+" \xB7 "+new Date(Q.refreshedAt).toLocaleString(d("format.locale")):d("repo.notScanned"))),U([Q],!0),Z("repo.remove",()=>B({type:"remove",repo:Q})))):l("div",{className:"dssm-empty"},d("repo.empty")))),M.type==="remove"&&(K=l("div",null,l("p",{className:"dssm-desc"},M.repo.owner+"/"+M.repo.name),l("p",{className:"dssm-desc"},d("repo.removeHint")),de,l("div",{className:"dssm-modal-actions"},Z("repo.cancel",()=>B({type:"manage"})),Z("repo.removeConfirm",()=>j(async()=>{await D("remove",{id:M.repo.id}),N===M.repo.id&&P(""),B({type:"manage"})}),!1)))),M.type==="detail"&&M.detail&&(K=l("div",{className:"dssm-repo-panel"},l("div",{className:"dssm-name"},M.detail.name),l("p",{className:"dssm-desc"},M.detail.description),l("div",{className:"dssm-detail-path"},M.repo.owner+"/"+M.repo.name+" \xB7 "+M.detail.path),l("div",{className:"dssm-repo-metadata"},d("repo.commit")+" \xB7 "+M.detail.commit),l("p",{className:"dssm-note"},d("repo.installHint")),l(o.TextArea,{readOnly:!0,value:M.detail.body||"",autoSize:{minRows:6,maxRows:16}}))),M.type==="detail"&&!M.detail&&(K=l("div",{role:"status",className:"dssm-repo-panel"},M.loading?d("repo.detailLoading"):null,M.failed?de:null)),Ce=l(t,{title:d("repo."+(M.type==="remove"?"remove":M.type)),closeLabel:d("repo.close"),onClose:J},K)}let oe=l("div",{key:"repositories",id:"dssm-scope-panel",role:"tabpanel","aria-labelledby":"dssm-tab-repositories",className:"dssm-repo-panel","aria-busy":g},l("style",null,RM),l("p",{className:"dssm-desc"},d("repo.hint")),l(o,{className:"dssm-search",allowClear:!0,"aria-label":d("repo.search"),placeholder:d("repo.search"),value:S,onChange:K=>{E(K.target.value),z({})}}),l("div",{className:"dssm-repo-filters"},ae("repo.all",N,P,p.map(K=>[K.id,K.owner+"/"+K.name])),ae("repo.states",$,K=>{I(K),z({})},["available","installed","update","conflict","invalid"].map(K=>[K,d("repo."+K)]))),de,M?null:ue,g&&!h?l("div",{className:"dssm-note",role:"status"},d("repo.loading")):null,p.length?le:l("div",{className:"dssm-empty"},d("repo.empty")),l("p",{className:"dssm-note"},d("repo.footer")),Ce);return{actions:ce,content:oe,focusSource:(K,Q)=>{P(K.id),E(Q),I(""),z({[K.id]:!0})}}}}var ct=T(require("react"),1),ev=require("react-dom/client");var dv={locale:"zh-cn",global:{close:"\u5173\u95ED"},Modal:{okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",justOkText:"\u77E5\u9053\u4E86"}},wM={locale:"en",global:{close:"Close"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"}};function EM(e){return e==="en"?wM:dv}function Ql(){return typeof document>"u"?dv:EM(document.documentElement.lang.toLowerCase().startsWith("en")?"en":"zh")}var mv={aliceblue:"9ehhb",antiquewhite:"9sgk7",aqua:"1ekf",aquamarine:"4zsno",azure:"9eiv3",beige:"9lhp8",bisque:"9zg04",black:"0",blanchedalmond:"9zhe5",blue:"73",blueviolet:"5e31e",brown:"6g016",burlywood:"8ouiv",cadetblue:"3qba8",chartreuse:"4zshs",chocolate:"87k0u",coral:"9yvyo",cornflowerblue:"3xael",cornsilk:"9zjz0",crimson:"8l4xo",cyan:"1ekf",darkblue:"3v",darkcyan:"rkb",darkgoldenrod:"776yz",darkgray:"6mbhl",darkgreen:"jr4",darkgrey:"6mbhl",darkkhaki:"7ehkb",darkmagenta:"5f91n",darkolivegreen:"3bzfz",darkorange:"9yygw",darkorchid:"5z6x8",darkred:"5f8xs",darksalmon:"9441m",darkseagreen:"5lwgf",darkslateblue:"2th1n",darkslategray:"1ugcv",darkslategrey:"1ugcv",darkturquoise:"14up",darkviolet:"5rw7n",deeppink:"9yavn",deepskyblue:"11xb",dimgray:"442g9",dimgrey:"442g9",dodgerblue:"16xof",firebrick:"6y7tu",floralwhite:"9zkds",forestgreen:"1cisi",fuchsia:"9y70f",gainsboro:"8m8kc",ghostwhite:"9pq0v",goldenrod:"8j4f4",gold:"9zda8",gray:"50i2o",green:"pa8",greenyellow:"6senj",grey:"50i2o",honeydew:"9eiuo",hotpink:"9yrp0",indianred:"80gnw",indigo:"2xcoy",ivory:"9zldc",khaki:"9edu4",lavenderblush:"9ziet",lavender:"90c8q",lawngreen:"4vk74",lemonchiffon:"9zkct",lightblue:"6s73a",lightcoral:"9dtog",lightcyan:"8s1rz",lightgoldenrodyellow:"9sjiq",lightgray:"89jo3",lightgreen:"5nkwg",lightgrey:"89jo3",lightpink:"9z6wx",lightsalmon:"9z2ii",lightseagreen:"19xgq",lightskyblue:"5arju",lightslategray:"4nwk9",lightslategrey:"4nwk9",lightsteelblue:"6wau6",lightyellow:"9zlcw",lime:"1edc",limegreen:"1zcxe",linen:"9shk6",magenta:"9y70f",maroon:"4zsow",mediumaquamarine:"40eju",mediumblue:"5p",mediumorchid:"79qkz",mediumpurple:"5r3rv",mediumseagreen:"2d9ip",mediumslateblue:"4tcku",mediumspringgreen:"1di2",mediumturquoise:"2uabw",mediumvioletred:"7rn9h",midnightblue:"z980",mintcream:"9ljp6",mistyrose:"9zg0x",moccasin:"9zfzp",navajowhite:"9zest",navy:"3k",oldlace:"9wq92",olive:"50hz4",olivedrab:"472ub",orange:"9z3eo",orangered:"9ykg0",orchid:"8iu3a",palegoldenrod:"9bl4a",palegreen:"5yw0o",paleturquoise:"6v4ku",palevioletred:"8k8lv",papayawhip:"9zi6t",peachpuff:"9ze0p",peru:"80oqn",pink:"9z8wb",plum:"8nba5",powderblue:"6wgdi",purple:"4zssg",rebeccapurple:"3zk49",red:"9y6tc",rosybrown:"7cv4f",royalblue:"2jvtt",saddlebrown:"5fmkz",salmon:"9rvci",sandybrown:"9jn1c",seagreen:"1tdnb",seashell:"9zje6",sienna:"6973h",silver:"7ir40",skyblue:"5arjf",slateblue:"45e4t",slategray:"4e100",slategrey:"4e100",snow:"9zke2",springgreen:"1egv",steelblue:"2r1kk",tan:"87yx8",teal:"pds",thistle:"8ggk8",tomato:"9yqfb",turquoise:"2j4r4",violet:"9b10u",wheat:"9ld4j",white:"9zldr",whitesmoke:"9lhpx",yellow:"9zl6o",yellowgreen:"61fzm"};var Lo=Math.round;function Rg(e,t){let o=e.replace(/^[^(]*\((.*)/,"$1").replace(/\).*/,"").match(/\d*\.?\d+%?/g)||[],r=o.map(n=>parseFloat(n));for(let n=0;n<3;n+=1)r[n]=t(r[n]||0,o[n]||"",n);return o[3]?r[3]=o[3].includes("%")?r[3]/100:r[3]:r[3]=1,r}var pv=(e,t,o)=>o===0?e:e/100;function Jl(e,t){let o=t||255;return e>o?o:e<0?0:e}var lt=class e{isValid=!0;r=0;g=0;b=0;a=1;_h;_hsl_s;_hsv_s;_l;_v;_max;_min;_brightness;constructor(t){function o(r){return r[0]in t&&r[1]in t&&r[2]in t}if(t)if(typeof t=="string"){let n=function(i){return r.startsWith(i)},r=t.trim();if(/^#?[A-F\d]{3,8}$/i.test(r))this.fromHexString(r);else if(n("rgb"))this.fromRgbString(r);else if(n("hsl"))this.fromHslString(r);else if(n("hsv")||n("hsb"))this.fromHsvString(r);else{let i=mv[r.toLowerCase()];i&&this.fromHexString(parseInt(i,36).toString(16).padStart(6,"0"))}}else if(t instanceof e)this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a,this._h=t._h,this._hsl_s=t._hsl_s,this._hsv_s=t._hsv_s,this._l=t._l,this._v=t._v;else if(o("rgb"))this.r=Jl(t.r),this.g=Jl(t.g),this.b=Jl(t.b),this.a=typeof t.a=="number"?Jl(t.a,1):1;else if(o("hsl"))this.fromHsl(t);else if(o("hsv"))this.fromHsv(t);else throw new Error("@ant-design/fast-color: unsupported input "+JSON.stringify(t))}setR(t){return this._sc("r",t)}setG(t){return this._sc("g",t)}setB(t){return this._sc("b",t)}setA(t){return this._sc("a",t,1)}setHue(t){let o=this.toHsv();return o.h=t,this._c(o)}getLuminance(){function t(i){let a=i/255;return a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4)}let o=t(this.r),r=t(this.g),n=t(this.b);return .2126*o+.7152*r+.0722*n}getHue(){if(typeof this._h>"u"){let t=this.getMax()-this.getMin();t===0?this._h=0:this._h=Lo(60*(this.r===this.getMax()?(this.g-this.b)/t+(this.g<this.b?6:0):this.g===this.getMax()?(this.b-this.r)/t+2:(this.r-this.g)/t+4))}return this._h}getSaturation(){return this.getHSVSaturation()}getHSVSaturation(){if(typeof this._hsv_s>"u"){let t=this.getMax()-this.getMin();t===0?this._hsv_s=0:this._hsv_s=t/this.getMax()}return this._hsv_s}getHSLSaturation(){if(typeof this._hsl_s>"u"){let t=this.getMax()-this.getMin();if(t===0)this._hsl_s=0;else{let o=this.getLightness();this._hsl_s=t/255/(1-Math.abs(2*o-1))}}return this._hsl_s}getLightness(){return typeof this._l>"u"&&(this._l=(this.getMax()+this.getMin())/510),this._l}getValue(){return typeof this._v>"u"&&(this._v=this.getMax()/255),this._v}getBrightness(){return typeof this._brightness>"u"&&(this._brightness=(this.r*299+this.g*587+this.b*114)/1e3),this._brightness}darken(t=10){let o=this.getHue(),r=this.getSaturation(),n=this.getLightness()-t/100;return n<0&&(n=0),this._c({h:o,s:r,l:n,a:this.a})}lighten(t=10){let o=this.getHue(),r=this.getSaturation(),n=this.getLightness()+t/100;return n>1&&(n=1),this._c({h:o,s:r,l:n,a:this.a})}mix(t,o=50){let r=this._c(t),n=o/100,i=s=>(r[s]-this[s])*n+this[s],a={r:Lo(i("r")),g:Lo(i("g")),b:Lo(i("b")),a:Lo(i("a")*100)/100};return this._c(a)}tint(t=10){return this.mix({r:255,g:255,b:255,a:1},t)}shade(t=10){return this.mix({r:0,g:0,b:0,a:1},t)}onBackground(t){let o=this._c(t),r=this.a+o.a*(1-this.a),n=i=>Lo((this[i]*this.a+o[i]*o.a*(1-this.a))/r);return this._c({r:n("r"),g:n("g"),b:n("b"),a:r})}isDark(){return this.getBrightness()<128}isLight(){return this.getBrightness()>=128}equals(t){return this.r===t.r&&this.g===t.g&&this.b===t.b&&this.a===t.a}clone(){return this._c(this)}toHexString(){let t="#",o=(this.r||0).toString(16);t+=o.length===2?o:"0"+o;let r=(this.g||0).toString(16);t+=r.length===2?r:"0"+r;let n=(this.b||0).toString(16);if(t+=n.length===2?n:"0"+n,typeof this.a=="number"&&this.a>=0&&this.a<1){let i=Lo(this.a*255).toString(16);t+=i.length===2?i:"0"+i}return t}toHsl(){return{h:this.getHue(),s:this.getHSLSaturation(),l:this.getLightness(),a:this.a}}toHslString(){let t=this.getHue(),o=Lo(this.getHSLSaturation()*100),r=Lo(this.getLightness()*100);return this.a!==1?`hsla(${t},${o}%,${r}%,${this.a})`:`hsl(${t},${o}%,${r}%)`}toHsv(){return{h:this.getHue(),s:this.getHSVSaturation(),v:this.getValue(),a:this.a}}toRgb(){return{r:this.r,g:this.g,b:this.b,a:this.a}}toRgbString(){return this.a!==1?`rgba(${this.r},${this.g},${this.b},${this.a})`:`rgb(${this.r},${this.g},${this.b})`}toString(){return this.toRgbString()}_sc(t,o,r){let n=this.clone();return n[t]=Jl(o,r),n}_c(t){return new this.constructor(t)}getMax(){return typeof this._max>"u"&&(this._max=Math.max(this.r,this.g,this.b)),this._max}getMin(){return typeof this._min>"u"&&(this._min=Math.min(this.r,this.g,this.b)),this._min}fromHexString(t){let o=t.replace("#","");function r(n,i){return parseInt(o[n]+o[i||n],16)}o.length<6?(this.r=r(0),this.g=r(1),this.b=r(2),this.a=o[3]?r(3)/255:1):(this.r=r(0,1),this.g=r(2,3),this.b=r(4,5),this.a=o[6]?r(6,7)/255:1)}fromHsl({h:t,s:o,l:r,a:n}){let i=(t%360+360)%360;if(this._h=i,this._hsl_s=o,this._l=r,this.a=typeof n=="number"?n:1,o<=0){let p=Lo(r*255);this.r=p,this.g=p,this.b=p;return}let a=0,s=0,l=0,c=i/60,u=(1-Math.abs(2*r-1))*o,d=u*(1-Math.abs(c%2-1));c>=0&&c<1?(a=u,s=d):c>=1&&c<2?(a=d,s=u):c>=2&&c<3?(s=u,l=d):c>=3&&c<4?(s=d,l=u):c>=4&&c<5?(a=d,l=u):c>=5&&c<6&&(a=u,l=d);let m=r-u/2;this.r=Lo((a+m)*255),this.g=Lo((s+m)*255),this.b=Lo((l+m)*255)}fromHsv({h:t,s:o,v:r,a:n}){let i=(t%360+360)%360;this._h=i,this._hsv_s=o,this._v=r,this.a=typeof n=="number"?n:1;let a=Lo(r*255);if(this.r=a,this.g=a,this.b=a,o<=0)return;let s=i/60,l=Math.floor(s),c=s-l,u=Lo(r*(1-o)*255),d=Lo(r*(1-o*c)*255),m=Lo(r*(1-o*(1-c))*255);switch(l){case 0:this.g=m,this.b=u;break;case 1:this.r=d,this.b=u;break;case 2:this.r=u,this.b=m;break;case 3:this.r=u,this.g=d;break;case 4:this.r=m,this.g=u;break;case 5:default:this.g=u,this.b=d;break}}fromHsvString(t){let o=Rg(t,pv);this.fromHsv({h:o[0],s:o[1],v:o[2],a:o[3]})}fromHslString(t){let o=Rg(t,pv);this.fromHsl({h:o[0],s:o[1],l:o[2],a:o[3]})}fromRgbString(t){let o=Rg(t,(r,n)=>n.includes("%")?Lo(r/100*255):r);this.r=o[0],this.g=o[1],this.b=o[2],this.a=o[3]}};var Uu=2,fv=.16,$M=.05,NM=.05,PM=.15,yv=5,xv=4,IM=[{index:7,amount:15},{index:6,amount:25},{index:5,amount:30},{index:5,amount:45},{index:5,amount:65},{index:5,amount:85},{index:4,amount:90},{index:3,amount:95},{index:2,amount:97},{index:1,amount:98}];function gv(e,t,o){let r;return Math.round(e.h)>=60&&Math.round(e.h)<=240?r=o?Math.round(e.h)-Uu*t:Math.round(e.h)+Uu*t:r=o?Math.round(e.h)+Uu*t:Math.round(e.h)-Uu*t,r<0?r+=360:r>=360&&(r-=360),r}function hv(e,t,o){if(e.h===0&&e.s===0)return e.s;let r;return o?r=e.s-fv*t:t===xv?r=e.s+fv:r=e.s+$M*t,r>1&&(r=1),o&&t===yv&&r>.1&&(r=.1),r<.06&&(r=.06),Math.round(r*100)/100}function bv(e,t,o){let r;return o?r=e.v+NM*t:r=e.v-PM*t,r=Math.max(0,Math.min(1,r)),Math.round(r*100)/100}function Dn(e,t={}){let o=[],r=new lt(e),n=r.toHsv();for(let i=yv;i>0;i-=1){let a=new lt({h:gv(n,i,!0),s:hv(n,i,!0),v:bv(n,i,!0)});o.push(a)}o.push(r);for(let i=1;i<=xv;i+=1){let a=new lt({h:gv(n,i),s:hv(n,i),v:bv(n,i)});o.push(a)}return t.theme==="dark"?IM.map(({index:i,amount:a})=>new lt(t.backgroundColor||"#141414").mix(o[i],a).toHexString()):o.map(i=>i.toHexString())}var si={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1677FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},wg=["#fff1f0","#ffccc7","#ffa39e","#ff7875","#ff4d4f","#f5222d","#cf1322","#a8071a","#820014","#5c0011"];wg.primary=wg[5];var Eg=["#fff2e8","#ffd8bf","#ffbb96","#ff9c6e","#ff7a45","#fa541c","#d4380d","#ad2102","#871400","#610b00"];Eg.primary=Eg[5];var $g=["#fff7e6","#ffe7ba","#ffd591","#ffc069","#ffa940","#fa8c16","#d46b08","#ad4e00","#873800","#612500"];$g.primary=$g[5];var Ng=["#fffbe6","#fff1b8","#ffe58f","#ffd666","#ffc53d","#faad14","#d48806","#ad6800","#874d00","#613400"];Ng.primary=Ng[5];var Pg=["#feffe6","#ffffb8","#fffb8f","#fff566","#ffec3d","#fadb14","#d4b106","#ad8b00","#876800","#614700"];Pg.primary=Pg[5];var Ig=["#fcffe6","#f4ffb8","#eaff8f","#d3f261","#bae637","#a0d911","#7cb305","#5b8c00","#3f6600","#254000"];Ig.primary=Ig[5];var Tg=["#f6ffed","#d9f7be","#b7eb8f","#95de64","#73d13d","#52c41a","#389e0d","#237804","#135200","#092b00"];Tg.primary=Tg[5];var Mg=["#e6fffb","#b5f5ec","#87e8de","#5cdbd3","#36cfc9","#13c2c2","#08979c","#006d75","#00474f","#002329"];Mg.primary=Mg[5];var Og=["#e6f4ff","#bae0ff","#91caff","#69b1ff","#4096ff","#1677ff","#0958d9","#003eb3","#002c8c","#001d66"];Og.primary=Og[5];var Ag=["#f0f5ff","#d6e4ff","#adc6ff","#85a5ff","#597ef7","#2f54eb","#1d39c4","#10239e","#061178","#030852"];Ag.primary=Ag[5];var Lg=["#f9f0ff","#efdbff","#d3adf7","#b37feb","#9254de","#722ed1","#531dab","#391085","#22075e","#120338"];Lg.primary=Lg[5];var Dg=["#fff0f6","#ffd6e7","#ffadd2","#ff85c0","#f759ab","#eb2f96","#c41d7f","#9e1068","#780650","#520339"];Dg.primary=Dg[5];var zg=["#a6a6a6","#999999","#8c8c8c","#808080","#737373","#666666","#404040","#1a1a1a","#000000","#000000"];zg.primary=zg[5];var Ku={red:wg,volcano:Eg,orange:$g,gold:Ng,yellow:Pg,lime:Ig,green:Tg,cyan:Mg,blue:Og,geekblue:Ag,purple:Lg,magenta:Dg,grey:zg},Cv=["#2a1215","#431418","#58181c","#791a1f","#a61d24","#d32029","#e84749","#f37370","#f89f9a","#fac8c3"];Cv.primary=Cv[5];var vv=["#2b1611","#441d12","#592716","#7c3118","#aa3e19","#d84a1b","#e87040","#f3956a","#f8b692","#fad4bc"];vv.primary=vv[5];var Sv=["#2b1d11","#442a11","#593815","#7c4a15","#aa6215","#d87a16","#e89a3c","#f3b765","#f8cf8d","#fae3b7"];Sv.primary=Sv[5];var Rv=["#2b2111","#443111","#594214","#7c5914","#aa7714","#d89614","#e8b339","#f3cc62","#f8df8b","#faedb5"];Rv.primary=Rv[5];var wv=["#2b2611","#443b11","#595014","#7c6e14","#aa9514","#d8bd14","#e8d639","#f3ea62","#f8f48b","#fafab5"];wv.primary=wv[5];var Ev=["#1f2611","#2e3c10","#3e4f13","#536d13","#6f9412","#8bbb11","#a9d134","#c9e75d","#e4f88b","#f0fab5"];Ev.primary=Ev[5];var $v=["#162312","#1d3712","#274916","#306317","#3c8618","#49aa19","#6abe39","#8fd460","#b2e58b","#d5f2bb"];$v.primary=$v[5];var Nv=["#112123","#113536","#144848","#146262","#138585","#13a8a8","#33bcb7","#58d1c9","#84e2d8","#b2f1e8"];Nv.primary=Nv[5];var Pv=["#111a2c","#112545","#15325b","#15417e","#1554ad","#1668dc","#3c89e8","#65a9f3","#8dc5f8","#b7dcfa"];Pv.primary=Pv[5];var Iv=["#131629","#161d40","#1c2755","#203175","#263ea0","#2b4acb","#5273e0","#7f9ef3","#a8c1f8","#d2e0fa"];Iv.primary=Iv[5];var Tv=["#1a1325","#24163a","#301c4d","#3e2069","#51258f","#642ab5","#854eca","#ab7ae0","#cda8f0","#ebd7fa"];Tv.primary=Tv[5];var Mv=["#291321","#40162f","#551c3b","#75204f","#a02669","#cb2b83","#e0529c","#f37fb7","#f8a8cc","#fad2e3"];Mv.primary=Mv[5];var Ov=["#151515","#1f1f1f","#2d2d2d","#393939","#494949","#5a5a5a","#6a6a6a","#7b7b7b","#888888","#969696"];Ov.primary=Ov[5];var Fo=["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"];var ec={blue:"#1677FF",purple:"#722ED1",cyan:"#13C2C2",green:"#52C41A",magenta:"#EB2F96",pink:"#EB2F96",red:"#F5222D",orange:"#FA8C16",yellow:"#FADB14",volcano:"#FA541C",geekblue:"#2F54EB",gold:"#FAAD14",lime:"#A0D911"},TM={...ec,colorPrimary:"#1677ff",colorSuccess:"#52c41a",colorWarning:"#faad14",colorError:"#ff4d4f",colorInfo:"#1677ff",colorLink:"",colorTextBase:"",colorBgBase:"",fontFamily:`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
5
5
  'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
6
6
  'Noto Color Emoji'`,fontFamilyCode:"'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace",fontSize:14,lineWidth:1,lineType:"solid",motionUnit:.1,motionBase:0,motionEaseOutCirc:"cubic-bezier(0.08, 0.82, 0.17, 1)",motionEaseInOutCirc:"cubic-bezier(0.78, 0.14, 0.15, 0.86)",motionEaseOut:"cubic-bezier(0.215, 0.61, 0.355, 1)",motionEaseInOut:"cubic-bezier(0.645, 0.045, 0.355, 1)",motionEaseOutBack:"cubic-bezier(0.12, 0.4, 0.29, 1.46)",motionEaseInBack:"cubic-bezier(0.71, -0.46, 0.88, 0.6)",motionEaseInQuint:"cubic-bezier(0.755, 0.05, 0.855, 0.06)",motionEaseOutQuint:"cubic-bezier(0.23, 1, 0.32, 1)",borderRadius:6,sizeUnit:4,sizeStep:4,sizePopupArrow:16,controlHeight:32,zIndexBase:0,zIndexPopupBase:1e3,opacityImage:1,wireframe:!1,focusOutline:!0,motion:!0},li=TM;function tc(e,{generateColorPalettes:t,generateNeutralColorPalettes:o}){let{colorSuccess:r,colorWarning:n,colorError:i,colorInfo:a,colorPrimary:s,colorBgBase:l,colorTextBase:c}=e,u=t(s),d=t(r),m=t(n),p=t(i),f=t(a),g=o(l,c),y=e.colorLink||e.colorInfo,h=t(y),x=new lt(p[1]).mix(new lt(p[3]),50).toHexString(),b={};return Fo.forEach(v=>{let C=e[v];if(C){let R=t(C);b[`${v}Hover`]=R[5],b[`${v}Active`]=R[7]}}),{...g,colorPrimaryBg:u[1],colorPrimaryBgHover:u[2],colorPrimaryBorder:u[3],colorPrimaryBorderHover:u[4],colorPrimaryHover:u[5],colorPrimary:u[6],colorPrimaryActive:u[7],colorPrimaryTextHover:u[8],colorPrimaryText:u[9],colorPrimaryTextActive:u[10],colorSuccessBg:d[1],colorSuccessBgHover:d[2],colorSuccessBorder:d[3],colorSuccessBorderHover:d[4],colorSuccessHover:d[4],colorSuccess:d[6],colorSuccessActive:d[7],colorSuccessTextHover:d[8],colorSuccessText:d[9],colorSuccessTextActive:d[10],colorErrorBg:p[1],colorErrorBgHover:p[2],colorErrorBgFilledHover:x,colorErrorBgActive:p[3],colorErrorBorder:p[3],colorErrorBorderHover:p[4],colorErrorHover:p[5],colorError:p[6],colorErrorActive:p[7],colorErrorTextHover:p[8],colorErrorText:p[9],colorErrorTextActive:p[10],colorWarningBg:m[1],colorWarningBgHover:m[2],colorWarningBorder:m[3],colorWarningBorderHover:m[4],colorWarningHover:m[4],colorWarning:m[6],colorWarningActive:m[7],colorWarningTextHover:m[8],colorWarningText:m[9],colorWarningTextActive:m[10],colorInfoBg:f[1],colorInfoBgHover:f[2],colorInfoBorder:f[3],colorInfoBorderHover:f[4],colorInfoHover:f[4],colorInfo:f[6],colorInfoActive:f[7],colorInfoTextHover:f[8],colorInfoText:f[9],colorInfoTextActive:f[10],colorLinkHover:h[4],colorLink:h[6],colorLinkActive:h[7],...b,colorBgMask:new lt("#000").setA(.45).toRgbString(),colorWhite:"#fff"}}var MM=e=>{let t=e,o=e,r=e,n=e;return e<6&&e>=5?t=e+1:e<16&&e>=6?t=e+2:e>=16&&(t=16),e<7&&e>=5?o=4:e<8&&e>=7?o=5:e<14&&e>=8?o=6:e<16&&e>=14?o=7:e>=16&&(o=8),e<6&&e>=2?r=1:e>=6&&(r=2),e>4&&e<8?n=4:e>=8&&(n=6),{borderRadius:e,borderRadiusXS:r,borderRadiusSM:o,borderRadiusLG:t,borderRadiusOuter:n}},Av=MM;function kg(e){let{motionUnit:t,motionBase:o,borderRadius:r,lineWidth:n}=e;return{motionDurationFast:`${(o+t).toFixed(1)}s`,motionDurationMid:`${(o+t*2).toFixed(1)}s`,motionDurationSlow:`${(o+t*3).toFixed(1)}s`,lineWidthBold:n+1,...Av(r)}}var OM=e=>{let{controlHeight:t}=e;return{controlHeightSM:t*.75,controlHeightXS:t*.5,controlHeightLG:t*1.25}},Lv=OM;function Cs(e){return(e+8)/e}function Bg(e){let t=Array.from({length:10}).map((o,r)=>{let n=r-1,i=e*Math.E**(n/5),a=r>1?Math.floor(i):Math.ceil(i);return Math.floor(a/2)*2});return t[1]=e,t.map(o=>({size:o,lineHeight:Cs(o)}))}var AM=e=>{let t=Bg(e),o=t.map(u=>u.size),r=t.map(u=>u.lineHeight),n=o[1],i=o[0],a=o[2],s=r[1],l=r[0],c=r[2];return{fontSizeSM:i,fontSize:n,fontSizeLG:a,fontSizeXL:o[3],fontSizeHeading1:o[6],fontSizeHeading2:o[5],fontSizeHeading3:o[4],fontSizeHeading4:o[3],fontSizeHeading5:o[2],lineHeight:s,lineHeightLG:c,lineHeightSM:l,fontHeight:Math.round(s*n),fontHeightLG:Math.round(c*a),fontHeightSM:Math.round(l*i),lineHeightHeading1:r[6],lineHeightHeading2:r[5],lineHeightHeading3:r[4],lineHeightHeading4:r[3],lineHeightHeading5:r[2]}},Dv=AM;function Fg(e){let{sizeUnit:t,sizeStep:o}=e;return{sizeXXL:t*(o+8),sizeXL:t*(o+4),sizeLG:t*(o+2),sizeMD:t*(o+1),sizeMS:t*o,size:t*o,sizeSM:t*(o-1),sizeXS:t*(o-2),sizeXXS:t*(o-3)}}var Pr=(e,t)=>new lt(e).setA(t).toRgbString(),$a=(e,t)=>new lt(e).darken(t).toHexString();var zv=e=>{let t=Dn(e);return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[4],6:t[5],7:t[6],8:t[4],9:t[5],10:t[6]}},kv=(e,t,o)=>{let r=e||"#fff",n=t||"#000";return{colorBgBase:r,colorTextBase:n,colorShadow:o||"#000",colorText:Pr(n,.88),colorTextSecondary:Pr(n,.65),colorTextTertiary:Pr(n,.45),colorTextQuaternary:Pr(n,.25),colorFill:Pr(n,.15),colorFillSecondary:Pr(n,.06),colorFillTertiary:Pr(n,.04),colorFillQuaternary:Pr(n,.02),colorBgSolid:Pr(n,1),colorBgSolidHover:Pr(n,.75),colorBgSolidActive:Pr(n,.95),colorBgLayout:$a(r,4),colorBgContainer:$a(r,0),colorBgElevated:$a(r,0),colorBgSpotlight:Pr(n,.85),colorBgBlur:"transparent",colorBorder:$a(r,15),colorBorderDisabled:$a(r,15),colorBorderSecondary:$a(r,6)}};function Na(e){si.pink=si.magenta,Ku.pink=Ku.magenta;let t=Object.keys(ec).map(o=>{let r=e[o]===si[o]?Ku[o]:Dn(e[o]);return Array.from({length:10},()=>1).reduce((n,i,a)=>(n[`${o}-${a+1}`]=r[a],n[`${o}${a+1}`]=r[a],n),{})}).reduce((o,r)=>(o={...o,...r},o),{});return{...e,...t,...tc(e,{generateColorPalettes:zv,generateNeutralColorPalettes:kv}),...Dv(e.fontSize),...Fg(e),...Lv(e),...kg(e)}}var Ir=(e,t)=>new lt(e).setA(t).toRgbString(),Ai=(e,t)=>new lt(e).lighten(t).toHexString();var Hg=e=>{let t=Dn(e,{theme:"dark"});return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[6],6:t[5],7:t[4],8:t[6],9:t[5],10:t[4]}},Bv=(e,t,o)=>{let r=e||"#000",n=t||"#fff";return{colorBgBase:r,colorTextBase:n,colorShadow:o||"rgba(255, 255, 255, 0.2)",colorText:Ir(n,.85),colorTextSecondary:Ir(n,.65),colorTextTertiary:Ir(n,.45),colorTextQuaternary:Ir(n,.25),colorFill:Ir(n,.18),colorFillSecondary:Ir(n,.12),colorFillTertiary:Ir(n,.08),colorFillQuaternary:Ir(n,.04),colorBgSolid:Ir(n,.95),colorBgSolidHover:Ir(n,1),colorBgSolidActive:Ir(n,.9),colorBgElevated:Ai(r,12),colorBgContainer:Ai(r,8),colorBgLayout:Ai(r,0),colorBgSpotlight:Ai(r,26),colorBgBlur:Ir(n,.04),colorBorder:Ai(r,26),colorBorderDisabled:Ai(r,26),colorBorderSecondary:Ai(r,19)}};var LM=(e,t)=>{let o=Object.keys(ec).map(a=>{let s=Dn(e[a],{theme:"dark"});return Array.from({length:10},()=>1).reduce((l,c,u)=>(l[`${a}-${u+1}`]=s[u],l[`${a}${u+1}`]=s[u],l),{})}).reduce((a,s)=>(a={...a,...s},a),{}),r=t??Na(e),n=tc(e,{generateColorPalettes:Hg,generateNeutralColorPalettes:Bv}),i=Fo.reduce((a,s)=>{let l=e[s];if(l){let c=Hg(l);a[`${s}Hover`]=c[7],a[`${s}Active`]=c[5]}return a},{});return{...r,...o,...n,...i,colorPrimaryBg:n.colorPrimaryBorder,colorPrimaryBgHover:n.colorPrimaryBorderHover}},Fv=LM;var _g=T(require("react"),1);function Hv(){return typeof document>"u"?!1:document.documentElement.hasAttribute("data-ds-dark-theme")||document.body?.hasAttribute("data-ds-dark-theme")===!0}function _v(){let[e,t]=_g.default.useState(Hv);return _g.default.useEffect(()=>{let o=()=>t(Hv());o();let r=new MutationObserver(o);return r.observe(document.documentElement,{attributes:!0,attributeFilter:["data-ds-dark-theme"]}),document.body&&r.observe(document.body,{attributes:!0,attributeFilter:["data-ds-dark-theme"]}),()=>r.disconnect()},[]),e}var Jt=T(require("react"));var qu=T(require("react")),DM=e=>{let t=qu.useRef(e);return t.current=e,qu.useCallback((...r)=>t.current?.(...r),[])},Me=DM;var vs=T(require("react"));function Xt(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var Vv=Xt()?vs.useLayoutEffect:vs.useEffect,zM=(e,t)=>{let o=vs.useRef(!0);Vv(()=>e(o.current),t),Vv(()=>(o.current=!1,()=>{o.current=!0}),[])};var et=zM;var Ss=T(require("react")),kM=e=>{let t=Ss.useRef(!1),[o,r]=Ss.useState(e);Ss.useEffect(()=>(t.current=!1,()=>{t.current=!0}),[]);function n(i,a){a&&t.current||r(i)}return[o,n]},Rs=kM;var Wv=require("react");function mt(e,t){let[o,r]=(0,Wv.useState)(e),n=t!==void 0?t:o;return et(i=>{i||r(t)},[t]),[n,r]}var Gu=T(require("react"));var Uv=e=>+setTimeout(e,16),Kv=e=>clearTimeout(e);typeof window<"u"&&"requestAnimationFrame"in window&&(Uv=e=>window.requestAnimationFrame(e),Kv=e=>window.cancelAnimationFrame(e));var jv=0,Vg=new Map;function qv(e){Vg.delete(e)}var Gv=(e,t=1)=>{jv+=1;let o=jv;function r(n){if(n===0)qv(o),e();else{let i=Uv(()=>{r(n-1)});Vg.set(o,i)}}return r(t),o};Gv.cancel=e=>{let t=Vg.get(e);return qv(e),Kv(t)};var Qe=Gv;function Xu(e){let[t,o]=Gu.useState(e),r=Gu.useRef(null),n=Me(()=>{if(r.current){let[a,s]=r.current;a?Qe.cancel(s):clearTimeout(s),r.current=null}}),i=Me((a,s)=>{let l=s||{frame:1};n(),l===!0?o(a):"ms"in l?r.current=[!1,setTimeout(()=>o(a),l.ms)]:r.current=[!0,Qe(()=>o(a),l.frame)]});return[t,i]}var oc=T(require("react"));function FM(){return{...oc}.useId}var Xv=0;var Yv=FM(),xo=Yv?function(t){let o=Yv();return t||o}:function(t){let[o,r]=oc.useState("ssr-id");return oc.useEffect(()=>{let n=Xv;Xv+=1,r(`rc_unique_${n}`)},[]),t||o};var Zv=T(require("react"));function Tr(e,t,o){let r=Zv.useRef({});return(!("value"in r.current)||o(r.current.condition,t))&&(r.current.value=e(),r.current.condition=t),r.current.value}var Yu=T(require("react"));function HM(e){let[,t]=Yu.useReducer(i=>i+1,0),o=Yu.useRef(e),r=Me(()=>o.current),n=Me(i=>{o.current=typeof i=="function"?i(o.current):i,t()});return[r,n]}var Wg=HM;var sd=require("react"),nc=T(tS());var VM=Symbol.for("react.element"),WM=Symbol.for("react.transitional.element"),jM=Symbol.for("react.fragment");function rc(e){return e&&typeof e=="object"&&(e.$$typeof===VM||e.$$typeof===WM)&&e.type===jM}var UM=Number(sd.version.split(".")[0]),oS=(e,t)=>{typeof e=="function"?e(t):typeof e=="object"&&e&&"current"in e&&(e.current=t)},Mt=(...e)=>{let t=e.filter(Boolean);return t.length<=1?t[0]:o=>{e.forEach(r=>{oS(r,o)})}},Ho=(...e)=>Tr(()=>Mt(...e),e,(t,o)=>t.length!==o.length||t.every((r,n)=>r!==o[n])),Wr=e=>{if(!e)return!1;if(Kg(e)&&UM>=19)return!0;let t=(0,nc.isMemo)(e)?e.type.type:e.type;return!(typeof t=="function"&&!t.prototype?.render&&t.$$typeof!==nc.ForwardRef||typeof e=="function"&&!e.prototype?.render&&e.$$typeof!==nc.ForwardRef)};function Kg(e){return(0,sd.isValidElement)(e)&&!rc(e)}var ic=e=>Kg(e)&&Wr(e),Eo=e=>{if(e&&Kg(e)){let t=e;return t.props.propertyIsEnumerable("ref")?t.props.ref:t.ref}return null};function Pa(e,t){if(!e)return!1;if(e.contains)return e.contains(t);let o=t;for(;o;){if(o===e)return!0;o=o.parentNode}return!1}var rS="data-rc-order",nS="data-rc-priority",KM="rc-util-key",qg=new Map;function iS({mark:e}={}){return e?e.startsWith("data-")?e:`data-${e}`:KM}function ld(e){return e.attachTo?e.attachTo:document.querySelector("head")||document.body}function qM(e){return e==="queue"?"prependQueue":e?"prepend":"append"}function Gg(e){return Array.from((qg.get(e)||e).children).filter(t=>t.tagName==="STYLE")}function Xg(e,t={}){if(!Xt())return null;let{csp:o,prepend:r,priority:n=0}=t,i=qM(r),a=i==="prependQueue",s=document.createElement("style");s.setAttribute(rS,i),a&&n&&s.setAttribute(nS,`${n}`),o?.nonce&&(s.nonce=o?.nonce),s.innerHTML=e;let l=ld(t),{firstChild:c}=l;if(r){if(a){let u=(t.styles||Gg(l)).filter(d=>{if(!["prepend","prependQueue"].includes(d.getAttribute(rS)))return!1;let m=Number(d.getAttribute(nS)||0);return n>=m});if(u.length)return l.insertBefore(s,u[u.length-1].nextSibling),s}l.insertBefore(s,c)}else l.appendChild(s);return s}function aS(e,t={}){let{styles:o}=t;return o||=Gg(ld(t)),o.find(r=>r.getAttribute(iS(t))===e)}function fn(e,t={}){let o=aS(e,t);o&&ld(t).removeChild(o)}function GM(e,t){let o=qg.get(e);if(!o||!Pa(document,o)){let r=Xg("",t),{parentNode:n}=r;qg.set(e,n),e.removeChild(r)}}function pr(e,t,o={}){let r=ld(o),n=Gg(r),i={...o,styles:n};GM(r,i);let a=aS(t,i);if(a)return i.csp?.nonce&&a.nonce!==i.csp?.nonce&&(a.nonce=i.csp?.nonce),a.innerHTML!==e&&(a.innerHTML=e),a;let s=Xg(e,i);return s.setAttribute(iS(i),t),s}function zn(e){return e instanceof HTMLElement||e instanceof SVGElement}function Mr(e){return e&&typeof e=="object"&&zn(e.nativeElement)?e.nativeElement:zn(e)?e:null}var Di=require("react");var Ia=e=>{if(!e)return!1;if(e instanceof Element){if(e.offsetParent)return!0;if(e.getBBox){let{width:t,height:o}=e.getBBox();if(t||o)return!0}if(e.getBoundingClientRect){let{width:t,height:o}=e.getBoundingClientRect();if(t||o)return!0}}return!1};function sS(e,t=!1){if(Ia(e)){let o=e.nodeName.toLowerCase(),r=["input","select","textarea","button"].includes(o)||e.isContentEditable||o==="a"&&!!e.getAttribute("href"),n=e.getAttribute("tabindex"),i=Number(n),a=null;return n&&!Number.isNaN(i)?a=i:r&&a===null&&(a=0),r&&e.disabled&&(a=null),a!==null&&(a>=0||t&&a<0)}return!1}function ac(e,t=!1){let o=[...e.querySelectorAll("*")].filter(r=>sS(r,t));return sS(e,t)&&o.unshift(e),o}function Es(e,t){if(!e)return;e.focus(t);let{cursor:o}=t||{};if(o&&(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)){let r=e.value.length;switch(o){case"start":e.setSelectionRange(0,0);break;case"end":e.setSelectionRange(r,r);break;default:e.setSelectionRange(0,r)}}}var ws=null,Li=[],Zg=new Map,Qg=new Map;function Jg(){return Li[Li.length-1]}function XM(e){let t=Jg();if(e&&t){let o;for(let[n,i]of Zg.entries())if(i===t){o=n;break}let r=Qg.get(o);return!!r&&(r===e||r.contains(e))}return!1}function YM(e){let{activeElement:t}=document;return e===t||e.contains(t)}function Yg(){let e=Jg(),{activeElement:t}=document;if(!XM(t))if(e&&!YM(e)){let o=ac(e);(o.includes(ws)?ws:o[0])?.focus({preventScroll:!0})}else ws=t}function lS(e){if(e.key==="Tab"){let{activeElement:t}=document,o=Jg(),r=ac(o),n=r[r.length-1];e.shiftKey&&t===r[0]?ws=n:!e.shiftKey&&t===n&&(ws=r[0])}}function cS(e,t){return e&&(Zg.set(t,e),Li=Li.filter(o=>o!==e),Li.push(e),window.addEventListener("focusin",Yg),window.addEventListener("keydown",lS,!0),Yg()),()=>{ws=null,Li=Li.filter(o=>o!==e),Zg.delete(t),Qg.delete(t),Li.length===0&&(window.removeEventListener("focusin",Yg),window.removeEventListener("keydown",lS,!0))}}function ZM(e,t){let o=(0,Di.useRef)(0),[r,n]=(0,Di.useState)(0);(0,Di.useEffect)(()=>{o.current=0},t),(0,Di.useEffect)(()=>{let[i,a]=e(o.current);return a||(o.current+=1,n(s=>s+1)),i},[...t,r])}function eh(e,t){let o=xo(),r=(0,Di.useRef)(t);return r.current=t,ZM(a=>{if(!e)return[void 0,!0];let s=r.current();return s?[cS(s,o),!0]:[void 0,a>=1]},[o,e]),[a=>{a&&Qg.set(o,a)}]}function uS(e){return e?.getRootNode?.()}function QM(e){return uS(e)instanceof ShadowRoot}function $s(e){return QM(e)?uS(e):null}var Xe={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(t){let{keyCode:o}=t;if(t.altKey&&!t.ctrlKey||t.metaKey||o>=Xe.F1&&o<=Xe.F12)return!1;switch(o){case Xe.ALT:case Xe.CAPS_LOCK:case Xe.CONTEXT_MENU:case Xe.CTRL:case Xe.DOWN:case Xe.END:case Xe.ESC:case Xe.HOME:case Xe.INSERT:case Xe.LEFT:case Xe.MAC_FF_META:case Xe.META:case Xe.NUMLOCK:case Xe.NUM_CENTER:case Xe.PAGE_DOWN:case Xe.PAGE_UP:case Xe.PAUSE:case Xe.PRINT_SCREEN:case Xe.RIGHT:case Xe.SHIFT:case Xe.UP:case Xe.WIN_KEY:case Xe.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(t){if(t>=Xe.ZERO&&t<=Xe.NINE||t>=Xe.NUM_ZERO&&t<=Xe.NUM_MULTIPLY||t>=Xe.A&&t<=Xe.Z||window.navigator.userAgent.indexOf("WebKit")!==-1&&t===0)return!0;switch(t){case Xe.SPACE:case Xe.QUESTION_MARK:case Xe.NUM_PLUS:case Xe.NUM_MINUS:case Xe.NUM_PERIOD:case Xe.NUM_DIVISION:case Xe.SEMICOLON:case Xe.DASH:case Xe.EQUALS:case Xe.COMMA:case Xe.PERIOD:case Xe.SLASH:case Xe.APOSTROPHE:case Xe.SINGLE_QUOTE:case Xe.OPEN_SQUARE_BRACKET:case Xe.BACKSLASH:case Xe.CLOSE_SQUARE_BRACKET:return!0;default:return!1}},isEditableTarget:function(t){let o=t.target;if(!(o instanceof HTMLElement))return!1;let r=o.tagName;return!!(r==="INPUT"||r==="TEXTAREA"||r==="SELECT"||o.isContentEditable)}},$e=Xe;function JM(e){let t=`rc-scrollbar-measure-${Math.random().toString(36).substring(7)}`,o=document.createElement("div");o.id=t;let r=o.style;r.position="absolute",r.left="0",r.top="0",r.width="100px",r.height="100px",r.overflow="scroll";let n,i;if(e){let l=getComputedStyle(e);r.scrollbarColor=l.scrollbarColor,r.scrollbarWidth=l.scrollbarWidth;let c=getComputedStyle(e,"::-webkit-scrollbar"),u=parseInt(c.width,10),d=parseInt(c.height,10);try{let m=u?`width: ${c.width};`:"",p=d?`height: ${c.height};`:"";pr(`
7
7
  #${t}::-webkit-scrollbar {
@@ -2,7 +2,7 @@ import { promises as fs } from "node:fs";
2
2
  import { join } from "node:path";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import { unzipSync } from "fflate";
5
- import { managerHomePath, parseSkillDoc, importUploadedSkill, state, userRoots } from "./core.js";
5
+ import { managerHomePath, parseSkillDoc, importUploadedSkill, setSkillEnabled, state, userRoots } from "./core.js";
6
6
  import { createRepositoryUpdater, fileIndex, signature, readSkillTree } from "./repository-updates.js";
7
7
  const LIMIT = 32 << 20;
8
8
  const hash = (bytes) => createHash("sha256").update(bytes).digest("hex");
@@ -330,9 +330,14 @@ function createRepositoryManager({ fetchImpl = globalThis.fetch, log } = {}) {
330
330
  const record = { id, path, source: { owner: repo.owner, name: repo.name, ref: repo.ref, subdirectory: repo.subdirectory }, name: skill.name, commit: repo.commit, complete: false, files: entries.map((e) => ({ path: e.path, hash: hash(Buffer.from(e.data, "base64")) })) };
331
331
  data.installs.push(record);
332
332
  await write(data);
333
+ let copied = false;
333
334
  try {
334
335
  const result = await importUploadedSkill({ name: skill.name, entries }, log, { conflict: "skip" });
335
336
  if (result.ok === false || !result.imported?.length) throw failure(result.error || "\u6280\u80FD\u5B89\u88C5\u5931\u8D25\u6216\u9047\u5230\u540C\u540D\u51B2\u7A81", "error.repo.conflict");
337
+ copied = true;
338
+ const dsh = userRoots().find((root) => root.key === "dsh");
339
+ const enabled = await setSkillEnabled(dsh, skill.name, true, log);
340
+ if (enabled && typeof enabled === "object" && "ok" in enabled && enabled.ok === false) throw failure(enabled.error || "\u6280\u80FD\u542F\u7528\u72B6\u6001\u65E0\u6CD5\u5199\u5165", enabled.code || "error.repo.enableState");
336
341
  } catch (caught) {
337
342
  const error = caught;
338
343
  data.installs = data.installs.filter((item) => item !== record);
@@ -341,6 +346,7 @@ function createRepositoryManager({ fetchImpl = globalThis.fetch, log } = {}) {
341
346
  } catch {
342
347
  throw failure("\u5B89\u88C5\u672A\u5B8C\u6210\u4E14\u6765\u6E90\u8BB0\u5F55\u65E0\u6CD5\u64A4\u9500\uFF0C\u8BF7\u6062\u590D\u78C1\u76D8\u5199\u5165\u540E\u68C0\u67E5\u6280\u80FD\u76EE\u5F55", "error.repo.installState");
343
348
  }
349
+ if (copied) await fs.rm(join(userRoots().find((root) => root.key === "dsh").path, skill.name), { recursive: true, force: true }).catch(() => void 0);
344
350
  throw error;
345
351
  }
346
352
  record.complete = true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@michengai/dsh-skills-manager",
3
- "version": "1.1.6",
3
+ "version": "1.1.7",
4
4
  "description": "DSH Skills Manager — 在 DeepSeek Harness 中统一加载并安全管理本机 Agent Skills · Load and safely manage local Agent Skills in DSH",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {