🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

聊天产物发布 Inkotake/dsh-rich-artifacts

DeepSeek Harness
Inkotake80 天前有提交已提供中文文档扫描:含敏感能力

把工作区文件发布为聊天产物,图片内联预览、其他文件给下载卡片

27.6/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Inkotake/dsh-rich-artifacts
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · vision
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
L4 · 真实安装等级说明 →
数据截至 2026/10/08·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 80 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 16 处,展示前 15 条)
  • 写入本地文件
    lib/index.js:220
    await mkdir(this.blobsDir, { recursive: true });
  • 写入本地文件
    lib/index.js:221
    await mkdir(this.metadataDir, { recursive: true });
  • 读取本地文件
    lib/index.js:226
    await readFile(path);
  • 写入本地文件
    lib/index.js:230
    await mkdir(dirname(path), { recursive: true });
  • 写入本地文件
    lib/index.js:232
    await writeFile(tmp, bytes);
  • 写入本地文件
    lib/index.js:234
    await rename(tmp, path);
  • 读取本地文件
    lib/index.js:237
    await readFile(path);
  • 写入本地文件
    lib/index.js:281
    await writeFile(tmp, JSON.stringify(ref, null, 2));
  • 读取本地文件
    lib/index.js:288
    const raw = await readFile(this.metadataPath(artifactId), "utf8");
  • 读取本地文件
    lib/index.js:299
    await readFile(path);
  • 读取本地文件
    lib/index.js:391
    const stream = createReadStream(blobPath);
  • 写入本地文件
    build.mjs:4
    mkdirSync('lib', { recursive: true })
  • 读取本地文件
    build.mjs:33
    const body = readFileSync(clientCjs, 'utf8')
  • 删除本地文件
    build.mjs:34
    unlinkSync(clientCjs)
  • 写入本地文件
    build.mjs:46
    writeFileSync('lib/client.js', wrapper)
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 发布工作区文件为聊天产物
  • 图片内联预览
  • 文件下载卡片

DeepSeek Harness 产物/交付插件:把工作区文件发布成聊天产物,带内联图片预览和下载卡片。

README

由 DeepSeek 最新模型翻译生成
dsh-rich-artifacts 一个 DeepSeek Harness(dsh)双端插件:把工作区文件变成聊天产物——图片直接内联在对话里,其他文件显示下载卡片。 不再有 file:///... 链接,也不再只是“文件已生成在 output/”——模型创建面向用户的文件后,调用 publish_artifact,文件就能持久地通过聊天 UI 交付给用户。 功能 - publish_artifact 工具 - path(必填):要发布的工作区文件路径 - title(可选):显示标题 - display:auto(默认)· inline · download - ArtifactStore - SHA-256 content-addressed 存储 - metadata 独立存放在 ~/.dsh/artifacts/v1/ - 持久会话事件 artifact/published - 会话日志只保存 artifact metadata - 历史会话重载 / fork 后产物仍能显示 - HTTP 端点 - GET /api/artifacts/:id/content — 内联安全预览 - GET /api/artifacts/:id/download — 附件下载 - Web UI turn-tail 画廊 - PNG / JPEG / WebP / GIF 直接内联
展开完整文档(README 剩余 1 节)
dsh-rich-artifacts

一个 DeepSeek Harness(dsh)双端插件:把工作区文件变成聊天产物——图片直接内联在对话里,其他文件显示下载卡片。

不再有 file:///... 链接,也不再只是“文件已生成在 output/”——模型创建面向用户的文件后,调用 publish_artifact,文件就能持久地通过聊天 UI 交付给用户。

功能

- publish_artifact 工具
- path(必填):要发布的工作区文件路径
- title(可选):显示标题
- display:auto(默认)· inline · download
- ArtifactStore
- SHA-256 content-addressed 存储
- metadata 独立存放在 ~/.dsh/artifacts/v1/
- 持久会话事件 artifact/published
- 会话日志只保存 artifact metadata
- 历史会话重载 / fork 后产物仍能显示
- HTTP 端点
- GET /api/artifacts/:id/content — 内联安全预览
- GET /api/artifacts/:id/download — 附件下载
- Web UI turn-tail 画廊
- PNG / JPEG / WebP / GIF 直接内联
- 其他文件显示下载卡片
- 安全
- fs.resolve + fs.contains 工作区约束
- 拒绝最终组件 symlink
- magic-byte MIME 嗅探(.png 实际是 HTML 不会内联)
- V0.1 中 SVG / HTML 只允许下载
- 文件大小、图片大小与像素上限

安装

dsh plugin --profile web add github:Inkotake/dsh-rich-artifacts

如需锁定到具体 commit:

dsh plugin --profile web add github:Inkotake/dsh-rich-artifacts#

安装后重启 dsh web(或你安装的目标 profile)。

使用

插件注册了 system-prompt 提示,模型创建交付物时会自动调用工具;你也可以直接要求:

帮我画训练 loss 曲线,导出 CSV,并把两个文件发布为聊天产物。

Agent 会执行:

publish_artifact({ "path": "output/loss.png", "display": "auto" })
publish_artifact({ "path": "output/loss.csv" })

回合尾部就会显示内联图片和 CSV 下载卡片。

配置

在 profile 的 cordis.patch.yml 中:

- id: dsh-rich-artifacts
name: dsh-rich-artifacts
config:
root: ~/.dsh/artifacts
maxFileBytes: 104857600
maxTurnBytes: 524288000
maxImageBytes: 20971520
maxImagePixels: 40000000
inline:
png: true
jpeg: true
webp: true
gif: true
svg: false

| 字段 | 默认值 | 说明 |
| root | ~/.dsh/artifacts | 产物存储根目录 |
| maxFileBytes | 104857600 | 单文件大小上限 |
| maxTurnBytes | 524288000 | 预留的每回合上限(V0.1 尚未强制) |
| maxImageBytes | 20971520 | 可内联图片大小上限 |
| maxImagePixels | 40000000 | 可内联图片像素上限(尽力解析) |
| inline. | png/jpeg/webp/gif: true,svg: false | 允许内联的图片类型 |

构建

pnpm install
pnpm run build

lib/index.js 是 ESM host 插件,lib/client.js 是浏览器 bundle
(window.__ModuleLoader__.load(...))。两者都已提交,源码安装无需构建。

测试

node tests/artifact-store.test.mjs

架构

DeepSeek Agent
│ 创建文件 ▼ Workspace File │ publish_artifact ▼ ArtifactStore ──────────────► artifact/published 会话事件 │ │
│ (blob + metadata) │ (artifact_id + metadata)
▼ ▼
HTTP /api/artifacts/:id/ Session log(可重放) │ │ └──────────────┬───────────────────┘ ▼ Web UI turn-tail ┌─────────┴──────────┐ ▼ ▼ ImageArtifact FileArtifact

实现说明

- artifact/published 是 log-only 事件。当前 Harness 对 out-of-repo 插件还没有会话事件注册面,host 启动时会把该事件类型加入 KNOWN_SESSION_EVENT_TYPES (运行时为可变 Set),这样持久化会话在插件安装期间可正常恢复。
- MIME 以 magic bytes 为准,扩展名仅作次要提示。
- V0.1 刻意不内联 SVG 和 HTML。

许可证

MIT
预览分享卡片长什么样 ↓Inkotake/dsh-rich-artifacts
分享 · DeepSeek Harness Hub
Inkotake/dsh-rich-artifacts

把工作区文件发布为聊天产物,图片内联预览、其他文件给下载卡片

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部