哈士奇加载器（案例：用 云捷.扩展 给自己的环境加载 Chrome 扩展）
==========================================================

这个案例演示：插件把 Chrome 扩展装进「**本应用专属**的浏览器环境」，再打开工作页让扩展在页面上干活
—— 完全不影响其他应用、店铺页面和主程序（客户端保证隔离）。

目录结构（注意这一层「发布」）
----------------------------------------------------------
  哈士奇加载器\
  ├── 发布\                     ← 真正跑起来、会被打包上传的就是这里
  │   ├── index.html            ← 插件界面
  │   ├── app.js                ← 插件逻辑（启动即释放扩展并打开工作页）
  │   ├── 云捷SDK.js            ← 开发包自动补的（别手写）
  │   ├── 资源\                 ← 开发包自动补的（Vue2 + Element UI）
  │   └── 扩展\hsq_8.4.9\       ← 内置的 Chrome 扩展（随插件一起下发）
  └── 说明.txt                  ← 本文件（在「发布」外面，不会被上传）

怎么跑起来
----------------------------------------------------------
  1. 把整个「哈士奇加载器」目录复制到你的开发目录
  2. 客户端 → 开发者中心 → 我的应用 → 版本 → 「选择 / 更换目录」
     选中 **哈士奇加载器** 这一层（⚠️ 选上一层，不要选 发布\ 本身）
  3. 点「本地调试」→ 插件会自动把扩展释放到自己的应用目录，并打开工作页

改成你自己的
----------------------------------------------------------
  - 换扩展：把 发布\扩展\ 里的目录换成你要的（根目录要有 manifest.json），
    再改 发布\app.js 顶部的 `const 扩展名 = '...'` 与《内置文件清单》
  - 也可以改成让用户自己导入扩展：用 `云捷.文件.选择文件` / `选择目录` 选到扩展后写进应用目录，
    再调 `云捷.扩展.打开工作页(...)`（示例里的"释放内置扩展"那步可以整段去掉）

隔离是怎么保证的（客户端实现，插件不用自己防）
----------------------------------------------------------
  · 页面跑在专属分区 `persist:appext_<应用ID>_<店铺ID>`，与店铺页面、其他应用都不共享存储
  · 扩展目录只能是**本应用目录内**的路径（越权会被拒）
  · 店铺登录态靠「复制 Cookie」拿到（单向读店铺分区，不写回）
  · 卸载应用时先卸载扩展、再删整个应用目录

限制（要提前告诉用户）
----------------------------------------------------------
  · 扩展的 popup / 选项页 / 后台 service worker 打不开，能生效的是 content script 这类"页面上的部分"
  · Electron 只支持 Chrome 扩展 API 的**子集**，靠 webRequestBlocking 拦截改写之类的重活可能不生效（务必实测）

详细文档：开发包 `.trae\skills\yunjie-plugin-dev\参考\08-宿主能力.md`（2.1 `云捷.扩展`）
