@michengai/dsh-skills-manager 0.1.49 → 0.1.52

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/CHANGELOG.md CHANGED
@@ -4,6 +4,19 @@
4
4
 
5
5
  The five most recent published versions are listed below.
6
6
 
7
+ ## 0.1.52 - 2026-09-16
8
+
9
+ - Add support for DeepSeek Harness `0.1.6-alpha.1` while retaining support for the five previously supported versions; skill discovery, enable/disable policies, and management workflows remain unchanged.
10
+ - Canonicalize isolated-host sandbox paths so Windows 8.3 temp directories still match project skill roots in CI.
11
+
12
+ ## 0.1.51 - 2026-09-16
13
+
14
+ - Add support for DeepSeek Harness `0.1.6-alpha.1` while retaining support for the five previously supported versions; skill discovery, enable/disable policies, and management workflows remain unchanged.
15
+
16
+ ## 0.1.50 - 2026-09-12
17
+
18
+ - Fix project skills being skipped in non-Git workspaces. When no `.git` ancestor exists, use the current session cwd as the project root so skills can be viewed and toggled without running `git init`.
19
+
7
20
  ## 0.1.49 - 2026-09-12
8
21
 
9
22
  - Add Copilot support for global `~/.copilot/skills` and project `.github/skills`, and expand project sources for common agents. The project tab follows only the current session; direct project-management API calls must include its ID in `x-dsh-skills-session`.
@@ -14,20 +27,3 @@ The five most recent published versions are listed below.
14
27
  ## 0.1.48 - 2026-09-11
15
28
 
16
29
  - Add support for DeepSeek Harness `0.1.5-rc.2` while retaining support for the four previously supported versions; skill discovery, enable/disable policies, and management workflows remain unchanged.
17
-
18
- ## 0.1.47 - 2026-09-10
19
-
20
- - Centralize supported Host versions and validate package metadata, required peers, and README consistency; retain the exact four tested RC versions and development dependencies.
21
- - Harden real-Host regression tooling with complete argument parsing, single-version browser serving, tool discovery, process shutdown, sandbox cleanup, and retained evidence; add a manually triggered four-version Windows CI matrix.
22
- - Align CI peer installation settings with the lockfile and correct README Node.js badges and requirements; plugin runtime behavior is unchanged.
23
-
24
- ## 0.1.46 - 2026-09-10
25
-
26
- - Upgrade official development dependencies to `0.1.5-rc.1` and explicitly support Host versions `0.1.0-rc.8`, `0.1.1-rc.2`, `0.1.2-rc.1`, and `0.1.5-rc.1`; remove the retired `dsh-client-runtime` peer and client loading metadata to avoid pulling in the legacy runtime.
27
- - Add real-Host compatibility tests across all four versions for Agent-scoped skill reads, enable/disable policy refresh, and source-file preservation; retain existing skill management and source policies.
28
-
29
- ## 0.1.45 - 2026-09-09
30
-
31
- - Stop scanning resources inside ordinary skill bundles and skip `node_modules`, while retaining nested discovery beside a root skill. Hide overlapping project Agent roots so they cannot bypass user disable policies.
32
- - Read-only user and project Agent sources now discover nested skills and follow external directory symlinks and Windows junctions by default, including linked roots. Discovery has cycle, depth, and entry limits.
33
- - Keep list, detail, provider, and local enable/disable policies consistent across differently named aliases. Writable DSH roots and import/delete safeguards remain unchanged.
@@ -4,6 +4,19 @@
4
4
 
5
5
  以下记录最近发布的五个版本。
6
6
 
7
+ ## 0.1.52 - 2026-09-16
8
+
9
+ - 新增 DeepSeek Harness `0.1.6-alpha.1` 兼容支持,保留此前五个版本的支持;技能发现、启停及管理方式保持不变。
10
+ - 规范化隔离宿主沙箱路径,避免 Windows 8.3 临时目录导致 CI 项目技能路径比对失败。
11
+
12
+ ## 0.1.51 - 2026-09-16
13
+
14
+ - 新增 DeepSeek Harness `0.1.6-alpha.1` 兼容支持,保留此前五个版本的支持;技能发现、启停及管理方式保持不变。
15
+
16
+ ## 0.1.50 - 2026-09-12
17
+
18
+ - 修复非 Git 工作区的项目技能被跳过的问题。找不到 `.git` 祖先时,使用当前会话 cwd 作为项目根,无需执行 `git init` 即可查看和启停项目技能。
19
+
7
20
  ## 0.1.49 - 2026-09-12
8
21
 
9
22
  - 新增 Copilot 全局 `~/.copilot/skills` 和项目 `.github/skills` 支持,扩展常见 Agent 的项目来源。项目页仅跟随当前会话;直接调用项目管理接口时需携带 `x-dsh-skills-session` 会话 ID。
@@ -14,20 +27,3 @@
14
27
  ## 0.1.48 - 2026-09-11
15
28
 
16
29
  - 新增 DeepSeek Harness `0.1.5-rc.2` 兼容支持,保留此前四个版本的支持;技能发现、启停及管理方式保持不变。
17
-
18
- ## 0.1.47 - 2026-09-10
19
-
20
- - 集中宿主版本清单,同步并校验发布元数据、必需 peer 和 README;保持四个已验证 RC 的精确兼容范围与开发依赖不变。
21
- - 加强真实宿主回归:完善参数解析、单版本浏览器服务模式、工具发现、进程退出、沙箱清理和证据保存;增加可手动触发的 Windows 四版本 CI 矩阵。
22
- - 对齐 CI 与锁文件的 peer 安装配置,修正 README 的 Node.js 徽章与要求说明;插件运行逻辑保持不变。
23
-
24
- ## 0.1.46 - 2026-09-10
25
-
26
- - 官方开发依赖升级至 `0.1.5-rc.1`,peer 精确兼容 `0.1.0-rc.8`、`0.1.1-rc.2`、`0.1.2-rc.1`、`0.1.5-rc.1`;移除已退役的 `dsh-client-runtime` peer 与客户端加载声明,避免引入旧运行时。
27
- - 新增四版本真实宿主兼容测试,覆盖 Agent 作用域技能读取、启停权限刷新与源文件保护;技能管理与来源策略保持原有行为。
28
-
29
- ## 0.1.45 - 2026-09-09
30
-
31
- - 修复 bundle 内部资源耗尽扫描预算的问题:普通 bundle 作为叶子并跳过 `node_modules`,根技能仍允许嵌套发现。重叠的项目 Agent 来源现在隐藏,防止绕过用户停用策略。
32
- - 用户级只读来源和项目 Agent 来源默认递归发现技能,支持外部目录软链接、Windows junction 和技能根链接;扫描具备循环、深度和数量限制。
33
- - 列表、详情、Provider 与本地启停策略统一处理不同名称的分发入口;可写 DSH 和导入、删除防护保持不变。
package/README.md CHANGED
@@ -21,195 +21,117 @@
21
21
 
22
22
  ## Features
23
23
 
24
- Bring skills from your computer and projects into one DSH management page. Find skills, read their contents, control availability, and create or import your own.
24
+ Bring skills from your computer and projects into DSH without switching between Agent folders.
25
25
 
26
- - **Reuse existing skills**: discover user skills from `.agents`, CC Switch, Codex, Claude, Gemini, OpenCode, Cursor, Copilot, Windsurf, Trae, OpenClaw, Roo, and CodeBuddy.
27
- - **Organize by project**: use the Global / Project tabs to browse DSH, `.agents`, `.github` (Copilot), and other Agent directories in active projects, then filter by source or status.
28
- - **Toggle availability**: enabling or disabling a skill changes its availability in DSH without editing source files.
29
- - **Read before using**: inspect the body, source information, format diagnostics, and duplicate-name notices.
30
- - **Add your own skills**: create user or project skills in Settings, or import ZIP archives, skill folders, and `SKILL.md` files.
31
- - **Recover deleted skills**: the dedicated Trash tab sits alongside Global / Project, shows the pending count, and lets you restore skills or confirm permanent deletion.
26
+ - **Manage in one place**: browse collapsible source groups, search, read, and toggle skills.
27
+ - **Global and project skills**: the project tab follows the current session, with project copies taking priority over global copies.
28
+ - **Reuse existing skills**: supports Codex, Claude Code, Copilot, and other agents without modifying their source files when toggled.
29
+ - **Create and import**: create a skill or import ZIP archives, folders, and `SKILL.md` files into global DSH.
30
+ - **Recover deleted skills**: DSH skills go to Trash first, so accidental deletions can be restored.
32
31
 
33
32
  ## Screenshots
34
33
 
35
- Switch between Global skills, Project skills, and Trash in **Settings → Skills**. External Agent source files remain read-only:
34
+ Skill management:
36
35
 
37
- ![Skills manager with a dedicated Trash tab](assets/screenshots/skills-manager-v2-preview.png)
36
+ ![Full skill management view](assets/screenshots/skills-manager-v2-preview.png)
38
37
 
39
- Open any skill to inspect its source path, diagnostics, Markdown body, and parsed frontmatter:
38
+ Read a skill:
40
39
 
41
- ![Skill details and diagnostics](assets/screenshots/skill-detail.png)
40
+ ![Skill details](assets/screenshots/skill-detail.png)
42
41
 
43
- Moving a DSH-local skill to Trash requires confirmation and remains recoverable until it is permanently deleted:
42
+ Confirm before moving to Trash:
44
43
 
45
- ![Move a skill to Trash confirmation](assets/screenshots/delete-plugin.png)
44
+ ![Move to Trash confirmation](assets/screenshots/delete-plugin.png)
46
45
 
47
- ## DSH product ecosystem
48
-
49
- For a ready-to-use workbench, download [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases). If you already use [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness), install any of these eight plugins individually. The desktop app includes all eight.
50
-
51
- | Plugin | What you can do |
52
- | --- | --- |
53
- | [Codex UI](https://github.com/MichengAI/dsh-codex-ui) | Organize projects and conversations, search tasks, and navigate chat turns |
54
- | [IM Connect](https://github.com/MichengAI/dsh-im-connect) | Send tasks and receive replies through your usual messenger |
55
- | [Automation](https://github.com/MichengAI/dsh-automation) | Schedule tasks and review each run |
56
- | [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) | Find, enable, create, and import local skills |
57
- | [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) | Search, restore, or clean up archived conversations |
58
- | [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) | Choose and summon specialists for your task |
59
- | [BTW](https://github.com/MichengAI/dsh-btw) | Ask side questions without interrupting the main task |
60
- | [Simplify](https://github.com/MichengAI/dsh-simplify) | Use /simplify to improve code within your Git changes |
61
-
62
- ## Prerequisites
63
-
64
- - A working DeepSeek Harness Web installation with `dsh` available in PowerShell.
65
- - Examples use the `web` profile; replace it with the target profile.
66
- - Plugin `0.1.49` is tested with DeepSeek Harness `0.1.0-rc.8`, `0.1.1-rc.2`, `0.1.2-rc.1`, `0.1.5-rc.1`, `0.1.5-rc.2`. Development dependencies remain pinned to `0.1.5-rc.2`; other Host versions are not implicitly supported.
67
- - Source installation and development require Node.js `^22.19.0 || >=24.0.0`. npm installation does not require running `npm install` in an arbitrary directory.
46
+ *These full screenshots show an earlier version. The current version adds Global, Project, and Trash tabs.*
68
47
 
69
48
  ## Installation
70
49
 
71
- The installation commands below use the official npm registry.
50
+ Requires a working DeepSeek Harness installation. The commands below use the `web` profile; replace it with yours if needed.
72
51
 
73
- ### Ask an agent to install it (recommended)
52
+ ### Ask an agent to install it
74
53
 
75
- Send the prompt below to any agent that can run terminal commands on your computer. Replace `web` with your actual profile. Once installed, use the plugin in DSH.
54
+ Send this to an agent that can use your local terminal:
76
55
 
77
56
  ```text
78
- Install the DSH plugin @michengai/dsh-skills-manager into my local web profile by running: dsh plugin --profile web add @michengai/dsh-skills-manager@latest --registry=https://registry.npmjs.org/. Then run dsh --profile web --dump-config, confirm the configuration includes skills-manager, and explain how to reload DSH and start using the plugin.
57
+ Install the latest @michengai/dsh-skills-manager into my DSH web profile using the official npm registry. Confirm installation and explain how to reload DSH.
79
58
  ```
80
59
 
81
- ### Install the latest package from the official npm registry
82
-
83
- Run this from any PowerShell directory:
60
+ ### Install manually
84
61
 
85
62
  ```powershell
86
63
  [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
87
64
  $OutputEncoding = [System.Text.Encoding]::UTF8
88
65
  dsh plugin --profile web add @michengai/dsh-skills-manager@latest --registry=https://registry.npmjs.org/
89
- dsh --profile web --dump-config
90
66
  ```
91
67
 
92
- To pin a release, replace `@latest` with a version such as `@0.1.25`.
93
-
94
- The configuration output should contain `skills-manager`. Restart DSH Web and hard-refresh the browser. Do not copy client files manually: `dsh plugin add` also applies `cordis.patch.yml`.
95
-
96
- ## Updates
68
+ Restart DSH, refresh the page, and open **Settings Skills**. To update, select **Check for updates** or run the installation command again.
97
69
 
98
- The settings title shows the installed version and a **Check for updates** button. When a newer release is available, **Update automatically** runs only when the DSH CLI or Desktop update service is available; otherwise, the dialog provides a profile-specific manual command to copy and run.
70
+ - Plugin `0.1.52` is tested with DeepSeek Harness `0.1.0-rc.8`, `0.1.1-rc.2`, `0.1.2-rc.1`, `0.1.5-rc.1`, `0.1.5-rc.2`, `0.1.6-alpha.1`.
99
71
 
100
72
  ## Usage
101
73
 
102
- Open **Settings Skills**, then use the panel as follows:
103
-
104
- | Goal | Action | Scope |
105
- | --- | --- | --- |
106
- | Search or filter | Choose the global or project scope first, then narrow by source, invocation status, name, or description. | Current scope |
107
- | Inspect details | Review body, frontmatter, path, format diagnostics, and duplicate shadowing. | All sources |
108
- | Enable or disable | Update manager-local invocation policy without modifying the source Skill file. | All valid Skills in user and active-project sources |
109
- | Create or import | Both Settings creation and import always save to global DSH. | `$DSH_HOME/skills` |
110
- | Create from conversation | Let an Agent call `create_skill`; DSH asks for approval before writing. | `$DSH_HOME/skills` |
111
- | Delete and recover | Move to Trash, restore to the original source, or permanently delete in a second step. | User and active-project DSH skills |
112
-
113
- > Toggling never changes a source Skill file; only user or project DSH skills can move to Trash.
114
-
115
- Escape closes only the frontmost upload or confirmation dialog and leaves Settings open.
116
-
117
- ## Permissions and safety limits
118
-
119
- | Directory | View/load | Enable or disable | Create/import | Delete |
120
- | --- | --- | --- | --- | --- |
121
- | `$DSH_HOME\skills` | Yes | Manager state only | Yes | Moves to Trash |
122
- | `$DSH_AGENTS_HOME\skills` | Yes | Manager state only | No | No |
123
- | `~\.cc-switch\skills` | Yes, enabled by default | Manager state only | No | No |
124
- | `%USERPROFILE%\.cursor\skills` (or `$DSH_CURSOR_HOME\skills`) | Yes | Manager state only | No | No |
125
- | `~/.codex/skills`, `~/.claude/skills`, `~/.gemini/skills`, `~/.config/opencode/skills`, `~/.copilot/skills`, `~/.codeium/windsurf/skills`, `~/.windsurf/skills`, `~/.trae/skills`, `~/.trae-cn/skills`, `~/.openclaw/skills`, `~/.clawdbot/skills`, `~/.roo/skills`, `~/.codebuddy/skills` | Yes | Manager state only | No | No |
126
- | `<project>/.dsh/skills` | Yes, for active Session workspaces | Manager state only | No project creation in Settings | Moves to Trash and restores to the original project |
127
- | `<project>/.agents/skills`, `<project>/.github/skills`, `<project>/.codex/skills`, `<project>/.claude/skills`, `<project>/.gemini/skills`, `<project>/.opencode/skills`, `<project>/.cursor/skills`, `<project>/.windsurf/skills`, `<project>/.trae/skills`, `<project>/.trae-cn/skills`, `<project>/skills`, `<project>/.roo/skills`, `<project>/.codebuddy/skills` | Yes, for active Session workspaces | Manager state only | No | No |
128
-
129
- - Enable, disable, and delete accept only one ordinary skill-name path segment.
130
- - `<project>/skills` is labeled “Project Skills”: it supports OpenClaw workspace skills without assuming Agent ownership. Existing toggle policies remain compatible.
131
- - The project tab follows the current session without a project selector. Requests carry its ID in `x-dsh-skills-session`; the server derives project roots only from that session’s `cwd`. Missing or unknown sessions never fall back to other sessions, and clients cannot nominate an arbitrary workspace path.
132
- - Enable/disable applies only to the selected source copy. The highest-priority copy not disabled in the manager is used: disabling a project copy falls back to another enabled project copy or a global copy. Disabling a global copy does not disable project copies. Only when all copies are disabled does the manager block the skill. Disabled rows identify the global or project source currently taking over; frontmatter invocation restrictions remain enforced.
133
- - Project sources follow DSH's nearest-`.git` root convention and rank order (`project-dsh` 100, `project-agents` 200, then other project sources 210–320, then user DSH 400, shared Agents 450, and other user sources 500–640). The manager re-scans for each state/detail request. Explicit project policy is enforced by workspace-scoped rank overlays; user DSH policy uses rank 399. With no override, DSH's official provider remains the owner. Toggle writes are limited to manager state; project file writes occur only for explicit create/Trash/restore actions under `.dsh/skills`.
134
- - Trash falls back to copy-then-hide when a project and `$DSH_HOME` are on different volumes; restore uses the same guarded cross-volume path in reverse.
135
- - Project Trash entries retain their original opaque source identity. Restore is allowed only when the original project matches the current session’s project; the client cannot nominate a replacement path.
136
- - Project writes reject linked `.dsh` or `.dsh/skills` directories so a repository cannot redirect creation, deletion, or restore outside its own project root.
137
- - User-level read-only and project Agent sources recursively discover `SKILL.md` by default. Skill directories, roots, and parent directories may link to external locations through symlinks or Windows junctions without an opt-in or allowlist. Real-path deduplication and manager-local toggles preserve read-only sources. Skill-file symlinks are ignored, cycles terminate, and scans have depth and size limits. Writable DSH roots, imports, and deletion retain their existing boundaries.
138
- - Directories containing `SKILL.md` are bundle leaves; their resources and `node_modules` are not traversed. A root-level `SKILL.md` can still coexist with nested skills. Project Agent roots that overlap user skill roots by real path are hidden to preserve user disable policies.
139
- - Rows and summaries say **Enabled/Disabled**, not **Loaded**: these labels describe invocation policy, while full Skill bodies are loaded on demand by DSH. Use Refresh after IDE, Git, or shell changes; the official provider remains responsible for project catalog watching and invalidation.
140
- - Missing read-only project sources stay out of the list; empty project DSH roots remain visible, while Settings creation and import always target global DSH. Project DSH supports per-Skill toggles only, not a source-wide switch.
141
- - Replacements copy to a temporary sibling path first and keep the original until that succeeds.
142
- - Every endpoint, including GET `/state`, accepts only a loopback `Host` or a canonical `host[:port]` that the DSH Web runtime already trusts through its LAN bind and `--trusted-host`; unknown hosts still receive 403.
143
- - Browser requests must also carry a same-origin `Origin` when present and must not be marked cross-site; write endpoints continue to require JSON and the DSH client request marker.
144
- - Import accepts the local path selected by the user. The Host trust fence prevents DNS rebinding but is not authentication; reverse-proxy and LAN deployments still need authentication, a VPN, or network access controls.
145
-
146
- ## Secondary development
147
-
148
- ### Install from source
149
-
150
- Use this for debugging or unpublished changes. The cloned directory becomes the plugin source path:
74
+ | What you want to do | How |
75
+ | --- | --- |
76
+ | Find a skill | Choose Global or Project, expand a source group, or use search and filters. |
77
+ | Read its contents | Select **View details** for the skill body and source information. |
78
+ | Enable or disable | Toggle the skill switch. This affects DSH without editing source files. |
79
+ | Add a skill | Select **Create skill** or **Import into global DSH**. |
80
+ | Recover a deletion | Open **Trash** and restore. For project skills, return to a session in the original project first. |
151
81
 
152
- ```powershell
153
- [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
154
- $OutputEncoding = [System.Text.Encoding]::UTF8
155
- Set-Location D:\Repository\deepseek-harness-plugin
156
- git clone https://github.com/MichengAI/dsh-skills-manager.git
157
- Set-Location .\dsh-skills-manager
158
- npm install
159
- npm test
160
- dsh plugin --profile web add .
161
- dsh --profile web --dump-config
162
- ```
82
+ - **Current project only**: Git repositories use the nearest Git root. Other folders use the current session working directory; no `git init` required.
83
+ - **Independent copies**: disabling a project copy allows another enabled copy to take over, and the panel identifies the active source. Disable all copies to turn the skill off completely.
84
+ - **File management**: only DSH skills can move to Trash. Other Agent skills can be viewed and toggled. Creation and import always save to global DSH.
163
85
 
164
- Restart DSH Web and hard-refresh the browser. `dsh plugin ... add .` reads the package metadata and `cordis.patch.yml`; do not install by copying `lib` directly.
86
+ ## Supported Agent directories
165
87
 
166
- Runtime source is maintained under `src`; `lib` is generated by `npm run build` and published with the npm package. Change `src`, never `lib` directly.
88
+ `~` means your home directory; `<project>` is the current session project root. These are default paths; configured DSH directory variables take precedence.
167
89
 
168
- - [src\core.js](src/core.js): file-operation, permission, and import boundary core.
169
- - [src\index.js](src/index.js): host service and local skill file operations.
170
- - [src\client.js](src/client.js): Settings page, upload, and confirmation interactions.
171
- - [scripts\build.mjs](scripts/build.mjs): produces Host and browser `lib` artifacts.
172
- - `test\core-test.mjs`: file-operation, permission, and import boundary tests.
173
- - `test\locale-test.mjs`: UI locale tests.
90
+ | Source | Global directory | Project directory |
91
+ | --- | --- | --- |
92
+ | DSH | `~/.dsh/skills` | `<project>/.dsh/skills` |
93
+ | Shared Agent | `~/.agents/skills` | `<project>/.agents/skills` |
94
+ | CC Switch | `~/.cc-switch/skills` | |
95
+ | Codex | `~/.codex/skills` | `<project>/.codex/skills` |
96
+ | Claude Code | `~/.claude/skills` | `<project>/.claude/skills` |
97
+ | Gemini | `~/.gemini/skills` | `<project>/.gemini/skills` |
98
+ | OpenCode | `~/.config/opencode/skills` | `<project>/.opencode/skills` |
99
+ | Cursor | `~/.cursor/skills` | `<project>/.cursor/skills` |
100
+ | Copilot | `~/.copilot/skills` | `<project>/.github/skills` |
101
+ | Windsurf | `~/.codeium/windsurf/skills`<br>`~/.windsurf/skills` | `<project>/.windsurf/skills` |
102
+ | Trae | `~/.trae/skills` | `<project>/.trae/skills` |
103
+ | Trae CN | `~/.trae-cn/skills` | `<project>/.trae-cn/skills` |
104
+ | OpenClaw / Clawdbot | `~/.openclaw/skills`<br>`~/.clawdbot/skills` | — |
105
+ | Roo | `~/.roo/skills` | `<project>/.roo/skills` |
106
+ | CodeBuddy | `~/.codebuddy/skills` | `<project>/.codebuddy/skills` |
107
+ | Project Skills | — | `<project>/skills` |
108
+
109
+ The generic `<project>/skills` directory is labeled **Project Skills** and also supports OpenClaw workspace skills. Missing external source directories are not shown.
174
110
 
175
- After changing the runtime source, test, inspect package contents, and install from the local directory:
111
+ ## DSH product ecosystem
176
112
 
177
- ```powershell
178
- [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
179
- $OutputEncoding = [System.Text.Encoding]::UTF8
180
- npm test
181
- npm run verify
182
- dsh plugin --profile web add .
183
- ```
113
+ For a desktop workbench, download [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases). Existing [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) installations can add plugins as needed by following each project's README. Below are 11 first-party plugins; consult the corresponding desktop release notes and bundled catalog for what that version includes.
184
114
 
185
- Preserve path validation, temporary-copy replacement, and shared-skill read-only behavior when changing file-mutation code.
115
+ | Plugin | What you can do |
116
+ | --- | --- |
117
+ | [Codex UI](https://github.com/MichengAI/dsh-codex-ui) | Organize projects and conversations, search tasks, and navigate chat turns |
118
+ | [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) | Choose and summon specialists for your task |
119
+ | [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) | Find, enable, create, and import local skills |
120
+ | [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) | Search, restore, or clean up archived conversations |
121
+ | [IM Connect](https://github.com/MichengAI/dsh-im-connect) | Send tasks and receive replies through messaging platforms |
122
+ | [Automation](https://github.com/MichengAI/dsh-automation) | Schedule tasks and review each run |
123
+ | [BTW](https://github.com/MichengAI/dsh-btw) | Ask side questions without interrupting the main task |
124
+ | [Simplify](https://github.com/MichengAI/dsh-simplify) | Use `/simplify` to improve code within your Git changes |
125
+ | [PUA](https://github.com/MichengAI/dsh-pua) | Guide the Agent to try new approaches after failures, investigate causes, and verify results before completion |
126
+ | [Code Review](https://github.com/MichengAI/dsh-code-review) | Use `/review` to request an independent Agent code review and receive the report in the current conversation |
127
+ | [Codex Pet](https://github.com/MichengAI/dsh-codex-pet) | View conversation notifications and respond to tool approvals and questions through a desktop pet |
186
128
 
187
- ## Validation
129
+ ## Feedback and contributions
188
130
 
189
- ```powershell
190
- [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
191
- $OutputEncoding = [System.Text.Encoding]::UTF8
192
- npm test
193
- npm run verify
194
- ```
131
+ [Open an issue](https://github.com/MichengAI/dsh-skills-manager/issues) for bugs or suggestions. Include your DSH and plugin versions, reproduction steps, and a full screenshot for UI issues.
195
132
 
196
- `prepublishOnly` runs the complete `verify` gate before publishing: build, tests, package inspection, and generated-artifact synchronization.
133
+ Source code lives in `src`. Contributions are welcome.
197
134
 
198
135
  ## License
199
136
 
200
- Licensed under [Apache License 2.0](LICENSE).
201
-
202
- ## Host compatibility regression
203
-
204
- `scripts/hosts.mjs` defines supported hosts; contract tests check package peer and development dependencies against it. Tests cover matching official component versions, not mixed versions or unlisted alpha/RC releases.
205
-
206
- ```powershell
207
- [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
208
- $OutputEncoding = [System.Text.Encoding]::UTF8
209
- pnpm run test:compat
210
- pnpm run test:compat 0.1.5-rc.2 --keep
211
- ```
212
-
213
- Without arguments, all hosts run sequentially. `--keep` retains the sandbox; `--serve` keeps the Host available for manual browser checks. Successful runs clean up by default; failures retain diagnostics. Compact evidence always goes to `.compat-results/`. npm and the project's pnpm must be available on PATH. The manual GitHub Actions compatibility workflow runs a Windows matrix and uploads evidence. It covers real Host APIs and Agent skill policies, not complete UI or external-model end-to-end testing.
214
-
215
- To change supported hosts, edit `scripts/hosts.mjs`, run `node scripts/sync-hosts.mjs --write`, update the lockfile, and run the compatibility matrix. `verify` rejects metadata and README drift.
137
+ [Apache License 2.0](LICENSE)
package/README.zh-CN.md CHANGED
@@ -21,195 +21,117 @@
21
21
 
22
22
  ## 功能概览
23
23
 
24
- 把散落在本机和项目中的 Agent 技能集中到 DSH 管理。在同一个页面里查找技能、查看内容、控制启停,也能创建或导入自己的技能。
24
+ 把散落在本机和项目中的技能集中到 DSH,无需在多个 Agent 目录间来回查找。
25
25
 
26
- - **复用已有技能**:发现 `.agents`、CC Switch、Codex、Claude、Gemini、OpenCode、Cursor、Copilot、Windsurf、Trae、OpenClaw、Roo 和 CodeBuddy 的用户级技能。
27
- - **按项目整理**:用「全局技能 / 项目技能」页签查看活动项目中的 DSH、`.agents`、`.github`(Copilot)及其他 Agent 目录,并按来源、状态搜索。
28
- - **切换启停**:只改变 DSH 中的调用策略,不改动来源技能文件。
29
- - **查看技能内容**:阅读正文、来源信息、格式诊断和重名提示。
30
- - **添加自己的技能**:在设置页创建用户级或项目级技能,或导入 ZIP、技能文件夹及 `SKILL.md`。
31
- - **找回误删的技能**:回收站与全局/项目技能同级显示为独立 Tab,带待处理数量,可直接恢复或确认永久删除。
26
+ - **统一管理**:按来源分组,搜索技能、查看正文,一键启用或停用。
27
+ - **区分全局与项目**:项目页跟随当前会话,同名技能优先使用项目副本。
28
+ - **复用已有技能**:支持 Codex、Claude Code、Copilot 等常见 Agent,启停不会修改它们的源文件。
29
+ - **创建与导入**:新建技能,或导入 ZIP、技能文件夹和 `SKILL.md`,统一保存到全局 DSH。
30
+ - **回收与恢复**:删除 DSH 技能后先进入回收站,误删可找回。
32
31
 
33
32
  ## 界面预览
34
33
 
35
- 在「设置 → 技能」中切换全局技能、项目技能和回收站;启停不会改动来源技能文件:
34
+ 技能管理:
36
35
 
37
- ![技能管理与独立回收站 Tab](assets/screenshots/skills-manager-v2-preview.png)
36
+ ![技能管理完整界面](assets/screenshots/skills-manager-v2-preview.png)
38
37
 
39
- 打开任意技能可查看来源路径、诊断结果、Markdown 正文与解析后的 frontmatter:
38
+ 查看技能内容:
40
39
 
41
- ![技能正文与诊断详情](assets/screenshots/skill-detail.png)
40
+ ![技能详情](assets/screenshots/skill-detail.png)
42
41
 
43
- DSH 本地技能移入回收站前需要确认;永久删除前仍可恢复:
42
+ 移入回收站前确认:
44
43
 
45
44
  ![移到回收站确认框](assets/screenshots/delete-plugin.png)
46
45
 
47
- ## DSH 产品生态
48
-
49
- 想直接使用完整工作台,可下载 [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases);已有 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 环境,可按需独立安装以下 8 个自研插件。桌面端已随附这些插件。
50
-
51
- | 插件 | 你可以用它做什么 |
52
- | --- | --- |
53
- | [Codex UI](https://github.com/MichengAI/dsh-codex-ui) | 整理项目与会话、搜索任务、跳转对话轮次 |
54
- | [IM Connect](https://github.com/MichengAI/dsh-im-connect) | 从微信、飞书、钉钉等消息平台下任务、收回复 |
55
- | [Automation](https://github.com/MichengAI/dsh-automation) | 按计划执行任务,查看每次运行的结果 |
56
- | [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) | 统一查找、启停、创建和导入本机技能 |
57
- | [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) | 搜索、恢复或清理已归档会话 |
58
- | [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) | 按任务选择并召唤专业角色 |
59
- | [BTW](https://github.com/MichengAI/dsh-btw) | 在当前上下文中临时旁问,不打断主任务 |
60
- | [Simplify](https://github.com/MichengAI/dsh-simplify) | 用 /simplify 整理 Git 改动范围内的代码 |
61
-
62
- ## 前置条件
63
-
64
- - 已可正常运行 DeepSeek Harness Web,且可在 PowerShell 中使用 `dsh`。
65
- - 以下示例使用 `web` profile;请替换为实际目标 profile。
66
- - `0.1.49` 已验证兼容 DeepSeek Harness `0.1.0-rc.8`、`0.1.1-rc.2`、`0.1.2-rc.1`、`0.1.5-rc.1`、`0.1.5-rc.2`;开发依赖固定使用 `0.1.5-rc.2`,不自动声明支持其他版本。
67
- - 从源码安装或二次开发需要 Node.js `^22.19.0 || >=24.0.0`;仅从 npm 安装无需在任意目录执行 `npm install`。
46
+ *以上为历史版本的完整界面截图,当前版本增加了全局、项目和回收站页签。*
68
47
 
69
48
  ## 安装
70
49
 
71
- 以下安装命令使用官方 npm 源。
50
+ 需要已安装并能正常运行 DeepSeek Harness。以下命令使用 `web` profile,请按实际环境替换。
72
51
 
73
- ### 让 Agent 帮你安装(推荐)
52
+ ### 让 Agent 帮你安装
74
53
 
75
- 把下面这段话发给任意能够执行本机终端命令的 Agent。将 `web` 替换为实际使用的 profile;安装完成后,在 DSH 中使用本插件。
54
+ 把这段话发给能够操作本机终端的 Agent
76
55
 
77
56
  ```text
78
- 请将 DSH 插件 @michengai/dsh-skills-manager 安装到本机 web profile,执行:dsh plugin --profile web add @michengai/dsh-skills-manager@latest --registry=https://registry.npmjs.org/。安装后执行 dsh --profile web --dump-config,确认配置包含 skills-manager,并告诉我如何重新加载 DSH 和开始使用。
57
+ 请把 @michengai/dsh-skills-manager 最新版安装到我的 DSH web profile,使用官方 npm 源,安装后确认生效并告诉我如何重新加载。
79
58
  ```
80
59
 
81
- ### 从官方 npm 安装最新版
82
-
83
- 在任意 PowerShell 目录执行:
60
+ ### 手动安装
84
61
 
85
62
  ```powershell
86
63
  [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
87
64
  $OutputEncoding = [System.Text.Encoding]::UTF8
88
65
  dsh plugin --profile web add @michengai/dsh-skills-manager@latest --registry=https://registry.npmjs.org/
89
- dsh --profile web --dump-config
90
66
  ```
91
67
 
92
- 需要钉死某一版时,把 `@latest` 换成具体版本,例如 `@0.1.25`。
93
-
94
- 配置输出中应包含 `skills-manager`。安装后重启 DSH Web 并在浏览器硬刷新。不要手工复制客户端文件,`dsh plugin add` 会同时应用 `cordis.patch.yml`。
95
-
96
- ## 在线更新
68
+ 安装后重启 DSH 并刷新页面,打开「设置 → 技能」即可使用。更新时可点击「检查更新」,或重新执行安装命令。
97
69
 
98
- 设置标题会显示当前版本和“检查更新”按钮。发现新版后,只有检测到 DSH CLI Desktop 更新服务时才可使用“自动更新”;其他环境会在弹窗中提供可复制、与当前 Profile 对应的手工更新命令。
70
+ - `0.1.52` 已验证兼容 DeepSeek Harness `0.1.0-rc.8`、`0.1.1-rc.2`、`0.1.2-rc.1`、`0.1.5-rc.1`、`0.1.5-rc.2`、`0.1.6-alpha.1`。
99
71
 
100
- ## 使用
72
+ ## 使用说明
101
73
 
102
- 打开「设置 技能」,再按下表操作:
103
-
104
- | 目标 | 操作 | 范围 |
105
- | --- | --- | --- |
106
- | 搜索或筛选 | 先选择全局或项目作用域,再按来源、调用状态、名称或简介收窄列表。 | 当前作用域 |
107
- | 查看详情与诊断 | 查看正文、frontmatter、源文件路径、格式问题和重名遮蔽。 | 全部来源 |
108
- | 启用或停用 | 只更新 manager 本地调用策略,不修改来源 Skill 文件。 | 全部用户级来源与活动项目来源中的有效 Skill |
109
- | 创建或导入 | 设置页创建和导入均固定保存到全局 DSH。 | `$DSH_HOME\skills` |
110
- | 从对话创建 | 让 Agent 调用 `create_skill`;写入前由 DSH 审批界面确认。 | `$DSH_HOME\skills` |
111
- | 删除与恢复 | 删除先进入回收站;可恢复到原来源或永久二次删除。 | 用户级与活动项目级 DSH Skill |
112
-
113
- > 任何来源的启停都不会修改 Skill 文件;只有用户级或项目级 DSH Skill 可以移入回收站。
114
-
115
- 按 ESC 只关闭最上层上传框或确认框,设置页会保持打开。
116
-
117
- ## 权限与安全边界
118
-
119
- | 目录 | 查看/加载 | 启用或停用 | 创建/导入 | 删除 |
120
- | --- | --- | --- | --- | --- |
121
- | `$DSH_HOME\skills` | 支持 | 仅写 manager 状态 | 支持 | 进入回收站 |
122
- | `$DSH_AGENTS_HOME\skills` | 支持 | 仅写 manager 状态 | 不支持 | 不支持 |
123
- | `~\.cc-switch\skills` | 支持,默认开启 | 仅写 manager 状态 | 不支持 | 不支持 |
124
- | `%USERPROFILE%\.cursor\skills`(或 `$DSH_CURSOR_HOME\skills`) | 支持 | 仅写 manager 状态 | 不支持 | 不支持 |
125
- | `~/.codex/skills`、`~/.claude/skills`、`~/.gemini/skills`、`~/.config/opencode/skills`、`~/.copilot/skills`、`~/.codeium/windsurf/skills`、`~/.windsurf/skills`、`~/.trae/skills`、`~/.trae-cn/skills`、`~/.openclaw/skills`、`~/.clawdbot/skills`、`~/.roo/skills`、`~/.codebuddy/skills` | 支持 | 仅写 manager 状态 | 不支持 | 不支持 |
126
- | `<project>/.dsh/skills` | 支持活动 Session 工作区 | 仅写 manager 状态 | 设置页不提供项目创建 | 进入回收站并恢复到原项目 |
127
- | `<project>/.agents/skills`、`<project>/.github/skills`、`<project>/.codex/skills`、`<project>/.claude/skills`、`<project>/.gemini/skills`、`<project>/.opencode/skills`、`<project>/.cursor/skills`、`<project>/.windsurf/skills`、`<project>/.trae/skills`、`<project>/.trae-cn/skills`、`<project>/skills`、`<project>/.roo/skills`、`<project>/.codebuddy/skills` | 支持活动 Session 工作区 | 仅写 manager 状态 | 不支持 | 不支持 |
128
-
129
- - 启用、停用和删除只接受单个普通技能名称,目录穿越名称会被拒绝。
130
- - 根目录 `<project>/skills` 显示为“项目 Skills”,可兼容 OpenClaw workspace 技能,但不据此判断所属 Agent;现有启停策略保持兼容。
131
- - 项目页只跟随当前会话,不提供项目选择框。请求通过 `x-dsh-skills-session` 携带当前会话 ID,后端只从该会话的 `cwd` 推导项目根;缺失或失效时不回退到其他会话,客户端不能指定任意工作区路径。
132
- - 启停仅影响所选来源的副本。管理器在未被停用的副本中按优先级选择:停用项目副本后可使用其他已启用项目副本或全局副本;停用全局副本不影响项目副本。全部副本停用时才阻断该技能;停用行会标明当前接管的全局或项目来源,frontmatter 自带的调用限制仍然生效。
133
- - 项目来源遵循 DSH 最近 `.git` 项目根和固定优先级(`project-dsh` 100、`project-agents` 200,其余项目来源 210–320,之后为全局 DSH 400、公共 Agent 450、其他全局来源 500–640)。管理器每次读取状态或详情时重新扫描;显式项目策略通过 workspace 作用域 rank 覆盖候选执行,用户 DSH 策略使用 rank 399;没有覆盖时仍由 DSH 官方 provider 负责。启停只写 manager 状态,项目文件写入仅发生在用户明确执行 `.dsh/skills` 创建、回收或恢复时。
134
- - 当项目与 `$DSH_HOME` 位于不同磁盘时,回收站会降级为“复制后在源盘原子隐藏”;恢复使用反向的同一安全流程。
135
- - 项目回收站条目保存原始不透明来源身份。仅当原项目与当前会话的项目一致时才允许恢复;客户端不能指定替代路径。
136
- - 项目写入会拒绝链接形式的 `.dsh` 或 `.dsh/skills` 目录,避免仓库把创建、删除或恢复重定向到项目根之外。
137
- - 用户级只读来源与项目 Agent 来源默认递归发现 `SKILL.md`,允许技能目录、技能根及其父目录通过软链接或 Windows junction 指向外部目录,无需开关或目录白名单;按真实路径去重,启停只写 manager 状态。忽略 `SKILL.md` 文件链接,限制扫描深度和数量并终止循环;可写 DSH 与导入、删除仍保留原有边界。
138
- - 普通技能目录发现 `SKILL.md` 后作为 bundle 叶子,不再扫描内部资源,并跳过 `node_modules`;扫描根自身的 `SKILL.md` 仍可与嵌套技能并存。项目 Agent 根与用户技能根真实路径重叠时隐藏,避免绕过用户停用策略。
139
- - 列表和摘要统一使用“已启用/已停用”,不再使用“已加载”:这里描述的是调用策略,完整 Skill 正文仍由 DSH 按需加载。IDE、Git 或 shell 改动后可点击“刷新”;项目 catalog 的 watcher 与 invalidation 仍由官方 provider 负责。
140
- - 不存在的只读项目来源不会出现在列表中;空的项目 DSH 保留来源展示;界面的创建和导入始终写入全局 DSH。项目 DSH 只提供逐 Skill 启停,不提供整个项目来源总开关。
141
- - 覆盖前先复制到同目录临时路径;复制成功前不会改动现有技能。
142
- - 全部接口(含 GET `/state`)只接受 loopback `Host`,或 DSH Web runtime 已通过 LAN 绑定和 `--trusted-host` 明确信任的 `host[:port]`;未知 Host 继续返回 403。
143
- - 浏览器请求还必须满足同源 `Origin` 且不能标记为 cross-site;写入接口继续要求 JSON 与 DSH 客户端请求标记。
144
- - 导入接受用户选定的本机路径。Host 信任栅栏用于防 DNS rebinding,不是身份认证;通过反向代理或局域网提供服务时,仍应配置认证、VPN 或网络访问控制。
145
-
146
- ## 二次开发
147
-
148
- ### 从源码安装
149
-
150
- 适用于调试或使用未发布改动。克隆后的本地路径就是插件安装路径:
74
+ | 你想做什么 | 如何操作 |
75
+ | --- | --- |
76
+ | 查找技能 | 选择全局或项目页签,展开来源分组,或使用搜索和筛选。 |
77
+ | 查看内容 | 点击「查看详情」,阅读技能正文及来源信息。 |
78
+ | 控制启停 | 切换技能开关;只影响 DSH,不改动源文件。 |
79
+ | 添加技能 | 点击「创建技能」或「导入到全局 DSH」。 |
80
+ | 找回误删 | 打开「回收站」恢复;项目技能需回到原项目会话后恢复。 |
151
81
 
152
- ```powershell
153
- [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
154
- $OutputEncoding = [System.Text.Encoding]::UTF8
155
- Set-Location D:\Repository\deepseek-harness-plugin
156
- git clone https://github.com/MichengAI/dsh-skills-manager.git
157
- Set-Location .\dsh-skills-manager
158
- npm install
159
- npm test
160
- dsh plugin --profile web add .
161
- dsh --profile web --dump-config
162
- ```
82
+ - **项目只看当前会话**:Git 仓库使用最近的 Git 根目录;普通文件夹使用当前会话的工作目录,无需 `git init`。
83
+ - **同名技能独立启停**:停用项目副本后,其他已启用副本仍可接管,页面会提示实际来源。要完全关闭该技能,需停用全部副本。
84
+ - **文件管理范围**:只有 DSH 来源的技能可以移入回收站;其他 Agent 的技能可查看和启停。创建与导入始终保存到全局 DSH。
163
85
 
164
- 完成后重启 DSH Web 并硬刷新浏览器。`dsh plugin ... add .` 会读取当前目录的包信息和 `cordis.patch.yml`;不要改为直接复制 `lib` 目录。
86
+ ## 支持的 Agent 目录
165
87
 
166
- 运行源码维护在 `src`,`lib` 是由 `npm run build` 生成并随 npm 包发布的产物。请修改 `src`,不要直接修改 `lib`:
88
+ `~` 表示用户主目录,`<project>` 表示当前会话的项目根。表中为默认路径;设置了对应 DSH 目录变量时,以配置为准。
167
89
 
168
- - [src\core.js](src/core.js):文件操作、权限和导入边界核心。
169
- - [src\index.js](src/index.js):Host 服务与本地技能文件操作入口。
170
- - [src\client.js](src/client.js):设置页、上传和确认交互。
171
- - [scripts\build.mjs](scripts/build.mjs):生成 Host 与浏览器端 `lib` 产物。
172
- - `test\core-test.mjs`:文件操作、权限和导入边界测试。
173
- - `test\locale-test.mjs`:界面词条测试。
90
+ | 来源 | 全局目录 | 项目目录 |
91
+ | --- | --- | --- |
92
+ | DSH | `~/.dsh/skills` | `<project>/.dsh/skills` |
93
+ | 公共 Agent | `~/.agents/skills` | `<project>/.agents/skills` |
94
+ | CC Switch | `~/.cc-switch/skills` | — |
95
+ | Codex | `~/.codex/skills` | `<project>/.codex/skills` |
96
+ | Claude Code | `~/.claude/skills` | `<project>/.claude/skills` |
97
+ | Gemini | `~/.gemini/skills` | `<project>/.gemini/skills` |
98
+ | OpenCode | `~/.config/opencode/skills` | `<project>/.opencode/skills` |
99
+ | Cursor | `~/.cursor/skills` | `<project>/.cursor/skills` |
100
+ | Copilot | `~/.copilot/skills` | `<project>/.github/skills` |
101
+ | Windsurf | `~/.codeium/windsurf/skills`<br>`~/.windsurf/skills` | `<project>/.windsurf/skills` |
102
+ | Trae | `~/.trae/skills` | `<project>/.trae/skills` |
103
+ | Trae CN | `~/.trae-cn/skills` | `<project>/.trae-cn/skills` |
104
+ | OpenClaw / Clawdbot | `~/.openclaw/skills`<br>`~/.clawdbot/skills` | — |
105
+ | Roo | `~/.roo/skills` | `<project>/.roo/skills` |
106
+ | CodeBuddy | `~/.codebuddy/skills` | `<project>/.codebuddy/skills` |
107
+ | 项目 Skills | — | `<project>/skills` |
108
+
109
+ 通用的 `<project>/skills` 显示为「项目 Skills」,也可读取 OpenClaw workspace 技能。不存在的外部来源目录不会显示。
174
110
 
175
- 修改后运行测试、检查发布内容并以本地目录安装验证:
111
+ ## DSH 产品生态
176
112
 
177
- ```powershell
178
- [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
179
- $OutputEncoding = [System.Text.Encoding]::UTF8
180
- npm test
181
- npm run verify
182
- dsh plugin --profile web add .
183
- ```
113
+ 想使用桌面工作台,可下载 [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases);已有 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 环境,可按各项目 README 按需安装。以下列出 11 个自研插件;桌面端实际随附范围以对应版本的发行说明和内置清单为准。
184
114
 
185
- 修改文件写入逻辑时必须保留路径校验、临时目录复制和公共技能只读限制。
115
+ | 插件 | 你可以用它做什么 |
116
+ | --- | --- |
117
+ | [Codex UI](https://github.com/MichengAI/dsh-codex-ui) | 整理项目与会话、搜索任务、跳转对话轮次 |
118
+ | [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) | 按任务选择并召唤专业角色 |
119
+ | [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) | 统一查找、启停、创建和导入本机技能 |
120
+ | [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) | 搜索、恢复或清理已归档会话 |
121
+ | [IM Connect](https://github.com/MichengAI/dsh-im-connect) | 从消息平台下任务、收回复 |
122
+ | [Automation](https://github.com/MichengAI/dsh-automation) | 按计划执行任务,查看每次运行的结果 |
123
+ | [BTW](https://github.com/MichengAI/dsh-btw) | 在当前上下文中临时旁问,不打断主任务 |
124
+ | [Simplify](https://github.com/MichengAI/dsh-simplify) | 用 `/simplify` 整理 Git 改动范围内的代码 |
125
+ | [PUA](https://github.com/MichengAI/dsh-pua) | 引导 Agent 在失败时换方法、查原因,并在完成前验证结果 |
126
+ | [Code Review](https://github.com/MichengAI/dsh-code-review) | 用 `/review` 发起独立 Agent 代码审查,在当前会话接收报告 |
127
+ | [Codex Pet](https://github.com/MichengAI/dsh-codex-pet) | 通过桌面宠物查看会话提醒、处理工具审批和问题回答 |
186
128
 
187
- ## 验证
129
+ ## 反馈与贡献
188
130
 
189
- ```powershell
190
- [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
191
- $OutputEncoding = [System.Text.Encoding]::UTF8
192
- npm test
193
- npm run verify
194
- ```
131
+ 遇到问题或有建议,欢迎[提交 Issue](https://github.com/MichengAI/dsh-skills-manager/issues)。请附上 DSH 与插件版本、复现步骤;界面问题可附完整截图。
195
132
 
196
- `prepublishOnly` 会在发布前自动执行完整 `verify` 门禁:构建、测试、发布包检查和生成产物同步检查。
133
+ 源码位于 `src`,欢迎提交改进。
197
134
 
198
135
  ## 许可证
199
136
 
200
- 本项目采用 [Apache License 2.0](LICENSE)
201
-
202
- ## 宿主兼容回归
203
-
204
- 支持范围以 `scripts/hosts.mjs` 为准,契约测试检查发布包的 peer 和开发依赖与其一致。验证对象为官方同版本组件组合,不声明混装或其他 alpha/RC 版本兼容。
205
-
206
- ```powershell
207
- [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
208
- $OutputEncoding = [System.Text.Encoding]::UTF8
209
- pnpm run test:compat
210
- pnpm run test:compat 0.1.5-rc.2 --keep
211
- ```
212
-
213
- 不带参数顺序运行全部宿主;`--keep` 保留沙箱,`--serve` 保留宿主供手动浏览器验收。成功默认清理沙箱,失败保留诊断;精简证据始终写入 `.compat-results/`。需要 PATH 中可用的 npm 和项目指定 pnpm。GitHub Actions 的“五版本宿主兼容验证”可手动触发 Windows 矩阵并下载证据;它验证真实宿主 API 和 Agent 技能策略,不等同于完整 UI 或外部模型端到端测试。
214
-
215
- 维护兼容范围时先编辑 `scripts/hosts.mjs`,运行 `node scripts/sync-hosts.mjs --write`,再更新锁文件并跑兼容矩阵;`verify` 会拦截元数据和 README 漂移。
137
+ [Apache License 2.0](LICENSE)
package/lib/core.js CHANGED
@@ -295,7 +295,7 @@ async function nearestProjectRoot(cwd) {
295
295
  } catch {
296
296
  }
297
297
  const parent = dirname(current);
298
- if (parent === current) return null;
298
+ if (parent === current) return { root: start, cwd: start };
299
299
  current = parent;
300
300
  }
301
301
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@michengai/dsh-skills-manager",
3
- "version": "0.1.49",
3
+ "version": "0.1.52",
4
4
  "description": "NPM-installable DSH Web plugin for safely loading and managing skills across DSH and common local Agents.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -52,27 +52,27 @@
52
52
  },
53
53
  "peerDependencies": {
54
54
  "@deepseek-ai/cordis": ">=4.0.1 <5.0.0",
55
- "@deepseek-ai/dsh-client-locale": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
56
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
57
- "@deepseek-ai/dsh-client-ui-slots": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
58
- "@deepseek-ai/dsh-host-webserver": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
59
- "@deepseek-ai/dsh-session": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
60
- "@deepseek-ai/dsh-skill": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
61
- "@deepseek-ai/dsh-tools": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
62
- "@deepseek-ai/dsh-web-app": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
55
+ "@deepseek-ai/dsh-client-locale": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
56
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
57
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
58
+ "@deepseek-ai/dsh-host-webserver": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
59
+ "@deepseek-ai/dsh-session": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
60
+ "@deepseek-ai/dsh-skill": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
61
+ "@deepseek-ai/dsh-tools": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
62
+ "@deepseek-ai/dsh-web-app": "0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
63
63
  "react": "^18.2.0"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@deepseek-ai/cordis": "4.0.2",
67
- "@deepseek-ai/dsh-client-locale": "0.1.5-rc.2",
68
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.5-rc.2",
69
- "@deepseek-ai/dsh-client-ui-slots": "0.1.5-rc.2",
70
- "@deepseek-ai/dsh-host-webserver": "0.1.5-rc.2",
71
- "@deepseek-ai/dsh-session": "0.1.5-rc.2",
72
- "@deepseek-ai/dsh-scope": "0.1.5-rc.2",
73
- "@deepseek-ai/dsh-skill": "0.1.5-rc.2",
74
- "@deepseek-ai/dsh-tools": "0.1.5-rc.2",
75
- "@deepseek-ai/dsh-web-app": "0.1.5-rc.2",
67
+ "@deepseek-ai/dsh-client-locale": "0.1.6-alpha.1",
68
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.6-alpha.1",
69
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.6-alpha.1",
70
+ "@deepseek-ai/dsh-host-webserver": "0.1.6-alpha.1",
71
+ "@deepseek-ai/dsh-session": "0.1.6-alpha.1",
72
+ "@deepseek-ai/dsh-scope": "0.1.6-alpha.1",
73
+ "@deepseek-ai/dsh-skill": "0.1.6-alpha.1",
74
+ "@deepseek-ai/dsh-tools": "0.1.6-alpha.1",
75
+ "@deepseek-ai/dsh-web-app": "0.1.6-alpha.1",
76
76
  "esbuild": "0.25.0"
77
77
  },
78
78
  "engines": {