# 客户端管线探索:浏览器面板的可行性与实现路径 > 调研时间:v15 之后。目标:评估路线图中"质粒图谱浏览器内实时面板"与"文献库浏览器端面板"的可行性并给出实现路径。 > **结论先行:preset 渠道无法挂客户端 UI(组合/发现/运行时推送三层机制挡住);官方支持的正路是 bundle 渠道的 `dsh.client` 双面包(dual-face package);动态插件系统可做快速原型。** > 证据来源:(1) 本机 DSH 0.1.1-rc.2 安装目录源码(`C:\Users\18771\AppData\Roaming\npm\node_modules\@deepseek-ai\dsh\node_modules\@deepseek-ai\`,下称 NMN,含行号);(2) 官方文档站 `deepseek-harness.github.io` 与 DeepWiki;(3) 本机运行页面实测的 Slot 查询。 ## 1. 浏览器客户端插件的现有机制(bundle 渠道,官方支持) 客户端插件组合**不是构建时打进 web bundle**,而是宿主启动时扫描 + 运行期按需加载: 1. 一个 npm 包在 `package.json` 声明双面入口(真实例子:`NMN\dsh-client-ui-cordis\package.json`): ```jsonc { "exports": { ".": { "default": "./lib/index.js" }, // 宿主半边 "./client": { "default": "./lib/client.js" } // 浏览器半边(预构建产物,随包发布) }, "dsh": { "client": { "platform": "web", // 必须 "inject": ["@deepseek-ai/dsh-client-ui-settings-plugins"], // 可选:外部化依赖 "external": [...], // 可选 "immediately": false // 可选 } } } ``` 2. 宿主半边 `ClientModuleRegistry`(`NMN\dsh-client-modules\lib\index.js` L258-303): - 扫描 **`ctx.loader` 条目**(L290、L421-437),条目名 = 包名,用 `createRequire(ctx.baseUrl).resolve(<包>/package.json)` 解析(L276)——**只有从配置目录可解析的 npm 包才能被扫到**; - 解析 `dsh.client`(L120-134,`platform` 必须为 `"web"`)与 `exports["./client"]`(L136-146,缺失即报错);产物必须是已构建的 lazy-CJS 文件,缺失时报 `client bundle not found; run pnpm run build`(L89-103); - 哈希成 rev,路由 `/plugins//client.js?rev=`(L152-161、L459-490),向 `webserver/index-inject` 注入 `window.__ModuleLoader__` + parser-blocking 预加载 + `window.__DSH_BOOT__` 引导图(L209-250)。 3. 浏览器半边(`NMN\dsh-client-modules\lib\client.js`):解析 `__DSH_BOOT__`,经典 `