dsh-config-manager 0.1.23 → 0.1.25
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/README.md +12 -0
- package/README.zh-CN.md +12 -0
- package/lib/client.d.ts +12 -10
- package/lib/client.js +174 -155
- package/lib/client.js.map +1 -1
- package/lib/index.js +32 -11
- package/lib/index.js.map +1 -1
- package/lib/sync/sync-engine.d.ts +4 -0
- package/lib/sync/sync-engine.js +4 -2
- package/lib/sync/sync-engine.js.map +1 -1
- package/package.json +1 -1
- package/src/client/config-manager.module.css +18 -0
- package/src/client/sync/SyncConfirmView.tsx +38 -23
- package/src/client/sync/SyncSettingsView.tsx +13 -10
- package/src/client/sync/sync-api.ts +5 -2
- package/src/client/sync/sync-locales.ts +14 -16
- package/src/client/sync/sync-view-v2.test.ts +2 -2
- package/src/client/sync/sync-view.ts +11 -4
- package/src/index.ts +35 -12
- package/src/sync/sync-engine.ts +7 -2
package/README.md
CHANGED
|
@@ -41,6 +41,18 @@ DSH is your AI assistant workbench — it holds your settings: model configs, pl
|
|
|
41
41
|
|
|
42
42
|
---
|
|
43
43
|
|
|
44
|
+
## 📸 Screenshots
|
|
45
|
+
|
|
46
|
+
| Export | Import Preview |
|
|
47
|
+
|:---:|:---:|
|
|
48
|
+
|  |  |
|
|
49
|
+
|
|
50
|
+
| Snapshot Restore | Remote Sync |
|
|
51
|
+
|:---:|:---:|
|
|
52
|
+
|  |  |
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
44
56
|
## 🔄 How it works?
|
|
45
57
|
|
|
46
58
|
### Export (pack it up)
|
package/README.zh-CN.md
CHANGED
|
@@ -40,6 +40,18 @@ DSH 是你的 AI 助手工作台,里面存着你的各种设置:模型配置
|
|
|
40
40
|
|
|
41
41
|
---
|
|
42
42
|
|
|
43
|
+
## 📸 功能截图
|
|
44
|
+
|
|
45
|
+
| 导出备份 | 导入预览 |
|
|
46
|
+
|:---:|:---:|
|
|
47
|
+
|  |  |
|
|
48
|
+
|
|
49
|
+
| 快照恢复 | 远程同步 |
|
|
50
|
+
|:---:|:---:|
|
|
51
|
+
|  |  |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
43
55
|
## 🔄 它是怎么工作的?
|
|
44
56
|
|
|
45
57
|
### 导出(打包带走)
|
package/lib/client.d.ts
CHANGED
|
@@ -695,6 +695,8 @@ interface SyncConfirmItem {
|
|
|
695
695
|
adapter: SectionId;
|
|
696
696
|
kind: PlanItemKind;
|
|
697
697
|
description: string;
|
|
698
|
+
/** 变更详情(如插件「当前 1.1 vs 导入 1.6」),与导入恢复向导展示一致 */
|
|
699
|
+
detail?: string;
|
|
698
700
|
severity: 'info' | 'warning' | 'error';
|
|
699
701
|
/** 默认采纳方向;Conflict/MissingSecret 等人工项默认 false */
|
|
700
702
|
defaultAdopt: boolean;
|
|
@@ -727,8 +729,9 @@ interface ApplyItemsPayload {
|
|
|
727
729
|
interface SyncItemAdoption {
|
|
728
730
|
itemId: string;
|
|
729
731
|
adopt: boolean;
|
|
730
|
-
/** 冲突项解决方案(仅当该项是 Conflict 且 adopt=true
|
|
731
|
-
|
|
732
|
+
/** 冲突项解决方案(仅当该项是 Conflict 且 adopt=true 时必须)。
|
|
733
|
+
* 与导入恢复向导一致:keepLocal=保留当前 / useRemote=使用导入;跳过 = adopt=false。 */
|
|
734
|
+
resolution?: 'useRemote' | 'keepLocal';
|
|
732
735
|
}
|
|
733
736
|
/** POST /sync/apply-items 响应。 */
|
|
734
737
|
interface ApplyItemsResponse {
|
|
@@ -1060,17 +1063,16 @@ declare const zh: {
|
|
|
1060
1063
|
readonly 'syncflow.needsReviewBadge': "需人工决策";
|
|
1061
1064
|
readonly 'syncflow.empty': "远端快照与本地一致(无变更)";
|
|
1062
1065
|
readonly 'syncflow.diffCount': "共 {count} 项差异";
|
|
1063
|
-
readonly 'syncflow.keepLocalAll': "
|
|
1064
|
-
readonly 'syncflow.useRemoteAll': "
|
|
1066
|
+
readonly 'syncflow.keepLocalAll': "全部保留当前配置";
|
|
1067
|
+
readonly 'syncflow.useRemoteAll': "全部使用备份配置";
|
|
1065
1068
|
readonly 'syncflow.bulkHint': "批量决策仅作用于冲突项;其余差异默认自动采用。";
|
|
1066
1069
|
readonly 'syncflow.conflictTitle': "冲突解决";
|
|
1067
|
-
readonly 'syncflow.conflictUseLocal': "
|
|
1068
|
-
readonly 'syncflow.conflictUseRemote': "
|
|
1069
|
-
readonly 'syncflow.
|
|
1070
|
-
readonly 'syncflow.
|
|
1071
|
-
readonly 'syncflow.conflictRemoteLabel': "远端";
|
|
1070
|
+
readonly 'syncflow.conflictUseLocal': "保留当前";
|
|
1071
|
+
readonly 'syncflow.conflictUseRemote': "使用备份";
|
|
1072
|
+
readonly 'syncflow.conflictLocalLabel': "当前";
|
|
1073
|
+
readonly 'syncflow.conflictRemoteLabel': "备份";
|
|
1072
1074
|
readonly 'syncflow.conflictAncestorLabel': "共同祖先";
|
|
1073
|
-
readonly 'syncflow.conflictUnresolved': "冲突项 {itemId}
|
|
1075
|
+
readonly 'syncflow.conflictUnresolved': "冲突项 {itemId} 尚未选择解决方式(保留当前 / 使用备份)";
|
|
1074
1076
|
readonly 'syncflow.diff': "差异";
|
|
1075
1077
|
readonly 'syncflow.importDone': "已导入 {n} 个分区";
|
|
1076
1078
|
readonly 'syncflow.importFailed': "导入失败(已整体回滚)";
|
package/lib/client.js
CHANGED
|
@@ -2065,7 +2065,7 @@ var RunStore = class {
|
|
|
2065
2065
|
const runStore = new RunStore();
|
|
2066
2066
|
//#endregion
|
|
2067
2067
|
//#region \0config-manager-css:/home/runner/work/dsh-config-manager/dsh-config-manager/src/client/config-manager.module.css.js
|
|
2068
|
-
const css = "._367UGW_section{height:100%;min-height:0;color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);flex-direction:column;gap:10px;font-size:13px;display:flex}._367UGW_sectionHeader{flex:none;align-items:center;gap:10px;display:flex}._367UGW_viewTabs{border-bottom:1px solid var(--dsw-alias-border-l1);flex:1;gap:2px;display:flex}._367UGW_viewTab{color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;padding:7px 14px;font-size:13px}._367UGW_viewTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._367UGW_viewTab[data-active]{color:var(--dsw-alias-label-primary);border-bottom-color:var(--dsw-alias-state-business-primary);font-weight:600}._367UGW_sectionBody{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}._367UGW_viewBody{flex-direction:column;gap:12px;padding:4px 2px 16px;display:flex}._367UGW_sectionTitleBlock{flex-direction:column;gap:2px;display:flex}._367UGW_sectionTitle{color:var(--dsw-alias-label-primary);margin:0;font-size:15px;font-weight:700}._367UGW_sectionSubtitle{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:1.5}._367UGW_primaryButton{color:var(--dsw-alias-label-primary-foreground);background:var(--dsw-alias-button-info-fill);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}._367UGW_primaryButton:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}._367UGW_primaryButton:disabled{opacity:.5;cursor:default}._367UGW_ghostButton{color:var(--dsw-alias-label-primary);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;display:inline-flex}._367UGW_ghostButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._367UGW_ghostButton:disabled{opacity:.45;cursor:default}._367UGW_dangerButton{color:var(--dsw-alias-state-error-primary);border:1px solid var(--dsw-alias-state-error-primary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;padding:5px 12px;font-size:12px}._367UGW_dangerButton:hover:not(:disabled){background:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-label-primary-foreground)}._367UGW_dangerButton:disabled{opacity:.45;cursor:default}._367UGW_badge{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px;line-height:1.6;display:inline-block}._367UGW_badgeInfo{color:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary)}._367UGW_badgeOk{color:var(--dsw-alias-state-success-primary);border-color:var(--dsw-alias-state-success-primary)}._367UGW_badgeWarn{color:var(--dsw-alias-state-warn-primary);border-color:var(--dsw-alias-state-warn-primary)}._367UGW_badgeError{color:var(--dsw-alias-state-error-primary);border-color:var(--dsw-alias-state-error-primary)}._367UGW_banner{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;border-radius:8px;padding:8px 12px;font-size:12.5px;line-height:1.5}._367UGW_banner[data-kind=ok]{color:var(--dsw-alias-state-success-primary);border-color:var(--dsw-alias-state-success-primary)}._367UGW_banner[data-kind=error]{color:var(--dsw-alias-state-error-primary);border-color:var(--dsw-alias-state-error-primary)}._367UGW_banner[data-kind=info]{color:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary)}._367UGW_banner[data-kind=warn]{color:var(--dsw-alias-state-warn-primary);border-color:var(--dsw-alias-state-warn-primary)}._367UGW_card{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:10px;flex-direction:column;flex:none;gap:10px;padding:12px;display:flex}._367UGW_field{flex-direction:column;gap:5px;display:flex}._367UGW_fieldLabel{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:600}._367UGW_input{color:var(--dsw-alias-label-primary);background:var(--dsw-specific-input-major);border:1px solid var(--dsw-alias-border-l2);resize:vertical;border-radius:8px;outline:none;padding:7px 10px;font-family:inherit;font-size:13px}._367UGW_input:focus{border-color:var(--dsw-alias-state-business-primary)}._367UGW_input::placeholder{color:var(--dsw-alias-label-tertiary)}._367UGW_input:disabled{opacity:.55}._367UGW_select{-webkit-appearance:none;appearance:none;color:var(--dsw-alias-label-primary);background-color:var(--dsw-specific-input-major);background-image:linear-gradient(45deg, transparent 50%, var(--dsw-alias-label-secondary) 50%), linear-gradient(135deg, var(--dsw-alias-label-secondary) 50%, transparent 50%);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;background-position:calc(100% - 17px) calc(50% - 1px),calc(100% - 12px) calc(50% - 1px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;border-radius:8px;outline:none;max-width:100%;padding:7px 30px 7px 10px;font-family:inherit;font-size:13px}._367UGW_select:hover:not(:disabled){border-color:var(--dsw-alias-border-l1)}._367UGW_select:focus{border-color:var(--dsw-alias-state-business-primary)}._367UGW_select:disabled{opacity:.55;cursor:default}._367UGW_select option{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}._367UGW_hint{color:var(--dsw-alias-label-tertiary);font-size:11.5px;line-height:1.5}._367UGW_formError{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px}._367UGW_checkboxRow{color:var(--dsw-alias-label-primary);cursor:pointer;align-items:flex-start;gap:8px;font-size:13px;display:flex}._367UGW_checkboxRow input{flex:none;margin-top:2px}._367UGW_radioLabel{color:var(--dsw-alias-label-primary);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}._367UGW_secretFields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 12px;padding-top:4px;display:grid}._367UGW_hiddenFile{display:none}._367UGW_modeTabs{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;gap:2px;display:flex}._367UGW_modeTab{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:6px 12px;font-size:12.5px}._367UGW_modeTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._367UGW_modeTab[data-active]{color:var(--dsw-alias-label-primary);border-bottom-color:var(--dsw-alias-state-business-primary);font-weight:600}._367UGW_modeHint{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:1.5}._367UGW_groupList{flex-direction:column;gap:10px;display:flex}._367UGW_groupCard{gap:8px}._367UGW_groupHeader{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}._367UGW_groupLabel{color:var(--dsw-alias-label-primary);font-size:12.5px;font-weight:700}._367UGW_groupNote{color:var(--dsw-alias-label-tertiary);font-size:11.5px}._367UGW_groupItems{flex-direction:column;gap:6px;display:flex}._367UGW_categoryItem{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}._367UGW_categoryName{font-weight:500}._367UGW_categoryDesc{color:var(--dsw-alias-label-tertiary);font-size:11.5px}._367UGW_optionsCard{gap:8px}._367UGW_warnList{margin:4px 0 0;padding-left:18px}._367UGW_actionRow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}._367UGW_progressBlock{flex-direction:column;flex:none;gap:6px;display:flex}._367UGW_progressMeta{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}._367UGW_progressLabel{font-weight:600}._367UGW_progressDetail{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}._367UGW_progressBadge{font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;align-items:center;gap:2px;padding:1px 8px;font-size:11px;line-height:18px;display:inline-flex}._367UGW_progressBadgeSection{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, transparent);color:var(--dsw-alias-state-business-primary)}._367UGW_progressBadgeCount{background:color-mix(in srgb, var(--dsw-alias-state-info-primary) 14%, transparent);color:var(--dsw-alias-state-info-primary)}._367UGW_progressPercent{font-variant-numeric:tabular-nums;margin-left:auto}._367UGW_progressTrack{background:var(--dsw-alias-interactive-bg-hover);border-radius:999px;height:8px;overflow:hidden}._367UGW_progressBar{background:var(--dsw-alias-state-business-primary);border-radius:999px;height:100%;transition:width .12s linear}._367UGW_progressBarDone{background:var(--dsw-alias-state-success-primary)}._367UGW_progressIndeterminate{width:40%;animation:1s ease-in-out infinite _367UGW_dshCmIndeterminate}@keyframes _367UGW_dshCmIndeterminate{0%{margin-left:-40%}to{margin-left:100%}}._367UGW_reportView{flex-direction:column;gap:10px;display:flex}._367UGW_statRow{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._367UGW_reportText{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;max-height:260px;color:var(--dsw-alias-label-primary);border-radius:8px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.6;overflow:auto}._367UGW_reportFooter{justify-content:flex-end;gap:8px;display:flex}._367UGW_rollbackBox{border:1px solid var(--dsw-alias-state-warn-primary);color:var(--dsw-alias-state-warn-primary);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}._367UGW_rollbackBox ._367UGW_reportText{border-color:var(--dsw-alias-border-l2)}._367UGW_errorBanner{border:1px solid var(--dsw-alias-state-error-primary);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}._367UGW_errorTitle{color:var(--dsw-alias-state-error-primary);font-size:13px;font-weight:700}._367UGW_errorReason{white-space:pre-wrap;word-break:break-all;color:var(--dsw-alias-label-secondary);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}._367UGW_errorAction{color:var(--dsw-alias-label-secondary);font-size:12.5px}._367UGW_errorActionLabel{color:var(--dsw-alias-state-business-primary)}._367UGW_errorItem{color:var(--dsw-alias-label-tertiary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}._367UGW_errorFooter{justify-content:flex-end;display:flex}._367UGW_errorList{flex-direction:column;gap:4px;display:flex}._367UGW_errorLine{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;color:var(--dsw-alias-state-error-primary);border-radius:6px;margin:0;padding:6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}._367UGW_conflictList{flex-direction:column;gap:10px;display:flex}._367UGW_conflictItem{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}._367UGW_conflictHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}._367UGW_conflictId{color:var(--dsw-alias-label-primary);font-size:12.5px;font-weight:600}._367UGW_severityError{color:var(--dsw-alias-state-error-primary);border:1px solid var(--dsw-alias-state-error-primary);border-radius:999px;padding:0 6px;font-size:10.5px}._367UGW_conflictDetail{background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;color:var(--dsw-alias-label-secondary);border-radius:6px;margin:0;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}._367UGW_conflictOptions{flex-wrap:wrap;gap:14px;display:flex}._367UGW_pathMappingList{flex-direction:column;gap:8px;display:flex}._367UGW_pathRow{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:10px 12px;display:grid}._367UGW_pathOld,._367UGW_pathNew{flex-direction:column;gap:4px;min-width:0;display:flex}._367UGW_pathValue{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;overflow:hidden}._367UGW_pathIssueKind{color:var(--dsw-alias-state-warn-primary);font-size:10.5px}._367UGW_secretsList{flex-direction:column;gap:10px;display:flex}._367UGW_empty{text-align:center;color:var(--dsw-alias-label-tertiary);padding:22px 12px;font-size:12.5px}._367UGW_spinnerWrap{align-items:center;gap:6px;display:inline-flex}._367UGW_spinner{border:2px solid var(--dsw-alias-state-business-primary);vertical-align:-1px;border-top-color:#0000;border-radius:50%;flex:none;width:11px;height:11px;animation:.8s linear infinite _367UGW_dshCmSpin;display:inline-block}._367UGW_spinnerLabel{color:var(--dsw-alias-label-secondary);font-size:12px}@keyframes _367UGW_dshCmSpin{to{transform:rotate(360deg)}}._367UGW_snapshotList{flex-direction:column;gap:2px;display:flex}._367UGW_snapshotRowHeader,._367UGW_snapshotRow{grid-template-columns:minmax(120px,1.2fr) minmax(140px,1.6fr) 90px 56px 56px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:grid}._367UGW_snapshotRowHeader{color:var(--dsw-alias-label-tertiary);border-bottom:1px solid var(--dsw-alias-border-l1);font-size:11px}._367UGW_snapshotRow{text-align:left;width:100%;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px}._367UGW_snapshotRow:hover{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_snapshotRow[data-active]{border-color:var(--dsw-alias-state-business-primary);background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 10%, transparent)}._367UGW_warnText{color:var(--dsw-alias-state-warn-primary)}._367UGW_reportList{color:var(--dsw-alias-label-primary);flex-direction:column;gap:3px;margin:8px 0 4px;padding-left:18px;font-size:12px;display:flex}._367UGW_kindTag{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:4px;padding:1px 6px;font-size:10.5px;display:inline-block}._367UGW_planScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;height:280px;padding:2px 10px 8px;overflow-y:auto}._367UGW_planScroll ._367UGW_reportList{margin-top:6px}._367UGW_reportScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;max-height:220px;padding:2px 10px 6px;overflow-y:auto}._367UGW_reportScroll ._367UGW_reportList{margin-top:4px}._367UGW_confirmScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;max-height:280px;padding:2px 10px 6px;overflow-y:auto}._367UGW_confirmScroll ._367UGW_reportList{margin-top:4px;margin-bottom:0}._367UGW_rowActions{gap:8px;margin-top:10px;display:flex}._367UGW_diffScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;max-height:240px;color:var(--dsw-alias-label-primary);border-radius:8px;margin:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.6;overflow:auto}";
|
|
2068
|
+
const css = "._367UGW_section{height:100%;min-height:0;color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);flex-direction:column;gap:10px;font-size:13px;display:flex}._367UGW_sectionHeader{flex:none;align-items:center;gap:10px;display:flex}._367UGW_viewTabs{border-bottom:1px solid var(--dsw-alias-border-l1);flex:1;gap:2px;display:flex}._367UGW_viewTab{color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;padding:7px 14px;font-size:13px}._367UGW_viewTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._367UGW_viewTab[data-active]{color:var(--dsw-alias-label-primary);border-bottom-color:var(--dsw-alias-state-business-primary);font-weight:600}._367UGW_sectionBody{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}._367UGW_viewBody{flex-direction:column;gap:12px;padding:4px 2px 16px;display:flex}._367UGW_sectionTitleBlock{flex-direction:column;gap:2px;display:flex}._367UGW_sectionTitle{color:var(--dsw-alias-label-primary);margin:0;font-size:15px;font-weight:700}._367UGW_sectionSubtitle{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:1.5}._367UGW_primaryButton{color:var(--dsw-alias-label-primary-foreground);background:var(--dsw-alias-button-info-fill);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}._367UGW_primaryButton:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}._367UGW_primaryButton:disabled{opacity:.5;cursor:default}._367UGW_ghostButton{color:var(--dsw-alias-label-primary);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;display:inline-flex}._367UGW_ghostButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._367UGW_ghostButton:disabled{opacity:.45;cursor:default}._367UGW_dangerButton{color:var(--dsw-alias-state-error-primary);border:1px solid var(--dsw-alias-state-error-primary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;padding:5px 12px;font-size:12px}._367UGW_dangerButton:hover:not(:disabled){background:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-label-primary-foreground)}._367UGW_dangerButton:disabled{opacity:.45;cursor:default}._367UGW_badge{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px;line-height:1.6;display:inline-block}._367UGW_badgeInfo{color:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary)}._367UGW_badgeOk{color:var(--dsw-alias-state-success-primary);border-color:var(--dsw-alias-state-success-primary)}._367UGW_badgeWarn{color:var(--dsw-alias-state-warn-primary);border-color:var(--dsw-alias-state-warn-primary)}._367UGW_badgeError{color:var(--dsw-alias-state-error-primary);border-color:var(--dsw-alias-state-error-primary)}._367UGW_banner{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;border-radius:8px;padding:8px 12px;font-size:12.5px;line-height:1.5}._367UGW_banner[data-kind=ok]{color:var(--dsw-alias-state-success-primary);border-color:var(--dsw-alias-state-success-primary)}._367UGW_banner[data-kind=error]{color:var(--dsw-alias-state-error-primary);border-color:var(--dsw-alias-state-error-primary)}._367UGW_banner[data-kind=info]{color:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary)}._367UGW_banner[data-kind=warn]{color:var(--dsw-alias-state-warn-primary);border-color:var(--dsw-alias-state-warn-primary)}._367UGW_card{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:10px;flex-direction:column;flex:none;gap:10px;padding:12px;display:flex}._367UGW_field{flex-direction:column;gap:5px;display:flex}._367UGW_fieldLabel{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:600}._367UGW_input{color:var(--dsw-alias-label-primary);background:var(--dsw-specific-input-major);border:1px solid var(--dsw-alias-border-l2);resize:vertical;border-radius:8px;outline:none;padding:7px 10px;font-family:inherit;font-size:13px}._367UGW_input:focus{border-color:var(--dsw-alias-state-business-primary)}._367UGW_input::placeholder{color:var(--dsw-alias-label-tertiary)}._367UGW_input:disabled{opacity:.55}._367UGW_select{-webkit-appearance:none;appearance:none;color:var(--dsw-alias-label-primary);background-color:var(--dsw-specific-input-major);background-image:linear-gradient(45deg, transparent 50%, var(--dsw-alias-label-secondary) 50%), linear-gradient(135deg, var(--dsw-alias-label-secondary) 50%, transparent 50%);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;background-position:calc(100% - 17px) calc(50% - 1px),calc(100% - 12px) calc(50% - 1px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;border-radius:8px;outline:none;max-width:100%;padding:7px 30px 7px 10px;font-family:inherit;font-size:13px}._367UGW_select:hover:not(:disabled){border-color:var(--dsw-alias-border-l1)}._367UGW_select:focus{border-color:var(--dsw-alias-state-business-primary)}._367UGW_select:disabled{opacity:.55;cursor:default}._367UGW_select option{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}._367UGW_hint{color:var(--dsw-alias-label-tertiary);font-size:11.5px;line-height:1.5}._367UGW_formError{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px}._367UGW_checkboxRow{color:var(--dsw-alias-label-primary);cursor:pointer;align-items:flex-start;gap:8px;font-size:13px;display:flex}._367UGW_checkboxRow input{flex:none;margin-top:2px}._367UGW_radioLabel{color:var(--dsw-alias-label-primary);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}._367UGW_secretFields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 12px;padding-top:4px;display:grid}._367UGW_hiddenFile{display:none}._367UGW_modeTabs{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;gap:2px;display:flex}._367UGW_modeTab{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:6px 12px;font-size:12.5px}._367UGW_modeTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._367UGW_modeTab[data-active]{color:var(--dsw-alias-label-primary);border-bottom-color:var(--dsw-alias-state-business-primary);font-weight:600}._367UGW_modeHint{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:1.5}._367UGW_groupList{flex-direction:column;gap:10px;display:flex}._367UGW_groupCard{gap:8px}._367UGW_groupHeader{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}._367UGW_groupLabel{color:var(--dsw-alias-label-primary);font-size:12.5px;font-weight:700}._367UGW_groupNote{color:var(--dsw-alias-label-tertiary);font-size:11.5px}._367UGW_groupItems{flex-direction:column;gap:6px;display:flex}._367UGW_categoryItem{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}._367UGW_categoryName{font-weight:500}._367UGW_categoryDesc{color:var(--dsw-alias-label-tertiary);font-size:11.5px}._367UGW_optionsCard{gap:8px}._367UGW_warnList{margin:4px 0 0;padding-left:18px}._367UGW_actionRow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}._367UGW_progressBlock{flex-direction:column;flex:none;gap:6px;display:flex}._367UGW_progressMeta{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}._367UGW_progressLabel{font-weight:600}._367UGW_progressDetail{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}._367UGW_progressBadge{font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;align-items:center;gap:2px;padding:1px 8px;font-size:11px;line-height:18px;display:inline-flex}._367UGW_progressBadgeSection{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, transparent);color:var(--dsw-alias-state-business-primary)}._367UGW_progressBadgeCount{background:color-mix(in srgb, var(--dsw-alias-state-info-primary) 14%, transparent);color:var(--dsw-alias-state-info-primary)}._367UGW_progressPercent{font-variant-numeric:tabular-nums;margin-left:auto}._367UGW_progressTrack{background:var(--dsw-alias-interactive-bg-hover);border-radius:999px;height:8px;overflow:hidden}._367UGW_progressBar{background:var(--dsw-alias-state-business-primary);border-radius:999px;height:100%;transition:width .12s linear}._367UGW_progressBarDone{background:var(--dsw-alias-state-success-primary)}._367UGW_progressIndeterminate{width:40%;animation:1s ease-in-out infinite _367UGW_dshCmIndeterminate}@keyframes _367UGW_dshCmIndeterminate{0%{margin-left:-40%}to{margin-left:100%}}._367UGW_reportView{flex-direction:column;gap:10px;display:flex}._367UGW_statRow{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._367UGW_reportText{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;max-height:260px;color:var(--dsw-alias-label-primary);border-radius:8px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.6;overflow:auto}._367UGW_reportFooter{justify-content:flex-end;gap:8px;display:flex}._367UGW_rollbackBox{border:1px solid var(--dsw-alias-state-warn-primary);color:var(--dsw-alias-state-warn-primary);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}._367UGW_rollbackBox ._367UGW_reportText{border-color:var(--dsw-alias-border-l2)}._367UGW_errorBanner{border:1px solid var(--dsw-alias-state-error-primary);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}._367UGW_errorTitle{color:var(--dsw-alias-state-error-primary);font-size:13px;font-weight:700}._367UGW_errorReason{white-space:pre-wrap;word-break:break-all;color:var(--dsw-alias-label-secondary);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}._367UGW_errorAction{color:var(--dsw-alias-label-secondary);font-size:12.5px}._367UGW_errorActionLabel{color:var(--dsw-alias-state-business-primary)}._367UGW_errorItem{color:var(--dsw-alias-label-tertiary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}._367UGW_errorFooter{justify-content:flex-end;display:flex}._367UGW_errorList{flex-direction:column;gap:4px;display:flex}._367UGW_errorLine{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;color:var(--dsw-alias-state-error-primary);border-radius:6px;margin:0;padding:6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}._367UGW_conflictList{flex-direction:column;gap:10px;display:flex}._367UGW_conflictItem{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}._367UGW_conflictHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}._367UGW_conflictId{color:var(--dsw-alias-label-primary);font-size:12.5px;font-weight:600}._367UGW_severityError{color:var(--dsw-alias-state-error-primary);border:1px solid var(--dsw-alias-state-error-primary);border-radius:999px;padding:0 6px;font-size:10.5px}._367UGW_conflictDetail{background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;color:var(--dsw-alias-label-secondary);border-radius:6px;margin:0;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}._367UGW_conflictOptions{flex-wrap:wrap;gap:14px;display:flex}._367UGW_pathMappingList{flex-direction:column;gap:8px;display:flex}._367UGW_pathRow{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:10px 12px;display:grid}._367UGW_pathOld,._367UGW_pathNew{flex-direction:column;gap:4px;min-width:0;display:flex}._367UGW_pathValue{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;overflow:hidden}._367UGW_pathIssueKind{color:var(--dsw-alias-state-warn-primary);font-size:10.5px}._367UGW_secretsList{flex-direction:column;gap:10px;display:flex}._367UGW_empty{text-align:center;color:var(--dsw-alias-label-tertiary);padding:22px 12px;font-size:12.5px}._367UGW_spinnerWrap{align-items:center;gap:6px;display:inline-flex}._367UGW_spinner{border:2px solid var(--dsw-alias-state-business-primary);vertical-align:-1px;border-top-color:#0000;border-radius:50%;flex:none;width:11px;height:11px;animation:.8s linear infinite _367UGW_dshCmSpin;display:inline-block}._367UGW_spinnerLabel{color:var(--dsw-alias-label-secondary);font-size:12px}@keyframes _367UGW_dshCmSpin{to{transform:rotate(360deg)}}._367UGW_snapshotList{flex-direction:column;gap:2px;display:flex}._367UGW_snapshotRowHeader,._367UGW_snapshotRow{grid-template-columns:minmax(120px,1.2fr) minmax(140px,1.6fr) 90px 56px 56px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:grid}._367UGW_snapshotRowHeader{color:var(--dsw-alias-label-tertiary);border-bottom:1px solid var(--dsw-alias-border-l1);font-size:11px}._367UGW_snapshotRow{text-align:left;width:100%;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px}._367UGW_snapshotRow:hover{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_snapshotRow[data-active]{border-color:var(--dsw-alias-state-business-primary);background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 10%, transparent)}._367UGW_warnText{color:var(--dsw-alias-state-warn-primary)}._367UGW_reportList{color:var(--dsw-alias-label-primary);flex-direction:column;gap:3px;margin:8px 0 4px;padding-left:18px;font-size:12px;display:flex}._367UGW_kindTag{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:4px;padding:1px 6px;font-size:10.5px;display:inline-block}._367UGW_planScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;height:280px;padding:2px 10px 8px;overflow-y:auto}._367UGW_planScroll ._367UGW_reportList{margin-top:6px}._367UGW_reportScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;max-height:220px;padding:2px 10px 6px;overflow-y:auto}._367UGW_reportScroll ._367UGW_reportList{margin-top:4px}._367UGW_confirmScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;max-height:280px;padding:2px 10px 6px;overflow-y:auto}._367UGW_confirmScroll ._367UGW_reportList{margin-top:4px;margin-bottom:0}._367UGW_pullScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;height:280px;padding:2px 10px 6px;overflow-y:auto}._367UGW_pullScroll ._367UGW_reportList{margin-top:4px;margin-bottom:0}._367UGW_rowActions{gap:8px;margin-top:10px;display:flex}._367UGW_diffScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;max-height:240px;color:var(--dsw-alias-label-primary);border-radius:8px;margin:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.6;overflow:auto}";
|
|
2069
2069
|
const tagId = "dsh-config-manager/config-manager.module.css";
|
|
2070
2070
|
if (typeof document !== "undefined" && document.querySelector("style[data-tag=\"dsh-config-manager/config-manager.module.css\"]") === null) {
|
|
2071
2071
|
const tag = document.createElement("style");
|
|
@@ -2075,107 +2075,108 @@ if (typeof document !== "undefined" && document.querySelector("style[data-tag=\"
|
|
|
2075
2075
|
document.head.appendChild(tag);
|
|
2076
2076
|
}
|
|
2077
2077
|
var config_manager_module_css_default = {
|
|
2078
|
-
"errorFooter": "_367UGW_errorFooter",
|
|
2079
|
-
"warnText": "_367UGW_warnText",
|
|
2080
|
-
"planScroll": "_367UGW_planScroll",
|
|
2081
|
-
"rowActions": "_367UGW_rowActions",
|
|
2082
|
-
"dangerButton": "_367UGW_dangerButton",
|
|
2083
|
-
"card": "_367UGW_card",
|
|
2084
|
-
"groupCard": "_367UGW_groupCard",
|
|
2085
|
-
"errorItem": "_367UGW_errorItem",
|
|
2086
|
-
"formError": "_367UGW_formError",
|
|
2087
|
-
"pathOld": "_367UGW_pathOld",
|
|
2088
|
-
"errorActionLabel": "_367UGW_errorActionLabel",
|
|
2089
|
-
"pathValue": "_367UGW_pathValue",
|
|
2090
|
-
"select": "_367UGW_select",
|
|
2091
|
-
"sectionSubtitle": "_367UGW_sectionSubtitle",
|
|
2092
|
-
"sectionBody": "_367UGW_sectionBody",
|
|
2093
|
-
"banner": "_367UGW_banner",
|
|
2094
|
-
"hint": "_367UGW_hint",
|
|
2095
|
-
"reportView": "_367UGW_reportView",
|
|
2096
|
-
"categoryDesc": "_367UGW_categoryDesc",
|
|
2097
|
-
"reportList": "_367UGW_reportList",
|
|
2098
|
-
"statRow": "_367UGW_statRow",
|
|
2099
|
-
"progressMeta": "_367UGW_progressMeta",
|
|
2100
|
-
"progressBarDone": "_367UGW_progressBarDone",
|
|
2101
|
-
"secretsList": "_367UGW_secretsList",
|
|
2102
|
-
"snapshotRow": "_367UGW_snapshotRow",
|
|
2103
|
-
"confirmScroll": "_367UGW_confirmScroll",
|
|
2104
|
-
"errorBanner": "_367UGW_errorBanner",
|
|
2105
|
-
"secretFields": "_367UGW_secretFields",
|
|
2106
|
-
"categoryName": "_367UGW_categoryName",
|
|
2107
|
-
"errorLine": "_367UGW_errorLine",
|
|
2108
|
-
"conflictHead": "_367UGW_conflictHead",
|
|
2109
|
-
"progressBadgeCount": "_367UGW_progressBadgeCount",
|
|
2110
|
-
"snapshotRowHeader": "_367UGW_snapshotRowHeader",
|
|
2111
|
-
"badgeWarn": "_367UGW_badgeWarn",
|
|
2112
|
-
"badge": "_367UGW_badge",
|
|
2113
|
-
"badgeError": "_367UGW_badgeError",
|
|
2114
|
-
"actionRow": "_367UGW_actionRow",
|
|
2115
|
-
"dshCmSpin": "_367UGW_dshCmSpin",
|
|
2116
|
-
"groupLabel": "_367UGW_groupLabel",
|
|
2117
|
-
"snapshotList": "_367UGW_snapshotList",
|
|
2118
2078
|
"warnList": "_367UGW_warnList",
|
|
2119
|
-
"
|
|
2079
|
+
"progressIndeterminate": "_367UGW_progressIndeterminate",
|
|
2080
|
+
"sectionSubtitle": "_367UGW_sectionSubtitle",
|
|
2120
2081
|
"groupNote": "_367UGW_groupNote",
|
|
2121
|
-
"
|
|
2082
|
+
"conflictItem": "_367UGW_conflictItem",
|
|
2083
|
+
"badgeWarn": "_367UGW_badgeWarn",
|
|
2084
|
+
"progressBadge": "_367UGW_progressBadge",
|
|
2122
2085
|
"conflictOptions": "_367UGW_conflictOptions",
|
|
2123
|
-
"
|
|
2124
|
-
"
|
|
2125
|
-
"
|
|
2126
|
-
"dshCmIndeterminate": "_367UGW_dshCmIndeterminate",
|
|
2127
|
-
"input": "_367UGW_input",
|
|
2086
|
+
"pathOld": "_367UGW_pathOld",
|
|
2087
|
+
"pathIssueKind": "_367UGW_pathIssueKind",
|
|
2088
|
+
"categoryName": "_367UGW_categoryName",
|
|
2128
2089
|
"fieldLabel": "_367UGW_fieldLabel",
|
|
2129
|
-
"errorTitle": "_367UGW_errorTitle",
|
|
2130
|
-
"conflictId": "_367UGW_conflictId",
|
|
2131
|
-
"modeTabs": "_367UGW_modeTabs",
|
|
2132
|
-
"groupItems": "_367UGW_groupItems",
|
|
2133
|
-
"sectionTitleBlock": "_367UGW_sectionTitleBlock",
|
|
2134
|
-
"optionsCard": "_367UGW_optionsCard",
|
|
2135
|
-
"reportFooter": "_367UGW_reportFooter",
|
|
2136
|
-
"progressLabel": "_367UGW_progressLabel",
|
|
2137
|
-
"conflictItem": "_367UGW_conflictItem",
|
|
2138
|
-
"errorList": "_367UGW_errorList",
|
|
2139
2090
|
"section": "_367UGW_section",
|
|
2140
|
-
"
|
|
2141
|
-
"
|
|
2142
|
-
"
|
|
2143
|
-
"
|
|
2091
|
+
"radioLabel": "_367UGW_radioLabel",
|
|
2092
|
+
"groupLabel": "_367UGW_groupLabel",
|
|
2093
|
+
"dshCmIndeterminate": "_367UGW_dshCmIndeterminate",
|
|
2094
|
+
"errorLine": "_367UGW_errorLine",
|
|
2095
|
+
"spinnerLabel": "_367UGW_spinnerLabel",
|
|
2096
|
+
"groupList": "_367UGW_groupList",
|
|
2097
|
+
"actionRow": "_367UGW_actionRow",
|
|
2098
|
+
"progressBarDone": "_367UGW_progressBarDone",
|
|
2144
2099
|
"errorAction": "_367UGW_errorAction",
|
|
2145
|
-
"
|
|
2100
|
+
"progressBlock": "_367UGW_progressBlock",
|
|
2101
|
+
"snapshotList": "_367UGW_snapshotList",
|
|
2146
2102
|
"kindTag": "_367UGW_kindTag",
|
|
2147
|
-
"
|
|
2103
|
+
"spinner": "_367UGW_spinner",
|
|
2148
2104
|
"conflictList": "_367UGW_conflictList",
|
|
2149
|
-
"
|
|
2150
|
-
"
|
|
2105
|
+
"reportFooter": "_367UGW_reportFooter",
|
|
2106
|
+
"banner": "_367UGW_banner",
|
|
2107
|
+
"field": "_367UGW_field",
|
|
2108
|
+
"categoryItem": "_367UGW_categoryItem",
|
|
2109
|
+
"errorBanner": "_367UGW_errorBanner",
|
|
2110
|
+
"snapshotRowHeader": "_367UGW_snapshotRowHeader",
|
|
2111
|
+
"primaryButton": "_367UGW_primaryButton",
|
|
2151
2112
|
"reportText": "_367UGW_reportText",
|
|
2152
2113
|
"reportScroll": "_367UGW_reportScroll",
|
|
2153
|
-
"
|
|
2154
|
-
"viewTabs": "_367UGW_viewTabs",
|
|
2155
|
-
"pathRow": "_367UGW_pathRow",
|
|
2156
|
-
"spinner": "_367UGW_spinner",
|
|
2157
|
-
"checkboxRow": "_367UGW_checkboxRow",
|
|
2158
|
-
"primaryButton": "_367UGW_primaryButton",
|
|
2159
|
-
"sectionTitle": "_367UGW_sectionTitle",
|
|
2160
|
-
"empty": "_367UGW_empty",
|
|
2161
|
-
"progressBadgeSection": "_367UGW_progressBadgeSection",
|
|
2162
|
-
"modeHint": "_367UGW_modeHint",
|
|
2114
|
+
"sectionTitleBlock": "_367UGW_sectionTitleBlock",
|
|
2163
2115
|
"conflictDetail": "_367UGW_conflictDetail",
|
|
2164
|
-
"
|
|
2165
|
-
"
|
|
2166
|
-
"severityError": "_367UGW_severityError",
|
|
2167
|
-
"viewBody": "_367UGW_viewBody",
|
|
2116
|
+
"empty": "_367UGW_empty",
|
|
2117
|
+
"sectionTitle": "_367UGW_sectionTitle",
|
|
2168
2118
|
"badgeInfo": "_367UGW_badgeInfo",
|
|
2169
|
-
"pathIssueKind": "_367UGW_pathIssueKind",
|
|
2170
2119
|
"hiddenFile": "_367UGW_hiddenFile",
|
|
2171
|
-
"
|
|
2172
|
-
"
|
|
2120
|
+
"errorItem": "_367UGW_errorItem",
|
|
2121
|
+
"pathMappingList": "_367UGW_pathMappingList",
|
|
2122
|
+
"card": "_367UGW_card",
|
|
2123
|
+
"diffScroll": "_367UGW_diffScroll",
|
|
2124
|
+
"viewBody": "_367UGW_viewBody",
|
|
2125
|
+
"conflictId": "_367UGW_conflictId",
|
|
2126
|
+
"errorFooter": "_367UGW_errorFooter",
|
|
2127
|
+
"severityError": "_367UGW_severityError",
|
|
2128
|
+
"errorReason": "_367UGW_errorReason",
|
|
2129
|
+
"secretsList": "_367UGW_secretsList",
|
|
2173
2130
|
"modeTab": "_367UGW_modeTab",
|
|
2174
|
-
"
|
|
2175
|
-
"
|
|
2176
|
-
"
|
|
2131
|
+
"dangerButton": "_367UGW_dangerButton",
|
|
2132
|
+
"statRow": "_367UGW_statRow",
|
|
2133
|
+
"dshCmSpin": "_367UGW_dshCmSpin",
|
|
2134
|
+
"snapshotRow": "_367UGW_snapshotRow",
|
|
2135
|
+
"warnText": "_367UGW_warnText",
|
|
2136
|
+
"rowActions": "_367UGW_rowActions",
|
|
2137
|
+
"groupCard": "_367UGW_groupCard",
|
|
2138
|
+
"sectionHeader": "_367UGW_sectionHeader",
|
|
2139
|
+
"badge": "_367UGW_badge",
|
|
2140
|
+
"checkboxRow": "_367UGW_checkboxRow",
|
|
2141
|
+
"pathNew": "_367UGW_pathNew",
|
|
2142
|
+
"viewTab": "_367UGW_viewTab",
|
|
2143
|
+
"rollbackBox": "_367UGW_rollbackBox",
|
|
2144
|
+
"spinnerWrap": "_367UGW_spinnerWrap",
|
|
2145
|
+
"reportList": "_367UGW_reportList",
|
|
2146
|
+
"pullScroll": "_367UGW_pullScroll",
|
|
2147
|
+
"optionsCard": "_367UGW_optionsCard",
|
|
2177
2148
|
"groupHeader": "_367UGW_groupHeader",
|
|
2178
|
-
"
|
|
2149
|
+
"groupItems": "_367UGW_groupItems",
|
|
2150
|
+
"progressBadgeCount": "_367UGW_progressBadgeCount",
|
|
2151
|
+
"reportView": "_367UGW_reportView",
|
|
2152
|
+
"confirmScroll": "_367UGW_confirmScroll",
|
|
2153
|
+
"progressMeta": "_367UGW_progressMeta",
|
|
2154
|
+
"errorTitle": "_367UGW_errorTitle",
|
|
2155
|
+
"badgeError": "_367UGW_badgeError",
|
|
2156
|
+
"sectionBody": "_367UGW_sectionBody",
|
|
2157
|
+
"progressLabel": "_367UGW_progressLabel",
|
|
2158
|
+
"input": "_367UGW_input",
|
|
2159
|
+
"categoryDesc": "_367UGW_categoryDesc",
|
|
2160
|
+
"progressBar": "_367UGW_progressBar",
|
|
2161
|
+
"viewTabs": "_367UGW_viewTabs",
|
|
2162
|
+
"pathRow": "_367UGW_pathRow",
|
|
2163
|
+
"badgeOk": "_367UGW_badgeOk",
|
|
2164
|
+
"hint": "_367UGW_hint",
|
|
2165
|
+
"formError": "_367UGW_formError",
|
|
2166
|
+
"progressDetail": "_367UGW_progressDetail",
|
|
2167
|
+
"progressTrack": "_367UGW_progressTrack",
|
|
2168
|
+
"select": "_367UGW_select",
|
|
2169
|
+
"errorList": "_367UGW_errorList",
|
|
2170
|
+
"ghostButton": "_367UGW_ghostButton",
|
|
2171
|
+
"conflictHead": "_367UGW_conflictHead",
|
|
2172
|
+
"errorActionLabel": "_367UGW_errorActionLabel",
|
|
2173
|
+
"modeHint": "_367UGW_modeHint",
|
|
2174
|
+
"progressBadgeSection": "_367UGW_progressBadgeSection",
|
|
2175
|
+
"modeTabs": "_367UGW_modeTabs",
|
|
2176
|
+
"progressPercent": "_367UGW_progressPercent",
|
|
2177
|
+
"secretFields": "_367UGW_secretFields",
|
|
2178
|
+
"pathValue": "_367UGW_pathValue",
|
|
2179
|
+
"planScroll": "_367UGW_planScroll"
|
|
2179
2180
|
};
|
|
2180
2181
|
//#endregion
|
|
2181
2182
|
//#region src/client/common/ui.tsx
|
|
@@ -4319,6 +4320,28 @@ function summarizeConfirmItems(items) {
|
|
|
4319
4320
|
needsReview
|
|
4320
4321
|
};
|
|
4321
4322
|
}
|
|
4323
|
+
/**
|
|
4324
|
+
* 收集用户逐项决策 → apply-items 请求体 adoptions[]。
|
|
4325
|
+
* 仅包含 adopt=true 的项;Conflict 项 adopt=true 且未给 resolution → 抛错(强制先解决)。
|
|
4326
|
+
* 与导入恢复向导一致:只提供「保留当前 / 使用导入」两项,跳过 = 取消勾选(adopt=false)。
|
|
4327
|
+
*/
|
|
4328
|
+
function buildAdoptions(items, adopted, resolutions) {
|
|
4329
|
+
const out = [];
|
|
4330
|
+
for (const it of items) {
|
|
4331
|
+
if (adopted.get(it.itemId) !== true) continue;
|
|
4332
|
+
const adoption = {
|
|
4333
|
+
itemId: it.itemId,
|
|
4334
|
+
adopt: true
|
|
4335
|
+
};
|
|
4336
|
+
if (it.kind === "Conflict") {
|
|
4337
|
+
const resolution = resolutions.get(it.itemId);
|
|
4338
|
+
if (resolution === void 0) throw new Error(`冲突项 ${it.itemId} 必须先选择解决方式(保留当前 / 使用导入)`);
|
|
4339
|
+
adoption.resolution = resolution;
|
|
4340
|
+
}
|
|
4341
|
+
out.push(adoption);
|
|
4342
|
+
}
|
|
4343
|
+
return out;
|
|
4344
|
+
}
|
|
4322
4345
|
/** AutosyncInterval → ms。 */
|
|
4323
4346
|
function autosyncIntervalMs(interval) {
|
|
4324
4347
|
switch (interval) {
|
|
@@ -4624,15 +4647,12 @@ function SyncConfirmView(props) {
|
|
|
4624
4647
|
try {
|
|
4625
4648
|
const adoptedMap = /* @__PURE__ */ new Map();
|
|
4626
4649
|
for (const it of items) adoptedMap.set(it.itemId, states[it.itemId]?.adopted ?? false);
|
|
4627
|
-
const
|
|
4628
|
-
|
|
4629
|
-
itemId: it.itemId,
|
|
4630
|
-
adopt: true
|
|
4631
|
-
};
|
|
4650
|
+
const resolutions = /* @__PURE__ */ new Map();
|
|
4651
|
+
for (const it of items) {
|
|
4632
4652
|
const res = states[it.itemId]?.resolution;
|
|
4633
|
-
if (
|
|
4634
|
-
|
|
4635
|
-
|
|
4653
|
+
if (res !== void 0) resolutions.set(it.itemId, res);
|
|
4654
|
+
}
|
|
4655
|
+
const adoptions = buildAdoptions(items, adoptedMap, resolutions);
|
|
4636
4656
|
const result = await api.applyItems({
|
|
4637
4657
|
syncSessionId,
|
|
4638
4658
|
adoptions
|
|
@@ -4835,36 +4855,19 @@ function SyncConfirmView(props) {
|
|
|
4835
4855
|
}
|
|
4836
4856
|
function ConflictResolver({ item, resolution, busy, t, onResolve }) {
|
|
4837
4857
|
const conflict = item.conflict;
|
|
4838
|
-
|
|
4839
|
-
|
|
4858
|
+
const options = [{
|
|
4859
|
+
value: "keepLocal",
|
|
4860
|
+
label: t("syncflow.conflictUseLocal")
|
|
4861
|
+
}, {
|
|
4862
|
+
value: "useRemote",
|
|
4863
|
+
label: t("syncflow.conflictUseRemote")
|
|
4864
|
+
}];
|
|
4865
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
4866
|
+
className: config_manager_module_css_default.conflictItem,
|
|
4840
4867
|
children: [
|
|
4841
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("
|
|
4842
|
-
className: config_manager_module_css_default.
|
|
4843
|
-
children:
|
|
4844
|
-
}),
|
|
4845
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
|
|
4846
|
-
variant: "ghost",
|
|
4847
|
-
disabled: busy || resolution === "keepLocal",
|
|
4848
|
-
onClick: () => {
|
|
4849
|
-
onResolve("keepLocal");
|
|
4850
|
-
},
|
|
4851
|
-
children: resolution === "keepLocal" ? `✓ ${t("syncflow.conflictUseLocal")}` : t("syncflow.conflictUseLocal")
|
|
4852
|
-
}),
|
|
4853
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
|
|
4854
|
-
variant: "primary",
|
|
4855
|
-
disabled: busy || resolution === "useRemote",
|
|
4856
|
-
onClick: () => {
|
|
4857
|
-
onResolve("useRemote");
|
|
4858
|
-
},
|
|
4859
|
-
children: resolution === "useRemote" ? `✓ ${t("syncflow.conflictUseRemote")}` : t("syncflow.conflictUseRemote")
|
|
4860
|
-
}),
|
|
4861
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
|
|
4862
|
-
variant: "ghost",
|
|
4863
|
-
disabled: busy || resolution === "skip",
|
|
4864
|
-
onClick: () => {
|
|
4865
|
-
onResolve("skip");
|
|
4866
|
-
},
|
|
4867
|
-
children: resolution === "skip" ? `✓ ${t("syncflow.conflictSkip")}` : t("syncflow.conflictSkip")
|
|
4868
|
+
item.detail !== void 0 && item.detail !== "" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("pre", {
|
|
4869
|
+
className: config_manager_module_css_default.conflictDetail,
|
|
4870
|
+
children: item.detail
|
|
4868
4871
|
}),
|
|
4869
4872
|
conflict?.diff !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("details", {
|
|
4870
4873
|
className: config_manager_module_css_default.conflictDetail,
|
|
@@ -4872,6 +4875,21 @@ function ConflictResolver({ item, resolution, busy, t, onResolve }) {
|
|
|
4872
4875
|
className: config_manager_module_css_default.diffScroll,
|
|
4873
4876
|
children: conflict.diff
|
|
4874
4877
|
})]
|
|
4878
|
+
}),
|
|
4879
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4880
|
+
className: config_manager_module_css_default.conflictOptions,
|
|
4881
|
+
children: options.map((opt) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
4882
|
+
className: config_manager_module_css_default.radioLabel,
|
|
4883
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
4884
|
+
type: "radio",
|
|
4885
|
+
name: `sync-conflict-${item.itemId}`,
|
|
4886
|
+
checked: resolution === opt.value,
|
|
4887
|
+
disabled: busy,
|
|
4888
|
+
onChange: () => {
|
|
4889
|
+
onResolve(opt.value);
|
|
4890
|
+
}
|
|
4891
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: opt.label })]
|
|
4892
|
+
}, opt.value))
|
|
4875
4893
|
})
|
|
4876
4894
|
]
|
|
4877
4895
|
});
|
|
@@ -5570,21 +5588,24 @@ function SyncSettingsView({ api, t }) {
|
|
|
5570
5588
|
children: t("pull.needsReview")
|
|
5571
5589
|
}),
|
|
5572
5590
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5573
|
-
className: config_manager_module_css_default.
|
|
5574
|
-
children:
|
|
5575
|
-
className: config_manager_module_css_default.
|
|
5576
|
-
children:
|
|
5577
|
-
|
|
5578
|
-
|
|
5579
|
-
|
|
5580
|
-
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
|
|
5584
|
-
|
|
5585
|
-
|
|
5586
|
-
|
|
5587
|
-
|
|
5591
|
+
className: config_manager_module_css_default.pullScroll,
|
|
5592
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5593
|
+
className: config_manager_module_css_default.reportList,
|
|
5594
|
+
children: pullView.summary.items.map((c) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
5595
|
+
className: config_manager_module_css_default.statRow,
|
|
5596
|
+
children: [
|
|
5597
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
5598
|
+
className: config_manager_module_css_default.kindTag,
|
|
5599
|
+
children: kindLabel(c.kind, uiT)
|
|
5600
|
+
}),
|
|
5601
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Badge, {
|
|
5602
|
+
kind: c.severity === "error" ? "error" : c.severity === "warning" ? "warn" : "info",
|
|
5603
|
+
children: severityLabel(c.severity, uiT)
|
|
5604
|
+
}),
|
|
5605
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: c.description })
|
|
5606
|
+
]
|
|
5607
|
+
}, c.id))
|
|
5608
|
+
})
|
|
5588
5609
|
})
|
|
5589
5610
|
] }),
|
|
5590
5611
|
pullView.previewHint !== "" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Banner, {
|
|
@@ -6068,17 +6089,16 @@ const zh = {
|
|
|
6068
6089
|
"syncflow.needsReviewBadge": "需人工决策",
|
|
6069
6090
|
"syncflow.empty": "远端快照与本地一致(无变更)",
|
|
6070
6091
|
"syncflow.diffCount": "共 {count} 项差异",
|
|
6071
|
-
"syncflow.keepLocalAll": "
|
|
6072
|
-
"syncflow.useRemoteAll": "
|
|
6092
|
+
"syncflow.keepLocalAll": "全部保留当前配置",
|
|
6093
|
+
"syncflow.useRemoteAll": "全部使用备份配置",
|
|
6073
6094
|
"syncflow.bulkHint": "批量决策仅作用于冲突项;其余差异默认自动采用。",
|
|
6074
6095
|
"syncflow.conflictTitle": "冲突解决",
|
|
6075
|
-
"syncflow.conflictUseLocal": "
|
|
6076
|
-
"syncflow.conflictUseRemote": "
|
|
6077
|
-
"syncflow.
|
|
6078
|
-
"syncflow.
|
|
6079
|
-
"syncflow.conflictRemoteLabel": "远端",
|
|
6096
|
+
"syncflow.conflictUseLocal": "保留当前",
|
|
6097
|
+
"syncflow.conflictUseRemote": "使用备份",
|
|
6098
|
+
"syncflow.conflictLocalLabel": "当前",
|
|
6099
|
+
"syncflow.conflictRemoteLabel": "备份",
|
|
6080
6100
|
"syncflow.conflictAncestorLabel": "共同祖先",
|
|
6081
|
-
"syncflow.conflictUnresolved": "冲突项 {itemId}
|
|
6101
|
+
"syncflow.conflictUnresolved": "冲突项 {itemId} 尚未选择解决方式(保留当前 / 使用备份)",
|
|
6082
6102
|
"syncflow.diff": "差异",
|
|
6083
6103
|
"syncflow.importDone": "已导入 {n} 个分区",
|
|
6084
6104
|
"syncflow.importFailed": "导入失败(已整体回滚)",
|
|
@@ -6188,17 +6208,16 @@ const en = {
|
|
|
6188
6208
|
"syncflow.needsReviewBadge": "Needs decision",
|
|
6189
6209
|
"syncflow.empty": "Remote snapshot matches local (no changes)",
|
|
6190
6210
|
"syncflow.diffCount": "{count} change(s)",
|
|
6191
|
-
"syncflow.keepLocalAll": "Keep all
|
|
6192
|
-
"syncflow.useRemoteAll": "
|
|
6211
|
+
"syncflow.keepLocalAll": "Keep all current",
|
|
6212
|
+
"syncflow.useRemoteAll": "Use all backup",
|
|
6193
6213
|
"syncflow.bulkHint": "Bulk decisions only apply to conflict items; other changes are adopted by default.",
|
|
6194
6214
|
"syncflow.conflictTitle": "Resolve conflict",
|
|
6195
|
-
"syncflow.conflictUseLocal": "
|
|
6196
|
-
"syncflow.conflictUseRemote": "Use
|
|
6197
|
-
"syncflow.
|
|
6198
|
-
"syncflow.
|
|
6199
|
-
"syncflow.conflictRemoteLabel": "Remote",
|
|
6215
|
+
"syncflow.conflictUseLocal": "Keep current",
|
|
6216
|
+
"syncflow.conflictUseRemote": "Use backup",
|
|
6217
|
+
"syncflow.conflictLocalLabel": "Current",
|
|
6218
|
+
"syncflow.conflictRemoteLabel": "Backup",
|
|
6200
6219
|
"syncflow.conflictAncestorLabel": "Common ancestor",
|
|
6201
|
-
"syncflow.conflictUnresolved": "Conflict item {itemId} has no resolution yet (
|
|
6220
|
+
"syncflow.conflictUnresolved": "Conflict item {itemId} has no resolution yet (keep current / use backup)",
|
|
6202
6221
|
"syncflow.diff": "Diff",
|
|
6203
6222
|
"syncflow.importDone": "Imported {n} section(s)",
|
|
6204
6223
|
"syncflow.importFailed": "Import failed (rolled back)",
|