@harmonyos-arkts/d2h 0.1.20 → 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 -126
  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,695 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://harmonyos-ai.dev/schemas/native-libs-analysis-report.schema.json",
4
+ "title": "d2h-native-library-analyse Migration Analysis Report",
5
+ "description": "analyse-android-so.py --json 的输出契约:Android .so/.a 的鸿蒙迁移分级(blocker/adaptation/clean)、障碍清单、改造点与优先级建议稿。分级是迁移成本视角,不存在『直接可用』;最终定级保留人工复核。",
6
+ "type": "object",
7
+ "required": [
8
+ "target",
9
+ "mode",
10
+ "tool_version",
11
+ "ndk1_threshold",
12
+ "libraries",
13
+ "summary"
14
+ ],
15
+ "properties": {
16
+ "target": {
17
+ "type": [
18
+ "string",
19
+ "array"
20
+ ],
21
+ "items": {
22
+ "type": "string",
23
+ "minLength": 1
24
+ }
25
+ },
26
+ "mode": {
27
+ "enum": [
28
+ "project",
29
+ "files"
30
+ ]
31
+ },
32
+ "tool_version": {
33
+ "type": "string",
34
+ "minLength": 1
35
+ },
36
+ "ndk1_threshold": {
37
+ "type": "integer",
38
+ "minimum": 0
39
+ },
40
+ "libraries": {
41
+ "type": "array",
42
+ "items": {
43
+ "type": "object",
44
+ "required": [
45
+ "name",
46
+ "grade",
47
+ "priority",
48
+ "interface_type",
49
+ "grade_reasons",
50
+ "remediation",
51
+ "jni_methods",
52
+ "jni_dynamic_registration",
53
+ "summary",
54
+ "artifacts"
55
+ ],
56
+ "properties": {
57
+ "name": {
58
+ "type": "string",
59
+ "minLength": 1
60
+ },
61
+ "grade": {
62
+ "enum": [
63
+ "blocker",
64
+ "adaptation",
65
+ "clean"
66
+ ]
67
+ },
68
+ "priority": {
69
+ "enum": [
70
+ "high",
71
+ "medium",
72
+ "cut-candidate",
73
+ "review"
74
+ ]
75
+ },
76
+ "interface_type": {
77
+ "enum": [
78
+ "jni",
79
+ "c",
80
+ "c++",
81
+ "mixed",
82
+ "none"
83
+ ]
84
+ },
85
+ "grade_reasons": {
86
+ "type": "array",
87
+ "items": {
88
+ "type": "string",
89
+ "minLength": 1
90
+ }
91
+ },
92
+ "remediation": {
93
+ "type": "array",
94
+ "items": {
95
+ "type": "string",
96
+ "minLength": 1
97
+ }
98
+ },
99
+ "jni_methods": {
100
+ "type": "array",
101
+ "items": {
102
+ "type": "object",
103
+ "required": [
104
+ "symbol",
105
+ "class",
106
+ "method",
107
+ "overload"
108
+ ],
109
+ "properties": {
110
+ "symbol": {
111
+ "type": "string",
112
+ "minLength": 1
113
+ },
114
+ "class": {
115
+ "type": [
116
+ "string",
117
+ "null"
118
+ ]
119
+ },
120
+ "method": {
121
+ "type": [
122
+ "string",
123
+ "null"
124
+ ]
125
+ },
126
+ "overload": {
127
+ "type": [
128
+ "string",
129
+ "null"
130
+ ]
131
+ }
132
+ },
133
+ "additionalProperties": false
134
+ }
135
+ },
136
+ "jni_dynamic_registration": {
137
+ "type": "boolean"
138
+ },
139
+ "summary": {
140
+ "type": "object",
141
+ "required": [
142
+ "arm64_v8a_present",
143
+ "archs",
144
+ "ndk1_defined",
145
+ "ndk1_undefined",
146
+ "static_tls",
147
+ "tls_relocs",
148
+ "android_api_symbols",
149
+ "dynamic_loading",
150
+ "emutls",
151
+ "libcxx_shared",
152
+ "unresolved",
153
+ "android_only",
154
+ "transitive_android",
155
+ "function_hints",
156
+ "build_capabilities",
157
+ "function_profile"
158
+ ],
159
+ "properties": {
160
+ "arm64_v8a_present": {
161
+ "type": "boolean"
162
+ },
163
+ "archs": {
164
+ "type": "array",
165
+ "items": {
166
+ "type": "string",
167
+ "minLength": 1
168
+ }
169
+ },
170
+ "ndk1_defined": {
171
+ "type": "integer",
172
+ "minimum": 0
173
+ },
174
+ "ndk1_undefined": {
175
+ "type": "integer",
176
+ "minimum": 0
177
+ },
178
+ "static_tls": {
179
+ "type": "boolean"
180
+ },
181
+ "tls_relocs": {
182
+ "type": "array",
183
+ "items": {
184
+ "type": "string",
185
+ "minLength": 1
186
+ }
187
+ },
188
+ "android_api_symbols": {
189
+ "type": "array",
190
+ "items": {
191
+ "type": "string",
192
+ "minLength": 1
193
+ }
194
+ },
195
+ "dynamic_loading": {
196
+ "type": "boolean"
197
+ },
198
+ "emutls": {
199
+ "type": "boolean"
200
+ },
201
+ "libcxx_shared": {
202
+ "type": "boolean"
203
+ },
204
+ "unresolved": {
205
+ "type": "array",
206
+ "items": {
207
+ "type": "string",
208
+ "minLength": 1
209
+ }
210
+ },
211
+ "android_only": {
212
+ "type": "array",
213
+ "items": {
214
+ "type": "string",
215
+ "minLength": 1
216
+ }
217
+ },
218
+ "transitive_android": {
219
+ "type": "array",
220
+ "items": {
221
+ "type": "object",
222
+ "required": [
223
+ "lib",
224
+ "via"
225
+ ],
226
+ "properties": {
227
+ "lib": {
228
+ "type": "string",
229
+ "minLength": 1
230
+ },
231
+ "via": {
232
+ "type": "string",
233
+ "minLength": 1
234
+ }
235
+ },
236
+ "additionalProperties": false
237
+ }
238
+ },
239
+ "function_hints": {
240
+ "type": "array",
241
+ "items": {
242
+ "type": "object",
243
+ "required": [
244
+ "category",
245
+ "count",
246
+ "samples"
247
+ ],
248
+ "properties": {
249
+ "category": {
250
+ "enum": [
251
+ "network",
252
+ "protocols",
253
+ "crypto",
254
+ "crypto_algos",
255
+ "media",
256
+ "codecs",
257
+ "formats",
258
+ "compression",
259
+ "hardware",
260
+ "logging",
261
+ "jni_signatures"
262
+ ]
263
+ },
264
+ "count": {
265
+ "type": "integer",
266
+ "minimum": 1
267
+ },
268
+ "samples": {
269
+ "type": "array",
270
+ "items": {
271
+ "type": "string"
272
+ }
273
+ }
274
+ },
275
+ "additionalProperties": false
276
+ }
277
+ },
278
+ "build_capabilities": {
279
+ "type": "object",
280
+ "description": "内嵌构建配置串(--enable-*)提取的能力清单:encoder/decoder/protocol/hwaccel/lib/flags",
281
+ "additionalProperties": {
282
+ "type": "array",
283
+ "items": {
284
+ "type": "string",
285
+ "minLength": 1
286
+ }
287
+ }
288
+ },
289
+ "function_profile": {
290
+ "type": "string",
291
+ "description": "一句话功能画像(音视频编解码/网络流媒体/硬解加速/加密…),仅定性参考"
292
+ }
293
+ },
294
+ "additionalProperties": false
295
+ },
296
+ "artifacts": {
297
+ "type": "array",
298
+ "items": {
299
+ "type": "object",
300
+ "required": [
301
+ "path",
302
+ "kind",
303
+ "arch",
304
+ "bits",
305
+ "abi_dir",
306
+ "soname",
307
+ "needed",
308
+ "needed_analysis",
309
+ "defined_total",
310
+ "ndk1_defined",
311
+ "ndk1_undefined",
312
+ "jni_symbols",
313
+ "dynamic_loading",
314
+ "emutls",
315
+ "static_tls",
316
+ "tls_relocs",
317
+ "android_api_symbols",
318
+ "function_hints",
319
+ "packaging_issues",
320
+ "notes",
321
+ "build_capabilities"
322
+ ],
323
+ "properties": {
324
+ "path": {
325
+ "type": "string",
326
+ "minLength": 1
327
+ },
328
+ "kind": {
329
+ "enum": [
330
+ "so",
331
+ "a",
332
+ "unknown"
333
+ ]
334
+ },
335
+ "arch": {
336
+ "enum": [
337
+ "arm64-v8a",
338
+ "armeabi-v7a",
339
+ "x86_64",
340
+ "x86",
341
+ "loongarch64",
342
+ "riscv64",
343
+ "unknown"
344
+ ]
345
+ },
346
+ "bits": {
347
+ "type": [
348
+ "integer",
349
+ "null"
350
+ ],
351
+ "enum": [
352
+ 32,
353
+ 64,
354
+ null
355
+ ]
356
+ },
357
+ "abi_dir": {
358
+ "type": [
359
+ "string",
360
+ "null"
361
+ ]
362
+ },
363
+ "soname": {
364
+ "type": [
365
+ "string",
366
+ "null"
367
+ ]
368
+ },
369
+ "needed": {
370
+ "type": "array",
371
+ "items": {
372
+ "type": "string",
373
+ "minLength": 1
374
+ }
375
+ },
376
+ "needed_analysis": {
377
+ "type": "object",
378
+ "required": [
379
+ "android_only",
380
+ "platform",
381
+ "libcxx_shared",
382
+ "third_party",
383
+ "unresolved"
384
+ ],
385
+ "properties": {
386
+ "android_only": {
387
+ "type": "array",
388
+ "items": {
389
+ "type": "string",
390
+ "minLength": 1
391
+ }
392
+ },
393
+ "platform": {
394
+ "type": "array",
395
+ "items": {
396
+ "type": "string",
397
+ "minLength": 1
398
+ }
399
+ },
400
+ "libcxx_shared": {
401
+ "type": "boolean"
402
+ },
403
+ "third_party": {
404
+ "type": "array",
405
+ "items": {
406
+ "type": "string",
407
+ "minLength": 1
408
+ }
409
+ },
410
+ "unresolved": {
411
+ "type": "array",
412
+ "items": {
413
+ "type": "string",
414
+ "minLength": 1
415
+ }
416
+ }
417
+ },
418
+ "additionalProperties": false
419
+ },
420
+ "defined_total": {
421
+ "type": "integer",
422
+ "minimum": 0
423
+ },
424
+ "ndk1_defined": {
425
+ "type": "integer",
426
+ "minimum": 0
427
+ },
428
+ "ndk1_undefined": {
429
+ "type": "integer",
430
+ "minimum": 0
431
+ },
432
+ "jni_symbols": {
433
+ "type": "array",
434
+ "items": {
435
+ "type": "string",
436
+ "minLength": 1
437
+ }
438
+ },
439
+ "dynamic_loading": {
440
+ "type": "boolean"
441
+ },
442
+ "emutls": {
443
+ "type": "boolean"
444
+ },
445
+ "static_tls": {
446
+ "type": "boolean"
447
+ },
448
+ "tls_relocs": {
449
+ "type": "array",
450
+ "items": {
451
+ "type": "string",
452
+ "minLength": 1
453
+ }
454
+ },
455
+ "android_api_symbols": {
456
+ "type": "array",
457
+ "items": {
458
+ "type": "string",
459
+ "minLength": 1
460
+ }
461
+ },
462
+ "function_hints": {
463
+ "type": "array",
464
+ "items": {
465
+ "type": "object",
466
+ "required": [
467
+ "category",
468
+ "count",
469
+ "samples"
470
+ ],
471
+ "properties": {
472
+ "category": {
473
+ "enum": [
474
+ "network",
475
+ "protocols",
476
+ "crypto",
477
+ "crypto_algos",
478
+ "media",
479
+ "codecs",
480
+ "formats",
481
+ "compression",
482
+ "hardware",
483
+ "logging",
484
+ "jni_signatures"
485
+ ]
486
+ },
487
+ "count": {
488
+ "type": "integer",
489
+ "minimum": 1
490
+ },
491
+ "samples": {
492
+ "type": "array",
493
+ "items": {
494
+ "type": "string"
495
+ }
496
+ }
497
+ },
498
+ "additionalProperties": false
499
+ }
500
+ },
501
+ "notes": {
502
+ "type": "array",
503
+ "items": {
504
+ "type": "string",
505
+ "minLength": 1
506
+ }
507
+ },
508
+ "source_aar": {
509
+ "type": "string",
510
+ "minLength": 1
511
+ },
512
+ "packaging_issues": {
513
+ "type": "array",
514
+ "items": {
515
+ "type": "string",
516
+ "minLength": 1
517
+ },
518
+ "description": "打包一致性:ABI 目录名与 ELF 实际架构不符、SONAME 与文件名不符"
519
+ },
520
+ "build_capabilities": {
521
+ "type": "object",
522
+ "additionalProperties": {
523
+ "type": "array",
524
+ "items": {
525
+ "type": "string",
526
+ "minLength": 1
527
+ }
528
+ }
529
+ }
530
+ },
531
+ "additionalProperties": false
532
+ }
533
+ },
534
+ "rebuild_diffs": {
535
+ "type": "array",
536
+ "description": "--diff-against 验收基线:原 Android 产物 vs 鸿蒙重编产物的接口面 diff",
537
+ "items": {
538
+ "type": "object",
539
+ "required": [
540
+ "artifact",
541
+ "baseline_file",
542
+ "symbol_compatible",
543
+ "missing_jni",
544
+ "missing_c_symbols",
545
+ "missing_cpp_count",
546
+ "missing_cpp_samples",
547
+ "extra_symbol_count",
548
+ "missing_needed",
549
+ "extra_needed",
550
+ "note"
551
+ ],
552
+ "properties": {
553
+ "artifact": {
554
+ "type": "string",
555
+ "minLength": 1
556
+ },
557
+ "baseline_file": {
558
+ "type": "string",
559
+ "minLength": 1
560
+ },
561
+ "symbol_compatible": {
562
+ "type": "boolean"
563
+ },
564
+ "missing_jni": {
565
+ "type": "array",
566
+ "items": {
567
+ "type": "string",
568
+ "minLength": 1
569
+ }
570
+ },
571
+ "missing_c_symbols": {
572
+ "type": "array",
573
+ "items": {
574
+ "type": "string",
575
+ "minLength": 1
576
+ }
577
+ },
578
+ "missing_cpp_count": {
579
+ "type": "integer",
580
+ "minimum": 0
581
+ },
582
+ "missing_cpp_samples": {
583
+ "type": "array",
584
+ "items": {
585
+ "type": "string",
586
+ "minLength": 1
587
+ }
588
+ },
589
+ "extra_symbol_count": {
590
+ "type": "integer",
591
+ "minimum": 0
592
+ },
593
+ "missing_needed": {
594
+ "type": "array",
595
+ "items": {
596
+ "type": "string",
597
+ "minLength": 1
598
+ }
599
+ },
600
+ "extra_needed": {
601
+ "type": "array",
602
+ "items": {
603
+ "type": "string",
604
+ "minLength": 1
605
+ }
606
+ },
607
+ "note": {
608
+ "type": "string"
609
+ }
610
+ },
611
+ "additionalProperties": false
612
+ }
613
+ }
614
+ },
615
+ "additionalProperties": false
616
+ }
617
+ },
618
+ "baseline": {
619
+ "type": "object",
620
+ "required": [
621
+ "path",
622
+ "compatible",
623
+ "incompatible",
624
+ "no_counterpart",
625
+ "unmatched_baseline"
626
+ ],
627
+ "properties": {
628
+ "path": {
629
+ "type": "string",
630
+ "minLength": 1
631
+ },
632
+ "compatible": {
633
+ "type": "integer",
634
+ "minimum": 0
635
+ },
636
+ "incompatible": {
637
+ "type": "integer",
638
+ "minimum": 0
639
+ },
640
+ "no_counterpart": {
641
+ "type": "array",
642
+ "items": {
643
+ "type": "string",
644
+ "minLength": 1
645
+ }
646
+ },
647
+ "unmatched_baseline": {
648
+ "type": "array",
649
+ "items": {
650
+ "type": "string",
651
+ "minLength": 1
652
+ }
653
+ }
654
+ },
655
+ "additionalProperties": false
656
+ },
657
+ "summary": {
658
+ "type": "object",
659
+ "required": [
660
+ "total",
661
+ "blocker",
662
+ "adaptation",
663
+ "clean",
664
+ "order"
665
+ ],
666
+ "properties": {
667
+ "total": {
668
+ "type": "integer",
669
+ "minimum": 0
670
+ },
671
+ "blocker": {
672
+ "type": "integer",
673
+ "minimum": 0
674
+ },
675
+ "adaptation": {
676
+ "type": "integer",
677
+ "minimum": 0
678
+ },
679
+ "clean": {
680
+ "type": "integer",
681
+ "minimum": 0
682
+ },
683
+ "order": {
684
+ "type": "array",
685
+ "items": {
686
+ "type": "string",
687
+ "minLength": 1
688
+ }
689
+ }
690
+ },
691
+ "additionalProperties": false
692
+ }
693
+ },
694
+ "additionalProperties": false
695
+ }