npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@khorsheed/dsh-bundle-conversation-toolbox

v0.1.2

Published

Family bundle 会话工具箱: message-tools, message-timeline, session-title-edit, quote, inline-html-render, context-guard and taskpilot in one install. Thin meta package: a patch carrying the members' canonical rows, npm dependencies on the members, locale card

Downloads

478

Readme

@khorsheed/dsh-bundle-conversation-toolbox

English | 中文

一条命令,七个会话体验插件装齐——消息编辑/撤回、时间线跳回、会话标题改名、引用任意内容、内联 HTML 卡片、上下文占用提醒、后台任务控制。

七个成员各自单装也完全成立,但插件清单里会散成七张卡。这个家族 bundle 把它们的规范行收成一张「会话工具箱」卡:一次 dsh plugin add 装齐整个家族,清单里按一张卡管理。薄元包——patch 插成员规范行 + npm 依赖带齐成员 + locale 卡面元数据,自身零运行时代码、零客户端面(纯组合:不注册任何服务/工具/槽位/命令)。

特性

  • 一条命令装齐——七个成员全部列进 dependencies,装本 bundle 即带齐整个家族,不用逐包安装。
  • 清单里按家族归类——七行收进一张「会话工具箱」bundle 卡;卡面标题与描述随宿主语言走(locale/zh.json / locale/en.json)。
  • 不双挂——装本 bundle 只应用本 patch;成员作为传递依赖到达,它们自己的 patch 保持惰性,任何一行都不会挂两次(机制见「实现原理」)。
  • 成员行为零修改——每个成员的功能、配置与会话级可见性(preset 自隐)判据与单独安装时完全一致,本 bundle 不加也不减;细节见各成员自己的 README。

成员

| 成员包 | 行 id | 内容 | | --- | --- | --- | | @khorsheed/dsh-client-message-tools | message-tools | 发出的消息可复制、就地编辑、真撤回(从模型上下文移除,可恢复) | | @khorsheed/dsh-message-timeline | message-timeline | 会话滚动区上的浮动时间线,一键跳回任意用户消息 | | @khorsheed/dsh-client-session-title-edit | session-title-edit | 聊天头部会话标题内联改名(用户命名后不再被自动重生成覆盖) | | @khorsheed/dsh-quote | quote | 选中任意文本浮出动作菜单:引用到当前会话 / 侧边对话(未装时该项自隐)、复制 | | @khorsheed/dsh-inline-html-render | inline-html-render | 把 agent 写的 dsh-card fenced block 渲染成会话内联的沙箱交互卡片 | | @khorsheed/dsh-context-guard | context-guard | 上下文占用越过阈值时,composer 出现压缩提醒按钮 + 设置卡 | | @khorsheed/dsh-taskpilot | taskpilot | composer 上方的后台任务/子 agent 停靠 pill:停止/打断、实时耗时与 token、详情侧栏 |

安装

dsh plugin --profile web add @khorsheed/dsh-bundle-conversation-toolbox

重启 web 实例后生效。挂载后七行全部就位,各插件的浏览器面经各自包内的 dsh.client 声明发现。

dsh plugin --profile web remove @khorsheed/dsh-bundle-conversation-toolbox

卸载即把七行一起撤下(成员的 patch 从未单独应用,无残留)。

Compatibility

  • npm 发布线(@deepseek-ai/[email protected]):✅ 完整——纯组合,地板取成员最高者(minHost 0.1.5-rc.1:message-tools、quote、taskpilot 的地板;其余成员 0.1.2-rc.1)。成员各自在该线上的降级项(如 quote 的侧边对话路由探测)见各成员自己的 Compatibility 节。
  • 源码线(deepseek-harness master):✅ 完整(verifiedHost: 0.1.7-rc.2)。

版本线对照:0.1.0 起要求宿主 0.1.5-rc.1 及以后。

实现原理

形态:纯组合元包。

  • patch 逐字复用成员的规范行:cordis.patch.yml 的七行各来自对应成员包自己的 cordis.patch.yml,id 与 name 原样。仓级 check:plugins 的 dsh.bundle.kind: 'family' sanction 机械钉死这一点:行只允许落在「成员规范行全集」白名单内,成员必须是真实自挂载包,每个成员必须至少贡献一行(本包 tests/ 里的规格逐行复核)。
  • 装一族,不双挂:成员全部列进 dependencies(安装即带齐),同时登记进 dsh.references(家族名册供 pack 期与目录层读取)。机制依据:dsh plugin add 只把 profile 的直接依赖收编进 bundles 层(reconcilePlugins)——装本 bundle 只应用本 patch,成员作为传递依赖到达,它们自己的 patch 不被应用,任何一行都不会挂两次。成员单独 dsh plugin add 仍自挂载(仓规不破);两者同装时的行重叠由官方 bundle 详情页的行级开关解决。
  • src/index.ts 只导出常量(FAMILY_MEMBERS),让包有可构建的 lib/(pack-dist 的硬性要求);locale/*.json 只携带 bundle 卡面的 meta.title / meta.description。

开发

隶属 dsh-plugins monorepo(packages/bundle-conversation-toolbox)。问题与贡献请移步该仓库。