DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Better Composer — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
B

@noleftbutright/dsh-better-composer

Better Composer

为 DSH 网页编辑器提供 Markdown 演示、长文本粘贴片段和实时上下文地图的 dsh 配置文件插件。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:CheeseFox259/dsh-better-composer#082e001a47d086709a6457f96ac5d2c39dca3311
README兼容性版本

兼容性与来源证明

Better Composer 以 @noleftbutright/dsh-better-composer 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/22

版本

0.1.0stable
2026/9/22

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/9/26
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Remote Web Ui@linxin666/dsh-remote-web-ui通过扫码配对访问 dsh Web GUI,共享一个官方界面:设置按钮旁的二维码可将手机和 PC 配对到同一个 Web GUI(手机采用竖屏触控适配层,PC 使用完整桌面界面),通过一次性令牌和 rClient Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包

README


description: "Adds deterministic Markdown presentation and local editing aids to a DSH Web Composer without taking ownership of source or submission." kind: "package-bundle"

@dsh-better-composer

English | 中文

Summary

DSH Better Composer adds source-preserving Markdown presentation, fixed local completion candidates, diagnostics, and deterministic writing hints to a DSH Web Composer. The profile layer contributes Settings and editor presentation through the public DSH composer seams. DSH Core remains the owner of source, selection, history, Context Objects, and Send/Queue/Steer. Long pastes can convert into editable reference chips whose LLM-assisted rewriting runs as an independent one-shot call outside the session event stream.

Table of Contents

  • Use this package
  • Understand the implementation
  • Further Exploration
  • Model Experience
  • Known Limitations and Deferred Work
  • Dev Note

Use this package

Install into a profile

Install the published package from npm:

pnpm dsh plugin --profile web add @noleftbutright/dsh-better-composer

Or install from source:

git clone https://github.com/NoLeftButRight/dsh-better-composer.git
pnpm dsh plugin --profile web add ./dsh-better-composer

Remove it with:

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

The package is a dsh.bundle.patch profile layer. The patch inserts one dsh-better-composer row into the active profile. The client entry is loaded only on the Web platform and depends on the public conversation, renderer, Settings, and Settings-plugin packages declared in package.json.

What you get

  • Markdown visual enhancement for headings, emphasis, links, task lists, quotes, tables, fenced code, and source-preserving attachment labels.
  • Deterministic local completion for approved fence-language, task-marker, and heading-spacing candidates, plus a bounded ghost for approved prompt-section headings.
  • Non-blocking diagnostics for the supported incomplete Markdown constructs.
  • Optional deterministic writing assistance based only on one current Core Composer snapshot.
  • Context map (composer toolbar icon opens the right sidebar): occupancy gauge (measured tokens / model window), composition stack, structure stats, and per-turn growth — all push-updated live; the composition card drills down 消息 → turn → step (trace) → full message text, with the system prompt and tool inventory (from request/header) also viewable in full.
  • Context management: run /compact in-place (with confirmation and a compacting state; compaction checkpoints are marked on turns); fork a new session after any closed turn; pin turns as anchors shown as gold ticks on the growth chart.
  • Cache visualization: hit rate, current-context cache coverage, and read/write tokens (provider prefix caching, automatic).
  • Long-paste conversion into an editable "pasted text" chip (threshold adjustable in Settings; 0 disables): delivery is selectable per chip — inline into the prompt at submit time, or materialized as a workspace file the agent reads on demand. Clicking the chip opens a right-sidebar editor supporting manual edits and instruction-driven LLM rewriting (a one-shot call outside the session event stream, optionally carrying recent session messages as reference).
  • Five Settings controls: enable Better Composer, Markdown visual enhancement, Markdown syntax hints, deterministic writing assistance, and the long-paste threshold. The legacy toolbarMode field remains schema-compatible and is not a separate UI toggle.

Understand the implementation

Implementation internals — click to expand

The Host entry in src/index.ts installs the Settings schema, the client bundle, and the betterComposer Remote service (@Remote runtime markers, no generated artifacts). cordis.patch.yml adds the bundle to a profile. src/client/index.ts owns effect-scoped registration and disposal for Settings, decorations, actions, the editor surface, the Settings card, the clip source, and the right-sidebar tab.

The Markdown provider parses the authoritative Composer snapshot and emits UTF-16 source ranges. The editor surface presents those ranges through Core's generic decoration and surface-extension seams. Completion acceptance and language changes use the existing Core transaction path. Ghost text, diagnostics, tables, code controls, and deterministic assistance are presentation only; they never create a second source, selection, history, Context Object, or submission path.

Paste clips (@clip:<id>) work by detecting a single-revision length jump via prefix/suffix diff, replacing the inserted span with a chip through the public setDraft(text, references) verb, and expanding the chip at submit time through a registered inputTriggers codec — either the full text (inline) or a workspace-file handle (file mode, where the Host writes the text under <cwd>/.dsh/pastes/). Clip payloads persist under the harness home so reloads never lose them. The right-sidebar editor registers through sidebarRightTabs + sidebar.right.pane.tab; its LLM rewrite calls the Host editText Remote method with an independent purpose and appends nothing to the session event log.

The assistance rule is intentionally small: it may show a fixed Validation-section reminder when a current text segment contains a recognized Goal or Task heading and a fenced code block without a recognized Validation or Acceptance Criteria heading. It does not score prompts, infer intent, rewrite source, or call a model.


Further Exploration

  • src/settings.ts — persisted Settings fields and defaults.
  • src/client/editor.tsx — editor presentation and interaction wiring.
  • src/client/presentation-layout.ts — table and code presentation layout.
  • src/markdown/provider.ts — source ranges and Markdown presentation data.
  • tests/ — focused parser, lifecycle, Settings, completion, diagnostics, and presentation tests.

Model Experience

A file-mode clip reaches the model only as a file handle (name, byte count, saved path, and a hint to read it with file tools); an inline clip splices its full text into the user message. The LLM rewrite runs outside the session: the model sees only the clip text, the instruction, and the optional recent-message excerpt the plugin passes explicitly — never the session event stream.

Known Limitations and Deferred Work

The host must provide the declared public composer, Settings, input-trigger, right-Sidebar, and Remote seams; an older host missing one disables only that capability. The supported code-language list is finite and local. File-mode delivery requires a known session workspace path; clips created before cwd capture fail file-mode sends with an explicit error rather than silently. Paste detection cannot distinguish a paste from any other large single-step insertion (IME commits, undo); the threshold limits but does not eliminate false positives. Browser acceptance belongs to the host release process; this repository's automated checks do not replace a maintainer's real-browser review.

Dev Note

Working context for maintainers — click to expand

The package uses the existing DSH profile bundle mechanism and local package scripts. Run pnpm test, pnpm run typecheck, pnpm run bundle, and pnpm run pack:check from this directory.