dsh-plugin 1.6.7 → 1.6.9

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/client/client.js CHANGED
@@ -35,7 +35,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
35
35
  failedDescProxy: "你的网络似乎不通,或设置里的 HTTP 代理地址不可达,无法获取插件目录数据。请检查代理设置与网络连接后重试;或点击右上角按钮在浏览器中打开插件市场。",
36
36
  retry: "重试",
37
37
  install: "安装",
38
- cliOnlyHint: "此插件需在命令行安装(网页端无法代执行),请复制上方命令到终端运行",
38
+ cliOnlyHint: "此插件的安装需要在 dsh 终端里完成(网页端无法代跑它所需的构建或装配步骤),请复制上方命令到终端执行",
39
+ manualInstallOnlyHint: "此插件需要你在 dsh 终端手动安装:网页端的一键安装替代不了终端里的构建与装配步骤。请复制上方命令到终端执行(Windows 用 Git Bash 或 PowerShell,macOS/Linux 用终端),完整步骤见作者仓库的安装说明。",
39
40
  failedCopyHint: "安装失败。请复制上方安装命令到 dsh 终端手动执行(原生依赖构建脚本可能需要人工放行,如 pnpm approve-builds)",
40
41
  toastCopied: "安装命令已复制,去 dsh 终端粘贴即可安装",
41
42
  installed: "已安装",
@@ -292,9 +293,13 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
292
293
  failHubIssueHint: "此失败已被判定为环境或插件中心自身问题(非插件作者问题),带着错误日志到插件中心仓库一键提交 Issue",
293
294
  failHubIssueBig: "反馈给插件中心排查",
294
295
  failUnclassifiedHint: "安装失败,原因未能自动识别。这通常不是插件自身的问题(可能与本机环境或插件中心有关),请将错误信息反馈给插件中心,由维护者排查。",
296
+ failHubStateHint: "插件列表状态已过期或与本地不一致:该插件可能已经装过了(无需重复安装,要升级请点「更新」),也可能已不在已安装列表中,或已在队列中。这不是插件本身的问题 —— 请刷新页面后重试。",
297
+ failTimeoutHint: "安装耗时超过本地上限、已被中断 —— 但很可能其实已经装上了(安装器在超时后会先核对本地已安装列表)。请刷新页面确认该插件是否已装上;若确实没装上,可在终端手动执行一次安装命令查看完整输出。这不是插件本身的问题。",
295
298
  failPrepareHint: "该插件安装时的构建脚本执行失败(git 分发常缺失子模块或构建产物),属插件打包分发问题。请向作者仓库提交 Issue 反馈。",
299
+ failMisjudgeHint: "如果这个插件其实能正常安装(上面这个判定是插件中心误报的),请反馈给插件中心:文字提示里的判据由市场自身产出,误报只有靠你的反馈才能被发现。",
300
+ failMisjudgeLink: "插件能装却被拦下?反馈给插件中心",
296
301
  failPackagingHint: "该插件不支持官方默认安装方式:其 git 分发缺少它需要的文件(`main` / `exports` 声明的入口、补丁按本包名 mount 的入口,或 `dsh.bundle.patch` 声明的补丁),说明作者未适配官方安装流程。请到作者仓库提交 Issue 反馈,请其提交构建产物、改用预构建 release `.tgz` 直链(`releases/download/<tag>/<asset>.tgz`),或发布完整的 npm 版。",
297
- failIgnoredBuild: "该插件或其依赖需要执行构建脚本,被 pnpm 的安全白名单(allowBuilds)默认拦截导致安装失败(如原生模块 node-pty、或 git 安装时插件的 prepare 脚本)。这不一定是插件自身的问题(也可能是插件中心反查失败后回退到 git 安装所致),请先反馈给插件中心排查;若确认为插件依赖问题,可建议作者改用预编译版本(如 node-pty-prebuilt-multiarch)或移除安装期构建。",
302
+ failIgnoredBuild: "该插件(或其依赖)需要在安装时执行构建脚本,被 pnpm 的安全白名单(allowBuilds)默认拦截,安装因此失败(如原生模块 node-pty,或 git 安装时插件自己的 prepare 脚本)。安装器已自动放行该 key 并重试过一次;仍失败通常说明构建本身没通过。可先在终端手动执行一次安装命令查看完整构建错误;若确属插件的构建/分发问题,建议作者预置构建产物、发布 npm 包或预构建 .tgz。需要协助排查时也可反馈给插件中心。",
298
303
  failNpmTooLow: "怀疑本机 npm 版本过低:npm 解析插件依赖时内部崩溃(这是 npm 自身的已知缺陷,不是插件问题)。请升级 npm 后重试:npm install -g npm@latest",
299
304
  failNpmTooLowV: "本机 npm 版本过低(当前 v{v}):npm 解析插件依赖时内部崩溃(这是 npm 自身的已知缺陷,不是插件问题)。请升级 npm 后重试:npm install -g npm@latest",
300
305
  failNetworkHint: "安装前检测到网络不通:无法连接到安装源(可能是断网、DNS 解析失败、被防火墙拦截,或代理配置有问题)。这不是插件本身的问题 —— 请检查网络连接,或到「设置」里确认 HTTP 代理配置,再到「系统诊断」运行一次连通性检测,然后重试。",
@@ -382,7 +387,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
382
387
  failedDescProxy: "Your network seems unreachable, or the HTTP proxy in Settings is unreachable, so the plugin catalog could not be loaded. Please check the proxy address and your connection, then retry; or open the hub in your browser with the button above.",
383
388
  retry: "Retry",
384
389
  install: "Install",
385
- cliOnlyHint: "This plugin must be installed from the command line (it cannot be run from the web UI) — copy the command above and run it in your terminal",
390
+ cliOnlyHint: "This plugin has to be installed in your dsh terminal (the web UI cannot run the build or assembly steps it needs) — copy the command above and run it there",
391
+ manualInstallOnlyHint: "This plugin has to be installed by hand in your dsh terminal — one-click install from the web UI cannot run the build and assembly steps it needs. Copy the command above and run it there (Git Bash or PowerShell on Windows, Terminal on macOS/Linux); the author's repo has the full steps.",
386
392
  failedCopyHint: "Install failed. Copy the command above and run it manually in your dsh terminal (native build scripts may need manual approval, e.g. pnpm approve-builds)",
387
393
  toastCopied: "Install command copied — paste it in your dsh terminal",
388
394
  installed: "Installed",
@@ -642,9 +648,13 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
642
648
  failHubIssueHint: "This failure was classified as an environment or Plugin Hub issue (not a plugin-author issue). Open a pre-filled issue on the Plugin Hub repo with this error log.",
643
649
  failHubIssueBig: "Report to the Plugin Hub for triage",
644
650
  failUnclassifiedHint: "The install failed and the cause could not be identified automatically. This is usually not the plugin itself (it may relate to your local environment or the Plugin Hub). Please report the error to the Plugin Hub so the maintainers can triage it.",
651
+ failHubStateHint: "The plugin list is out of date or out of sync: this plugin may already be installed (no need to reinstall — use \"Update\" to upgrade), or may no longer be in the installed list, or may already be queued. This is not a plugin problem — refresh the page and retry.",
652
+ failTimeoutHint: "The install exceeded the local time limit and was interrupted — but it may well have completed already (the installer re-checks your installed list after a timeout). Refresh the page to see whether the plugin is installed; if it is not, run the install command in a terminal to see the full output. This is not a plugin problem.",
645
653
  failPrepareHint: "This plugin failed while running its build scripts during install (git tarballs often miss submodules or build output). This is a packaging issue of the plugin itself — please report it to the author repository.",
654
+ failMisjudgeHint: "If this plugin actually installs fine (the verdict above is the Plugin Hub misjudging it), please report it to the Hub: that verdict is produced by the marketplace itself, so a false positive can only be found through your feedback.",
655
+ failMisjudgeLink: "Plugin installs fine but got blocked? Report to the Plugin Hub",
646
656
  failPackagingHint: "This plugin does not support the official default install method: its git distribution lacks a file the package needs (the entry from `main` / `exports`, an entry its own patch mounts by name, or the patch declared by `dsh.bundle.patch`), so it has not been adapted to the official install flow. Please file an Issue on the author's repo asking for committed build output, a prebuilt release `.tgz` (`releases/download/<tag>/<asset>.tgz`), or a complete npm release.",
647
- failIgnoredBuild: "This plugin (or its dependencies) needs to run build scripts, which pnpm blocks by default via its allowBuilds allowlist, so the install fails (e.g. native modules like node-pty, or the plugin's own prepare script on git installs). This is not necessarily the plugin itself (it may be caused by the hub falling back to a git install after npm lookup failed). Please report it to the Plugin Hub first; if it turns out to be a plugin dependency issue, the author can ship a prebuilt variant (e.g. node-pty-prebuilt-multiarch) or drop install-time builds.",
657
+ failIgnoredBuild: "This plugin (or one of its dependencies) needs to run build scripts at install time, which pnpm blocks by default via its allowBuilds allowlist — so the install fails (e.g. native modules like node-pty, or the plugin's own prepare script on git installs). The installer already auto-allows that key and retries once; if it still fails, the build itself is usually the problem. Run the install command in a terminal to see the full build error; if it is indeed the plugin's build or distribution, the author can ship prebuilt output, an npm release, or a prebuilt .tgz. You can also report it to the Plugin Hub for triage.",
648
658
  failNpmTooLow: "Your local npm may be too old: npm crashed internally while resolving the plugin's dependencies (a known npm bug — not a plugin issue). Please upgrade npm and retry: npm install -g npm@latest",
649
659
  failNpmTooLowV: "Your local npm is too old (v{v}): npm crashed internally while resolving the plugin's dependencies (a known npm bug — not a plugin issue). Please upgrade npm and retry: npm install -g npm@latest",
650
660
  failNetworkHint: "The network could not be reached before install: the install source is unreachable (offline, DNS failure, firewall block, or a misconfigured proxy). This is not a problem with the plugin itself — please check your connection, confirm the HTTP proxy in Settings, run a connectivity check under System Diagnostics, then retry.",
@@ -726,46 +736,46 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
726
736
  css: css$11
727
737
  });
728
738
  var Header_module_css_default = {
729
- "segBtn": "qikqja_segBtn",
730
- "taglineLink": "qikqja_taglineLink",
731
- "version": "qikqja_version",
739
+ "segBtnActive": "qikqja_segBtnActive",
740
+ "controls": "qikqja_controls",
741
+ "headerTitleRow": "qikqja_headerTitleRow",
732
742
  "adBadge": "qikqja_adBadge",
733
- "root": "qikqja_root",
734
- "aboutBtn": "qikqja_aboutBtn",
743
+ "adArrow": "qikqja_adArrow",
744
+ "tagline": "qikqja_tagline",
735
745
  "tabActive": "qikqja_tabActive",
736
- "tab": "qikqja_tab",
737
- "tabCount": "qikqja_tabCount",
738
- "headerTitleRow": "qikqja_headerTitleRow",
739
- "tabsRow": "qikqja_tabsRow",
740
- "copyIcon": "qikqja_copyIcon",
746
+ "root": "qikqja_root",
747
+ "segGroup": "qikqja_segGroup",
741
748
  "githubLink": "qikqja_githubLink",
742
749
  "title": "qikqja_title",
743
- "controls": "qikqja_controls",
744
- "hubUpdateBadge": "qikqja_hubUpdateBadge",
745
- "langBtn": "qikqja_langBtn",
746
- "brandTitle": "qikqja_brandTitle",
750
+ "segLabel": "qikqja_segLabel",
751
+ "tabCount": "qikqja_tabCount",
747
752
  "adText": "qikqja_adText",
748
- "resultCount": "qikqja_resultCount",
749
- "tabs": "qikqja_tabs",
750
- "githubIcon": "qikqja_githubIcon",
751
- "segGroup": "qikqja_segGroup",
753
+ "tabsRow": "qikqja_tabsRow",
752
754
  "header": "qikqja_header",
755
+ "resultCount": "qikqja_resultCount",
756
+ "tab": "qikqja_tab",
757
+ "searchRow": "qikqja_searchRow",
753
758
  "sortGroup": "qikqja_sortGroup",
754
- "search": "qikqja_search",
759
+ "headerRight": "qikqja_headerRight",
760
+ "resultSeg": "qikqja_resultSeg",
755
761
  "adBanner": "qikqja_adBanner",
756
- "searchRow": "qikqja_searchRow",
757
- "segLabel": "qikqja_segLabel",
758
- "logoIcon": "qikqja_logoIcon",
762
+ "taglineLink": "qikqja_taglineLink",
763
+ "copyIcon": "qikqja_copyIcon",
759
764
  "versionBtn": "qikqja_versionBtn",
760
- "adArrow": "qikqja_adArrow",
761
- "segBtnActive": "qikqja_segBtnActive",
762
- "headerRight": "qikqja_headerRight",
763
- "tagline": "qikqja_tagline",
764
- "resultSeg": "qikqja_resultSeg"
765
+ "search": "qikqja_search",
766
+ "aboutBtn": "qikqja_aboutBtn",
767
+ "langBtn": "qikqja_langBtn",
768
+ "segBtn": "qikqja_segBtn",
769
+ "tabs": "qikqja_tabs",
770
+ "githubIcon": "qikqja_githubIcon",
771
+ "version": "qikqja_version",
772
+ "hubUpdateBadge": "qikqja_hubUpdateBadge",
773
+ "brandTitle": "qikqja_brandTitle",
774
+ "logoIcon": "qikqja_logoIcon"
765
775
  };
766
776
  //#endregion
767
777
  //#region \0dsh-css:src/client/styles/Modal.module.css.mjs
768
- const css$10 = ".BiQ1zG_overlay{z-index:998;-webkit-user-select:none;user-select:none;background:#00000061;justify-content:center;align-items:center;animation:.16s ease-out BiQ1zG_overlayIn;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.BiQ1zG_modal,.BiQ1zG_errorModal{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:10px;flex-direction:column;gap:10px;width:540px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);padding:14px 16px;animation:.18s ease-out BiQ1zG_modalIn;display:flex;box-shadow:0 12px 40px #0000003d}.BiQ1zG_errorModal{width:720px;max-width:calc(100vw - 48px)}.BiQ1zG_modalWide{width:640px;max-width:calc(100vw - 48px)}.BiQ1zG_helpModal{width:760px;max-width:calc(100vw - 48px)}.BiQ1zG_logModal{width:820px;max-width:calc(100vw - 48px);height:min(540px,100vh - 64px)}.BiQ1zG_modalHead{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;display:flex}.BiQ1zG_modalTitle{color:var(--hub-text-primary);font-size:14px;font-weight:600;line-height:20px}.BiQ1zG_modalTitleBusy{color:var(--hub-brand)}.BiQ1zG_modalTitleQueued{color:var(--hub-warning)}.BiQ1zG_modalClose{width:24px;height:24px;color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.BiQ1zG_modalClose:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_modalCloseIcon{flex-shrink:0;width:14px;height:14px}.BiQ1zG_confirmIconWrap{justify-content:center;padding:2px 0 6px;display:flex}.BiQ1zG_confirmIcon{background:var(--hub-brand);border-radius:50%;flex:none;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex;box-shadow:0 4px 12px #4f6ef747}.BiQ1zG_confirmIconDanger{background:var(--hub-danger);box-shadow:0 4px 12px #d1242f4d}.BiQ1zG_dangerConfirm{color:#fff;background:var(--hub-danger);border:1px solid var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:none;height:28px;padding:0 14px;font-size:12px;font-weight:600;transition:background-color .12s,border-color .12s}.BiQ1zG_dangerConfirm:hover:not(:disabled){background:var(--hub-danger-hover);border-color:var(--hub-danger-hover)}.BiQ1zG_dangerConfirm:disabled{opacity:.55;cursor:default}.BiQ1zG_confirmPrimary{color:#fff;background:var(--hub-brand);border:1px solid var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:none;height:28px;padding:0 14px;font-size:12px;font-weight:600;transition:filter .12s}.BiQ1zG_confirmPrimary:hover:not(:disabled){filter:brightness(1.08)}.BiQ1zG_confirmPrimary:disabled{opacity:.55;cursor:default}.BiQ1zG_modalDesc{color:var(--hub-text-secondary);font-size:12px;line-height:18px}.BiQ1zG_trustHint{color:var(--hub-danger-text);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;font-weight:500;line-height:18px}.BiQ1zG_cliOnlyHint{color:var(--hub-text-secondary);background:var(--hub-bg-hover);border-radius:6px;padding:6px 10px;font-size:12px;line-height:18px}.BiQ1zG_failedCopyHint{color:var(--hub-danger-text);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;font-weight:500;line-height:18px}.BiQ1zG_modalRow{align-items:baseline;gap:8px;min-width:0;font-size:12px;line-height:18px;display:flex}.BiQ1zG_modalLabel{min-width:64px;color:var(--hub-text-tertiary);flex-shrink:0}.BiQ1zG_modalValue{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-text-primary);font-weight:500;overflow:hidden}.BiQ1zG_modalLink{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:color .12s;display:inline-flex;overflow:hidden}.BiQ1zG_modalLink:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_linkIcon{flex-shrink:0}.BiQ1zG_modalCmd{color:var(--hub-text-primary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 6px 6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:18px;transition:border-color .12s,background .12s;display:flex}.BiQ1zG_modalCmd:hover{border-color:var(--hub-border-ghost);background:var(--hub-bg-3)}.BiQ1zG_modalCmdText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.BiQ1zG_modalCmdCopy{color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;gap:3px;padding:1px 7px;font-family:inherit;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_modalCmdCopy:hover{color:var(--hub-brand-hover);background:var(--hub-bg-2)}.BiQ1zG_modalActions{justify-content:flex-end;align-items:center;gap:8px;margin-top:2px;display:flex}.BiQ1zG_modalBody{flex-direction:column;flex:auto;gap:10px;min-height:0;display:flex;overflow-y:auto}.BiQ1zG_toast{z-index:1000;background:var(--hub-btn-fill);color:var(--hub-text-on-fill);pointer-events:none;white-space:nowrap;border:none;border-radius:8px;padding:10px 16px;font-size:12px;font-weight:500;line-height:18px;animation:.22s ease-out BiQ1zG_toastIn;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 24px #00000047}@keyframes BiQ1zG_toastIn{0%{opacity:0;transform:translate(-50%,-44%)}to{opacity:1;transform:translate(-50%,-50%)}}.BiQ1zG_toastFail{background:var(--hub-danger);color:#fff;border-color:#ffffff3d}.BiQ1zG_queueSection{flex-direction:column;gap:6px;display:flex}.BiQ1zG_queueSectionTitle{color:var(--hub-text-secondary);padding:4px 2px 0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_pendingRowStatus{color:var(--hub-warn);flex-shrink:0;font-weight:500}.BiQ1zG_pendingRowActions{flex-shrink:0;gap:8px;margin-left:auto;display:flex}.BiQ1zG_queueRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;gap:5px;padding:8px 10px;font-size:12px;line-height:18px;transition:background .12s;display:flex}.BiQ1zG_queueRow:hover{background:var(--hub-brand-tint)}.BiQ1zG_queueRowHead{align-items:center;gap:10px;display:flex}.BiQ1zG_queueRowTarget{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-text-primary);flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.BiQ1zG_queueRowDesc{color:var(--hub-text-tertiary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.BiQ1zG_queueRowBody{align-items:center;gap:8px;display:flex}.BiQ1zG_queueRowStatus{color:var(--hub-brand);flex-shrink:0;font-weight:500}.BiQ1zG_queueRowTrack{flex:1;min-width:0}.BiQ1zG_queueRowPct{color:var(--hub-text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0}.BiQ1zG_stripCancel{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:2px 10px;font-size:12px;line-height:18px;transition:background .12s,color .12s}.BiQ1zG_stripCancel:hover{background:var(--hub-danger-tint);color:var(--hub-danger-text)}.BiQ1zG_stripCancel:disabled{opacity:.45;cursor:default}.BiQ1zG_queuedHint{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);border-radius:6px;padding:5px 10px;font-size:12px;line-height:18px}.BiQ1zG_errorTitle{color:var(--hub-danger-text);font-size:14px;font-weight:600;line-height:20px}.BiQ1zG_errorBox{border:1px solid var(--hub-danger-border);background:var(--hub-danger-tint-weak);max-height:240px;color:var(--hub-text-primary);white-space:pre-wrap;word-break:break-word;-webkit-user-select:none;user-select:none;border-radius:6px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:17px;overflow:auto}.BiQ1zG_errorCopySoft{color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_errorCopySoft:hover{color:var(--hub-text-secondary);background:var(--hub-bg-2)}.BiQ1zG_errorHint{color:var(--hub-text-tertiary);font-size:12px;line-height:18px}.BiQ1zG_modalCancel,.BiQ1zG_modalCopy{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_modalCancel:hover,.BiQ1zG_modalCopy:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_modalInstall{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_modalInstall:hover{background:var(--hub-btn-hover)}.BiQ1zG_modalCopy:disabled,.BiQ1zG_modalInstall:disabled,.BiQ1zG_modalCancel:disabled,.BiQ1zG_modalClose:disabled,.BiQ1zG_uninstallConfirm:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_uninstallConfirm{color:#fff;background:var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_uninstallConfirm:hover{background:var(--hub-danger-hover)}.BiQ1zG_result{text-align:center;flex-direction:column;align-items:center;gap:5px;padding:10px 0 2px;display:flex}.BiQ1zG_resultCheck{background:var(--hub-success-tint);width:40px;height:40px;color:var(--hub-success);border-radius:50%;justify-content:center;align-items:center;margin-bottom:3px;display:inline-flex}.BiQ1zG_resultCheckIcon{flex-shrink:0;width:20px;height:20px}.BiQ1zG_resultTitle{color:var(--hub-text-primary);font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_resultDesc{color:var(--hub-text-secondary);font-size:12px;line-height:18px}.BiQ1zG_resultRestarting{color:var(--hub-text-tertiary);padding:12px 0 6px;font-size:12px;line-height:18px}.BiQ1zG_restartLater{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_restartLater:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_restartNow{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_restartNow:hover{background:var(--hub-btn-hover)}.BiQ1zG_restartNow:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_restartNowWarning{color:#fff;background:var(--hub-warning);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_restartNowWarning:hover{background:var(--hub-warning-hover)}.BiQ1zG_restartNowWarning:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_result .BiQ1zG_modalActions{justify-content:center;gap:10px;margin-top:0;padding:6px 0 2px}.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartLater,.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartNow,.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartNowWarning{min-width:100px}.BiQ1zG_progress{margin:10px 0 2px}.BiQ1zG_progressHead{justify-content:flex-end;align-items:center;margin-bottom:3px;display:flex}.BiQ1zG_progressText{color:var(--hub-text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:14px}.BiQ1zG_progressTrack{background:var(--hub-border-2);border-radius:2px;height:4px;overflow:hidden}.BiQ1zG_progressFill{background:var(--hub-brand);border-radius:2px;height:100%;transition:width .32s}.BiQ1zG_progressFillFail{background:var(--hub-danger)}@keyframes BiQ1zG_overlayIn{0%{opacity:0}to{opacity:1}}@keyframes BiQ1zG_modalIn{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.BiQ1zG_failList{flex-direction:column;gap:12px;padding-right:2px;display:flex}.BiQ1zG_failRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.BiQ1zG_failHead{align-items:center;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeList{flex-direction:column;gap:10px;padding-right:2px;display:flex}.BiQ1zG_noticeRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);border-radius:8px;flex-direction:column;align-items:stretch;gap:6px;padding:10px 12px;display:flex}.BiQ1zG_noticeRowMain{align-items:center;gap:10px;width:100%;min-width:0;display:flex}.BiQ1zG_noticeBadgeOk,.BiQ1zG_noticeBadgeFail{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;box-shadow:0 2px 6px #0000002e}.BiQ1zG_noticeBadgeOk{background:var(--hub-success)}.BiQ1zG_noticeBadgeFail{background:var(--hub-danger)}.BiQ1zG_noticeBadgeIcon{flex-shrink:0;width:12px;height:12px}.BiQ1zG_noticeMain{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeHead{align-items:center;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeTextOk{color:var(--hub-success);flex-shrink:0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_noticeTextFail{color:var(--hub-danger-text);flex-shrink:0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_noticeFoot{justify-content:flex-end;align-items:center;display:flex}.BiQ1zG_noticeTime{color:var(--hub-text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:11px;line-height:16px}.BiQ1zG_noticeRemove{width:22px;height:22px;color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_noticeRemove:hover{color:var(--hub-danger-text);background:var(--hub-danger-tint)}.BiQ1zG_noticeRowOk .BiQ1zG_noticeRemove{margin-left:0}.BiQ1zG_noticeRowOk .BiQ1zG_noticeTime{margin-left:auto}.BiQ1zG_noticeRowUpdate{cursor:pointer;transition:border-color .12s,background .12s}.BiQ1zG_noticeRowUpdate:hover{border-color:var(--hub-brand);background:var(--hub-brand-tint)}.BiQ1zG_noticeVersion{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border);font-variant-numeric:tabular-nums;border-radius:5px;flex-shrink:0;padding:0 6px;font-size:11px;font-weight:600;line-height:18px}.BiQ1zG_noticeUpdateGo{color:#fff;background:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:5px;flex-shrink:0;margin-left:2px;padding:2px 8px;font-size:11px;font-weight:600;line-height:16px;transition:background .12s}.BiQ1zG_noticeUpdateGo:hover{background:var(--hub-brand-hover)}.BiQ1zG_noticeIgnore{color:var(--hub-text-secondary);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:5px;flex-shrink:0;margin-left:2px;padding:1px 8px;font-size:11px;font-weight:500;line-height:16px;transition:color .12s,border-color .12s,background .12s}.BiQ1zG_noticeIgnore:hover{color:var(--hub-danger-text);border-color:var(--hub-danger-border);background:var(--hub-danger-tint)}.BiQ1zG_failKind{border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;font-weight:500;line-height:16px}.BiQ1zG_failKindInstall{color:var(--hub-danger-text);border-color:var(--hub-danger-border);background:var(--hub-danger-tint)}.BiQ1zG_failKindUninstall{color:var(--hub-warn);border-color:var(--hub-warn-border);background:var(--hub-warn-tint)}.BiQ1zG_failRepo{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:18px;text-decoration:none;overflow:hidden}.BiQ1zG_failRepo:hover{text-decoration:underline}.BiQ1zG_failCopy{color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_failCopy:hover{color:var(--hub-text-secondary);background:var(--hub-bg-2)}.BiQ1zG_failEmpty{text-align:center;color:var(--hub-text-tertiary);padding:24px 0;font-size:12px;line-height:18px}.BiQ1zG_failClear{color:var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_failClear:hover{color:#fff;background:var(--hub-danger)}.BiQ1zG_failBigIssue{box-sizing:border-box;text-align:center;color:#fff;background:var(--hub-danger);border:1px solid var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;width:100%;margin-top:4px;padding:3px 16px;font-size:13px;font-weight:600;line-height:18px;text-decoration:none;transition:background .12s,border-color .12s,box-shadow .12s;display:block}.BiQ1zG_failBigIssue:hover{background:var(--hub-danger-hover);border-color:var(--hub-danger-hover);box-shadow:0 3px 10px #d1242f59}.BiQ1zG_failPrepareHint{color:var(--hub-warning);background:var(--hub-warning-tint);border:1px solid var(--hub-warning-border);border-radius:6px;margin-top:6px;padding:8px 12px;font-size:12px;line-height:18px}.BiQ1zG_failDiagBtn{box-sizing:border-box;text-align:center;width:100%;color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:8px;margin-top:8px;padding:5px 16px;font-size:13px;font-weight:600;line-height:18px;transition:background .12s,box-shadow .12s;display:block}.BiQ1zG_failDiagBtn:hover{background:var(--hub-btn-hover);box-shadow:0 3px 10px #0000001f}.BiQ1zG_failNetworkTarget{word-break:break-all;color:var(--hub-danger);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border);border-radius:6px;margin-top:6px;padding:8px 12px;font-size:13px;font-weight:700;line-height:20px}.BiQ1zG_aboutModal{width:560px;max-width:calc(100vw - 48px)}.BiQ1zG_aboutContent{min-height:0;max-height:340px;color:var(--hub-text-secondary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:8px;flex:auto;padding:10px 12px;font-size:12px;line-height:18px;overflow-y:auto}.BiQ1zG_aboutContent>:first-child{margin-top:0}.BiQ1zG_aboutContent>:last-child{margin-bottom:0}.BiQ1zG_aboutContent h2,.BiQ1zG_aboutContent h3,.BiQ1zG_aboutContent h4,.BiQ1zG_aboutContent h5{color:var(--hub-text-primary);margin:10px 0 4px;font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_aboutContent h2{font-size:14px}.BiQ1zG_aboutContent p{margin:4px 0}.BiQ1zG_aboutContent ul,.BiQ1zG_aboutContent ol{margin:4px 0;padding-left:18px}.BiQ1zG_aboutContent li{margin:2px 0}.BiQ1zG_aboutContent code{background:var(--hub-bg-hover);color:var(--hub-text-primary);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.BiQ1zG_aboutContent pre{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:6px;margin:6px 0;padding:8px 10px;overflow-x:auto}.BiQ1zG_aboutContent pre code{background:0 0;border-radius:0;padding:0}.BiQ1zG_aboutContent blockquote{border-left:3px solid var(--hub-brand);background:var(--hub-bg-hover);color:var(--hub-text-tertiary);border-radius:0 6px 6px 0;margin:6px 0;padding:2px 10px}.BiQ1zG_aboutContent a{color:var(--hub-brand);text-decoration:none}.BiQ1zG_aboutContent a:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_aboutContent img{border-radius:8px;max-width:100%;max-height:220px;margin:8px auto;display:block;box-shadow:0 2px 8px #0000001f}.BiQ1zG_aboutContent img[width=\"100\"]{object-fit:contain;width:100px;height:100px;max-height:100px}.BiQ1zG_aboutMeta{color:var(--hub-text-tertiary);font-size:11px;line-height:16px}.BiQ1zG_hubUpdateModal{width:620px;max-width:calc(100vw - 48px)}.BiQ1zG_hubUpdateMeta{flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:12px;line-height:18px;display:flex}.BiQ1zG_hubUpdateMetaItem{color:var(--hub-text-tertiary)}.BiQ1zG_hubUpdateNotes{min-height:0;max-height:300px;color:var(--hub-text-secondary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:8px;flex:auto;padding:10px 12px;font-size:12px;line-height:18px;overflow-y:auto}.BiQ1zG_hubUpdateNotes>:first-child{margin-top:0}.BiQ1zG_hubUpdateNotes>:last-child{margin-bottom:0}.BiQ1zG_hubUpdateNotes h2,.BiQ1zG_hubUpdateNotes h3,.BiQ1zG_hubUpdateNotes h4,.BiQ1zG_hubUpdateNotes h5{color:var(--hub-text-primary);margin:10px 0 4px;font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_hubUpdateNotes h2{font-size:14px}.BiQ1zG_hubUpdateNotes p{margin:4px 0}.BiQ1zG_hubUpdateNotes ul,.BiQ1zG_hubUpdateNotes ol{margin:4px 0;padding-left:18px}.BiQ1zG_hubUpdateNotes li{margin:2px 0}.BiQ1zG_hubUpdateNotes code{background:var(--hub-bg-hover);color:var(--hub-text-primary);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.BiQ1zG_hubUpdateNotes pre{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:6px;margin:6px 0;padding:8px 10px;overflow-x:auto}.BiQ1zG_hubUpdateNotes pre code{background:0 0;border-radius:0;padding:0}.BiQ1zG_hubUpdateNotes blockquote{border-left:3px solid var(--hub-brand);background:var(--hub-bg-hover);color:var(--hub-text-tertiary);border-radius:0 6px 6px 0;margin:6px 0;padding:2px 10px}.BiQ1zG_hubUpdateNotes a{color:var(--hub-brand);text-decoration:none}.BiQ1zG_hubUpdateNotes a:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_detailModal{width:580px;max-width:calc(100vw - 48px)}.BiQ1zG_detailUpdateHint{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;line-height:18px}.BiQ1zG_detailGrid{flex-direction:column;gap:6px;display:flex}.BiQ1zG_detailRow{align-items:baseline;gap:10px;min-width:0;font-size:12px;line-height:20px;display:flex}.BiQ1zG_detailLabel{text-align:right;width:76px;color:var(--hub-text-tertiary);flex-shrink:0}.BiQ1zG_detailValue{min-width:0;color:var(--hub-text-primary);flex-wrap:wrap;flex:auto;align-items:baseline;gap:4px 6px;font-weight:500;display:flex}.BiQ1zG_detailMono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:500}.BiQ1zG_detailArrow{color:var(--hub-text-tertiary);align-items:baseline;gap:4px;display:inline-flex}.BiQ1zG_detailDim{color:var(--hub-text-tertiary);font-size:11px;font-weight:400}.BiQ1zG_detailLink{min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:color .12s;display:inline-flex}.BiQ1zG_detailLink:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_detailStars{color:#b45309;font-weight:600}.BiQ1zG_detailPath{min-width:0;color:var(--hub-text-primary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:6px;flex:auto;justify-content:space-between;align-items:center;gap:6px;padding:3px 3px 3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:18px;transition:border-color .12s,background .12s;display:flex}.BiQ1zG_detailPath:hover{border-color:var(--hub-border-ghost);background:var(--hub-bg-3)}.BiQ1zG_detailPathText{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:0;overflow:hidden}.BiQ1zG_detailPathActions{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.BiQ1zG_detailPathBtn{width:28px;height:28px;color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:center;align-items:center;transition:color .12s,background .12s,border-color .12s;display:inline-flex}.BiQ1zG_detailPathBtn svg{width:15px;height:15px}.BiQ1zG_detailPathBtn:hover{color:#fff;background:var(--hub-brand);border-color:var(--hub-brand)}.BiQ1zG_detailStatusRunning,.BiQ1zG_detailStatusPending{border-radius:50%;flex-shrink:0;align-self:center;width:8px;height:8px}.BiQ1zG_detailStatusRunning{background:var(--hub-success)}.BiQ1zG_detailStatusPending{background:var(--hub-warning)}.BiQ1zG_detailStatusText{font-weight:500}";
778
+ const css$10 = ".BiQ1zG_overlay{z-index:998;-webkit-user-select:none;user-select:none;background:#00000061;justify-content:center;align-items:center;animation:.16s ease-out BiQ1zG_overlayIn;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.BiQ1zG_modal,.BiQ1zG_errorModal{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:10px;flex-direction:column;gap:10px;width:540px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);padding:14px 16px;animation:.18s ease-out BiQ1zG_modalIn;display:flex;box-shadow:0 12px 40px #0000003d}.BiQ1zG_errorModal{width:720px;max-width:calc(100vw - 48px)}.BiQ1zG_modalWide{width:640px;max-width:calc(100vw - 48px)}.BiQ1zG_helpModal{width:760px;max-width:calc(100vw - 48px)}.BiQ1zG_logModal{width:820px;max-width:calc(100vw - 48px);height:min(540px,100vh - 64px)}.BiQ1zG_modalHead{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;display:flex}.BiQ1zG_modalTitle{color:var(--hub-text-primary);font-size:14px;font-weight:600;line-height:20px}.BiQ1zG_modalTitleBusy{color:var(--hub-brand)}.BiQ1zG_modalTitleQueued{color:var(--hub-warning)}.BiQ1zG_modalClose{width:24px;height:24px;color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.BiQ1zG_modalClose:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_modalCloseIcon{flex-shrink:0;width:14px;height:14px}.BiQ1zG_confirmIconWrap{justify-content:center;padding:2px 0 6px;display:flex}.BiQ1zG_confirmIcon{background:var(--hub-brand);border-radius:50%;flex:none;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex;box-shadow:0 4px 12px #4f6ef747}.BiQ1zG_confirmIconDanger{background:var(--hub-danger);box-shadow:0 4px 12px #d1242f4d}.BiQ1zG_dangerConfirm{color:#fff;background:var(--hub-danger);border:1px solid var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:none;height:28px;padding:0 14px;font-size:12px;font-weight:600;transition:background-color .12s,border-color .12s}.BiQ1zG_dangerConfirm:hover:not(:disabled){background:var(--hub-danger-hover);border-color:var(--hub-danger-hover)}.BiQ1zG_dangerConfirm:disabled{opacity:.55;cursor:default}.BiQ1zG_confirmPrimary{color:#fff;background:var(--hub-brand);border:1px solid var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:none;height:28px;padding:0 14px;font-size:12px;font-weight:600;transition:filter .12s}.BiQ1zG_confirmPrimary:hover:not(:disabled){filter:brightness(1.08)}.BiQ1zG_confirmPrimary:disabled{opacity:.55;cursor:default}.BiQ1zG_modalDesc{color:var(--hub-text-secondary);font-size:12px;line-height:18px}.BiQ1zG_trustHint{color:var(--hub-danger-text);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;font-weight:500;line-height:18px}.BiQ1zG_cliOnlyHint{color:var(--hub-text-secondary);background:var(--hub-bg-hover);border-radius:6px;padding:6px 10px;font-size:12px;line-height:18px}.BiQ1zG_failedCopyHint{color:var(--hub-danger-text);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;font-weight:500;line-height:18px}.BiQ1zG_modalRow{align-items:baseline;gap:8px;min-width:0;font-size:12px;line-height:18px;display:flex}.BiQ1zG_modalLabel{min-width:64px;color:var(--hub-text-tertiary);flex-shrink:0}.BiQ1zG_modalValue{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-text-primary);font-weight:500;overflow:hidden}.BiQ1zG_modalLink{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:color .12s;display:inline-flex;overflow:hidden}.BiQ1zG_modalLink:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_linkIcon{flex-shrink:0}.BiQ1zG_modalCmd{color:var(--hub-text-primary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 6px 6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:18px;transition:border-color .12s,background .12s;display:flex}.BiQ1zG_modalCmd:hover{border-color:var(--hub-border-ghost);background:var(--hub-bg-3)}.BiQ1zG_modalCmdText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.BiQ1zG_modalCmdCopy{color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;gap:3px;padding:1px 7px;font-family:inherit;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_modalCmdCopy:hover{color:var(--hub-brand-hover);background:var(--hub-bg-2)}.BiQ1zG_modalActions{justify-content:flex-end;align-items:center;gap:8px;margin-top:2px;display:flex}.BiQ1zG_modalBody{flex-direction:column;flex:auto;gap:10px;min-height:0;display:flex;overflow-y:auto}.BiQ1zG_toast{z-index:1000;background:var(--hub-btn-fill);color:var(--hub-text-on-fill);pointer-events:none;white-space:nowrap;border:none;border-radius:8px;padding:10px 16px;font-size:12px;font-weight:500;line-height:18px;animation:.22s ease-out BiQ1zG_toastIn;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 24px #00000047}@keyframes BiQ1zG_toastIn{0%{opacity:0;transform:translate(-50%,-44%)}to{opacity:1;transform:translate(-50%,-50%)}}.BiQ1zG_toastFail{background:var(--hub-danger);color:#fff;border-color:#ffffff3d}.BiQ1zG_queueSection{flex-direction:column;gap:6px;display:flex}.BiQ1zG_queueSectionTitle{color:var(--hub-text-secondary);padding:4px 2px 0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_pendingRowStatus{color:var(--hub-warn);flex-shrink:0;font-weight:500}.BiQ1zG_pendingRowActions{flex-shrink:0;gap:8px;margin-left:auto;display:flex}.BiQ1zG_queueRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;gap:5px;padding:8px 10px;font-size:12px;line-height:18px;transition:background .12s;display:flex}.BiQ1zG_queueRow:hover{background:var(--hub-brand-tint)}.BiQ1zG_queueRowHead{align-items:center;gap:10px;display:flex}.BiQ1zG_queueRowTarget{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-text-primary);flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.BiQ1zG_queueRowDesc{color:var(--hub-text-tertiary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.BiQ1zG_queueRowBody{align-items:center;gap:8px;display:flex}.BiQ1zG_queueRowStatus{color:var(--hub-brand);flex-shrink:0;font-weight:500}.BiQ1zG_queueRowTrack{flex:1;min-width:0}.BiQ1zG_queueRowPct{color:var(--hub-text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0}.BiQ1zG_stripCancel{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:2px 10px;font-size:12px;line-height:18px;transition:background .12s,color .12s}.BiQ1zG_stripCancel:hover{background:var(--hub-danger-tint);color:var(--hub-danger-text)}.BiQ1zG_stripCancel:disabled{opacity:.45;cursor:default}.BiQ1zG_queuedHint{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);border-radius:6px;padding:5px 10px;font-size:12px;line-height:18px}.BiQ1zG_errorTitle{color:var(--hub-danger-text);font-size:14px;font-weight:600;line-height:20px}.BiQ1zG_errorBox{border:1px solid var(--hub-danger-border);background:var(--hub-danger-tint-weak);max-height:240px;color:var(--hub-text-primary);white-space:pre-wrap;word-break:break-word;-webkit-user-select:none;user-select:none;border-radius:6px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:17px;overflow:auto}.BiQ1zG_errorCopySoft{color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_errorCopySoft:hover{color:var(--hub-text-secondary);background:var(--hub-bg-2)}.BiQ1zG_errorHint{color:var(--hub-text-tertiary);font-size:12px;line-height:18px}.BiQ1zG_modalCancel,.BiQ1zG_modalCopy{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_modalCancel:hover,.BiQ1zG_modalCopy:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_modalInstall{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_modalInstall:hover{background:var(--hub-btn-hover)}.BiQ1zG_modalCopy:disabled,.BiQ1zG_modalInstall:disabled,.BiQ1zG_modalCancel:disabled,.BiQ1zG_modalClose:disabled,.BiQ1zG_uninstallConfirm:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_uninstallConfirm{color:#fff;background:var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_uninstallConfirm:hover{background:var(--hub-danger-hover)}.BiQ1zG_result{text-align:center;flex-direction:column;align-items:center;gap:5px;padding:10px 0 2px;display:flex}.BiQ1zG_resultCheck{background:var(--hub-success-tint);width:40px;height:40px;color:var(--hub-success);border-radius:50%;justify-content:center;align-items:center;margin-bottom:3px;display:inline-flex}.BiQ1zG_resultCheckIcon{flex-shrink:0;width:20px;height:20px}.BiQ1zG_resultTitle{color:var(--hub-text-primary);font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_resultDesc{color:var(--hub-text-secondary);font-size:12px;line-height:18px}.BiQ1zG_resultRestarting{color:var(--hub-text-tertiary);padding:12px 0 6px;font-size:12px;line-height:18px}.BiQ1zG_restartLater{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_restartLater:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_restartNow{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_restartNow:hover{background:var(--hub-btn-hover)}.BiQ1zG_restartNow:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_restartNowWarning{color:#fff;background:var(--hub-warning);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_restartNowWarning:hover{background:var(--hub-warning-hover)}.BiQ1zG_restartNowWarning:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_result .BiQ1zG_modalActions{justify-content:center;gap:10px;margin-top:0;padding:6px 0 2px}.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartLater,.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartNow,.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartNowWarning{min-width:100px}.BiQ1zG_progress{margin:10px 0 2px}.BiQ1zG_progressHead{justify-content:flex-end;align-items:center;margin-bottom:3px;display:flex}.BiQ1zG_progressText{color:var(--hub-text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:14px}.BiQ1zG_progressTrack{background:var(--hub-border-2);border-radius:2px;height:4px;overflow:hidden}.BiQ1zG_progressFill{background:var(--hub-brand);border-radius:2px;height:100%;transition:width .32s}.BiQ1zG_progressFillFail{background:var(--hub-danger)}@keyframes BiQ1zG_overlayIn{0%{opacity:0}to{opacity:1}}@keyframes BiQ1zG_modalIn{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.BiQ1zG_failList{flex-direction:column;gap:12px;padding-right:2px;display:flex}.BiQ1zG_failRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.BiQ1zG_failHead{align-items:center;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeList{flex-direction:column;gap:10px;padding-right:2px;display:flex}.BiQ1zG_noticeRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);border-radius:8px;flex-direction:column;align-items:stretch;gap:6px;padding:10px 12px;display:flex}.BiQ1zG_noticeRowMain{align-items:center;gap:10px;width:100%;min-width:0;display:flex}.BiQ1zG_noticeBadgeOk,.BiQ1zG_noticeBadgeFail{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;box-shadow:0 2px 6px #0000002e}.BiQ1zG_noticeBadgeOk{background:var(--hub-success)}.BiQ1zG_noticeBadgeFail{background:var(--hub-danger)}.BiQ1zG_noticeBadgeIcon{flex-shrink:0;width:12px;height:12px}.BiQ1zG_noticeMain{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeHead{align-items:center;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeTextOk{color:var(--hub-success);flex-shrink:0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_noticeTextFail{color:var(--hub-danger-text);flex-shrink:0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_noticeFoot{justify-content:flex-end;align-items:center;display:flex}.BiQ1zG_noticeTime{color:var(--hub-text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:11px;line-height:16px}.BiQ1zG_noticeRemove{width:22px;height:22px;color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_noticeRemove:hover{color:var(--hub-danger-text);background:var(--hub-danger-tint)}.BiQ1zG_noticeRowOk .BiQ1zG_noticeRemove{margin-left:0}.BiQ1zG_noticeRowOk .BiQ1zG_noticeTime{margin-left:auto}.BiQ1zG_noticeRowUpdate{cursor:pointer;transition:border-color .12s,background .12s}.BiQ1zG_noticeRowUpdate:hover{border-color:var(--hub-brand);background:var(--hub-brand-tint)}.BiQ1zG_noticeVersion{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border);font-variant-numeric:tabular-nums;border-radius:5px;flex-shrink:0;padding:0 6px;font-size:11px;font-weight:600;line-height:18px}.BiQ1zG_noticeUpdateGo{color:#fff;background:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:5px;flex-shrink:0;margin-left:2px;padding:2px 8px;font-size:11px;font-weight:600;line-height:16px;transition:background .12s}.BiQ1zG_noticeUpdateGo:hover{background:var(--hub-brand-hover)}.BiQ1zG_noticeIgnore{color:var(--hub-text-secondary);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:5px;flex-shrink:0;margin-left:2px;padding:1px 8px;font-size:11px;font-weight:500;line-height:16px;transition:color .12s,border-color .12s,background .12s}.BiQ1zG_noticeIgnore:hover{color:var(--hub-danger-text);border-color:var(--hub-danger-border);background:var(--hub-danger-tint)}.BiQ1zG_failKind{border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;font-weight:500;line-height:16px}.BiQ1zG_failKindInstall{color:var(--hub-danger-text);border-color:var(--hub-danger-border);background:var(--hub-danger-tint)}.BiQ1zG_failKindUninstall{color:var(--hub-warn);border-color:var(--hub-warn-border);background:var(--hub-warn-tint)}.BiQ1zG_failRepo{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:18px;text-decoration:none;overflow:hidden}.BiQ1zG_failRepo:hover{text-decoration:underline}.BiQ1zG_failCopy{color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_failCopy:hover{color:var(--hub-text-secondary);background:var(--hub-bg-2)}.BiQ1zG_failEmpty{text-align:center;color:var(--hub-text-tertiary);padding:24px 0;font-size:12px;line-height:18px}.BiQ1zG_failClear{color:var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_failClear:hover{color:#fff;background:var(--hub-danger)}.BiQ1zG_failBigIssue{box-sizing:border-box;text-align:center;color:#fff;background:var(--hub-danger);border:1px solid var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;width:100%;margin-top:4px;padding:3px 16px;font-size:13px;font-weight:600;line-height:18px;text-decoration:none;transition:background .12s,border-color .12s,box-shadow .12s;display:block}.BiQ1zG_failBigIssue:hover{background:var(--hub-danger-hover);border-color:var(--hub-danger-hover);box-shadow:0 3px 10px #d1242f59}.BiQ1zG_failPrepareHint{color:var(--hub-warning);background:var(--hub-warning-tint);border:1px solid var(--hub-warning-border);border-radius:6px;margin-top:6px;padding:8px 12px;font-size:12px;line-height:18px}.BiQ1zG_failDiagBtn{box-sizing:border-box;text-align:center;width:100%;color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:8px;margin-top:8px;padding:5px 16px;font-size:13px;font-weight:600;line-height:18px;transition:background .12s,box-shadow .12s;display:block}.BiQ1zG_failDiagBtn:hover{background:var(--hub-btn-hover);box-shadow:0 3px 10px #0000001f}.BiQ1zG_failMisjudgeLink{color:var(--hub-text-tertiary);cursor:pointer;margin-top:6px;font-size:12px;line-height:18px;text-decoration:underline;display:inline-block}.BiQ1zG_failMisjudgeLink:hover{color:var(--hub-text-secondary)}.BiQ1zG_failNetworkTarget{word-break:break-all;color:var(--hub-danger);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border);border-radius:6px;margin-top:6px;padding:8px 12px;font-size:13px;font-weight:700;line-height:20px}.BiQ1zG_aboutModal{width:560px;max-width:calc(100vw - 48px)}.BiQ1zG_aboutContent{min-height:0;max-height:340px;color:var(--hub-text-secondary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:8px;flex:auto;padding:10px 12px;font-size:12px;line-height:18px;overflow-y:auto}.BiQ1zG_aboutContent>:first-child{margin-top:0}.BiQ1zG_aboutContent>:last-child{margin-bottom:0}.BiQ1zG_aboutContent h2,.BiQ1zG_aboutContent h3,.BiQ1zG_aboutContent h4,.BiQ1zG_aboutContent h5{color:var(--hub-text-primary);margin:10px 0 4px;font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_aboutContent h2{font-size:14px}.BiQ1zG_aboutContent p{margin:4px 0}.BiQ1zG_aboutContent ul,.BiQ1zG_aboutContent ol{margin:4px 0;padding-left:18px}.BiQ1zG_aboutContent li{margin:2px 0}.BiQ1zG_aboutContent code{background:var(--hub-bg-hover);color:var(--hub-text-primary);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.BiQ1zG_aboutContent pre{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:6px;margin:6px 0;padding:8px 10px;overflow-x:auto}.BiQ1zG_aboutContent pre code{background:0 0;border-radius:0;padding:0}.BiQ1zG_aboutContent blockquote{border-left:3px solid var(--hub-brand);background:var(--hub-bg-hover);color:var(--hub-text-tertiary);border-radius:0 6px 6px 0;margin:6px 0;padding:2px 10px}.BiQ1zG_aboutContent a{color:var(--hub-brand);text-decoration:none}.BiQ1zG_aboutContent a:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_aboutContent img{border-radius:8px;max-width:100%;max-height:220px;margin:8px auto;display:block;box-shadow:0 2px 8px #0000001f}.BiQ1zG_aboutContent img[width=\"100\"]{object-fit:contain;width:100px;height:100px;max-height:100px}.BiQ1zG_aboutMeta{color:var(--hub-text-tertiary);font-size:11px;line-height:16px}.BiQ1zG_hubUpdateModal{width:620px;max-width:calc(100vw - 48px)}.BiQ1zG_hubUpdateMeta{flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:12px;line-height:18px;display:flex}.BiQ1zG_hubUpdateMetaItem{color:var(--hub-text-tertiary)}.BiQ1zG_hubUpdateNotes{min-height:0;max-height:300px;color:var(--hub-text-secondary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:8px;flex:auto;padding:10px 12px;font-size:12px;line-height:18px;overflow-y:auto}.BiQ1zG_hubUpdateNotes>:first-child{margin-top:0}.BiQ1zG_hubUpdateNotes>:last-child{margin-bottom:0}.BiQ1zG_hubUpdateNotes h2,.BiQ1zG_hubUpdateNotes h3,.BiQ1zG_hubUpdateNotes h4,.BiQ1zG_hubUpdateNotes h5{color:var(--hub-text-primary);margin:10px 0 4px;font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_hubUpdateNotes h2{font-size:14px}.BiQ1zG_hubUpdateNotes p{margin:4px 0}.BiQ1zG_hubUpdateNotes ul,.BiQ1zG_hubUpdateNotes ol{margin:4px 0;padding-left:18px}.BiQ1zG_hubUpdateNotes li{margin:2px 0}.BiQ1zG_hubUpdateNotes code{background:var(--hub-bg-hover);color:var(--hub-text-primary);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.BiQ1zG_hubUpdateNotes pre{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:6px;margin:6px 0;padding:8px 10px;overflow-x:auto}.BiQ1zG_hubUpdateNotes pre code{background:0 0;border-radius:0;padding:0}.BiQ1zG_hubUpdateNotes blockquote{border-left:3px solid var(--hub-brand);background:var(--hub-bg-hover);color:var(--hub-text-tertiary);border-radius:0 6px 6px 0;margin:6px 0;padding:2px 10px}.BiQ1zG_hubUpdateNotes a{color:var(--hub-brand);text-decoration:none}.BiQ1zG_hubUpdateNotes a:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_detailModal{width:580px;max-width:calc(100vw - 48px)}.BiQ1zG_detailUpdateHint{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;line-height:18px}.BiQ1zG_detailGrid{flex-direction:column;gap:6px;display:flex}.BiQ1zG_detailRow{align-items:baseline;gap:10px;min-width:0;font-size:12px;line-height:20px;display:flex}.BiQ1zG_detailLabel{text-align:right;width:76px;color:var(--hub-text-tertiary);flex-shrink:0}.BiQ1zG_detailValue{min-width:0;color:var(--hub-text-primary);flex-wrap:wrap;flex:auto;align-items:baseline;gap:4px 6px;font-weight:500;display:flex}.BiQ1zG_detailMono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:500}.BiQ1zG_detailArrow{color:var(--hub-text-tertiary);align-items:baseline;gap:4px;display:inline-flex}.BiQ1zG_detailDim{color:var(--hub-text-tertiary);font-size:11px;font-weight:400}.BiQ1zG_detailLink{min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:color .12s;display:inline-flex}.BiQ1zG_detailLink:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_detailStars{color:#b45309;font-weight:600}.BiQ1zG_detailPath{min-width:0;color:var(--hub-text-primary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:6px;flex:auto;justify-content:space-between;align-items:center;gap:6px;padding:3px 3px 3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:18px;transition:border-color .12s,background .12s;display:flex}.BiQ1zG_detailPath:hover{border-color:var(--hub-border-ghost);background:var(--hub-bg-3)}.BiQ1zG_detailPathText{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:0;overflow:hidden}.BiQ1zG_detailPathActions{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.BiQ1zG_detailPathBtn{width:28px;height:28px;color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:center;align-items:center;transition:color .12s,background .12s,border-color .12s;display:inline-flex}.BiQ1zG_detailPathBtn svg{width:15px;height:15px}.BiQ1zG_detailPathBtn:hover{color:#fff;background:var(--hub-brand);border-color:var(--hub-brand)}.BiQ1zG_detailStatusRunning,.BiQ1zG_detailStatusPending{border-radius:50%;flex-shrink:0;align-self:center;width:8px;height:8px}.BiQ1zG_detailStatusRunning{background:var(--hub-success)}.BiQ1zG_detailStatusPending{background:var(--hub-warning)}.BiQ1zG_detailStatusText{font-weight:500}";
769
779
  const tagId$10 = "dsh-plugin/Modal.module.css";
770
780
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$10) + "]") === null) {
771
781
  const tag = document.createElement("style");
@@ -780,136 +790,137 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
780
790
  css: css$10
781
791
  });
782
792
  var Modal_module_css_default = {
783
- "noticeHead": "BiQ1zG_noticeHead",
784
- "modalTitle": "BiQ1zG_modalTitle",
785
- "cliOnlyHint": "BiQ1zG_cliOnlyHint",
786
- "modalCmd": "BiQ1zG_modalCmd",
787
- "restartNowWarning": "BiQ1zG_restartNowWarning",
788
- "queuedHint": "BiQ1zG_queuedHint",
789
- "stripCancel": "BiQ1zG_stripCancel",
790
- "noticeTextOk": "BiQ1zG_noticeTextOk",
791
- "noticeTime": "BiQ1zG_noticeTime",
792
- "modalLink": "BiQ1zG_modalLink",
793
- "errorCopySoft": "BiQ1zG_errorCopySoft",
794
- "failedCopyHint": "BiQ1zG_failedCopyHint",
795
- "modalTitleBusy": "BiQ1zG_modalTitleBusy",
796
- "modalBody": "BiQ1zG_modalBody",
797
- "hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
798
- "modalInstall": "BiQ1zG_modalInstall",
799
- "confirmIcon": "BiQ1zG_confirmIcon",
800
- "modalWide": "BiQ1zG_modalWide",
801
- "toast": "BiQ1zG_toast",
802
- "failEmpty": "BiQ1zG_failEmpty",
803
- "detailRow": "BiQ1zG_detailRow",
804
- "progressTrack": "BiQ1zG_progressTrack",
805
- "result": "BiQ1zG_result",
806
- "modalClose": "BiQ1zG_modalClose",
807
- "helpModal": "BiQ1zG_helpModal",
808
- "resultCheckIcon": "BiQ1zG_resultCheckIcon",
809
- "modalActions": "BiQ1zG_modalActions",
810
- "pendingRowActions": "BiQ1zG_pendingRowActions",
811
- "overlay": "BiQ1zG_overlay",
812
- "noticeMain": "BiQ1zG_noticeMain",
793
+ "modalCmdText": "BiQ1zG_modalCmdText",
794
+ "detailValue": "BiQ1zG_detailValue",
795
+ "overlayIn": "BiQ1zG_overlayIn",
796
+ "queueSectionTitle": "BiQ1zG_queueSectionTitle",
813
797
  "errorHint": "BiQ1zG_errorHint",
814
- "dangerConfirm": "BiQ1zG_dangerConfirm",
815
- "noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
816
- "errorModal": "BiQ1zG_errorModal",
817
- "logModal": "BiQ1zG_logModal",
818
- "failNetworkTarget": "BiQ1zG_failNetworkTarget",
819
- "queueRowTarget": "BiQ1zG_queueRowTarget",
820
- "resultDesc": "BiQ1zG_resultDesc",
821
- "resultRestarting": "BiQ1zG_resultRestarting",
822
- "queueRow": "BiQ1zG_queueRow",
823
- "detailStars": "BiQ1zG_detailStars",
824
- "detailPathActions": "BiQ1zG_detailPathActions",
825
798
  "queueRowTrack": "BiQ1zG_queueRowTrack",
826
- "detailStatusRunning": "BiQ1zG_detailStatusRunning",
827
- "modalRow": "BiQ1zG_modalRow",
828
- "queueRowPct": "BiQ1zG_queueRowPct",
829
- "hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
830
- "modalCmdCopy": "BiQ1zG_modalCmdCopy",
831
- "noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
832
- "modalLabel": "BiQ1zG_modalLabel",
833
- "toastIn": "BiQ1zG_toastIn",
834
- "modalCancel": "BiQ1zG_modalCancel",
835
- "failList": "BiQ1zG_failList",
836
- "noticeRow": "BiQ1zG_noticeRow",
837
- "noticeRowMain": "BiQ1zG_noticeRowMain",
838
- "pendingRowStatus": "BiQ1zG_pendingRowStatus",
839
- "detailPath": "BiQ1zG_detailPath",
840
- "queueRowStatus": "BiQ1zG_queueRowStatus",
799
+ "failBigIssue": "BiQ1zG_failBigIssue",
800
+ "modalActions": "BiQ1zG_modalActions",
841
801
  "modalDesc": "BiQ1zG_modalDesc",
802
+ "errorCopySoft": "BiQ1zG_errorCopySoft",
803
+ "progress": "BiQ1zG_progress",
842
804
  "uninstallConfirm": "BiQ1zG_uninstallConfirm",
843
- "restartLater": "BiQ1zG_restartLater",
844
- "queueRowHead": "BiQ1zG_queueRowHead",
845
- "noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
846
- "resultTitle": "BiQ1zG_resultTitle",
847
- "resultCheck": "BiQ1zG_resultCheck",
848
- "progressHead": "BiQ1zG_progressHead",
849
- "detailValue": "BiQ1zG_detailValue",
850
805
  "detailMono": "BiQ1zG_detailMono",
851
- "noticeVersion": "BiQ1zG_noticeVersion",
806
+ "failNetworkTarget": "BiQ1zG_failNetworkTarget",
807
+ "noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
808
+ "noticeFoot": "BiQ1zG_noticeFoot",
809
+ "detailPathBtn": "BiQ1zG_detailPathBtn",
810
+ "modalLink": "BiQ1zG_modalLink",
811
+ "queuedHint": "BiQ1zG_queuedHint",
812
+ "confirmIcon": "BiQ1zG_confirmIcon",
813
+ "modalInstall": "BiQ1zG_modalInstall",
814
+ "overlay": "BiQ1zG_overlay",
852
815
  "aboutContent": "BiQ1zG_aboutContent",
853
- "modal": "BiQ1zG_modal",
816
+ "hubUpdateModal": "BiQ1zG_hubUpdateModal",
817
+ "noticeRowMain": "BiQ1zG_noticeRowMain",
818
+ "failKindUninstall": "BiQ1zG_failKindUninstall",
819
+ "hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
820
+ "modalBody": "BiQ1zG_modalBody",
821
+ "queueRowBody": "BiQ1zG_queueRowBody",
822
+ "modalLabel": "BiQ1zG_modalLabel",
823
+ "detailStars": "BiQ1zG_detailStars",
824
+ "helpModal": "BiQ1zG_helpModal",
825
+ "queueRowTarget": "BiQ1zG_queueRowTarget",
826
+ "resultCheckIcon": "BiQ1zG_resultCheckIcon",
827
+ "detailPath": "BiQ1zG_detailPath",
828
+ "queueRowPct": "BiQ1zG_queueRowPct",
854
829
  "modalValue": "BiQ1zG_modalValue",
855
830
  "errorBox": "BiQ1zG_errorBox",
856
- "failDiagBtn": "BiQ1zG_failDiagBtn",
857
- "detailGrid": "BiQ1zG_detailGrid",
858
- "noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
859
- "detailUpdateHint": "BiQ1zG_detailUpdateHint",
860
- "detailLink": "BiQ1zG_detailLink",
861
- "modalCmdText": "BiQ1zG_modalCmdText",
831
+ "modal": "BiQ1zG_modal",
832
+ "modalTitle": "BiQ1zG_modalTitle",
833
+ "modalCopy": "BiQ1zG_modalCopy",
834
+ "modalIn": "BiQ1zG_modalIn",
835
+ "trustHint": "BiQ1zG_trustHint",
836
+ "failList": "BiQ1zG_failList",
862
837
  "noticeRemove": "BiQ1zG_noticeRemove",
838
+ "queueRowHead": "BiQ1zG_queueRowHead",
839
+ "aboutMeta": "BiQ1zG_aboutMeta",
840
+ "failEmpty": "BiQ1zG_failEmpty",
841
+ "progressHead": "BiQ1zG_progressHead",
842
+ "failRepo": "BiQ1zG_failRepo",
843
+ "aboutModal": "BiQ1zG_aboutModal",
844
+ "toastIn": "BiQ1zG_toastIn",
863
845
  "progressFill": "BiQ1zG_progressFill",
864
- "noticeFoot": "BiQ1zG_noticeFoot",
865
- "failKind": "BiQ1zG_failKind",
866
- "detailDim": "BiQ1zG_detailDim",
867
- "queueRowBody": "BiQ1zG_queueRowBody",
846
+ "logModal": "BiQ1zG_logModal",
847
+ "modalTitleBusy": "BiQ1zG_modalTitleBusy",
848
+ "stripCancel": "BiQ1zG_stripCancel",
849
+ "progressFillFail": "BiQ1zG_progressFillFail",
850
+ "noticeTextOk": "BiQ1zG_noticeTextOk",
851
+ "failDiagBtn": "BiQ1zG_failDiagBtn",
852
+ "modalClose": "BiQ1zG_modalClose",
853
+ "toastFail": "BiQ1zG_toastFail",
854
+ "failMisjudgeLink": "BiQ1zG_failMisjudgeLink",
855
+ "pendingRowStatus": "BiQ1zG_pendingRowStatus",
856
+ "result": "BiQ1zG_result",
857
+ "failRow": "BiQ1zG_failRow",
858
+ "restartNowWarning": "BiQ1zG_restartNowWarning",
859
+ "modalCmdCopy": "BiQ1zG_modalCmdCopy",
860
+ "toast": "BiQ1zG_toast",
861
+ "pendingRowActions": "BiQ1zG_pendingRowActions",
862
+ "resultCheck": "BiQ1zG_resultCheck",
863
+ "modalWide": "BiQ1zG_modalWide",
864
+ "detailStatusPending": "BiQ1zG_detailStatusPending",
865
+ "modalRow": "BiQ1zG_modalRow",
866
+ "detailGrid": "BiQ1zG_detailGrid",
867
+ "failHead": "BiQ1zG_failHead",
868
+ "queueRowStatus": "BiQ1zG_queueRowStatus",
869
+ "errorTitle": "BiQ1zG_errorTitle",
870
+ "queueRow": "BiQ1zG_queueRow",
871
+ "noticeIgnore": "BiQ1zG_noticeIgnore",
868
872
  "queueSection": "BiQ1zG_queueSection",
869
- "linkIcon": "BiQ1zG_linkIcon",
870
- "noticeRowOk": "BiQ1zG_noticeRowOk",
871
- "detailModal": "BiQ1zG_detailModal",
872
- "failCopy": "BiQ1zG_failCopy",
873
- "failPrepareHint": "BiQ1zG_failPrepareHint",
874
- "detailStatusText": "BiQ1zG_detailStatusText",
875
- "confirmPrimary": "BiQ1zG_confirmPrimary",
876
- "restartNow": "BiQ1zG_restartNow",
873
+ "progressTrack": "BiQ1zG_progressTrack",
877
874
  "detailLabel": "BiQ1zG_detailLabel",
878
- "detailArrow": "BiQ1zG_detailArrow",
879
- "progress": "BiQ1zG_progress",
880
- "progressFillFail": "BiQ1zG_progressFillFail",
875
+ "noticeRowOk": "BiQ1zG_noticeRowOk",
881
876
  "progressText": "BiQ1zG_progressText",
882
- "modalCloseIcon": "BiQ1zG_modalCloseIcon",
883
- "noticeIgnore": "BiQ1zG_noticeIgnore",
877
+ "errorModal": "BiQ1zG_errorModal",
878
+ "noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
879
+ "noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
880
+ "confirmPrimary": "BiQ1zG_confirmPrimary",
881
+ "detailLink": "BiQ1zG_detailLink",
882
+ "modalCmd": "BiQ1zG_modalCmd",
883
+ "resultRestarting": "BiQ1zG_resultRestarting",
884
+ "failedCopyHint": "BiQ1zG_failedCopyHint",
884
885
  "noticeList": "BiQ1zG_noticeList",
885
- "failKindUninstall": "BiQ1zG_failKindUninstall",
886
- "queueSectionTitle": "BiQ1zG_queueSectionTitle",
887
- "confirmIconDanger": "BiQ1zG_confirmIconDanger",
888
- "noticeTextFail": "BiQ1zG_noticeTextFail",
889
- "failRepo": "BiQ1zG_failRepo",
890
- "aboutModal": "BiQ1zG_aboutModal",
891
- "overlayIn": "BiQ1zG_overlayIn",
892
- "queueRowDesc": "BiQ1zG_queueRowDesc",
893
- "failBigIssue": "BiQ1zG_failBigIssue",
894
- "confirmIconWrap": "BiQ1zG_confirmIconWrap",
886
+ "detailPathActions": "BiQ1zG_detailPathActions",
895
887
  "failClear": "BiQ1zG_failClear",
896
- "modalTitleQueued": "BiQ1zG_modalTitleQueued",
888
+ "noticeHead": "BiQ1zG_noticeHead",
889
+ "dangerConfirm": "BiQ1zG_dangerConfirm",
890
+ "noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
891
+ "hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
892
+ "modalCloseIcon": "BiQ1zG_modalCloseIcon",
893
+ "detailStatusText": "BiQ1zG_detailStatusText",
897
894
  "detailPathText": "BiQ1zG_detailPathText",
898
- "aboutMeta": "BiQ1zG_aboutMeta",
899
- "hubUpdateMetaItem": "BiQ1zG_hubUpdateMetaItem",
900
- "modalIn": "BiQ1zG_modalIn",
895
+ "cliOnlyHint": "BiQ1zG_cliOnlyHint",
896
+ "resultTitle": "BiQ1zG_resultTitle",
897
+ "confirmIconWrap": "BiQ1zG_confirmIconWrap",
898
+ "detailRow": "BiQ1zG_detailRow",
899
+ "detailDim": "BiQ1zG_detailDim",
900
+ "restartLater": "BiQ1zG_restartLater",
901
+ "noticeVersion": "BiQ1zG_noticeVersion",
902
+ "detailUpdateHint": "BiQ1zG_detailUpdateHint",
903
+ "linkIcon": "BiQ1zG_linkIcon",
904
+ "noticeRow": "BiQ1zG_noticeRow",
905
+ "modalCancel": "BiQ1zG_modalCancel",
906
+ "noticeTime": "BiQ1zG_noticeTime",
907
+ "failKind": "BiQ1zG_failKind",
901
908
  "failKindInstall": "BiQ1zG_failKindInstall",
902
- "modalCopy": "BiQ1zG_modalCopy",
903
- "toastFail": "BiQ1zG_toastFail",
904
- "detailStatusPending": "BiQ1zG_detailStatusPending",
905
- "failRow": "BiQ1zG_failRow",
906
- "hubUpdateModal": "BiQ1zG_hubUpdateModal",
909
+ "confirmIconDanger": "BiQ1zG_confirmIconDanger",
910
+ "hubUpdateMetaItem": "BiQ1zG_hubUpdateMetaItem",
911
+ "modalTitleQueued": "BiQ1zG_modalTitleQueued",
912
+ "detailStatusRunning": "BiQ1zG_detailStatusRunning",
913
+ "noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
914
+ "noticeMain": "BiQ1zG_noticeMain",
915
+ "queueRowDesc": "BiQ1zG_queueRowDesc",
916
+ "detailModal": "BiQ1zG_detailModal",
917
+ "failPrepareHint": "BiQ1zG_failPrepareHint",
918
+ "resultDesc": "BiQ1zG_resultDesc",
919
+ "detailArrow": "BiQ1zG_detailArrow",
920
+ "failCopy": "BiQ1zG_failCopy",
921
+ "noticeTextFail": "BiQ1zG_noticeTextFail",
907
922
  "modalHead": "BiQ1zG_modalHead",
908
- "trustHint": "BiQ1zG_trustHint",
909
- "errorTitle": "BiQ1zG_errorTitle",
910
- "noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
911
- "detailPathBtn": "BiQ1zG_detailPathBtn",
912
- "failHead": "BiQ1zG_failHead"
923
+ "restartNow": "BiQ1zG_restartNow"
913
924
  };
914
925
  //#endregion
915
926
  //#region src/server/services/install/release-target.ts
@@ -1023,7 +1034,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
1023
1034
  * tsdown 构建时用 define 把 __PLUGIN_VERSION__ 替换成 package.json 的版本号;
1024
1035
  * node --test 直接 import 本模块时该标识符不存在,typeof 守卫兜底为空串。
1025
1036
  */
1026
- const PLUGIN_VERSION = "1.6.7";
1037
+ const PLUGIN_VERSION = "1.6.9";
1027
1038
  const CATEGORY_ORDER = [
1028
1039
  "interface",
1029
1040
  "session",
@@ -1244,8 +1255,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
1244
1255
  repo: typeof raw.r.repo === "string" ? raw.r.repo : void 0,
1245
1256
  npmPackage: typeof raw.r.npmPackage === "string" ? raw.r.npmPackage : void 0
1246
1257
  } : void 0,
1247
- install: raw.wi === false || typeof raw.ic === "string" || typeof raw.igc === "string" ? {
1258
+ install: raw.wi === false || raw.mi === true || typeof raw.ic === "string" || typeof raw.igc === "string" ? {
1248
1259
  webInstallable: raw.wi === false ? false : void 0,
1260
+ manualInstall: raw.mi === true ? true : void 0,
1249
1261
  command: typeof raw.ic === "string" ? raw.ic : void 0,
1250
1262
  githubCommand: typeof raw.igc === "string" ? raw.igc : void 0
1251
1263
  } : void 0,
@@ -1659,7 +1671,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
1659
1671
  * registry 真实发布时间下发(同源),据此判断最准。门槛命中要单列成 `pending` 而不是
1660
1672
  * 落回「无更新」——回落会让弹窗在本机版本落后时谎称「已是最新」。
1661
1673
  */
1662
- const hubCurrentVersion = "1.6.7";
1674
+ const hubCurrentVersion = "1.6.9";
1663
1675
  const hubUpdateState = (() => {
1664
1676
  if (!hubUpdateInfo) return "none";
1665
1677
  if (hubUpdateInfo.version === hubCurrentVersion) return "latest";
@@ -1903,6 +1915,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
1903
1915
  if (/\bERR_PNPM_NO_MATCHING_VERSION\b|\bETARGET\b|No matching version found/i.test(message)) return "registryVersionStale";
1904
1916
  if (/\bERR_PNPM_LINKED_PKG_DIR_NOT_FOUND\b|Could not install from .+ as it does not exist/i.test(message)) return "pnpmLinkedDirMissing";
1905
1917
  if (/ERR_PNPM_PREPARE_PACKAGE|ELIFECYCLE|prepare-guard/i.test(message) || /Command failed/.test(message)) return "pluginPrepare";
1918
+ if (/plugin is not installed|plugin cannot be uninstalled here|already queued:|^already installed: \S+$/im.test(message)) return "hubState";
1919
+ if (/^\[timed out\]$/m.test(message)) return "timeout";
1906
1920
  return "hub";
1907
1921
  }
1908
1922
  /** 从服务端 `[npm-too-low]` 标记行提取本机 npm 版本(如 `[npm-too-low] npm@11.3.0` → "11.3.0");
@@ -2053,6 +2067,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
2053
2067
  case "pnpmIgnoredBuild": return "build scripts blocked by pnpm allowlist";
2054
2068
  case "pluginPrepare": return "plugin distribution incomplete";
2055
2069
  case "network": return "network failure on the user side";
2070
+ case "hubState": return "stale install state in the plugin hub";
2071
+ case "timeout": return "install timed out";
2056
2072
  case "hub": return "install failed (cause unclassified)";
2057
2073
  default: return "plugin install failed";
2058
2074
  }
@@ -2134,16 +2150,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
2134
2150
  }
2135
2151
  return url;
2136
2152
  }
2137
- /**
2138
- * 插件中心自身仓库的预填 Issue 链接:用于「非插件侧」失败(无法识别的未知原因、
2139
- * 以及 pnpm allowBuilds 拦截这类不再归到插件作者的情形)。正文带上目标插件与完整
2140
- * 错误摘要,供插件中心维护者分诊 —— 不再把环境问题/插件中心自身问题误投给插件作者。
2141
- */
2142
- function hubIssueUrl(pluginRepo, message, env, command, attempts) {
2153
+ function hubIssueUrl(pluginRepo, message, env, command, attempts, variant = "triage") {
2143
2154
  const kind = classifyFailure(message);
2144
2155
  const executed = executedCommandOf(command, attempts);
2145
2156
  const repo = pluginRepo && pluginRepo.trim() !== "" ? pluginRepo.trim() : "unknown";
2146
- const title = `[dsh-plugin-hub] ${reasonTitleOf(kind)}: ${repo}`;
2157
+ const title = variant === "misjudge" ? `[dsh-plugin-hub] possible misjudgment: ${repo}` : `[dsh-plugin-hub] ${reasonTitleOf(kind)}: ${repo}`;
2147
2158
  const code = coreErrorCode(message);
2148
2159
  const build = (coreChars) => {
2149
2160
  const body = [
@@ -2151,7 +2162,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
2151
2162
  `- Auto-classified cause: ${reasonTitleOf(kind)}`,
2152
2163
  `- Target plugin: \`${repo}\``,
2153
2164
  ...code ? [`- Key error: \`${code}\``] : [],
2154
- "- Why filed here: the installer only routes a failure to the plugin repo when there is positive evidence the plugin build itself failed (pluginPrepare). This failure does not match that, so it is routed here for triage.",
2165
+ ...variant === "misjudge" ? ["- Filed from: the plugin-prepare path (which normally routes to the plugin repo) — filed here because that verdict may be our own misjudgment.", "- Source of that verdict: produced by dsh-plugin-hub's own pre/post-install check, not by pnpm output."] : ["- Why filed here: the installer only routes a failure to the plugin repo when there is positive evidence the plugin build itself failed (pluginPrepare). This failure does not match that, so it is routed here for triage."],
2155
2166
  "",
2156
2167
  `## [DSH Plugin 插件市场](${SITE_URL}) · 安装 Plugin 失败错误信息`,
2157
2168
  `本错误信息由 [dsh-plugin-hub](${GITHUB_URL}) 插件市场的安装程序自动生成,随本次安装失败一并提交。`,
@@ -3433,7 +3444,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
3433
3444
  title: t("copyInstallCommand"),
3434
3445
  role: "button",
3435
3446
  tabIndex: 0
3436
- }, (0, react.createElement)("span", { className: Modal_module_css_default.modalCmdText }, globalNpm !== void 0 && globalNpm.length > 0 ? `npm install -g ${globalNpm.join(" ")}` : customTarget ? `pnpm add ${customTarget}` : installCommandOf(plugin)), (0, react.createElement)("span", { className: Modal_module_css_default.modalCmdCopy }, (0, react.createElement)(CopyIcon), t("copyCmdLabel"))), globalNpm !== void 0 && globalNpm.length > 0 ? (0, react.createElement)("div", { className: Modal_module_css_default.cliOnlyHint }, t("globalNpmHint")) : null, cliOnly ? (0, react.createElement)("div", { className: Modal_module_css_default.cliOnlyHint }, t("cliOnlyHint")) : null, task && task.status === "pending" ? (0, react.createElement)("div", { className: Modal_module_css_default.queuedHint }, t("queuedHint")) : null, task ? (0, react.createElement)(ProgressView, { task }) : null, task && task.status === "failed" ? (0, react.createElement)("div", { className: Modal_module_css_default.failedCopyHint }, t("failedCopyHint")) : null, (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, (0, react.createElement)("button", {
3447
+ }, (0, react.createElement)("span", { className: Modal_module_css_default.modalCmdText }, globalNpm !== void 0 && globalNpm.length > 0 ? `npm install -g ${globalNpm.join(" ")}` : customTarget ? `pnpm add ${customTarget}` : installCommandOf(plugin)), (0, react.createElement)("span", { className: Modal_module_css_default.modalCmdCopy }, (0, react.createElement)(CopyIcon), t("copyCmdLabel"))), globalNpm !== void 0 && globalNpm.length > 0 ? (0, react.createElement)("div", { className: Modal_module_css_default.cliOnlyHint }, t("globalNpmHint")) : null, cliOnly ? (0, react.createElement)("div", { className: Modal_module_css_default.cliOnlyHint }, t(plugin?.install?.manualInstall === true ? "manualInstallOnlyHint" : "cliOnlyHint")) : null, task && task.status === "pending" ? (0, react.createElement)("div", { className: Modal_module_css_default.queuedHint }, t("queuedHint")) : null, task ? (0, react.createElement)(ProgressView, { task }) : null, task && task.status === "failed" ? (0, react.createElement)("div", { className: Modal_module_css_default.failedCopyHint }, t("failedCopyHint")) : null, (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, (0, react.createElement)("button", {
3437
3448
  className: Modal_module_css_default.modalCopy,
3438
3449
  disabled: busy,
3439
3450
  onClick: onCopy
@@ -3543,13 +3554,23 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
3543
3554
  className: Modal_module_css_default.failDiagBtn,
3544
3555
  onClick: onRunDiagnostics
3545
3556
  }, t("failNetworkRunDiag")) : null
3546
- ]) : failureKind === "pluginPrepare" ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, /\[packaging\]/i.test(message) ? t("failPackagingHint") : t("failPrepareHint")), repo ? (0, react.createElement)("a", {
3547
- className: Modal_module_css_default.failBigIssue,
3548
- href: pluginIssueUrl(repo, message, env, command, attempts),
3549
- target: "_blank",
3550
- rel: "noopener noreferrer",
3551
- title: t("failIssueHint")
3552
- }, t("failIssueBig")) : null]) : (0, react.createElement)("div", null, [failureKind === "pnpmIgnoredBuild" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failIgnoredBuild")) : (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failUnclassifiedHint")), (0, react.createElement)("a", {
3557
+ ]) : failureKind === "pluginPrepare" ? (0, react.createElement)("div", null, [
3558
+ (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, /\[packaging\]/i.test(message) ? t("failPackagingHint") : t("failPrepareHint")),
3559
+ repo ? (0, react.createElement)("a", {
3560
+ className: Modal_module_css_default.failBigIssue,
3561
+ href: pluginIssueUrl(repo, message, env, command, attempts),
3562
+ target: "_blank",
3563
+ rel: "noopener noreferrer",
3564
+ title: t("failIssueHint")
3565
+ }, t("failIssueBig")) : null,
3566
+ repo ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failMisjudgeHint")), (0, react.createElement)("a", {
3567
+ className: Modal_module_css_default.failMisjudgeLink,
3568
+ href: hubIssueUrl(repo, message, env, command, attempts, "misjudge"),
3569
+ target: "_blank",
3570
+ rel: "noopener noreferrer",
3571
+ title: t("failHubIssueHint")
3572
+ }, t("failMisjudgeLink"))]) : null
3573
+ ]) : failureKind === "hubState" ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failHubStateHint"))]) : failureKind === "timeout" ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failTimeoutHint"))]) : (0, react.createElement)("div", null, [failureKind === "pnpmIgnoredBuild" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failIgnoredBuild")) : (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failUnclassifiedHint")), (0, react.createElement)("a", {
3553
3574
  className: Modal_module_css_default.failBigIssue,
3554
3575
  href: hubIssueUrl(repo, message, env, command, attempts),
3555
3576
  target: "_blank",
@@ -4124,13 +4145,25 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4124
4145
  onClick: onRunDiagnostics
4125
4146
  }, t("failNetworkRunDiag")) : null
4126
4147
  ]);
4127
- if (kind === "pluginPrepare") return (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, /\[packaging\]/i.test(r.message) ? t("failPackagingHint") : t("failPrepareHint")), r.repo && shownRepo ? (0, react.createElement)("a", {
4128
- className: Modal_module_css_default.failBigIssue,
4129
- href: pluginIssueUrl(shownRepo, r.message, env, r.command, r.attempts),
4130
- target: "_blank",
4131
- rel: "noopener noreferrer",
4132
- title: t("failIssueHint")
4133
- }, t("failIssueBig")) : null]);
4148
+ if (kind === "pluginPrepare") return (0, react.createElement)("div", null, [
4149
+ (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, /\[packaging\]/i.test(r.message) ? t("failPackagingHint") : t("failPrepareHint")),
4150
+ r.repo && shownRepo ? (0, react.createElement)("a", {
4151
+ className: Modal_module_css_default.failBigIssue,
4152
+ href: pluginIssueUrl(shownRepo, r.message, env, r.command, r.attempts),
4153
+ target: "_blank",
4154
+ rel: "noopener noreferrer",
4155
+ title: t("failIssueHint")
4156
+ }, t("failIssueBig")) : null,
4157
+ r.repo && shownRepo ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failMisjudgeHint")), (0, react.createElement)("a", {
4158
+ className: Modal_module_css_default.failMisjudgeLink,
4159
+ href: hubIssueUrl(shownRepo, r.message, env, r.command, r.attempts, "misjudge"),
4160
+ target: "_blank",
4161
+ rel: "noopener noreferrer",
4162
+ title: t("failHubIssueHint")
4163
+ }, t("failMisjudgeLink"))]) : null
4164
+ ]);
4165
+ if (kind === "hubState") return (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failHubStateHint"))]);
4166
+ if (kind === "timeout") return (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failTimeoutHint"))]);
4134
4167
  return (0, react.createElement)("div", null, [kind === "pnpmIgnoredBuild" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failIgnoredBuild")) : (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failUnclassifiedHint")), (0, react.createElement)("a", {
4135
4168
  className: Modal_module_css_default.failBigIssue,
4136
4169
  href: hubIssueUrl(shownRepo || r.repo, r.message, env, r.command, r.attempts),
@@ -4318,40 +4351,40 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4318
4351
  css: css$9
4319
4352
  });
4320
4353
  var List_module_css_default = {
4321
- "cardTitle": "_3XaZHa_cardTitle",
4322
- "footer": "_3XaZHa_footer",
4323
- "versionBadge": "_3XaZHa_versionBadge",
4354
+ "moreSentinel": "_3XaZHa_moreSentinel",
4355
+ "updateBadge": "_3XaZHa_updateBadge",
4356
+ "cardHead": "_3XaZHa_cardHead",
4357
+ "cardSide": "_3XaZHa_cardSide",
4358
+ "installBtnUpdate": "_3XaZHa_installBtnUpdate",
4359
+ "topic": "_3XaZHa_topic",
4360
+ "installBtn": "_3XaZHa_installBtn",
4361
+ "actions": "_3XaZHa_actions",
4362
+ "retryBtn": "_3XaZHa_retryBtn",
4363
+ "desc": "_3XaZHa_desc",
4364
+ "date": "_3XaZHa_date",
4365
+ "card": "_3XaZHa_card",
4324
4366
  "stateTitle": "_3XaZHa_stateTitle",
4325
- "state": "_3XaZHa_state",
4326
- "body": "_3XaZHa_body",
4327
- "list": "_3XaZHa_list",
4328
4367
  "categoryBadge": "_3XaZHa_categoryBadge",
4329
- "installBtnUpdate": "_3XaZHa_installBtnUpdate",
4368
+ "stateDesc": "_3XaZHa_stateDesc",
4369
+ "versionBadge": "_3XaZHa_versionBadge",
4330
4370
  "detailBtn": "_3XaZHa_detailBtn",
4371
+ "list": "_3XaZHa_list",
4372
+ "fork": "_3XaZHa_fork",
4331
4373
  "stats": "_3XaZHa_stats",
4374
+ "state": "_3XaZHa_state",
4332
4375
  "cardMain": "_3XaZHa_cardMain",
4333
- "cardSide": "_3XaZHa_cardSide",
4334
- "stateActions": "_3XaZHa_stateActions",
4335
- "footLink": "_3XaZHa_footLink",
4376
+ "cardTitle": "_3XaZHa_cardTitle",
4377
+ "topics": "_3XaZHa_topics",
4336
4378
  "uninstallBtn": "_3XaZHa_uninstallBtn",
4379
+ "footer": "_3XaZHa_footer",
4337
4380
  "installBtnInstalled": "_3XaZHa_installBtnInstalled",
4338
4381
  "verified": "_3XaZHa_verified",
4339
- "installBtn": "_3XaZHa_installBtn",
4340
- "card": "_3XaZHa_card",
4341
- "diagBtn": "_3XaZHa_diagBtn",
4342
- "stateDesc": "_3XaZHa_stateDesc",
4343
- "star": "_3XaZHa_star",
4344
- "actions": "_3XaZHa_actions",
4345
- "topics": "_3XaZHa_topics",
4346
- "cardHead": "_3XaZHa_cardHead",
4347
- "fork": "_3XaZHa_fork",
4348
- "retryBtn": "_3XaZHa_retryBtn",
4349
- "topic": "_3XaZHa_topic",
4382
+ "stateActions": "_3XaZHa_stateActions",
4350
4383
  "installBtnCopied": "_3XaZHa_installBtnCopied",
4351
- "desc": "_3XaZHa_desc",
4352
- "updateBadge": "_3XaZHa_updateBadge",
4353
- "moreSentinel": "_3XaZHa_moreSentinel",
4354
- "date": "_3XaZHa_date"
4384
+ "body": "_3XaZHa_body",
4385
+ "star": "_3XaZHa_star",
4386
+ "footLink": "_3XaZHa_footLink",
4387
+ "diagBtn": "_3XaZHa_diagBtn"
4355
4388
  };
4356
4389
  //#endregion
4357
4390
  //#region src/client/hooks/useIncrementalList.ts
@@ -4558,14 +4591,14 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4558
4591
  css: css$8
4559
4592
  });
4560
4593
  var SectionTabs_module_css_default = {
4594
+ "root": "_7tvizq_root",
4561
4595
  "noticeCount": "_7tvizq_noticeCount",
4596
+ "tab": "_7tvizq_tab",
4597
+ "noticeBtn": "_7tvizq_noticeBtn",
4562
4598
  "tabIcon": "_7tvizq_tabIcon",
4563
- "root": "_7tvizq_root",
4564
- "tabCountActive": "_7tvizq_tabCountActive",
4565
4599
  "tabCount": "_7tvizq_tabCount",
4566
- "noticeBtn": "_7tvizq_noticeBtn",
4600
+ "tabCountActive": "_7tvizq_tabCountActive",
4567
4601
  "noticeIcon": "_7tvizq_noticeIcon",
4568
- "tab": "_7tvizq_tab",
4569
4602
  "tabActive": "_7tvizq_tabActive"
4570
4603
  };
4571
4604
  //#endregion
@@ -4643,42 +4676,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4643
4676
  css: css$7
4644
4677
  });
4645
4678
  var InstalledView_module_css_default = {
4646
- "rowRestart": "_1nXeGW_rowRestart",
4647
- "rowUpdate": "_1nXeGW_rowUpdate",
4648
- "exampleRow": "_1nXeGW_exampleRow",
4649
- "exampleBadge": "_1nXeGW_exampleBadge",
4650
- "list": "_1nXeGW_list",
4651
- "rowTitle": "_1nXeGW_rowTitle",
4652
- "segRow": "_1nXeGW_segRow",
4653
- "rowRepo": "_1nXeGW_rowRepo",
4654
- "rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
4679
+ "searchInput": "_1nXeGW_searchInput",
4680
+ "rowMeta": "_1nXeGW_rowMeta",
4655
4681
  "statusPending": "_1nXeGW_statusPending",
4656
- "rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
4657
- "rowUninstall": "_1nXeGW_rowUninstall",
4658
- "segLabel": "_1nXeGW_segLabel",
4682
+ "rowTitleLine": "_1nXeGW_rowTitleLine",
4683
+ "segRow": "_1nXeGW_segRow",
4659
4684
  "segBtnActive": "_1nXeGW_segBtnActive",
4685
+ "statusInactive": "_1nXeGW_statusInactive",
4686
+ "rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
4687
+ "rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
4688
+ "searchWrap": "_1nXeGW_searchWrap",
4689
+ "rowSourceTag": "_1nXeGW_rowSourceTag",
4690
+ "rowMain": "_1nXeGW_rowMain",
4660
4691
  "versionBadge": "_1nXeGW_versionBadge",
4661
- "toolbar": "_1nXeGW_toolbar",
4662
- "emptyTitle": "_1nXeGW_emptyTitle",
4692
+ "rowRepo": "_1nXeGW_rowRepo",
4693
+ "rowActions": "_1nXeGW_rowActions",
4694
+ "rowTitle": "_1nXeGW_rowTitle",
4695
+ "list": "_1nXeGW_list",
4663
4696
  "rowDesc": "_1nXeGW_rowDesc",
4664
- "emptyDesc": "_1nXeGW_emptyDesc",
4665
- "empty": "_1nXeGW_empty",
4666
- "statusDot": "_1nXeGW_statusDot",
4667
- "rowTitleLine": "_1nXeGW_rowTitleLine",
4697
+ "exampleBadge": "_1nXeGW_exampleBadge",
4668
4698
  "rowCategory": "_1nXeGW_rowCategory",
4669
- "searchInput": "_1nXeGW_searchInput",
4670
- "segGroup": "_1nXeGW_segGroup",
4699
+ "emptyTitle": "_1nXeGW_emptyTitle",
4700
+ "updateBadge": "_1nXeGW_updateBadge",
4701
+ "row": "_1nXeGW_row",
4702
+ "exampleRow": "_1nXeGW_exampleRow",
4703
+ "emptyDesc": "_1nXeGW_emptyDesc",
4671
4704
  "segBtn": "_1nXeGW_segBtn",
4672
- "rowActions": "_1nXeGW_rowActions",
4705
+ "toolbar": "_1nXeGW_toolbar",
4706
+ "rowRestart": "_1nXeGW_rowRestart",
4707
+ "segLabel": "_1nXeGW_segLabel",
4673
4708
  "rowDetail": "_1nXeGW_rowDetail",
4674
- "rowMain": "_1nXeGW_rowMain",
4675
- "updateBadge": "_1nXeGW_updateBadge",
4709
+ "statusDot": "_1nXeGW_statusDot",
4710
+ "rowUpdate": "_1nXeGW_rowUpdate",
4711
+ "rowUninstall": "_1nXeGW_rowUninstall",
4676
4712
  "root": "_1nXeGW_root",
4677
- "rowSourceTag": "_1nXeGW_rowSourceTag",
4678
- "rowMeta": "_1nXeGW_rowMeta",
4679
- "row": "_1nXeGW_row",
4680
- "statusInactive": "_1nXeGW_statusInactive",
4681
- "searchWrap": "_1nXeGW_searchWrap"
4713
+ "empty": "_1nXeGW_empty",
4714
+ "segGroup": "_1nXeGW_segGroup"
4682
4715
  };
4683
4716
  //#endregion
4684
4717
  //#region src/client/components/views/InstalledView.tsx
@@ -4927,28 +4960,28 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4927
4960
  css: css$6
4928
4961
  });
4929
4962
  var CustomInstallView_module_css_default = {
4930
- "installLabel": "zISxCG_installLabel",
4931
- "desc": "zISxCG_desc",
4932
- "installCardHead": "zISxCG_installCardHead",
4933
4963
  "installHelpBtn": "zISxCG_installHelpBtn",
4934
- "helpBody": "zISxCG_helpBody",
4935
- "installCards": "zISxCG_installCards",
4936
- "helpLine": "zISxCG_helpLine",
4937
- "helpNote": "zISxCG_helpNote",
4964
+ "channelOffText": "zISxCG_channelOffText",
4965
+ "installCard": "zISxCG_installCard",
4938
4966
  "installBtn": "zISxCG_installBtn",
4939
4967
  "installInsertBtn": "zISxCG_installInsertBtn",
4940
- "root": "zISxCG_root",
4941
- "channelOffText": "zISxCG_channelOffText",
4968
+ "installError": "zISxCG_installError",
4969
+ "installRow": "zISxCG_installRow",
4970
+ "installCardDisabled": "zISxCG_installCardDisabled",
4971
+ "desc": "zISxCG_desc",
4942
4972
  "channelOffBtn": "zISxCG_channelOffBtn",
4973
+ "channelOff": "zISxCG_channelOff",
4943
4974
  "helpCmd": "zISxCG_helpCmd",
4975
+ "helpNote": "zISxCG_helpNote",
4976
+ "helpBody": "zISxCG_helpBody",
4977
+ "root": "zISxCG_root",
4978
+ "installLabel": "zISxCG_installLabel",
4979
+ "helpLine": "zISxCG_helpLine",
4980
+ "installCardHead": "zISxCG_installCardHead",
4944
4981
  "installExample": "zISxCG_installExample",
4945
- "channelOff": "zISxCG_channelOff",
4946
- "installCardDisabled": "zISxCG_installCardDisabled",
4947
- "installRow": "zISxCG_installRow",
4948
4982
  "installInputError": "zISxCG_installInputError",
4949
- "installCard": "zISxCG_installCard",
4950
- "installError": "zISxCG_installError",
4951
- "installInput": "zISxCG_installInput"
4983
+ "installInput": "zISxCG_installInput",
4984
+ "installCards": "zISxCG_installCards"
4952
4985
  };
4953
4986
  //#endregion
4954
4987
  //#region src/client/components/views/CustomInstallView.tsx
@@ -5238,30 +5271,30 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
5238
5271
  css: css$5
5239
5272
  });
5240
5273
  var SettingsView_module_css_default = {
5241
- "settingLabel": "_506LLG_settingLabel",
5274
+ "settingControl": "_506LLG_settingControl",
5275
+ "proxyHint": "_506LLG_proxyHint",
5276
+ "proxyHintOk": "_506LLG_proxyHintOk",
5242
5277
  "textInput": "_506LLG_textInput",
5278
+ "proxyHintFail": "_506LLG_proxyHintFail",
5243
5279
  "navItem": "_506LLG_navItem",
5244
- "pageDesc": "_506LLG_pageDesc",
5245
- "proxyHintOk": "_506LLG_proxyHintOk",
5246
- "pageHeader": "_506LLG_pageHeader",
5247
- "content": "_506LLG_content",
5248
- "proxyHint": "_506LLG_proxyHint",
5280
+ "controlDropdown": "_506LLG_controlDropdown",
5281
+ "settingRow": "_506LLG_settingRow",
5249
5282
  "proxyControl": "_506LLG_proxyControl",
5283
+ "settingLabel": "_506LLG_settingLabel",
5250
5284
  "settingRowStack": "_506LLG_settingRowStack",
5251
- "sidebar": "_506LLG_sidebar",
5252
- "settingTitle": "_506LLG_settingTitle",
5253
- "settingRow": "_506LLG_settingRow",
5254
- "controlDropdown": "_506LLG_controlDropdown",
5285
+ "pageHeader": "_506LLG_pageHeader",
5255
5286
  "settingControlStack": "_506LLG_settingControlStack",
5287
+ "pageTitle": "_506LLG_pageTitle",
5288
+ "resetBtn": "_506LLG_resetBtn",
5256
5289
  "root": "_506LLG_root",
5257
- "settingDesc": "_506LLG_settingDesc",
5258
5290
  "navItemActive": "_506LLG_navItemActive",
5259
5291
  "card": "_506LLG_card",
5260
- "proxyHintFail": "_506LLG_proxyHintFail",
5261
- "pageTitle": "_506LLG_pageTitle",
5262
5292
  "navIcon": "_506LLG_navIcon",
5263
- "settingControl": "_506LLG_settingControl",
5264
- "resetBtn": "_506LLG_resetBtn"
5293
+ "settingTitle": "_506LLG_settingTitle",
5294
+ "sidebar": "_506LLG_sidebar",
5295
+ "settingDesc": "_506LLG_settingDesc",
5296
+ "pageDesc": "_506LLG_pageDesc",
5297
+ "content": "_506LLG_content"
5265
5298
  };
5266
5299
  //#endregion
5267
5300
  //#region \0dsh-css:src/client/styles/Dropdown.module.css.mjs
@@ -5280,18 +5313,18 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
5280
5313
  css: css$4
5281
5314
  });
5282
5315
  var Dropdown_module_css_default = {
5283
- "dropdownArrow": "B_Gxsq_dropdownArrow",
5284
- "dropdownItem": "B_Gxsq_dropdownItem",
5285
- "dropdownCount": "B_Gxsq_dropdownCount",
5286
- "dropdownCountActive": "B_Gxsq_dropdownCountActive",
5287
- "dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen",
5288
- "dropdownItemActive": "B_Gxsq_dropdownItemActive",
5289
- "dropdown": "B_Gxsq_dropdown",
5290
5316
  "dropdownFill": "B_Gxsq_dropdownFill",
5291
5317
  "dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
5318
+ "dropdownCount": "B_Gxsq_dropdownCount",
5319
+ "dropdown": "B_Gxsq_dropdown",
5320
+ "dropdownLabel": "B_Gxsq_dropdownLabel",
5321
+ "dropdownCountActive": "B_Gxsq_dropdownCountActive",
5292
5322
  "dropdownPanel": "B_Gxsq_dropdownPanel",
5323
+ "dropdownItem": "B_Gxsq_dropdownItem",
5324
+ "dropdownItemActive": "B_Gxsq_dropdownItemActive",
5293
5325
  "dropdownBtn": "B_Gxsq_dropdownBtn",
5294
- "dropdownLabel": "B_Gxsq_dropdownLabel"
5326
+ "dropdownArrow": "B_Gxsq_dropdownArrow",
5327
+ "dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen"
5295
5328
  };
5296
5329
  //#endregion
5297
5330
  //#region \0dsh-css:src/client/styles/Toggle.module.css.mjs
@@ -5310,8 +5343,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
5310
5343
  css: css$3
5311
5344
  });
5312
5345
  var Toggle_module_css_default = {
5313
- "toggleOn": "k-cD4G_toggleOn",
5314
5346
  "knob": "k-cD4G_knob",
5347
+ "toggleOn": "k-cD4G_toggleOn",
5315
5348
  "toggle": "k-cD4G_toggle"
5316
5349
  };
5317
5350
  //#endregion
@@ -5412,29 +5445,29 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
5412
5445
  css: css$2
5413
5446
  });
5414
5447
  var DiagnosticsView_module_css_default = {
5415
- "summaryFail": "k9eRya_summaryFail",
5416
- "envLabel": "k9eRya_envLabel",
5417
- "badgeOk": "k9eRya_badgeOk",
5418
- "panel": "k9eRya_panel",
5419
- "runBtn": "k9eRya_runBtn",
5448
+ "name": "k9eRya_name",
5449
+ "badgeRunning": "k9eRya_badgeRunning",
5420
5450
  "diagPulse": "k9eRya_diagPulse",
5421
- "envRow": "k9eRya_envRow",
5422
5451
  "display": "k9eRya_display",
5423
- "summaryRunning": "k9eRya_summaryRunning",
5424
5452
  "badgeFail": "k9eRya_badgeFail",
5425
- "head": "k9eRya_head",
5426
- "badge": "k9eRya_badge",
5453
+ "row": "k9eRya_row",
5427
5454
  "badgeIdle": "k9eRya_badgeIdle",
5428
- "headHint": "k9eRya_headHint",
5455
+ "badgeOk": "k9eRya_badgeOk",
5456
+ "envCopyBtn": "k9eRya_envCopyBtn",
5457
+ "summary": "k9eRya_summary",
5458
+ "summaryFail": "k9eRya_summaryFail",
5459
+ "summaryRunning": "k9eRya_summaryRunning",
5460
+ "panel": "k9eRya_panel",
5461
+ "summaryOk": "k9eRya_summaryOk",
5462
+ "envRow": "k9eRya_envRow",
5463
+ "runBtn": "k9eRya_runBtn",
5464
+ "head": "k9eRya_head",
5429
5465
  "envDesc": "k9eRya_envDesc",
5430
5466
  "envTitle": "k9eRya_envTitle",
5431
- "row": "k9eRya_row",
5432
- "summaryOk": "k9eRya_summaryOk",
5433
- "name": "k9eRya_name",
5434
- "summary": "k9eRya_summary",
5467
+ "envLabel": "k9eRya_envLabel",
5468
+ "headHint": "k9eRya_headHint",
5435
5469
  "meta": "k9eRya_meta",
5436
- "envCopyBtn": "k9eRya_envCopyBtn",
5437
- "badgeRunning": "k9eRya_badgeRunning"
5470
+ "badge": "k9eRya_badge"
5438
5471
  };
5439
5472
  //#endregion
5440
5473
  //#region src/client/components/views/DiagnosticsView.tsx
@@ -5612,57 +5645,57 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
5612
5645
  css: css$1
5613
5646
  });
5614
5647
  var LogsView_module_css_default = {
5648
+ "headHint": "_3j77BW_headHint",
5649
+ "badgeInfo": "_3j77BW_badgeInfo",
5650
+ "logList": "_3j77BW_logList",
5615
5651
  "badgeDebug": "_3j77BW_badgeDebug",
5616
- "previewRow": "_3j77BW_previewRow",
5617
- "pathRow": "_3j77BW_pathRow",
5618
- "pathLabel": "_3j77BW_pathLabel",
5619
- "time": "_3j77BW_time",
5620
- "pathDraft": "_3j77BW_pathDraft",
5652
+ "footPath": "_3j77BW_footPath",
5653
+ "filterChipActive": "_3j77BW_filterChipActive",
5621
5654
  "more": "_3j77BW_more",
5655
+ "catBadge": "_3j77BW_catBadge",
5656
+ "empty": "_3j77BW_empty",
5657
+ "pathDialogRow": "_3j77BW_pathDialogRow",
5658
+ "clearBtn": "_3j77BW_clearBtn",
5622
5659
  "entry": "_3j77BW_entry",
5623
- "footPath": "_3j77BW_footPath",
5624
- "searchInput": "_3j77BW_searchInput",
5625
- "event": "_3j77BW_event",
5626
- "head": "_3j77BW_head",
5627
- "badge": "_3j77BW_badge",
5628
- "badgeWarn": "_3j77BW_badgeWarn",
5629
- "pathDialogHint": "_3j77BW_pathDialogHint",
5660
+ "panel": "_3j77BW_panel",
5661
+ "catSystem": "_3j77BW_catSystem",
5662
+ "pathDraft": "_3j77BW_pathDraft",
5663
+ "catDiagnostics": "_3j77BW_catDiagnostics",
5630
5664
  "btn": "_3j77BW_btn",
5631
- "foot": "_3j77BW_foot",
5632
5665
  "pathDialog": "_3j77BW_pathDialog",
5633
- "catInstall": "_3j77BW_catInstall",
5634
- "message": "_3j77BW_message",
5635
- "footFail": "_3j77BW_footFail",
5636
- "headActions": "_3j77BW_headActions",
5637
- "footCount": "_3j77BW_footCount",
5638
- "catSystem": "_3j77BW_catSystem",
5639
- "badgeInfo": "_3j77BW_badgeInfo",
5640
- "pathDialogRow": "_3j77BW_pathDialogRow",
5641
- "clearBtn": "_3j77BW_clearBtn",
5642
- "empty": "_3j77BW_empty",
5643
- "pathText": "_3j77BW_pathText",
5644
- "moreEnd": "_3j77BW_moreEnd",
5645
- "headHint": "_3j77BW_headHint",
5646
- "catSettings": "_3j77BW_catSettings",
5647
- "catBadge": "_3j77BW_catBadge",
5648
- "pathDialogFoot": "_3j77BW_pathDialogFoot",
5666
+ "filterBar": "_3j77BW_filterBar",
5667
+ "foot": "_3j77BW_foot",
5649
5668
  "badgeSuccess": "_3j77BW_badgeSuccess",
5650
- "catUninstall": "_3j77BW_catUninstall",
5651
- "catUpdate": "_3j77BW_catUpdate",
5652
- "catDiagnostics": "_3j77BW_catDiagnostics",
5653
- "list": "_3j77BW_list",
5669
+ "message": "_3j77BW_message",
5670
+ "pathRow": "_3j77BW_pathRow",
5671
+ "previewRow": "_3j77BW_previewRow",
5654
5672
  "footActions": "_3j77BW_footActions",
5673
+ "list": "_3j77BW_list",
5655
5674
  "badgeError": "_3j77BW_badgeError",
5656
- "filterChipActive": "_3j77BW_filterChipActive",
5675
+ "footCount": "_3j77BW_footCount",
5657
5676
  "linkBtn": "_3j77BW_linkBtn",
5677
+ "head": "_3j77BW_head",
5678
+ "badgeWarn": "_3j77BW_badgeWarn",
5679
+ "catSettings": "_3j77BW_catSettings",
5680
+ "pathLabel": "_3j77BW_pathLabel",
5681
+ "catUninstall": "_3j77BW_catUninstall",
5682
+ "pathText": "_3j77BW_pathText",
5658
5683
  "pathDialogReset": "_3j77BW_pathDialogReset",
5659
- "pathDialogDesc": "_3j77BW_pathDialogDesc",
5660
- "logList": "_3j77BW_logList",
5684
+ "search": "_3j77BW_search",
5685
+ "pathDialogHint": "_3j77BW_pathDialogHint",
5686
+ "headActions": "_3j77BW_headActions",
5661
5687
  "filterChip": "_3j77BW_filterChip",
5662
- "panel": "_3j77BW_panel",
5688
+ "pathDialogDesc": "_3j77BW_pathDialogDesc",
5689
+ "time": "_3j77BW_time",
5690
+ "searchInput": "_3j77BW_searchInput",
5691
+ "footFail": "_3j77BW_footFail",
5692
+ "badge": "_3j77BW_badge",
5693
+ "event": "_3j77BW_event",
5694
+ "moreEnd": "_3j77BW_moreEnd",
5663
5695
  "actions": "_3j77BW_actions",
5664
- "filterBar": "_3j77BW_filterBar",
5665
- "search": "_3j77BW_search"
5696
+ "pathDialogFoot": "_3j77BW_pathDialogFoot",
5697
+ "catInstall": "_3j77BW_catInstall",
5698
+ "catUpdate": "_3j77BW_catUpdate"
5666
5699
  };
5667
5700
  //#endregion
5668
5701
  //#region src/client/components/modals/LogsModal.tsx
@@ -6939,7 +6972,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
6939
6972
  openSection: settingsSection,
6940
6973
  onConsumedOpenSection: () => setSettingsSection(null)
6941
6974
  }), showHubUpdate && (0, react.createElement)(HubUpdateModal, {
6942
- info: catalog.hubUpdateInfo ?? { version: "1.6.7" },
6975
+ info: catalog.hubUpdateInfo ?? { version: "1.6.9" },
6943
6976
  state: catalog.hubUpdateState,
6944
6977
  currentVersion: catalog.hubCurrentVersion,
6945
6978
  lang,
@@ -7027,7 +7060,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
7027
7060
  langPath,
7028
7061
  restarting,
7029
7062
  update: confirmIsUpdate,
7030
- cliOnly: confirmPlugin.install?.webInstallable === false,
7063
+ cliOnly: confirmPlugin.install?.webInstallable === false || confirmPlugin.install?.manualInstall === true,
7031
7064
  submitting: queue.submitting,
7032
7065
  needsRestart: installNeedsRestart,
7033
7066
  needsReload: installNeedsReload,