Chuyển đến nội dung chính

dsh-conversation-ui

Đã xác minh

@jcy2387/dsh-conversation-ui · v0.1.7-rc.2.1 · MIT · Giao diện web

Codex-style streaming, thinking blocks, tool activity, and deliverable previews.

Cài đặt

dsh plugin add @jcy2387/dsh-conversation-ui

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Phát hành lên npm mà không có repository công khai. Hãy kiểm tra nội dung package trước khi cài.

Thẻ

Readme

@jcy2387/dsh-conversation-ui

本版本面向 Harness 0.1.7-rc.2。产物卡片使用新版列表插槽中的独立条目,与原生文件预览、变更审阅及其他插件的回合尾部内容共存;插件设置位于 Suite 或独立插件的配置页。0.1.5 用户应继续使用插件 0.1.5-rc.2。

CI License: MIT

English | 简体中文

DeepSeek Harness(DSH)的 Codex 风格对话界面增强插件:把 Web 对话重绘为一条有序事件流 —— 过程答复、思考、Tool 活动、重试、工作流与最终答复按发生顺序呈现,同时保持平滑的视口跟随。本包是 DSH Codex Suite Monorepo 的对话 UI 包。

本包与 Codex Provider 完全独立,可以单独安装并服务任意模型。

功能

事件流与 Turn 组织

  • Turn 开始即反馈: 提交后立刻显示处理计时器和「思考中」占位,不再对着空白等待。
  • 过程与结论分离: 每个 Turn 的过程内容(Think、Tool、重试等)归入独立过程区;最终答复成功落地后过程区自动折叠,需要时可手动展开。
  • 自然顺序保持: Think、Tool、Retry、Workflow、Compaction、Command 和上下文注入按真实发生顺序排列,不会被分组打散。

语义化 Tool 活动

  • 搜索、文件读取、编辑、命令、数据库、网页、技能、Agent 等工具各有专属图标,活动流一眼可扫;工具组可折叠/展开。

两种流式揭示模式

模式 行为
teleprompter(默认) 直接呈现模型的最新内容快照,不引入额外逐字队列。
typewriter 按字素(grapheme)渐进揭示,对中文、emoji 等宽字符安全。
  • 三档平滑预设:realtime(更跟手)、balanced(默认)、silky(更绵密)。预设控制揭示节奏曲线:到达速率的 EMA 平滑、缓冲目标、追速上限和停顿后的收尾排空速度,让长回复不会整段砸出、快流不会卡顿。
  • typewriter 模式另有固定揭示速度 revealCharsPerSec 可调。

流式视口协作

  • 当前 DSH ChatView 独占会话级位置恢复、底部跟随和用户上滑释放;插件不再直接写 scrollTop 或行变换,避免切换会话时争抢滚动所有权。
  • 尊重 prefers-reduced-motion;帧率退化时暂停离屏内容的 DOM 提交(FPS 守卫),保住可见帧的流畅。

产物卡片

  • 每个完成的 Turn 尾部列出产物:生成的文件与站点,附增删行数,产出成果一目了然。

插件设置卡片

  • 在 插件 → DSH Codex Suite(或 Conversation UI) 中提供持久化的「自动展开思考」开关(实时生效,无需重启)。
  • 卡片同时显示当前版本与安装形态(npm / 本地开发),npm 安装支持一键更新(更新后需重启)。
  • 界面中英文本地化。

安装

已发布版本:

dsh plugin --profile web add @jcy2387/[email protected]
dsh web

本地开发版本:

dsh plugin --profile web add link:/path/to/dsh-codex-suite/packages/conversation-ui
dsh web

也可以安装 @jcy2387/dsh-suite 组合包,一次启用 Codex Provider 与本插件。

安装后无需任何操作:发起新对话即自动启用事件流渲染,历史会话不受影响。

配置

Profile patch ID:conversation-ui。在 profile 的 cordis.patch.yml overlay 中设置(组合包默认值为 mode: teleprompter、preset: balanced)。

选项 范围 默认 说明
mode teleprompter | typewriter teleprompter 助手内容的揭示模式。
preset realtime | balanced | silky balanced 平滑节奏预设。
revealCharsPerSec 5–200 80 typewriter 模式的固定揭示速度。
scrollSpeedPxPerSec 1–200 48 已弃用;仅保留旧 Profile 配置兼容,滚动由 DSH 管理。
maxScrollSpeedPxPerSec 1–2000 1000 已弃用;仅保留旧 Profile 配置兼容,滚动由 DSH 管理。

Overlay 示例:

- id: conversation-ui
  name: '@jcy2387/dsh-conversation-ui'
  config:
    mode: typewriter
    preset: silky
    revealCharsPerSec: 60

「自动展开思考」等用户偏好不走 overlay:在 插件 → DSH Codex Suite(或 Conversation UI) 中修改,保存即生效并跨重启持久化。

临时禁用

包内自带 conversation-ui-off.yml overlay,可在不卸载包的情况下禁用插件(回到原生对话渲染):

- id: conversation-ui
  disabled: true

架构

本包由两半组成,通过一条极窄的配置通道协作:

  • Host 半(src/):Cordis 插件。负责校验配置 schema,并把校验后的配置注入每个服务出的 index HTML(启动配置全局变量 window.__DSH_CONVERSATION_UI_CONFIG__);同时注册用户设置命名空间与一条仅限 loopback 的设置 RPC(读取/写入偏好、查询安装形态、触发 npm 更新)。
  • Web 半(src/client/):React 视图。以低优先级注册替换 assistant-step 与 Turn 过程呈现;其余对话行(Tool 卡片、重试、工作流等)原位包装,但滚动完全委托给 DSH ChatView;在 Turn 尾部注册产物卡片,并在设置页挂载插件配置卡片。缺少 locale / connection / 设置服务时仍以默认配置运行流式渲染。

开发

pnpm --filter @jcy2387/dsh-conversation-ui typecheck
pnpm --filter @jcy2387/dsh-conversation-ui test
pnpm --filter @jcy2387/dsh-conversation-ui build

测试基于 vitest + Testing Library,覆盖流式揭示、原生滚动委托、Turn 折叠与设置卡片(客户端与 Host 两侧)。工作区级命令见 Monorepo README。

许可证

MIT © jcy2387

本版面向 DSH 0.1.7-rc.2。旧 conversation-ui.thinkAutoExpand 从 settings.yaml 或 settings.yaml.imported 导入当前 profile 的 cordis.patch.yml,成功后记录迁移标记;失败保留源文件供重试。插件兼容导入只补充缺失的值。名称和描述通过导出的 locale/en.json、locale/zh.json 跟随 DSH 界面语言。