Bundle
dsh-custom-context-injector
DeepSeek Harness (Cordis) 插件:提供「自定义上下文」设置页并注入到模型上下文,支持落盘持久化。
- Source
- LiKanGame
- License
- MIT
- Updated
- Updated yesterday
Readme
# dsh-custom-context-injector
DeepSeek Harness(Cordis 运行时)插件:让你在设置里维护一段「自定义上下文」,并把它注入到每次模型调用的提示中。
## 它做什么
两个能力合在一起:
- **D — 「自定义上下文」设置页**
在 GUI 的 设置(齿轮)→ 新增一页「自定义上下文」:一个「启用注入」开关 + 一个多行输入框 + 「保存」按钮。
- **B — 自动注入**
启用状态下,保存的这段文字会作为一条 `systemPrompt` section 注入到每次模型装配。实测:开启后,当前会话以及之后通过「新对话」开出的新会话都会携带这段内容。
- **持久化**
保存会尝试把内容写入磁盘 JSON,跨重启保留;若磁盘写入不可用则如实降级为“仅内存”并在设置页提示。
## 结构
```
src/
host.js Host 半区:fs 持久化、get/set RPC、systemPrompt section 注入
client.js Client 半区:settings.section 插槽里的设置页 UI
package.json
```
两侧通过 **Package-private RPC** 通信:Client 用 `host.call('extra-context/get'|'extra-context/set')`,Host 用 `harness.handle(...)` 应答。Host 的注入读取内存缓存(由启动时的磁盘加载与保存时写入共同维护),因为 `systemPrompt.section` 的 `text` 是同步的。
## 运行环境依赖(重要)
本源码是**经过实机验证的动态 Cordis Package** 的可维护镜像。它依赖 DSH 动态运行时注入的全局/服务:
- Host:`harness` 全局、`ctx.get('systemPrompt')`、`ctx.get('fs')`(纯 JS,无 import/require)。
- Client:`React`(仅 createElement)、`host`、`styles`、`ctx`、插槽 `settings.section`(无 JSX/import)。
因此它**当前不是可独立安装的 npm 包**:客户端部分会依赖 Harness 内部包(`@deepseek-ai/dsh-*`),在那些包可被外部解析之前,无法用 `dsh plugin add` 直接装上。把它跑起来有两条现实途径:
1. **作为动态插件**:把 `host.js`/`client.js` 的插件函数体按 Cordis 动态插件流程 `define` + `run` 到当前运行实例。
2. **接线成真正的 DSH feature**:待能解析内部依赖后,把它并入某个 composition / feature 目录并加一行加载。
## 行为与边界(如实说明)
- **进程内缓存 + 磁盘文件**:内容存一份在内存(供同步注入),保存时落盘。
- **持久文件实际落点**:在本机实测中,`fs` 服务的默认 base 是 DSH 宿主进程工作目录(如 `E:\deepseek-harness`),所以文件落在 `E:\deepseek-harness\.dsh-custom-context.json`。若要改到别处,需要显式 resolve 一个绝对路径(并确认 `fs` 允许写该位置)。`.dsh-custom-context.json` 已加入本仓 `.gitignore`,不会被提交。
- **注入作用域**:作用于加载该插件的 realm 的后续提示装配,不等于对全 Harness 的历史会话做持久写入。
- **动态插件为临时形态**:正式化需迁到持久 settings namespace 或 composition。
## License
MIT
Install
dsh plugin --profile web add github:LiKanGame/dsh-custom-context-injector
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-custom-context-injector from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.