dsh-OHDSH:基于 HarmonyOS NEXT 的 DSH 运行时环境项目

HDSH test

分支1Tags0
当前项目代码仓暂无内容

HDSH

HDSH 是面向 HarmonyOS Next 的 DSH 运行环境实现。项目以 entry 承载应用层与设备适配,以 ngf_framework 提供可复用的原生基础设施。

当前状态

当前应用已经可以在 HarmonyOS 设备上启动 DSH 官方 WebUI:EntryAbility 加载 pages/hdsh/HdshWebPage,应用在沙箱中准备 DSH、busybox 和 pnpm 运行环境,启动本地 DSH 服务后由 ArkWeb 加载 http://127.0.0.1:3080

已验证的当前交付结果:

  • 包名:com.hdsh.agentic
  • 目标与兼容 SDK:HarmonyOS 6.1.0(23)
  • 支持声明:phone、tablet、2in1、car、tv、wearable
  • 设备回归:主页可见、默认窗口比例正常、PC 断点不白屏
  • 文件搜索 fallback:在 ripgrep 不可用时使用系统 grep,并保持 ERE 正则语义
  • 内置插件市场:使用 dshmarket@1.13.1dsh-market/dsh-market),首次 Web profile 初始化自动挂载,插件安装通过鸿蒙 Worker 桥接调用内置 pnpm
  • 公开仓库不包含签名材料、凭据或本机环境文件

当前版本重点是 DSH WebUI 运行闭环与设备适配。ArkTS 原生 harness、设置、工具和 MCP 能力仍按 迁移方案 继续演进。

设备运行约束:鸿蒙应用沙箱允许读取随包分发的 busybox/pnpm 文件,但禁止直接执行应用文件目录中的 ELF。运行时因此使用系统 hnp bash 与系统工具目录,DSH 插件管理使用同进程内置 pnpm JavaScript 实现;busybox/pnpm 目录仍由准备脚本生成,作为可复现的运行时资源和后续平台适配输入。

目录

HDSH/
├── entry/                 # HDSH 应用层、入口 Ability、ArkWeb 页面和运行时桥接
├── ngf_framework/         # 可复用 HarmonyOS 基础框架
├── scripts/               # DSH 环境准备、二进制准备和真机回归脚本
├── docs/                  # 架构、迁移、构建和变更记录
├── .rules/                # 通用 Agent 工程规则
├── .agent-rules/          # HDSH 项目规则与 Bug 档案
└── AGENTS.md              # 工作区协作规范

entry/src/main/resources/rawfile/dsh/busybox/pnpm/ 和 native 运行时文件由准备脚本生成或下载,默认不提交到 Git。这样可以避免把大型二进制、签名材料和机器环境带入公开仓库。

开发环境

  1. 使用 DevEco Studio 打开仓库。
  2. 准备运行时文件:
bash scripts/prepare-dsh-env.sh 0.1.0-rc.7
bash scripts/fetch-busybox.sh
bash scripts/fetch-pnpm.sh
HDSH_LIBNODE_URL=<approved-libnode-url> bash scripts/fetch-libnode.sh
  1. 在本地 DevEco Studio 签名设置中配置开发签名,签名文件只保存在本机。
  2. 使用 Hvigor 构建 entry 模块并安装到设备。
  3. 执行真机回归:
bash scripts/ui-test-phone.sh 1 <hdc-target>

脚本要求显式传入设备 target,避免把具体设备标识写入项目。

文档

许可证

MIT,见 LICENSE