dsh-life-pack 0.3.53 → 0.3.54

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/dist/client.js CHANGED
@@ -471,14 +471,14 @@ window.__ModuleLoader__.load({
471
471
  path: "/api/ilife-manager"
472
472
  };
473
473
  //#endregion
474
- //#region ../../node_modules/.pnpm/dsh-plugin-update@0.12.0/node_modules/dsh-plugin-update/dist/config.js
474
+ //#region ../../node_modules/.pnpm/dsh-plugin-update@0.13.0/node_modules/dsh-plugin-update/dist/config.js
475
475
  function assertPrefix(value, role) {
476
476
  if (typeof value !== "string" || value.length === 0) throw new Error("[dsh-plugin-update] " + role + " 非法:须为非空字符串(收到 " + JSON.stringify(value) + ")");
477
477
  if (value.includes(".") || value.includes("/") || value.includes("\\") || /\s/.test(value)) throw new Error("[dsh-plugin-update] " + role + " 非法:不得含有点、路径分隔符或空白(收到 " + JSON.stringify(value) + ")");
478
478
  return value;
479
479
  }
480
480
  //#endregion
481
- //#region ../../node_modules/.pnpm/dsh-plugin-update@0.12.0/node_modules/dsh-plugin-update/dist/redaction.js
481
+ //#region ../../node_modules/.pnpm/dsh-plugin-update@0.13.0/node_modules/dsh-plugin-update/dist/redaction.js
482
482
  const COPY_BUDGET_CHARS = 1500;
483
483
  const REDACTED_PATH = "<路径>";
484
484
  const REDACTED_SECRET = "<脱敏>";
@@ -542,7 +542,7 @@ window.__ModuleLoader__.load({
542
542
  return truncateForCopy(scrubWithoutBudget(flat));
543
543
  }
544
544
  //#endregion
545
- //#region ../../node_modules/.pnpm/dsh-plugin-update@0.12.0/node_modules/dsh-plugin-update/dist/service.js
545
+ //#region ../../node_modules/.pnpm/dsh-plugin-update@0.13.0/node_modules/dsh-plugin-update/dist/service.js
546
546
  function updateError(code) {
547
547
  return Object.assign(new Error(code), { code });
548
548
  }
@@ -629,7 +629,7 @@ window.__ModuleLoader__.load({
629
629
  return 0;
630
630
  }
631
631
  //#endregion
632
- //#region ../../node_modules/.pnpm/dsh-plugin-update@0.12.0/node_modules/dsh-plugin-update/dist/lang.js
632
+ //#region ../../node_modules/.pnpm/dsh-plugin-update@0.13.0/node_modules/dsh-plugin-update/dist/lang.js
633
633
  function normalizeLangTag(tag) {
634
634
  if (typeof tag !== "string") return "zh";
635
635
  const s = tag.trim().toLowerCase().replace(/_/g, "-");
@@ -750,7 +750,7 @@ window.__ModuleLoader__.load({
750
750
  };
751
751
  }
752
752
  //#endregion
753
- //#region ../../node_modules/.pnpm/dsh-plugin-update@0.12.0/node_modules/dsh-plugin-update/dist/bilingual.js
753
+ //#region ../../node_modules/.pnpm/dsh-plugin-update@0.13.0/node_modules/dsh-plugin-update/dist/bilingual.js
754
754
  const BILINGUAL_STRINGS = {
755
755
  "entry.label.idle": {
756
756
  en: "Check for updates",
@@ -759,7 +759,7 @@ window.__ModuleLoader__.load({
759
759
  },
760
760
  "entry.label.failed": {
761
761
  en: "Update failed — View details",
762
- zh: "更新失败,点此查看",
762
+ zh: "更新失败,请查看详情",
763
763
  draft: true
764
764
  },
765
765
  "entry.label.busy": {
@@ -774,12 +774,12 @@ window.__ModuleLoader__.load({
774
774
  },
775
775
  "entry.label.has-update": {
776
776
  en: "Update available {version}",
777
- zh: "有新版 {version}",
777
+ zh: "有新版本 {version}",
778
778
  draft: true
779
779
  },
780
780
  "entry.action.checking": {
781
781
  en: "Checking for updates…",
782
- zh: "正在查新版…",
782
+ zh: "正在查询版本信息…",
783
783
  draft: true
784
784
  },
785
785
  "entry.note.up-to-date": {
@@ -794,7 +794,7 @@ window.__ModuleLoader__.load({
794
794
  },
795
795
  "batch-entry.label.update": {
796
796
  en: "{count} updates available",
797
- zh: "{count} 家可更新",
797
+ zh: "{count} 个可更新",
798
798
  draft: true
799
799
  },
800
800
  "batch-entry.label.busy": {
@@ -804,17 +804,17 @@ window.__ModuleLoader__.load({
804
804
  },
805
805
  "batch-entry.label.restart": {
806
806
  en: "{count} restarts required",
807
- zh: "{count} 家待重启",
807
+ zh: "{count} 个待重启",
808
808
  draft: true
809
809
  },
810
810
  "batch-entry.label.failed": {
811
811
  en: "{count} failed — View details",
812
- zh: "{count} 家失败,点此查看",
812
+ zh: "{count} 个失败,请查看详情",
813
813
  draft: true
814
814
  },
815
815
  "batch-entry.action.checking": {
816
816
  en: "Checking for updates…",
817
- zh: "正在查新版…",
817
+ zh: "正在查询版本信息…",
818
818
  draft: true
819
819
  },
820
820
  "panel.blocked.unknown-profile.title": {
@@ -999,7 +999,7 @@ window.__ModuleLoader__.load({
999
999
  },
1000
1000
  "panel.seal.update.text": {
1001
1001
  en: "Update available",
1002
- zh: "可装",
1002
+ zh: "可更新",
1003
1003
  draft: true
1004
1004
  },
1005
1005
  "panel.seal.update.mini": {
@@ -1039,7 +1039,7 @@ window.__ModuleLoader__.load({
1039
1039
  },
1040
1040
  "panel.seal.failed.text": {
1041
1041
  en: "Failed — Retry available",
1042
- zh: "受阻",
1042
+ zh: "失败",
1043
1043
  draft: true
1044
1044
  },
1045
1045
  "panel.seal.failed.mini": {
@@ -1049,7 +1049,7 @@ window.__ModuleLoader__.load({
1049
1049
  },
1050
1050
  "panel.seal.done.text": {
1051
1051
  en: "Up to date",
1052
- zh: "已最新",
1052
+ zh: "已是最新",
1053
1053
  draft: true
1054
1054
  },
1055
1055
  "panel.seal.done.mini": {
@@ -1064,7 +1064,7 @@ window.__ModuleLoader__.load({
1064
1064
  },
1065
1065
  "panel.banner.error.action-fallback": {
1066
1066
  en: "Copy the diagnostics for the plugin author; see the log channel for details.",
1067
- zh: "复制诊断发给插件作者;深挖看日志通道。",
1067
+ zh: "请复制诊断信息提交至插件作者;详情请查看日志通道。",
1068
1068
  draft: true
1069
1069
  },
1070
1070
  "panel.action.retry-install": {
@@ -1084,32 +1084,32 @@ window.__ModuleLoader__.load({
1084
1084
  },
1085
1085
  "panel.queue.busy-self": {
1086
1086
  en: "Installing (this plugin is installing).",
1087
- zh: "正在安装(本插件在装)。",
1087
+ zh: "本插件正在安装。",
1088
1088
  draft: true
1089
1089
  },
1090
1090
  "panel.queue.busy-queued": {
1091
1091
  en: "An install is running ahead; this plugin is #{n} in queue. Install when it reaches the front.",
1092
- zh: "前方有安装在进行,本插件排第 {n} 位,到队首再点安装。",
1092
+ zh: "前方有安装正在进行,本插件排第 {n} 位;到队首后请选择安装。",
1093
1093
  draft: true
1094
1094
  },
1095
1095
  "panel.queue.busy-other": {
1096
1096
  en: "Another plugin is installing; retry later.",
1097
- zh: "前方有其他插件在安装,稍后重试。",
1097
+ zh: "前方有其他插件正在安装,请稍后重试。",
1098
1098
  draft: true
1099
1099
  },
1100
1100
  "panel.skip.skipped-title": {
1101
1101
  en: "Skipped {latest}",
1102
- zh: "已跳过 {latest}",
1102
+ zh: "已跳过版本 {latest}",
1103
1103
  draft: true
1104
1104
  },
1105
1105
  "panel.skip.skipped-action": {
1106
1106
  en: "Select “Restore” to be reminded of this version again; newer versions will still notify.",
1107
- zh: "点“恢复”可重新提醒该版本;有更新的新版本会照常提醒。",
1107
+ zh: "选择「恢复提醒」可重新提醒该版本;更新的版本仍会正常提醒。",
1108
1108
  draft: true
1109
1109
  },
1110
1110
  "panel.banner.restart-title": {
1111
1111
  en: "Version {latest} is installed; restart the host to take effect.",
1112
- zh: "新版 {latest} 已安装,重启宿主后生效。",
1112
+ zh: "新版本 {latest} 已安装,重启宿主后生效。",
1113
1113
  draft: true
1114
1114
  },
1115
1115
  "panel.banner.installing-title": {
@@ -1119,27 +1119,27 @@ window.__ModuleLoader__.load({
1119
1119
  },
1120
1120
  "panel.banner.installing-action": {
1121
1121
  en: "Progress refreshes automatically; reopening the panel restores the view within a second.",
1122
- zh: "进度按轮询自动刷新;重开面板 1 秒内恢复显示。",
1122
+ zh: "进度将自动轮询刷新;重新打开面板将在 1 秒内恢复显示。",
1123
1123
  draft: true
1124
1124
  },
1125
1125
  "panel.action.installing": {
1126
1126
  en: "Installing…",
1127
- zh: "安装中…",
1127
+ zh: "正在安装…",
1128
1128
  draft: true
1129
1129
  },
1130
1130
  "panel.banner.update-title": {
1131
1131
  en: "Update available: {latest} (current: {running}).",
1132
- zh: "有新版 {latest} 可装(当前 {running})。",
1132
+ zh: "有新版本 {latest} 可安装(当前版本 {running})。",
1133
1133
  draft: true
1134
1134
  },
1135
1135
  "panel.banner.update-action": {
1136
1136
  en: "Install runs the exact version; only one install runs per scope at a time.",
1137
- zh: "点安装即走精确版本安装;同一使用范围同时只装一个。",
1137
+ zh: "选择安装将按精确版本安装;同一使用范围同时仅安装一项。",
1138
1138
  draft: true
1139
1139
  },
1140
1140
  "panel.action.install-version": {
1141
1141
  en: "Install {latest}",
1142
- zh: "安装 {latest}",
1142
+ zh: "安装版本 {latest}",
1143
1143
  draft: true
1144
1144
  },
1145
1145
  "panel.banner.done": {
@@ -1149,7 +1149,7 @@ window.__ModuleLoader__.load({
1149
1149
  },
1150
1150
  "panel.toast.checking": {
1151
1151
  en: "Checking for updates…",
1152
- zh: "正在查新版…",
1152
+ zh: "正在查询版本信息…",
1153
1153
  draft: true
1154
1154
  },
1155
1155
  "panel.toast.installing": {
@@ -1159,62 +1159,62 @@ window.__ModuleLoader__.load({
1159
1159
  },
1160
1160
  "panel.toast.copy-manual-ok": {
1161
1161
  en: "Manual command copied; paste the full line into the terminal to run it.",
1162
- zh: "手工命令已复制,粘到终端整行执行即可。",
1162
+ zh: "手工命令已复制,请粘贴至终端整行执行。",
1163
1163
  draft: true
1164
1164
  },
1165
1165
  "panel.toast.copy-manual-fail": {
1166
1166
  en: "Copy failed; please select the command above manually.",
1167
- zh: "复制失败,请手动选中上面的命令。",
1167
+ zh: "复制失败,请手动选择上方命令。",
1168
1168
  draft: true
1169
1169
  },
1170
1170
  "panel.toast.copy-diag-ok": {
1171
1171
  en: "Diagnostics copied; paste it to the plugin author (already redacted).",
1172
- zh: "诊断已复制,直接粘给插件作者即可(已脱敏)。",
1172
+ zh: "诊断信息已复制,请提交至插件作者(已脱敏)。",
1173
1173
  draft: true
1174
1174
  },
1175
1175
  "panel.toast.copy-diag-fail": {
1176
1176
  en: "Copy failed; please select the info above manually.",
1177
- zh: "复制失败,请手动选中上面的信息。",
1177
+ zh: "复制失败,请手动选择上方信息。",
1178
1178
  draft: true
1179
1179
  },
1180
1180
  "panel.toast.restart-delegated": {
1181
1181
  en: "Handled by the caller’s restart flow; the new version takes effect after restart.",
1182
- zh: "已按调用方的重启流程处理;重启后新版生效。",
1182
+ zh: "已按调用方重启流程处理;重启后新版本生效。",
1183
1183
  draft: true
1184
1184
  },
1185
1185
  "panel.toast.restart-manual": {
1186
1186
  en: "This host provides no restart entry; please restart the host manually. The new version takes effect after restart.",
1187
- zh: "本宿主未提供重启入口:请手动重启宿主,重启后新版生效。",
1187
+ zh: "本宿主未提供重启入口,请手动重启宿主;重启后新版本生效。",
1188
1188
  draft: true
1189
1189
  },
1190
1190
  "panel.toast.restart-failed": {
1191
1191
  en: "Restart entry failed; please restart the host manually. The new version takes effect after restart.",
1192
- zh: "重启入口调用失败:请手动重启宿主,重启后新版生效。",
1192
+ zh: "重启入口调用失败,请手动重启宿主;重启后新版本生效。",
1193
1193
  draft: true
1194
1194
  },
1195
1195
  "panel.toast.copy-state-ok": {
1196
1196
  en: "Current state copied (no failure); paste it to the plugin author (already redacted).",
1197
- zh: "已复制当前状态(无失败),直接粘给插件作者即可(已脱敏)。",
1197
+ zh: "当前状态已复制(无失败),请提交至插件作者(已脱敏)。",
1198
1198
  draft: true
1199
1199
  },
1200
1200
  "panel.toast.failure-dismissed": {
1201
1201
  en: "Failure acknowledged; it will be re-evaluated on the next check or install.",
1202
- zh: "已确认该失败提示;下次查新版或安装将重新评估。",
1202
+ zh: "已确认该失败提示;下次查询版本信息或安装将重新评估。",
1203
1203
  draft: true
1204
1204
  },
1205
1205
  "panel.strip.running": {
1206
1206
  en: "Running",
1207
- zh: "运行",
1207
+ zh: "运行版",
1208
1208
  draft: true
1209
1209
  },
1210
1210
  "panel.strip.installed": {
1211
1211
  en: "Installed",
1212
- zh: "磁盘",
1212
+ zh: "已安装",
1213
1213
  draft: true
1214
1214
  },
1215
1215
  "panel.strip.latest": {
1216
1216
  en: "Latest",
1217
- zh: "远端",
1217
+ zh: "最新版",
1218
1218
  draft: true
1219
1219
  },
1220
1220
  "panel.meta.label": {
@@ -1269,7 +1269,7 @@ window.__ModuleLoader__.load({
1269
1269
  },
1270
1270
  "panel.progress.installing": {
1271
1271
  en: "Installing new version…",
1272
- zh: "正在安装新版…",
1272
+ zh: "正在安装新版本…",
1273
1273
  draft: true
1274
1274
  },
1275
1275
  "panel.progress.verifying": {
@@ -1279,22 +1279,22 @@ window.__ModuleLoader__.load({
1279
1279
  },
1280
1280
  "panel.action.check": {
1281
1281
  en: "Check for updates",
1282
- zh: "查新版",
1282
+ zh: "检查更新",
1283
1283
  draft: true
1284
1284
  },
1285
1285
  "panel.action.check-title": {
1286
1286
  en: "Check the official source once more (read-only, never installs)",
1287
- zh: "重新向官方源查一次新版(只读,不安装)",
1287
+ zh: "重新向官方源查询版本信息(只读,不安装)",
1288
1288
  draft: true
1289
1289
  },
1290
1290
  "panel.action.checking-busy": {
1291
1291
  en: "Checking for updates…",
1292
- zh: "正在查新版…",
1292
+ zh: "正在查询版本信息…",
1293
1293
  draft: true
1294
1294
  },
1295
1295
  "panel.action.checking-busy-title": {
1296
1296
  en: "Checking the official source; please wait",
1297
- zh: "正在向官方源查询,请稍候",
1297
+ zh: "正在向官方源查询版本信息,请稍候",
1298
1298
  draft: true
1299
1299
  },
1300
1300
  "panel.action.installing-busy": {
@@ -1309,7 +1309,7 @@ window.__ModuleLoader__.load({
1309
1309
  },
1310
1310
  "panel.action.install-title": {
1311
1311
  en: "Install the exact version; one install per scope at a time",
1312
- zh: "用精确版本安装;同一使用范围同时只装一个",
1312
+ zh: "按精确版本安装;同一使用范围同时仅安装一项",
1313
1313
  draft: true
1314
1314
  },
1315
1315
  "panel.action.skip": {
@@ -1319,17 +1319,17 @@ window.__ModuleLoader__.load({
1319
1319
  },
1320
1320
  "panel.action.skip-title": {
1321
1321
  en: "This version will no longer notify; newer versions still will",
1322
- zh: "该版本不再提醒;有更新的新版本照常提醒",
1322
+ zh: "该版本将不再提醒;更新的版本仍会正常提醒",
1323
1323
  draft: true
1324
1324
  },
1325
1325
  "panel.action.unskip": {
1326
1326
  en: "Restore ({version})",
1327
- zh: "恢复({version})",
1327
+ zh: "恢复提醒({version})",
1328
1328
  draft: true
1329
1329
  },
1330
1330
  "panel.action.unskip-title": {
1331
1331
  en: "Undo skip; this version will remind again",
1332
- zh: "撤销跳过,该版本重新提醒",
1332
+ zh: "撤销跳过,该版本将重新提醒",
1333
1333
  draft: true
1334
1334
  },
1335
1335
  "panel.action.copy-manual": {
@@ -1339,7 +1339,7 @@ window.__ModuleLoader__.load({
1339
1339
  },
1340
1340
  "panel.action.copy-manual-title": {
1341
1341
  en: "Copy the manual command; paste the full line into the terminal",
1342
- zh: "复制手工命令,粘到终端整行执行",
1342
+ zh: "复制手工命令,请粘贴至终端整行执行",
1343
1343
  draft: true
1344
1344
  },
1345
1345
  "panel.action.restart-host": {
@@ -1349,17 +1349,17 @@ window.__ModuleLoader__.load({
1349
1349
  },
1350
1350
  "panel.action.restart-host-title": {
1351
1351
  en: "Run the caller restart flow if available, otherwise restart DSH manually",
1352
- zh: "点一下走调用方流程,没有就手动重启 DSH",
1352
+ zh: "优先走调用方重启流程;若无,请手动重启 DSH",
1353
1353
  draft: true
1354
1354
  },
1355
1355
  "panel.action.dismiss": {
1356
1356
  en: "Got it",
1357
- zh: "知道了",
1357
+ zh: "已知晓",
1358
1358
  draft: true
1359
1359
  },
1360
1360
  "panel.action.dismiss-title": {
1361
1361
  en: "Acknowledge the failure and return; next check or install will re-evaluate",
1362
- zh: "确认已知晓该失败:回到可装页,下次查/装将重新评估",
1362
+ zh: "确认已知晓该失败:返回可安装页,下次查询或安装将重新评估",
1363
1363
  draft: true
1364
1364
  },
1365
1365
  "panel.action.copy-diag": {
@@ -1369,17 +1369,17 @@ window.__ModuleLoader__.load({
1369
1369
  },
1370
1370
  "panel.action.copy-diag-title": {
1371
1371
  en: "Copy redacted diagnostics for the plugin author",
1372
- zh: "复制已脱敏诊断,直接粘给插件作者",
1372
+ zh: "复制已脱敏诊断,请提交至插件作者",
1373
1373
  draft: true
1374
1374
  },
1375
1375
  "panel.skip.line-tag": {
1376
1376
  en: "Skipped {version}",
1377
- zh: "已跳过 {version}",
1377
+ zh: "已跳过版本 {version}",
1378
1378
  draft: true
1379
1379
  },
1380
1380
  "panel.skip.line-note": {
1381
1381
  en: "Select “Restore” to undo; this version will remind again.",
1382
- zh: "点「恢复」可撤销,之后这一版还会再提醒。",
1382
+ zh: "选择「恢复提醒」可撤销,该版本此后仍会提醒。",
1383
1383
  draft: true
1384
1384
  },
1385
1385
  "panel.changelog.heading": {
@@ -1394,12 +1394,12 @@ window.__ModuleLoader__.load({
1394
1394
  },
1395
1395
  "panel.changelog.unavailable": {
1396
1396
  en: "Could not read logs; install is unaffected.",
1397
- zh: "日志读不出来,安装不受影响。",
1397
+ zh: "更新日志无法读取,安装不受影响。",
1398
1398
  draft: true
1399
1399
  },
1400
1400
  "panel.changelog.unavailable-empty": {
1401
1401
  en: "No release found yet; logs will show after a check.",
1402
- zh: "还没查到新版;查到后再显示日志。",
1402
+ zh: "尚未查询到新版本;查询到后将显示更新日志。",
1403
1403
  draft: true
1404
1404
  },
1405
1405
  "panel.changelog.toggle-title": {
@@ -1439,17 +1439,17 @@ window.__ModuleLoader__.load({
1439
1439
  },
1440
1440
  "panel.queue.pos-n": {
1441
1441
  en: "Position {n}",
1442
- zh: "第 {n} 位",
1442
+ zh: "排队第 {n} 位",
1443
1443
  draft: true
1444
1444
  },
1445
1445
  "panel.queue.pos-next": {
1446
1446
  en: "You are next",
1447
- zh: "下一个就是你",
1447
+ zh: "下一位就是你",
1448
1448
  draft: true
1449
1449
  },
1450
1450
  "panel.queue.pos-ahead": {
1451
1451
  en: "{n} ahead",
1452
- zh: "前方 {n} 个",
1452
+ zh: "前方还有 {n} 项",
1453
1453
  draft: true
1454
1454
  },
1455
1455
  "panel.queue.row-installing": {
@@ -1459,17 +1459,17 @@ window.__ModuleLoader__.load({
1459
1459
  },
1460
1460
  "panel.queue.row-installing-note": {
1461
1461
  en: "You are next when it finishes",
1462
- zh: "装完自动轮到你",
1462
+ zh: "安装完成后自动轮到你",
1463
1463
  draft: true
1464
1464
  },
1465
1465
  "panel.queue.row-idle-note": {
1466
1466
  en: "One install per scope at a time",
1467
- zh: "同一使用范围一次只装一个",
1467
+ zh: "同一使用范围同时仅安装一项",
1468
1468
  draft: true
1469
1469
  },
1470
1470
  "panel.queue.row-position": {
1471
1471
  en: "Your position",
1472
- zh: "你的顺位",
1472
+ zh: "你的排队顺位",
1473
1473
  draft: true
1474
1474
  },
1475
1475
  "panel.queue.row-order": {
@@ -1479,7 +1479,7 @@ window.__ModuleLoader__.load({
1479
1479
  },
1480
1480
  "panel.queue.toggle-hide": {
1481
1481
  en: "Hide others",
1482
- zh: "隐藏他人明细",
1482
+ zh: "隐藏其他插件明细",
1483
1483
  draft: true
1484
1484
  },
1485
1485
  "panel.queue.toggle-show": {
@@ -1489,7 +1489,7 @@ window.__ModuleLoader__.load({
1489
1489
  },
1490
1490
  "panel.queue.empty": {
1491
1491
  en: "No queued tasks; one install per scope at a time.",
1492
- zh: "当前没有排队任务,同一使用范围一次只装一个。",
1492
+ zh: "当前无排队任务;同一使用范围同时仅安装一项。",
1493
1493
  draft: true
1494
1494
  },
1495
1495
  "panel.error.code-label": {
@@ -1499,7 +1499,7 @@ window.__ModuleLoader__.load({
1499
1499
  },
1500
1500
  "panel.error.code-note": {
1501
1501
  en: "The line above tells you what to do; to report upstream, paste “Copy diagnostics” as a whole (already redacted).",
1502
- zh: "上一条中文说明就是要用户做的事;要往上游报,用「复制诊断」整段粘(已脱敏)。",
1502
+ zh: "上方中文说明即需执行的操作;如需向上游反馈,请使用「复制诊断」整段粘贴(已脱敏)。",
1503
1503
  draft: true
1504
1504
  },
1505
1505
  "panel.error.query-request": {
@@ -1514,47 +1514,47 @@ window.__ModuleLoader__.load({
1514
1514
  },
1515
1515
  "panel.error.failed-at": {
1516
1516
  en: "Failed at {time}",
1517
- zh: "失败于 {time}",
1517
+ zh: "失败时间 {time}",
1518
1518
  draft: true
1519
1519
  },
1520
1520
  "panel.error.query-keys": {
1521
1521
  en: "Query keys: {keys} (use them to match in logs).",
1522
- zh: "本次查询键:{keys}(拿着它们去日志里对)。",
1522
+ zh: "本次查询键:{keys}(可凭此在日志中检索匹配)。",
1523
1523
  draft: true
1524
1524
  },
1525
1525
  "panel.error.target-version": {
1526
1526
  en: "Failed target {version}",
1527
- zh: "失败目标 {version}",
1527
+ zh: "失败目标版本 {version}",
1528
1528
  draft: true
1529
1529
  },
1530
1530
  "panel.error.evidence-frozen": {
1531
1531
  en: "Evidence frozen: the code, versions, and IDs in copied diagnostics are from the failure moment and do not refresh with polling; the next check or install will update them.",
1532
- zh: "证据已冻结:复制诊断里的码、版本、编号都取自失败时刻,不随轮询刷新;下一次查新版或安装会更新它。",
1532
+ zh: "证据已冻结:复制诊断中的稳定码、版本与编号均取自失败时刻,不随轮询刷新;下次查询版本信息或安装将更新。",
1533
1533
  draft: true
1534
1534
  },
1535
1535
  "panel.error.evidence-transient": {
1536
1536
  en: "Transient read failure: it clears on the next successful read; if it persists, troubleshoot by stable code.",
1537
- zh: "读数瞬态失败:下一次成功读数会自动解除;一直出现再按稳定码排查。",
1537
+ zh: "瞬态读取失败:下次成功读取将自动解除;若持续出现,请按稳定码排查。",
1538
1538
  draft: true
1539
1539
  },
1540
1540
  "panel.error.no-failure": {
1541
1541
  en: "No failure: copying diagnostics gives the current state snapshot.",
1542
- zh: "暂无失败:此时复制诊断给出的是当前状态快照。",
1542
+ zh: "暂无失败:此时复制诊断提供的是当前状态快照。",
1543
1543
  draft: true
1544
1544
  },
1545
1545
  "panel.error.log-hint": {
1546
1546
  en: "Check logs: filter by plugin ID {pluginId} for events {e1}, {e2}, {e3}.",
1547
- zh: "深挖看日志:按插件标识 {pluginId} 过滤 {e1}、{e2}、{e3} 三个事件。",
1547
+ zh: "请查看日志:按插件标识 {pluginId} 筛选 {e1}、{e2}、{e3} 事件。",
1548
1548
  draft: true
1549
1549
  },
1550
1550
  "panel.error.log-follow": {
1551
1551
  en: "Match the request/check IDs above in {eFail}; baseline timing in {eCall}, execution result in {eExec}.",
1552
- zh: "凭上面的请求/检查编号在 {eFail} 里对上;基线耗时看 {eCall},执行结果看 {eExec}。",
1552
+ zh: "凭上方请求/检查编号在 {eFail} 中匹配;基线耗时请查看 {eCall},执行结果请查看 {eExec}。",
1553
1553
  draft: true
1554
1554
  },
1555
1555
  "panel.manual.heading": {
1556
1556
  en: "Manual fallback command (copy the full line to run):",
1557
- zh: "手工兜底命令(复制整行执行):",
1557
+ zh: "手工备用命令(请复制整行执行):",
1558
1558
  draft: true
1559
1559
  },
1560
1560
  "panel.manual.absent": {
@@ -1564,7 +1564,7 @@ window.__ModuleLoader__.load({
1564
1564
  },
1565
1565
  "panel.footer.note": {
1566
1566
  en: "Closing never interrupts updates; come back anytime",
1567
- zh: "关闭不影响更新,可随时回来查看",
1567
+ zh: "关闭窗口,更新不受影响,可随时返回查看。",
1568
1568
  draft: true
1569
1569
  },
1570
1570
  "panel.footer.close": {
@@ -1594,12 +1594,12 @@ window.__ModuleLoader__.load({
1594
1594
  },
1595
1595
  "panel.diag.label.installed": {
1596
1596
  en: "Installed: {version}",
1597
- zh: "已装:{version}",
1597
+ zh: "已安装:{version}",
1598
1598
  draft: true
1599
1599
  },
1600
1600
  "panel.diag.label.latest": {
1601
1601
  en: "Latest: {version}",
1602
- zh: "远端:{version}",
1602
+ zh: "最新版:{version}",
1603
1603
  draft: true
1604
1604
  },
1605
1605
  "panel.diag.queue.installing": {
@@ -1614,7 +1614,7 @@ window.__ModuleLoader__.load({
1614
1614
  },
1615
1615
  "panel.diag.queue.absent": {
1616
1616
  en: "Not queued",
1617
- zh: "不在队列里",
1617
+ zh: "未排队",
1618
1618
  draft: true
1619
1619
  },
1620
1620
  "panel.diag.label.host": {
@@ -1644,12 +1644,12 @@ window.__ModuleLoader__.load({
1644
1644
  },
1645
1645
  "panel.diag.copy.no-detail": {
1646
1646
  en: "(This response carries no diagnostic summary; it will be completed when phone-side diag lands)",
1647
- zh: "(本回包没有带诊断摘要,等电话侧 diag 落定后补齐)",
1647
+ zh: "(本响应未携带诊断摘要,待诊断信息就绪后补全)",
1648
1648
  draft: true
1649
1649
  },
1650
1650
  "panel.diag.copy.unknown-package": {
1651
1651
  en: "(Unknown package)",
1652
- zh: "(未知包)",
1652
+ zh: "(未知插件包)",
1653
1653
  draft: true
1654
1654
  },
1655
1655
  "panel.diag.copy.unknown": {
@@ -1759,17 +1759,17 @@ window.__ModuleLoader__.load({
1759
1759
  },
1760
1760
  "batch.action.resume": {
1761
1761
  en: "Continue the unfinished batch ({count} left)",
1762
- zh: "继续上次未完成的更新(还剩 {count} 家)",
1762
+ zh: "继续上次未完成的更新(剩余 {count} 个)。",
1763
1763
  draft: true
1764
1764
  },
1765
1765
  "batch.action.resume-title": {
1766
1766
  en: "Continue from where it stopped; installed ones stay",
1767
- zh: "从上次没做完的地方接着安装,已完成的不重装",
1767
+ zh: "从上次中断处继续安装,已完成的不会重复安装。",
1768
1768
  draft: true
1769
1769
  },
1770
1770
  "batch.action.discard": {
1771
1771
  en: "Discard this unfinished batch (installed ones stay)",
1772
- zh: "丢弃这批未完成的更新(已完成的保留)",
1772
+ zh: "丢弃本批未完成的更新(已完成的将保留)。",
1773
1773
  draft: true
1774
1774
  },
1775
1775
  "batch.action.confirm-discard": {
@@ -1779,7 +1779,7 @@ window.__ModuleLoader__.load({
1779
1779
  },
1780
1780
  "batch.fact.close-safe": {
1781
1781
  en: "Closing this panel won't stop it — progress is saved on disk.",
1782
- zh: "关掉面板不会中断:进度已写盘,回来可继续。",
1782
+ zh: "关闭面板不会中断更新:进度已保存,可随时返回继续。",
1783
1783
  draft: true
1784
1784
  },
1785
1785
  "batch.setting.check-on-open": {
@@ -1789,97 +1789,97 @@ window.__ModuleLoader__.load({
1789
1789
  },
1790
1790
  "batch.row.update": {
1791
1791
  en: "Update available {version}",
1792
- zh: "有新版 {version}",
1792
+ zh: "有新版本 {version}",
1793
1793
  draft: true
1794
1794
  },
1795
1795
  "batch.row.current": {
1796
1796
  en: "Up to date",
1797
- zh: "已是最新,不用动",
1797
+ zh: "已是最新,无需操作。",
1798
1798
  draft: true
1799
1799
  },
1800
1800
  "batch.row.never": {
1801
1801
  en: "Not checked yet",
1802
- zh: "还没查过",
1802
+ zh: "尚未查询",
1803
1803
  draft: true
1804
1804
  },
1805
1805
  "batch.row.failed": {
1806
1806
  en: "Last check failed",
1807
- zh: "这次没查到",
1807
+ zh: "本次未能查询",
1808
1808
  draft: true
1809
1809
  },
1810
1810
  "batch.notice.auto-resumed": {
1811
1811
  en: "Auto-continued the unfinished batch ({count} left).",
1812
- zh: "已自动继续上次未完成的更新(还剩 {count} 家)。",
1812
+ zh: "已自动继续上次未完成的更新(剩余 {count} 个)。",
1813
1813
  draft: true
1814
1814
  },
1815
1815
  "batch.notice.resumed": {
1816
1816
  en: "Continued the unfinished batch ({count} left).",
1817
- zh: "已继续上次未完成的更新(还剩 {count} 家)。",
1817
+ zh: "已继续上次未完成的更新(剩余 {count} 个)。",
1818
1818
  draft: true
1819
1819
  },
1820
1820
  "batch.notice.no-resume": {
1821
1821
  en: "Nothing to continue.",
1822
- zh: "没有可继续的内容。",
1822
+ zh: "暂无可继续的内容。",
1823
1823
  draft: true
1824
1824
  },
1825
1825
  "batch.notice.discarded": {
1826
1826
  en: "Discarded this unfinished batch (installed ones stay).",
1827
- zh: "已丢弃这批未完成的更新(已完成的保留)。",
1827
+ zh: "已丢弃本批未完成的更新(已完成的将保留)。",
1828
1828
  draft: true
1829
1829
  },
1830
1830
  "batch.notice.cancel-confirm": {
1831
1831
  en: "Click again to confirm discard.",
1832
- zh: "再点一次确认丢弃。",
1832
+ zh: "请再次选择以确认丢弃。",
1833
1833
  draft: true
1834
1834
  },
1835
1835
  "batch.notice.busy-cancel": {
1836
1836
  en: "An install is running and cannot be stopped.",
1837
- zh: "正在装的那一家停不了。",
1837
+ zh: "正在安装的项无法停止。",
1838
1838
  draft: true
1839
1839
  },
1840
1840
  "batch.row.unfinished-tag": {
1841
1841
  en: "unfinished last time",
1842
- zh: "上一批没做完",
1842
+ zh: "上次未完成",
1843
1843
  draft: true
1844
1844
  },
1845
1845
  "batch.summary.updatable": {
1846
1846
  en: "{n} updates available",
1847
- zh: "{n} 家可更新",
1847
+ zh: "{n} 个可更新",
1848
1848
  draft: true
1849
1849
  },
1850
1850
  "batch.summary.installing": {
1851
1851
  en: "{n} installing",
1852
- zh: "{n} 家安装中",
1852
+ zh: "{n} 个安装中",
1853
1853
  draft: true
1854
1854
  },
1855
1855
  "batch.summary.pending": {
1856
1856
  en: "{n} not checked",
1857
- zh: "{n} 家待查",
1857
+ zh: "{n} 个待查询",
1858
1858
  draft: true
1859
1859
  },
1860
1860
  "batch.summary.restart": {
1861
1861
  en: "{n} restart required",
1862
- zh: "{n} 家待重启",
1862
+ zh: "{n} 个待重启",
1863
1863
  draft: true
1864
1864
  },
1865
1865
  "batch.summary.failed": {
1866
1866
  en: "{n} failed",
1867
- zh: "{n} 家失败",
1867
+ zh: "{n} 个失败",
1868
1868
  draft: true
1869
1869
  },
1870
1870
  "batch.summary.skipped": {
1871
1871
  en: "{n} skipped",
1872
- zh: "{n} 家已跳过",
1872
+ zh: "{n} 个已跳过",
1873
1873
  draft: true
1874
1874
  },
1875
1875
  "batch.summary.settled": {
1876
1876
  en: "{n} up to date",
1877
- zh: "{n} 家已最新",
1877
+ zh: "{n} 个已是最新",
1878
1878
  draft: true
1879
1879
  },
1880
1880
  "batch.summary.empty": {
1881
1881
  en: "No targets yet",
1882
- zh: "还没有目标",
1882
+ zh: "暂无目标",
1883
1883
  draft: true
1884
1884
  },
1885
1885
  "batch.header.title": {
@@ -1904,7 +1904,7 @@ window.__ModuleLoader__.load({
1904
1904
  },
1905
1905
  "batch.action.install-all-title": {
1906
1906
  en: "Submit all updatable plugins at once; one idempotency key per session",
1907
- zh: "把有新版的几家一次提交;同一会话同一幂等编号",
1907
+ zh: "将有更新的插件一次提交;同一会话使用同一幂等编号。",
1908
1908
  draft: true
1909
1909
  },
1910
1910
  "batch.action.close": {
@@ -1924,47 +1924,47 @@ window.__ModuleLoader__.load({
1924
1924
  },
1925
1925
  "batch.hint.error": {
1926
1926
  en: "Last run failed: follow the red banner below.",
1927
- zh: "刚才那次没成功:看下面的红条,照它说的做一次。",
1927
+ zh: "上次执行失败:请按下方红色横幅提示操作。",
1928
1928
  draft: true
1929
1929
  },
1930
1930
  "batch.hint.empty": {
1931
1931
  en: "No targets yet: select “Check for updates” to see which plugins have updates.",
1932
- zh: "还没有目标:点「检查更新」看看哪几家有新版。",
1932
+ zh: "暂无目标:请选择「检查更新」查看哪些插件有更新。",
1933
1933
  draft: true
1934
1934
  },
1935
1935
  "batch.hint.installing-queueable": {
1936
1936
  en: "Installing {a}; {b} more can join the queue.",
1937
- zh: "正在安装 {a} 家;还有 {b} 家可以点「加入队列」排队等。",
1937
+ zh: "正在安装 {a} 个;另有 {b} 个可选择「加入队列」等待。",
1938
1938
  draft: true
1939
1939
  },
1940
1940
  "batch.hint.installing-auto": {
1941
1941
  en: "Installing {a}; the next starts automatically.",
1942
- zh: "正在安装 {a} 家,安装完自动下一家。",
1942
+ zh: "正在安装 {a} 个,完成后自动安装下一项。",
1943
1943
  draft: true
1944
1944
  },
1945
1945
  "batch.hint.failed": {
1946
1946
  en: "{n} failed to install; retry each one from the failure notes below.",
1947
- zh: "{n} 家安装失败;照下面的失败提示逐家重试。",
1947
+ zh: "{n} 个插件安装失败;请按下方失败提示逐项重试。",
1948
1948
  draft: true
1949
1949
  },
1950
1950
  "batch.hint.updatable": {
1951
1951
  en: "{n} updates available; select “Update all” to install at once, or install each one inline.",
1952
- zh: "{n} 家可更新;点「全部更新」一次安装完,也可以逐家点「安装这家」。",
1952
+ zh: "{n} 个可更新;请选择「全部更新」一次安装完成,也可逐项选择「安装此插件」。",
1953
1953
  draft: true
1954
1954
  },
1955
1955
  "batch.hint.restart": {
1956
1956
  en: "{n} installed; restart the host to take effect.",
1957
- zh: "{n} 家已安装好,重启宿主后生效。",
1957
+ zh: "{n} 个已安装完成,重启宿主后生效。",
1958
1958
  draft: true
1959
1959
  },
1960
1960
  "batch.hint.pending": {
1961
1961
  en: "{n} not checked yet; select “Check for updates” for a round.",
1962
- zh: "{n} 家还没查过;点「检查更新」查一轮。",
1962
+ zh: "{n} 个尚未查询;请选择「检查更新」查询一轮。",
1963
1963
  draft: true
1964
1964
  },
1965
1965
  "batch.hint.done": {
1966
1966
  en: "All up to date; nothing to do.",
1967
- zh: "全部已最新,没有要做的。",
1967
+ zh: "已全部为最新,无需操作。",
1968
1968
  draft: true
1969
1969
  },
1970
1970
  "batch.seal.ledger": {
@@ -1974,7 +1974,7 @@ window.__ModuleLoader__.load({
1974
1974
  },
1975
1975
  "batch.banner.error-title": {
1976
1976
  en: "Failed this time ({code}): {detail}.",
1977
- zh: "这次没成功({code}):{detail}。",
1977
+ zh: "本次执行失败({code}):{detail}。",
1978
1978
  draft: true
1979
1979
  },
1980
1980
  "batch.banner.error-action-fallback": {
@@ -1984,7 +1984,7 @@ window.__ModuleLoader__.load({
1984
1984
  },
1985
1985
  "batch.banner.failed-title": {
1986
1986
  en: "{n} failed to install.",
1987
- zh: "{n} 家安装失败。",
1987
+ zh: "{n} 个插件安装失败。",
1988
1988
  draft: true
1989
1989
  },
1990
1990
  "batch.banner.failed-action": {
@@ -1994,7 +1994,7 @@ window.__ModuleLoader__.load({
1994
1994
  },
1995
1995
  "batch.banner.restart-title": {
1996
1996
  en: "{n} installed; restart the host to take effect.",
1997
- zh: "{n} 家已安装好,重启宿主后生效。",
1997
+ zh: "{n} 个已安装完成,重启宿主后生效。",
1998
1998
  draft: true
1999
1999
  },
2000
2000
  "batch.banner.restart-action": {
@@ -2009,72 +2009,72 @@ window.__ModuleLoader__.load({
2009
2009
  },
2010
2010
  "batch.row.queued-generic": {
2011
2011
  en: "Queued · waiting for the running install to finish",
2012
- zh: "已排队 · 等前面安装完",
2012
+ zh: "已排队 · 等待前方安装完成",
2013
2013
  draft: true
2014
2014
  },
2015
2015
  "batch.row.queued-n": {
2016
2016
  en: "Queued · {n} ahead",
2017
- zh: "已排队 · 前方 {n} 个",
2017
+ zh: "已排队 · 前方还有 {n} 项",
2018
2018
  draft: true
2019
2019
  },
2020
2020
  "batch.row.skipped": {
2021
2021
  en: "Skipped {version}",
2022
- zh: "已跳过 {version}",
2022
+ zh: "已跳过版本 {version}",
2023
2023
  draft: true
2024
2024
  },
2025
2025
  "batch.row.wait-turn": {
2026
2026
  en: "Waiting for its turn; it will check automatically",
2027
- zh: "等它,轮到就自动查新版",
2027
+ zh: "请等待,轮到将自动查询版本信息。",
2028
2028
  draft: true
2029
2029
  },
2030
2030
  "batch.row.checking": {
2031
2031
  en: "Checking for updates; please wait",
2032
- zh: "正在查新版,稍等",
2032
+ zh: "正在查询版本信息,请稍候。",
2033
2033
  draft: true
2034
2034
  },
2035
2035
  "batch.row.cta-version": {
2036
2036
  en: "Select “Install this plugin” to install {version}",
2037
- zh: "点「安装这家」安装 {version}",
2037
+ zh: "选择「安装此插件」安装 {version}",
2038
2038
  draft: true
2039
2039
  },
2040
2040
  "batch.row.cta-generic": {
2041
2041
  en: "Select “Install this plugin” to install the new version",
2042
- zh: "点「安装这家」安装新版",
2042
+ zh: "选择「安装此插件」安装新版本",
2043
2043
  draft: true
2044
2044
  },
2045
2045
  "batch.row.installing": {
2046
2046
  en: "Installing; please wait",
2047
- zh: "正在安装,别动",
2047
+ zh: "正在安装,请勿操作。",
2048
2048
  draft: true
2049
2049
  },
2050
2050
  "batch.row.done-restart": {
2051
2051
  en: "Installed; restart the host to take effect",
2052
- zh: "安装好了,重启宿主才生效",
2052
+ zh: "已安装完成,重启宿主后生效。",
2053
2053
  draft: true
2054
2054
  },
2055
2055
  "batch.row.done": {
2056
2056
  en: "Installed; nothing to do",
2057
- zh: "安装好了,不用动",
2057
+ zh: "已安装完成,无需操作。",
2058
2058
  draft: true
2059
2059
  },
2060
2060
  "batch.row.failed-retry": {
2061
2061
  en: "Install failed; select “Retry” to try again",
2062
- zh: "安装没成功,点「重试」再来一次",
2062
+ zh: "安装失败,请选择「重试」。",
2063
2063
  draft: true
2064
2064
  },
2065
2065
  "batch.row.skipped-idle": {
2066
2066
  en: "This version is skipped; nothing to do",
2067
- zh: "这一版已跳过,不用动",
2067
+ zh: "该版本已跳过,无需操作。",
2068
2068
  draft: true
2069
2069
  },
2070
2070
  "batch.row.unknown": {
2071
2071
  en: "Unknown state; select “Check for updates” to check again",
2072
- zh: "状态认不出,点「检查更新」重查一次",
2072
+ zh: "状态无法识别,请选择「检查更新」重新查询。",
2073
2073
  draft: true
2074
2074
  },
2075
2075
  "batch.row-action.installing": {
2076
2076
  en: "Installing…",
2077
- zh: "安装中…",
2077
+ zh: "正在安装…",
2078
2078
  draft: true
2079
2079
  },
2080
2080
  "batch.row-action.cancel-queue": {
@@ -2089,7 +2089,7 @@ window.__ModuleLoader__.load({
2089
2089
  },
2090
2090
  "batch.row-action.install-row": {
2091
2091
  en: "Install this plugin",
2092
- zh: "安装这家",
2092
+ zh: "安装此插件",
2093
2093
  draft: true
2094
2094
  },
2095
2095
  "batch.row-action.retry": {
@@ -2099,17 +2099,17 @@ window.__ModuleLoader__.load({
2099
2099
  },
2100
2100
  "batch.row-action.install-version": {
2101
2101
  en: "Install {version}",
2102
- zh: "安装 {version}",
2102
+ zh: "安装版本 {version}",
2103
2103
  draft: true
2104
2104
  },
2105
2105
  "batch.row-action.install-generic": {
2106
2106
  en: "Install the new version",
2107
- zh: "安装 新版",
2107
+ zh: "安装新版本",
2108
2108
  draft: true
2109
2109
  },
2110
2110
  "batch.row-action.unskip": {
2111
2111
  en: "Restore ({version})",
2112
- zh: "恢复({version})",
2112
+ zh: "恢复提醒({version})",
2113
2113
  draft: true
2114
2114
  },
2115
2115
  "batch.row-action.restart": {
@@ -2129,7 +2129,7 @@ window.__ModuleLoader__.load({
2129
2129
  },
2130
2130
  "batch.row-action.skip": {
2131
2131
  en: "Skip this version",
2132
- zh: "跳过这一版",
2132
+ zh: "跳过该版本",
2133
2133
  draft: true
2134
2134
  },
2135
2135
  "batch.row-action.copy-manual": {
@@ -2149,27 +2149,27 @@ window.__ModuleLoader__.load({
2149
2149
  },
2150
2150
  "batch.diag.source-job": {
2151
2151
  en: "(Source: background job record)",
2152
- zh: "(来源:后台任务收尾记录)",
2152
+ zh: "(来源:后台任务执行记录)",
2153
2153
  draft: true
2154
2154
  },
2155
2155
  "batch.toast.copy-fail": {
2156
2156
  en: "Copy failed; please select the info above manually.",
2157
- zh: "复制失败,请手动选中上面的信息。",
2157
+ zh: "复制失败,请手动选择上方信息。",
2158
2158
  draft: true
2159
2159
  },
2160
2160
  "batch.toast.queue-missed": {
2161
2161
  en: "Another install is running: this plugin is not queued yet; try again after it finishes.",
2162
- zh: "前面还在装:这一家还没排上,等那家装完再点一次。",
2162
+ zh: "前方仍在安装:此插件尚未排队,请待前方安装完成后再次选择。",
2163
2163
  draft: true
2164
2164
  },
2165
2165
  "batch.toast.skipped": {
2166
2166
  en: "Skipped {version}: no further reminders for this version; select “Restore” to undo.",
2167
- zh: "已跳过 {version}:这一版不再提醒;点「恢复」可撤销。",
2167
+ zh: "已跳过版本 {version}:该版本不再提醒;选择「恢复提醒」可撤销。",
2168
2168
  draft: true
2169
2169
  },
2170
2170
  "batch.toast.unskipped-version": {
2171
2171
  en: "Restored {version}: reminders for this version are back on.",
2172
- zh: "已恢复 {version}:这一版会照常提醒。",
2172
+ zh: "已恢复 {version}:该版本将正常提醒。",
2173
2173
  draft: true
2174
2174
  },
2175
2175
  "batch.toast.unskipped-all": {
@@ -2179,42 +2179,42 @@ window.__ModuleLoader__.load({
2179
2179
  },
2180
2180
  "batch.toast.cancel-unavailable": {
2181
2181
  en: "This row carries no phone or ID to cancel the queue; try again after the next refresh.",
2182
- zh: "这一行没带取消排队要用的电话名或编号,暂不能取消:等下一次刷新再看。",
2182
+ zh: "此行缺少取消排队所需的信息,暂无法取消;请待下次刷新后重试。",
2183
2183
  draft: true
2184
2184
  },
2185
2185
  "batch.toast.cancel-ok": {
2186
2186
  en: "Queue cancelled: this plugin will not wait.",
2187
- zh: "已取消排队:这一家不等了。",
2187
+ zh: "已取消排队:此插件将不再等待。",
2188
2188
  draft: true
2189
2189
  },
2190
2190
  "batch.toast.cancel-fail": {
2191
2191
  en: "Could not cancel the queue (it may have started installing); see the latest state below.",
2192
- zh: "取消排队没成功(可能已经开始装了):看下面最新状态。",
2192
+ zh: "取消排队失败(可能已开始安装):请查看下方最新状态。",
2193
2193
  draft: true
2194
2194
  },
2195
2195
  "batch.toast.copy-manual-ok": {
2196
2196
  en: "Manual command copied; paste the full line into the terminal to run it.",
2197
- zh: "手工命令已复制,粘到终端整行执行即可。",
2197
+ zh: "手工命令已复制,请粘贴至终端整行执行。",
2198
2198
  draft: true
2199
2199
  },
2200
2200
  "batch.toast.copy-diag-ok": {
2201
2201
  en: "Diagnostics copied; paste it to the plugin author (already redacted).",
2202
- zh: "诊断已复制,直接粘给插件作者即可(已脱敏)。",
2202
+ zh: "诊断信息已复制,请提交至插件作者(已脱敏)。",
2203
2203
  draft: true
2204
2204
  },
2205
2205
  "batch.toast.restart-delegated": {
2206
2206
  en: "Handled by the caller’s restart flow; the new version takes effect after restart.",
2207
- zh: "已按调用方的重启流程处理;重启后新版生效。",
2207
+ zh: "已按调用方重启流程处理;重启后新版本生效。",
2208
2208
  draft: true
2209
2209
  },
2210
2210
  "batch.toast.restart-manual": {
2211
2211
  en: "This host provides no restart entry; please restart the host manually. The new version takes effect after restart.",
2212
- zh: "本宿主未提供重启入口:请手动重启宿主,重启后新版生效。",
2212
+ zh: "本宿主未提供重启入口,请手动重启宿主;重启后新版本生效。",
2213
2213
  draft: true
2214
2214
  },
2215
2215
  "batch.toast.restart-failed": {
2216
2216
  en: "Restart entry failed; please restart the host manually. The new version takes effect after restart.",
2217
- zh: "重启入口调用失败:请手动重启宿主,重启后新版生效。",
2217
+ zh: "重启入口调用失败,请手动重启宿主;重启后新版本生效。",
2218
2218
  draft: true
2219
2219
  },
2220
2220
  "changelog.neutral.hint": {
@@ -2259,7 +2259,7 @@ window.__ModuleLoader__.load({
2259
2259
  },
2260
2260
  "changelog.security.note": {
2261
2261
  en: "Remaining entries are collapsed to keep the panel fast. See the original text.",
2262
- zh: "为保持面板性能,其余条目已折叠,可查看原文。",
2262
+ zh: "为保持面板性能,其余条目已折叠,请查看原文。",
2263
2263
  draft: true
2264
2264
  },
2265
2265
  "diag.fallback.generic": {
@@ -2279,12 +2279,12 @@ window.__ModuleLoader__.load({
2279
2279
  },
2280
2280
  "diag.fallback.rate-limited": {
2281
2281
  en: "Source returned 429. Too many requests this minute.",
2282
- zh: "源返回 429,这一分钟请求太多",
2282
+ zh: "数据源返回 429,本分钟请求过于频繁。",
2283
2283
  draft: true
2284
2284
  },
2285
2285
  "diag.fallback.http-status": {
2286
2286
  en: "Source returned {status}. Retry still failed.",
2287
- zh: "源返回 {status},重试仍失败",
2287
+ zh: "数据源返回 {status},重试后仍失败。",
2288
2288
  draft: true
2289
2289
  },
2290
2290
  "diag.fallback.invalid-release": {
@@ -2372,7 +2372,7 @@ window.__ModuleLoader__.load({
2372
2372
  }
2373
2373
  const BILINGUAL_CSS = [".dsh-upd-bi{display:inline;overflow-wrap:anywhere}", ".dsh-upd-bi [lang]{overflow-wrap:anywhere}"].join("\n");
2374
2374
  //#endregion
2375
- //#region ../../node_modules/.pnpm/dsh-plugin-update@0.12.0/node_modules/dsh-plugin-update/dist/changelog.js
2375
+ //#region ../../node_modules/.pnpm/dsh-plugin-update@0.13.0/node_modules/dsh-plugin-update/dist/changelog.js
2376
2376
  const CHANGELOG_MAX_CHARS = 65536;
2377
2377
  const CHANGELOG_ALL_CATEGORIES = [
2378
2378
  "Added",
@@ -2850,12 +2850,12 @@ ${blocks.join("\n")}
2850
2850
  }
2851
2851
  }
2852
2852
  //#endregion
2853
- //#region ../../node_modules/.pnpm/dsh-plugin-update@0.12.0/node_modules/dsh-plugin-update/dist/log-events.js
2853
+ //#region ../../node_modules/.pnpm/dsh-plugin-update@0.13.0/node_modules/dsh-plugin-update/dist/log-events.js
2854
2854
  const LOG_EVENT_CALL = "host.call";
2855
2855
  const LOG_EVENT_CALL_FAIL = "host.call.fail";
2856
2856
  const LOG_EVENT_INSTALL_EXEC = "update.install.exec";
2857
2857
  //#endregion
2858
- //#region ../../node_modules/.pnpm/dsh-plugin-update@0.12.0/node_modules/dsh-plugin-update/dist/panel.js
2858
+ //#region ../../node_modules/.pnpm/dsh-plugin-update@0.13.0/node_modules/dsh-plugin-update/dist/panel.js
2859
2859
  function normalizePanelTheme(value) {
2860
2860
  return value === "archive" ? "archive" : "default";
2861
2861
  }
@@ -2894,7 +2894,12 @@ ${blocks.join("\n")}
2894
2894
  entryFontSize: "--dsh-update-entry-font-size",
2895
2895
  entryPadding: "--dsh-update-entry-padding",
2896
2896
  entryBorderRadius: "--dsh-update-entry-border-radius",
2897
- entryScale: "--dsh-update-entry-scale"
2897
+ entryScale: "--dsh-update-entry-scale",
2898
+ panelFontSize: "--dsh-update-panel-font-size",
2899
+ panelChapterFontSize: "--dsh-update-panel-chapter-font-size",
2900
+ panelBannerTitleFontSize: "--dsh-update-panel-banner-title-font-size",
2901
+ panelLogFontSize: "--dsh-update-panel-log-font-size",
2902
+ panelSmallFontSize: "--dsh-update-panel-small-font-size"
2898
2903
  };
2899
2904
  const THEME_TOKEN_COLOR_KEYS = /* @__PURE__ */ new Set([
2900
2905
  "text",
@@ -3492,7 +3497,7 @@ ${blocks.join("\n")}
3492
3497
  };
3493
3498
  }
3494
3499
  const UPDATE_PANEL_CSS = [
3495
- ".dsh-upd{font:14px/1.75 system-ui,\"Microsoft YaHei\",sans-serif;color:var(--dsh-update-text,#1f2937);",
3500
+ ".dsh-upd{font:var(--dsh-update-panel-font-size,14px)/1.75 system-ui,\"Microsoft YaHei\",sans-serif;color:var(--dsh-update-text,#1f2937);",
3496
3501
  "background:var(--dsh-update-bg,#ffffff);border:1px solid var(--dsh-update-border,#e5e7eb);border-radius:8px;padding:12px 14px;max-width:560px;",
3497
3502
  "--dsh-update-ok-bg:#ecfdf5;--dsh-update-ok-border:#059669;--dsh-update-warn-bg:#fffbeb;--dsh-update-warn-border:#d97706;",
3498
3503
  "--dsh-update-bad-bg:#fef2f2;--dsh-update-bad-border:#dc2626;--dsh-update-busy-bg:#eff6ff;--dsh-update-busy-border:#2563eb}",
@@ -3507,9 +3512,9 @@ ${blocks.join("\n")}
3507
3512
  ".dsh-upd-banner[data-kind=\"failed\"],.dsh-upd-banner[data-kind=\"blocked\"]{border-color:var(--dsh-update-bad-border);background:var(--dsh-update-bad-bg)}",
3508
3513
  ".dsh-upd-banner[data-kind=\"update\"]{border-color:var(--dsh-update-ok-border);background:var(--dsh-update-ok-bg)}",
3509
3514
  ".dsh-upd-banner[data-kind=\"busy\"]{border-color:var(--dsh-update-busy-border);background:var(--dsh-update-busy-bg)}",
3510
- ".dsh-upd code{font-family:Consolas,Menlo,monospace;font-size:12px;word-break:break-all}",
3511
- ".dsh-upd-manual,.dsh-upd-queue,.dsh-upd-log{margin:4px 0;font-size:13px}",
3512
- ".dsh-upd-changelog-wrap{margin:4px 0 0;font-size:13px}",
3515
+ ".dsh-upd code{font-family:Consolas,Menlo,monospace;font-size:var(--dsh-update-panel-log-font-size,12px);word-break:break-all}",
3516
+ ".dsh-upd-manual,.dsh-upd-queue,.dsh-upd-log{margin:4px 0;font-size:var(--dsh-update-panel-log-font-size,13px)}",
3517
+ ".dsh-upd-changelog-wrap{margin:4px 0 0;font-size:var(--dsh-update-panel-log-font-size,13px)}",
3513
3518
  ".dsh-upd-changelog-title{font-weight:700;margin:0 0 4px}",
3514
3519
  ".dsh-upd-changelog-version{margin:6px 0}",
3515
3520
  ".dsh-upd-changelog-catname{font-weight:600;margin:6px 0 2px}",
@@ -3517,12 +3522,12 @@ ${blocks.join("\n")}
3517
3522
  ".dsh-upd-changelog li{margin:2px 0}",
3518
3523
  ".dsh-upd-changelog-fold{margin:4px 0}",
3519
3524
  ".dsh-upd-changelog-fold>summary{cursor:pointer}",
3520
- ".dsh-upd-changelog-count{font-size:12px;opacity:.7;margin:2px 0 4px}",
3521
- ".dsh-upd-changelog-yanked{border-left:4px solid var(--dsh-update-warn-border,#d97706);background:var(--dsh-update-warn-bg,#fffbeb);padding:6px 10px;margin:6px 0;font-size:13px}",
3522
- ".dsh-upd-breaking-badge{display:inline-block;font-size:11px;font-weight:700;border:1px solid currentColor;border-radius:3px;padding:0 5px;margin-right:6px;vertical-align:baseline}",
3525
+ ".dsh-upd-changelog-count{font-size:var(--dsh-update-panel-small-font-size,12px);opacity:.7;margin:2px 0 4px}",
3526
+ ".dsh-upd-changelog-yanked{border-left:4px solid var(--dsh-update-warn-border,#d97706);background:var(--dsh-update-warn-bg,#fffbeb);padding:6px 10px;margin:6px 0;font-size:var(--dsh-update-panel-log-font-size,13px)}",
3527
+ ".dsh-upd-breaking-badge{display:inline-block;font-size:var(--dsh-update-panel-small-font-size,11px);font-weight:700;border:1px solid currentColor;border-radius:3px;padding:0 5px;margin-right:6px;vertical-align:baseline}",
3523
3528
  ".dsh-upd-changelog-security-more{margin:4px 0 6px}",
3524
- ".dsh-upd-changelog-security-more>summary{cursor:pointer;font-size:12px;opacity:.8}",
3525
- ".dsh-upd-changelog-more-note{font-size:12px;opacity:.7;margin:2px 0 4px}",
3529
+ ".dsh-upd-changelog-security-more>summary{cursor:pointer;font-size:var(--dsh-update-panel-small-font-size,12px);opacity:.8}",
3530
+ ".dsh-upd-changelog-more-note{font-size:var(--dsh-update-panel-small-font-size,12px);opacity:.7;margin:2px 0 4px}",
3526
3531
  ".dsh-upd-changelog-neutral{color:inherit;opacity:.8}",
3527
3532
  ".dsh-upd-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:9999}",
3528
3533
  ".dsh-upd-overlay .dsh-upd{background:var(--dsh-update-bg,#ffffff);max-height:85vh;display:flex;flex-direction:column;overflow:hidden}",
@@ -3539,43 +3544,43 @@ ${blocks.join("\n")}
3539
3544
  ".dsh-upd-head{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}",
3540
3545
  ".dsh-upd-masthead{display:none}",
3541
3546
  ".dsh-upd-name{font-weight:700}",
3542
- ".dsh-upd-meta{font-size:12.5px;opacity:.75}",
3543
- ".dsh-upd-proftag{font-family:Consolas,Menlo,monospace;font-size:11px;border:1px solid var(--dsh-update-border,#d1d5db);border-radius:3px;padding:0 5px;margin-left:6px;letter-spacing:.06em}",
3544
- ".dsh-upd-strip{display:flex;flex-wrap:wrap;margin:8px 0 0;border:1px solid var(--dsh-update-border,#e5e7eb);border-radius:4px;overflow:hidden;font-size:12.5px}",
3547
+ ".dsh-upd-meta{font-size:var(--dsh-update-panel-small-font-size,12.5px);opacity:.75}",
3548
+ ".dsh-upd-proftag{font-family:Consolas,Menlo,monospace;font-size:var(--dsh-update-panel-small-font-size,11px);border:1px solid var(--dsh-update-border,#d1d5db);border-radius:3px;padding:0 5px;margin-left:6px;letter-spacing:.06em}",
3549
+ ".dsh-upd-strip{display:flex;flex-wrap:wrap;margin:8px 0 0;border:1px solid var(--dsh-update-border,#e5e7eb);border-radius:4px;overflow:hidden;font-size:var(--dsh-update-panel-small-font-size,12.5px)}",
3545
3550
  ".dsh-upd-strip>div{flex:1 1 110px;min-width:0;padding:6px 10px;border-left:1px solid var(--dsh-update-border,#e5e7eb)}",
3546
3551
  ".dsh-upd-strip>div:first-child{border-left:0}",
3547
- ".dsh-upd-strip-k{display:block;font-size:11px;letter-spacing:.14em;opacity:.7}",
3548
- ".dsh-upd-strip-v{font-family:Consolas,Menlo,monospace;font-size:12.5px;word-break:break-all}",
3552
+ ".dsh-upd-strip-k{display:block;font-size:var(--dsh-update-panel-small-font-size,11px);letter-spacing:.14em;opacity:.7}",
3553
+ ".dsh-upd-strip-v{font-family:Consolas,Menlo,monospace;font-size:var(--dsh-update-panel-small-font-size,12.5px);word-break:break-all}",
3549
3554
  ".dsh-upd-chapter{margin-top:18px;padding-top:14px;border-top:1px solid var(--dsh-update-border,#e5e7eb)}",
3550
3555
  ".dsh-upd-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px;padding-top:10px;border-top:1px solid var(--dsh-update-border,#e5e7eb)}",
3551
- ".dsh-upd-foot-note{margin-right:auto;font-size:12px;opacity:.7}",
3556
+ ".dsh-upd-foot-note{margin-right:auto;font-size:var(--dsh-update-panel-small-font-size,12px);opacity:.7}",
3552
3557
  ".dsh-upd-footer button{margin:0}",
3553
3558
  ".dsh-upd-chap-head{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}",
3554
- ".dsh-upd-chap-no{font-size:13px;font-style:italic;opacity:.6}",
3555
- ".dsh-upd-chap-title{font-size:14px;margin:0}",
3559
+ ".dsh-upd-chap-no{font-size:var(--dsh-update-panel-chapter-font-size,13px);font-style:italic;opacity:.6}",
3560
+ ".dsh-upd-chap-title{font-size:var(--dsh-update-panel-chapter-font-size,14px);margin:0}",
3556
3561
  ".dsh-upd .dsh-upd-chap-title{color:var(--dsh-update-text,#1f2937);background:none;-webkit-background-clip:border-box;-webkit-text-fill-color:currentColor}",
3557
3562
  ".dsh-upd-chap-rule{flex:1;border-top:1px solid var(--dsh-update-border,#e5e7eb);transform:translateY(-3px)}",
3558
- ".dsh-upd-chap-note{flex:none;font-size:12px;opacity:.75}",
3563
+ ".dsh-upd-chap-note{flex:none;font-size:var(--dsh-update-panel-small-font-size,12px);opacity:.75}",
3559
3564
  ".dsh-upd-chap-note button{margin:0}",
3560
3565
  ".dsh-upd-qrow{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;padding:6px 0;min-width:0}",
3561
3566
  ".dsh-upd-qrow+.dsh-upd-qrow{border-top:1px solid var(--dsh-update-border,#e5e7eb)}",
3562
3567
  ".dsh-upd-qdot{width:8px;height:8px;border-radius:50%;flex:none;align-self:center;background:currentColor;opacity:.5}",
3563
3568
  ".dsh-upd-qdot[data-tone=\"busy\"]{background:var(--dsh-update-warn-border,#d97706);opacity:1}",
3564
3569
  ".dsh-upd-qdot[data-tone=\"you\"]{background:var(--dsh-update-primary,#2563eb);opacity:1}",
3565
- ".dsh-upd-qk{flex:none;width:5.5em;font-size:12px;opacity:.7}",
3570
+ ".dsh-upd-qk{flex:none;width:5.5em;font-size:var(--dsh-update-panel-small-font-size,12px);opacity:.7}",
3566
3571
  ".dsh-upd-qv{font-weight:600}",
3567
- ".dsh-upd-qn{margin-left:auto;font-size:12px;opacity:.7}",
3568
- ".dsh-upd-qseq{font-family:Consolas,Menlo,monospace;font-size:12px;word-break:break-all}",
3572
+ ".dsh-upd-qn{margin-left:auto;font-size:var(--dsh-update-panel-small-font-size,12px);opacity:.7}",
3573
+ ".dsh-upd-qseq{font-family:Consolas,Menlo,monospace;font-size:var(--dsh-update-panel-small-font-size,12px);word-break:break-all}",
3569
3574
  ".dsh-upd-prog{height:8px;background:var(--dsh-update-border,#e5e7eb);border-radius:4px;overflow:hidden;margin:10px 0 4px}",
3570
3575
  ".dsh-upd-prog-bar{display:block;height:100%;background:var(--dsh-update-primary,#2563eb);transition:width .3s}",
3571
- ".dsh-upd-progtxt{font-size:12.5px;opacity:.75}",
3572
- ".dsh-upd-skipline{font-size:13px;margin-top:8px}",
3576
+ ".dsh-upd-progtxt{font-size:var(--dsh-update-panel-small-font-size,12.5px);opacity:.75}",
3577
+ ".dsh-upd-skipline{font-size:var(--dsh-update-panel-log-font-size,13px);margin-top:8px}",
3573
3578
  ".dsh-upd-skv{display:inline-block;min-width:64px;border-radius:3px;color:transparent !important;user-select:none;",
3574
3579
  "background:linear-gradient(90deg,var(--dsh-update-border,#e5e7eb) 25%,var(--dsh-update-bg-soft,#f3f4f6) 50%,var(--dsh-update-border,#e5e7eb) 75%);",
3575
3580
  "background-size:200% 100%;animation:dsh-upd-shimmer 1.2s linear infinite}",
3576
3581
  "@keyframes dsh-upd-shimmer{to{background-position:-200% 0}}",
3577
- ".dsh-upd-tag{display:inline-block;border:1px dashed currentColor;border-radius:3px;padding:1px 8px;margin-right:8px;font-family:Consolas,Menlo,monospace;font-size:12px}",
3578
- ".dsh-upd-err{font-size:13px;margin:0 0 6px}",
3582
+ ".dsh-upd-tag{display:inline-block;border:1px dashed currentColor;border-radius:3px;padding:1px 8px;margin-right:8px;font-family:Consolas,Menlo,monospace;font-size:var(--dsh-update-panel-small-font-size,12px)}",
3583
+ ".dsh-upd-err{font-size:var(--dsh-update-panel-log-font-size,13px);margin:0 0 6px}",
3579
3584
  ".dsh-upd button{transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .06s ease}",
3580
3585
  ".dsh-upd button:hover:not(:disabled){border-color:var(--dsh-update-focus,#2563eb)}",
3581
3586
  ".dsh-upd button[data-primary=\"1\"]:hover:not(:disabled){filter:brightness(.93)}",
@@ -3606,7 +3611,8 @@ ${blocks.join("\n")}
3606
3611
  ".dsh-upd-actions button[data-primary=\"1\"]{min-width:9em}",
3607
3612
  ".dsh-upd-banner{min-height:3.4em;display:flex;flex-direction:column;justify-content:center}",
3608
3613
  ".dsh-upd-banner{animation:none}",
3609
- ".dsh-upd-banner-sub{font-size:12.5px;opacity:.75;margin:2px 0 8px;text-align:left}",
3614
+ ".dsh-upd-banner-sub{font-size:var(--dsh-update-panel-small-font-size,12.5px);opacity:.75;margin:2px 0 8px;text-align:left}",
3615
+ ".dsh-upd-banner>div:first-child strong{font-size:var(--dsh-update-panel-banner-title-font-size,inherit)}",
3610
3616
  ".dsh-upd-banner>div:first-child>.dsh-upd-sealmini{display:none}",
3611
3617
  ".dsh-upd-copy{min-height:1.75em}",
3612
3618
  ".dsh-upd-copy--empty{visibility:hidden}",
@@ -3655,13 +3661,13 @@ ${blocks.join("\n")}
3655
3661
  ".dsh-upd[data-theme=\"archive\"][data-seal-tone=\"yellow\"]::before{color:var(--dsh-update-warn-text)}",
3656
3662
  ".dsh-upd[data-theme=\"archive\"][data-seal-tone=\"red\"]::before{color:var(--dsh-update-bad-text)}",
3657
3663
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-masthead{display:block;padding:0 0 8px;margin:0 0 8px;border-bottom:1px solid var(--dsh-update-border)}",
3658
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-masthead-kicker{display:block;font-size:11px;letter-spacing:.35em;color:var(--dsh-update-text-muted);margin-bottom:3px}",
3664
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-masthead-kicker{display:block;font-size:var(--dsh-update-panel-small-font-size,11px);letter-spacing:.35em;color:var(--dsh-update-text-muted);margin-bottom:3px}",
3659
3665
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-masthead-title{font-family:var(--dsh-update-font-serif);font-size:26px;font-weight:700;line-height:1.2}",
3660
3666
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-masthead-title i{color:var(--dsh-update-primary);font-style:normal}",
3661
3667
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-qrow{padding:6px 0}",
3662
3668
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-qk{width:66px;letter-spacing:.18em}",
3663
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-qv{font-family:var(--dsh-update-font-serif);font-size:16px}",
3664
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-qn{font-family:var(--dsh-update-font-mono);font-size:11.5px;color:var(--dsh-update-text-muted)}",
3669
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-qv{font-family:var(--dsh-update-font-serif);font-size:var(--dsh-update-panel-small-font-size,16px)}",
3670
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-qn{font-family:var(--dsh-update-font-mono);font-size:var(--dsh-update-panel-small-font-size,11.5px);color:var(--dsh-update-text-muted)}",
3665
3671
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-qseq{color:var(--dsh-update-text-muted)}",
3666
3672
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-chap-note{color:var(--dsh-update-text-muted)}",
3667
3673
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-body .dsh-upd-chap-head{background:var(--dsh-update-bg)}",
@@ -3677,10 +3683,11 @@ ${blocks.join("\n")}
3677
3683
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner[data-kind=\"busy\"] .dsh-upd-sealmini{color:var(--dsh-update-warn-text)}",
3678
3684
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner[data-kind=\"blocked\"] .dsh-upd-sealmini,.dsh-upd[data-theme=\"archive\"] .dsh-upd-banner[data-kind=\"failed\"] .dsh-upd-sealmini{color:var(--dsh-update-bad-text)}",
3679
3685
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner[data-kind=\"done\"] .dsh-upd-sealmini{color:var(--dsh-update-ok-text)}",
3680
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-log code{font-family:var(--dsh-update-font-mono);font-size:11px;color:var(--dsh-update-text-muted);border:1px solid var(--dsh-update-border-strong);border-radius:3px;padding:0 6px;letter-spacing:.06em}",
3681
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-manual code{display:block;background:var(--dsh-update-text);color:var(--dsh-update-bg-soft);font-family:var(--dsh-update-font-mono);font-size:12.5px;padding:12px 14px;border-radius:4px;white-space:pre-wrap;word-break:break-all}",
3686
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-log code{font-family:var(--dsh-update-font-mono);font-size:var(--dsh-update-panel-log-font-size,11px);color:var(--dsh-update-text-muted);border:1px solid var(--dsh-update-border-strong);border-radius:3px;padding:0 6px;letter-spacing:.06em}",
3687
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-manual code{display:block;background:var(--dsh-update-text);color:var(--dsh-update-bg-soft);font-family:var(--dsh-update-font-mono);font-size:var(--dsh-update-panel-log-font-size,12.5px);padding:12px 14px;border-radius:4px;white-space:pre-wrap;word-break:break-all}",
3688
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner[data-kind=\"restart\"]>div:first-child strong{margin-left:-30px;text-indent:30px}",
3682
3689
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner[data-kind=\"restart\"]>div:first-child{display:flex;gap:10px;align-items:flex-start}",
3683
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner[data-kind=\"restart\"]>div:first-child::before{content:\"\";flex:none;width:20px;height:20px;margin-top:3px;",
3690
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner[data-kind=\"restart\"]>div:first-child::before{content:\"\";flex:none;width:20px;height:20px;margin-top:7px;",
3684
3691
  "background:url(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2720%27 height=%2720%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%238a5a00%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z%27/%3E%3Cline x1=%2712%27 y1=%279%27 x2=%2712%27 y2=%2713%27/%3E%3Cline x1=%2712%27 y1=%2717%27 x2=%2712.01%27 y2=%2717%27/%3E%3C/svg%3E\") no-repeat center/20px 20px}",
3685
3692
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner>div:first-child{overflow:hidden;text-overflow:ellipsis}",
3686
3693
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-actions{flex-wrap:wrap}",
@@ -3688,29 +3695,30 @@ ${blocks.join("\n")}
3688
3695
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-foot-note{color:var(--dsh-update-text-muted)}",
3689
3696
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-head{display:flex;gap:16px;align-items:baseline;flex-wrap:wrap;padding-right:120px}",
3690
3697
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-name{font-family:var(--dsh-update-font-serif);font-size:22px;font-weight:700}",
3691
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-meta{width:100%;font-size:12.5px;color:var(--dsh-update-text-muted)}",
3698
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-meta{width:100%;font-size:var(--dsh-update-panel-small-font-size,12.5px);color:var(--dsh-update-text-muted)}",
3692
3699
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-meta b{color:var(--dsh-update-text);font-weight:600}",
3693
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-proftag{font-family:var(--dsh-update-font-mono);font-size:11px;color:var(--dsh-update-text-muted);border:1px solid var(--dsh-update-border-strong);border-radius:3px;padding:0 6px;margin-left:8px;letter-spacing:.06em}",
3694
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-strip{display:flex;flex-wrap:wrap;margin:8px 0 0;border:1px solid var(--dsh-update-border);border-radius:4px;overflow:hidden;font-size:12.5px}",
3700
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-proftag{font-family:var(--dsh-update-font-mono);font-size:var(--dsh-update-panel-small-font-size,11px);color:var(--dsh-update-text-muted);border:1px solid var(--dsh-update-border-strong);border-radius:3px;padding:0 6px;margin-left:8px;letter-spacing:.06em}",
3701
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-strip{display:flex;flex-wrap:wrap;margin:8px 0 0;border:1px solid var(--dsh-update-border);border-radius:4px;overflow:hidden;font-size:var(--dsh-update-panel-small-font-size,12.5px)}",
3695
3702
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-strip>div{flex:1 1 120px;padding:6px 10px;border-left:1px solid var(--dsh-update-border)}",
3696
3703
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-strip>div:first-child{border-left:0}",
3697
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-strip-k{display:block;font-size:11px;letter-spacing:.2em;color:var(--dsh-update-text-muted)}",
3698
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-strip-v{font-family:var(--dsh-update-font-mono);font-size:13px}",
3704
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-strip-k{display:block;font-size:var(--dsh-update-panel-small-font-size,11px);letter-spacing:.2em;color:var(--dsh-update-text-muted)}",
3705
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-strip-v{font-family:var(--dsh-update-font-mono);font-size:var(--dsh-update-panel-small-font-size,13px)}",
3699
3706
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-chapter{margin-top:16px;padding-top:10px;border-top:1px solid var(--dsh-update-border)}",
3700
3707
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-chap-head{display:flex;align-items:baseline;gap:12px;margin-bottom:6px}",
3701
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-chap-no{font-family:var(--dsh-update-font-serif);font-style:italic;font-size:15px;color:var(--dsh-update-text-muted)}",
3702
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-chap-title{font-family:var(--dsh-update-font-serif);font-size:17px;margin:0;letter-spacing:.1em}",
3708
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-chap-no{font-family:var(--dsh-update-font-serif);font-style:italic;font-size:var(--dsh-update-panel-chapter-font-size,15px);color:var(--dsh-update-text-muted)}",
3709
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-chap-title{font-family:var(--dsh-update-font-serif);font-size:var(--dsh-update-panel-chapter-font-size,17px);margin:0;letter-spacing:.1em}",
3703
3710
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-chap-rule{flex:1;border-top:1px solid var(--dsh-update-border);transform:translateY(-4px)}",
3704
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner{border:2px solid var(--dsh-update-border-strong);border-radius:4px;padding:10px 12px;font-size:14.5px;font-family:var(--dsh-update-font-serif);gap:10px;align-items:center}",
3711
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner{border:2px solid var(--dsh-update-border-strong);border-radius:4px;padding:10px 12px;font-size:var(--dsh-update-panel-font-size,14.5px);font-family:var(--dsh-update-font-serif);gap:10px;align-items:center}",
3705
3712
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner>div:first-child{flex:1 1 auto;min-width:0;align-self:stretch}",
3706
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner>div:first-child strong{font-family:var(--dsh-update-font-serif);font-size:27px;font-weight:700;line-height:1.25}",
3713
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner>div:first-child strong{font-family:var(--dsh-update-font-serif);font-size:var(--dsh-update-panel-banner-title-font-size,27px);font-weight:700;line-height:1.25}",
3714
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner[data-kind=\"done\"]>div:first-child strong{font-size:var(--dsh-update-panel-banner-title-font-size,24px)}",
3707
3715
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-prog{height:8px;background:var(--dsh-update-border);border-radius:4px;overflow:hidden;margin:10px 0 4px}",
3708
3716
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-prog-bar{display:block;height:100%;background:var(--dsh-update-primary);transition:width .3s}",
3709
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-progtxt{font-size:12.5px;color:var(--dsh-update-text-muted)}",
3710
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-skipline{font-size:13px;margin-top:8px}",
3711
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-tag{display:inline-block;border:1px dashed var(--dsh-update-border-strong);border-radius:3px;padding:1px 8px;margin-right:8px;font-family:var(--dsh-update-font-mono);font-size:12px}",
3712
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-err{font-size:13px;margin:0 0 6px;color:var(--dsh-update-text-muted)}",
3713
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner-sub{color:var(--dsh-update-text-muted);font-size:12.5px;text-align:left;margin:2px 0 8px}",
3717
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-progtxt{font-size:var(--dsh-update-panel-small-font-size,12.5px);color:var(--dsh-update-text-muted)}",
3718
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-skipline{font-size:var(--dsh-update-panel-log-font-size,13px);margin-top:8px}",
3719
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-tag{display:inline-block;border:1px dashed var(--dsh-update-border-strong);border-radius:3px;padding:1px 8px;margin-right:8px;font-family:var(--dsh-update-font-mono);font-size:var(--dsh-update-panel-small-font-size,12px)}",
3720
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-err{font-size:var(--dsh-update-panel-log-font-size,13px);margin:0 0 6px;color:var(--dsh-update-text-muted)}",
3721
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner-sub{color:var(--dsh-update-text-muted);font-size:var(--dsh-update-panel-small-font-size,12.5px);text-align:left;margin:2px 0 8px}",
3714
3722
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-actions{gap:8px;min-height:0}",
3715
3723
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-actions button{font-size:13px;line-height:1.45;padding:6px 12px;margin:0;min-width:0}",
3716
3724
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-actions button:first-child{min-width:0}",
@@ -3718,10 +3726,11 @@ ${blocks.join("\n")}
3718
3726
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-actions button:first-child:not([aria-busy=\"true\"])::after{display:none}",
3719
3727
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-actions button:not([data-primary=\"1\"]){background:transparent}",
3720
3728
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-actions button[data-action=\"copy-manual\"],.dsh-upd[data-theme=\"archive\"] .dsh-upd-actions button[data-action=\"copy-diag\"]{font-size:12px;padding:4px 10px}",
3729
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-chap-note button{font-size:12px;line-height:1.45;padding:4px 10px;margin:0;min-width:0;background:transparent}",
3721
3730
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-changelog-version{margin:12px 0}",
3722
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-changelog-title{font-family:var(--dsh-update-font-mono);font-size:14px;font-weight:700}",
3723
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-changelog-date{font-weight:400;font-size:12px;color:var(--dsh-update-text-muted)}",
3724
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-changelog ul{margin:6px 0 0 2px;padding-left:18px;font-size:13.5px}",
3731
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-changelog-title{font-family:var(--dsh-update-font-mono);font-size:var(--dsh-update-panel-log-font-size,14px);font-weight:700}",
3732
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-changelog-date{font-weight:400;font-size:var(--dsh-update-panel-small-font-size,12px);color:var(--dsh-update-text-muted)}",
3733
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-changelog ul{margin:6px 0 0 2px;padding-left:18px;font-size:var(--dsh-update-panel-log-font-size,13.5px)}",
3725
3734
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-changelog li{margin:3px 0}",
3726
3735
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-changelog-catname{display:none}",
3727
3736
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-changelog-cat[data-cat=\"Added\"] ul li::before{content:\"Added · \";color:var(--dsh-update-primary);font-weight:700}",
@@ -3737,6 +3746,7 @@ ${blocks.join("\n")}
3737
3746
  "--dsh-update-bad-text:#ef8a7d;--dsh-update-bad-bg:rgba(239,138,125,.12);--dsh-update-shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px rgba(0,0,0,.45)}}",
3738
3747
  "@media (prefers-color-scheme: dark){.dsh-upd[data-theme=\"archive\"] button[data-primary=\"1\"]{color:#141210}.dsh-upd[data-theme=\"archive\"] button:focus-visible{outline-color:var(--dsh-update-primary-deep)}}",
3739
3748
  "@media (prefers-color-scheme: dark){.dsh-upd[data-theme=\"archive\"] .dsh-upd-banner[data-kind=\"restart\"]>div:first-child::before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2720%27 height=%2720%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23e8c15a%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z%27/%3E%3Cline x1=%2712%27 y1=%279%27 x2=%2712%27 y2=%2713%27/%3E%3Cline x1=%2712%27 y1=%2717%27 x2=%2712.01%27 y2=%2717%27/%3E%3C/svg%3E\")}}",
3749
+ "@media (prefers-color-scheme: dark){.dsh-upd[data-theme=\"archive\"] .dsh-upd-manual code{background:#26211a;color:#ece5d3;border:1px solid var(--dsh-update-border-strong)}}",
3740
3750
  "@media (forced-colors: active){.dsh-upd[data-theme=\"archive\"]{box-shadow:none}.dsh-upd[data-theme=\"archive\"]::before{background:none;box-shadow:none;border-color:CanvasText;color:CanvasText}.dsh-upd[data-theme=\"archive\"] .dsh-upd-banner{border:1px solid CanvasText}.dsh-upd[data-theme=\"archive\"] .dsh-upd-banner::before{border-color:CanvasText;color:CanvasText;background:Canvas}.dsh-upd[data-theme=\"archive\"] button{border:1px solid ButtonText}.dsh-upd[data-theme=\"archive\"] button[data-primary=\"1\"]{background:ButtonFace;color:ButtonText;border-color:ButtonText}.dsh-upd[data-theme=\"archive\"] .dsh-upd-banner[data-kind=\"restart\"]>div:first-child::before{background-image:none;content:\"⚠\"}}",
3741
3751
  "@media (prefers-reduced-motion: reduce){.dsh-upd[data-theme=\"archive\"] *{transition:none !important;animation:none !important}}"
3742
3752
  ].join("\n");
@@ -3957,7 +3967,7 @@ ${UPDATE_PANEL_ARCHIVE_CSS}` : UPDATE_PANEL_CSS}</style>
3957
3967
  ${body}`;
3958
3968
  }
3959
3969
  //#endregion
3960
- //#region ../../node_modules/.pnpm/dsh-plugin-update@0.12.0/node_modules/dsh-plugin-update/dist/entry.js
3970
+ //#region ../../node_modules/.pnpm/dsh-plugin-update@0.13.0/node_modules/dsh-plugin-update/dist/entry.js
3961
3971
  const UPDATE_ENTRY_CSS = [
3962
3972
  ".dsh-upd-entry{display:inline-flex;align-items:center;gap:8px;font:13px/1.6 var(--dsh-update-font-sans,system-ui,\"Microsoft YaHei\",sans-serif);font-size:var(--dsh-update-entry-font-size,13px);color:var(--dsh-update-text,#1f2937)}",
3963
3973
  ".dsh-upd-entry-btn{font:inherit;border:1px solid var(--dsh-update-border,#d1d5db);border-radius:var(--dsh-update-entry-border-radius,6px);",
@@ -4071,7 +4081,7 @@ ${body}`;
4071
4081
  }
4072
4082
  }
4073
4083
  //#endregion
4074
- //#region ../../node_modules/.pnpm/dsh-plugin-update@0.12.0/node_modules/dsh-plugin-update/dist/panel-batch.js
4084
+ //#region ../../node_modules/.pnpm/dsh-plugin-update@0.13.0/node_modules/dsh-plugin-update/dist/panel-batch.js
4075
4085
  const BATCH_PANEL_POLL = {
4076
4086
  defaultMs: 1500,
4077
4087
  minMs: 250
@@ -4448,7 +4458,8 @@ ${body}`;
4448
4458
  parts.push("<div class=\"dsh-upd-banner\" data-kind=\"failed\" data-mini=\"阻\" role=\"status\"><div><span class=\"dsh-upd-sealmini\" aria-hidden=\"true\">阻</span><strong>" + escapeHtml$1(batchText("batch.banner.error-title", l, {
4449
4459
  code: lastError,
4450
4460
  detail
4451
- })) + "</strong></div><div>" + escapeHtml$1(act) + "</div></div>");
4461
+ })) + "</strong></div></div>");
4462
+ if (act) parts.push("<div class=\"dsh-upd-banner-sub\">" + escapeHtml$1(act) + "</div>");
4452
4463
  }
4453
4464
  const failed = rows.filter((row) => asBatchPhase(row.phase) === "failed" && !isQueueBusyRow(row));
4454
4465
  if (failed.length > 0) {
@@ -4457,10 +4468,16 @@ ${body}`;
4457
4468
  const copy = failureCopy(code, l);
4458
4469
  return "<div>" + escapeHtml$1(titleOf(row, titles)) + ":<code>" + escapeHtml$1(code) + "</code> " + escapeHtml$1(copy?.zh ?? failureCopy("unknown", l)?.zh ?? "") + "</div>";
4459
4470
  }).join("");
4460
- parts.push("<div class=\"dsh-upd-banner\" data-kind=\"failed\" data-mini=\"阻\" role=\"status\"><div><span class=\"dsh-upd-sealmini\" aria-hidden=\"true\">阻</span><strong>" + escapeHtml$1(batchText("batch.banner.failed-title", l, { n: String(failed.length) })) + "</strong></div><div>" + escapeHtml$1(batchText("batch.banner.failed-action", l)) + "</div><div class=\"dsh-upd-blist\">" + lines + "</div></div>");
4471
+ const failedAct = batchText("batch.banner.failed-action", l);
4472
+ parts.push("<div class=\"dsh-upd-banner\" data-kind=\"failed\" data-mini=\"阻\" role=\"status\"><div><span class=\"dsh-upd-sealmini\" aria-hidden=\"true\">阻</span><strong>" + escapeHtml$1(batchText("batch.banner.failed-title", l, { n: String(failed.length) })) + "</strong></div><div class=\"dsh-upd-blist\">" + lines + "</div></div>");
4473
+ if (failedAct) parts.push("<div class=\"dsh-upd-banner-sub\">" + escapeHtml$1(failedAct) + "</div>");
4461
4474
  }
4462
4475
  const restart = rows.filter((row) => row.restartRequired === true);
4463
- if (restart.length > 0) parts.push("<div class=\"dsh-upd-banner\" data-kind=\"restart\" role=\"status\"><div><strong>" + escapeHtml$1(batchText("batch.banner.restart-title", l, { n: String(restart.length) })) + "</strong></div><div>" + escapeHtml$1(batchText("batch.banner.restart-action", l)) + "</div><div class=\"dsh-upd-blist\">" + restart.map((row) => escapeHtml$1(titleOf(row, titles))).join("、") + "</div><div><button type=\"button\" data-act=\"restart\">" + escapeHtml$1(batchText("batch.banner.restart-button", l)) + "</button></div></div>");
4476
+ if (restart.length > 0) {
4477
+ const restartAct = batchText("batch.banner.restart-action", l);
4478
+ parts.push("<div class=\"dsh-upd-banner\" data-kind=\"restart\" role=\"status\"><div><strong>" + escapeHtml$1(batchText("batch.banner.restart-title", l, { n: String(restart.length) })) + "</strong></div><div class=\"dsh-upd-browline\"><span class=\"dsh-upd-blist\">" + restart.map((row) => escapeHtml$1(titleOf(row, titles))).join("、") + "</span><button type=\"button\" data-act=\"restart\">" + escapeHtml$1(batchText("batch.banner.restart-button", l)) + "</button></div></div>");
4479
+ if (restartAct) parts.push("<div class=\"dsh-upd-banner-sub\">" + escapeHtml$1(restartAct) + "</div>");
4480
+ }
4464
4481
  return parts.join("");
4465
4482
  }
4466
4483
  function rowSetHTML(row, ctx) {
@@ -4550,10 +4567,10 @@ ${body}`;
4550
4567
  const UPDATE_BATCH_PANEL_CSS = [
4551
4568
  "/* 批量面板(#25):类名沿用 dsh-upd-* 前缀;默认(最小)主题,Archive 皮肤见 UPDATE_BATCH_PANEL_ARCHIVE_CSS。 */",
4552
4569
  ".dsh-upd-batch-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}",
4553
- ".dsh-upd-batch-title{font-weight:700;font-size:15px;letter-spacing:.06em}",
4570
+ ".dsh-upd-batch-title{font-weight:700;font-size:var(--dsh-update-panel-chapter-font-size,15px);letter-spacing:.06em}",
4554
4571
  ".dsh-upd-batch-title i{font-style:normal;color:var(--dsh-update-primary,#2563eb)}",
4555
4572
  ".dsh-upd-batch-macros{flex:none}",
4556
- ".dsh-upd-batch-sum{margin:4px 0 8px;font-size:13.5px}",
4573
+ ".dsh-upd-batch-sum{margin:4px 0 8px;font-size:var(--dsh-update-panel-log-font-size,13.5px)}",
4557
4574
  ".dsh-upd-btable{margin-top:2px}",
4558
4575
  ".dsh-upd-brow-set{border-top:1px solid var(--dsh-update-border,#e5e7eb)}",
4559
4576
  ".dsh-upd-brow-set:first-child{border-top:0}",
@@ -4570,28 +4587,31 @@ ${body}`;
4570
4587
  ".dsh-upd-updot[data-tone=\"warn\"]{background:var(--dsh-update-warn-border,#d97706);opacity:1}",
4571
4588
  ".dsh-upd-updot[data-tone=\"bad\"]{background:var(--dsh-update-bad-border,#dc2626);opacity:1}",
4572
4589
  ".dsh-upd-bname{font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}",
4573
- ".dsh-upd-bver{font-family:Consolas,Menlo,monospace;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:0}",
4590
+ ".dsh-upd-bver{font-family:Consolas,Menlo,monospace;font-size:var(--dsh-update-panel-small-font-size,12px);white-space:nowrap;font-variant-numeric:tabular-nums;min-width:0}",
4574
4591
  ".dsh-upd-bver-cur{opacity:.65}",
4575
4592
  ".dsh-upd-bver-arrow{opacity:.6}",
4576
4593
  ".dsh-upd-bver-new{color:var(--dsh-update-new-text,#dc2626);font-weight:700}",
4577
4594
  ".dsh-upd-bver-new-ok{color:var(--dsh-update-new-ok-text,#047857);font-weight:700}",
4578
- ".dsh-upd-bstat{font-size:12.5px;opacity:.9;min-width:0;overflow-wrap:anywhere}",
4579
- ".dsh-upd-bfail{grid-column:1/-1;display:block;font-size:12.5px;color:var(--dsh-update-bad-border,#dc2626)}",
4595
+ ".dsh-upd-bstat{font-size:var(--dsh-update-panel-small-font-size,12.5px);opacity:.9;min-width:0;overflow-wrap:anywhere}",
4596
+ ".dsh-upd-bfail{grid-column:1/-1;display:block;font-size:var(--dsh-update-panel-small-font-size,12.5px);color:var(--dsh-update-bad-border,#dc2626)}",
4580
4597
  ".dsh-upd-batch{--dsh-update-new-text:#dc2626}",
4581
4598
  ".dsh-upd-batch{--dsh-update-new-ok-text:#047857}",
4582
4599
  "@media (prefers-color-scheme: dark){.dsh-upd-batch{--dsh-update-new-text:#f87171}}",
4583
4600
  "@media (prefers-color-scheme: dark){.dsh-upd-batch{--dsh-update-new-ok-text:#34d399}}",
4584
4601
  "@media (forced-colors: active){.dsh-upd-bver-new{color:CanvasText}}",
4585
4602
  "@media (forced-colors: active){.dsh-upd-bver-new-ok{color:CanvasText}}",
4586
- ".dsh-upd-blist{font-size:12.5px;margin-top:2px}",
4587
- ".dsh-upd-batch-ledger{margin:8px 0 0;font-size:13px;opacity:.85}",
4603
+ ".dsh-upd-blist{font-size:var(--dsh-update-panel-small-font-size,12.5px);margin-top:2px}",
4604
+ ".dsh-upd-browline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}",
4605
+ ".dsh-upd-browline>.dsh-upd-blist{flex:1 1 auto;min-width:0;text-align:left;margin:0}",
4606
+ ".dsh-upd-browline>button{flex:none;margin:0;margin-left:auto}",
4607
+ ".dsh-upd-batch-ledger{margin:8px 0 0;font-size:var(--dsh-update-panel-log-font-size,13px);opacity:.85}",
4588
4608
  ".dsh-upd-batch-more{margin-top:6px}",
4589
4609
  ".dsh-upd-batch-more button{font-size:12px}",
4590
4610
  ".dsh-upd-batch-more button[data-confirm=\"1\"]{border-color:var(--dsh-update-bad-border,#dc2626);color:var(--dsh-update-bad-border,#dc2626)}",
4591
- ".dsh-upd-batch-notice{margin-top:6px;font-size:12.5px;opacity:.85}",
4611
+ ".dsh-upd-batch-notice{margin-top:6px;font-size:var(--dsh-update-panel-small-font-size,12.5px);opacity:.85}",
4592
4612
  ".dsh-upd-bdetail-actions{margin:0 0 6px}",
4593
4613
  ".dsh-upd .dsh-upd-bdetail-actions button{font-size:12.5px}",
4594
- ".dsh-upd-bdetail-notice{margin:0 0 6px;font-size:12.5px;opacity:.85}",
4614
+ ".dsh-upd-bdetail-notice{margin:0 0 6px;font-size:var(--dsh-update-panel-small-font-size,12.5px);opacity:.85}",
4595
4615
  "/* 详情复用单插件内核:不许嵌套滚动——中性化 overlay 的 max-height/overflow,自身也不给 overflow。 */",
4596
4616
  ".dsh-upd-bdetail{margin:2px 0 10px;overflow:visible}",
4597
4617
  ".dsh-upd .dsh-upd-bdetail .dsh-upd{max-width:none}",
@@ -4610,7 +4630,7 @@ ${body}`;
4610
4630
  const UPDATE_BATCH_PANEL_ARCHIVE_CSS = [
4611
4631
  "/* 批量面板的 Archive 皮肤:只换颜色/字体/间距;根上的大印章由 UPDATE_PANEL_ARCHIVE_CSS 负责。 */",
4612
4632
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-batch-head{padding-right:120px}",
4613
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-batch-title{font-family:var(--dsh-update-font-serif);font-size:21px;letter-spacing:.04em}",
4633
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-batch-title{font-family:var(--dsh-update-font-serif);font-size:var(--dsh-update-panel-chapter-font-size,21px);letter-spacing:.04em}",
4614
4634
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-batch-title i{color:var(--dsh-update-primary)}",
4615
4635
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-brow-main{background:transparent;border:0;color:var(--dsh-update-text)}",
4616
4636
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-brow-main:hover{color:var(--dsh-update-primary)}",
@@ -4625,7 +4645,17 @@ ${body}`;
4625
4645
  "@media (prefers-color-scheme: dark){.dsh-upd[data-theme=\"archive\"] .dsh-upd-batch{--dsh-update-new-text:#ef8a7d}}",
4626
4646
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-batch-ledger{color:var(--dsh-update-text-muted)}",
4627
4647
  ".dsh-upd[data-theme=\"archive\"] .dsh-upd-batch-sum{color:var(--dsh-update-text)}",
4628
- ".dsh-upd[data-theme=\"archive\"] .dsh-upd-brow-set{border-top-color:var(--dsh-update-border)}"
4648
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-brow-set{border-top-color:var(--dsh-update-border)}",
4649
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-batch-macros{gap:8px}",
4650
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-batch-macros button{font-size:13px;line-height:1.45;padding:6px 12px;margin:0;min-width:0}",
4651
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-batch-macros button:first-child,.dsh-upd[data-theme=\"archive\"] .dsh-upd-batch-macros button[data-primary=\"1\"]{min-width:0}",
4652
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-batch-macros button:not([data-primary=\"1\"]){background:transparent}",
4653
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-brow-actions button{font-size:12px;line-height:1.45;padding:4px 10px;margin:0;min-width:0;background:transparent}",
4654
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-bdetail-actions button{font-size:12px;line-height:1.45;padding:4px 10px;margin:0;min-width:0;background:transparent}",
4655
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-batch-more button{font-size:12px;line-height:1.45;padding:4px 10px;margin:0;min-width:0;background:transparent}",
4656
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner>.dsh-upd-browline{align-self:stretch;display:flex;align-items:center;gap:10px;flex-wrap:wrap}",
4657
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner>.dsh-upd-browline .dsh-upd-blist{flex:1 1 auto;min-width:220px;text-align:left;margin:0;color:var(--dsh-update-text-muted)}",
4658
+ ".dsh-upd[data-theme=\"archive\"] .dsh-upd-banner>.dsh-upd-browline button{flex:none;margin:0;margin-left:auto;font-size:13px;line-height:1.45;padding:6px 12px;min-width:0;background:transparent}"
4629
4659
  ].join(String.fromCharCode(10));
4630
4660
  function escapeHtml$1(text) {
4631
4661
  return String(text).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
@@ -5529,7 +5559,7 @@ ${body}`;
5529
5559
  };
5530
5560
  }
5531
5561
  //#endregion
5532
- //#region ../../node_modules/.pnpm/dsh-plugin-update@0.12.0/node_modules/dsh-plugin-update/dist/entry-batch.js
5562
+ //#region ../../node_modules/.pnpm/dsh-plugin-update@0.13.0/node_modules/dsh-plugin-update/dist/entry-batch.js
5533
5563
  function isObject(value) {
5534
5564
  return !!value && typeof value === "object" && !Array.isArray(value);
5535
5565
  }
@@ -8428,7 +8458,7 @@ ${body}`;
8428
8458
  }, react.createElement("span", { style: S.morePkg }, row.pkg), react.createElement("span", { style: S.moreDesc }, row.desc), react.createElement("span", { style: S.moreIcon }, react.createElement(ExternalIcon, null)))));
8429
8459
  }
8430
8460
  /** 版本胶囊那一行字:只在这里拼一次,屏上与用例读的是同一串。 */
8431
- const MANAGER_VERSION_TEXT = "dsh-life-pack · 0.3.53";
8461
+ const MANAGER_VERSION_TEXT = "dsh-life-pack · 0.3.54";
8432
8462
  /** 右下角那本书离面板两沿的距离:用户口径「一直处于面板右下角、不随列表滑动消失」
8433
8463
  * ⇒ sticky 吸附(面板相对,视口多大都落在面板角上);INSET=右沿,BOTTOM=底沿。 */
8434
8464
  const MANUAL_ENTRY_INSET = 16;