dsh-agent-plugins-market 0.6.1 → 0.7.0

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.
Files changed (186) hide show
  1. package/README.md +164 -184
  2. package/README.zh.md +165 -185
  3. package/client/client.js +8505 -997
  4. package/client/client.js.map +1 -1
  5. package/lib/application/catalog-context.js +181 -0
  6. package/lib/application/catalog.js +224 -928
  7. package/lib/application/details.js +22 -13
  8. package/lib/application/install-store.js +95 -0
  9. package/lib/application/lsp-service.js +97 -0
  10. package/lib/application/mcp-service.js +246 -0
  11. package/lib/application/panel-resources.js +112 -0
  12. package/lib/application/ports.js +21 -0
  13. package/lib/application/project-agent-roles.js +39 -0
  14. package/lib/application/snapshot-cache.js +160 -0
  15. package/lib/application/source-store.js +521 -0
  16. package/lib/catalog/archive.js +34 -29
  17. package/lib/catalog/codex-mcp.js +114 -0
  18. package/lib/catalog/component-files.js +159 -0
  19. package/lib/catalog/fs-probes.js +43 -0
  20. package/lib/catalog/manifests.js +149 -127
  21. package/lib/catalog/native-project.js +44 -23
  22. package/lib/catalog/paths.js +72 -61
  23. package/lib/catalog/project-config.js +97 -0
  24. package/lib/catalog/project-hooks.js +116 -0
  25. package/lib/catalog/scan-pipeline.js +6 -1
  26. package/lib/catalog/scan-resolvers.js +89 -61
  27. package/lib/catalog/skills-parse.js +14 -10
  28. package/lib/catalog/source-catalog.js +18 -4
  29. package/lib/catalog/suite-components.js +125 -0
  30. package/lib/catalog/suite-scanner.js +3 -1
  31. package/lib/catalog/surfaces.js +60 -67
  32. package/lib/catalog/validate.js +21 -20
  33. package/lib/contracts/market.js +17 -1
  34. package/lib/index.js +160 -125
  35. package/lib/model/layouts.js +49 -0
  36. package/lib/model/types.js +26 -3
  37. package/lib/routes.js +145 -15
  38. package/lib/runtime/agent-role-names.js +70 -0
  39. package/lib/runtime/agent-role-router.js +240 -0
  40. package/lib/runtime/commands-mounts.js +35 -72
  41. package/lib/runtime/deadline.js +28 -0
  42. package/lib/runtime/feedback-tool.js +232 -0
  43. package/lib/runtime/hooks-mounts.js +65 -14
  44. package/lib/runtime/host-locale.js +18 -13
  45. package/lib/runtime/legacy-root-migration.js +12 -0
  46. package/lib/runtime/lsp-direct-config.js +22 -19
  47. package/lib/runtime/lsp-mounts.js +191 -86
  48. package/lib/runtime/lsp-server-state.js +19 -0
  49. package/lib/runtime/lsp-status.js +4 -3
  50. package/lib/runtime/mcp-auth-record.js +42 -0
  51. package/lib/runtime/mcp-backend.js +8 -3
  52. package/lib/runtime/mcp-client/config.js +6 -1
  53. package/lib/runtime/mcp-client/connection.js +40 -39
  54. package/lib/runtime/mcp-client/host-contract.js +10 -0
  55. package/lib/runtime/mcp-client/oauth.js +5 -7
  56. package/lib/runtime/mcp-client/plugin-identity.js +28 -0
  57. package/lib/runtime/mcp-client/projection.js +202 -0
  58. package/lib/runtime/mcp-client/tools.js +10 -192
  59. package/lib/runtime/mcp-config.js +44 -16
  60. package/lib/runtime/mcp-direct-config.js +73 -0
  61. package/lib/runtime/mcp-mounts.js +39 -71
  62. package/lib/runtime/mcp-overrides.js +15 -9
  63. package/lib/runtime/mcp-redaction.js +3 -2
  64. package/lib/runtime/mcp-status.js +15 -12
  65. package/lib/runtime/model-catalog.js +48 -0
  66. package/lib/runtime/mount-lifecycle.js +73 -0
  67. package/lib/runtime/profile-seam.js +321 -0
  68. package/lib/runtime/project-runtime.js +139 -0
  69. package/lib/runtime/reconcile-scheduler.js +99 -0
  70. package/lib/runtime/reconciler.js +42 -28
  71. package/lib/runtime/server-config.js +77 -0
  72. package/lib/runtime/settings-namespace.js +136 -0
  73. package/lib/runtime/skills-provider.js +36 -80
  74. package/lib/runtime/source-auto-update.js +70 -0
  75. package/lib/{model/state.js → runtime/state-store.js} +9 -11
  76. package/lib/runtime/storage-migration.js +186 -0
  77. package/lib/runtime/subagent-catalog.js +130 -0
  78. package/lib/runtime/user-commands.js +86 -0
  79. package/lib/runtime/user-panels.js +186 -0
  80. package/lib/runtime/user-store.js +141 -0
  81. package/lib/types/application/catalog-context.d.ts +118 -0
  82. package/lib/types/application/catalog.d.ts +103 -278
  83. package/lib/types/application/install-store.d.ts +21 -0
  84. package/lib/types/application/lsp-service.d.ts +36 -0
  85. package/lib/types/application/mcp-service.d.ts +71 -0
  86. package/lib/types/application/panel-resources.d.ts +21 -0
  87. package/lib/types/application/ports.d.ts +72 -0
  88. package/lib/types/application/project-agent-roles.d.ts +3 -0
  89. package/lib/types/application/queries.d.ts +30 -27
  90. package/lib/types/application/snapshot-cache.d.ts +51 -0
  91. package/lib/types/application/source-store.d.ts +100 -0
  92. package/lib/types/catalog/archive.d.ts +3 -11
  93. package/lib/types/catalog/codex-mcp.d.ts +4 -0
  94. package/lib/types/catalog/component-files.d.ts +21 -0
  95. package/lib/types/catalog/fs-probes.d.ts +10 -0
  96. package/lib/types/catalog/manifests.d.ts +30 -24
  97. package/lib/types/catalog/native-project.d.ts +4 -7
  98. package/lib/types/catalog/paths.d.ts +51 -19
  99. package/lib/types/catalog/project-config.d.ts +6 -0
  100. package/lib/types/catalog/project-hooks.d.ts +10 -0
  101. package/lib/types/catalog/scan-pipeline.d.ts +5 -3
  102. package/lib/types/catalog/scan-resolvers.d.ts +5 -10
  103. package/lib/types/catalog/skills-parse.d.ts +0 -7
  104. package/lib/types/catalog/source-catalog.d.ts +4 -4
  105. package/lib/types/catalog/suite-components.d.ts +5 -0
  106. package/lib/types/catalog/suite-scanner.d.ts +8 -6
  107. package/lib/types/catalog/surfaces.d.ts +2 -2
  108. package/lib/types/catalog/validate.d.ts +2 -2
  109. package/lib/types/contracts/lsp-status.d.ts +35 -0
  110. package/lib/types/contracts/market.d.ts +63 -2
  111. package/lib/types/contracts/mcp-status.d.ts +8 -0
  112. package/lib/types/index.d.ts +2 -2
  113. package/lib/types/model/layouts.d.ts +102 -0
  114. package/lib/types/model/types.d.ts +80 -11
  115. package/lib/types/routes.d.ts +6 -1
  116. package/lib/types/runtime/agent-role-names.d.ts +6 -0
  117. package/lib/types/runtime/agent-role-router.d.ts +98 -0
  118. package/lib/types/runtime/commands-mounts.d.ts +16 -7
  119. package/lib/types/runtime/deadline.d.ts +18 -0
  120. package/lib/types/runtime/feedback-tool.d.ts +71 -0
  121. package/lib/types/runtime/hooks-mounts.d.ts +4 -0
  122. package/lib/types/runtime/host-locale.d.ts +1 -1
  123. package/lib/types/runtime/legacy-root-migration.d.ts +2 -0
  124. package/lib/types/runtime/lsp-direct-config.d.ts +3 -3
  125. package/lib/types/runtime/lsp-mounts.d.ts +66 -19
  126. package/lib/types/runtime/lsp-server-state.d.ts +3 -0
  127. package/lib/types/runtime/lsp-status.d.ts +3 -1
  128. package/lib/types/runtime/mcp-auth-record.d.ts +29 -0
  129. package/lib/types/runtime/mcp-backend.d.ts +13 -2
  130. package/lib/types/runtime/mcp-client/config.d.ts +4 -5
  131. package/lib/types/runtime/mcp-client/host-contract.d.ts +78 -0
  132. package/lib/types/runtime/mcp-client/oauth.d.ts +1 -1
  133. package/lib/types/runtime/mcp-client/plugin-identity.d.ts +16 -0
  134. package/lib/types/runtime/mcp-client/projection.d.ts +45 -0
  135. package/lib/types/runtime/mcp-client/tools.d.ts +8 -72
  136. package/lib/types/runtime/mcp-config.d.ts +25 -4
  137. package/lib/types/runtime/mcp-direct-config.d.ts +21 -0
  138. package/lib/types/runtime/mcp-mounts.d.ts +9 -13
  139. package/lib/types/runtime/mcp-overrides.d.ts +3 -1
  140. package/lib/types/runtime/mcp-status.d.ts +1 -1
  141. package/lib/types/runtime/model-catalog.d.ts +7 -0
  142. package/lib/types/runtime/mount-lifecycle.d.ts +53 -0
  143. package/lib/types/runtime/profile-seam.d.ts +64 -0
  144. package/lib/types/runtime/project-runtime.d.ts +32 -0
  145. package/lib/types/runtime/reconcile-scheduler.d.ts +45 -0
  146. package/lib/types/runtime/reconciler.d.ts +4 -0
  147. package/lib/types/runtime/server-config.d.ts +10 -0
  148. package/lib/types/runtime/settings-namespace.d.ts +76 -0
  149. package/lib/types/runtime/skills-provider.d.ts +1 -5
  150. package/lib/types/runtime/source-auto-update.d.ts +33 -0
  151. package/lib/types/{model/state.d.ts → runtime/state-store.d.ts} +2 -2
  152. package/lib/types/runtime/storage-migration.d.ts +17 -0
  153. package/lib/types/runtime/subagent-catalog.d.ts +54 -0
  154. package/lib/types/runtime/user-commands.d.ts +24 -0
  155. package/lib/types/runtime/user-panels.d.ts +88 -0
  156. package/lib/types/runtime/user-store.d.ts +49 -0
  157. package/package.json +51 -17
  158. package/schemas/README.md +69 -7
  159. package/schemas/agent-plugins/spec.md +48 -0
  160. package/schemas/claude-code/marketplace.schema.json +143 -0
  161. package/schemas/claude-code/plugin.schema.json +105 -0
  162. package/schemas/claude-code/spec.md +108 -0
  163. package/schemas/codex/marketplace.schema.json +78 -0
  164. package/schemas/codex/plugin.schema.json +77 -0
  165. package/schemas/codex/spec.md +91 -0
  166. package/schemas/cursor/marketplace.schema.json +82 -0
  167. package/schemas/cursor/plugin.schema.json +58 -0
  168. package/schemas/cursor/spec.md +92 -0
  169. package/schemas/github-copilot/marketplace.schema.json +107 -0
  170. package/schemas/github-copilot/plugin.schema.json +89 -0
  171. package/schemas/github-copilot/spec.md +105 -0
  172. package/schemas/kimi/marketplace.schema.json +38 -0
  173. package/schemas/kimi/plugin.schema.json +84 -0
  174. package/schemas/kimi/spec.md +94 -0
  175. package/schemas/qoder/marketplace.schema.json +115 -0
  176. package/schemas/qoder/plugin.schema.json +127 -0
  177. package/schemas/qoder/spec.md +111 -0
  178. package/schemas/skill-collection/spec.md +29 -0
  179. package/schemas/universal/marketplace.schema.json +98 -0
  180. package/schemas/universal/plugin.schema.json +49 -0
  181. package/schemas/universal/spec.md +53 -0
  182. package/schemas/zcode/marketplace.schema.json +161 -0
  183. package/schemas/zcode/plugin.schema.json +89 -0
  184. package/schemas/zcode/spec.md +102 -0
  185. package/lib/catalog/legacy-root-migration.js +0 -51
  186. package/lib/types/catalog/legacy-root-migration.d.ts +0 -14
package/README.md CHANGED
@@ -1,237 +1,217 @@
1
- # dsh-agent-plugins-market — Claude Code plugin marketplaces for DeepSeek Harness
2
-
3
- English | [简体中文](README.zh.md) | [Docs website](https://sivan757.github.io/dsh-agent-plugins-market/)
4
-
5
- > **Bring the Claude Code / Codex / Cursor plugin-marketplace ecosystem into DeepSeek Harness (DSH): install and inject agent plugins — skills, MCP servers, hooks and slash commands — from git marketplace repos, with a market page right inside the Web GUI.**
6
-
7
- **dsh-agent-plugins-market is the standard way to run Claude Code, Codex, Cursor and Kimi plugin marketplaces inside DeepSeek Harness — zero conversion, zero file copying.**
8
-
9
- ![npm](https://img.shields.io/npm/v/dsh-agent-plugins-market) ![npm downloads](https://img.shields.io/npm/dm/dsh-agent-plugins-market) ![License](https://img.shields.io/github/license/Sivan757/dsh-agent-plugins-market) ![GitHub stars](https://img.shields.io/github/stars/Sivan757/dsh-agent-plugins-market)
10
-
11
- ![Agent Plugins Market screenshot](docs/screenshot.png)
12
-
13
- ![Suite detail (skills / MCP / commands preview)](docs/screenshot-detail.png)
14
-
15
- ## Why?
16
-
17
- DeepSeek Harness is a powerful agent harness — but its plugin ecosystem doesn't yet have the breadth of the **Claude Code plugin marketplace** world. There are hundreds of ready-made plugin marketplaces on GitHub (Claude Code `.claude-plugin/marketplace.json`, Codex `.codex-plugin`, Cursor, Kimi, agent-plugins.org v1.0.0 portable suites) full of skills, MCP servers, hooks and slash commands.
18
-
19
- `dsh-agent-plugins-market` is the bridge: **add any git marketplace repo as a source, install its suites, and their skills / MCP servers / hooks / commands are injected into your DSH sessions at runtime** — no manual file copying, no conversion needed. Claude Code-authored skills work verbatim (`${CLAUDE_PLUGIN_ROOT}` is substituted automatically).
1
+ <img src="docs-site/public/favicon.svg" alt="" width="48" height="48" />
2
+
3
+ # dsh-agent-plugins-market
4
+
5
+ **A plugin marketplace and agent capability workspace for [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/deepseek-harness).**
6
+
7
+ Reuse supported content from Claude Code, Codex, Cursor, Kimi and other recognized layouts, and manage your own skills, commands, agent personas, MCP services and LSP servers in the DSH Web GUI.
8
+
9
+ If this plugin is useful to you, a ⭐ on [GitHub](https://github.com/Sivan757/dsh-agent-plugins-market) is appreciated.
10
+
11
+ English | [简体中文](README.zh.md) | [Documentation](https://sivan757.github.io/dsh-agent-plugins-market/) | [npm](https://www.npmjs.com/package/dsh-agent-plugins-market)
12
+
13
+ [![npm version](https://img.shields.io/npm/v/dsh-agent-plugins-market)](https://www.npmjs.com/package/dsh-agent-plugins-market) [![License](https://img.shields.io/github/license/Sivan757/dsh-agent-plugins-market)](LICENSE)
14
+
15
+ [Quick start](#quick-start) · [Everyday use](#everyday-use) · [Compatibility](#compatibility-and-boundaries) · [FAQ](#faq)
16
+
17
+ ## Pages
18
+
19
+ <table>
20
+ <tr>
21
+ <td align="center" width="33%">
22
+ <img src="docs/screenshots/market.png" alt="Market" width="100%" /><br />
23
+ <b>Market</b><br />Add sources, preview suites, install and enable.
24
+ </td>
25
+ <td align="center" width="33%">
26
+ <img src="docs/screenshots/skills.png" alt="Skills" width="100%" /><br />
27
+ <b>Skills</b><br />Browse skills and author your own.
28
+ </td>
29
+ <td align="center" width="33%">
30
+ <img src="docs/screenshots/commands.png" alt="Commands" width="100%" /><br />
31
+ <b>Commands</b><br />Manage prompt templates invoked as /name.
32
+ </td>
33
+ </tr>
34
+ <tr>
35
+ <td align="center" width="33%">
36
+ <img src="docs/screenshots/personas.png" alt="Agent personas" width="100%" /><br />
37
+ <b>Agent personas</b><br />Roles with an exact provider, model and effort.
38
+ </td>
39
+ <td align="center" width="33%">
40
+ <img src="docs/screenshots/mcp.png" alt="MCP services" width="100%" /><br />
41
+ <b>MCP services</b><br />Credentials, authorization and connection status.
42
+ </td>
43
+ <td align="center" width="33%">
44
+ <img src="docs/screenshots/lsp.png" alt="LSP servers" width="100%" /><br />
45
+ <b>LSP servers</b><br />Language server configuration and runtime status.
46
+ </td>
47
+ </tr>
48
+ </table>
49
+
50
+ ## What you can do
51
+
52
+ - **Ten suite layouts.** Claude Code, Codex, Cursor, Kimi Code, ZCode, Qoder CLI, GitHub Copilot CLI, Universal `.plugin/`, [agent-plugins](https://agent-plugins.org) and manifest-less skill collections.
53
+ - **Sources.** Add a Git repository, a local directory or an archive (`.zip` / `.tar.gz` / `.tgz` / `.tar`); adopt a checkout you cloned yourself; refresh on demand; delete a managed checkout when you remove its source.
54
+ - **Downloads that fit your network.** Pick a download region — default `auto` follows the interface language, or choose global / China mainland — and the plugin routes `github.com` clones through the matching mirror. A proxy and per-invocation tuning live in the host config.
55
+ - **Runtime surfaces.** Enabled suites inject into sessions: skills into the catalog and slash menu, commands as `/name`, agent personas into the subagent catalog, MCP tools with an `mcp__` prefix, hooks onto host lifecycle events, and language servers through the `lsp` tool.
56
+ - **MCP.** A built-in bridge runs stdio, Streamable HTTP with OAuth and legacy SSE without a host MCP client. `${VAR}` references resolve from the host credential store or the launch environment; per-server overrides disable or patch a declaration without editing the source; an optional host-client compatibility mode is available. Tools register as `mcp__<suite>__<server>__<tool>`.
57
+ - **LSP.** Self-provisioned: installing the plugin is the whole setup, and the `lsp` tool mounts only while a language server is wanted. The server executable itself must be on `PATH`. Upgrading from a release that asked you to expose LSP from your profile? A profile that still carries that hand-added layer reports a seam conflict; the LSP panel names the file and removes the layer for you, keeping a backup.
58
+ - **Agent personas and delegation.** Role cards save an exact provider, model and reasoning effort; they appear in the session catalog and run through `subagent_run`, which starts a durable background child and returns its id immediately.
59
+ - **Project dimension.** Skills, agents, commands, MCP servers and hooks are read from the project's own directories with no install step.
60
+ - **Your own resources.** Author skills, commands and agent personas as Markdown under `~/.agents/`, then edit them or disable them without deleting the files.
61
+ - **Background source updates.** Optionally refresh every configured source on a timer; off by default.
62
+ - **Web workspace.** Six tabs — Market, Skills, Commands, Agent personas, MCP services and LSP servers — each with search, filters and a grid/list toggle, plus status panels with diagnostics, credential editing, and an install confirmation that warns before executable third-party content is enabled.
63
+ - **Bilingual interface and feedback.** Workspace strings and injected prompts follow the host language. With feedback enabled, the model can file a `report_market_issue` report through the `gh` CLI or a GitHub token; with neither, it opens a prefilled GitHub issue page and hands you the complete issue text.
20
64
 
21
65
  ## Quick start
22
66
 
23
- > Requires DeepSeek Harness ≥ 0.1.0-rc.6 with a Web profile.
67
+ Install into your profile, replacing `<name>` with its name:
24
68
 
25
69
  ```sh
26
- # install into a dsh profile (npm registry, recommended)
27
70
  dsh plugin --profile <name> add dsh-agent-plugins-market
28
-
29
- # or via pnpm inside the profile
30
- pnpm add dsh-agent-plugins-market
31
- ```
32
-
33
- Restart dsh, open **Settings → Agent Plugins Market**, add a marketplace repo as a source (e.g. `https://github.com/anthropics/claude-plugins-official`), and install suites with one click. On legacy Web shells without the `settings.section` slot, the same UI falls back to a top-level Agent Plugins Market page entry. Skills appear in the `/` slash menu; MCP tools appear as `mcp__<suite>__<server>__<tool>`; slash commands and `/agent-*` subagents register automatically.
34
-
35
- <details>
36
- <summary><strong>More install options</strong></summary>
37
-
38
- **GitHub:**
39
-
40
- ```sh
41
- pnpm add github:Sivan757/dsh-agent-plugins-market
42
- # or
43
- dsh plugin --profile <name> add github:Sivan757/dsh-agent-plugins-market
44
71
  ```
45
72
 
46
- **Manual** — add the package to the profile's `dsh.profile.bundles` (the package's `cordis.patch.yml` inserts the plugin row):
73
+ 1. Restart DSH and open **Settings → Agent Plugins Market**.
74
+ 2. In **Market**, add a source, for example `https://github.com/anthropics/claude-plugins-official`. No sources are preconfigured.
75
+ 3. Open a suite, review its contents, then install it and ensure it is enabled.
76
+ 4. For a suite with skills, check the **Skills** tab and type `/` in chat to find its user-invocable skills. For an MCP suite, check **MCP services** and resolve any credential or connection notice before using its tools.
47
77
 
48
- ```jsonc
49
- // ~/.dsh/profiles/<profile>/package.json
50
- {
51
- "dependencies": { "dsh-agent-plugins-market": "^0.4.6" },
52
- "dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-agent-plugins-market"] } }
53
- }
54
- ```
78
+ Requirements, profile configuration and alternative installs: [usage guide](docs/user/usage.md#installation-options).
55
79
 
56
- Build artifacts (`lib/`, `client/`) are not committed; npm publishes them via `prepack`, and GitHub installs build them automatically through the `prepare` script (requires Node + pnpm toolchain on the installing machine).
57
-
58
- </details>
59
-
60
- ## Features
61
-
62
- - **Plugin / suite management** — configure git repository sources (markets), browse every discoverable plugin, install / uninstall / enable / disable / refresh per source or per plugin. Source ids are derived automatically from the repository manifest JSON — no manual input.
63
- - **Market page in the Web GUI** — source pills + search/actions, status tabs, a two-column card grid, and a plugin detail modal with previews for skills / MCP / hooks / commands / LSP. New shells render it as a localized Settings page; legacy shells without `settings.section` receive a guarded top-level page-mode fallback instead of a duplicate surface.
64
- - **Runtime injection**
65
- - **Skills** — a `ctx.skills` SkillProvider (project rank 250 / user rank 450); `${CLAUDE_PLUGIN_ROOT}` is substituted so Claude Code-authored skills work verbatim, and appear in the `/` slash menu.
66
- - **MCP servers** — every valid `mcp.json` server of an enabled plugin mounts a live `dsh-mcp-client` child; tools appear as `mcp__<plugin>__<server>__<tool>`.
67
- - **MCP credentials** — `${ENV_NAME}` references resolve through the optional DSH credentials service before a child starts; missing references block the spawn and surface as `needs-credentials`. The Web detail view uses write-only credentials operations and never persists token values in suite state or overrides.
68
- - **Hooks** — a plugin's `hooks/hooks.json` mounts the `dsh-hooks-claude-code` bridge on the harness interception points (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, SubagentStart, SubagentStop).
69
- - **Commands / subagents** — `commands/*.md` register as dsh slash commands; `agents/*.md` register as `agent-<name>` skills.
70
- - **Model context** — skills flow through the host-native skill catalog and MCP tools register directly through `dsh-mcp-client`; suite inventory and source metadata remain available in the Web market page without adding a redundant model-facing inventory tool.
71
- - **Runtime discovery** — installed plugins are discovered from configured source ids under `~/.dsh/agent-plugins/.sources/<sourceId>/` (user dimension) and `<project>/.dsh/agent-plugins/.sources/<sourceId>/` (project dimension). Stale unmanaged user checkouts are ignored, while project checkouts remain state-authorized. Local sources read the working tree directly, including uncommitted changes.
72
- - **Native project layouts (zero-copy migration)** — a repository's own `.claude/` and `.agents/` directories (skills, agents) are discovered in place as read-only `project-native` suites: no install, no copying, no state file. Repositories migrating from Claude Code or agent-plugins.org conventions work as-is; a project skill shadows an installed suite skill of the same name (project wins).
73
-
74
- ## Supported plugin layouts
75
-
76
- | Layout | Manifest | Notes |
77
- | -------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------- |
78
- | agent-plugins.org v1 | `plugin.json` | vendored 1.0.0 JSON Schema validation + spec §4 path rules |
79
- | Claude Code market | `.claude-plugin/marketplace.json` + `.claude-plugin/plugin.json` | marketplace `plugins[].source` relative paths |
80
- | Universal | `.plugin/plugin.json` | multi-client repos (e.g. vercel-plugin) |
81
- | Cursor | `.cursor-plugin/plugin.json` | declared skills paths |
82
- | Kimi | `.kimi-plugin/plugin.json` | inline mcpServers |
83
- | Codex | `.codex-plugin/plugin.json` | — |
84
- | Skill collection (manifest-less) | none (synthetic) | flat `SKILL.md` directory collections |
85
-
86
- One repo may carry several dialects at once (vercel/vercel-plugin ships all of them); the suite identity comes from the highest-precedence manifest while surfaces are scanned from the directories. `mcp.json` is validated strictly against the agent-plugins.org schema; `.mcp.json` is parsed leniently — top-level server-map shorthand, `type: http` / `local` / omitted `type` (stdio by `command`) normalization, `${CLAUDE_PLUGIN_ROOT}` / `${CLAUDE_PLUGIN_DATA}` / `${NAME:-default}` placeholders, and unknown transports are tolerated per server. The marketplace manifest is authoritative for the suite set; manifest-less marketplace entries that carry skills and manifest-bearing container dirs not listed there are supplemented. Remote URL entries show as "remote reference" cards (metadata + source URL, not directly installable; add the repo as a source to install).
87
-
88
- ## Configure marketplace sources
89
-
90
- Sources persist in `~/.dsh/agent-plugins/state.json`; cordis config seeds them (and re-adds missing ids on every boot):
91
-
92
- ```yaml
93
- - id: dsh-agent-plugins-market
94
- config:
95
- sources:
96
- - { id: agent-plugins, url: 'https://github.com/Sivan757/agent-plugins.git' }
97
- - { id: mattpocock-skills, url: 'https://github.com/mattpocock/skills.git' }
98
- - { id: claude-plugins-official, url: 'https://github.com/anthropics/claude-plugins-official' }
99
- - { id: ui-ux-pro-max, url: 'https://github.com/nextlevelbuilder/ui-ux-pro-max-skill.git' }
100
- - { id: my-local-plugin, url: '/Users/me/work/my-plugin', local: true }
101
- - { id: packaged-plugin, url: 'https://example.com/plugin-0.1.zip', kind: archive, sha256: '<64-hex digest>' }
102
- ```
80
+ ## Everyday use
103
81
 
104
- A `local: true` source reads the directory in place (live working tree; never deleted on removal). Discovery results are cached for up to 30 seconds and reused across install/enable/panel actions, so working-tree edits of local sources appear on the next cache refresh (any source mutation, the refresh button, or the 30 s TTL). An `archive` source downloads an HTTPS `.zip` / `.tar.gz` / `.tgz` / `.tar` payload (256 MiB cap, optional `sha256` integrity pin) and extracts it as the checkout.
82
+ The workspace has six tabs:
105
83
 
106
- ### Manual clones, adoption, and network tuning
84
+ | Tab | Use it to |
85
+ | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
86
+ | Market | Add sources, preview suites, install / uninstall, enable / disable and refresh. |
87
+ | Skills | Browse skills and create or edit your own reusable instructions. |
88
+ | Commands | Manage prompt templates invoked as `/name`. |
89
+ | Agent personas | Manage role instructions and save an exact provider, model and reasoning effort per role; delegate in the background through `subagent_run`. |
90
+ | MCP services | Add a service or configure an installed one, its credentials and authorization; inspect status and retry failures. |
91
+ | LSP servers | Add and configure language servers and inspect their runtime status. |
107
92
 
108
- Cloning from the UI times out on a restricted network? Clone the repository yourself into the checkout root (`~/.dsh/agent-plugins/.sources/<id>/`) — the market page lists it under **unregistered local checkouts** with a one-click **adopt** action that registers it in place (no re-clone, no deletion, ever). Adding a URL whose checkout already exists with a matching `origin` remote adopts it automatically instead of cloning a second copy.
109
-
110
- Git/archive acquisition is tunable through the host config:
111
-
112
- ```yaml
113
- - id: dsh-agent-plugins-market
114
- config:
115
- git:
116
- proxy: 'http://127.0.0.1:7890' # injected as git http/https proxy
117
- insteadOf: { 'https://github.com/': 'https://mirror.example/https://github.com/' }
118
- timeoutMs: 300000 # per git invocation (default 120000)
119
- cloneRetry: true # one automatic retry (default)
120
- fallbackTarball: false # retry a failed github.com clone as a codeload tarball download
121
- allowHttpArchives: false # permit plain-http archive URLs (intranet mirrors)
122
- ```
93
+ A **source** is where content comes from; a **suite** is an installable unit discovered there. Adding a source discovers its suites. Installing and enabling a suite controls its runtime capabilities.
123
94
 
124
- ## Comparison with other DSH ↔ Claude Code bridges
95
+ Everything you author yourself lives in the shared Agent layout root: skills, commands and personas as Markdown under `~/.agents/`, and the MCP and LSP services you add in the workspace in `~/.agents/mcp.json` and `~/.agents/lsp.json`. Project-native resources stay in the project. See [storage and discovery](docs/user/usage.md#storage-and-discovery) for paths and precedence.
125
96
 
126
- | Capability | **dsh-agent-plugins-market** | [dsh-skills](https://github.com/CocoSgt/dsh-skills) | [@claude2dsh/plugin](https://www.npmjs.com/package/@claude2dsh/plugin) | [@deepseek-ai/dsh-hooks-claude-code](https://github.com/deepseek-ai/deepseek-harness) |
127
- | --- | --- | --- | --- | --- |
128
- | Source | **any git marketplace repo** (`.claude-plugin`, `.codex-plugin`, `.cursor-plugin`, `.kimi-plugin`, agent-plugins.org v1, manifest-less skills) | `~/.claude/skills` dirs, project dirs, `.skill` packages | Claude Code sessions + skills | a Claude Code `hooks.json` config |
129
- | Skills injection | ✅ + `/` slash menu | ✅ global skill library | ✅ | ❌ |
130
- | MCP servers | ✅ live `dsh-mcp-client` mounts | ❌ | — | ❌ |
131
- | Hooks | ✅ via `dsh-hooks-claude-code` bridge | ❌ | — | ✅ (direct) |
132
- | Slash commands / subagents | ✅ `commands/*.md`, `agents/*.md` | ❌ | — | ❌ |
133
- | Market UI | ✅ full market page in the Web GUI | ✅ settings page | — | ❌ |
134
- | Direction | CC / Codex / Cursor ecosystem → DSH | CC skills → DSH | CC ↔ DSH session sync | config → DSH |
97
+ All six tabs share a saved grid/list preference. Add and refresh actions sit at the top right; resource state rails are green when active.
135
98
 
136
- Want the opposite direction (dispatch work **from** Claude Code / Codex **to** DSH agents)? See [dsh-crew](https://github.com/ZSeven-W/dsh-crew).
99
+ ## Compatibility and boundaries
137
100
 
138
- ## FAQ
101
+ Supported **layout dialects** describe how files are organized. The [shared priority table](#layout-detection-precedence) lists suite manifests and Marketplace catalogs together. All ten layout contracts in [`schemas/`](schemas/README.md) have independent reader tests; [the layout audit](docs/user/layout-coverage.md) maps them to pinned repository fixtures.
139
102
 
140
- ### How do I install Claude Code plugins in DeepSeek Harness (DSH)?
103
+ Supported **runtime surfaces** describe what DSH can use:
141
104
 
142
- Install this plugin in a dsh profile, then add any Claude Code marketplace repo as a source:
105
+ | Surface | Runtime support and conditions |
106
+ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
107
+ | Skills | Host skill catalog and user-invocable slash entries; supported root placeholders are expanded. |
108
+ | Commands | Slash commands through the host command service. |
109
+ | Agents | Dynamic subagent catalog and `subagent_run`; requires host agents, tools, LLM, subagent and session-persistence services. |
110
+ | MCP | Built-in bridge by default: stdio, Streamable HTTP with OAuth, and legacy SSE. Optional host-client compatibility mode is also available. |
111
+ | Hooks | The command-hook subset mapped by `dsh-hooks-claude-code`. |
112
+ | LSP | Self-provisioned: installing the plugin is the whole setup, and `lsp` mounts only while a language server is wanted; the server executable must be on `PATH`. |
143
113
 
144
- ```sh
145
- dsh plugin --profile <name> add dsh-agent-plugins-market
146
- ```
114
+ Agent roles appear in the session catalog and run through `subagent_run(agent, prompt)`. A role may save an exact `provider` plus `model` pair and a `reasoning_effort`; every other declaration is ignored and the child inherits the parent route. `tools` and `disallowedTools` are preserved in the file but never applied. See [agent roles](docs/user/agent-roles.md) for the frontmatter fields and limits.
147
115
 
148
- Then open **Settings → Agent Plugins Market** in the Web GUI, add the marketplace repo URL, and install suites with one click. Skills, MCP servers, hooks and slash commands are injected into your dsh sessions at runtime — no conversion, no file copying.
116
+ ### Layout detection precedence
149
117
 
150
- ### Does DeepSeek Harness support `.claude-plugin/marketplace.json`?
118
+ When multiple manifests exist in the **same suite directory**, the first existing file in this order selects the layout:
151
119
 
152
- Yes — through this plugin. It reads `.claude-plugin/marketplace.json` + per-plugin `.claude-plugin/plugin.json` natively, plus `.codex-plugin`, `.cursor-plugin`, `.kimi-plugin`, `.plugin` (universal) and agent-plugins.org v1.0.0 `plugin.json` manifests (see the layout table above).
120
+ | Priority | Layout | Suite manifest | Marketplace catalog |
121
+ | --- | --- | --- | --- |
122
+ | 1 | [agent-plugins](https://agent-plugins.org) / root compatibility | `plugin.json` | No dedicated catalog |
123
+ | 2 | Universal compatibility | `.plugin/plugin.json` | `.plugin/marketplace.json` |
124
+ | 3 | Claude Code | `.claude-plugin/plugin.json` | `.claude-plugin/marketplace.json` |
125
+ | 4 | Cursor | `.cursor-plugin/plugin.json` | `.cursor-plugin/marketplace.json` |
126
+ | 5 | Kimi Code | `kimi.plugin.json`, then `.kimi-plugin/plugin.json` | `.kimi-plugin/marketplace.json` |
127
+ | 6 | Codex | `.codex-plugin/plugin.json` | `.agents/plugins/marketplace.json`, then `.agents/plugins/api_marketplace.json` |
128
+ | 7 | ZCode | `.zcode-plugin/plugin.json` | No dedicated catalog |
129
+ | 8 | Qoder CLI | `.qoder-plugin/plugin.json` | `.qoder-plugin/marketplace.json` |
130
+ | 9 | GitHub Copilot CLI | `.github/plugin/plugin.json` | `.github/plugin/marketplace.json` |
131
+ | Fallback | Skill collection / shared catalog | Discover skills when no recognized manifest exists | Root `marketplace.json` |
153
132
 
154
- ### Can it inject MCP servers from a plugin suite?
133
+ - **Manifests are tried in order:** a manifest that cannot be read or validated is reported and the next one is tried, down to the fallback. If every candidate fails, the suite is diagnosed instead of loading half of it.
134
+ - **Component fallback:** for a root `plugin.json` that does not declare a recognized agent-plugins `$schema`, missing component declarations can come from `.claude-plugin/plugin.json`; explicit root declarations win, and marketplace entry declarations fill remaining gaps.
135
+ - Marketplace catalogs follow the same order: the first catalog that produces suites wins, and invalid or empty catalogs allow the next candidate to be tried.
155
136
 
156
- Yes. Every valid `mcp.json` server of an enabled suite mounts a live `dsh-mcp-client` child, so MCP tools are callable by the DSH agent. `mcp.json` is validated strictly; `.mcp.json` is parsed leniently with placeholder support (`${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_PLUGIN_DATA}`, `${NAME:-default}`).
137
+ The order is defined in [`src/model/layouts.ts`](src/model/layouts.ts); selection and root-manifest fallback are implemented in [`src/catalog/manifests.ts`](src/catalog/manifests.ts).
157
138
 
158
- ### How do MCP servers that require an environment token work?
139
+ ### Layout support matrix
159
140
 
160
- Declare the server's environment value as a reference, for example `"env": { "FOO_TOKEN": "${FOO_TOKEN}" }`. Before starting the child, the market resolves that reference through DSH credentials. Open the suite detail view to configure a writable credential through the Host credentials service; the value is write-only and is never stored in the suite or override JSON. A read-only launch-environment credential must be changed before restarting DSH. Missing references block the child start and show `needs-credentials` instead of silently starting an unusable server.
141
+ The table says per layout whether this plugin reads a given surface at all. **Yes** means the layout's own files are read and injected; **Partial** means only part of the formats is understood, or the upstream layout has no such definition — the notes below say which. Evidence: the [compatibility report](docs/reference/compat-report.md) and [layout audit](docs/user/layout-coverage.md).
161
142
 
162
- ### What about Claude Code hooks?
143
+ | Layout | Skills | Agents | Commands | MCP | Hooks | LSP |
144
+ | ------------------------------------------------------------------------------------------------------------- | ------ | ------- | -------- | ------- | ------- | ------- |
145
+ | [Claude Code](https://code.claude.com/docs/en/plugins-reference) | Yes | Yes | Yes | Yes | Partial | Yes |
146
+ | [Codex](https://developers.openai.com/plugins/build/plugins) | Yes | Yes | Yes | Partial | Partial | Yes |
147
+ | [Cursor](https://cursor.com/docs/reference/plugins) | Yes | Partial | Partial | Partial | No | Yes |
148
+ | Kimi Code | Yes | Yes | Yes | Yes | Partial | Partial |
149
+ | [ZCode](https://zcode.z.ai/en/docs/plugin) `.zcode-plugin/` | Yes | Yes | Yes | Yes | Partial | Partial |
150
+ | [Qoder CLI](https://docs.qoder.com/cli/plugins-reference) `.qoder-plugin/` | Yes | Yes | Yes | Partial | Partial | Partial |
151
+ | [GitHub Copilot CLI](https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-plugin-reference) | Yes | Yes | Yes | Yes | Partial | Yes |
152
+ | Universal compatibility layout `.plugin/` | Yes | Yes | Yes | Yes | Partial | Yes |
153
+ | [agent-plugins](https://agent-plugins.org) | Yes | Partial | Partial | Yes | Partial | Partial |
154
+ | Manifest-less skill collection | Yes | Yes | Yes | Yes | Partial | Partial |
155
+ | Project-native directories | Yes | Yes | Yes | Yes | Partial | No |
163
156
 
164
- A suite's `hooks/hooks.json` is mounted through the official `@deepseek-ai/dsh-hooks-claude-code` bridge onto the harness interception points (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, SubagentStart, SubagentStop). Only the mapped command-hook subset runs — see the bridge's README for the exact mapping.
157
+ - **Skills** are read from the paths a manifest declares and from the conventional `skills/` directory, including flat `SKILL.md` files.
158
+ - **Agents and commands** are read as Markdown (`agents/*.md`, `commands/*.md`). Cursor commands must be `.md`; its `.mdc`, `.markdown` and `.txt` variants are not read. Codex and Kimi native agent/command formats (TOML, YAML) have no adapter yet.
159
+ - **MCP** covers declared files, inline tables and arrays. Cursor's schema-less `mcp.json` and agent-plugins' strict `mcp.json` both work; Kimi Code is inline-only. Codex app connectors stay outside this adapter.
160
+ - **Hooks** map the command-style events DSH has an equivalent for; events without one (for example `afterFileEdit`) are reported instead of simulated. Cursor's native events are not read.
161
+ - **LSP** accepts declared files, arrays and inline tables plus the conventional `.lsp.json` / `lsp.json` locations. Declarations inside a project are reported but not mounted: the host LSP registry is global. Some layouts only expose LSP directories for preview.
162
+ - **agent-plugins** standardizes portable skills and MCP only. Agents, commands and hooks for that layout are read through this plugin's shared directory conventions, not through the specification.
163
+ - **Universal** is a compatibility-layout label used by this plugin; the [OpenHands SDK](https://docs.openhands.dev/sdk/guides/plugins) documents the same `.plugin/plugin.json` location and a [Vercel repository](https://github.com/vercel/vercel-plugin/blob/main/.plugin/plugin.json) uses it, but no cross-vendor specification exists.
165
164
 
166
- ### Do Claude Code-authored skills work verbatim?
165
+ Reading a layout does not guarantee every behavior of its original platform. Invalid declarations are diagnosed and skipped.
167
166
 
168
- Yes. `${CLAUDE_PLUGIN_ROOT}` is substituted automatically at runtime, so Claude Code ecosystem skills run unchanged and appear in the `/` slash menu.
167
+ ### Project layout switch
169
168
 
170
- ### dsh-agent-plugins-market vs manually copying skill files?
169
+ The plugin settings card has **Scan project Agent layouts** (`dsh-agent-plugins-market.scanProjectLayouts`, default off). It controls one thing: whether the project you are working in contributes skills, commands, agent roles, MCP servers and hooks from its own directories (`.claude`, `.agents`, `.codex`, `.cursor`, `.kimi`, `.zcode`, `.qoder`, `.github`). Turning it on adds those candidates immediately and turning it off removes them; configured sources and installed suites are unaffected.
171
170
 
172
- Manual copying breaks `${CLAUDE_PLUGIN_ROOT}` paths, skips MCP servers/hooks/commands, and gives you no update path. This plugin installs whole suites from git sources with per-plugin enable/disable/refresh, and injects every surface (skills, MCP, hooks, commands, subagents) automatically.
171
+ [Project layouts](docs/user/usage.md#project-layouts) lists the directories and files read per layout and how they are mounted.
173
172
 
174
- ### Is it safe to install third-party suites?
173
+ ### Verified samples
175
174
 
176
- The plugin never executes third-party code at install time: git sources clone through `execFile` (no shell), and third-party failures (broken manifests, invalid skills, escaping paths, unknown MCP transports, mount failures) are contained as per-plugin diagnostics. As with any third-party code, review a suite before enabling it.
175
+ The README repositories have offline snapshots in [`tests/fixtures/real-layouts/`](tests/fixtures/real-layouts/) with commit IDs, hashes and licenses, and each layout has an isolated reader test. The [compatibility report](docs/reference/compat-report.md) records the sampled repositories, their schema verdicts and the scanner output; [the audit](docs/user/layout-coverage.md) records independent resource checks. These are documentation, source and sample checks — not end-to-end certification for every platform.
177
176
 
178
- ### Is it free and open source?
177
+ Review third-party suites before enabling them: enabled services and hooks can execute programs. See the [runtime and security details](docs/user/usage.md#runtime-and-security).
179
178
 
180
- Yes — MIT licensed, published on [npm](https://www.npmjs.com/package/dsh-agent-plugins-market), source on [GitHub](https://github.com/Sivan757/dsh-agent-plugins-market).
179
+ ## FAQ
181
180
 
182
- ## Requirements
181
+ **Why is an installed skill or tool missing?**
183
182
 
184
- - `ctx.skills` (dsh-skill) is required.
185
- - Optional peers: `@deepseek-ai/dsh-mcp-client` (MCP injection), `@deepseek-ai/dsh-hooks-claude-code` (hooks bridge); missing capabilities degrade gracefully.
186
- - The Host credentials service is optional: standard DSH profiles provide it for write-only token configuration and live remounts; without it, `${ENV_NAME}` falls back to the launch environment and requires a restart after changes.
187
- - Web GUI ≥ 0.1.0-rc.6.
183
+ Check that the suite and the relevant capability are enabled. Skills may restrict manual invocation. MCP / LSP panels show user-service failures. Project resources additionally require the project-scan switch; unsupported native fields and project LSP declarations appear in scan diagnostics.
188
184
 
189
- ## Security model
185
+ **Where do I configure MCP tokens?**
190
186
 
191
- - Git sources clone through `git` via `execFile` (no shell), depth 1, shallow `fetch` + `reset` updates, configurable timeouts/proxy/mirrors with a low-speed guard; local sources are read in place and never deleted. Archive sources are HTTPS-only by default, capped at 256 MiB, extracted with path-traversal guards, and optionally pinned to a SHA-256 digest.
192
- - Mutating HTTP routes accept same-origin POSTs only; bodies capped at 64 KiB.
193
- - Portable paths must start with `./` and resolve inside the plugin root (symlink escapes rejected); `${PLUGIN_ROOT}` / `${PLUGIN_DATA}` expand.
194
- - Third-party failures are always contained: broken manifests, invalid skills, escaping paths, unknown MCP transports, missing MCP credentials, and mount failures are per-plugin diagnostics.
195
- - MCP credential values are resolved in memory through the Host credentials service; status/detail projections redact sensitive fields and credential writes never persist literal values in suite state or overrides.
196
- - An error boundary wraps the whole market section and the detail modal: any preview render failure degrades to a notice instead of crashing the UI.
187
+ Open the service in **MCP services**. Missing environment references show `needs-credentials`. Host-managed credentials are write-only; launch-environment credentials require changing the environment and restarting DSH.
197
188
 
198
- ## Known limitations
189
+ **How do I add a service that no suite declares?**
199
190
 
200
- - Project-dimension MCP servers are not mounted (dsh has no per-session tool scope); the project dimension covers skills and context.
201
- - Skill discovery has no file watcher: catalog changes apply after a manager action or a host restart (project-dimension snapshots are cached for 5 seconds on the skill-list hot path).
202
- - Claude Code hooks support the mapped bridge subset; LSP is counted and previewed but not executed.
203
- - Native project layouts (`.claude/`, `.agents/`) inject skills and subagents; their `commands/*.md` are not registered as slash commands because the harness command registry is process-scoped, not session-cwd-scoped.
191
+ Use **Add** in **MCP services** or **LSP servers**. The declaration is validated, stored in `~/.agents/mcp.json` or `~/.agents/lsp.json`, and mounted through the same lifecycle as suite services. Host-observed services remain read-only.
204
192
 
205
- ## Development
193
+ **Do sources refresh automatically?**
206
194
 
207
- ```sh
208
- pnpm install
209
- pnpm run test # vitest over fixture suites + multi-dialect parsing
210
- pnpm run typecheck
211
- pnpm run lint # ESLint over the refactored source and tests
212
- pnpm run format:check
213
- pnpm run check:architecture
214
- pnpm run check:refactor
215
- pnpm run build # tsc host + tsdown client + module-loader banner
216
- pnpm pack
217
- ```
195
+ Only when **Background source updates** is on: every configured source is then refreshed every 6 hours, starting one interval after you enable it. The switch is off by default, and the refresh button always works.
218
196
 
219
- The internal modularization decision and staged migration are documented in [`docs/design/engineering-refactor-plan.md`](docs/design/engineering-refactor-plan.md) and [`docs/adr/0001-catalog-centered-modular-refactor.md`](docs/adr/0001-catalog-centered-modular-refactor.md).
197
+ **What if a source download fails?**
220
198
 
221
- The docs website lives in [`docs-site/`](docs-site/) (Astro, deployed to GitHub Pages).
199
+ Use a local directory, adopt a manual checkout, or configure a proxy / mirror. See [source configuration](docs/user/usage.md#configure-marketplace-sources).
222
200
 
223
- ## Vendored assets
201
+ **When do local edits become visible?**
224
202
 
225
- The `schemas/1.0.0/` JSON Schemas are vendored from [agentplugins/agent-plugins-spec](https://github.com/agentplugins/agent-plugins-spec) (spec 1.0.0 working draft); the spec forbids fetching schemas at load time.
203
+ There is no file watcher. Local-source discovery caches results for up to 30 seconds; refresh the source to invalidate them immediately. Project discovery has a separate five-second cache. A refresh does not happen automatically on an already-open page.
226
204
 
227
- ## Related projects
205
+ **Does removing a source delete its files?**
228
206
 
229
- - [dsh-skills](https://github.com/CocoSgt/dsh-skills) — centralize `~/.claude/skills` and `.skill` packages into a global DSH skill library
230
- - [@claude2dsh/plugin](https://www.npmjs.com/package/@claude2dsh/plugin) — import Claude Code sessions & skills into DSH, sync sessions back
231
- - [dsh-crew](https://github.com/ZSeven-W/dsh-crew) — dispatch work from Claude Code / Codex to DSH agents
232
- - [deepseek-ai/deepseek-harness](https://github.com/deepseek-ai/deepseek-harness) — the DeepSeek Harness itself (official)
233
- - [awesome-deepseek-harness-plugins](https://github.com/imsai-sh/awesome-deepseek-harness-plugins) — community DSH plugin directory
207
+ Only when you tick **also delete the managed market directory** in the confirmation. That removes the source's checkout under `~/.dsh/agent-plugins/.sources/<id>` — including one you cloned yourself and adopted. A local-directory source pointing outside `.sources/` is never deleted.
234
208
 
235
- ---
209
+ ## More documentation
236
210
 
237
- **If this plugin helps you, please give it a ⭐ on GitHub — it helps more people find the Claude Code ecosystem inside DeepSeek Harness.**
211
+ - [Usage guide](docs/user/usage.md): installation, source configuration, storage, host requirements, project layouts, MCP / LSP and feedback settings.
212
+ - [Plugin specifications](schemas/README.md): per-dialect reference schemas and evidence, plus the vendored agent-plugins v1.0.0 contracts.
213
+ - [Compatibility report](docs/reference/compat-report.md): one real repository per schema, with commits, schema verdicts and scanner output.
214
+ - [Contributing](CONTRIBUTING.md): development setup, checks and PR workflow.
215
+ - [Security policy](SECURITY.md) · [Release history](CHANGELOG.md) · [MIT license](LICENSE).
216
+ - [Domain glossary](CONTEXT.md) · [Architecture](docs/developer/decisions/0001-catalog-centered-modular-refactor.md).
217
+ - [Agent roles and storage](docs/user/agent-roles.md): installed-resource editing, model routing and migration.