Skip to main content
Glama

DSH Intelligent UI

English · 中文

将 DeepSeek Harness 的聊天结果变成可交互的计算器、图表、地图、流程图和小型应用。界面保存在会话中,支持历史重放与单文件 HTML 导出。

当前版本 1.2.1,面向 DeepSeek Harness 源码版 0.2.1-alpha.4 的 Web 客户端。本项目是独立插件,并非 DeepSeek 或 OpenAI 的官方产品。其他版本,包括 rc.2,需要适配验证,不能直接视为兼容。

功能

  • 交互界面:HTML/CSS/JavaScript 分离生成;流式阶段提供静态预览,成功后启用一次交互。支持 DOM、SVG、Canvas 动画和小游戏。

  • 持久显示:自有聊天节点保留结果,支持历史会话恢复、重置、自动高度和运行错误反馈。

  • 统一视觉:跟随 DSH 浅色/深色、字号和字体,提供计算器、方案比较、流程图、折线图、柱状图、饼图六种模板。

  • 图表与表格:内置 Chart.js 4.5.1;受控结构化表格、柱图和饼图;图表可离线重放。

  • 地点与图片:DSH Host 可按地名解析坐标、查询百科/Commons 配图并保存署名;每份文档最多四张图片。Leaflet 1.9.4 与保存的街道区域支持离线展示、标记和行程播放。

  • 宿主协作:当前模型选择文字/表格/UI/混合展示;追问经用户确认后发送,独立显示排队与模型运行状态;会议时间复用 DSH 人工问答,工作流展示只读任务快照。

  • 独立 MCP:stdio 服务提供 13 个资源、3 个提示和 7 个工具,可返回组装后的 HTML。MCP 客户端负责是否以及如何显示它。

Related MCP server: @zuupee/mcp-server

环境与安装

  • Node.js 22.19 或更高版本,本轮使用 Node 24 验证。

  • 已安装依赖并完成构建的 DeepSeek Harness 源码,其 package.json 版本必须为 0.2.1-alpha.4。按该版本仓库说明执行 pnpm install 和 pnpm run build;不要假设最新默认分支仍兼容。

  • 启动 DSH 的辅助脚本需要 PowerShell 7。插件构建和静态预览本身使用 Node.js。

在本项目根目录执行:

# 换成你实际的、已经构建的 DSH 源码路径。
$env:DSH_SOURCE = 'D:\code\deepseek-harness'
npm ci
npm run build
npm run check

macOS/Linux 将环境变量写法替换为 export DSH_SOURCE=/path/to/deepseek-harness。未设置时,构建脚本会寻找同级或上一级目录下的 deepseek-harness。

普通依赖由本项目锁文件安装;构建脚本仅将 DSH 自有包链接到指定源码目录,不复制 DSH、不安装全局包。Windows 使用目录 junction,其他平台使用符号链接。.npmrc 中的 legacy-peer-deps=true 用于避免 npm 从注册表补装宿主专用 peer 包。

静态预览

npm run preview
# 只生成预览并打印位置,不自动打开浏览器:
npm run preview -- --no-open

预览不调用模型。追问演示只记录请求,不会连接真实聊天。

在 DSH 中使用

pwsh -NoProfile -File scripts/run-dsh.ps1 -Harness $env:DSH_SOURCE

默认端口 3098。若端口已被其他服务占用,可加 -Port 3099。-Check 只检查配置,-NoOpen 不打开浏览器。脚本生成 preview/local.patch.yml,创建独立的 intelligent-ui profile;未设置 DSH_HOME 时使用被 Git 忽略的 artifacts/dsh-home。

在 DSH 设置中配置你自己的模型服务。访问令牌、模型密钥、会话和本机代理均不属于项目源码。若图片/地图网络需要代理,可复制 preview/images-network.example.yml 为 preview/images-network.patch.yml,填写本机配置,再通过 -ImageNetworkPatch 指定;此文件不会进入 Git。

试用提示词:

生成一个交互式单摆演示,可调摆长与重力加速度,支持开始、暂停、重置,显示周期公式、单位和理想模型的假设。
用交互地图介绍北京故宫、天坛、颐和园,按地点名称自动定位,各配一张相关图片,提供行程播放;介绍文字附来源超链接。
Create a retro interactive gaming console that I can play.

复杂游戏或物理模拟的正确性仍取决于模型生成代码,需要实际操作检查;运行容器具备交互能力,不代表任意一次生成都正确。

独立 MCP

npm run build
npm run verify:mcp
npm run mcp

构建会生成本机可用的 preview/mcp.config.json,请将其中配置填到支持 stdio 的 MCP 客户端。它包含本机绝对路径,已被 Git 忽略,不应作为公共配置提交。

dist/mcp 是独立运行包:将整个目录复制到目标机器,在该目录执行 npm install --ignore-scripts、node mcp-stdio.js 即可;运行此包无需 DSH、React 或浏览器服务。构建该包仍需要上述开发环境。网络地图准备可能访问固定上游来源;MCP 不具备 DSH 的地名解析、图片下载及聊天确认桥接。

开发与测试

npm run build
npm run check
# Windows 有 Edge 时会自动使用;其他情况安装 Chromium:
npx playwright install chromium
npm test
npm run verify:mcp
npm run audit:release

也可通过 DSH_TEST_BROWSER 指定已安装 Chromium 系浏览器的可执行文件。测试不发送真实模型消息;会使用已构建 DSH 的模块验证集成,并产生被忽略的 artifacts/。真实百科照片回放检查为可选项:用 DSH_LIVE_IMAGE_FIXTURE 指向已准备的 v3 文档 JSON;没有时只跳过该项,其他图片测试仍执行。

目录说明、运行契约和开发注意事项见 架构、运行 API 和 开发说明。

数据、网络与边界

生成代码运行在独立来源 iframe,使用 CSP 与消息桥接;外链、追问需要宿主确认。HTML 片段不能直接装载远程脚本、任意 iframe 或使用任意网络请求。图片和默认街道数据由 Host 受控获取,成功保存的文档可以离线重放;首次获取仍需联网,地图保存范围以外不承诺完整路网。旧版 NASA/USGS 地图模式可能使用固定来源的远程图块。

会议时间选择不等于预订会议;工作流快照不推进原生任务;独立 HTML 导出不提供真实聊天服务。更多实现边界见运行文档。

发布与许可

Git 仅管理源码、自动化测试、必要说明、依赖锁文件与第三方资源许可。验收报告、历史比较、个人 TODO、截图、模型输出、会话、日志和本机配置不纳入仓库。构建和测试产物由 .gitignore 排除。

本项目采用 MIT 许可证。第三方资源沿用各自许可,详见 第三方说明、vendor/ 和地图测试数据的 署名。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    IntentText MCP server lets AI agents parse, validate, query, diff, and render IntentText (.it) documents. It exposes 9 tools for safe parsing, workflow validation, HTML/print rendering, template merging, and round-trip source generation.
    27 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    General-purpose MCP server with built-in tools for HTTP, JSON, and datetime operations, supporting pluggable modules and security defaults.
    -
  • A
    license
    A
    quality
    C
    maintenance
    This MCP server enables MCP Apps-compatible hosts to render an interactive React-based UI and invoke a sample tool over streamable HTTP or stdio transports.
    1
    MIT