prompt-skill-armory 0.5.5 → 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 (39) hide show
  1. package/README.en.md +207 -0
  2. package/README.md +154 -60
  3. package/package.json +18 -5
  4. package/packages/client-ui-switchblade/lib/client.js +1662 -478
  5. package/packages/client-ui-switchblade/lib/client.js.map +1 -1
  6. package/packages/client-ui-switchblade/lib/tsconfig.tsbuildinfo +1 -1
  7. package/packages/client-ui-switchblade/lib/types/client/SwitchbladeSection.d.ts +0 -1
  8. package/packages/client-ui-switchblade/lib/types/client/SwitchbladeSection.d.ts.map +1 -1
  9. package/packages/client-ui-switchblade/lib/types/client/SwitchbladeSection.js +191 -182
  10. package/packages/client-ui-switchblade/lib/types/client/SwitchbladeSection.js.map +1 -1
  11. package/packages/client-ui-switchblade/lib/types/client/index.d.ts +0 -1
  12. package/packages/client-ui-switchblade/lib/types/client/index.js +5 -6
  13. package/packages/client-ui-switchblade/lib/types/client/locales.d.ts +0 -1
  14. package/packages/client-ui-switchblade/lib/types/client/locales.js +0 -1
  15. package/packages/client-ui-switchblade/lib/types/client/store.d.ts +1 -2
  16. package/packages/client-ui-switchblade/lib/types/client/store.js +0 -1
  17. package/packages/client-ui-switchblade/lib/types/index.d.ts +0 -1
  18. package/packages/client-ui-switchblade/lib/types/index.js +0 -1
  19. package/packages/client-ui-switchblade/lib/types/invariant.d.ts +0 -1
  20. package/packages/client-ui-switchblade/lib/types/invariant.js +0 -1
  21. package/packages/client-ui-switchblade/package.json +2 -2
  22. package/packages/client-ui-switchblade/src/client/SwitchbladeSection.tsx +505 -205
  23. package/packages/client-ui-switchblade/src/client/background.ts +354 -0
  24. package/packages/client-ui-switchblade/src/client/index.ts +23 -0
  25. package/packages/client-ui-switchblade/src/client/store.ts +105 -5
  26. package/packages/switchblade/lib/commands.js +1 -1
  27. package/packages/switchblade/lib/commands.mjs +184 -0
  28. package/packages/switchblade/lib/index.js +429 -54
  29. package/packages/switchblade/lib/index.mjs +1225 -0
  30. package/packages/switchblade/lib/invariant.js +1 -12
  31. package/packages/switchblade/lib/invariant.mjs +43 -0
  32. package/packages/switchblade/lib/patch.js +1 -18
  33. package/packages/switchblade/lib/patch.mjs +184 -0
  34. package/packages/switchblade/lib/switchblade.js +429 -26
  35. package/packages/switchblade/lib/switchblade.mjs +1009 -0
  36. package/packages/switchblade/lib/tsconfig.tsbuildinfo +1 -1
  37. package/packages/switchblade/package.json +2 -2
  38. package/packages/switchblade/src/switchblade.ts +384 -7
  39. package/packages/switchblade/src/types.ts +46 -0
package/README.en.md ADDED
@@ -0,0 +1,207 @@
1
+ # Prompt•Skill-Armory
2
+
3
+ > **A CCswitch-style prompt + skill manager for the DeepSeek Harness**
4
+ > Manage globally injected prompts, install skills from `.md`/directory/zip, and browse agent presets — one panel with enable/disable switches.
5
+
6
+ [**中文**](./README.md) · **English**
7
+
8
+ ![version](https://img.shields.io/badge/version-0.5.6-00ff9c)
9
+ ![license](https://img.shields.io/badge/license-MIT-blue)
10
+ ![platform](https://img.shields.io/badge/platform-web%20%2B%20desktop-00ff9c)
11
+ ![CI](https://github.com/Qian-Ning/prompt-skill-armory/actions/workflows/ci.yml/badge.svg)
12
+
13
+ ```
14
+ ✦ Prompt•Skill-Armory [v0.5.6]
15
+ ┌────────────┬──────────────────┬──────────────┐
16
+ │ 提示词 │ 技能 │ Agent预设 │
17
+ │ (全局生效) │ (合并管理) │ (roster) │
18
+ └────────────┴──────────────────┴──────────────┘
19
+ ```
20
+
21
+ ---
22
+
23
+ ## 📑 Table of contents
24
+
25
+ - [🚀 Quick start](#-quick-start)
26
+ - [✨ Features](#-features)
27
+ - [🖥️ Platform support](#️-platform-support)
28
+ - [🧰 Using a skill in chat](#-using-a-skill-in-chat)
29
+ - [🏗️ Architecture](#️-architecture)
30
+ - [📦 Packages](#-packages)
31
+ - [🗂️ Repository layout](#️-repository-layout)
32
+ - [🛠️ Development](#️-development)
33
+ - [❓ FAQ](#-faq)
34
+ - [📚 Docs](#-docs)
35
+ - [🤝 Contributing / Upstream](#-contributing--upstream)
36
+ - [📄 License](#-license)
37
+
38
+ ---
39
+
40
+ ## 🚀 Quick start
41
+
42
+ ### Install
43
+
44
+ ```bash
45
+ npx prompt-skill-armory
46
+ ```
47
+
48
+ The installer automatically:
49
+
50
+ 1. Locates DSH home
51
+ 2. Ensures `web` + `desktop` profiles exist
52
+ 3. Installs both plugin packages (Host + Web panel)
53
+ 4. Configures the Host bundle
54
+ 5. Mounts the panel (profile `cordis.patch.yml`)
55
+ 6. Health-checks settings (prevents 4MB bloat)
56
+
57
+ ### Launch
58
+
59
+ ```bash
60
+ cd deepseek-harness
61
+ pnpm run build
62
+ pnpm dsh web
63
+ ```
64
+
65
+ (Or simply relaunch the DSH Desktop client.)
66
+
67
+ Open **Settings → Prompt•Skill-Armory** (book icon).
68
+
69
+ > **Requirement**: DeepSeek Harness runtime already installed (`dsh web` or the Desktop client). This is a plugin for DSH — it does not bundle the runtime itself.
70
+
71
+ ---
72
+
73
+ ## ✨ Features
74
+
75
+ - **Prompts (global)** — CRUD, enable/disable, set default. Enabled prompts are injected into **every agent's system prompt** via `ctx.systemPrompt.section`.
76
+ - **Skills (merged)** — one list: panel-installed (edit/toggle/uninstall) + locally scanned (managed), with invoke hint `/name`.
77
+ - **Skill install paths**
78
+ - Manual entry
79
+ - `.md` file picker
80
+ - CLI in a session: `/armory-skill-dir <dir>`, `/armory-install-zip <zip>`
81
+ - **Agent presets** — browse the roster, set default.
82
+ - **Bilingual UI** (Simplified Chinese / English).
83
+ - **Book icon** in the settings sidebar.
84
+
85
+ ## 🖥️ Platform support
86
+
87
+ | Environment | Panel | `/armory` commands |
88
+ |---|---|---|
89
+ | `dsh web` (official) | ✅ | ✅ |
90
+ | DSH Desktop client | ✅ | ✅ |
91
+
92
+ Works via profile composition (the installer mounts the panel into each profile's `cordis.patch.yml`) — no fork of the client needed.
93
+
94
+ ## 🧰 Using a skill in chat
95
+
96
+ Type `/` then the skill name:
97
+
98
+ ```
99
+ /code-review
100
+ /mission-keeper
101
+ ```
102
+
103
+ The skill body is injected; the agent follows it. Model-invocable skills are also visible to the model.
104
+
105
+ ## 🏗️ Architecture
106
+
107
+ ```
108
+ ┌──────────────────────────────────────────────────────┐
109
+ │ DSH runtime │
110
+ │ │
111
+ │ ┌─────────────┐ RPC/connection ┌─────────────┐ │
112
+ │ │ Web panel │◄──────────────────►│ Host service│ │
113
+ │ │ ui-switchblade│ api.skills.* │ switchblade │ │
114
+ │ │ (settings) │ api.settings.* │ (bundle) │ │
115
+ │ └─────────────┘ └──────┬──────┘ │
116
+ │ │ │
117
+ │ ctx.systemPrompt.section│
118
+ │ ctx.skills.register │
119
+ │ │ │
120
+ │ ┌─────────────┴──────┐ │
121
+ │ │ each agent's system │ │
122
+ │ │ prompt / skill │ │
123
+ │ │ registry / presets │ │
124
+ │ └────────────────────┘ │
125
+ └──────────────────────────────────────────────────────┘
126
+ ```
127
+
128
+ - **Host service** (`switchblade` bundle) owns prompt/skill/preset CRUD + persistence, injecting globally via `ctx.systemPrompt.section` and registering skills via `ctx.skills.register`.
129
+ - **Web panel** (`ui-switchblade`) talks to the Host over connection RPC (`api.skills.list`, `api.agentPresets.list`, `api.settings.mutate/describe`) — never touches DSH internals directly.
130
+ - **Installer** wires both into DSH via profile composition — web and desktop share the same mechanism.
131
+
132
+ ## 📦 Packages
133
+
134
+ | Package | Role |
135
+ |---|---|
136
+ | `prompt-skill-armory` | npm installer (CLI) |
137
+ | `@deepseek-ai/dsh-switchblade` | Host service (prompts/skills/commands) |
138
+ | `@deepseek-ai/dsh-client-ui-switchblade` | Web panel |
139
+
140
+ ## 🗂️ Repository layout
141
+
142
+ ```
143
+ prompt-skill-armory/
144
+ ├── cli.cjs # one-command install CLI
145
+ ├── package.json # npm installer package
146
+ ├── packages/ # shipped plugin builds (lib+src+manifest)
147
+ │ ├── switchblade/ # @deepseek-ai/dsh-switchblade (Host)
148
+ │ └── client-ui-switchblade/ # @deepseek-ai/dsh-client-ui-switchblade (Web)
149
+ ├── plugin-src/ # plugin source mirrors
150
+ ├── scripts/build-shipped.mjs # sync builds from a DSH checkout
151
+ ├── demo/demo.html # UI preview (mock data)
152
+ ├── README.md # this file (中文) · README.en.md (English)
153
+ ├── UPSTREAM.md # upstream integration guide
154
+ ├── CHANGELOG.md # version history
155
+ ├── PUBLISHING.md # publishing guide
156
+ ├── TESTING.md # testing guide
157
+ ├── LICENSE # MIT
158
+ └── .github/workflows/ci.yml # CI quality gate
159
+ ```
160
+
161
+ ## 🛠️ Development
162
+
163
+ After editing source, rebuild shipped packages:
164
+
165
+ ```bash
166
+ node scripts/build-shipped.mjs <path-to-deepseek-harness>
167
+ ```
168
+
169
+ Version bumps touch three places:
170
+
171
+ 1. `packages/*/package.json` `version`
172
+ 2. `ARMORY_VERSION` (panel constant)
173
+ 3. `CHANGELOG.md`
174
+
175
+ Then rebuild the client bundle so the badge updates.
176
+
177
+ ## ❓ FAQ
178
+
179
+ **Q: Why is my client sidebar icon a gear instead of a book?**
180
+ A: The desktop client's packaged `SettingsRoot` hardcodes the icon mapping. Via the npm installer's profile composition the panel works fine, but the book icon requires upstream integration (see [`UPSTREAM.md`](./UPSTREAM.md)).
181
+
182
+ **Q: Will this affect my existing config / sessions?**
183
+ A: No. The plugin only adds a `switchblade` settings namespace and leaves everything else untouched. The installer also health-checks settings to prevent bloat.
184
+
185
+ **Q: Does it work offline?**
186
+ A: Yes. Copy the npm tarball to the target machine and `npm install <tarball>`; or `file:`-install a local build (see [`TESTING.md`](./TESTING.md)).
187
+
188
+ **Q: Where do skills come from?**
189
+ A: Three ways: manual entry, `.md` file picker, or in-session `/armory-skill-dir` (directory) / `/armory-install-zip` (zip). All land in the merged Skills tab for management.
190
+
191
+ ## 📚 Docs
192
+
193
+ | Doc | Description |
194
+ |---|---|
195
+ | [`README.md`](./README.md) | Chinese readme |
196
+ | [`TESTING.md`](./TESTING.md) | Local functional testing (no publish needed) |
197
+ | [`PUBLISHING.md`](./PUBLISHING.md) | Publishing a new version |
198
+ | [`UPSTREAM.md`](./UPSTREAM.md) | Upstream integration (book-icon PR) |
199
+ | [`CHANGELOG.md`](./CHANGELOG.md) | Full version history |
200
+
201
+ ## 🤝 Contributing / Upstream
202
+
203
+ See [`UPSTREAM.md`](./UPSTREAM.md) — how to upstream the panel natively into `deepseek-ai/deepseek-harness` and `anywhere-labs/dsh-desktop` (book icon in the desktop sidebar).
204
+
205
+ ## 📄 License
206
+
207
+ MIT
package/README.md CHANGED
@@ -1,33 +1,60 @@
1
- # Prompt-SkillArmory
1
+ # Prompt•Skill-Armory
2
2
 
3
- CCswitch-style **prompt + skill manager** for the DeepSeek Harness web UI:
4
- globally injected prompts, skill install (manual / `.md` / directory / zip via
5
- CLI), agent-preset browsing — all in one panel with enable/disable switches.
3
+ > **DeepSeek Harness 的提示词与技能管理器(CCswitch 风格)**
4
+ > 管理全局生效的提示词、从 `.md`/目录/zip 安装技能、浏览 Agent 预设——一个面板,带启用/停用开关。
5
+
6
+ **中文** · [**English**](./README.en.md)
7
+
8
+ ![version](https://img.shields.io/badge/version-0.5.6-00ff9c)
9
+ ![license](https://img.shields.io/badge/license-MIT-blue)
10
+ ![platform](https://img.shields.io/badge/platform-web%20%2B%20desktop-00ff9c)
11
+ ![CI](https://github.com/Qian-Ning/prompt-skill-armory/actions/workflows/ci.yml/badge.svg)
6
12
 
7
13
  ```
8
- ✦ Prompt-SkillArmory [v0.4.0]
9
- ┌────────────┬─────────────────┬──────────────┐
10
- │ 提示词 │ 技能 │ Agent预设 │
11
- │ (全局生效) │ (合并管理) │ (roster) │
12
- └────────────┴─────────────────┴──────────────┘
14
+ ✦ Prompt•Skill-Armory [v0.5.6]
15
+ ┌────────────┬──────────────────┬──────────────┐
16
+ │ 提示词 │ 技能 │ Agent预设 │
17
+ │ (全局生效) │ (合并管理) │ (roster) │
18
+ └────────────┴──────────────────┴──────────────┘
13
19
  ```
14
20
 
15
21
  ---
16
22
 
17
- ## One-command install
23
+ ## 📑 目录
24
+
25
+ - [🚀 快速开始](#-快速开始)
26
+ - [✨ 功能](#-功能)
27
+ - [🖥️ 平台支持](#️-平台支持)
28
+ - [🧰 在聊天中使用技能](#-在聊天中使用技能)
29
+ - [🏗️ 架构](#️-架构)
30
+ - [📦 包含的包](#-包含的包)
31
+ - [🗂️ 仓库结构](#️-仓库结构)
32
+ - [🛠️ 开发](#️-开发)
33
+ - [❓ FAQ](#-faq)
34
+ - [📚 文档](#-文档)
35
+ - [🤝 贡献 / 官方合入](#-贡献--官方合入)
36
+ - [📄 许可](#-许可)
37
+
38
+ ---
39
+
40
+ ## 🚀 快速开始
41
+
42
+ ### 安装
18
43
 
19
44
  ```bash
20
45
  npx prompt-skill-armory
21
46
  ```
22
47
 
23
- The installer:
24
- 1. locates the harness home (`~/.dsh` or `$DSH_HOME`),
25
- 2. copies the two plugin packages into
26
- `~/.dsh/profiles/web/node_modules/@deepseek-ai/`,
27
- 3. adds the Host bundle to the web profile's `dsh.profile.bundles`,
28
- 4. prints next steps.
48
+ 安装器自动完成:
49
+
50
+ 1. 定位 DSH home
51
+ 2. 确保 `web` + `desktop` profile 存在
52
+ 3. 安装两个插件包(Host + Web 面板)
53
+ 4. 配置 Host bundle
54
+ 5. 挂载面板(profile `cordis.patch.yml`)
55
+ 6. 体检 settings(防 4MB 膨胀)
29
56
 
30
- Then, in your DeepSeek Harness checkout:
57
+ ### 启动
31
58
 
32
59
  ```bash
33
60
  cd deepseek-harness
@@ -35,78 +62,145 @@ pnpm run build
35
62
  pnpm dsh web
36
63
  ```
37
64
 
38
- Open **Settings** **Prompt-SkillArmory** (book icon).
65
+ (或直接重启 DSH Desktop 客户端。)
39
66
 
40
- > **Requirement**: a working DeepSeek Harness runtime (`dsh web`). The plugin
41
- > plugs into DSH; it does not bundle the runtime.
67
+ 打开 **设置 Prompt•Skill-Armory**(书图标)。
68
+
69
+ > **要求**:已安装 DeepSeek Harness 运行时(`dsh web` 或桌面客户端)。插件是 DSH 的插件,不打包运行时本身。
42
70
 
43
71
  ---
44
72
 
45
- ## Features
73
+ ## ✨ 功能
74
+
75
+ - **提示词(全局生效)** — 增删改查、启用/停用、设默认。启用后经 `ctx.systemPrompt.section` 注入**每个 agent** 的系统提示词。
76
+ - **技能(合并管理)** — 一个列表:面板安装的(编辑/开关/卸载)+ 本地扫描的(托管),带调用提示 `/name`。
77
+ - **技能安装方式**
78
+ - 手动填写
79
+ - `.md` 文件选择
80
+ - 会话内命令:`/armory-skill-dir <dir>`、`/armory-install-zip <zip>`
81
+ - **Agent 预设** — 浏览名册、设默认。
82
+ - **中英双语 UI**(简体中文 / English)。
83
+ - **设置侧边栏书图标**。
46
84
 
47
- - **Prompts (global)** — add / edit / enable / disable / set default / delete.
48
- Enabled prompts are injected into every agent's system prompt via
49
- `ctx.systemPrompt.section`.
50
- - **Skills** — one merged list: panel-installed (edit / toggle / uninstall)
51
- and locally scanned (adopt). Per-card invoke hint: `/skill-name`.
52
- - **Skill install paths**
53
- - Manual entry (name / description / content)
54
- - `.md` file picker (browser)
55
- - CLI in a session:
56
- - `/armory-skill-dir <dir>` — directory skill (SKILL.md + references)
57
- - `/armory-install-zip <zip>` — zip bundle
58
- - **Agent presets** — browse the roster, set default.
59
- - Bilingual (简体中文 / English).
60
- - Book icon in the settings sidebar.
85
+ ## 🖥️ 平台支持
61
86
 
62
- > Legacy `/sw-*` command aliases still work.
87
+ | 环境 | 面板 | `/armory` 命令 |
88
+ |---|---|---|
89
+ | `dsh web`(官方) | ✅ | ✅ |
90
+ | DSH Desktop 客户端 | ✅ | ✅ |
63
91
 
64
- ## Using a skill in chat
92
+ 通过 profile 组合实现(安装器把面板挂进每个 profile `cordis.patch.yml`)——无需 fork 客户端。
65
93
 
66
- Type `/` then the skill name in the chat input, e.g.:
94
+ ## 🧰 在聊天中使用技能
95
+
96
+ 在输入框打 `/` + 技能名:
67
97
 
68
98
  ```
69
99
  /code-review
70
100
  /mission-keeper
71
101
  ```
72
102
 
73
- The skill body is injected and the agent follows it. Skills are also visible
74
- to the model when `modelInvocable`.
103
+ 技能体被注入,agent 按它执行。`modelInvocable` 的技能模型也可自主调用。
75
104
 
76
- ---
105
+ ## 🏗️ 架构
106
+
107
+ ```
108
+ ┌──────────────────────────────────────────────────────┐
109
+ │ DSH 运行时 │
110
+ │ │
111
+ │ ┌─────────────┐ RPC/connection ┌─────────────┐ │
112
+ │ │ Web 面板 │◄──────────────────►│ Host 服务 │ │
113
+ │ │ ui-switchblade│ api.skills.* │ switchblade │ │
114
+ │ │ (settings) │ api.settings.* │ (bundle) │ │
115
+ │ └─────────────┘ └──────┬──────┘ │
116
+ │ │ │
117
+ │ ctx.systemPrompt.section│
118
+ │ ctx.skills.register │
119
+ │ │ │
120
+ │ ┌─────────────┴──────┐ │
121
+ │ │ 每个 agent 系统提示词 │ │
122
+ │ │ 技能注册表 / 预设 │ │
123
+ │ └────────────────────┘ │
124
+ └──────────────────────────────────────────────────────┘
125
+ ```
77
126
 
78
- ## Repository layout
127
+ - **Host 服务**(`switchblade` bundle)持有提示词/技能/预设的 CRUD 与持久化,通过 `ctx.systemPrompt.section` 全局注入、`ctx.skills.register` 注册技能。
128
+ - **Web 面板**(`ui-switchblade`)通过 connection RPC 调用 Host(`api.skills.list`、`api.agentPresets.list`、`api.settings.mutate/describe`),不直接碰 DSH 内部。
129
+ - **安装器**把两者通过 profile 组合装进 DSH——web 和 desktop 共用同一套机制。
130
+
131
+ ## 📦 包含的包
132
+
133
+ | 包 | 作用 |
134
+ |---|---|
135
+ | `prompt-skill-armory` | npm 安装器(CLI) |
136
+ | `@deepseek-ai/dsh-switchblade` | Host 服务(提示词/技能/命令) |
137
+ | `@deepseek-ai/dsh-client-ui-switchblade` | Web 面板 |
138
+
139
+ ## 🗂️ 仓库结构
79
140
 
80
141
  ```
81
142
  prompt-skill-armory/
82
- ├── package.json # npm installer package (bin: armory)
83
- ├── cli.mjs # one-command install CLI
84
- ├── packages/ # shipped plugin builds (lib + src + manifests)
85
- │ ├── switchblade/ @deepseek-ai/dsh-switchblade (Host)
86
- │ └── client-ui-switchblade/ @deepseek-ai/dsh-client-ui-switchblade (Web panel)
87
- ├── plugin-src/ # plugin source mirrors (dev reference)
88
- ├── scripts/ # dev helpers (link, build)
89
- ├── demo/demo.html # standalone UI preview (mock data)
90
- ├── CHANGELOG.md # version history
91
- └── PUBLISHING.md # npm publish walkthrough
143
+ ├── cli.cjs # 一键安装 CLI
144
+ ├── package.json # npm 安装器包
145
+ ├── packages/ # 构建好的插件(lib+src+manifest)
146
+ │ ├── switchblade/ # @deepseek-ai/dsh-switchblade (Host)
147
+ │ └── client-ui-switchblade/ # @deepseek-ai/dsh-client-ui-switchblade (Web)
148
+ ├── plugin-src/ # 插件源码镜像
149
+ ├── scripts/build-shipped.mjs # DSH checkout 同步构建产物
150
+ ├── demo/demo.html # UI 预览(mock 数据)
151
+ ├── README.md # 本文(中文)· README.en.md 英文版
152
+ ├── UPSTREAM.md # 官方合入指南
153
+ ├── CHANGELOG.md # 版本历史
154
+ ├── PUBLISHING.md # 发布指南
155
+ ├── TESTING.md # 测试指南
156
+ ├── LICENSE # MIT
157
+ └── .github/workflows/ci.yml # CI 质量门禁
92
158
  ```
93
159
 
94
- ## Development
160
+ ## 🛠️ 开发
161
+
162
+ 改源码后重建发布包:
95
163
 
96
164
  ```bash
97
- # after editing plugin-src, rebuild the shipped packages
98
- node scripts/build-shipped.mjs
165
+ node scripts/build-shipped.mjs <path-to-deepseek-harness>
99
166
  ```
100
167
 
101
- Version bumps touch **three places** together:
168
+ 版本更新三处同步:
169
+
102
170
  1. `packages/*/package.json` `version`
103
- 2. panel `ARMORY_VERSION` in `plugin-src/client/src/client/SwitchbladeSection.tsx`
171
+ 2. `ARMORY_VERSION`(面板常量)
104
172
  3. `CHANGELOG.md`
105
173
 
106
- ## Version history
174
+ 然后重建 client bundle 让版本徽章更新。
175
+
176
+ ## ❓ FAQ
177
+
178
+ **Q: 为什么我的客户端侧边栏图标是齿轮而不是书?**
179
+ A: 桌面客户端打包版的 `SettingsRoot` 硬编码了图标映射。通过 npm 安装器的 profile 组合,面板能正常工作,但书图标需要官方合入(见 [`UPSTREAM.md`](./UPSTREAM.md))。
180
+
181
+ **Q: 会不会影响我已有的配置/会话?**
182
+ A: 不会。插件只新增 `switchblade` settings 命名空间,不动其他配置。安装器还会体检 settings,防止膨胀。
183
+
184
+ **Q: 支持离线安装吗?**
185
+ A: 可以。把 npm 包拷到目标机器,`npm install <tarball>` 即可;或用 `file:` 安装本地构建产物(见 [`TESTING.md`](./TESTING.md))。
186
+
187
+ **Q: 技能从哪里来?**
188
+ A: 三种:手动填写、`.md` 文件选择、会话内 `/armory-skill-dir`(目录)或 `/armory-install-zip`(zip)。安装后统一进"技能"tab 管理。
189
+
190
+ ## 📚 文档
191
+
192
+ | 文档 | 说明 |
193
+ |---|---|
194
+ | [`README.en.md`](./README.en.md) | 英文版自述 |
195
+ | [`TESTING.md`](./TESTING.md) | 本地功能测试(无需发布) |
196
+ | [`PUBLISHING.md`](./PUBLISHING.md) | 发布新版本指南 |
197
+ | [`UPSTREAM.md`](./UPSTREAM.md) | 官方合入指南(书图标 PR) |
198
+ | [`CHANGELOG.md`](./CHANGELOG.md) | 完整版本历史 |
199
+
200
+ ## 🤝 贡献 / 官方合入
107
201
 
108
- See `CHANGELOG.md`. Current: **0.4.0**.
202
+ [`UPSTREAM.md`](./UPSTREAM.md) —— 如何让面板原生内置进 `deepseek-ai/deepseek-harness` 与 `anywhere-labs/dsh-desktop`(客户端侧边栏书图标)。
109
203
 
110
- ## License
204
+ ## 📄 许可
111
205
 
112
206
  MIT
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "prompt-skill-armory",
3
- "version": "0.5.5",
4
- "description": "One-command installer for Prompt-SkillArmory (prompts + skills manager) into a DeepSeek Harness web profile",
3
+ "version": "0.7.0",
4
+ "description": "One-command installer for Prompt-SkillArmory (prompts + skills manager) into the DeepSeek Harness (web + desktop)",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "armory": "./cli.cjs"
@@ -11,6 +11,9 @@
11
11
  "packages/"
12
12
  ],
13
13
  "license": "MIT",
14
+ "engines": {
15
+ "node": ">=18"
16
+ },
14
17
  "scripts": {
15
18
  "postinstall": "node ./cli.cjs --postinstall",
16
19
  "build:shipped": "node scripts/build-shipped.mjs"
@@ -21,6 +24,16 @@
21
24
  "dsh",
22
25
  "prompt",
23
26
  "skill",
24
- "ccswitch"
25
- ]
26
- }
27
+ "ccswitch",
28
+ "agent",
29
+ "desktop"
30
+ ],
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "https://github.com/Qian-Ning/prompt-skill-armory.git"
34
+ },
35
+ "homepage": "https://github.com/Qian-Ning/prompt-skill-armory",
36
+ "bugs": {
37
+ "url": "https://github.com/Qian-Ning/prompt-skill-armory/issues"
38
+ }
39
+ }