@harmonyos-arkts/d2h 0.1.19 → 0.1.21

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 (151) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +40 -0
  3. package/agents/android-to-hmos-00-orchestrator.md +3 -315
  4. package/agents/d2h.md +53 -38
  5. package/contracts/workflow/artifacts.md +22 -0
  6. package/contracts/workflow/delivery.md +54 -0
  7. package/contracts/workflow/dispatch.md +26 -0
  8. package/contracts/workflow/execution.md +125 -0
  9. package/contracts/workflow/generation.md +40 -0
  10. package/contracts/workflow/orchestration.md +49 -0
  11. package/contracts/workflow/overview.md +58 -0
  12. package/contracts/workflow/plan.md +119 -0
  13. package/contracts/workflow/scope.md +151 -0
  14. package/dist/bin/install-opencode.js +34 -15
  15. package/dist/src/install-codex.js +131 -0
  16. package/dist/src/install-opencode.js +5 -5
  17. package/dist/src/workflow.js +54 -0
  18. package/docs/architecture-plan-guide.zh-CN.md +70 -0
  19. package/docs/incremental-spec-evaluation-design.md +670 -0
  20. package/docs/spec-plan-guide.md +226 -0
  21. package/docs/workflow-decoupling.md +59 -0
  22. package/opencode/interactive-tools/advance-progress-demo.mjs +21 -0
  23. package/opencode/interactive-tools/browser-host.ts +110 -0
  24. package/opencode/interactive-tools/core.ts +242 -0
  25. package/opencode/interactive-tools/demo-workflow.ts +55 -0
  26. package/opencode/interactive-tools/demo.mjs +37 -0
  27. package/opencode/interactive-tools/package-lock.json +1876 -0
  28. package/opencode/interactive-tools/package.json +23 -0
  29. package/opencode/interactive-tools/panel.ts +40 -0
  30. package/opencode/interactive-tools/prepare-demo.mjs +17 -0
  31. package/opencode/interactive-tools/prepare-progress-demo.mjs +13 -0
  32. package/opencode/interactive-tools/progress.ts +118 -0
  33. package/opencode/interactive-tools/server-legacy.mjs +2 -0
  34. package/opencode/interactive-tools/server.mjs +40 -0
  35. package/opencode/interactive-tools/tui.tsx +230 -0
  36. package/package.json +9 -1
  37. package/schemas/native-libs-analysis-report.schema.json +695 -0
  38. package/schemas/native-libs-verify-report.schema.json +566 -0
  39. package/schemas/spec-native-libs-shard.schema.json +110 -0
  40. package/skills/arkts-icon-sizing/SKILL.md +0 -10
  41. package/skills/cpp/d2h-native-library-analyse/SKILL.md +91 -0
  42. package/skills/cpp/d2h-native-library-analyse/scripts/analyse-android-so.py +630 -0
  43. package/skills/cpp/d2h-native-library-build/SKILL.md +403 -0
  44. package/skills/cpp/d2h-native-library-build/references/build-config-mapping.md +180 -0
  45. package/skills/cpp/d2h-native-library-build/references/jni-to-napi-mapping.md +74 -0
  46. package/skills/cpp/d2h-native-library-build/scripts/check-android-so.py +580 -0
  47. package/skills/cpp/d2h-native-library-verify/SKILL.md +111 -0
  48. package/skills/cpp/d2h-native-library-verify/references/demo-build-sign-run.md +67 -0
  49. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/AppScope/app.json5 +1 -0
  50. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/AppScope/resources/base/element/string.json +1 -0
  51. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/README.md +25 -0
  52. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/build-profile.json5 +24 -0
  53. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/entry/build-profile.json5 +1 -0
  54. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/entry/hvigorfile.ts +2 -0
  55. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/entry/oh-package.json5 +1 -0
  56. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/entry/src/main/ets/entryability/EntryAbility.ets +5 -0
  57. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/entry/src/main/ets/pages/Index.ets +3 -0
  58. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/entry/src/main/ets/pages/NativeVerifyDemo.ets +276 -0
  59. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/entry/src/main/module.json5 +1 -0
  60. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/entry/src/main/resources/base/element/color.json +1 -0
  61. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/entry/src/main/resources/base/element/string.json +1 -0
  62. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/entry/src/main/resources/base/profile/main_pages.json +1 -0
  63. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/entry/src/ohosTest/ets/test/FFmpegVerify.test.ets +176 -0
  64. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/entry/src/ohosTest/ets/test/List.test.ets +2 -0
  65. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/entry/src/ohosTest/module.json5 +1 -0
  66. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/hvigor/hvigor-config.json5 +1 -0
  67. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/hvigorfile.ts +2 -0
  68. package/skills/cpp/d2h-native-library-verify/references/demo-project-template/oh-package.json5 +9 -0
  69. package/skills/cpp/d2h-native-library-verify/references/demo-template.md +176 -0
  70. package/skills/cpp/d2h-native-library-verify/references/hypium-test-template.md +163 -0
  71. package/skills/cpp/d2h-native-library-verify/scripts/__pycache__/native_common.cpython-313.pyc +0 -0
  72. package/skills/cpp/d2h-native-library-verify/scripts/device-verify.py +304 -0
  73. package/skills/cpp/d2h-native-library-verify/scripts/native_common.py +341 -0
  74. package/skills/cpp/d2h-native-library-verify/scripts/verify-ohos-native.py +1099 -0
  75. package/skills/d2h-app-solution/SKILL.md +198 -0
  76. package/skills/d2h-app-solution/agents/openai.yaml +4 -0
  77. package/skills/d2h-app-solution/references/framework-evidence.md +117 -0
  78. package/skills/d2h-app-solution/references/hierarchy-rules.md +88 -0
  79. package/skills/d2h-app-solution/references/inventory-schema.md +305 -0
  80. package/skills/d2h-app-solution/references/technical-analysis.md +101 -0
  81. package/skills/d2h-app-solution/scripts/scan_repositories.py +350 -0
  82. package/skills/d2h-app-solution/scripts/validate_inventory.py +337 -0
  83. package/skills/d2h-architecture-plan/SKILL.md +35 -0
  84. package/skills/d2h-architecture-plan/references/directory-creation.md +43 -0
  85. package/skills/d2h-architecture-plan/references/hybrid-design.md +84 -0
  86. package/skills/d2h-architecture-plan/references/layout-reference.md +83 -0
  87. package/skills/d2h-architecture-plan/references/plan-contract.md +51 -0
  88. package/skills/d2h-architecture-plan/references/source-review.md +50 -0
  89. package/skills/d2h-cloud-knowledge/SKILL.md +28 -7
  90. package/skills/d2h-cloud-knowledge/kb_query.mjs +8 -0
  91. package/skills/d2h-dashboard/SKILL.md +56 -0
  92. package/skills/d2h-product-family-migration/SKILL.md +103 -0
  93. package/skills/d2h-product-family-migration/agents/openai.yaml +3 -0
  94. package/skills/d2h-product-family-migration/assets/incremental-plan.template.md +55 -0
  95. package/skills/d2h-product-family-migration/references/advanced/behavioral-verification.md +59 -0
  96. package/skills/d2h-product-family-migration/references/advanced/existing-skill-integration.md +30 -0
  97. package/skills/d2h-product-family-migration/references/advanced/packaging-and-verification.md +43 -0
  98. package/skills/d2h-product-family-migration/references/advanced/platform-probes.md +26 -0
  99. package/skills/d2h-product-family-migration/references/advanced/product-line-design.md +40 -0
  100. package/skills/d2h-product-family-migration/references/baseline-and-delta.md +50 -0
  101. package/skills/d2h-product-family-migration/tests/markdown-cases.md +76 -0
  102. package/skills/{d2h-page-develop → d2h-spec-develop}/SKILL.md +143 -132
  103. package/skills/d2h-spec-develop/agents/openai.yaml +7 -0
  104. package/skills/d2h-spec-develop/references/worker-workflow.md +26 -0
  105. package/skills/{d2h-page-spec-generate → d2h-spec-generate}/SKILL.md +24 -13
  106. package/skills/d2h-spec-generate/assets/spec-template.md +109 -0
  107. package/skills/d2h-spec-generate/references/from-plan.md +19 -0
  108. package/skills/d2h-spec-generate/references/spec-content.md +34 -0
  109. package/skills/{d2h-page-spec-generate → d2h-spec-generate}/scripts/build_batch_report.py +35 -84
  110. package/skills/d2h-spec-plan/SKILL.md +38 -0
  111. package/skills/d2h-spec-plan/agents/openai.yaml +4 -0
  112. package/skills/d2h-spec-plan/references/architecture-handoff.md +9 -0
  113. package/skills/d2h-spec-plan/references/plan-contract.md +13 -0
  114. package/skills/d2h-spec-plan/references/planning-method.md +46 -0
  115. package/skills/d2h-spec-plan/references/round-scope-assessment.md +49 -0
  116. package/skills/d2h-spec-plan/references/work-packets.md +61 -0
  117. package/skills/d2h-utg-ai-generate/references/click-paths-schema.json +2 -2
  118. package/skills/d2h-utg-ai-generate/references/page-schema.json +2 -2
  119. package/skills/d2h-utg-ai-generate/references/utg-schema.json +2 -2
  120. package/skills/d2h-utg-static-generate/SKILL.md +2 -2
  121. package/skills/managing-d2h-toolchain/environment-requirements.json +1 -1
  122. package/skills/managing-d2h-toolchain/toolchain.json +1 -1
  123. package/skills/preparing-migration-workspace/SKILL.md +32 -2
  124. package/workflow/__pycache__/artifact_bindings.cpython-313.pyc +0 -0
  125. package/workflow/__pycache__/spec_runtime.cpython-313.pyc +0 -0
  126. package/workflow/artifact_bindings.py +224 -0
  127. package/workflow/assets/dashboard.html +88 -0
  128. package/workflow/build_batch_report.py +8 -0
  129. package/workflow/collect_code_metrics.py +75 -0
  130. package/workflow/dashboard_overview.py +109 -0
  131. package/workflow/delivery_view.py +82 -0
  132. package/workflow/feature_plan.py +234 -0
  133. package/workflow/page_batches.py +223 -0
  134. package/workflow/spec_generation.py +120 -0
  135. package/workflow/spec_runtime.py +890 -0
  136. package/workflow/work_packets.py +85 -0
  137. package/skills/d2h-page-develop/agents/openai.yaml +0 -7
  138. package/skills/harmonyos-migration-playbook/SKILL.md +0 -83
  139. package/skills/harmonyos-migration-playbook/agents/openai.yaml +0 -7
  140. package/skills/harmonyos-migration-playbook/references/arkts-compile.md +0 -24
  141. package/skills/harmonyos-migration-playbook/references/harmony-runtime.md +0 -53
  142. package/skills/harmonyos-migration-playbook/references/lesson-lifecycle.md +0 -45
  143. package/skills/harmonyos-migration-playbook/references/protocol-e2e.md +0 -23
  144. package/skills/harmonyos-migration-playbook/references/ui-automation.md +0 -53
  145. package/skills/harmonyos-migration-playbook/references/windows-environment.md +0 -38
  146. package/skills/native-library-substitution/SKILL.md +0 -385
  147. package/skills/native-library-substitution/references/native-library-substitution.json +0 -56906
  148. package/skills/native-library-substitution/references/native-library-substitution.md +0 -163
  149. package/skills/porting-cmake-native-libraries/SKILL.md +0 -57
  150. package/skills/porting-cmake-native-libraries/references/platform-adaptation.md +0 -49
  151. package/skills/porting-cmake-native-libraries/references/report-and-build.md +0 -60
@@ -0,0 +1,91 @@
1
+ ---
2
+ name: d2h-native-library-analyse
3
+ description: Android 应用功能清单分析:从 Android 工程源码提取用户功能场景 → 每个场景的 JNI native 方法 → 每个方法涉及的 .so/.a 文件。自顶向下分析:① 扫描 Java/Kotlin 源码提取 native 声明和调用上下文 ② 通过 loadLibrary → CMake target_link_libraries → 实际文件三级关联(含间接 LibraryLoader 和同包前缀兜底)③ 按用户场景(视频播放/音频播放/直播推流/媒体转码等)分组。输出 feature-manifest.html(给人看,功能维度)+ feature-manifest.json(给 AI 映射,机器可读)。当用户要求「分析 Android 工程用了哪些 so」「功能涉及哪些原生库」「生成功能清单」「JNI 和 so 的对应关系」时触发。
4
+ ---
5
+
6
+ # Android 应用功能清单 → JNI → so/a 文件分析
7
+
8
+ ## 一、分析链条(自顶向下)
9
+
10
+ ```
11
+ 用户功能场景(视频播放/音频播放/直播推流/媒体转码…)
12
+ → JNI native 方法(Java/Kotlin 中的 native/external fun 声明)
13
+ → 涉及的 .so/.a 文件(通过 loadLibrary → CMake 依赖 → 实际文件)
14
+ ```
15
+
16
+ ## 二、快速用法
17
+
18
+ ```bash
19
+ # 完整分析
20
+ python3 scripts/analyse-android-so.py <Android工程目录>
21
+
22
+ # 指定输出目录
23
+ python3 scripts/analyse-android-so.py <工程> --output <目录>
24
+
25
+ # JSON 输出(给 AI 映射)
26
+ python3 scripts/analyse-android-so.py <工程> --json
27
+ ```
28
+
29
+ 产出(默认 `<工程名>-native-reports/`):
30
+ - `feature-manifest.html` — 给人看,页面结构自上而下:
31
+ 1. **📦 工程内全部 .so/.a 文件**(去重后同名多 ABI 优先保留 arm64-v8a,含**迁移分级**(🔴阻断/🟡需适配/🟢干净)/架构/路径/被哪些功能使用,悬停显示分级原因)
32
+ 2. **📋 功能 → 原生库对照表**
33
+ 3. 各功能详情卡片(JNI 方法清单 + 涉及库)
34
+ - `feature-manifest.json` — 给 AI 映射(`features[]` + `all_libs[]`,机器可读)
35
+
36
+ ## 三、so/a 关联策略(三级)
37
+
38
+ | 优先级 | 策略 | 示例 |
39
+ |--------|------|------|
40
+ | ① 直接 | 类自身 `System.loadLibrary("media-handle")` → CMake `target_link_libraries(media-handle ffmpeg)` → `libffmpeg.so` | FFmpegCmd |
41
+ | ② 间接 | LibraryLoader 类加载 → `loadLibrary("nextplayer")` → CMake nextplayer→ffmpeg | NextPlayer |
42
+ | ③ 同模块 | 同包前缀(前 3 段相同)其他类的 loadLibrary | FrankVisualizer → AudioPlayer 的 media-handle |
43
+ | ④ JNI 符号 | .so 导出表中直接匹配 `Java_` 符号 | 备用 |
44
+
45
+ CMake 解析:去 `#` 注释后多行匹配 `target_link_libraries(target dep1 dep2 ...)`,过滤 NDK 系统库(log/android/jnigraphics 等)。
46
+
47
+ ## 四、场景识别
48
+
49
+ 从 Java 类名推断用户场景(精确匹配优先,Activity 名兜底):
50
+
51
+ | 类名关键词 | 场景 | 用户操作 |
52
+ |-----------|------|----------|
53
+ | `NextPlayer` | 视频播放(NextPlayer引擎) | 播放视频/网络流 |
54
+ | `VideoPlayer` | 视频滤镜预览 | 预览滤镜效果 |
55
+ | `AudioPlayer` | 音频播放 | 播放音频文件 |
56
+ | `FFmpegCmd` | 视频剪辑处理 | 转码/压缩/加水印 |
57
+ | `MediaRetriever` | 媒体格式探测 | 获取时长/截图/元数据 |
58
+ | `LivePusher` | 直播推流 | 摄像头→编码→RTMP推流 |
59
+ | `Visualizer` | 音频可视化 | 实时频谱/波形 |
60
+
61
+ ## 五、输出 JSON 结构
62
+
63
+ ```json
64
+ {
65
+ "features": [
66
+ {
67
+ "feature": "视频剪辑处理(FFmpegCmd)",
68
+ "jni_methods": [
69
+ {"class": "com.frank.ffmpeg.FFmpegCmd", "method": "handle",
70
+ "jni_symbol": "Java_com_frank_ffmpeg_FFmpegCmd_handle",
71
+ "operation": "execute", "file": "FFmpegCmd.java", "line": 139,
72
+ "libs": ["libffmpeg.so"]}
73
+ ],
74
+ "involved_libs": ["libffmpeg.so"],
75
+ "source_files": ["FFmpegCmd.java"]
76
+ }
77
+ ]
78
+ }
79
+ ```
80
+
81
+ ## 六、约束
82
+
83
+ - 只读分析,不修改任何文件
84
+ - so/a 关联是推断性的(基于 loadLibrary + CMake 依赖链),可能有误报/漏报
85
+ - 编译期产物(如 NextPlayer 的 libnextplayer.so)在仓库内无 .so 文件,正确显示为空(通过间接策略仍可关联到 CMake 依赖的 libffmpeg.so)
86
+ - 功能场景识别基于类名关键词,未识别的类归「其他」
87
+
88
+ ## 七、参考文件
89
+
90
+ - [scripts/analyse-android-so.py](scripts/analyse-android-so.py):分析脚本
91
+ - 输出目录默认 `<工程名>-native-reports/`