@cheesefox/dsh-better-composer

uitested: passnpmMIT

Markdown visual enhancement and session workbench for DSH Web Composer: live syntax presentation with caret-row source reveal (inactive-line markers can be hidden or faded), deterministic local completions, and list/quote continuation on line break with ordered-list renumbering; long pastes fold int

下载量 / Downloads
1,335
依赖体积 / node_modules
31.54 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add @cheesefox/dsh-better-composer

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README


description: "为 DSH Web Composer 提供确定性的 Markdown 视觉呈现与本地编辑辅助,不接管 source 或提交。"

kind: "package-bundle"


@cheesefox/dsh-better-composer

[English](README.md) | 中文

![CI](https://github.com/CheeseFox259/dsh-better-composer/actions/workflows/ci.yml)

![npm](https://www.npmjs.com/package/@cheesefox/dsh-better-composer)

![License: MIT](LICENSE)

摘要

DSH Better Composer 为 DSH Web Composer 增加保留 source 的 Markdown 视觉呈现与固定的本地补全候选。配置层通过 DSH 公开的 Composer seam 提供 Settings 与编辑器 presentation。source、selection、history、Context Objects 以及 Send/Queue/Steer 仍由 DSH Core 拥有。超长粘贴可自动转为可编辑的引用(chip),其大模型辅助编辑经 Host 侧独立的一次性调用完成,不写入会话事件流。

目录

  • [使用本包](#使用本包)
  • [了解实现](#了解实现)
  • [进一步阅读](#进一步阅读)
  • [模型体验](#模型体验)
  • [已知限制与暂不处理事项](#已知限制与暂不处理事项)
  • [开发说明](#开发说明)

Context Doctor(experimental)

本分支将 Context Doctor 集成到「上下文地图」:Composer 保留一个圆环入口,工作区分为当前会话 / 模式预设与「概览 / 诊断 / 分析 / 反馈」四页。概览完整保留原地图的轮次、步骤与全文浏览、系统和工具来源、缓存、结构、增长、锚定、压缩及分叉。默认使用宿主实时构成,另可切换 Doctor 持久化快照的结构细分估算;两种口径共用交互圆环,构成总量、窗口占用与供应商报告分别展示。界面以蓝、白、灰为主体,消息使用青绿色,结构分类补充协调且可区分的色相;字体、控件和深浅主题继承 DSH。

悬停或键盘聚焦仅预览分类;点击扇区、图例或分类标签固定浏览选择。「加入分析」是独立动作,由 Host 读取规范来源;聚合工具节点先展示来源集合供选择。诊断保留证据筛选及分页,分析先预览范围、模型与预算,明确开始才调用模型。跨页保留浏览与已选证据,切换对象使旧计划失效。历史内容可浏览和反馈,不在当前有效上下文中的来源不能加入本次分析。旧 Doctor 标签页通过 0.1.7-alpha.2 公开侧栏 API 转入诊断页。统计读取不调用模型、不启动冷 Agent;模式统计保留样本门槛和观测版本分组。

在「证据」页筛选、展开或勾选原文,然后进入「分析」页预览范围、模型与预算,再由用户启动一次分析。切换页面保留选择,切换分析对象重新建立范围。候选保留原文、条件、例外和来源,用户编辑并确认会话或模式范围后才生效。原文也可直接进入反馈,支持新建/关联问题和撤回;源会话确认删除后,相关原文摘录和分析结果会清除。

压缩增强通过模式配置预览和确认启用,保留原有阈值、模型路由及输出上限。独立入口为 @cheesefox/dsh-better-composer/doctor-compaction;它在同一次原有摘要调用的输入中融合要求,不做事后验证或重试。只影响新 Agent,无压缩模式不会自动添加压缩。卸载前先恢复基础提供方。

在插件根目录可启动隔离试用环境:

pnpm run bundle
node scripts/start-context-doctor-acceptance.mjs /path/to/deepseek-harness

脚本创建临时 DSH_HOME、随机空闲端口与静态样本,不复制凭据或发起模型请求;退出时清理本次临时环境。可选第三个参数为本地会话语料 JSON:每项含公开格式的 header、rows 和来源 source、sha256,通过公开 format catalog 恢复到临时工作区,并记录导入清单。真实原文语料只保存在本机临时文件,不放入仓库。真实模型分析及摘要调用需用户另行配置并主动启动。正式 npm 1.0.0 不含此分支尚未发布的 Context Doctor。

<a id="使用本包"></a>

使用本包

前置条件

  • 已安装原生 DSH,并且可使用 web profile。
  • DSH 0.1.7-alpha.2 或满足本包 peer dependencies 的更新版本。本次发布在 @deepseek-ai/dsh@0.1.7-alpha.2 上完成安装验证。
  • Node.js >=20、pnpm >=10。
  • DSH 能够打开一个工作区目录;文件送达模式需要已知的工作区路径。

先确认原生 DSH 可以启动:

dsh --version
dsh web --no-open

确认网页能够打开后,停止临时 Web 进程,再把插件加入你实际使用的 Web profile。

从 npm 安装正式版

pnpm dsh plugin --profile web add @cheesefox/dsh-better-composer@1.0.0
pnpm dsh web --no-open

打开 DSH 输出的 Web 地址,进入「设置 → 内置插件 → Better Composer」,确认插件已加载。新建会话,确认 Composer 视觉层与 + 菜单正常存在。

从 GitHub 源码安装

git clone https://github.com/CheeseFox259/dsh-better-composer.git
cd dsh-better-composer
pnpm install
pnpm run bundle
cd ..
pnpm dsh plugin --profile web add ./dsh-better-composer
pnpm dsh web --no-open

源码安装适合开发调试,使用当前 checkout 的代码。它不会修改 DSH Core;本包是 profile bundle patch 加 Host/Client 插件入口。

首次安装验收

1. 在 Web UI 中新建会话。

2. 粘贴超过阈值的文本,确认其变为「粘贴文本」chip。

3. 打开 chip,选择「文件送达」,在「文件类型」下拉框选择文本或代码扩展名;发送后确认文件写入 .dsh/pastes/。

4. 在粘贴文本编辑页修改内容,测试「撤销」和「重做」;应用智能改写预览后也测试这两个按钮。

5. 进入「设置 → 内置插件 → Better Composer」调整超长粘贴阈值。文件扩展名属于每个 clip,不在全局设置中选择。

卸载

pnpm dsh plugin --profile web remove @cheesefox/dsh-better-composer

修改 profile 组成后重启 Web DSH。卸载会移除插件的 overlay、Settings 卡片、clip source、右侧栏 tab 和 Remote contribution,不会修改已有会话历史或 Core 源码。

本包是 dsh.bundle.patch profile layer。该 patch 向当前 profile 插入一个 dsh-better-composer 行。客户端入口只在 Web 平台加载,并依赖 package.json 声明的 conversation、renderer、Settings 和 Settings-plugin 公开包。实验分支 Context Doctor 要求声明的 0.1.7-alpha.2 公开 seam,开发依赖固定该版本;具体实测宿主 revision 见运行验证记录。

提供的能力

  • 为标题、强调、链接、任务列表、引用、表格、围栏代码和保留 source 的文件引用标签提供 Markdown 视觉增强。
  • 为已批准的 fence language、task marker 和 heading spacing 提供确定性的本地补全,并为已批准的 prompt section heading 提供有界 ghost。
  • 上下文地图(Composer 圆环打开右栏):宿主投影占用 / 模型窗口、交互构成圆环、结构统计与逐轮增长。完整历史可按消息分类 → 轮 → 步骤 → 来源全文浏览;增长图各柱可查看轮次明细、锚定并定位消息;系统提示词与工具清单同样可查看全文。
  • 上下文管理:地图内直接执行 /compact(带确认与压缩中状态,压缩点在轮次上标记);任意已结束轮次可一键分叉;轮次可锚定并在增长图上显示蓝色刻线与菱形。
  • 缓存可视化:命中率、当前上下文缓存覆盖与读/写 tokens(provider 前缀缓存自动生效)。
  • 超长粘贴自动转为「粘贴文本」引用 chip(阈值可在 Settings 调整,0 关闭):发送方式可选「直接进上下文」(提交时完整文本内联)或「以文件形式送达」(文本落盘为工作区文件,并以官方 @path 文件引用语法进入提交);点击 chip 打开右侧栏编辑器后,选择「文件送达」即可选择文本或代码文件扩展名。编辑器支持手动修改,也可由大模型按指令改写;改写支持停止、预览、应用、撤销、重做和重试(独立的一次性调用,不写入当前会话事件流,可携带最近若干条会话消息与当前推理等级作为参考)。
  • 四个 Settings 控件:启用 Better Composer、Markdown 视觉增强、非焦点行语法标记显示(完全隐藏或淡化)和超长粘贴转引用阈值。文件送达扩展名在每个粘贴文本编辑页中选择。旧的 toolbarMode 字段继续兼容读取,但不单独增加 UI 开关。

<a id="了解实现"></a>

了解实现

<details>

<summary>实现细节 — 点击展开</summary>

[src/index.ts](src/index.ts) 中的 Host 入口安装 Settings schema、client bundle 和 betterComposer Remote 服务(@Remote 运行时标记,无需生成工件)。[cordis.patch.yml](cordis.patch.yml) 把 bundle 加入 profile。[src/client/index.ts](src/client/index.ts) 通过 effect-scoped 注册与清理管理 Settings、decorations、actions、editor surface、Settings card、clip source 与右侧栏 tab。

Markdown provider 读取权威 Composer snapshot 并输出 UTF-16 source range。editor surface 通过 Core 的通用 decoration 与 surface-extension seam 呈现这些 range。补全接受和语言变更都走现有 Core transaction path。ghost、table 和 code controls 都只是 presentation;它们不会创建第二份 source、selection、history、Context Object 或提交路径。

粘贴引用(@clip:<id>)的实现:editor surface 用单 revision 长度突增 + 前后缀 diff 检测超长粘贴,经公开的 setDraft(text, references) 把片段替换为 chip;inputTriggers.registerSource 注册的 codec 在提交时按送达模式展开为完整文本(inline)或官方风格的工作区文件引用(例如 @.dsh/pastes/pasted-text-<id>.md;Host 将文本写入 <cwd>/.dsh/pastes/)。chip 原文及扩展名持久化于 harness home(storages/better-composer/pastes/),刷新不丢

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::2,最后更新 2026-10-12

Links

GitHub · Homepage · npm

Same category