{"_id":"@ahikl/dsh-desktop","_rev":"10-242d7af5da7a05a5e803e2aa95a6115d","name":"@ahikl/dsh-desktop","dist-tags":{"latest":"0.3.2"},"versions":{"0.1.0":{"name":"@ahikl/dsh-desktop","version":"0.1.0","keywords":["dsh","dsh-plugin","electron","desktop","deepseek-harness"],"author":{"name":"ahikl"},"license":"MIT","_id":"@ahikl/dsh-desktop@0.1.0","maintainers":[{"name":"ahikl","email":"ahishatsusa@gmail.com"}],"homepage":"https://github.com/ahikl/dsh-desktop#readme","bugs":{"url":"https://github.com/ahikl/dsh-desktop/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"2c751a6e00d7b95100bef0cf94ed2fc166ba3211","tarball":"https://registry.npmjs.org/@ahikl/dsh-desktop/-/dsh-desktop-0.1.0.tgz","fileCount":14,"integrity":"sha512-kp4gBmsMXYs3UDhaM6r3cb+R2HDXrPjVG2GVKI3RkMz7mo33EttEer5RRGjT6MxTS1mFu/c5btB08Qolj2e+pA==","signatures":[{"sig":"MEUCIQCXftLmblqyM3a9farI6Xjf0LaSVjRDKOSDIgMLf+53pgIga/N32ht24bUOaShuB+YnByhX8lEiK9k4+vMh/mQPy/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49133},"main":"lib/index.js","type":"module","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./startup":{"types":"./lib/types/startup.d.ts","default":"./lib/startup.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"e3b0fa8beb28c28bcf0420b355c77b4deba81e71","scripts":{"lint":"oxlint .","test":"vitest run","build":"tsc -p tsconfig.json && tsdown","prepack":"pnpm run build","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"ahikl","email":"ahishatsusa@gmail.com"},"deprecated":"This version has bugs, please upgrade to 0.3.2","repository":{"url":"git+https://github.com/ahikl/dsh-desktop.git","type":"git"},"_npmVersion":"11.8.0","description":"A dsh desktop bundle: an Electron shell over the dsh Web UI with a system tray and a dsh-styled custom title bar.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"commander":"^15.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"unrun":"^0.3.1","oxlint":"^1.76.0","tsdown":"^0.22.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^22.20.0"},"peerDependencies":{"electron":">=28.0.0","@deepseek-ai/cordis":">=0.1.0-rc.5","@deepseek-ai/dsh-cmdline":">=0.1.0-rc.5","@deepseek-ai/schemastery":">=0.1.0-rc.5","@deepseek-ai/cordis-plugin-loader":">=0.1.0-rc.5"},"peerDependenciesMeta":{"electron":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-desktop_0.1.0_1786863768073_0.9440751301629748","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ahikl/dsh-desktop","version":"0.2.0","keywords":["dsh","dsh-plugin","electron","desktop","deepseek-harness"],"author":{"name":"ahikl"},"license":"MIT","_id":"@ahikl/dsh-desktop@0.2.0","maintainers":[{"name":"ahikl","email":"ahishatsusa@gmail.com"}],"homepage":"https://github.com/ahikl/dsh-desktop#readme","bugs":{"url":"https://github.com/ahikl/dsh-desktop/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"e7bb7d0848bb6e66e0414210fafd042210252ad0","tarball":"https://registry.npmjs.org/@ahikl/dsh-desktop/-/dsh-desktop-0.2.0.tgz","fileCount":14,"integrity":"sha512-FhWCgb7P1FxegzcJHG6JDjRxOvSm3ZiiymQhGSFQWE7O1slxNWIrTqITw50dVvYNnz6epuFLxoeksrYKkMlOWg==","signatures":[{"sig":"MEQCICmiR+7yoYYP/7Y38mdJOi0lekUOSn+1kTO+sWTAoMGwAiAgx+NW3HZRZUf5wlmF60CjZVDHqsTVfpHoqgpM+NqmfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52111},"main":"lib/index.js","type":"module","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./startup":{"types":"./lib/types/startup.d.ts","default":"./lib/startup.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"747f6dcc4ff4c358e47c2fdcee1244b924a845fa","scripts":{"lint":"oxlint .","test":"vitest run","build":"tsc -p tsconfig.json && tsdown","prepack":"pnpm run build","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"ahikl","email":"ahishatsusa@gmail.com"},"deprecated":"This version has bugs, please upgrade to 0.3.2","repository":{"url":"git+https://github.com/ahikl/dsh-desktop.git","type":"git"},"_npmVersion":"11.8.0","description":"A dsh desktop bundle: an Electron shell over the dsh Web UI with a system tray and a dsh-styled custom title bar.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"commander":"^15.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"unrun":"^0.3.1","oxlint":"^1.76.0","tsdown":"^0.22.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^22.20.0"},"peerDependencies":{"electron":">=28.0.0","@deepseek-ai/cordis":">=0.1.0-rc.5","@deepseek-ai/dsh-cmdline":">=0.1.0-rc.5","@deepseek-ai/schemastery":">=0.1.0-rc.5","@deepseek-ai/cordis-plugin-loader":">=0.1.0-rc.5"},"peerDependenciesMeta":{"electron":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-desktop_0.2.0_1786867744526_0.945730984947198","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@ahikl/dsh-desktop","version":"0.3.0","keywords":["dsh","dsh-plugin","electron","desktop","deepseek-harness"],"author":{"name":"ahikl"},"license":"MIT","_id":"@ahikl/dsh-desktop@0.3.0","maintainers":[{"name":"ahikl","email":"ahishatsusa@gmail.com"}],"homepage":"https://github.com/ahikl/dsh-desktop#readme","bugs":{"url":"https://github.com/ahikl/dsh-desktop/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"88a054ac5ad618885278d2e937701ad896165726","tarball":"https://registry.npmjs.org/@ahikl/dsh-desktop/-/dsh-desktop-0.3.0.tgz","fileCount":14,"integrity":"sha512-0NxICNUtcqxWzxlDdasyYFzTEMgXEGnb7xO8EPT2H/rb2NTaKlmvsn/XIFazS5usXwgxVeTZaVnrR1NJWjKmoA==","signatures":[{"sig":"MEUCIBm1KeDwn8onOnAWMe7FmR54MkgfLC7psqO1HLX+FaOkAiEA0o0NipwCbIswvnpbv/2yADWQ8RfEVSe9wrccj6O07sE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahikl%2fdsh-desktop@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51878},"main":"lib/index.js","type":"module","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./startup":{"types":"./lib/types/startup.d.ts","default":"./lib/startup.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"68f783c9c481c8a0b4b72183176874edbdc09913","scripts":{"lint":"oxlint .","test":"vitest run","build":"tsc -p tsconfig.json && tsdown","prepack":"pnpm run build","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cc6f8693-3f84-4ef3-9391-f2dc74bcf4f1"}},"deprecated":"This version has bugs, please upgrade to 0.3.2","repository":{"url":"git+https://github.com/ahikl/dsh-desktop.git","type":"git"},"_npmVersion":"11.17.0","description":"A dsh desktop bundle: an Electron shell over the dsh Web UI with a system tray and a dsh-styled custom title bar.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"commander":"^15.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"unrun":"^0.3.1","oxlint":"^1.76.0","tsdown":"^0.22.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^22.20.0"},"peerDependencies":{"electron":">=28.0.0","@deepseek-ai/cordis":">=0.1.0-rc.5","@deepseek-ai/dsh-cmdline":">=0.1.0-rc.5","@deepseek-ai/schemastery":">=0.1.0-rc.5","@deepseek-ai/cordis-plugin-loader":">=0.1.0-rc.5"},"peerDependenciesMeta":{"electron":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-desktop_0.3.0_1786867966966_0.8302811504148895","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@ahikl/dsh-desktop","version":"0.3.1","keywords":["dsh","dsh-plugin","electron","desktop","deepseek-harness"],"author":{"name":"ahikl"},"license":"MIT","_id":"@ahikl/dsh-desktop@0.3.1","maintainers":[{"name":"ahikl","email":"ahishatsusa@gmail.com"}],"homepage":"https://github.com/ahikl/dsh-desktop#readme","bugs":{"url":"https://github.com/ahikl/dsh-desktop/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"ad69bac2a9d0c6229a0ac3809650487d5e02cdb4","tarball":"https://registry.npmjs.org/@ahikl/dsh-desktop/-/dsh-desktop-0.3.1.tgz","fileCount":14,"integrity":"sha512-e16WfTL31LV3jX3hV+mnJ0bTbwUcqJ1f79YJg9tdpcMNFhG9JUkb2mgV1Tna0vZZU4hpfSZ7CNIllT+pdj2rLg==","signatures":[{"sig":"MEYCIQC5sD10hpC8RvYXyzM5KcUNkvHM5bNhYP0IJ7orycBR0wIhAJs3v4o/A9jeI+vuSltgDLAxvUIcdLe4gQ0xRTVcH63Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahikl%2fdsh-desktop@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52186},"main":"lib/index.js","type":"module","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./startup":{"types":"./lib/types/startup.d.ts","default":"./lib/startup.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"7e59bf2b5886cb123260978a2b2d529bafaf6724","scripts":{"lint":"oxlint .","test":"vitest run","build":"tsc -p tsconfig.json && tsdown","prepack":"pnpm run build","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cc6f8693-3f84-4ef3-9391-f2dc74bcf4f1"}},"deprecated":"This version has bugs, please upgrade to 0.3.2","repository":{"url":"git+https://github.com/ahikl/dsh-desktop.git","type":"git"},"_npmVersion":"11.17.0","description":"A dsh desktop bundle: an Electron shell over the dsh Web UI with a system tray and a dsh-styled custom title bar.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"commander":"^15.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"unrun":"^0.3.1","oxlint":"^1.76.0","tsdown":"^0.22.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^22.20.0"},"peerDependencies":{"electron":">=28.0.0","@deepseek-ai/cordis":">=0.1.0-rc.5","@deepseek-ai/dsh-cmdline":">=0.1.0-rc.5","@deepseek-ai/schemastery":">=0.1.0-rc.5","@deepseek-ai/cordis-plugin-loader":">=0.1.0-rc.5"},"peerDependenciesMeta":{"electron":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-desktop_0.3.1_1786869366360_0.9375571886007203","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@ahikl/dsh-desktop","version":"0.3.2","keywords":["dsh","dsh-plugin","electron","desktop","deepseek-harness"],"author":{"name":"ahikl"},"license":"MIT","_id":"@ahikl/dsh-desktop@0.3.2","maintainers":[{"name":"ahikl","email":"ahishatsusa@gmail.com"}],"homepage":"https://github.com/ahikl/dsh-desktop#readme","bugs":{"url":"https://github.com/ahikl/dsh-desktop/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"3ce06c4fd47ab69d924e182f541d55de76eadc35","tarball":"https://registry.npmjs.org/@ahikl/dsh-desktop/-/dsh-desktop-0.3.2.tgz","fileCount":14,"integrity":"sha512-o3APIj6kRA+dC6go4eju+R4rT7O9MaBBY8DeTJQSUOK3FYZtthawUlHKvQ3AC9Jravsgwe01/LkmLH5FvGeW1A==","signatures":[{"sig":"MEUCIHs0JL7NYAUWY6XEdjl1GDxCe27HjLXo2fCV3FnY1+V2AiEA9WCab6xcgfIuDIV3qQ2SdKCpvQuH+X74JMfiwk5FgCk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahikl%2fdsh-desktop@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52340},"main":"lib/index.js","type":"module","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./startup":{"types":"./lib/types/startup.d.ts","default":"./lib/startup.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"370f92835e8cd1fae67b4cfe9c5feb88990cb3b3","scripts":{"lint":"oxlint .","test":"vitest run","build":"tsc -p tsconfig.json && tsdown","prepack":"pnpm run build","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cc6f8693-3f84-4ef3-9391-f2dc74bcf4f1"}},"repository":{"url":"git+https://github.com/ahikl/dsh-desktop.git","type":"git"},"_npmVersion":"11.17.0","description":"A dsh desktop bundle: an Electron shell over the dsh Web UI with a system tray and a dsh-styled custom title bar.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"commander":"^15.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"unrun":"^0.3.1","oxlint":"^1.76.0","tsdown":"^0.22.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^22.20.0"},"peerDependencies":{"electron":">=28.0.0","@deepseek-ai/cordis":">=0.1.0-rc.5","@deepseek-ai/dsh-cmdline":">=0.1.0-rc.5","@deepseek-ai/schemastery":">=0.1.0-rc.5","@deepseek-ai/cordis-plugin-loader":">=0.1.0-rc.5"},"peerDependenciesMeta":{"electron":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-desktop_0.3.2_1786871196954_0.6597400037579282","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2026-08-16T07:02:47.876Z","modified":"2026-09-30T13:44:51.323Z","0.1.0":"2026-08-16T07:02:48.234Z","0.2.0":"2026-08-16T08:09:04.669Z","0.3.0":"2026-08-16T08:12:47.095Z","0.3.1":"2026-08-16T08:36:06.500Z","0.3.2":"2026-08-16T09:06:37.131Z"},"bugs":{"url":"https://github.com/ahikl/dsh-desktop/issues"},"author":{"name":"ahikl"},"license":"MIT","homepage":"https://github.com/ahikl/dsh-desktop#readme","keywords":["dsh","dsh-plugin","electron","desktop","deepseek-harness"],"repository":{"url":"git+https://github.com/ahikl/dsh-desktop.git","type":"git"},"description":"A dsh desktop bundle: an Electron shell over the dsh Web UI with a system tray and a dsh-styled custom title bar.","maintainers":[{"name":"ahikl","email":"ahishatsusa@gmail.com"}],"readme":"# dsh-desktop\n\n[English](README.en.md) | 简体中文\n\n> DeepSeek Harness 桌面端插件：使用 Electron 包装 dsh Web UI，提供系统托盘与自定义标题栏。\n\n## 简介\n\n`dsh-desktop` 是一个 out-of-tree 桌面端插件，不修改 dsh 源码，也不把 Electron 引入 dsh 依赖树。\n\n## 功能\n\n- 使用 Electron 加载 dsh Web UI\n- 无边框窗口 + dsh 风格标题栏，自动跟随主题\n- 系统托盘：显示主窗口、打开浏览器、退出\n- 关闭窗口时最小化到托盘\n- URL 解析优先级：`--url` > Web Server 端口 > 自动启动 `dsh web`\n\n## 工作原理\n\n通过 `cordis.patch.yml` 挂载两个插件：\n\n- **desktop-startup**：解析 `dsh desktop` 参数，提供 `webStartup` / `desktopStartup` 服务\n- **desktop-runner**：等待树稳定后，解析 URL 和 Electron 路径；没有现成 Web UI 时自动启动 `dsh web`，再以子进程方式启动 Electron\n\n## 使用\n\n```sh\ndsh plugin --profile desktop add @ahikl/dsh-desktop electron\ndsh --profile desktop desktop\ndsh --profile desktop desktop\n\ndsh --profile desktop desktop --url http://127.0.0.1:3080\n```\n\n最简单的启动方式（没有安装 `dsh-web-app` 时，桌面插件会自动启动官方 Web UI）：\n\n```sh\ndsh plugin --profile desktop add @ahikl/dsh-desktop electron\ndsh --profile desktop desktop\n```\n\n如果已经安装了 `dsh-web-app`，桌面插件会自动复用其 Web Server：\n\n```sh\ndsh plugin --profile desktop add @ahikl/dsh-desktop @deepseek-ai/dsh-web-app electron\ndsh --profile desktop desktop\n```\n\n## 配置\n\n```yaml\n- id: desktop-runner\n  config:\n    url: https://example.com\n    electronPath: /opt/electron/electron\n    width: 1280\n    height: 800\n    electronArgs: [\"--no-sandbox\", \"--disable-gpu\"]\n```\n\n## 开发\n\n```sh\npnpm install\npnpm run typecheck\npnpm run test        # 单元测试\npnpm run build       # 构建到 lib/\n```\n\n## 目录结构\n\n```text\ndsh-desktop/\n├── cordis.patch.yml        # bundle patch\n├── src/\n│   ├── index.ts            # desktop-runner 插件\n│   ├── launcher.ts         # Electron 解析与启动逻辑\n│   └── startup.ts          # desktop-startup 插件\n├── electron-main.cjs       # Electron 主进程\n├── preload.cjs             # 自定义标题栏预加载脚本\n├── dashboard.html          # 兜底页面\n├── tests/                  # 单元测试\n└── package.json\n```\n\n## 许可证\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}