Bundle
dsh-idea-style
DSH 插件全家桶聚合包:一条命令从 GitHub 装齐界面增强 / 视觉与工具 / 输入与搜索 / 技能与工作流 / 历史与状态。
- Source
- Wilson-Lai-Ab
- License
- MIT
- Updated
- Updated 6 days ago
Readme
# dsh-idea-style
[](https://awesome-dsh-plugin.com)
> DSH 插件全家桶聚合包 —— 一条命令从 GitHub 装齐 `Wilson-Lai-Ab` 整理的全部插件。
`dsh-idea-style` 是一个 **聚合(meta)插件**:它自己不实现任何功能,而是把
各成员插件收拢进一个包,通过 DSH 官方的 `dsh.bundle` 机制一次性挂载。
用户只需要安装这一个插件,就装好了整个全家桶。
仓库:[Wilson-Lai-Ab/dsh-idea-style](https://github.com/Wilson-Lai-Ab/dsh-idea-style)。
依赖有两套,**不要混用**:
| 文件 | 给谁用 | 成员从哪来 |
|------|--------|------------|
| `package.json` | 本机工作区开发 | 相对 `file:../<成员目录>` |
| `package.publish.json` | 推 GitHub / 别人安装 | `github:Wilson-Lai-Ab/...` |
**禁止** `workspace:*`(独立 web profile 不是这个 pnpm workspace,解析失败)。
**禁止** `dsh plugin add ./dsh-idea-style` 这种裸路径(pnpm 会做成 `link:`,成员不会 hoist 进 profile,`dsh web` 启动失败)。Windows / macOS / Linux 都一样。
---
## 快速开始
### 别人 / 发布版(GitHub)
推仓库前把 `package.publish.json` **整文件覆盖**成 `package.json`(或只同步 `dependencies`),再 bump 推送。用户侧:
```bash
dsh plugin --profile web add git+https://github.com/Wilson-Lai-Ab/dsh-idea-style.git
```
pnpm 11 会拦截 `node-pty` / `sharp` 等构建脚本。装之前在 `~/.dsh/profiles/web/pnpm-workspace.yaml` 加上(三端相同):
```yaml
allowBuilds:
node-pty: true
protobufjs: true
sharp: true
esbuild: true
```
然后重启 `dsh web`。
已装 [dshmarket](https://github.com/dsh-market/dsh-market) 时:设置 → **插件市场**,搜索 `dsh-idea-style` 一点安装(收录进 [awesome-dsh-plugin](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin) 之后才会出现)。市场执行的仍是上面这条 `github:` 安装。
### 本机工作区开发
必须带 `file:` 前缀,让传递依赖 hoist 进 profile 的 `node_modules`:
```bash
# Windows
dsh plugin --profile web add file:D:\work\dsh_pulgins\dsh-idea-style
# macOS / Linux(换成你的工作区绝对路径)
dsh plugin --profile web add file:/path/to/dsh_pulgins/dsh-idea-style
```
变更审查走聚合包里的 **dsh-local-history**(侧栏「改动审查」)。`dsh-vscode-review` **不在**本包内,需要 VS Code 行内逐段 AC/RJ 时请单独安装那个仓库。
### 更新全家桶
```bash
dsh plugin --profile web update dsh-idea-style
```
### 卸载全家桶
```bash
dsh plugin --profile web remove dsh-idea-style
```
> ⚠️ 卸载聚合包会连同全部成员插件一起移除。若想保留其中某几个,请把它们
> 单独 `add` 为 profile 的直接依赖后再移除聚合包。
---
## 包含的插件
| 分类 | 插件 | GitHub | 作用 |
|------|------|--------|------|
| 界面增强 | dsh-better-sidebar | [仓库](https://github.com/Wilson-Lai-Ab/dsh-better-sidebar) | VSCode 风格右侧侧边栏(活动栏):文件树 / 编辑器 / 终端 / Git / 浏览器 |
| 界面增强 | dsh-smooth-stream | [仓库](https://github.com/Wilson-Lai-Ab/dsh-smooth-stream) | 对话打字机流式渲染,字跟着模型走、减少闪烁 |
| 界面增强 | @omdsh-dev/dsh-genui | [仓库](https://github.com/Wilson-Lai-Ab/dsh-genui) | 助手回复里渲染交互 UI(dsh-ui 围栏):图表、表单、测验、mermaid、3D |
| 视觉与工具 | dsh-vision-router | [仓库](https://github.com/Wilson-Lai-Ab/dsh-vision-router) | 给纯文本模型加视觉:贴图问答、定位、裁剪、OCR 等像素工具 |
| 输入与搜索 | dsh-at-file | [仓库](https://github.com/Wilson-Lai-Ab/dsh-at-file) | 输入框打 `@` 搜索工作区路径,只引用路径、不注入内容 |
| 输入与搜索 | dsh-file-search | [仓库](https://github.com/Wilson-Lai-Ab/dsh-file-search) | Quick Open 与 ripgrep 全文搜索 |
| 技能与工作流 | dsh-superpowers | [仓库](https://github.com/Wilson-Lai-Ab/dsh-superpowers) | Superpowers 方法论:bundled skills + 会话 bootstrap |
| 技能与工作流 | dsh-team-skills | [仓库](https://github.com/Wilson-Lai-Ab/dsh-team-skills) | 团队自有技能 hub:choosing-lightest-test-seam + hexin-oms-test-practices |
| 技能与工作流 | @michengai/dsh-skills-manager | [仓库](https://github.com/Wilson-Lai-Ab/dsh-skills-manager) | 设置页管理本地 Skills:启用/禁用/上传/删除 |
| 技能与工作流 | dsh-routing-suite | [仓库](https://github.com/Wilson-Lai-Ab/dsh-routing-suite) | 智能路由模式:按任务选择先查根因或直接执行 |
| 历史与状态 | dsh-local-history | [仓库](https://github.com/Wilson-Lai-Ab/dsh-local-history) | 会话级本地历史 + AI 变更审查 |
| 历史与状态 | dsh-session-desk | [仓库](https://github.com/Wilson-Lai-Ab/dsh-session-desk) | 会话分组、回收站、缩略图、看板页、外观与宠物挂件 |
每个插件的详细文档见各仓库 README。分类说明在工作区 [`docs/plugins/`](https://github.com/Wilson-Lai-Ab/dsh-idea-style) 旁的 `dhs-plugins/docs`(本地工作区副本)。
---
## 工作原理
1. `dsh plugin add git+https://github.com/Wilson-Lai-Ab/dsh-idea-style.git`
执行 `pnpm add`,把聚合包**及其依赖树**(全部成员 GitHub 仓库)装进
profile 的 `node_modules`。
2. DSH 插件命令的 reconcile 逻辑发现 `dsh-idea-style` 声明了
`dsh.bundle.patch`,自动把它加入 `dsh.profile.bundles`。
3. 启动时,聚合包的 `cordis.patch.yml` 把成员插件逐个 insert 进组合树;
loader 从 profile 的 `node_modules` 解析每个成员并挂载。
4. 成员的 client 半(`dsh.client` 声明)由 client-modules 按 loader entries
自动合成进 `__DSH_BOOT__` 图,浏览器端一并激活。
成员插件**不需要**各自声明 `dsh.bundle` —— 挂载统一由聚合包的 patch 完成,
这避免了多个 bundle 各自插入导致的重复挂载。
---
## 维护指南
### 新增一个成员插件(两步 + 推送)
1. 在 `package.json` 的 `dependencies` 加一行 GitHub 源:
```jsonc
"my-new-plugin": "github:Wilson-Lai-Ab/my-new-plugin"
```
若包在仓库子目录:
```jsonc
"my-sub-plugin": "github:Wilson-Lai-Ab/my-monorepo#path:packages/my-sub-plugin"
```
2. 在 `cordis.patch.yml` 的 `- insert:` 列表加一行:
```yaml
- id: my-new-plugin
name: 'my-new-plugin'
```
3. bump `version` 并 `git push` 到 [Wilson-Lai-Ab/dsh-idea-style](https://github.com/Wilson-Lai-Ab/dsh-idea-style)。
### 移除一个成员插件
反向操作:删 `dependencies` 行 + 删 patch insert 行 + bump 推送。
用户侧执行 `dsh plugin --profile web update dsh-idea-style` 后,该插件
下次启动不再挂载。
### 本地开发 vs 发布
- 本机:保持 `package.json` 的 `file:../...`,改成员源码立刻被 profile 的 `file:` 安装看到。
- 发布:用 `package.publish.json` 覆盖 `package.json` 再 push。别人机器上没有工作区旁路目录,相对 `file:` 会装失败。
- `cordis.patch.yml` 的 insert `id` 必须与各成员自己的 patch 一致(已对齐)。这一层 Windows / macOS 无差别。
---
## 常见问题
**Q: 装了聚合包后某个插件重复出现 / 双实例?**
A: 说明该插件还被单独安装过(如从 dshmarket 单独点装)。聚合包已含全部成员,
不要单独安装成员插件;把重复的直接依赖移除后重启。
**Q: 还要 VS Code 行内逐段 Accept / Reject?**
A: 聚合包不含 `dsh-vscode-review`。审查走 **dsh-local-history**(侧栏「改动审查」)。
若仍要那套 VS Code 扩展,请单独 clone 并按 [dsh-vscode-review](https://github.com/Wilson-Lai-Ab/dsh-vscode-review) 安装;不要对同一文件在两边各点一次拒绝。
**Q: 安装时有 "ignored build scripts" 警告?**
A: 部分成员带原生依赖(better-sidebar 的 `node-pty`、vision-router 的
`sharp` / puppeteer-core)。pnpm 11 在 Windows / macOS / Linux 都会拦截。
在 `~/.dsh/profiles/web/pnpm-workspace.yaml` 加 `allowBuilds`(见上文),
然后重跑 `dsh plugin --profile web add …`。macOS 一般有预编译二进制,
比 Windows 少需要 Xcode CLT;逻辑与 id 对齐与系统无关。
**Q: 能不能把现在这份 `package.json` 直接 push?**
A: 不能。里面的 `file:../dsh-at-file` 只在本机工作区有效。对外必须用
`package.publish.json` 里的 `github:` 源。
**Q: 成员的版本在 package.json 里看不到?**
A: 成员是 GitHub HEAD(或 lockfile 钉住的 commit)。查来源用
`dsh plugin --profile web why <成员名>` 或看 profile 的 `pnpm-lock.yaml`。
**Q: Windows 装完侧边栏还是顶部 Files / +(本地是右侧活动栏)?**
A: 那是旧 UI。发布源必须是 `github:Wilson-Lai-Ab/dsh-better-sidebar`(仓库已提交 `lib/`)。更新:
```bash
dsh plugin --profile web update dsh-idea-style
```
然后重启 `dsh web`,浏览器硬刷新(Ctrl+Shift+R)。
**Q: 启动报 duplicate loader entry id / 整棵插件树挂掉?**
A: `cordis.patch.yml` 的 insert `id` 必须和各成员自己的 patch 一致
(`better-sidebar` / `vision-router` / `skills-manager` / `smooth-stream` /
`genui` / `session-desk` 等)。`a30ea3b` 已对齐;不要把聚合包的 id 改成
`dsh-better-sidebar` 这种和成员 patch 不一致的值。
---
## 许可
MIT。成员插件各自保留其原作者许可。
Install
dsh plugin --profile web add github:Wilson-Lai-Ab/dsh-idea-style
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-idea-style from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.