DeepSeek Harness Hub
← 返回列表

文档划词问答HaowenCang/dsh-document-selection-ask

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

在多种文档预览中划选内容,直接向模型追问

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/16 · 已提供中文文档

用于跨文本、PDF、DOCX、PPTX 和 XLSX 预览的溯源感知选择与 Ask 工作流的 DSH 插件。

综合分
30
GitHub 分
30
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add HaowenCang/dsh-document-selection-ask
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-dockkit@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-session@deepseek-ai/dsh-client-ui-sidebar-documentpreview@deepseek-ai/dsh-client-ui-sidebar-right@deepseek-ai/dsh-client-ui-slots
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-document-selection-ask — 开发蓝图与实施状态

该仓库用于使用 DSH + DeepSeek v4.1 Flash 实现一个通用文档“选中内容 → 询问 DeepSeek”插件。

- 代码仓库:https://github.com/HaowenCang/dsh-document-selection-ask
- 许可证:MIT(见 LICENSE,第三方组件许可证见 THIRD_PARTY_NOTICES.md)

当前状态

| 项目 | 状态 |
|---|---|
| Design | APPROVED |
| Task 1 | COMPLETE |
| Task 1A | COMPLETE |
| Task 2 | COMPLETE |
| Task 3 | COMPLETE |
| Task 3A | COMPLETE |
| Task 3B | COMPLETE |
| Task 4 | COMPLETE |
| Task 5 | COMPLETE |
| Task 5A | LOCAL CODE PASS / REAL DSH TEXTPREVIEW SMOKE BLOCKED |
| Task 5B | REAL DSH TEXTPREVIEW SMOKE PASS / 已记录一处 production defect(未修) |
| Task 5C | COMPLETE — production defect 已修复(Ask surface 迁至 shell.overlay) |
| Next task | 未授权(Task 6 未开始) |
| Primary runtime | DSH 0.1.5-rc.1 |
| Forward contract target | DSH 0.1.5-rc.2 |
| GitHub publication | ACTIVE(public) |

TXT / Markdown / code / CSV 的选择 → 引用 → Ask 流程已经实现,并且已在真实 DSH 预览上通过 Playwright smoke。Task 5B 记录的那处 production defect 已由 Task 5C 修复:可见的 Ask surface 现在位于 shell.overlay(root scope,是三个栏位的兄弟节点),不再受 wSkVaW_composerStack 的 stacking context 限制,因此右栏展开且真实 TextPreview 挂载时,按钮仍可被真实鼠标点击。composer 侧的契约由 conversation.input.overlay 中的 ComposerTargetRegistrar 通过 ComposerTargetRegistry 按 session 提供;遮挡回归、draft 读取时机与会话隔离规则见 docs/STATUS.md。

已冻结范围

支持:

- TXT / plain text
- Markdown
- 源码 / 配置文件
- CSV
- PDF
- DOCX
- PPTX
- XLSX

后置:

- DOC / PPT / XLS
- OCR
- Office 编辑
- 批注/高亮持久化

核心架构

DSH builtin text/markdown/code ─┐
PDF Canvas + TextLayer ─────────┤
DOCX HTML DOM ──────────────────┤
PPTX HTML/SVG ──────────────────┼→ SelectionAdapter
XLSX semantic cell range ───────┘       │
▼
Universal Selection Kernel
│
provenance + quote
│
Selection Ask Overlay
│
inputActions.setDraft()

文档索引

DeepSeek v4.1 Flash 必须先读:

1. AGENTS.md
2. docs/superpowers/specs/2026-09-14-dsh-universal-document-selection-design.md
3. docs/superpowers/plans/2026-09-14-dsh-universal-document-selection.md

当前进度与已验证 gate:

docs/STATUS.md

从 Task 2 起的每一轮使用:

DEEPSEEK_TASK_PROMPT.md

Task 1 的启动指令存档在:

DEEPSEEK_START_PROMPT.md

完整执行流程:

docs/DEEPSEEK_EXECUTION_WORKFLOW.md

任务数量

实施计划共 15 个独立 TDD Task。每个 Task 都有:

- exact files
- interface contracts
- failing test
- expected failure
- minimal implementation boundary
- verification commands
- diff review
- commit boundary
- stop rules

不要跳 Task,也不要让 Flash 在一个会话中直接“完成整个项目”。

关键基线

- Primary verified runtime: DSH 0.1.5-rc.1
- Forward contract target: DSH 0.1.5-rc.2(仅 contract-compatible;未做真实应用 smoke,不得声称完整 runtime 支持)
- Node: ^22.19.0 || >=24.0.0
- client-only v1
- no cloud conversion
- no automatic submit
- no private DSH/React/Lexical hacks

开发环境
Contract 编译所需的 DSH public packages 在本项目 devDependencies 中按同一 release 精确固定,pnpm install 只写本项目 node_modules:

git clone https://github.com/HaowenCang/dsh-document-selection-ask.git
cd dsh-document-selection-ask
pnpm install
pnpm typecheck   # normative public-contract gate
pnpm test
pnpm build

不需要、也不允许预先修复用户级 DSH 安装。pnpm dsh:doctor 仅做检测:比对 contract pin 与本机 DSH 安装版本,不一致时以非零退出码报告;--runtime 要求必须找到本机安装。仓库不含任何机器绝对路径:全新 clone 只需 pnpm install 即可通过上述 gate。

真实 DSH 预览 smoke(开发者用,非用户功能)

tests/browser/ask-flow.spec.ts 在一个运行中的 DSH 里注入 preview body;它验证插件自身行为,但不证明真实文档预览会产出 adapter 读取的 DOM。tests/browser/real-dsh-textpreview.spec.ts 补齐这一点:该 spec 不创建任何 preview 节点,它点击 test-only companion plugin 提供的控件,由该控件调用公开的 ctx.sidebarRight.openResource(...),真实 @deepseek-ai/dsh-client-ui-sidebar-documentpreview 随即自行 mount TXT / code / Markdown fixture,Ask 全流程都在这份真实预览上观察。两类测试必须分开报告,只有后者是 Task 5B 的 gate。

该 companion driver 位于 tests/browser/smoke-driver/,是独立、最小、private、test-only 的 DSH client plugin:它不 import 被测插件,不创建 data-textpreview-* 节点,除 ctx.sidebarRight.openResource 外不做任何导航。它不进入主包 files 发布集合,也不作为 npm/runtime 依赖发布;用户无需安装它。

复现步骤(只操作隔离 profile dsa-smoke,不触碰任何用户 profile):

pnpm install
pnpm build                 # 主插件产物(不含 driver)
pnpm smoke:driver          # 构建 test-only driver(tests/browser/smoke-driver/lib)
pnpm smoke:profile prepare # 生成 fixture + 幂等维护 dsa-smoke 的 link/bundle 行
dsh --profile dsa-smoke --port 50111 --no-open
DSH_SMOKE_URL='http://127.0.0.1:50111/?token=…' pnpm test:browser

pnpm smoke:profile 支持 inspect / prepare / validate / cleanup,固定 profile 名 dsa-smoke,写入前会拒绝其它 profile;重复执行不产生 duplicate loader entry。未设置 DSH_SMOKE_URL 时真实预览 spec 自动 skip,pnpm test:browser 在没有 DSH 的机器上仍可用。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群