← 返回列表
⚠ 装前注意
一个 DeepSeek Harness 插件,通过 /preset-composer 斜杠命令编辑每个自定义…
基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/10 · 已提供中文文档
综合分
29.3
GitHub 分
29.3
用户评分
—
★ Stars
1
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/masquerator-coder/dsh-preset-composer.git信任档位:需留意实装验证未通过
- 是什么
- 生态插件(可安装,未声明 dsh 能力)
- 装得上吗
- 实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 16 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/9/25) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
数据截至 2026/9/23(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-preset-composer(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
未发布到 npm registry,仅可从源码安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/23 21:27:38
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成dsh-preset-composer 一个 DeepSeek Harness 插件,通过 /preset-composer 斜杠命令编辑每个自定义 agent 预设——其名称、描述、预设提示词(预设提示词)、技能和插件。 这是一个仅 Host 端插件:该命令通过 DSH 的纯 Node commands 服务在 Host 上运行,因此不需要浏览器(client)bundle,可以作为独立的 npm/git 包安装和分发,并立即生效。 客户端 UI 状态。 最初的设计通过 settings.section.agentPreset.cardAction 子插槽将“⚙ 配置”配置按钮渲染到 Agent 预设卡片中,并由浏览器端支持。该浏览器端(src/client/)被保留,但不属于本次构建的一部分:DSH(尚)未为树外插件暴露客户端 bundle 构建通道,而声明了 dsh.client 却没有构建好的 ./client bundle 会在加载时被拒绝。Host 仍会将每个可编辑预设镜像到 preset-composer 设置命名空间中,因此一旦 DSH 发展出该通道,未来的客户端端便可复用相同的结构。src/client/ 下的源代码被保留为未来 UI 的权威参考,但被排除在当前类型/构建范围之外。 快速安装 从你运行的 profile 中安装(一个普通的 npm/git 包,安装时构建) dsh plugin --profile web add ./path/to/dsh-preset-composer 或者从 git URL 安装,前提是该包在安装时构建(prepare → tsdown) dsh plugin --profile web add "https://github.com//dsh-preset-composer.git" 重启 profile(bundle 成员变更仅在重启后生效) 然后,在 Web UI 或会话中,输入: /preset-composer 列出可编辑的预设 /preset-composer 显示某个预设的配置 /preset-composer name 重命名 /preset-composer prompt 设置预设提示词 /preset-composer skill on|off 启用/禁用某个技能 /preset-composer plugin on|off 启用/禁用某个插件 /preset-composer plugin add: 添加一个插件行 它编辑什么 每个自定义预设都是 $DSH_HOME/.agent-presets// 下的一个目录,包含两个文件以及一个可选的 skills/ 文件夹。此插件会编辑全部三项: | 命令界面 | 它映射到的文件 | |---|---| | (列出/显示)/ name / prompt | preset.yml(保留 order)+ agent.cordis.yml persona 行的 config.prefix | | skill on\|off | skills//SKILL.md frontmatter 中的 disable-model-invocation | | plugin on\|off\|add: | agent.cordis.yml 中的非结构性行;切换 disabled / 添加行 | 结构性行(dsh-persona、dsh-skill-filesystem、dsh-tool-skill)由插件管理,不作为用户插件列出。每次保存时,它都会确保 dsh-skill-filesystem(其 customSkillDirs 指向 /skills)以及 dsh-tool-skill 存在,将提示镜像到 dsh-persona.config.prefix, 移除已删除的插件,添加新插件,并逐字节保留其他所有行(包括 group/isolate 结构),除了 disabled 键之外。 设计 - 文件是唯一事实来源。 该插件直接编辑预设文件。它还会在启动时将每个可编辑预设镜像到 preset-composer 设置命名空间中,并在每次命令编辑后刷新镜像,以便未来的客户端部分可以通过内置的 ctx.remote.settings 接口读取相同的结构(无需新的 Remote API)。 - 只有 trust === 'user' 的预设可编辑。 随附的预设永远不会被触碰。 - !!js 表达式在往返过程中得以保留。 组合 YAML 使用自包含的 tag:yaml.org,2002:js 类型(仅 js-yaml)进行解析和写回,与 Loader 自身的 entryListSchema 方言相匹配。disabled 为 !!js 表达式的行被视为已启用,并且仅当你显式切换它时才会被重写(通过 delete row.disabled / row.disabled = true)。 - 启动安全性。 一切都在 ctx.inject(['commands','agentPresets','settings'], …) 内运行;没有这些服务的部署永远不会激活该插件。文件 I/O 受到限制并记录日志(logger.warn),并且没有任何命令处理程序会抛出异常。 布局 package.json # bundle declaration; no dsh.client (Host-only) cordis.patch.yml # inserts the single preset-composer row tsconfig.json # Host type surface; src/client excluded (reserved) tsdown.config.ts # builds lib/index.mjs (Host) src/types.ts # shared wire types src/presets.ts # pure file-logic (parses/reconciles composition + skills) src/command.ts # pure /preset-composer command parsing + rendering src/index.ts # HOST: namespace mirror + command + file management src/client/ # RESERVED future browser half (not built, kept as reference) tests/presets.spec.ts # pure file-logic tests tests/command.spec.ts # pure command parsing/rendering tests 单个 cordis 行(cordis.patch.yml)挂载 Host 部分 (lib/index.mjs)。这里刻意没有浏览器部分:DSH 尚未 为树外插件暴露客户端 bundle 构建通道,因此该包 在该通道存在之前仅提供 Host 部分。 构建 pnpm install # js-yaml + vitest + tsdown + typescript + @types/node pnpm bundle # tsdown → lib/index.mjs (+ lib/index.d.mts) pnpm test # tests/presets.spec.ts + tests/command.spec.ts (pure logic) 主机 bundle 已验证:lib/index.mjs 仅导入 Node 内置模块和 @deepseek-ai/schemastery(唯一的运行时框架导入;它从 dsh 安装中解析),并将 js-yaml 内联打包。所有其他 @deepseek-ai/* 导入均为 import type,会被省略。 (未来)客户端部分 当 DSH 支持树外客户端 bundle 时,恢复浏览器部分: 在 package.json 中重新声明 dsh.client,使用 DSH 自有的 clientBundle 工具链重新构建 src/client/(生成 lib/client.js),并添加 ./client 导出。 src/client/ 下的保留源文件以及镜像的 preset-composer 设置命名空间是起点。 可编辑 / 不可编辑 - 可编辑:trust === 'user' 的预设(通过 duplicate / new 创建)。 - 在运行中的宿主启动之后创建的预设尚未进入命名空间 镜像——show 会重新读取文件,但镜像本身会在 下一次 seed 时刷新;重启以将新创建的预设纳入镜像。 限制 - 在客户端部分变得可构建之前,仅支持斜杠命令交互(无图形表单)。 - 由 !!js 门控的平台行(例如 tool-bash/tool-pwsh)在你切换它之前会显示为已启用, 因为该表达式被视为“已启用”。 - 插件管理顶层行的启用/禁用/添加;嵌套的 group 子项 会被保留,但不会单独列出。 - 每次写入按命名空间修订原子执行;路径编辑会失败关闭 而不是部分应用。 许可证 MIT