Source architecture
August 22, 2026 · View on GitHub
dsh-pdf-reader 是一个 DeepSeek Harness 双面插件:根目录下的 TypeScript 运行在主机侧,client/ 构建为浏览器侧阅读器。两侧通过 Harness 提供的公开接口交换有界索引、OCR 授权和页面结果。
主机侧
index.ts:插件入口,注册 PDF 文档工具、OCR 授权代理和惰性资源路由limits.ts:文件、Canvas、索引和资料等共享资源边界pdf-format.ts:PDF 输入格式校验pdf-document-index.ts:按对话保留的多文档原生文字索引、容量边界与来源链接协议pdf-ocr.ts:OCR 授权、预算和浏览器代理协议
浏览器侧
client/index.ts:浏览器入口,注册 Harness 插槽并连接主输入框client/PdfPanel.tsx:多文档标签、文件生命周期和阅读窗口client/PdfViewer.tsx:pdf.js 页面渲染、选择、截图、缩放、旋转和虚拟化client/PdfOutlineSidebar.tsx:目录、书签和搜索入口client/PdfAnnotationDrawer.tsx:批注中心client/PdfEvidenceDrawer.tsx:跨 PDF 图文资料及批量 AI 操作client/PdfThumbnailDrawer.tsx:虚拟化缩略图导航client/PdfToggle.tsx:打开或收起阅读器的浮动入口
主要模块
client/composer-*.ts:文字、图片和图文联合请求与 Harness composer 的兼容边界client/pdf-annotations.ts、client/pdf-annotation-save.ts:批注模型、恢复与标准 PDF 写入client/pdf-bookmarks.ts、client/pdf-outline.ts:书签编辑和目录投影client/pdf-evidence.ts、client/pdf-citations.ts:图文资料、来源编号和回答回链client/pdf-session-store.ts:按对话持久化 PDF 标签、阅读状态和共享资料client/pdf-document-index-sync.ts、client/pdf-background-index.ts、client/pdf-index-policy.ts:浏览器与主机间的有界文字索引同步、空闲分批与图片文档探测策略client/pdf-ocr-client.ts、client/ocr-runtime.ts:用户授权后的按需 OCR、有界 LRU 页面缓存和运行时释放client/pdf-search.ts、client/pdf-text-selection.ts:原生文字搜索与选择client/pdf-page-layout.ts、client/pdf-rotation.ts、client/geometry.ts、client/render-constraints.ts:页面布局、坐标变换和资源约束client/pdfjs.ts:pdf.js、Worker 和内置二进制资源入口
构建由根目录的 tsdown.config.ts 生成主机入口、浏览器 bundle 和惰性 OCR 运行时;插件清单位于 package.json 与 cordis.yml。