Skip to content
dsh.fish
Bundle

dsh-session-telecom

DSH session communication: copy session IDs, message live or saved sessions, and inspect token usage. Uses host runtime services without installing a second DSH core.

Source
ltmroberthk915
License
MIT
Updated
Updated 20 days ago

Readme

# dsh-session-telecom

DeepSeek Harness 会话通信插件。复制会话 ID、向在线或已保存的会话发送消息,并查看 token 用量、计费 token 和缓存命中率。

本包从原本地会话通信插件独立改名,包名、客户端模块、菜单项、RPC 通道和模型工具均使用新名称。它与 npm 上的 `dsh-session-toolkit` 是不同项目,不依赖或升级该包。

## 安装

当前版本通过 [GitHub Release](https://github.com/ltmroberthk915/dsh-session-telecom/releases/tag/v1.0.0) 发布,npm 尚未发布。使用 Release 中的 `.tgz`,通过 DSH 插件管理安装到实际使用的 profile。桌面端在插件管理页面使用发布包 URL;CLI/Web 用户可运行:

```sh
dsh plugin --profile web add https://github.com/ltmroberthk915/dsh-session-telecom/releases/download/v1.0.0/dsh-session-telecom-1.0.0.tgz
```

安装后重启宿主。桌面与 Web 的 profile 独立,需要分别安装。

如果所在网络无法访问 GitHub Release 附件,可使用相同版本的固定源码归档;该提交已包含构建后的客户端:

```sh
dsh plugin --profile web add https://codeload.github.com/ltmroberthk915/dsh-session-telecom/tar.gz/e8c3d41e4ccc158a5bf500acbbfde70ebeaae357
```

两种方式都不依赖开发者电脑上的源码目录。

迁移时先备份 DSH 配置和会话。移除旧插件的依赖和 bundle 项,再安装新包;旧的配置文件可以保留在备份中。不要直接覆盖、清空用户目录或会话数据。

如果之前安装 `dsh-session-toolkit@1.0.0` 后出现 `Cannot read properties of undefined (reading 'prepare')`,仅禁用它不一定恢复:已被安装的第二份 `@deepseek-ai/dsh-tools` 仍可能遮蔽宿主内核。应通过包管理器重建正确的依赖树,确认 profile 不再有这份多余的核心包,然后重启。

## 使用

会话菜单中可复制会话 ID;会话发送面板支持选择目标、查看用量并发送消息。

模型工具名为 `session_telecom`:

```json
{"action":"list","limit":20}
```

```json
{"action":"send","targetSessionId":"目标会话 ID","text":"请继续这项工作","mode":"queue"}
```

`queue` 排到目标下一回合;`steer` 插到目标下一步。已保存的离线会话由宿主恢复。发送会唤醒目标并可能产生模型费用,应只在用户授权的通信范围内使用。投递失败返回结构化错误,不自动重复发送;成功回执不要求收件人再回复一条回执。

用量显示来自宿主已有投影,不将估算 token 当成货币价格。缺少数据时明确显示未知。

## 依赖与生命周期

- 无运行时 `dependencies`、`optionalDependencies` 或捆绑依赖;不会安装第二份 DSH 内核或 React。
- 宿主库只声明为 optional peer,使用 DSH 自身的模块解析。包安装不执行脚本、不改宿主代码。
- 工具服务就绪后才加载宿主的工具定义接口。接口缺失或注册失败只停用模型工具并记录原因;RPC 与界面保持独立。
- 卸载会取消尚未完成的工具加载,并注销已注册的工具和路由。
- 不注入“每轮必须检查收件箱”的全局要求,普通对话无需调用本插件。

上述设计防止本包再次引入同类依赖冲突;其他插件或未来宿主的不兼容改动仍需单独验证。

## 开发与验证

```sh
npm ci
npm run build:client
npm test
npm run check:package
npm pack
```

构建只使用锁定的开发依赖 `esbuild`,没有个人目录或本地源码路径依赖。客户端从宿主获得 React。发布检查会拒绝新增的自动安装依赖、非 optional 的 peer、旧包名和内联 React。

`test` 覆盖通信、参数与输出契约、菜单、用量展示及加载/卸载竞态。找不到真实内核的可选对照测试会明确跳过,不能据此宣称宿主集成通过。

完整宿主测试使用 `scripts/host-smoke.cjs`。先在隔离目录安装发布 `.tgz`,profile bundles 配置为 `@deepseek-ai/dsh-base`、`@deepseek-ai/dsh-web-app`、`dsh-session-telecom`;设置 `DSH_TEST_RUNTIME`(宿主 dsh 目录)、`DSH_TEST_PROFILE` 和 `DSH_TEST_HOME`。使用宿主的 Node/Electron 运行,Electron 需设置 `ELECTRON_RUN_AS_NODE=1` 并传入 `--expose-internals`。测试会确认调度器属于同一个内核实例,并让两个新会话分别完成工具调用和回复。模型响应由测试适配器提供,不访问模型 API,也不向真实会话发消息。

## 许可

MIT

Install

dsh plugin --profile web add github:ltmroberthk915/dsh-session-telecom

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source