dsh-config-manager 0.1.28 → 0.1.30
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 +67 -20
- package/README.zh-CN.md +67 -20
- package/lib/adapters/agent-instructions.d.ts +13 -0
- package/lib/adapters/agent-instructions.js +46 -0
- package/lib/adapters/agent-instructions.js.map +1 -0
- package/lib/adapters/file-collection.js +2 -1
- package/lib/adapters/file-collection.js.map +1 -1
- package/lib/adapters/index.d.ts +7 -3
- package/lib/adapters/index.js +4 -1
- package/lib/adapters/index.js.map +1 -1
- package/lib/adapters/plugins.d.ts +3 -0
- package/lib/adapters/plugins.js +8 -0
- package/lib/adapters/plugins.js.map +1 -1
- package/lib/adapters/test-helpers.js +1 -1
- package/lib/adapters/test-helpers.js.map +1 -1
- package/lib/cli/index.d.ts +26 -5
- package/lib/cli/index.js +220 -14
- package/lib/cli/index.js.map +1 -1
- package/lib/client.d.ts +254 -16
- package/lib/client.js +1437 -297
- package/lib/client.js.map +1 -1
- package/lib/core/analyzer.js +1 -1
- package/lib/core/analyzer.js.map +1 -1
- package/lib/core/backup.js +2 -0
- package/lib/core/backup.js.map +1 -1
- package/lib/core/messages.d.ts +25 -0
- package/lib/core/messages.js +52 -0
- package/lib/core/messages.js.map +1 -1
- package/lib/core/reinstall.d.ts +94 -0
- package/lib/core/reinstall.js +226 -0
- package/lib/core/reinstall.js.map +1 -0
- package/lib/core/restore.js +1 -1
- package/lib/index.d.ts +28 -0
- package/lib/index.js +393 -56
- package/lib/index.js.map +1 -1
- package/lib/market/builtin.d.ts +4 -0
- package/lib/market/builtin.js +23 -0
- package/lib/market/builtin.js.map +1 -0
- package/lib/market/index-parser.d.ts +12 -0
- package/lib/market/index-parser.js +235 -0
- package/lib/market/index-parser.js.map +1 -0
- package/lib/market/market-config.d.ts +33 -0
- package/lib/market/market-config.js +102 -0
- package/lib/market/market-config.js.map +1 -0
- package/lib/market/reader.d.ts +93 -0
- package/lib/market/reader.js +136 -0
- package/lib/market/reader.js.map +1 -0
- package/lib/market/security.d.ts +31 -0
- package/lib/market/security.js +156 -0
- package/lib/market/security.js.map +1 -0
- package/lib/market/types.d.ts +167 -0
- package/lib/market/types.js +20 -0
- package/lib/market/types.js.map +1 -0
- package/lib/market/view.d.ts +38 -0
- package/lib/market/view.js +61 -0
- package/lib/market/view.js.map +1 -0
- package/lib/profiles/profile-manager.js +2 -2
- package/lib/profiles/profile-manager.js.map +1 -1
- package/lib/schema/config.js +3 -1
- package/lib/schema/config.js.map +1 -1
- package/lib/schema/types.d.ts +3 -2
- package/lib/sync/autosync-scheduler.d.ts +7 -1
- package/lib/sync/autosync-scheduler.js +21 -5
- package/lib/sync/autosync-scheduler.js.map +1 -1
- package/lib/sync/risk.js +1 -0
- package/lib/sync/risk.js.map +1 -1
- package/lib/sync/sync-config.d.ts +44 -8
- package/lib/sync/sync-config.js +117 -18
- package/lib/sync/sync-config.js.map +1 -1
- package/lib/sync/sync-session.d.ts +3 -2
- package/lib/sync/sync-session.js.map +1 -1
- package/lib/sync/webdav/webdav-transport.d.ts +73 -0
- package/lib/sync/webdav/webdav-transport.js +333 -0
- package/lib/sync/webdav/webdav-transport.js.map +1 -0
- package/lib/ui/export-flow.js +1 -0
- package/lib/ui/export-flow.js.map +1 -1
- package/lib/ui/i18n.d.ts +13 -0
- package/lib/ui/i18n.js +27 -0
- package/lib/ui/i18n.js.map +1 -1
- package/lib/ui/report.js +2 -0
- package/lib/ui/report.js.map +1 -1
- package/lib/ui/test-helpers.js +2 -2
- package/lib/ui/test-helpers.js.map +1 -1
- package/package.json +1 -1
- package/src/adapters/agent-instructions.ts +48 -0
- package/src/adapters/file-collection.ts +2 -1
- package/src/adapters/files.test.ts +46 -1
- package/src/adapters/index.ts +10 -4
- package/src/adapters/plugins.test.ts +25 -0
- package/src/adapters/plugins.ts +8 -0
- package/src/adapters/test-helpers.ts +1 -1
- package/src/cli/index.ts +267 -16
- package/src/client/ConfigManagerSection.tsx +37 -13
- package/src/client/client-types.ts +4 -0
- package/src/client/index.ts +18 -6
- package/src/client/locales.ts +2 -0
- package/src/client/market/MarketPanel.tsx +396 -0
- package/src/client/market/market-api.test.ts +157 -0
- package/src/client/market/market-api.ts +130 -0
- package/src/client/market/market-locales.ts +112 -0
- package/src/client/market/market-view.test.ts +276 -0
- package/src/client/market/market-view.ts +290 -0
- package/src/client/sync/SyncSettingsView.tsx +238 -112
- package/src/client/sync/sync-api.test.ts +83 -1
- package/src/client/sync/sync-api.ts +39 -9
- package/src/client/sync/sync-locales.ts +28 -0
- package/src/client/sync/sync-view.test.ts +30 -7
- package/src/client/sync/sync-view.ts +17 -5
- package/src/core/analyzer.ts +1 -1
- package/src/core/backup.ts +2 -0
- package/src/core/messages.ts +54 -0
- package/src/core/reinstall.ts +295 -0
- package/src/core/restore.ts +1 -1
- package/src/index.sync.test.ts +146 -0
- package/src/index.ts +412 -58
- package/src/market/builtin.ts +26 -0
- package/src/market/index-parser.ts +243 -0
- package/src/market/market-config.ts +108 -0
- package/src/market/market.test.ts +341 -0
- package/src/market/reader.ts +179 -0
- package/src/market/security.ts +184 -0
- package/src/market/types.ts +199 -0
- package/src/market/view.ts +84 -0
- package/src/profiles/profile-manager.ts +2 -2
- package/src/schema/config.ts +3 -1
- package/src/schema/types.ts +4 -3
- package/src/sync/autosync-scheduler.test.ts +36 -2
- package/src/sync/autosync-scheduler.ts +24 -7
- package/src/sync/risk.ts +1 -0
- package/src/sync/sync-config.test.ts +147 -26
- package/src/sync/sync-config.ts +130 -19
- package/src/sync/sync-session.test.ts +8 -5
- package/src/sync/sync-session.ts +3 -2
- package/src/sync/transport.test.ts +1 -1
- package/src/sync/webdav/webdav-transport.test.ts +369 -0
- package/src/sync/webdav/webdav-transport.ts +402 -0
- package/src/ui/export-flow.ts +1 -0
- package/src/ui/i18n.ts +27 -0
- package/src/ui/report.ts +1 -0
- package/src/ui/test-helpers.ts +2 -2
package/README.md
CHANGED
|
@@ -32,10 +32,10 @@ DSH is your AI assistant workbench — it holds your settings: model configs, pl
|
|
|
32
32
|
| 👀 | **Preview before import** | Full preview first — **never touches your config silently** |
|
|
33
33
|
| ⚔️ | **Conflict handling** | Keep Current / Use Imported — you decide |
|
|
34
34
|
| 🗺️ | **Path auto-mapping** | Detects dead absolute paths and lets you remap them |
|
|
35
|
-
| 🔒 | **Secret safety** | API Keys are
|
|
35
|
+
| 🔒 | **Secret safety** | API Keys are not exported by default — non-encrypted imports ask you to re-enter; encrypted backups restore them with the password |
|
|
36
36
|
| ↩️ | **Automatic rollback** | Failed import restores everything automatically |
|
|
37
37
|
| 📸 | **Snapshot restore** | Undo an import: whole-file restore + uninstall added plugins (CLI & GUI) |
|
|
38
|
-
| 🔄 | **Remote Sync** | Push/pull portable config via
|
|
38
|
+
| 🔄 | **Remote Sync** | Push/pull portable config via **Git private repo or WebDAV** (secrets never sync) |
|
|
39
39
|
| 🗂️ | **Profiles** | Save multiple setups (Work / Personal) and switch anytime |
|
|
40
40
|
| 🌐 | **Bilingual UI** | Interface, reports and error details follow the DSH app language (中文 / English) |
|
|
41
41
|
|
|
@@ -122,7 +122,7 @@ Copy the ZIP to Machine B (import)
|
|
|
122
122
|
4. Conflicts? → choose Keep Current / Use Imported
|
|
123
123
|
5. Confirm import → wait
|
|
124
124
|
6. Re-enter any missing API Keys as prompted
|
|
125
|
-
7. ✅ Settings / plugins / MCP / skills /
|
|
125
|
+
7. ✅ Settings / plugins / MCP / skills / workspace / global instructions (AGENTS.md) are back
|
|
126
126
|
```
|
|
127
127
|
|
|
128
128
|
---
|
|
@@ -133,7 +133,7 @@ Copy the ZIP to Machine B (import)
|
|
|
133
133
|
|
|
134
134
|
| Mode | Description |
|
|
135
135
|
|---|---|
|
|
136
|
-
| **Quick Export** (recommended) | One-click: settings / UI / models / plugins / MCP / skills / workspaces… |
|
|
136
|
+
| **Quick Export** (recommended) | One-click: settings / UI / models / plugins / MCP / skills / agent presets / global instructions (AGENTS.md) / workspaces… |
|
|
137
137
|
| **Custom Export** | Tick the categories you want |
|
|
138
138
|
|
|
139
139
|
> Output: `dsh-config-<date>.zip` with manifest + per-category data + SHA-256 checksums.
|
|
@@ -177,10 +177,23 @@ When the target already has a same-named item, you choose:
|
|
|
177
177
|
| Scenario | Behavior |
|
|
178
178
|
|---|---|
|
|
179
179
|
| Default backup | **No secret values at all** — only records which keys are needed |
|
|
180
|
-
| Encrypted backup (
|
|
180
|
+
| Encrypted backup (explicit opt-in) | scrypt + AES-256-GCM, random salt & IV per export; secrets never leave as plaintext, and the password is **never written to the file** |
|
|
181
181
|
| Encrypted backup import | The export-time password is required: enter → verify → credentials are restored; **no password, no import** |
|
|
182
182
|
| After non-encrypted import | "3 secrets need re-entry" — values stay in memory only |
|
|
183
183
|
|
|
184
|
+
### 🔄 Remote Sync (Git / WebDAV)
|
|
185
|
+
|
|
186
|
+
Push / pull your portable config between machines through **either of two channels** — usage is identical except for the transport itself:
|
|
187
|
+
|
|
188
|
+
| | Git private repo | WebDAV |
|
|
189
|
+
|:---:|---|---|
|
|
190
|
+
| **Endpoint** | `repoUrl` | `webdav.url` |
|
|
191
|
+
| **Credentials** | auth token in DSH credentials (`DSH_CONFIG_MANAGER_SYNC_TOKEN`) | `username` stored in the config (echoed in the UI); **password never synced / never logged** — DSH credentials `DSH_CONFIG_MANAGER_SYNC_WEBDAV_PASSWORD` |
|
|
192
|
+
|
|
193
|
+
- **Same snapshot retention for both channels**: only the newest **10** snapshots are kept on the remote (`MAX_REMOTE_SNAPSHOTS=10`); older ones are deleted automatically.
|
|
194
|
+
- **Switching channels starts fresh**: Git and WebDAV do **not** share snapshots or a common ancestor. When you switch transport, sync begins again from the new remote's empty baseline — push a fresh snapshot first.
|
|
195
|
+
- **WebDAV auth** uses HTTP Basic: the `username` is stored in the config and may be echoed back into the UI, while the `password` is read live from the DSH credentials slot `DSH_CONFIG_MANAGER_SYNC_WEBDAV_PASSWORD` — it never appears in any sync file or log.
|
|
196
|
+
|
|
184
197
|
### 🗂️ Profiles
|
|
185
198
|
|
|
186
199
|
Save multiple configurations (Work / Personal) and switch anytime; switching includes preview + auto-backup + rollback.
|
|
@@ -193,43 +206,77 @@ Every import creates a **safety snapshot** first. If something feels off afterwa
|
|
|
193
206
|
|---|---|
|
|
194
207
|
| Whole-file restore | settings.yaml / settings.json / cordis.patch.yml blobs are written back to `$DSH_HOME`; files that didn't exist at snapshot time but appeared after import are removed |
|
|
195
208
|
| Plugin uninstall | Plugins added during import are removed via the official `dsh plugin remove` (baseline comparison; old snapshots without a baseline only get a hint) |
|
|
196
|
-
| File compensation | skills / agentPresets / pluginFiles / sessions blobs are written back to their original paths |
|
|
209
|
+
| File compensation | skills / agentPresets / agentInstructions / pluginFiles / sessions blobs are written back to their original paths |
|
|
197
210
|
| Credentials | DSH never reads credential values back — you get a manual re-entry hint instead |
|
|
198
211
|
|
|
199
212
|
**GUI**: Settings → "Backup & Migration" → **Snapshots & Restore** tab → pick a snapshot → preview the plan (dry-run, zero writes) → confirm.
|
|
200
213
|
|
|
201
|
-
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
### 🚨 CLI — the first line of defense when DSH is broken
|
|
217
|
+
|
|
218
|
+
The GUI lives *inside* DSH — it can't help you if DSH won't start. The `dsh-config-manager` **CLI is completely independent of the DSH runtime** (pure Node + the core engine, **zero `@deepseek-ai/*` imports** — it runs even when the DSH peer packages are broken or missing). That makes it your **first rescue tool** when the config is corrupted, the GUI won't boot, or you changed machines and need to bring an environment back.
|
|
219
|
+
|
|
220
|
+
It is a standalone npm tool, **installed separately from the plugin**. Install it once on any machine that might need rescuing:
|
|
202
221
|
|
|
203
222
|
```bash
|
|
204
|
-
#
|
|
205
|
-
# (--omit=peer: the offline CLI only needs js-yaml, not the DSH peer packages)
|
|
223
|
+
# --omit=peer: the offline CLI only needs js-yaml, not the DSH peer packages
|
|
206
224
|
npm install -g dsh-config-manager@latest --omit=peer
|
|
207
225
|
```
|
|
208
226
|
|
|
209
|
-
> ⚠️ Installing/updating the plugin (`dsh plugin --profile web add ...`) only enables the GUI — it does **not** create the `dsh-config-manager` command. Run the install command above, then
|
|
227
|
+
> ⚠️ Installing/updating the plugin (`dsh plugin --profile web add ...`) only enables the GUI — it does **not** create the `dsh-config-manager` command. Run the install command above, then any of the commands below.
|
|
228
|
+
|
|
229
|
+
All commands (also shown by `dsh-config-manager help`):
|
|
230
|
+
|
|
231
|
+
```text
|
|
232
|
+
dsh-config-manager help # list all commands & options
|
|
233
|
+
dsh-config-manager snapshots [--data-dir <dir>] # list snapshots (newest first)
|
|
234
|
+
dsh-config-manager restore [--id <id>] [--dry-run]
|
|
235
|
+
[--profile <name>] [--settings <path>]
|
|
236
|
+
dsh-config-manager reinstall [--version <v>] [--yes] [--list]
|
|
237
|
+
[--wipe-config] [--dry-run] # one-click reinstall of DSH itself
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
**`reinstall` — rescue when DSH is broken.** It reinstalls the `@deepseek-ai/dsh` launcher across platforms (uses the right command per OS: PowerShell on Windows, bash on Unix). By default it reinstalls the launcher + clears global caches; interactively it asks which **dangerous** clean-up items to include (settings / plugins / session data & credentials) — those are **not** selected by default, and any destructive choice requires a second confirmation by typing `YES` before anything runs. Before wiping any `~/.dsh` data it makes an emergency backup at `.reinstall-backup` (the `snapshots/` folder is deliberately never touched).
|
|
210
241
|
|
|
211
242
|
```bash
|
|
212
|
-
#
|
|
213
|
-
dsh-config-manager
|
|
243
|
+
# see the selectable clean-up items
|
|
244
|
+
dsh-config-manager reinstall --list
|
|
245
|
+
|
|
246
|
+
# interactive: pick items, confirm, then reinstall DSH
|
|
247
|
+
dsh-config-manager reinstall
|
|
248
|
+
|
|
249
|
+
# non-interactive: everything checked, skip confirmation
|
|
250
|
+
dsh-config-manager reinstall --yes
|
|
214
251
|
|
|
215
|
-
#
|
|
216
|
-
dsh-config-manager
|
|
252
|
+
# wipe config data too (equivalent to checking all data items) — interactive confirm still required
|
|
253
|
+
dsh-config-manager reinstall --wipe-config
|
|
217
254
|
|
|
218
|
-
#
|
|
219
|
-
dsh-config-manager
|
|
255
|
+
# preview the exact plan without running anything
|
|
256
|
+
dsh-config-manager reinstall --dry-run
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
**Snapshot restore.** List and restore the safety snapshots (offline — the restore engine is part of the CLI, so it works whether or not DSH can start):
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
dsh-config-manager snapshots # list snapshots (newest first)
|
|
263
|
+
dsh-config-manager restore --dry-run # preview the plan (zero writes)
|
|
264
|
+
dsh-config-manager restore --id <snapshot-id> # execute (current files are backed up first)
|
|
220
265
|
```
|
|
221
266
|
|
|
222
267
|
Every overwrite/delete is first copied to `<snapshotDir>/pre-restore/` so you can manually change your mind. Exit code is `1` if any action failed; the report honestly lists restored / removedPlugins / manualHints / failed / skipped.
|
|
223
268
|
|
|
269
|
+
**A typical rescue flow** when DSH won't start: ① `dsh-config-manager reinstall` to bring the launcher back (plus any clean-up), ② `dsh web` to start DSH again, ③ re-add the plugin from the registry, and ④ pull a snapshot from the remote repo (or run `dsh-config-manager restore`) to bring your config back. The CLI works at every step regardless of DSH's health.
|
|
270
|
+
|
|
224
271
|
---
|
|
225
272
|
|
|
226
273
|
## 🛡️ Security
|
|
227
274
|
|
|
228
275
|
- **The default backup contains no secret values** — a hard invariant, enforced at export
|
|
229
|
-
- **Not exported**: API Keys / passwords / tokens / cookies / sessions / device unique ID / logs & cache / plugin binaries
|
|
276
|
+
- **Not exported by default**: API Keys / passwords / tokens / cookies / sessions / device unique ID / logs & cache / plugin binaries
|
|
230
277
|
- **A ZIP is untrusted input**: defends against Zip Slip, malicious paths, zip bombs, corrupt archives — any trigger rejects the whole file
|
|
231
278
|
- **Logs are fully redacted** — secret values never reach logs
|
|
232
|
-
- **Encrypted backup**: scrypt + AES-256-GCM; the password lives in memory only
|
|
279
|
+
- **Encrypted backup (explicit opt-in)**: secrets are exported only as scrypt + AES-256-GCM ciphertext — random salt & IV per export, never plaintext; the password lives in memory only
|
|
233
280
|
|
|
234
281
|
---
|
|
235
282
|
|
|
@@ -247,7 +294,7 @@ Every overwrite/delete is first copied to `<snapshotDir>/pre-restore/` so you ca
|
|
|
247
294
|
## ❓ FAQ
|
|
248
295
|
|
|
249
296
|
**Q: Will my API Key be in the backup?**
|
|
250
|
-
|
|
297
|
+
Not by default. The default backup **never contains any secret value** — only records which keys you'll need to re-enter. If you explicitly choose an **encrypted backup**, secrets are included, but only as scrypt + AES-256-GCM ciphertext (random salt & IV per export) — never plaintext.
|
|
251
298
|
|
|
252
299
|
**Q: Will importing overwrite my existing config?**
|
|
253
300
|
Not silently. Conflicts ask you to choose (Keep Current / Use Imported); the target is auto-backed-up and can roll back.
|
|
@@ -270,7 +317,7 @@ Yes. The import wizard asks for the export-time encryption password and verifies
|
|
|
270
317
|
|
|
271
318
|
1. **Installing / updating plugins or MCP takes effect after restarting DSH**
|
|
272
319
|
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)
|
|
273
|
-
3. **keybindings / workflow configs / commands
|
|
320
|
+
3. **keybindings / workflow configs / commands** — DSH has no such concepts, so nothing is exported for them. Global agent rules are covered by **Agent Instructions** (`~/.dsh/AGENTS.md`, injected into every session); per-project `AGENTS.md`/`CLAUDE.md` belong to each project's repo and are not migrated
|
|
274
321
|
4. **History/session migration is off by default** (v1 copies files only)
|
|
275
322
|
5. **Encrypted backups**: a lost password means the `secrets.enc` can't be decrypted (by design — keep your password safe)
|
|
276
323
|
6. **Snapshot restore is offline and honest**: entries the offline engine can't restore (settings namespaces / patch lines when the snapshot has no whole-file backup, workspace records stored in DSH storages) are reported as skipped with a pointer to online rollback; credential **values** are never auto-written (manual re-entry hint only); old snapshots without a plugin baseline only get a hint to remove added plugins manually
|
package/README.zh-CN.md
CHANGED
|
@@ -32,10 +32,10 @@ DSH 是你的 AI 助手工作台,里面存着你的各种设置:模型配置
|
|
|
32
32
|
| 👀 | **先预览再导入** | 导入前完整预览,**绝不偷偷改你的配置** |
|
|
33
33
|
| ⚔️ | **冲突处理** | 遇到同名配置,让你自己选:保留现有的 / 用导入的 |
|
|
34
34
|
| 🗺️ | **路径自动映射** | 换了电脑路径变了?自动检测并让你重新指定 |
|
|
35
|
-
| 🔒 | **密钥安全** | API Key
|
|
35
|
+
| 🔒 | **密钥安全** | API Key 默认不导出;非加密导入后提醒重新填写,加密备份用密码解锁恢复 |
|
|
36
36
|
| ↩️ | **自动回滚** | 导入失败自动恢复原样,不会弄坏现有配置 |
|
|
37
37
|
| 📸 | **快照恢复** | 撤销一次导入:整文件还原 + 卸载新增插件(CLI 与 GUI 均支持) |
|
|
38
|
-
| 🔄 | **远程同步** | 通过 Git
|
|
38
|
+
| 🔄 | **远程同步** | 通过 **Git 私有仓库或 WebDAV** 推送 / 拉取可移植配置(密钥永不参与同步) |
|
|
39
39
|
| 🗂️ | **配置档案 Profiles** | 保存多套配置(工作 / 个人),随时切换 |
|
|
40
40
|
|
|
41
41
|
---
|
|
@@ -121,7 +121,7 @@ dsh plugin --profile web add dsh-config-manager@latest --config.auto-install-pee
|
|
|
121
121
|
4. 有同名配置冲突?→ 选择 保留现有的 / 用导入的
|
|
122
122
|
5. 确认导入 → 等待完成
|
|
123
123
|
6. 按提示重新填写缺失的 API Key
|
|
124
|
-
7. ✅ 设置 / 插件 / MCP / 技能 /
|
|
124
|
+
7. ✅ 设置 / 插件 / MCP / 技能 / 工作区 / 全局指令(AGENTS.md)都回来了
|
|
125
125
|
```
|
|
126
126
|
|
|
127
127
|
---
|
|
@@ -132,7 +132,7 @@ dsh plugin --profile web add dsh-config-manager@latest --config.auto-install-pee
|
|
|
132
132
|
|
|
133
133
|
| 方式 | 说明 |
|
|
134
134
|
|---|---|
|
|
135
|
-
| **快速导出**(推荐) | 一键导出推荐配置:设置 / UI / 模型 / 插件 / MCP / 技能 / 工作区等 |
|
|
135
|
+
| **快速导出**(推荐) | 一键导出推荐配置:设置 / UI / 模型 / 插件 / MCP / 技能 / Agent 预设 / 全局指令(AGENTS.md)/ 工作区等 |
|
|
136
136
|
| **自定义导出** | 自己勾选要导出的分类 |
|
|
137
137
|
|
|
138
138
|
> 导出文件:`dsh-config-<日期>.zip`,内含清单 + 各分类数据 + SHA-256 校验和。
|
|
@@ -176,10 +176,23 @@ dsh plugin --profile web add dsh-config-manager@latest --config.auto-install-pee
|
|
|
176
176
|
| 场景 | 行为 |
|
|
177
177
|
|---|---|
|
|
178
178
|
| 默认备份 | **不含任何密钥值**,只记录"哪些密钥需要填写" |
|
|
179
|
-
|
|
|
179
|
+
| 加密备份(可选,显式勾选) | scrypt + AES-256-GCM,每次导出随机 salt 与 IV;密钥绝不明文落盘,密码**绝不写入备份文件** |
|
|
180
180
|
| 加密备份导入 | 必须输入导出时的加密密码解锁:输入→验证密码→凭据自动恢复,**无密码无法导入** |
|
|
181
181
|
| 非加密导入后 | 提示「3 个密钥需要重新填写」,输入后仅保存在内存中写入 |
|
|
182
182
|
|
|
183
|
+
### 🔄 远程同步(Git / WebDAV)
|
|
184
|
+
|
|
185
|
+
通过**两种通道之一**在机器间推送 / 拉取可移植配置——除传输方式外,使用方式完全一致:
|
|
186
|
+
|
|
187
|
+
| | Git 私有仓库 | WebDAV |
|
|
188
|
+
|:---:|---|---|
|
|
189
|
+
| **端点** | `repoUrl` | `webdav.url` |
|
|
190
|
+
| **凭据** | 认证 token 存入 DSH credentials(`DSH_CONFIG_MANAGER_SYNC_TOKEN`) | `username` 存配置、可在界面回显;**密码永不同步、永不记日志**——存入 DSH credentials `DSH_CONFIG_MANAGER_SYNC_WEBDAV_PASSWORD` |
|
|
191
|
+
|
|
192
|
+
- **两通道保留策略一致**:远端只保留最新 **10** 个快照(`MAX_REMOTE_SNAPSHOTS=10`),更旧的自动删除。
|
|
193
|
+
- **切换通道重新开始**:Git 与 WebDAV 的快照 / 共同祖先**互不共享**。切换通道后,同步从新远端的空基线重新开始——请先推送一个新快照。
|
|
194
|
+
- **WebDAV 认证**采用 HTTP Basic:`username` 存配置、可在界面回显;`password` 则实时从 DSH credentials 槽位 `DSH_CONFIG_MANAGER_SYNC_WEBDAV_PASSWORD` 读取——绝不出现于任何同步文件或日志。
|
|
195
|
+
|
|
183
196
|
### 🗂️ 配置档案(Profiles)
|
|
184
197
|
|
|
185
198
|
保存多套配置(如「工作」「个人」),随时切换;切换同样带预览 + 自动备份 + 回滚。
|
|
@@ -192,43 +205,77 @@ dsh plugin --profile web add dsh-config-manager@latest --config.auto-install-pee
|
|
|
192
205
|
|---|---|
|
|
193
206
|
| 整文件还原 | settings.yaml / settings.json / cordis.patch.yml 的 blob 写回 `$DSH_HOME`;快照时不存在、导入后新增的文件会被移除 |
|
|
194
207
|
| 插件卸载 | 导入期间新增的插件经官方 `dsh plugin remove` 卸载(与基线对比;旧快照无基线时只给提示) |
|
|
195
|
-
| 文件补偿 | skills / agentPresets / pluginFiles / sessions 的 blob 写回原路径 |
|
|
208
|
+
| 文件补偿 | skills / agentPresets / agentInstructions / pluginFiles / sessions 的 blob 写回原路径 |
|
|
196
209
|
| 凭据 | DSH 不回读凭据值——只提示人工重新填写 |
|
|
197
210
|
|
|
198
211
|
**GUI**:设置 → 「备份与迁移」→「快照恢复」tab → 选择快照 → 预览恢复计划(dry-run,零写入)→ 确认执行。
|
|
199
212
|
|
|
200
|
-
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
### 🚨 CLI —— DSH 挂了时的第一救急手段
|
|
216
|
+
|
|
217
|
+
GUI 住在 DSH *里面* —— DSH 起不来时,GUI 也帮不了你。而 `dsh-config-manager` 的 **CLI 完全独立于 DSH 运行时**(纯 Node + 核心引擎,**绝不 import `@deepseek-ai/*`** —— 即使 DSH 的 peer 包损坏或缺失也照常运行)。因此它是你在**配置损坏、GUI 无法启动、或换新机器要还原环境**时的**第一救急工具**。
|
|
218
|
+
|
|
219
|
+
它是一个独立的 npm 命令行工具,**需单独安装**(与插件安装是两回事)。在任意可能需要救急的机器上装一次即可:
|
|
201
220
|
|
|
202
221
|
```bash
|
|
203
|
-
#
|
|
204
|
-
# (--omit=peer:离线 CLI 只需要 js-yaml,不需要 DSH 的 peer 依赖包)
|
|
222
|
+
# --omit=peer:离线 CLI 只需要 js-yaml,不需要 DSH 的 peer 依赖包
|
|
205
223
|
npm install -g dsh-config-manager@latest --omit=peer
|
|
206
224
|
```
|
|
207
225
|
|
|
208
|
-
> ⚠️ 只安装/更新插件(`dsh plugin --profile web add ...`)只启用 GUI,**不会**产生 `dsh-config-manager`
|
|
226
|
+
> ⚠️ 只安装/更新插件(`dsh plugin --profile web add ...`)只启用 GUI,**不会**产生 `dsh-config-manager` 命令。请先执行上面这条安装命令,然后使用下面任意命令。
|
|
227
|
+
|
|
228
|
+
全部命令(`dsh-config-manager help` 也会列出):
|
|
229
|
+
|
|
230
|
+
```text
|
|
231
|
+
dsh-config-manager help # 列出全部命令与参数
|
|
232
|
+
dsh-config-manager snapshots [--data-dir <dir>] # 列出快照(最新在前)
|
|
233
|
+
dsh-config-manager restore [--id <id>] [--dry-run]
|
|
234
|
+
[--profile <name>] [--settings <path>]
|
|
235
|
+
dsh-config-manager reinstall [--version <v>] [--yes] [--list]
|
|
236
|
+
[--wipe-config] [--dry-run] # 一键重装 DSH 程序本体
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**`reinstall` —— DSH 损坏时的救急重装。** 跨平台一键重装 `@deepseek-ai/dsh` 启动器(按操作系统自动选用正确命令:Windows 走 PowerShell、Unix 走 bash)。默认重装启动器 + 清全局残留缓存;交互式多选会询问是否勾选**危险**清理项(设置 / 插件 / 会话与凭据)——这些**默认不勾选**,且只要涉及删数据的动作,执行前都必须**二次确认输入 `YES`**。清空 `~/.dsh` 数据前会先做一份 `.reinstall-backup` 紧急备份(`snapshots/` 目录按设计绝不触碰)。
|
|
209
240
|
|
|
210
241
|
```bash
|
|
211
|
-
#
|
|
212
|
-
dsh-config-manager
|
|
242
|
+
# 查看可选清理项
|
|
243
|
+
dsh-config-manager reinstall --list
|
|
244
|
+
|
|
245
|
+
# 交互式:选择清理项 → 确认 → 重装 DSH
|
|
246
|
+
dsh-config-manager reinstall
|
|
247
|
+
|
|
248
|
+
# 非交互:全部勾选并跳过确认
|
|
249
|
+
dsh-config-manager reinstall --yes
|
|
213
250
|
|
|
214
|
-
#
|
|
215
|
-
dsh-config-manager
|
|
251
|
+
# 连配置数据一起清(等价于勾选全部数据项)——仍会要求交互确认
|
|
252
|
+
dsh-config-manager reinstall --wipe-config
|
|
216
253
|
|
|
217
|
-
#
|
|
218
|
-
dsh-config-manager
|
|
254
|
+
# 只预览执行计划,不真正运行
|
|
255
|
+
dsh-config-manager reinstall --dry-run
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
**快照恢复。** 列出并恢复安全快照(恢复引擎内置于 CLI,无论 DSH 能否启动都能用):
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
dsh-config-manager snapshots # 列出快照(最新在前)
|
|
262
|
+
dsh-config-manager restore --dry-run # 预览恢复计划(零写入)
|
|
263
|
+
dsh-config-manager restore --id <snapshot-id> # 执行恢复(先备份当前文件)
|
|
219
264
|
```
|
|
220
265
|
|
|
221
266
|
每次覆盖/删除前都会先把当前文件复制到 `<snapshotDir>/pre-restore/`,可人工反悔。任一动作失败则退出码为 1;报告如实列出 已还原 / 已卸载插件 / 需人工处理 / 失败 / 跳过。
|
|
222
267
|
|
|
268
|
+
**典型救急流程**(DSH 起不来时):① `dsh-config-manager reinstall` 先把启动器重装回来(必要时顺带清理),② `dsh web` 重新启动 DSH,③ 从仓库装回插件,④ 从远程仓库拉取快照(或执行 `dsh-config-manager restore`)把配置恢复回来。整个流程中 CLI 全程可用,与 DSH 是否健康无关。
|
|
269
|
+
|
|
223
270
|
---
|
|
224
271
|
|
|
225
272
|
## 🛡️ 安全
|
|
226
273
|
|
|
227
274
|
- **默认备份不包含任何密钥值** —— 这是硬性规则,导出时强制执行
|
|
228
|
-
-
|
|
275
|
+
- **默认不导出**:API Key / 密码 / Token / Cookie / 会话 / 设备唯一 ID / 日志缓存 / 插件二进制
|
|
229
276
|
- **ZIP 是"不可信输入"**:防御 Zip Slip、恶意路径、压缩炸弹、损坏文件——任何一项触发就整体拒绝
|
|
230
277
|
- **日志全程脱敏**:密钥值永不进入日志
|
|
231
|
-
-
|
|
278
|
+
- **加密备份(显式选择)**:密钥仅以 scrypt + AES-256-GCM 密文导出——每次导出随机 salt 与 IV,绝不明文;密码只在内存中,绝不写入文件
|
|
232
279
|
|
|
233
280
|
---
|
|
234
281
|
|
|
@@ -246,7 +293,7 @@ dsh-config-manager restore --id <snapshot-id>
|
|
|
246
293
|
## ❓ 常见问题
|
|
247
294
|
|
|
248
295
|
**Q:备份会包含我的 API Key 吗?**
|
|
249
|
-
|
|
296
|
+
默认不会。默认备份**绝不包含任何密钥**,只记录哪些密钥需要重新填写。若你显式选择**加密备份**,密钥才会包含在内,但仅以 scrypt + AES-256-GCM 密文存在(每次导出随机 salt 与 IV)——绝不明文。
|
|
250
297
|
|
|
251
298
|
**Q:导入会不会覆盖我现有的配置?**
|
|
252
299
|
不会偷偷覆盖。有冲突时让你选择:保留现有的 / 用导入的;导入前还会自动备份,失败可回滚。
|
|
@@ -269,7 +316,7 @@ dsh-config-manager restore --id <snapshot-id>
|
|
|
269
316
|
|
|
270
317
|
1. **安装/更新插件或 MCP 后需重启 DSH 才生效**
|
|
271
318
|
2. **部分界面状态不迁移**(如任务看板数据、面板宽度——它们存在浏览器里,不在 DSH 配置文件内)
|
|
272
|
-
3. **keybindings / workflows 配置 / commands /
|
|
319
|
+
3. **keybindings / workflows 配置 / commands**:DSH 当前没有这些概念,因此不会导出相关内容。全局 agent 规则已由**全局指令(Agent Instructions)**承接(`~/.dsh/AGENTS.md`,注入每个会话);项目级 `AGENTS.md` / `CLAUDE.md` 属于各项目仓库本身,不在个人配置迁移范围内
|
|
273
320
|
4. **历史会话默认不迁移**(v1 仅支持文件级复制)
|
|
274
321
|
5. **加密备份**:密码丢失则无法解密(设计使然——请牢记密码)
|
|
275
322
|
6. **快照恢复是离线的、诚实的**:离线引擎无法恢复的条目(快照无整文件备份时的 settings namespace / patch 行、存在 DSH storages 里的 workspace 记录)会如实列为跳过并指向在线回滚;凭据**值**绝不自动改写(只提示人工补录);无插件基线的旧快照只提示人工核对新增插件
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FileCollectionAdapter } from './file-collection.ts';
|
|
2
|
+
import type { FilesSection } from '../schema/types.ts';
|
|
3
|
+
import type { ExportOptions, ExportSection, HostContext } from '../core/types.ts';
|
|
4
|
+
export declare class AgentInstructionsAdapter extends FileCollectionAdapter {
|
|
5
|
+
readonly id: "agentInstructions";
|
|
6
|
+
readonly displayName = "Agent Instructions";
|
|
7
|
+
readonly defaultIncluded = true;
|
|
8
|
+
readonly portability: "portable";
|
|
9
|
+
readonly baseDir = "";
|
|
10
|
+
/** 用户全局指令文件(相对 homeDir;同时是 schema 端该分区唯一的文件) */
|
|
11
|
+
static readonly FILE = "AGENTS.md";
|
|
12
|
+
export(ctx: HostContext, _options: ExportOptions): Promise<ExportSection<FilesSection>>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentInstructions 分区 adapter(设计 §3.3 / dsh-agent-instructions 插件):
|
|
3
|
+
* 数据源 = ~/.dsh/AGENTS.md(用户全局指令文件,dsh-agent-instructions 固定读取 $DSH_HOME/AGENTS.md,
|
|
4
|
+
* 注入每个会话的基线指令)。
|
|
5
|
+
*
|
|
6
|
+
* 与 skills/agentPresets 的差异:AGENTS.md 位于 $DSH_HOME 根目录,不能对 homeDir 整目录递归枚举,
|
|
7
|
+
* 因此不复用 FileCollectionAdapter 的目录扫描,而是白名单固定收集单文件 AGENTS.md。
|
|
8
|
+
* 仅迁移全局文件;项目级 AGENTS.md / CLAUDE.md 属于各项目仓库,默认不迁(研究报告 §2.2 同策略)。
|
|
9
|
+
* baseDir = ''(homeDir 根),与 core/backup.ts FILE_BASES 的 '' 基准一致,保证通用快照/回滚路径正确。
|
|
10
|
+
*/
|
|
11
|
+
import { sha256Hex } from "../utils/hashing.js";
|
|
12
|
+
import { msgOf } from "../core/messages.js";
|
|
13
|
+
import { FileCollectionAdapter } from "./file-collection.js";
|
|
14
|
+
export class AgentInstructionsAdapter extends FileCollectionAdapter {
|
|
15
|
+
id = 'agentInstructions';
|
|
16
|
+
displayName = 'Agent Instructions';
|
|
17
|
+
defaultIncluded = true;
|
|
18
|
+
portability = 'portable';
|
|
19
|
+
baseDir = '';
|
|
20
|
+
/** 用户全局指令文件(相对 homeDir;同时是 schema 端该分区唯一的文件) */
|
|
21
|
+
static FILE = 'AGENTS.md';
|
|
22
|
+
async export(ctx, _options) {
|
|
23
|
+
const files = [];
|
|
24
|
+
try {
|
|
25
|
+
const data = await ctx.fs.readFile(AgentInstructionsAdapter.FILE);
|
|
26
|
+
files.push({
|
|
27
|
+
relativePath: AgentInstructionsAdapter.FILE,
|
|
28
|
+
data,
|
|
29
|
+
contentHash: sha256Hex(data),
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// 文件不存在 → 空分区(与 skills 目录不存在视为空一致),下方归档 dirEmpty 提示
|
|
34
|
+
}
|
|
35
|
+
const warnings = [];
|
|
36
|
+
if (files.length === 0)
|
|
37
|
+
warnings.push(msgOf(ctx)('adapter.dirEmpty', { type: this.displayName }));
|
|
38
|
+
return {
|
|
39
|
+
sectionId: this.id,
|
|
40
|
+
data: { version: 1, files },
|
|
41
|
+
counts: { files: files.length },
|
|
42
|
+
warnings,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=agent-instructions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-instructions.js","sourceRoot":"","sources":["../../src/adapters/agent-instructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAI7D,MAAM,OAAO,wBAAyB,SAAQ,qBAAqB;IACxD,EAAE,GAAG,mBAA4B,CAAC;IAClC,WAAW,GAAG,oBAAoB,CAAC;IACnC,eAAe,GAAG,IAAI,CAAC;IACvB,WAAW,GAAG,UAAmB,CAAC;IAClC,OAAO,GAAG,EAAE,CAAC;IAEtB,gDAAgD;IAChD,MAAM,CAAU,IAAI,GAAG,WAAW,CAAC;IAE1B,KAAK,CAAC,MAAM,CAAC,GAAgB,EAAE,QAAuB;QAC7D,MAAM,KAAK,GAA0B,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC;gBACT,YAAY,EAAE,wBAAwB,CAAC,IAAI;gBAC3C,IAAI;gBACJ,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC;aAC7B,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;QACtD,CAAC;QACD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAClG,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE;YAC3B,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;YAC/B,QAAQ;SACT,CAAC;IACJ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 文件类分区共享 adapter 基类(skills / agentPresets / sessions
|
|
2
|
+
* 文件类分区共享 adapter 基类(skills / agentPresets / sessions 复用;
|
|
3
|
+
* agentInstructions 因位于 homeDir 根、只能白名单收集,覆写 export 后复用本类其余逻辑)。
|
|
3
4
|
* 基准目录与 core/backup.ts 的 FILE_BASES 保持一致(skills→'skills'、agentPresets→'.agent-presets'、sessions→'sessions'),
|
|
4
5
|
* 保证引擎通用快照/回滚(resolveFileTarget)与 applyItem 的写入路径完全一致。
|
|
5
6
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-collection.js","sourceRoot":"","sources":["../../src/adapters/file-collection.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"file-collection.js","sourceRoot":"","sources":["../../src/adapters/file-collection.ts"],"names":[],"mappings":"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"}
|
package/lib/adapters/index.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 适配器 registry(设计 §12.1 / §3.3):
|
|
3
3
|
* 组装全部 ConfigAdapter(导出顺序参考 APPLY_ORDER:settings → ui → providers → prompts
|
|
4
|
-
* → skills → agentPresets → workspaces → pluginFiles → mcp → plugins → credentialsStatus)。
|
|
4
|
+
* → skills → agentPresets → agentInstructions → workspaces → pluginFiles → mcp → plugins → credentialsStatus)。
|
|
5
5
|
*
|
|
6
|
-
* 明确不实现的 adapter(研究报告 §2.2 确认 DSH 无对应概念):keybindings / workflows / commands
|
|
7
|
-
* manifest 中不出现这些 section,产品 UI 说明「DSH
|
|
6
|
+
* 明确不实现的 adapter(研究报告 §2.2 确认 DSH 无对应概念):keybindings / workflows / commands ——
|
|
7
|
+
* manifest 中不出现这些 section,产品 UI 说明「DSH 当前无此配置」;
|
|
8
|
+
* rules 概念已由 agentInstructions(~/.dsh/AGENTS.md)承接。
|
|
8
9
|
*/
|
|
9
10
|
import type { ConfigAdapter } from '../core/types.ts';
|
|
10
11
|
import { type NamespaceProvider } from './settings.ts';
|
|
@@ -18,6 +19,8 @@ export interface AdapterRegistryOptions {
|
|
|
18
19
|
pluginFiles?: string[];
|
|
19
20
|
/** 是否包含 sessions 分区(默认关,研究报告 §4.9) */
|
|
20
21
|
includeSessions?: boolean;
|
|
22
|
+
/** 插件自身包名:导出 plugins 分区时不列自己(避免自引用;缺省 dsh-config-manager) */
|
|
23
|
+
selfPluginName?: string;
|
|
21
24
|
}
|
|
22
25
|
/** 组装默认 adapter 列表(pluginFiles/sessions 恒挂载但 defaultIncluded=false,用户勾选才导出) */
|
|
23
26
|
export declare function createAdapters(options?: AdapterRegistryOptions): ConfigAdapter[];
|
|
@@ -31,6 +34,7 @@ export { McpAdapter, extractMcpServers, buildMcpPatchLine, type McpExportEntry,
|
|
|
31
34
|
export { PromptsAdapter, extractPrompts, mergePromptIntoLine, buildPromptLine, type PromptExportEntry, type PromptsExportSection } from './prompts.ts';
|
|
32
35
|
export { SkillsAdapter } from './skills.ts';
|
|
33
36
|
export { AgentPresetsAdapter } from './agent-presets.ts';
|
|
37
|
+
export { AgentInstructionsAdapter } from './agent-instructions.ts';
|
|
34
38
|
export { WorkspacesAdapter } from './workspaces.ts';
|
|
35
39
|
export { CredentialsAdapter, defaultCredentialRefs } from './credentials.ts';
|
|
36
40
|
export { PluginFilesAdapter, DEFAULT_PLUGIN_FILE_WHITELIST } from './plugin-files.ts';
|
package/lib/adapters/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { McpAdapter } from "./mcp.js";
|
|
|
6
6
|
import { PromptsAdapter } from "./prompts.js";
|
|
7
7
|
import { SkillsAdapter } from "./skills.js";
|
|
8
8
|
import { AgentPresetsAdapter } from "./agent-presets.js";
|
|
9
|
+
import { AgentInstructionsAdapter } from "./agent-instructions.js";
|
|
9
10
|
import { WorkspacesAdapter } from "./workspaces.js";
|
|
10
11
|
import { CredentialsAdapter } from "./credentials.js";
|
|
11
12
|
import { PluginFilesAdapter } from "./plugin-files.js";
|
|
@@ -17,11 +18,12 @@ export function createAdapters(options = {}) {
|
|
|
17
18
|
new SettingsAdapter(namespaces),
|
|
18
19
|
new UiAdapter(namespaces),
|
|
19
20
|
new ProvidersAdapter(),
|
|
20
|
-
new PluginsAdapter(),
|
|
21
|
+
new PluginsAdapter(options.selfPluginName),
|
|
21
22
|
new McpAdapter(),
|
|
22
23
|
new PromptsAdapter(),
|
|
23
24
|
new SkillsAdapter(),
|
|
24
25
|
new AgentPresetsAdapter(),
|
|
26
|
+
new AgentInstructionsAdapter(),
|
|
25
27
|
new WorkspacesAdapter(),
|
|
26
28
|
new CredentialsAdapter({ namespaces, refs: options.credentialsRefs }),
|
|
27
29
|
new PluginFilesAdapter(options.pluginFiles),
|
|
@@ -38,6 +40,7 @@ export { McpAdapter, extractMcpServers, buildMcpPatchLine } from "./mcp.js";
|
|
|
38
40
|
export { PromptsAdapter, extractPrompts, mergePromptIntoLine, buildPromptLine } from "./prompts.js";
|
|
39
41
|
export { SkillsAdapter } from "./skills.js";
|
|
40
42
|
export { AgentPresetsAdapter } from "./agent-presets.js";
|
|
43
|
+
export { AgentInstructionsAdapter } from "./agent-instructions.js";
|
|
41
44
|
export { WorkspacesAdapter } from "./workspaces.js";
|
|
42
45
|
export { CredentialsAdapter, defaultCredentialRefs } from "./credentials.js";
|
|
43
46
|
export { PluginFilesAdapter, DEFAULT_PLUGIN_FILE_WHITELIST } from "./plugin-files.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAA0B,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAA+B,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAehD,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAAC,UAAkC,EAAE;IACjE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAoB;QAChC,IAAI,eAAe,CAAC,UAAU,CAAC;QAC/B,IAAI,SAAS,CAAC,UAAU,CAAC;QACzB,IAAI,gBAAgB,EAAE;QACtB,IAAI,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC;QAC1C,IAAI,UAAU,EAAE;QAChB,IAAI,cAAc,EAAE;QACpB,IAAI,aAAa,EAAE;QACnB,IAAI,mBAAmB,EAAE;QACzB,IAAI,wBAAwB,EAAE;QAC9B,IAAI,iBAAiB,EAAE;QACvB,IAAI,kBAAkB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;QACrE,IAAI,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC;KAC5C,CAAC;IACF,IAAI,OAAO,CAAC,eAAe;QAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IAClE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAKD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAwD,MAAM,gBAAgB,CAAC;AACrI,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAA8C,MAAM,UAAU,CAAC;AACxH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAqD,MAAM,cAAc,CAAC;AACvJ,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -9,6 +9,9 @@ export declare class PluginsAdapter implements ConfigAdapter<PluginsSection> {
|
|
|
9
9
|
readonly displayName = "Plugins";
|
|
10
10
|
readonly defaultIncluded = true;
|
|
11
11
|
readonly portability: "portable";
|
|
12
|
+
/** 插件自身包名:导出 plugins 分区时不列自己(避免备份里出现「当前正在生成备份的插件」的自引用条目) */
|
|
13
|
+
private readonly selfName;
|
|
14
|
+
constructor(selfName?: string);
|
|
12
15
|
export(ctx: HostContext, _options: ExportOptions): Promise<ExportSection<PluginsSection>>;
|
|
13
16
|
analyzeImport(data: PluginsSection, ctx: ImportContext): Promise<PlanItem[]>;
|
|
14
17
|
applyItem(item: PlanItem, ctx: ImportContext): Promise<ApplyResult>;
|
package/lib/adapters/plugins.js
CHANGED
|
@@ -48,12 +48,20 @@ export class PluginsAdapter {
|
|
|
48
48
|
displayName = 'Plugins';
|
|
49
49
|
defaultIncluded = true;
|
|
50
50
|
portability = 'portable';
|
|
51
|
+
/** 插件自身包名:导出 plugins 分区时不列自己(避免备份里出现「当前正在生成备份的插件」的自引用条目) */
|
|
52
|
+
selfName;
|
|
53
|
+
constructor(selfName = 'dsh-config-manager') {
|
|
54
|
+
this.selfName = selfName;
|
|
55
|
+
}
|
|
51
56
|
async export(ctx, _options) {
|
|
52
57
|
const plugins = [];
|
|
53
58
|
const warnings = [];
|
|
54
59
|
try {
|
|
55
60
|
const installed = await ctx.plugins.listInstalled();
|
|
56
61
|
for (const p of installed) {
|
|
62
|
+
// 不导出自身:本插件即正在生成该备份的插件,备份不应包含指向自己的清单条目
|
|
63
|
+
if (this.selfName !== '' && p.name === this.selfName)
|
|
64
|
+
continue;
|
|
57
65
|
plugins.push({
|
|
58
66
|
name: p.name,
|
|
59
67
|
version: p.version,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/adapters/plugins.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAQnD,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAElD,oEAAoE;AACpE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAA2B,EAAU,EAAE,CACxE,YAAY,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,sBAAsB,CAAC;AAE9F;kEACkE;AAClE,SAAS,kBAAkB,CAAC,GAAY;IACtC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,SAAS;QAC5D,MAAM,CAAC,GAAG,MAAiC,CAAC;QAC5C,IAAI,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/E,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACjD,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;IAC/C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4DAA4D;AAC5D,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvD,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,CAAC,QAAQ,CAAC;aACjB,MAAM,CAAC,CAAC,CAAC,EAAgC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;aAChF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAyB,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;QACzD,OAAO,CAAC,GAA2B,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,OAAO,cAAc;IAChB,EAAE,GAAG,SAAkB,CAAC;IACxB,WAAW,GAAG,SAAS,CAAC;IACxB,eAAe,GAAG,IAAI,CAAC;IACvB,WAAW,GAAG,UAAmB,CAAC;IAE3C,KAAK,CAAC,MAAM,CAAC,GAAgB,EAAE,QAAuB;QACpD,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACpD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,uDAAuD;oBACvD,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,KAAK;oBAC7B,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;oBAC5B,OAAO,EAAE,CAAC,CAAC,OAAO;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,8BAA8B,EAAE,EAAE,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1H,CAAC;QACD,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YAClE,KAAK,MAAM,CAAC,IAAI,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACrH,CAAC;QACD,yEAAyE;QACzE,uDAAuD;QACvD,IAAI,aAAa,GAAkB,IAAI,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,aAAa,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpH,CAAC;QACD,OAAO;YACL,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE;YACnD,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE;YAC7D,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAoB,EAAE,GAAkB;QAC1D,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACpB,MAAM,KAAK,GAAe,EAAE,CAAC;QAE7B,yEAAyE;QACzE,uDAAuD;QACvD,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE,EAAE,CAAC;YACjG,IAAI,OAAO,GAAkB,IAAI,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACnD,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;oBACvC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC7D,CAAC,CAAC,IAAI,CAAC;YACX,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,IAAI,OAAO,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,wBAAwB;oBAC5B,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;oBAC5C,OAAO,EAAE,SAAS;oBAClB,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC;oBACjF,QAAQ,EAAE,MAAM;oBAChB,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,qBAAqB,EAAE;iBAC3D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QACjE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,KAAK,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS;oBACvC,WAAW,EAAE,GAAG,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC/E,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,SAAS;oBAClE,QAAQ,EAAE,MAAM;iBACjB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YACnI,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS;oBACxC,WAAW,EAAE,GAAG,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBACxD,MAAM,EAAE,GAAG,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBACxF,QAAQ,EAAE,SAAS;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,gFAAgF;QAChF,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAC/E,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,kBAAkB,CAAC,EAAE,CAAC,GAAG,CAAC;gBAAE,SAAS;YACzC,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,KAAK,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;oBACtC,WAAW,EAAE,GAAG,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM;oBACpF,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE;iBAC/C,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3I,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS;oBACxC,WAAW,EAAE,GAAG,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS;oBACrF,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE;iBAC/C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAc,EAAE,GAAkB;QAChD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACpB,6EAA6E;QAC7E,8CAA8C;QAC9C,IAAI,IAAI,CAAC,EAAE,KAAK,wBAAwB,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAA+B,CAAC;YACvE,MAAM,IAAI,GAAG,IAAI,EAAE,aAAa,CAAC;YACjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBACvD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1D,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC7E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChE,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,GAAG,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;iBACvD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,iCAAiC;QACjC,sDAAsD;QACtD,yBAAyB;QACzB,qDAAqD;QACrD,qDAAqD;QACrD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC;gBACH,oEAAoE;gBACpE,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAA+B,CAAC;gBACvE,MAAM,IAAI,GAAG,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC;gBAC9D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,YAAY,EAAE,IAAI;oBAClB,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ;wBAC7B,CAAC,CAAC,GAAG,CAAC,+BAA+B,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wBACxD,CAAC,CAAC,GAAG,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iBACrD,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChE,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,OAAO,EAAE,IAAI;oBACb,iDAAiD;oBACjD,4CAA4C;oBAC5C,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,4BAA4B,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,6BAA6B,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC;iBACvO,CAAC;YACJ,CAAC;QACH,CAAC;QACD,gEAAgE;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;QAC7B,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAA+B,CAAC;QACvE,MAAM,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAC7E,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;YACpD,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;SACnF,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IACzF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAoB,EAAE,MAAe,KAAK;QACvD,MAAM,MAAM,GAA+B,EAAE,CAAC;QAC9C,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACvI,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACjI,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,wBAAwB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACtH,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,wBAAwB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAClH,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC9G,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACnI,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACtF,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/adapters/plugins.ts"],"names":[],"mappings":"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"}
|
|
@@ -209,7 +209,7 @@ export function makeManifest(platform = 'win32') {
|
|
|
209
209
|
exportedAt: new Date('2026-08-14T12:00:00.000Z').toISOString(),
|
|
210
210
|
sections: {
|
|
211
211
|
settings: false, ui: false, providers: false, plugins: false, mcp: false, prompts: false,
|
|
212
|
-
skills: false, agentPresets: false, workspaces: false, pluginFiles: false,
|
|
212
|
+
skills: false, agentPresets: false, agentInstructions: false, workspaces: false, pluginFiles: false,
|
|
213
213
|
credentialsStatus: false, secrets: false, sessions: false,
|
|
214
214
|
},
|
|
215
215
|
security: { containsSecrets: false, encrypted: false, encryption: null },
|