ycp424c/dsh-luna-vision-bridge ↗★ 0
@ycp424c/dsh-luna-vision-bridge
DSH LLM 适配器,使用 Codex Luna 转录原生图像附件,然后委托给 DeepSeek
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:ycp424c/dsh-luna-vision-bridge说明文档
阅读完整 README ↗dsh-luna-vision-bridge
dsh-luna-vision-bridge 是一个纯 Host 侧的 DSH LLM adapter。它注册新的 luna-vision-bridge provider,让原生 DSH 输入框可以继续使用粘贴图片、拖放、缩略图、删除、Enter 和发送按钮;图片进入 DSH 原生 attachment store 后,由 Codex Luna 转成文字,再交给任意一个已注册的纯文本模型(下游 target,可配置多个并在模型选择器切换)。
[!WARNING] 这是为当前 DSH 图片输入限制准备的临时兼容方案,不是建议长期依赖的正式架构。通过客制化 provider 宣告图片能力、再在 adapter 内转写图片,本质上是绕过当前 text-only admission 的工程性 workaround,具有一定 hack 性质。转写端只适配 Codex CLI 和
gpt-5.6-luna;下游可以是任意纯文本 provider,但本插件不是通用视觉 provider 框架。DSH 官方后续可能很快提供原生读图能力,但具体能力和时间以官方发布为准;一旦官方方案覆盖当前需求,应优先迁移并停用本插件。
工作方式
DSH 原生 addImages / submit
│
▼
DSH attachment store(校验并持久化原图)
│
▼
luna-vision-bridge adapter
1. 读取经过校验的附件
2. 写入 0600 临时文件
3. 调用插件内置 scripts/read-image-luna.sh
4. 脚本启动 codex exec --json / gpt-5.6-luna
5. 删除临时文件
6. 将图片块替换为带安全边界的识图文本
│
▼
target provider / target model(任意纯文本下游,按所选模型路由)
插件不会劫持 DOM、发送按钮或 addImages。安装后模型选择器会出现:
- Provider:
Luna Vision Bridge(名字可配置) - 模型:每个下游 target 一条,如
DeepSeek V4 Flash + Luna、Pi Coder + Luna、GPT-5.6 + Luna……
选择任一条桥接模型后即可沿用原生图片交互;切换组合即切换下游模型。
前置条件
- 每个下游 target 的 provider 已在 DSH 注册且纯文本可用(如
deepseek-official)。 codexCLI 可以从启动 DSH 的 Host 环境执行,并已完成认证。
插件自带 scripts/read-image-luna.sh,不读取或依赖全局 ~/.dsh/scripts/read-image-luna.sh。内置脚本复用现有识图 skill 背后的 Codex Luna 调用方式,执行 codex exec --json;Host adapter 负责解析最终 agent_message,不依赖终端文本格式,也不让下游模型再决定是否触发 skill。这样图片发送一定会先经过 Luna,且不会被下游模型的 text-only capability gate 拒绝。
本地开发
cd /absolute/path/to/dsh-luna-vision-bridge
pnpm setup:dsh
pnpm install
pnpm check
setup:dsh 默认链接 ~/.dsh/source/current;也可以通过参数或 DSH_SOURCE 环境变量传入其他 DSH checkout:
pnpm setup:dsh -- /absolute/path/to/dsh
安装到 Web profile
通过 npm(推荐)
插件已发布到 npm:@ycp424c/dsh-luna-vision-bridge。
# 1. 安装依赖(等价于在 profile 目录执行 pnpm add)
dsh plugin add --profile web @ycp424c/dsh-luna-vision-bridge
# 2. 挂载插件:把包名追加到 ~/.dsh/profiles/web/package.json 的 bundles
# "dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "@ycp424c/dsh-luna-vision-bridge"] } }
# 3. 重启
dsh web
peerDependencies(、)由 DSH 本体提供,无需单独安装。