全部插件

DSH / BUNDLE / CLIENT-UI

dsh-plan-act-models

v0.5.0CynthiaYX / dsh-plan-act-models0acdd7e598

可安装组合包UI 与客户端插件社区 · Topic 自动分析Web UI

概览

dsh-plan-act-models

A mode dropdown in the composer that commits through the Host's own model selection — Plan, Act, and any number of user-defined modes — plus two optional automatic switches.

README / ZH

插件文档

目录摘要

A mode dropdown in the composer that commits through the Host's own model selection — Plan, Act, and any number of user-defined modes — plus two optional automatic switches.

dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。

在 GitHub 阅读完整 README

LIMITATIONS

已知限制

1. **几项配置都不写 `reasoningEffort` 时,下拉框无法区分它们**:provider 与 model 都一样, "当前在哪一项"没有可比较的差异,此时按 plan 模式决出显示项(tie-break),内建的 Plan / Act 在并列时优先;选另一个同路由的条目效果只是把 effort 改回默认。 2. 手动在原生选择器里换到的模型若恰好等于某一项的 route,会显示成那一项(语义等价,不算错)。 3. `enabled` 关闭只停自动切换;它不会锁住下拉框,也不会阻止你手选一个和 plan 模式不匹配的模型, 或手选一个自定义模式。 4. 若被链接安装(目录 junction / `link:`),`lib/schema.mjs` 会依次尝试裸导入宿主安装里的 `@deepseek-ai/schemastery`、`DSH_SCHEMASTER_ROOT` 指定的副本、从 `process.execPath` 与启动参数 往上回溯找到的 `resources/app.asar` / `app.asar.unpacked` 副本(回溯 8 层,也接受相邻的普通 `node_modules`),最后才是 profile 里的副本。**每一份都会先校验能力**:必须带 `.volatile()` (schemastery ≥ 3.18.5)。profile 的上级 `node_modules` 里常残留旧副本(例如 3.18.1 的 陈旧 junction),旧副本能 resolve 但没有 `.volatile()`,直接用会让插件在声明 Config 时就崩, 所以现在被跳过并在报错里点名版本。全都不可用时插件整体不加载——设置页显示「宿主没有提供配置项」, 报错列出每条试过的路径,可用 `DSH_SCHEMASTER_ROOT` 指向副本目录。 5. **自动切换失败只降级,不拖垮会话**:`selectModel` 被拒绝(模型不在目录里、连接不可用)时 插件只告警一次并跳过;`agent/created` 里挂载监听器抛出的异常同样就地吞掉, 否则那个 Agent 永远 publish 不出来。 6. **挂载点只有两个事件**:每个 root Agent 的 `tools/result`(审批)与根平面的 `session/event`(`plan/mode`)。不再有请求期改写,所以没有「比宿主更早装监听器」的优先级问题。 7. **下拉框沿用硬编码中文**:与设置页一致,没有走 Client locale 服务;`client.js` 里甚至不能出现 `locale` 字样(`test/client.test.mjs` 有既有断言)。 8. **`conversation.input.right` 目前无人占用**,所以我们的条目稳定落在模型选择器左侧;若将来有别的 包也注册到同一个座位,顺序由 `order` 决定(本插件是 100),届时可能需要重新排序。 9. **项目覆盖编辑器暂时从设置页隐藏**(`client.js` 里 `SHOW_PROJECT_OVERRIDES = false`)。 宿主仍然解析 `projects`、测试仍然覆盖它、手写的覆盖照旧生效;只是页面上不再提供入口 —— 一个"含义随文件夹变"的下拉框比它解决的问题更让人困惑。代码一行没删,把那个常量改成 `true` 就恢复。隐藏期间页面**不会**因为一条手写的、不完整的覆盖而拒绝保存,也不会在保存时抹掉它。 10. **自定义模式是全局的**:它不参与 `projects` 覆盖,也不会被两条自动规则选中, 只在你手动点选时生效。