{"_id":"@bluemeat0724/dsh-md-viewer","_rev":"3-783010a0fce9ce08ffb9578c37134929","name":"@bluemeat0724/dsh-md-viewer","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@bluemeat0724/dsh-md-viewer","version":"0.1.0","license":"MIT","_id":"@bluemeat0724/dsh-md-viewer@0.1.0","maintainers":[{"name":"bluemeat0724","email":"wangrenyuan@outlook.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"7ac3eaa6b11f452e82d38704c20231aaf93d8739","tarball":"https://registry.npmjs.org/@bluemeat0724/dsh-md-viewer/-/dsh-md-viewer-0.1.0.tgz","fileCount":34,"integrity":"sha512-woE7xlCzzpAJMI5fvQgi1l6u3aSM5+H3pC4/EF0LzkvXpKuyERh1Z5MtEcusCqAFJsmhTmGtFif3SNBKNBQvXA==","signatures":[{"sig":"MEUCIQDLSC6AtKeey/BYCipt8+9qQjI9o8grdN4vqrxbzPMy8QIgSMNUtofIMny4LcZVws3YKABM6tbTSEYoMa2YufZ+WZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124991},"main":"lib/index.js","type":"module","types":"lib/types/index.d.ts","engines":{"node":"^22.19.0 || >=24.0.0"},"exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./src/*":"./src/*","./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"gitHead":"dd5595135d5f01ec6fa4ee68c23cc42c323fd4d8","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && tsdown","watch":"tsdown --watch","bundle":"tsdown","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"bluemeat0724","email":"wangrenyuan@outlook.com"},"_npmVersion":"11.12.1","description":"Markdown workspace viewer plugin for the DeepSeek Harness web GUI: renders any workspace's Markdown with the md-viewer engine (marked + highlight.js + mermaid into a self-contained offline snapshot) and browses the result in an embedded overlay; agent too","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@bluemeat0724/md-viewer":"^0.4.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.7.0","devDependencies":{"jsdom":"^25.0.0","react":"^18.3.1","tsdown":"0.22.2","vitest":"^4.1.8","react-dom":"^18.3.1","typescript":"~5.7.2","@types/node":"^22.20.0","@types/react":"~18.3.1","lightningcss":"1.32.0","@types/react-dom":"^18.3.5","@deepseek-ai/cordis":"^4.0.1","vite-tsconfig-paths":"^6.1.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-client-locale":"^0.1.0-rc.6","@deepseek-ai/dsh-system-prompt":"^0.1.0-rc.6","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.6","@deepseek-ai/dsh-host-webserver":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.6","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.6"},"peerDependencies":{"react":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-md-viewer_0.1.0_1787276742596_0.7548556010092233","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bluemeat0724/dsh-md-viewer","version":"0.1.1","license":"MIT","_id":"@bluemeat0724/dsh-md-viewer@0.1.1","maintainers":[{"name":"bluemeat0724","email":"wangrenyuan@outlook.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"dist":{"shasum":"6e948cac1e80f733dd31c836e2cb4a7cb0a733da","tarball":"https://registry.npmjs.org/@bluemeat0724/dsh-md-viewer/-/dsh-md-viewer-0.1.1.tgz","fileCount":34,"integrity":"sha512-yuojTCSwPNpXQxE5bNnjfqzdTinPXL09Q2a/KlFdLOs8PNUBWQrf+4v98psQwmhtGcc0hgb7thdOc48KQqg66Q==","signatures":[{"sig":"MEUCIQDNkIzoQkj4XggUJu+73WRU7KfzF3Du79FePvJhe5OCgwIgR7z4d0t5fnbyxqsC3zBsmgmdDaBKk1Sso1+9Bj9gwrE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124960},"main":"lib/index.js","type":"module","types":"lib/types/index.d.ts","engines":{"node":"^22.19.0 || >=24.0.0"},"exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./src/*":"./src/*","./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && tsdown","watch":"tsdown --watch","bundle":"tsdown","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"bluemeat0724","email":"wangrenyuan@outlook.com"},"description":"Markdown workspace viewer plugin for the DeepSeek Harness web GUI: renders any workspace's Markdown with the md-viewer engine (marked + highlight.js + mermaid into a self-contained offline snapshot) and browses the result in an embedded overlay; agent too","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@bluemeat0724/md-viewer":"^0.6.2"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.0","react":"^18.3.1","tsdown":"0.22.2","vitest":"^4.1.8","react-dom":"^18.3.1","typescript":"~5.7.2","@types/node":"^22.20.0","@types/react":"~18.3.1","lightningcss":"1.32.0","@types/react-dom":"^18.3.5","@deepseek-ai/cordis":"^4.0.1","vite-tsconfig-paths":"^6.1.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@deepseek-ai/dsh-client-locale":"^0.1.0-rc.6","@deepseek-ai/dsh-system-prompt":"^0.1.0-rc.6","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.6","@deepseek-ai/dsh-host-webserver":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.6","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.6"},"peerDependencies":{"react":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-md-viewer_0.1.1_1787283657270_0.7611995196098804","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bluemeat0724/dsh-md-viewer","description":"Markdown workspace viewer plugin for the DeepSeek Harness web GUI: renders any workspace's Markdown with the md-viewer engine (marked + highlight.js + mermaid into a self-contained offline snapshot) and browses the result in an embedded overlay; agent too","version":"0.2.0","type":"module","packageManager":"pnpm@11.7.0","engines":{"node":"^22.19.0 || >=24.0.0"},"main":"lib/index.js","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"}},"scripts":{"build":"tsc -p tsconfig.build.json && tsdown","bundle":"tsdown","watch":"tsdown --watch","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest"},"peerDependencies":{"react":"^18.2.0"},"dependencies":{"@bluemeat0724/md-viewer":"^0.7.0"},"devDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.6","@deepseek-ai/dsh-client-locale":"^0.1.0-rc.6","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.6","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.6","@deepseek-ai/dsh-host-webserver":"^0.1.0-rc.6","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-system-prompt":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/dsh-workspace":"^0.1.0-rc.6","@types/node":"^22.20.0","@types/react":"~18.3.1","@types/react-dom":"^18.3.5","jsdom":"^25.0.0","lightningcss":"1.32.0","react":"^18.3.1","react-dom":"^18.3.1","tsdown":"0.22.2","typescript":"~5.7.2","vite-tsconfig-paths":"^6.1.1","vitest":"^4.1.8"},"license":"MIT","gitHead":"9545f9eb00cfa7019e82b8c06cedaec11250926d","_id":"@bluemeat0724/dsh-md-viewer@0.2.0","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-Dfrpe4p9T1Znn/UGVNU4MW/HLcC0WYmtOJZ46HTT22r6I65QIjilzRnFe8mCTGBr4BwPCekcZZABy7rOAnjz0A==","shasum":"a8a9805ee50b0b44487ffa98a8a7e6c504676e42","tarball":"https://registry.npmjs.org/@bluemeat0724/dsh-md-viewer/-/dsh-md-viewer-0.2.0.tgz","fileCount":34,"unpackedSize":127209,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDyzjNuP5O8RnbPnDfwa0KltIkjOWISZ5RQRJVe5pOF4wIhAMwOdBfhT9G+Vs4qCnmV00GhBh/aBNzVPJOjug3i6uO9"}]},"_npmUser":{"name":"bluemeat0724","email":"wangrenyuan@outlook.com"},"directories":{},"maintainers":[{"name":"bluemeat0724","email":"wangrenyuan@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-md-viewer_0.2.0_1787292676657_0.12992961544220916"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-21T01:45:42.378Z","modified":"2026-08-21T06:11:16.955Z","0.1.0":"2026-08-21T01:45:42.755Z","0.1.1":"2026-08-21T03:40:57.423Z","0.2.0":"2026-08-21T06:11:16.798Z"},"license":"MIT","description":"Markdown workspace viewer plugin for the DeepSeek Harness web GUI: renders any workspace's Markdown with the md-viewer engine (marked + highlight.js + mermaid into a self-contained offline snapshot) and browses the result in an embedded overlay; agent too","maintainers":[{"name":"bluemeat0724","email":"wangrenyuan@outlook.com"}],"readme":"# dsh-md-viewer — Markdown 工作区文档查看器（DSH 插件）\n\n[English](README.md) | 中文\n\n在 DeepSeek Harness Web GUI 里直接浏览任意工作区的 Markdown 与 JSON——由 **md-viewer 引擎**\n（marked + highlight.js + mermaid → 自包含离线快照）渲染。Host 半区进程内复用\n`@bluemeat0724/md-viewer` 程序化 API，不 spawn 子进程、不依赖外部服务。\n\n本包是 **md-viewer 项目的 DSH 插件封装**，与引擎同仓库维护（`packages/dsh-md-viewer`）。\n\n## 能力\n\n- **一键构建快照**：选择工作区（或手动输入任意目录路径），点「构建并预览」；\n  Host 把目录下所有 `*.md` / `*.json` 渲染进\n  `<目录>/.agents/md-viewer/index.html` 并缓存在内存。\n- **内嵌预览**：全屏覆盖层通过 iframe（`/mdv/<目录>` 路由）展示渲染结果——\n  文件树、全文搜索、Mermaid 缩放、主题切换全部可用，支持「新标签打开」。\n- **双入口**：会话标题栏按钮（📚 MD 文档）+ 侧边栏底部按钮（设置齿轮旁）。\n- **Agent 工具**：`mdv_build [dir]` 渲染指定目录（缺省会话工作区）；\n  `mdv_status` 列出已构建快照。\n\n## 安全模型\n\n- 构建**由用户在 GUI 触发**或 **Agent 显式调用**（`mdv_build`）；Host 只写\n  用户所选目录下一个文件 `<目录>/.agents/md-viewer/index.html`，使用宿主进程权限。\n- 全部 `/api/mdv/*` 与 `/mdv/*` 路由带 **loopback-only 信任栅栏**（同源标记）；\n  局域网暴露的 DSH 部署不会提供这些端点。\n- 快照只存在宿主内存；磁盘上除构建出的 HTML 文件外不落任何持久数据。\n\n## 安装\n\n```sh\n# npm 安装（推荐）\ndsh plugin --profile web add @bluemeat0724/dsh-md-viewer\n\n# 开发调试（本地目录）\ndsh plugin --profile web add link:/Users/g-air/projects/research/md-viewer/packages/dsh-md-viewer\n```\n\n## 开发\n\n```sh\ncd packages/dsh-md-viewer\npnpm install\npnpm typecheck\npnpm test       # 引擎扫描/构建/提供测试\npnpm build\n```\n\n渲染管线在 `@bluemeat0724/md-viewer` 依赖（本仓库根目录）；本包在其上添加\nDSH 表面（路由 / 工具 / UI）。构建预设 `build/tsdown.client.ts` 是自包含的\nvendored 副本（源自 dsh-web-ui 的 shared 预设），升级 DSH SDK 时同步。\n\n## 已知限制\n\n- 渲染快照是构建时副本：编辑 `.md` 后需重新构建（GUI 按钮或 `mdv_build`）\n  才会出现在预览中。\n- 查看器覆盖层浮在整个 GUI 之上，用关闭按钮退出。\n","readmeFilename":"README.zh.md"}