dsh-config-manager 0.1.3 → 0.1.4

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 CHANGED
@@ -30,7 +30,7 @@ DSH is your AI assistant workbench — it holds your settings: model configs, pl
30
30
  | 🚀 | **One-click Export** | Package your recommended config into a ZIP |
31
31
  | 📦 | **One-click Import** | Restore your environment on another machine |
32
32
  | 👀 | **Preview before import** | Full preview first — **never touches your config silently** |
33
- | ⚔️ | **Conflict handling** | Keep Current / Use Imported / Review — you decide |
33
+ | ⚔️ | **Conflict handling** | Keep Current / Use Imported — you decide |
34
34
  | 🗺️ | **Path auto-mapping** | Detects dead absolute paths and lets you remap them |
35
35
  | 🔒 | **Secret safety** | API Keys are never exported; re-enter them after import |
36
36
  | ↩️ | **Automatic rollback** | Failed import restores everything automatically |
@@ -66,26 +66,12 @@ It's a standard **DSH plugin** — two steps:
66
66
 
67
67
  ```bash
68
68
  # ① Install the plugin
69
- dsh plugin --profile web add dsh-config-manager --config.auto-install-peers=false
69
+ dsh plugin --profile web add dsh-config-manager@latest --config.auto-install-peers=false
70
70
 
71
71
  # ② Restart DSH (a "Backup & Migration" entry appears in Settings)
72
72
  ```
73
73
 
74
- > 💡 **Why the flag?** `--config.auto-install-peers=false` skips a few DSH core packages that aren't on the public registry yet (the DSH runtime provides them). Just copy-paste it.
75
-
76
- **From source / local package** (for developers):
77
-
78
- ```bash
79
- npm run build && npm pack # produces dsh-config-manager-0.1.2.tgz
80
- dsh plugin --profile web add file:/absolute/path/dsh-config-manager-0.1.2.tgz
81
- ```
82
-
83
- > 🧪 **Try it without touching your real environment?** Use an isolated `DSH_HOME`:
84
- > ```bash
85
- > $env:DSH_HOME = "D:\tmp\dsh-home" # Windows PowerShell
86
- > dsh plugin --profile test add dsh-config-manager --config.auto-install-peers=false
87
- > dsh --profile test --dump-config | Select-String config-manager
88
- > ```
74
+ > 💡 Just copy-paste the command: `--config.auto-install-peers=false` skips a few DSH core packages that aren't on the public registry yet (the DSH runtime provides them), and `@latest` ensures you get the newest build.
89
75
 
90
76
  ---
91
77
 
@@ -144,7 +130,8 @@ When the target already has a same-named item, you choose:
144
130
  |---|---|
145
131
  | **Keep Current** | Leave the target's config untouched |
146
132
  | **Use Imported** | Overwrite with the backup's value |
147
- | **Review** | Skip for now, handle later |
133
+
134
+ > Note: a "decide later / review" option is intentionally **not** offered — an undecided conflict would block the import from proceeding. Every conflict must be resolved before continuing.
148
135
 
149
136
  ### 🗺️ Path mapping
150
137
 
@@ -167,27 +154,6 @@ Save multiple configurations (Work / Personal) and switch anytime; switching inc
167
154
 
168
155
  ---
169
156
 
170
- ## 📦 What's inside a backup?
171
-
172
- ```
173
- dsh-config-2026-08-14.zip
174
- ├── manifest.json # backup manifest: version / source / time / sections
175
- ├── config/
176
- │ ├── settings.json # settings (redacted)
177
- │ └── ui.json # UI preferences
178
- ├── ai/providers.json # AI providers / models
179
- ├── plugins/ # plugin manifest (binaries are never packaged)
180
- ├── mcp/servers.json # MCP server configs
181
- ├── custom/ # prompts / skills
182
- ├── agents/presets/ # agent presets
183
- ├── workspaces/ # workspaces
184
- ├── security/credentials.json # credential state (no values)
185
- ├── security/secrets.enc # encrypted backups only
186
- └── integrity/checksums.json # SHA-256 checksums
187
- ```
188
-
189
- ---
190
-
191
157
  ## 🛡️ Security
192
158
 
193
159
  - **The default backup contains no secret values** — a hard invariant, enforced at export
@@ -228,62 +194,15 @@ No. Items are deduplicated by stable IDs (plugin ID / MCP name / skill name…);
228
194
 
229
195
  ---
230
196
 
231
- ## 👨‍💻 For developers
232
-
233
- ```bash
234
- npm install --legacy-peer-deps # install dependencies
235
- npm run typecheck # type checking
236
- npm run build # build (host lib/ + client bundle)
237
- npm test # run tests (192)
238
- npm run bundle # rebuild the client bundle only
239
- ```
240
-
241
- **Architecture**: the core engine is decoupled from the DSH runtime (mock-testable) → per-category adapters → security modules → centralized schema migrations.
242
-
243
- **Auto-publish**: push a tag → automatically published to npm (GitHub Actions + OIDC, no stored secrets):
244
-
245
- ```bash
246
- npm version patch # 0.1.2 → 0.1.3
247
- git push origin main --tags # CI: test → build → publish
248
- ```
249
-
250
- > One-time OIDC trusted-publisher setup:
251
- > ```bash
252
- > npm login
253
- > npm trust github dsh-config-manager --file publish.yml --repo xiajiajun516/dsh-config-manager --allow-publish
254
- > ```
255
- > Or add the GitHub Actions trusted publisher on the package page (Settings → Publishing access).
256
-
257
- ---
258
-
259
- ## 🧪 Testing
260
-
261
- **All 192 tests pass** (Node's built-in test runner, zero extra dependencies), covering:
197
+ ## 📋 Known limitations (user-facing)
262
198
 
263
- | Category | Coverage |
264
- |---|---|
265
- | Export | normal / empty / large / Unicode & special chars / secret filtering |
266
- | Import | normal / merge / replace / skip / conflict / missing plugin / missing dependency / missing secret |
267
- | Rollback | mid-flight failure everything restored |
268
- | Security | malicious ZIP / corrupt archive / checksum mismatch / path traversal |
269
- | Cross-platform | Windows ↔ macOS ↔ Linux path handling |
270
- | Migration | schema upgrade mechanism |
271
-
272
- ---
199
+ 1. **Installing / updating plugins or MCP takes effect after restarting DSH**
200
+ 2. **Some UI state is not migrated** (e.g. task board data, panel widths — they live in the browser, not in DSH's config files)
201
+ 3. **keybindings / workflow configs / commands / rules** DSH has no such concepts, so nothing is exported for them
202
+ 4. **History/session migration is off by default** (v1 copies files only)
203
+ 5. **Encrypted backups**: a lost password means the `secrets.enc` can't be decrypted (by design — keep your password safe)
273
204
 
274
- ## 📋 Known limitations
275
-
276
- 1. **Workspace: create/rename title only** — DSH has no whole-overwrite write channel; paths & session lists are maintained by DSH itself (path mapping adapts cross-device)
277
- 2. **Some DSH core packages are not public** — features depending on their APIs only work in a local DSH; install needs `--config.auto-install-peers=false`
278
- 3. **No MCP management API** — MCP is imported as config lines and takes effect after restarting DSH
279
- 4. **Plugin install requires a restart**
280
- 5. **Browser UI state (localStorage) is not migrated** — e.g. task board data, panel widths
281
- 6. **keybindings / workflows / commands / rules** — DSH has no such concepts; no fake sections
282
- 7. **Credential values can't be rolled back** — re-enter manually after a rollback that touched them
283
- 8. **Newly created items can't be rollback-deleted** — DSH settings have no delete semantics
284
- 9. **Schema migration** — the mechanism is ready; the v1→v2 chain is a placeholder (v1 is current)
285
- 10. **History/session migration is off by default** — v1 copies files only
286
- 11. **Encrypted backups** — a lost password means the `secrets.enc` can't be decrypted (by design)
205
+ > Maintainers & developers: see [DEVELOPERS.md](DEVELOPERS.md) for build, testing, auto-publishing and full technical notes.
287
206
 
288
207
  ---
289
208
 
package/README.zh-CN.md CHANGED
@@ -30,7 +30,7 @@ DSH 是你的 AI 助手工作台,里面存着你的各种设置:模型配置
30
30
  | 🚀 | **一键导出** | 点一下,把推荐配置打包成一个 ZIP |
31
31
  | 📦 | **一键导入** | 在另一台电脑点一下,环境就回来了 |
32
32
  | 👀 | **先预览再导入** | 导入前完整预览,**绝不偷偷改你的配置** |
33
- | ⚔️ | **冲突处理** | 遇到同名配置,让你自己选:保留现有的 / 用导入的 / 再看看 |
33
+ | ⚔️ | **冲突处理** | 遇到同名配置,让你自己选:保留现有的 / 用导入的 |
34
34
  | 🗺️ | **路径自动映射** | 换了电脑路径变了?自动检测并让你重新指定 |
35
35
  | 🔒 | **密钥安全** | API Key 默认不导出;导入后提醒你重新填写 |
36
36
  | ↩️ | **自动回滚** | 导入失败自动恢复原样,不会弄坏现有配置 |
@@ -66,26 +66,12 @@ DSH 是你的 AI 助手工作台,里面存着你的各种设置:模型配置
66
66
 
67
67
  ```bash
68
68
  # ① 安装插件
69
- dsh plugin --profile web add dsh-config-manager --config.auto-install-peers=false
69
+ dsh plugin --profile web add dsh-config-manager@latest --config.auto-install-peers=false
70
70
 
71
71
  # ② 重启 DSH(设置页就会出现「备份与迁移」入口)
72
72
  ```
73
73
 
74
- > 💡 **小知识**:`--config.auto-install-peers=false` 是为了跳过一些尚未公开发布的 DSH 核心依赖(运行时由 DSH 自己提供),照着复制就行。
75
-
76
- **从源码 / 本地包安装**(开发者用):
77
-
78
- ```bash
79
- npm run build && npm pack # 产出 dsh-config-manager-0.1.2.tgz
80
- dsh plugin --profile web add file:/绝对路径/dsh-config-manager-0.1.2.tgz
81
- ```
82
-
83
- > 🧪 **想先试不碰正式环境?** 用隔离目录测试,完全不触碰 `~/.dsh`:
84
- > ```bash
85
- > $env:DSH_HOME = "D:\tmp\dsh-home" # Windows PowerShell
86
- > dsh plugin --profile test add dsh-config-manager --config.auto-install-peers=false
87
- > dsh --profile test --dump-config | Select-String config-manager
88
- > ```
74
+ > 💡 照着复制就行:`--config.auto-install-peers=false` 跳过几个尚未公开发布的 DSH 核心依赖(运行时由 DSH 自己提供),`@latest` 确保装到最新版。
89
75
 
90
76
  ---
91
77
 
@@ -101,7 +87,7 @@ dsh plugin --profile web add file:/绝对路径/dsh-config-manager-0.1.2.tgz
101
87
  1. 打开 DSH → 「备份与迁移」→「导入配置」
102
88
  2. 选择 ZIP → 等待分析 → 查看「导入预览」
103
89
  3. 有路径问题?→ 选择新路径(可批量映射)
104
- 4. 有同名配置冲突?→ 选择 保留现有 / 用导入的
90
+ 4. 有同名配置冲突?→ 选择 保留现有的 / 用导入的
105
91
  5. 确认导入 → 等待完成
106
92
  6. 按提示重新填写缺失的 API Key
107
93
  7. ✅ 设置 / 插件 / MCP / 技能 / 工作区都回来了
@@ -144,7 +130,8 @@ dsh plugin --profile web add file:/绝对路径/dsh-config-manager-0.1.2.tgz
144
130
  |---|---|
145
131
  | **保留现有的** | 不动目标电脑的原配置 |
146
132
  | **用导入的** | 用备份里的配置覆盖 |
147
- | **再看看** | 暂时跳过,稍后处理 |
133
+
134
+ > 说明:刻意**不提供**「稍后决定 / 再看看」选项——未决的冲突会让导入无法继续,每个冲突都必须在继续前做出选择。
148
135
 
149
136
  ### 🗺️ 路径映射
150
137
 
@@ -167,27 +154,6 @@ dsh plugin --profile web add file:/绝对路径/dsh-config-manager-0.1.2.tgz
167
154
 
168
155
  ---
169
156
 
170
- ## 📦 备份里有什么?(文件结构)
171
-
172
- ```
173
- dsh-config-2026-08-14.zip
174
- ├── manifest.json # 备份清单:版本 / 来源 / 时间 / 包含项
175
- ├── config/
176
- │ ├── settings.json # 设置(已脱敏)
177
- │ └── ui.json # 界面偏好
178
- ├── ai/providers.json # AI 模型 / 服务商配置
179
- ├── plugins/ # 插件清单(不打包插件本体)
180
- ├── mcp/servers.json # MCP 服务配置
181
- ├── custom/ # 提示词 / 技能
182
- ├── agents/presets/ # Agent 预设
183
- ├── workspaces/ # 工作区
184
- ├── security/credentials.json # 密钥状态(不含值)
185
- ├── security/secrets.enc # 仅加密备份时存在
186
- └── integrity/checksums.json # SHA-256 校验和
187
- ```
188
-
189
- ---
190
-
191
157
  ## 🛡️ 安全
192
158
 
193
159
  - **默认备份不包含任何密钥值** —— 这是硬性规则,导出时强制执行
@@ -228,62 +194,15 @@ dsh-config-2026-08-14.zip
228
194
 
229
195
  ---
230
196
 
231
- ## 👨‍💻 给开发者
232
-
233
- ```bash
234
- npm install --legacy-peer-deps # 安装依赖
235
- npm run typecheck # 类型检查
236
- npm run build # 构建(Host lib/ + client bundle)
237
- npm test # 运行测试(192 个)
238
- npm run bundle # 仅重建 client bundle
239
- ```
240
-
241
- **架构**:核心引擎与 DSH 运行时解耦(可 mock 测试)→ 各配置分类适配器 → 安全模块 → 迁移逻辑集中。
242
-
243
- **自动发布**:打 tag 即自动发布到 npm(GitHub Actions + OIDC,无需任何密钥):
244
-
245
- ```bash
246
- npm version patch # 0.1.2 → 0.1.3
247
- git push origin main --tags # CI 自动: 测试 → 构建 → 发布
248
- ```
249
-
250
- > 首次配置 OIDC 可信发布方(只需一次):
251
- > ```bash
252
- > npm login
253
- > npm trust github dsh-config-manager --file publish.yml --repo xiajiajun516/dsh-config-manager --allow-publish
254
- > ```
255
- > 或在 npm 包设置页(Settings → Publishing access)添加 GitHub Actions 可信发布方。
256
-
257
- ---
258
-
259
- ## 🧪 测试
260
-
261
- **192 个测试全部通过**(Node 内置测试框架,零额外依赖),覆盖:
197
+ ## 📋 已知限制(用户须知)
262
198
 
263
- | 类别 | 覆盖内容 |
264
- |---|---|
265
- | 导出 | 正常 / 空配置 / 大配置 / 中文与特殊字符 / 密钥过滤 |
266
- | 导入 | 正常 / 合并 / 覆盖 / 跳过 / 冲突 / 缺失插件 / 缺失依赖 / 缺失密钥 |
267
- | 回滚 | 导入中途失败 → 全部恢复原样 |
268
- | 安全 | 恶意 ZIP / 损坏文件 / 校验和不匹配 / 路径穿越 |
269
- | 跨平台 | Windows ↔ macOS ↔ Linux 路径处理 |
270
- | 迁移 | 版本升级机制 |
271
-
272
- ---
199
+ 1. **安装/更新插件或 MCP 后需重启 DSH 才生效**
200
+ 2. **部分界面状态不迁移**(如任务看板数据、面板宽度——它们存在浏览器里,不在 DSH 配置文件内)
201
+ 3. **keybindings / workflows 配置 / commands / rules**:DSH 当前没有这些概念,因此不会导出相关内容
202
+ 4. **历史会话默认不迁移**(v1 仅支持文件级复制)
203
+ 5. **加密备份**:密码丢失则无法解密(设计使然——请牢记密码)
273
204
 
274
- ## 📋 已知限制
275
-
276
- 1. **工作区只能创建/改标题**:DSH 无整体覆盖写通道,路径与会话列表由 DSH 自行维护(路径映射适配跨设备)
277
- 2. **部分 DSH 核心包未公开发布**:依赖其 API 的功能仅在本地 DSH 环境可用;安装需跳过 peer 自动安装(见安装说明)
278
- 3. **MCP 无管理 API**:MCP 以配置行导入,需重启 DSH 生效
279
- 4. **插件安装需重启**:安装插件后重启 DSH 生效
280
- 5. **浏览器 UI 状态(localStorage)不迁移**:如任务看板数据、面板宽度
281
- 6. **keybindings / workflows / commands / rules**:DSH 当前无这些概念,不做假分区
282
- 7. **密钥值无法回滚**:导入中覆盖的密钥在回滚时需人工重新填写
283
- 8. **新建项无法回滚删除**:DSH 设置无删除语义,新建的配置项回滚时需人工处理
284
- 9. **Schema 迁移**:机制已就绪,v1→v2 迁移链为占位(当前版本即 v1)
285
- 10. **历史会话默认不迁移**:v1 仅支持文件级复制
286
- 11. **加密备份**:密码丢失则无法解密(设计使然,请牢记密码)
205
+ > 维护者与开发者:构建、测试、自动发布与完整技术说明见 [DEVELOPERS.md](DEVELOPERS.md)。
287
206
 
288
207
  ---
289
208
 
package/lib/client.js CHANGED
@@ -559,93 +559,93 @@ if (typeof document !== "undefined" && document.querySelector("style[data-tag=\"
559
559
  document.head.appendChild(tag);
560
560
  }
561
561
  var config_manager_module_css_default = {
562
- "iconButton": "_367UGW_iconButton",
563
- "progressBar": "_367UGW_progressBar",
564
- "viewBody": "_367UGW_viewBody",
565
- "badgeInfo": "_367UGW_badgeInfo",
566
- "rollbackBox": "_367UGW_rollbackBox",
567
- "errorFooter": "_367UGW_errorFooter",
562
+ "actionRow": "_367UGW_actionRow",
563
+ "formError": "_367UGW_formError",
564
+ "errorItem": "_367UGW_errorItem",
565
+ "secretFields": "_367UGW_secretFields",
566
+ "section": "_367UGW_section",
567
+ "sectionBody": "_367UGW_sectionBody",
568
+ "groupHeader": "_367UGW_groupHeader",
569
+ "fieldLabel": "_367UGW_fieldLabel",
570
+ "input": "_367UGW_input",
571
+ "groupLabel": "_367UGW_groupLabel",
572
+ "radioLabel": "_367UGW_radioLabel",
573
+ "modeTabs": "_367UGW_modeTabs",
574
+ "progressMeta": "_367UGW_progressMeta",
575
+ "conflictHead": "_367UGW_conflictHead",
576
+ "conflictOptions": "_367UGW_conflictOptions",
568
577
  "conflictId": "_367UGW_conflictId",
569
578
  "pathIssueKind": "_367UGW_pathIssueKind",
570
- "errorAction": "_367UGW_errorAction",
571
- "modeTabs": "_367UGW_modeTabs",
572
- "radioLabel": "_367UGW_radioLabel",
573
- "categoryName": "_367UGW_categoryName",
574
- "primaryButton": "_367UGW_primaryButton",
575
- "pathNew": "_367UGW_pathNew",
576
- "conflictList": "_367UGW_conflictList",
577
- "reportText": "_367UGW_reportText",
578
- "progressBarDone": "_367UGW_progressBarDone",
579
- "errorActionLabel": "_367UGW_errorActionLabel",
579
+ "iconButton": "_367UGW_iconButton",
580
580
  "empty": "_367UGW_empty",
581
- "errorLine": "_367UGW_errorLine",
582
- "dangerButton": "_367UGW_dangerButton",
583
- "reportFooter": "_367UGW_reportFooter",
584
- "badgeOk": "_367UGW_badgeOk",
585
- "progressBlock": "_367UGW_progressBlock",
586
- "input": "_367UGW_input",
587
- "secretsList": "_367UGW_secretsList",
588
- "reportView": "_367UGW_reportView",
589
- "progressMeta": "_367UGW_progressMeta",
590
- "progressTrack": "_367UGW_progressTrack",
581
+ "dshCmSpin": "_367UGW_dshCmSpin",
582
+ "errorActionLabel": "_367UGW_errorActionLabel",
583
+ "progressLabel": "_367UGW_progressLabel",
591
584
  "errorList": "_367UGW_errorList",
592
- "errorReason": "_367UGW_errorReason",
593
- "pathOld": "_367UGW_pathOld",
594
- "badgeWarn": "_367UGW_badgeWarn",
595
- "progressIndeterminate": "_367UGW_progressIndeterminate",
596
- "sectionTitle": "_367UGW_sectionTitle",
597
- "categoryItem": "_367UGW_categoryItem",
598
- "sectionBody": "_367UGW_sectionBody",
599
- "badgeError": "_367UGW_badgeError",
600
- "groupLabel": "_367UGW_groupLabel",
601
- "errorItem": "_367UGW_errorItem",
602
- "errorTitle": "_367UGW_errorTitle",
603
- "pathMappingList": "_367UGW_pathMappingList",
585
+ "conflictList": "_367UGW_conflictList",
586
+ "severityError": "_367UGW_severityError",
604
587
  "banner": "_367UGW_banner",
605
- "pathRow": "_367UGW_pathRow",
606
- "sectionHeader": "_367UGW_sectionHeader",
588
+ "card": "_367UGW_card",
589
+ "pathMappingList": "_367UGW_pathMappingList",
607
590
  "spinnerWrap": "_367UGW_spinnerWrap",
608
- "badge": "_367UGW_badge",
609
- "groupCard": "_367UGW_groupCard",
610
- "section": "_367UGW_section",
611
- "progressPercent": "_367UGW_progressPercent",
612
- "dshCmSpin": "_367UGW_dshCmSpin",
613
- "optionsCard": "_367UGW_optionsCard",
591
+ "badgeInfo": "_367UGW_badgeInfo",
592
+ "pathOld": "_367UGW_pathOld",
593
+ "pathRow": "_367UGW_pathRow",
614
594
  "spinner": "_367UGW_spinner",
615
- "viewTab": "_367UGW_viewTab",
616
- "hiddenFile": "_367UGW_hiddenFile",
617
- "progressLabel": "_367UGW_progressLabel",
618
- "severityError": "_367UGW_severityError",
619
- "conflictOptions": "_367UGW_conflictOptions",
620
- "progressDetail": "_367UGW_progressDetail",
621
- "ghostButton": "_367UGW_ghostButton",
622
- "groupNote": "_367UGW_groupNote",
623
- "statRow": "_367UGW_statRow",
595
+ "groupItems": "_367UGW_groupItems",
596
+ "errorLine": "_367UGW_errorLine",
597
+ "conflictItem": "_367UGW_conflictItem",
598
+ "progressBarDone": "_367UGW_progressBarDone",
599
+ "sectionTitle": "_367UGW_sectionTitle",
600
+ "pathValue": "_367UGW_pathValue",
601
+ "dshCmIndeterminate": "_367UGW_dshCmIndeterminate",
602
+ "progressBlock": "_367UGW_progressBlock",
603
+ "progressPercent": "_367UGW_progressPercent",
604
+ "badgeWarn": "_367UGW_badgeWarn",
605
+ "sectionSubtitle": "_367UGW_sectionSubtitle",
624
606
  "conflictDetail": "_367UGW_conflictDetail",
625
- "modeHint": "_367UGW_modeHint",
626
- "actionRow": "_367UGW_actionRow",
607
+ "hiddenFile": "_367UGW_hiddenFile",
608
+ "groupCard": "_367UGW_groupCard",
627
609
  "viewTabs": "_367UGW_viewTabs",
610
+ "spinnerLabel": "_367UGW_spinnerLabel",
611
+ "viewTab": "_367UGW_viewTab",
612
+ "progressIndeterminate": "_367UGW_progressIndeterminate",
613
+ "dangerButton": "_367UGW_dangerButton",
628
614
  "field": "_367UGW_field",
629
- "secretFields": "_367UGW_secretFields",
630
- "conflictHead": "_367UGW_conflictHead",
631
- "groupItems": "_367UGW_groupItems",
632
- "card": "_367UGW_card",
633
- "pathValue": "_367UGW_pathValue",
634
- "fieldLabel": "_367UGW_fieldLabel",
615
+ "progressBar": "_367UGW_progressBar",
616
+ "sectionTitleBlock": "_367UGW_sectionTitleBlock",
635
617
  "groupList": "_367UGW_groupList",
618
+ "progressTrack": "_367UGW_progressTrack",
619
+ "reportText": "_367UGW_reportText",
620
+ "rollbackBox": "_367UGW_rollbackBox",
621
+ "secretsList": "_367UGW_secretsList",
636
622
  "warnList": "_367UGW_warnList",
637
- "modeTab": "_367UGW_modeTab",
638
- "dshCmIndeterminate": "_367UGW_dshCmIndeterminate",
623
+ "pathNew": "_367UGW_pathNew",
624
+ "badgeOk": "_367UGW_badgeOk",
625
+ "statRow": "_367UGW_statRow",
639
626
  "errorBanner": "_367UGW_errorBanner",
640
- "spinnerLabel": "_367UGW_spinnerLabel",
641
- "checkboxRow": "_367UGW_checkboxRow",
642
- "conflictItem": "_367UGW_conflictItem",
643
- "sectionSubtitle": "_367UGW_sectionSubtitle",
644
627
  "hint": "_367UGW_hint",
628
+ "sectionHeader": "_367UGW_sectionHeader",
629
+ "progressDetail": "_367UGW_progressDetail",
630
+ "reportFooter": "_367UGW_reportFooter",
631
+ "ghostButton": "_367UGW_ghostButton",
632
+ "checkboxRow": "_367UGW_checkboxRow",
633
+ "groupNote": "_367UGW_groupNote",
634
+ "categoryItem": "_367UGW_categoryItem",
635
+ "errorAction": "_367UGW_errorAction",
645
636
  "categoryDesc": "_367UGW_categoryDesc",
646
- "sectionTitleBlock": "_367UGW_sectionTitleBlock",
647
- "groupHeader": "_367UGW_groupHeader",
648
- "formError": "_367UGW_formError"
637
+ "primaryButton": "_367UGW_primaryButton",
638
+ "categoryName": "_367UGW_categoryName",
639
+ "reportView": "_367UGW_reportView",
640
+ "errorFooter": "_367UGW_errorFooter",
641
+ "optionsCard": "_367UGW_optionsCard",
642
+ "errorTitle": "_367UGW_errorTitle",
643
+ "badgeError": "_367UGW_badgeError",
644
+ "badge": "_367UGW_badge",
645
+ "errorReason": "_367UGW_errorReason",
646
+ "modeTab": "_367UGW_modeTab",
647
+ "viewBody": "_367UGW_viewBody",
648
+ "modeHint": "_367UGW_modeHint"
649
649
  };
650
650
  //#endregion
651
651
  //#region src/client/common/ui.tsx
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-config-manager",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "DSH Config Manager — backup / export / import / migrate DSH configuration (dual-face Cordis plugin: host engine + web UI). Manifest shape mirrors @linxin666/dsh-ssh@0.1.12.",
5
5
  "type": "module",
6
6
  "repository": {