Skip to content

About

DeepSeek Harness 素材浏览插件:按工作区查看 MUSE AV 素材与出图记录,复制素材直链。DSH asset browser for MUSE AV workspaces, image libraries and generation history.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

🖼️ dsh-museav-assets

在 DSH 里创作、探索灵感并管理素材。
从左侧「Museav」入口打开独立工作台,查看精选作品和可用模型,
使用提示词或模板出图,并按项目管理素材与作品。

npm runtime deps MIT DSH Plugin

English | 中文

Why This

本插件 mcp__cs__* 工具 直接敲 CLI
看清「有哪些项目、各有多少素材」 ✅ 一屏网格 + 计数 ❌ 单次调用,看不见全貌 ⚠️ 逐条命令,靠脑记
素材拿直链当垫图 ✅ 点一下复制 ⚠️ 得先知道素材 id ⚠️ 手抄 URL
出图 / 上传能力 ✅ 工作台调用本机 CLI ✅ 完整 ✅ 完整
密钥 ✅ 不读不转发 ~/.museav.json ✅ ⚠️ token 落在本机明文文件

工作台通过本机 museav CLI 使用账户、模型、项目、素材和生成能力;精选灵感来自 MUSE AV 的公开接口。模型由平台自动路由,展示的列表不代表可以手动指定模型。

工作台入口

插件在全局侧栏注册「Museav」,点击后在主区打开独立工作台。原会话顶部的「资产」Tab 不再注册;已有项目、素材和生成记录仍由原 CLI 数据源提供。

装

包名 @dsh-plugins/dsh-museav-assets(与另外三个插件同一 scope)。 dsh-museav-assets(无 scope)是走错路时发过一版的临时名 —— 已于 2026-10-02 撤回(unpublish), 请只用本名。教训:新插件一开始就用 scope 名,别先发无 scope 再撤回(撤回的名字 24 小时后任何人都能抢)。

桌面端在应用内的插件管理里装 —— 它从 npm 拉。命令行装不进 desktop profile (profile "desktop" is managed exclusively by the Electron application)。

本地开发(改完代码装进桌面端试):

npm run deploy     # 门禁 → 备份 → 装进 ~/.dsh/profiles/desktop/(不过门禁不部署)
npm run rollback   # 起不来时恢复上一份;rollback:npm 装回 npm 正式版

流程细节见 ../SOP.md「怎么测 / 怎么部署 / 怎么回滚」。首次安装还需把包名加进 profile(~/.dsh/profiles/desktop/package.json):

"dependencies": { "@dsh-plugins/dsh-museav-assets": "^0.1.1" },
"dsh": { "profile": { "bundles": [ /* … */, "@dsh-plugins/dsh-museav-assets" ] } }

拓扑级变更要重启:桌面端是退出并重开 app(~/.dsh/restart.sh 已作废,现在探测不到 3080 服务会直接以 1 退出)。

前置条件只有一条:本机 museav CLI 已登录(museav login)。 插件自己不读也不转发 ~/.museav.json 里的 token。

接口

路由 做什么
GET /api/dsh-museav-assets/health CLI 在不在、什么版本、工作区上限
GET /api/dsh-museav-assets/projects 工作区列表 + 出图/素材计数 + used/limit/full
POST /api/dsh-museav-assets/projects {name} 新建工作区(≤20 字)
GET /api/dsh-museav-assets/assets?project=<id|名> 该工作区的素材库
GET /api/dsh-museav-assets/jobs?limit=<n> 最近出图记录

失败语义:上游/CLI 出错一律 200 + {ok:false,error},tab 内联显示原因; 只有参数不合法才 400。一次网络抖动不该让 tab 变白屏。

CLI 契约(插件唯一依赖的东西)

lib/museav.js 是唯一知道 CLI 输出长什么样的文件。museav-cli 的 stdout/stderr 分工就是它的脚本契约:

命令 stdout(真值) stderr(人看的补充)
museav projects id 换行 名称 / 出图 x/y / 素材 n / brand
museav projects assets --project X id<TAB>url 名称 / media_type / tags
museav jobs 完整 JSON 数组 表格式摘要
museav projects create --name N 新建 id 成功提示

所以:真值一律取 stdout,stderr 只用来补展示字段。stderr 解析不出来就降级 (项目名退回 id 前 8 位,素材名退回「未命名」),绝不因为上游改一句中文就让整页空白。 test/museav-parse.test.mjs 用真机抓的输出当夹具守着这条线。

已知脆点:museav projects / projects assets 没有 --json,展示字段只能从 stderr 表格里解析。给 museav-cli 这两个命令加 --json 就能把这条脆点彻底消掉 —— 真源在 ~/dev/muse/museav-cli/src/commands/projects.ts,改的是上游仓,不是本插件。

不做什么

  • 不出图、不传文件 —— 那是 CLI / MCP 的活,重复实现只会两处漂移
  • 不缓存 —— 数据便宜,状态随时在变;想要缓存再加
  • 不轮询 —— 挂载时拉一次,用户点「刷新」才重跑

测试

npm run check && npm test   # 28 个:解析契约 12 + 路由 8 + UI 8

路由测试用 stub 可执行文件顶替 CLI(走 MUSEAW_BIN 环境变量),全程不联网、不碰真账号。

CLI 路径为什么是环境变量而不是插件配置:这套 Cordis 的函数式插件读不到 ctx.config (声明了会永远 pending (waiting for service: config))。MUSEAW_BIN 也正好和 profile 里 MCP 桥的约定一致。改它不用重载插件 —— 每次请求现取。

About

DeepSeek Harness 素材浏览插件:按工作区查看 MUSE AV 素材与出图记录,复制素材直链。DSH asset browser for MUSE AV workspaces, image libraries and generation history.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages