@taptap/dsh-maker
DeepSeek Harness(DSH)插件:把 TapTap Maker
的本地开发闭环接入 DSH。
装上后,DSH 会自动获得三样东西:
- Maker MCP 工具(
mcp__taptap-maker__*):构建/提交/预览、状态、广告配置、素材生成等;
- Maker 技能:工作流 + 常用功能指南(广告 / 云存档 / 排行榜),并内置“以工程内
engine-docs 为准、禁止网上搜错文档”的防错引导;
- 可发现的 CLI 路径:环境变量
DSH_TAPTAP_MAKER_BIN 指向随包 @taptap/maker 的 CLI,
一次性 init/agents update/mcp report 用 node "$DSH_TAPTAP_MAKER_BIN" <cmd> 零网络执行。
本插件是仓库 DSH 集成的 L2 形态(bundle 插件)。它区别于已有的
L1 形态(taptap-maker install --ide dsh 写入 $DSH_HOME/cordis.patch.yml):
L1 只注册一个裸的 Maker MCP;本插件则把 MCP + 技能 打包成可分发、可一键安装、可 HMR 的
DSH bundle。两者不要同时启用,避免同 serverName 冲突。已用 L1 时,不要手改 YAML;安装前用
Maker CLI 的结构化命令检查并迁移旧注册:
npx -y --package @taptap/maker@<maker-version> taptap-maker plugin inspect --client dsh --json
npx -y --package @taptap/maker@<maker-version> taptap-maker plugin migrate --client dsh --confirm --json
<maker-version> 使用本包 package.json 中 dependencies["@taptap/maker"] 的精确值;固定版本
安装时直接使用对应 npm 包版本或 Release INSTALL.md 中已写入的命令。
安装
前置:已安装 DSH(dsh 命令)与 pnpm。
dsh plugin --profile web add @taptap/dsh-maker
headless profile 同理:
dsh plugin --profile headless add @taptap/dsh-maker
1024Store 使用公开 npm 包 @taptap/dsh-maker 作为市场安装和更新入口。需要固定版本时,在包名后
追加版本号,例如 @taptap/dsh-maker@<version>。对应的 dsh-maker-v* GitHub Release 继续提供
tarball 和 SHA-256,作为预览版、离线安装及排障备用入口。
DSH 会热重载该 patch,无需重启。验证:
dsh --profile web --dump-config | grep -A 20 'mcp-taptap-maker\|taptap-maker'
做了什么
插件通过一个 bundle patch 行(id: taptap-maker)在激活时挂载两个子插件,并注册一个 shell 环境变量:
- Maker 技能:宿主平面
skill-filesystem 实例(DSH 官方 repository-plugin 模式),
providerName: maker + includeDefaultRoots: false + bundledSkillDir: skills/,
只读挂载本包 skills/ 目录,与 standard preset 的本地技能各司其职、不重复扫描项目/用户根。
- Maker MCP:
@deepseek-ai/dsh-mcp-client,通过随包依赖 @taptap/maker 的
dist/maker.js 启动(绝对 Node + 包内路径,require.resolve 运行时解析,不依赖 npx、
不绑定 profile 路径)。
- CLI 发现:通过
ctx.shellEnv 注册 DSH_TAPTAP_MAKER_BIN(随包 @taptap/maker 的
bin/taptap-maker 绝对路径),让一次性 CLI 操作零网络、零路径猜测。
为什么这样最贴合 DSH
使用要点(DSH 特有)
-
每次项目相关的 Maker 工具调用都要显式传 target_dir(DSH 不广播 MCP Roots)。
-
DSH 不读 MCP Resources:用 maker_status_lite 看状态、用 get_ad_config 查广告配置,
不要尝试读 maker://*。
-
工程根 AGENTS.md(含 Maker 管理策略块)由 DSH 自动加载,无需额外操作。
-
一次性初始化(登录 / 选 app / clone)走 node "$DSH_TAPTAP_MAKER_BIN" init(该变量由本插件
注入;若运行在未装本插件的客户端才退回
npx -y --package @taptap/maker@<版本> taptap-maker init)。
高频远端开发循环(状态 / 构建 / 提交 / 推送 / 远端预览)只有在用户明确要求时才用 MCP
工具,并始终显式传 target_dir;不要把本地预览请求隐式升级为远端提交或构建。
本地控制台和本地窗口预览使用插件提供的 CLI:
node "$DSH_TAPTAP_MAKER_BIN" console open --target-dir <PROJECT> --json
node "$DSH_TAPTAP_MAKER_BIN" preview start --target-dir <PROJECT> --json
本地预览不会提交、推送或自动启动远端构建;联网项目只复用已有登录和测试版本。具体本地
命令是否可用以本包精确依赖的 Maker runtime 实际能力为准,不能仅因 npm 上存在更高版本
就宣称已支持新能力。
配置(可选覆盖)
在 profile 的 cordis.patch.yml 里给插件行加 config 即可覆盖(不覆盖则用默认值):
- id: taptap-maker
config:
mcp:
serverName: taptap-maker # 默认 taptap-maker
toolCallTimeoutMs: 3600000 # 默认 1 小时
failOnStartupError: false # 默认 false:技能不受 MCP 启动失败影响,重连自愈
env: {} # 可选:合并进 MCP 子进程环境
cwd: '' # 默认不写(保持项目无关)
卸载
dsh plugin --profile web remove @taptap/dsh-maker
排障
版本兼容
- 依赖
@deepseek-ai/cordis ^4.0.1 及配套 @deepseek-ai/dsh-mcp-client /
dsh-skill-filesystem / dsh-shell-env(^0.1.0-rc.6,peer 锁定,随 DSH rc 版本同步升级)。
- Maker MCP 由随包依赖的
@taptap/maker 提供;稳定包当前精确依赖已发布的
@taptap/maker@0.0.32。本地控制台/预览等新能力必须先确认对应稳定 Maker artifact 已发布并
包含该能力,再同步 bump 依赖和插件版本;不要仅依据 npm 版本存在性,也不要让 DSH 运行时自行
解析 npm latest。
- Codex 和 WorkBuddy 不读取本包版本,也不共享本包的安装方式;它们通过各自插件市场更新。
- 只更新 Skill 不需要更换 Maker MCP;涉及控制台、Runtime、二维码或 CLI 行为时,必须使用包含
对应
@taptap/maker 版本的 DSH 插件包。
发布与市场
- 正式包由仓库的
Publish DSH Maker Plugin workflow 同时发布到 npm latest 和 GitHub Release。
develop 预览版只发布 GitHub prerelease,不写入 npm;main 稳定版才发布公开 npm 包。
- 1024Store 使用 npm 包名
@taptap/dsh-maker;源码和问题反馈入口由 package.json 提供。