deveco_hmigbot 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +50 -0
  3. package/agents/hmigbot-worker.md +61 -0
  4. package/agents/hmigbot.md +22 -0
  5. package/agents/workflow-subagent.md +55 -0
  6. package/commands/hmigbot.md +17 -0
  7. package/dist/index.js +1 -0
  8. package/manifest.json +19 -0
  9. package/package.json +29 -0
  10. package/skills/migrate-core/FILES.md +26 -0
  11. package/skills/migrate-core/SKILL.md +484 -0
  12. package/skills/migrate-core/references/README.md +64 -0
  13. package/skills/migrate-core/references/flow/arkts-vector-gate.md +55 -0
  14. package/skills/migrate-core/references/flow/build-error-patterns.md +52 -0
  15. package/skills/migrate-core/references/flow/conventions-template.md +244 -0
  16. package/skills/migrate-core/references/flow/navigation-migration.md +42 -0
  17. package/skills/migrate-core/references/flow/platform-api-guards.md +59 -0
  18. package/skills/migrate-core/references/flow/platform-model-gaps.md +43 -0
  19. package/skills/migrate-core/references/flow/resource-conversion.md +46 -0
  20. package/skills/migrate-core/references/flow/ui-layout-semantics.md +124 -0
  21. package/skills/migrate-core/references/flow/unit-breakdown.md +42 -0
  22. package/skills/migrate-core/references/host-capabilities.md +24 -0
  23. package/skills/migrate-core/references/topics/app-identity.md +214 -0
  24. package/skills/migrate-core/references/topics/env-doctor.md +245 -0
  25. package/skills/migrate-core/references/topics/i18n/README.md +458 -0
  26. package/skills/migrate-core/references/topics/i18n/references/code-examples.md +304 -0
  27. package/skills/migrate-core/references/topics/i18n/references/common-pitfalls.md +354 -0
  28. package/skills/migrate-core/references/topics/i18n/references/dynamic-language-switch.md +464 -0
  29. package/skills/migrate-core/references/topics/i18n/references/language-codes.md +104 -0
  30. package/skills/migrate-core/references/topics/icon-sizing.md +98 -0
  31. package/skills/migrate-core/references/topics/library-migration/README.md +234 -0
  32. package/skills/migrate-core/references/topics/library-migration/closed-source-sdk.md +128 -0
  33. package/skills/migrate-core/references/topics/library-migration/download-api-decision.md +84 -0
  34. package/skills/migrate-core/references/topics/library-migration/library-mapping-table.md +100 -0
  35. package/skills/migrate-core/references/topics/library-migration/napi-compile-guide.md +84 -0
  36. package/skills/migrate-core/references/topics/library-migration/ohpm-search-guide.md +73 -0
  37. package/skills/migrate-core/references/topics/library-migration/stdlib-mapping-table.md +34 -0
  38. package/skills/migrate-core/references/topics/resources/aar-decompile.md +25 -0
  39. package/skills/migrate-core/references/topics/resources/conversion-rules.md +625 -0
  40. package/skills/migrate-core/references/topics/resources/dependency-analysis-rules.md +328 -0
  41. package/skills/migrate-core/references/topics/resources/material-design-icons.md +173 -0
  42. package/skills/migrate-core/references/topics/resources/svg-fix-patterns.md +175 -0
  43. package/skills/migrate-core/references/topics/resources/xml-drawable-to-svg-rules.md +513 -0
  44. package/skills/migrate-core/references/topics/system-capabilities/README.md +331 -0
  45. package/skills/migrate-core/references/topics/system-capabilities/avplayer-guide.md +161 -0
  46. package/skills/migrate-core/references/topics/system-capabilities/background-tasks.md +403 -0
  47. package/skills/migrate-core/references/topics/system-capabilities/browser-intent.md +121 -0
  48. package/skills/migrate-core/references/topics/system-capabilities/camera-picker.md +118 -0
  49. package/skills/migrate-core/references/topics/system-capabilities/document-picker.md +246 -0
  50. package/skills/migrate-core/references/topics/system-capabilities/file-utils.md +131 -0
  51. package/skills/migrate-core/references/topics/system-capabilities/permission-helper.md +112 -0
  52. package/skills/migrate-core/references/topics/system-capabilities/photo-access-helper.md +208 -0
  53. package/skills/migrate-core/references/topics/system-capabilities/print-management.md +213 -0
  54. package/skills/migrate-core/references/topics/system-capabilities/share-panel.md +177 -0
  55. package/skills/migrate-core/references/topics/system-capabilities/system-settings.md +322 -0
  56. package/skills/migrate-core/references/topics/system-capabilities/telephony-dial.md +49 -0
  57. package/skills/migrate-core/references/topics/system-capabilities/video-playback.md +42 -0
  58. package/skills/migrate-core/references/topics/system-capabilities/webview-patterns.md +38 -0
  59. package/skills/migrate-core/references/topics/ui-alignment/README.md +344 -0
  60. package/skills/migrate-core/references/topics/ui-alignment/references/dark-mode.md +47 -0
  61. package/skills/migrate-core/references/topics/ui-alignment/references/layout-mapping.md +301 -0
  62. package/skills/migrate-core/references/topics/ui-alignment/references/visual-patterns.md +411 -0
  63. package/skills/migrate-core/scripts/closure/check-anchors.mjs +186 -0
  64. package/skills/migrate-core/scripts/closure/check-api-guards.mjs +175 -0
  65. package/skills/migrate-core/scripts/closure/check-consumers.mjs +301 -0
  66. package/skills/migrate-core/scripts/closure/check-permissions.mjs +165 -0
  67. package/skills/migrate-core/scripts/closure/check-resources.mjs +130 -0
  68. package/skills/migrate-core/scripts/closure/check-routes.mjs +527 -0
  69. package/skills/migrate-core/scripts/closure/check-safearea.mjs +122 -0
  70. package/skills/migrate-core/scripts/closure/check-stubs.mjs +69 -0
  71. package/skills/migrate-core/scripts/closure/closure-suite.mjs +256 -0
  72. package/skills/migrate-core/scripts/closure/idioms.json +105 -0
  73. package/skills/migrate-core/scripts/convert/convert-resources.mjs +437 -0
  74. package/skills/migrate-core/scripts/feasibility/feasibility.mjs +235 -0
  75. package/skills/migrate-core/scripts/feasibility/tables/cross-platform.json +11 -0
  76. package/skills/migrate-core/scripts/feasibility/tables/deprecated-api.json +10 -0
  77. package/skills/migrate-core/scripts/feasibility/tables/imported-arkts-core.json +425 -0
  78. package/skills/migrate-core/scripts/feasibility/tables/lib-equivalence.json +206 -0
  79. package/skills/migrate-core/scripts/feasibility/tables/system-capabilities.json +22 -0
  80. package/skills/migrate-core/scripts/front.mjs +107 -0
  81. package/skills/migrate-core/scripts/interface/ark-extract.mjs +172 -0
  82. package/skills/migrate-core/scripts/interface/interface.mjs +152 -0
  83. package/skills/migrate-core/scripts/ledger/ledger.mjs +383 -0
  84. package/skills/migrate-core/scripts/ledger/parse-cards.mjs +98 -0
  85. package/skills/migrate-core/scripts/lib/literals.mjs +37 -0
  86. package/skills/migrate-core/scripts/lib/scan.mjs +315 -0
  87. package/skills/migrate-core/scripts/smoke/align-sdk.mjs +118 -0
  88. package/skills/migrate-core/scripts/smoke/ensure-sign.mjs +53 -0
  89. package/skills/migrate-core/scripts/smoke/smoke.mjs +238 -0
  90. package/skills/migrate-core/scripts/smoke/verdict.mjs +31 -0
  91. package/skills/migrate-core/scripts/smoke/walk.mjs +480 -0
  92. package/skills/migrate-core/scripts/transpile/mapping.json +76 -0
  93. package/skills/migrate-core/scripts/transpile/transpile-layout.mjs +404 -0
  94. package/skills/migrate-core/scripts/vectors/run-arkts-vectors.mjs +107 -0
  95. package/skills/migrate-core/scripts/vectors/setup-arkts-test.mjs +90 -0
  96. package/skills/migrate-core/scripts/wire/extractors.mjs +258 -0
  97. package/skills/migrate-core/scripts/wire/wire-routes.mjs +507 -0
  98. package/skills/migrate-core/templates/acceptance.js +365 -0
  99. package/skills/migrate-core/templates/explore.js +86 -0
  100. package/skills/migrate-core/templates/implement.js +211 -0
  101. package/skills/migrate-core/templates/mig_slices.js +491 -0
@@ -0,0 +1,73 @@
1
+ # ohpm 搜索渠道与质量评估
2
+
3
+ > 查找 OpenHarmony/HarmonyOS 三方库的完整指南。
4
+
5
+ ---
6
+
7
+ ## 搜索渠道(按优先级)
8
+
9
+ ### 1. ohpm 官方仓库
10
+ - **地址**:https://ohpm.openharmony.cn
11
+ - **搜索方式**:关键词搜索(如 "image"、"http"、"json")
12
+ - **优势**:官方收录,质量有一定保证
13
+
14
+ ### 2. OpenHarmony TPC (Third Party Components)
15
+ - **地址**:https://gitee.com/openharmony-tpc
16
+ - **特点**:社区维护的三方组件集合(556+ 仓库)
17
+ - **搜索方式**:在 gitee 组织页面搜索
18
+
19
+ ### 3. HarmonyOS TPC
20
+ - **地址**:https://gitee.com/HarmonyOS-tpc
21
+ - **特点**:华为主导的三方组件迁移
22
+ - **搜索方式**:在 gitee 组织页面搜索
23
+
24
+ ### 4. GitCode openharmony-tpc
25
+ - **地址**:https://gitcode.com/openharmony-tpc
26
+ - **特点**:部分库迁移到此平台
27
+
28
+ ### 5. GitHub/Gitee 直接搜索
29
+ - **搜索关键词**:`"harmonyos" OR "openharmony" OR "ohos" + 功能关键词`
30
+ - **注意**:需要自行评估质量
31
+
32
+ ---
33
+
34
+ ## 质量评估清单
35
+
36
+ 找到候选库后,按以下清单评估是否可用:
37
+
38
+ | 检查项 | 通过标准 | 权重 |
39
+ |-------|---------|------|
40
+ | 最近更新时间 | 6 个月内有提交 | 高 |
41
+ | 兼容 API 版本 | 支持 API 12+ | 高 |
42
+ | Star/Fork 数 | Star > 50 | 中 |
43
+ | 下载量 | > 100 | 中 |
44
+ | 文档完整性 | 有 README + 使用示例 | 中 |
45
+ | Issue 响应率 | 有人回复 issue | 中 |
46
+ | 开源许可 | 与项目许可兼容 | 中 |
47
+ | 仓库状态 | 未标记 archived | 高 |
48
+
49
+ ---
50
+
51
+ ## 安装与验证
52
+
53
+ ```bash
54
+ # 安装 ohpm 包
55
+ ohpm install @ohos/imageknife
56
+
57
+ # 验证安装
58
+ cat entry/oh-package.json5 # 检查 dependencies 中是否有该包
59
+ ```
60
+
61
+ ---
62
+
63
+ ## 已验证常用库列表
64
+
65
+ 以下库经实战项目验证可用:
66
+
67
+ | 库 | 安装命令 | 用途 | 验证项目 |
68
+ |----|---------|------|---------|
69
+ | `@ohos/imageknife` | `ohpm install @ohos/imageknife` | 图片加载+缓存(类似 Glide) | Gallery |
70
+ | `@ohos/lottie` | `ohpm install @ohos/lottie` | Lottie 动画 | 通用 |
71
+ | `@ohos/axios` | `ohpm install @ohos/axios` | HTTP 请求(类似 Retrofit) | 通用 |
72
+ | `@ohos/pulltorefresh` | `ohpm install @ohos/pulltorefresh` | 下拉刷新 | 通用 |
73
+ | `@ohos/largeimage` | `ohpm install @ohos/largeimage` | 大图缩放(类似 SubsamplingScaleImageView) | Gallery |
@@ -0,0 +1,34 @@
1
+ # 标准库原语 → ArkTS 映射(JDK / Kotlin stdlib)
2
+
3
+ > 三方库走 gradle 依赖扫描;**标准库原语(`java.*`/`kotlin.*`)不是依赖、扫描看不见**,最易被实现期误判"平台缺失"而**手造**(反面实证:实测应用把 `java.math.BigDecimal` 手造 500 行,而鸿蒙自带 `@arkts.math.Decimal`)。本表堵这个洞。
4
+
5
+ ## 核心原则:查询优先,禁止重造平台原语
6
+ **任何标准库原语,未经"官方检索/文档查询证明缺失",禁止判定需要自研重造。** 默认动作是**映射**,不是重写。顺序:
7
+
8
+ 1. **命中本表种子** → 直接用映射。
9
+ 2. **未命中** → 用官方查询机制(下)查等价物,命中即映射、**回写本表/lib-equivalence 缓存**(source: official-map)。
10
+ 3. **查询 MISS(确证无等价)** → 才进入自研,且记 `degradations`,按实现量拆分(见 unit-breakdown)。
11
+
12
+ ## 查询机制(deveco 原生、离线、随 SDK/工具链——不依赖外部 skill)
13
+ 1. **grep/ls 本机 SDK 声明(最准,SDK 自带的权威索引)**:
14
+ - `ls <SDK>/openharmony/ets/arkts/` **一次列出整个 ArkTS 基础库面**(`@arkts.math.Decimal.d.ets`、`@arkts.collections` 等)——模型直接看见平台提供了什么,杜绝瞎判"缺失"。
15
+ - `<SDK>/openharmony/ets/api/`(`@ohos.*`/`@kit.*` 的 `.d.ts`)+ `ets/arkts/`(`@arkts.*` 的 `.d.ets`)。grep 类/方法名即得权威签名。SDK 路径经 DevEco 环境解析(`hmos-env-doctor`)。
16
+ - 实证:`<SDK>/openharmony/ets/arkts/@arkts.math.Decimal.d.ets` 就在——BigDecimal 有原生等价,无需手造。
17
+ 2. **`devecocli docs search <关键词>` / `docs read <id>`**:官方文档全量检索(API 参考+指南+FAQ),离线。实证:"BigDecimal 高精度"秒中 `@arkts.math.Decimal`。用法/语义看这里。
18
+ 3. **锚文档一次读全平台面**:`从TypeScript到ArkTS的适配规则`、`ArkTS基础类库概述`。
19
+
20
+ > **可选增强(在场才用、缺失即跳过、不依赖)**:`hmos-arkts-knowledge-retriever` 官方 skill(RAG 检索)——它是外部件(`skills add` 安装),**不作依赖**;本套件已把方法吸收进上面的原生机制。
21
+
22
+ ## 确认种子(高置信,直接用)
23
+ | JDK/Kotlin 原语 | ArkTS 等价 | Level | 用法 | 备注 |
24
+ |---|---|---|---|---|
25
+ | `java.math.BigDecimal` | `Decimal`(`@arkts.math.Decimal`) | L2 原生 | `import { Decimal } from '@kit.ArkTS'` | 舍入模式 ROUND_UP/DOWN/HALF_UP/HALF_DOWN/HALF_EVEN… 与 BigDecimal.RoundingMode **1:1**;precision 可配(默认20);构造收 string/number。**仅 .ets** |
26
+ | `java.math.BigInteger` | `BigInt` | L2 原生 | `123n` / `BigInt(x)` | 任意精度整数,原生 |
27
+ | `java.util.regex.Pattern/Matcher` | `RegExp` | L2 原生 | `new RegExp()`、`.test/.exec` | ArkTS 禁正则**字面量**、部分引擎不支持 lookbehind——用构造函数、避 lookbehind |
28
+ | `java.util.UUID.randomUUID` | `util.generateRandomUUID()` | L2 | `import { util } from '@kit.ArkTS'` | |
29
+ | `java.security.MessageDigest` / `javax.crypto` | Crypto Architecture Kit | L1 Kit | `@kit.CryptoArchitectureKit`(cryptoFramework Md/Cipher) | 摘要/加解密统一走此 Kit |
30
+ | `Gson`/`Jackson`/`kotlinx.serialization` | `JSON.parse/stringify` | L2 原生 | 原生 | 需手写类型;复杂多态另裁决 |
31
+ | `java.util` 容器(HashMap/ArrayList/HashSet) | 原生 `Map/Array/Set` 或 `@arkts.collections` | L2 | 原生优先;高性能/Sendable 用 `@arkts.collections` | |
32
+
33
+ ## 长尾(本表未列)
34
+ `java.time`/`java.text.SimpleDateFormat`/`DecimalFormat`(→ `@ohos.intl` Intl.\*/native Date)、`java.util.concurrent`/线程池(→ taskpool/worker)、`java.io`/okio 文件(→ `@kit.CoreFileKit` file.fs)、kotlin coroutines(→ async/await + Promise / taskpool)等——**一律走上面查询机制确认后再落**,命中回写缓存,MISS 才自研。**不在此表现补条目,靠检索器/文档现查现缓存。**
@@ -0,0 +1,25 @@
1
+ # 取"合并后资源集":APK 反编(apktool)
2
+
3
+ 适用:源工程的 `res/` 不完整(资源来自 AAR/Maven 依赖、构建期生成),且 `.aar` 也拿不到。
4
+ `.aar` 拿得到时不用本页:`.aar` 即 zip,解开取其 `res/` 直接传给 `convert-resources.mjs`。
5
+
6
+ ## 步骤
7
+
8
+ 1. 构建 APK(含源码 + 依赖 + 生成资源的合并集):
9
+ ```bash
10
+ cd <android_project> && ./gradlew assembleDebug # 变体按工程实际;失败就用已有的 app/build/outputs/apk/**/*.apk
11
+ ```
12
+ 2. 反编(apktool 系统级安装:`brew install apktool` 或官方发布页;需要 Java;不随套件分发):
13
+ ```bash
14
+ apktool d <apk_path> -o <decompiled_dir>
15
+ ```
16
+ `<decompiled_dir>/res/` 即完整合并资源集(values*/drawable*/mipmap*/layout*…)。
17
+ 3. 喂给转换器(2a 同一条命令,多传 `--extra-res`):
18
+ ```bash
19
+ node $HMIG/scripts/convert/convert-resources.mjs --src $SRC --dst $DST --out $SPEC/front --extra-res <decompiled_dir>/res
20
+ ```
21
+ 反编产物里带依赖库的资源(`abc_*`、`mtrl_*`、`design_*` 等),只搬本应用引用到的:以 `check-resources` 的悬空账为准补,不整目录搬。
22
+
23
+ ## 记账
24
+
25
+ `feasibility.json` / 收尾报告注明 `resource_source = decompiled_apk` 与 APK 来源(构建变体或缓存路径),供复现。