返回目录
其他 插件

dshm

sol5766/dshm

deepseek harnes HarmonyOS PC client

Stars
9
Forks
0
Issues
1
更新
7 天前

PROJECT TOPICS

项目标签

INSTALL REFERENCE

安装参考

未验证
dsh plugin --profile web add github:sol5766/dshm

该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。

PROJECT README

README

DSHM

DSHM 是面向 HarmonyOS Next 的 DSH(DeepSeek Harness)运行环境实现。应用在系统沙箱中加载 DSH 运行时、busybox 与 pnpm 环境,启动本地 DSH Web 服务后,通过 ArkWeb 加载 http://127.0.0.1:3080

当前状态

  • EntryAbility 加载 pages/dshm/DshmWebPage,完成 DSH 环境解压 → busybox 就绪 → native 子进程启动 DSH web server → ArkWeb 加载 WebUI 的端到端闭环
  • 两种运行模式(Harness → 运行模式,写在 <filesDir>/runtime-mode.txt):
    • auto(默认):设备上存在 Harmonybrew 版 dsh 时优先用宿主 dsh(系统 node,启动约 9s
    • host:强制宿主 dsh(~/.harmonybrew/bin/dsh
    • embedded:用 HAP 内置 libnode + rawfile/dsh 环境,--jitless(启动约 11.4s
    • ⚠️ 两种模式的 $DSH_HOME 不同(host = /storage/Users/currentUser、embedded = <filesDir>/home),会话库互不可见 —— 排查"会话没了"先看 runtime-mode-active.txt
  • 内置 busybox 兜底 applet:ash/bash/hush、bzip2/xz、hexdump、less、nc、unzip、vi(其余由系统 toybox 补齐)
  • 内置 pnpm,插件安装通过同进程 Worker 桥接执行
  • 工作区目录授权 + 持久授权,可同步到应用沙盒 workspace
  • App 内无在线升级:菜单只有本地功能(主页 / 关于版本 / 运行模式 / 检查 App 更新 / 重置运行环境 / 重启服务,编辑菜单含刷新与 zsh 终端);升级 dsh 版本 = 重建环境 + 装新 HAP,见 docs/dsh-version-upgrade.md
  • 环境已瘦身rawfile/dsh 由 253.5MB / 26,762 文件降到 110.7MB / 12,485 文件,HAP 由 385MB 降到 238MB、安装耗时 60s → 9.8s;由 scripts/prune-dsh-env.mjs 完成并带包入口自检
  • 支持设备形态:phone、tablet、2in1、car、tv、wearable

运行时约束(真机实测)

  • --jitless 必须(仅 embedded 模式):沙箱 W^X 禁止创建可执行内存,内置 node 以 --jitless --expose-internals 启动,由 _fetch-shim.cjs 提供 Web 全局与 WebAssembly 垫片
  • ArkTS http 探测 loopback 不可靠:UI 就绪判定改为读 node 日志标记(dsh web:),不依赖 ArkTS http 探测 3080
  • libnode 需 native 加固DT_NEEDED 链接固定加载顺序 + io_uring bl syscall 打补丁回退 epoll,由准备脚本完成后进入 entry/libs/arm64-v8a/
  • HAP 不压缩存储rawfile 每减 1MB,HAP 就少 1MB —— 体积优化主要靠裁剪环境文件(判据必须是"平台构建产物"形状,不能按路径里出现 win32 就删,详见升级手册 §4.1)

目录

DSHM/
├── entry/                 # 主应用层、EntryAbility、ArkWeb 页面与运行时桥接
├── tools/                 # 图标生成等开发工具
└── AGENTS.md              # 工作区协作规范

entry/src/main/resources/rawfile/dsh/busybox/ 与 native 运行时文件随 HAP 分发,设备端由引导流程解压。

开发环境

  1. 使用 DevEco Studio 打开仓库根。
  2. 在 DevEco Studio 签名设置中配置开发签名(调试机登录后自动签名)。
  3. 使用 Hvigor 构建 entry 模块并安装到设备。

许可证

MIT,见 LICENSE

CLASSIFICATION EVIDENCE

分类依据

项目类型插件
功能分类其他
规则置信度

系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。