@ohos-cpf/3rdloop 0.0.1

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 (389) hide show
  1. package/README.md +425 -0
  2. package/bin/3rdloop.mjs +48 -0
  3. package/lib/cli.js +741 -0
  4. package/lib/config.js +318 -0
  5. package/lib/doctor.js +114 -0
  6. package/lib/exit-codes.js +31 -0
  7. package/lib/opencode.js +156 -0
  8. package/lib/orch.js +427 -0
  9. package/lib/queries.js +264 -0
  10. package/lib/runner.js +979 -0
  11. package/lib/step.js +326 -0
  12. package/lib/ui.js +223 -0
  13. package/lib/workflow.js +291 -0
  14. package/lib/workflows.js +132 -0
  15. package/package.json +50 -0
  16. package/vendor/Server/Agent/SkillSelector/README.md +344 -0
  17. package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -0
  18. package/vendor/Server/Agent/SkillSelector/index.js +14 -0
  19. package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -0
  20. package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -0
  21. package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -0
  22. package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -0
  23. package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -0
  24. package/vendor/Server/Agent/SkillSelector/types.js +63 -0
  25. package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +60 -0
  26. package/vendor/Server/Brain/AnalysisStrategies.js +422 -0
  27. package/vendor/Server/Brain/Brain.js +686 -0
  28. package/vendor/Server/Brain/DecompositionStrategies.js +621 -0
  29. package/vendor/Server/Brain/PlanPersistence.js +196 -0
  30. package/vendor/Server/Brain/SkillExecutor.js +251 -0
  31. package/vendor/Server/Brain/index.js +11 -0
  32. package/vendor/Server/CLI/cli.js +243 -0
  33. package/vendor/Server/CLI/opencode/index.js +804 -0
  34. package/vendor/Server/CLI/opencode.js +5 -0
  35. package/vendor/Server/DbUse/MessageArchive.js +61 -0
  36. package/vendor/Server/DbUse/StorageManager.js +107 -0
  37. package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -0
  38. package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -0
  39. package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -0
  40. package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -0
  41. package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -0
  42. package/vendor/Server/DbUse/index.js +160 -0
  43. package/vendor/Server/DbUse/stores/SessionStore.js +279 -0
  44. package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -0
  45. package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -0
  46. package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -0
  47. package/vendor/Server/FlexRunner/FlexRunner.js +1759 -0
  48. package/vendor/Server/FlexRunner/index.js +12 -0
  49. package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -0
  50. package/vendor/Server/Knowledge/KnowledgeManager.js +341 -0
  51. package/vendor/Server/Knowledge/index.js +33 -0
  52. package/vendor/Server/LoopEngine/LoopEngine.js +1133 -0
  53. package/vendor/Server/LoopEngine/index.js +11 -0
  54. package/vendor/Server/Orchestrator/Orchestrator.js +1425 -0
  55. package/vendor/Server/Orchestrator/StepNode.js +312 -0
  56. package/vendor/Server/Orchestrator/index.js +13 -0
  57. package/vendor/Server/Routes/controllers/BrainController.js +241 -0
  58. package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -0
  59. package/vendor/Server/Routes/controllers/HealthController.js +44 -0
  60. package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -0
  61. package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -0
  62. package/vendor/Server/Routes/controllers/OrchestratorController.js +911 -0
  63. package/vendor/Server/Routes/controllers/StatsController.js +57 -0
  64. package/vendor/Server/Routes/controllers/StreamController.js +67 -0
  65. package/vendor/Server/Routes/library/logger.js +179 -0
  66. package/vendor/Server/Routes/library/zipArchive.js +172 -0
  67. package/vendor/Server/Routes/router/Router.js +204 -0
  68. package/vendor/Server/Routes/routes/brain.js +47 -0
  69. package/vendor/Server/Routes/routes/flexrunner.js +72 -0
  70. package/vendor/Server/Routes/routes/health.js +28 -0
  71. package/vendor/Server/Routes/routes/index.js +57 -0
  72. package/vendor/Server/Routes/routes/knowledge.js +55 -0
  73. package/vendor/Server/Routes/routes/loopengine.js +58 -0
  74. package/vendor/Server/Routes/routes/orchestrator.js +61 -0
  75. package/vendor/Server/Routes/routes/registry.js +98 -0
  76. package/vendor/Server/Routes/routes/stats.js +23 -0
  77. package/vendor/Server/Routes/routes/stream.js +30 -0
  78. package/vendor/Server/Routes/server.js +202 -0
  79. package/vendor/Server/Routes/sse/SseHub.js +308 -0
  80. package/vendor/Server/Skills/acceptance-check/SKILL.md +174 -0
  81. package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -0
  82. package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -0
  83. package/vendor/Server/Skills/arkts-code-check/SKILL.md +314 -0
  84. package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +160 -0
  85. package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +29 -0
  86. package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +222 -0
  87. package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +220 -0
  88. package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +329 -0
  89. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -0
  90. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +433 -0
  91. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -0
  92. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +789 -0
  93. package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -0
  94. package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -0
  95. package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -0
  96. package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -0
  97. package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -0
  98. package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +99 -0
  99. package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -0
  100. package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -0
  101. package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +433 -0
  102. package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -0
  103. package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +789 -0
  104. package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -0
  105. package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -0
  106. package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -0
  107. package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -0
  108. package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +234 -0
  109. package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +103 -0
  110. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -0
  111. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -0
  112. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +108 -0
  113. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -0
  114. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -0
  115. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -0
  116. package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -0
  117. package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -0
  118. package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +392 -0
  119. package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -0
  120. package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +313 -0
  121. package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -0
  122. package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +166 -0
  123. package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +309 -0
  124. package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -0
  125. package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -0
  126. package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +361 -0
  127. package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +146 -0
  128. package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +253 -0
  129. package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +115 -0
  130. package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +263 -0
  131. package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -0
  132. package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -0
  133. package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -0
  134. package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -0
  135. package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +519 -0
  136. package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -0
  137. package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +93 -0
  138. package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -0
  139. package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -0
  140. package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +433 -0
  141. package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -0
  142. package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +789 -0
  143. package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -0
  144. package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +229 -0
  145. package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -0
  146. package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -0
  147. package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +576 -0
  148. package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +575 -0
  149. package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -0
  150. package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +491 -0
  151. package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -0
  152. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -0
  153. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +433 -0
  154. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -0
  155. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +789 -0
  156. package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -0
  157. package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +312 -0
  158. package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -0
  159. package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +134 -0
  160. package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -0
  161. package/vendor/Server/Skills/flutter-interface/README.md +75 -0
  162. package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -0
  163. package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -0
  164. package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -0
  165. package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -0
  166. package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -0
  167. package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +518 -0
  168. package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +382 -0
  169. package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +342 -0
  170. package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -0
  171. package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +519 -0
  172. package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +407 -0
  173. package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +653 -0
  174. package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +397 -0
  175. package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +745 -0
  176. package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +721 -0
  177. package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -0
  178. package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -0
  179. package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -0
  180. package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -0
  181. package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -0
  182. package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -0
  183. package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -0
  184. package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -0
  185. package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -0
  186. package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +301 -0
  187. package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +105 -0
  188. package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +127 -0
  189. package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +208 -0
  190. package/vendor/Server/Skills/rn-code-check/SKILL.md +321 -0
  191. package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +235 -0
  192. package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +189 -0
  193. package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +247 -0
  194. package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -0
  195. package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -0
  196. package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -0
  197. package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -0
  198. package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -0
  199. package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -0
  200. package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -0
  201. package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -0
  202. package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -0
  203. package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -0
  204. package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -0
  205. package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -0
  206. package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -0
  207. package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -0
  208. package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -0
  209. package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -0
  210. package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -0
  211. package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -0
  212. package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -0
  213. package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -0
  214. package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -0
  215. package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -0
  216. package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -0
  217. package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -0
  218. package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -0
  219. package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -0
  220. package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +684 -0
  221. package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -0
  222. package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -0
  223. package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -0
  224. package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -0
  225. package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -0
  226. package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -0
  227. package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -0
  228. package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -0
  229. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -0
  230. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -0
  231. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -0
  232. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -0
  233. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -0
  234. package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -0
  235. package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -0
  236. package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -0
  237. package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -0
  238. package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -0
  239. package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -0
  240. package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -0
  241. package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -0
  242. package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -0
  243. package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -0
  244. package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -0
  245. package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -0
  246. package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -0
  247. package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -0
  248. package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +58 -0
  249. package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -0
  250. package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -0
  251. package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +75 -0
  252. package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -0
  253. package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +339 -0
  254. package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +83 -0
  255. package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +859 -0
  256. package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +122 -0
  257. package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +279 -0
  258. package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -0
  259. package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -0
  260. package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -0
  261. package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -0
  262. package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -0
  263. package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +506 -0
  264. package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +280 -0
  265. package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -0
  266. package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +209 -0
  267. package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -0
  268. package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -0
  269. package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -0
  270. package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -0
  271. package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -0
  272. package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -0
  273. package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -0
  274. package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -0
  275. package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -0
  276. package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -0
  277. package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -0
  278. package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -0
  279. package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -0
  280. package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -0
  281. package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -0
  282. package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -0
  283. package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -0
  284. package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -0
  285. package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -0
  286. package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -0
  287. package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -0
  288. package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -0
  289. package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -0
  290. package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -0
  291. package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -0
  292. package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -0
  293. package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -0
  294. package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -0
  295. package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -0
  296. package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -0
  297. package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -0
  298. package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -0
  299. package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -0
  300. package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -0
  301. package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -0
  302. package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +498 -0
  303. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -0
  304. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -0
  305. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -0
  306. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -0
  307. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -0
  308. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -0
  309. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -0
  310. package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -0
  311. package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -0
  312. package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -0
  313. package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -0
  314. package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -0
  315. package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -0
  316. package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -0
  317. package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -0
  318. package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -0
  319. package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -0
  320. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -0
  321. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -0
  322. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -0
  323. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -0
  324. package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -0
  325. package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -0
  326. package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -0
  327. package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -0
  328. package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -0
  329. package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -0
  330. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -0
  331. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -0
  332. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -0
  333. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -0
  334. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -0
  335. package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -0
  336. package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -0
  337. package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -0
  338. package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -0
  339. package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -0
  340. package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -0
  341. package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +255 -0
  342. package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +77 -0
  343. package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -0
  344. package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +174 -0
  345. package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -0
  346. package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -0
  347. package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -0
  348. package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +137 -0
  349. package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -0
  350. package/vendor/Server/Skills/skill-generator/SKILL.md +365 -0
  351. package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -0
  352. package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -0
  353. package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -0
  354. package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -0
  355. package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -0
  356. package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -0
  357. package/vendor/Server/Skills/task-analysis/SKILL.md +234 -0
  358. package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -0
  359. package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -0
  360. package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -0
  361. package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -0
  362. package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -0
  363. package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -0
  364. package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -0
  365. package/vendor/Server/Skills/task-decomposition/SKILL.md +529 -0
  366. package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -0
  367. package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -0
  368. package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -0
  369. package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -0
  370. package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -0
  371. package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -0
  372. package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -0
  373. package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -0
  374. package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -0
  375. package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -0
  376. package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -0
  377. package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +425 -0
  378. package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -0
  379. package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -0
  380. package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -0
  381. package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -0
  382. package/vendor/Server/TestCheck/TestCheck.js +775 -0
  383. package/vendor/Server/TestCheck/index.js +11 -0
  384. package/vendor/Server/library/McpToolGuide.js +280 -0
  385. package/vendor/Server/library/StatsService.js +127 -0
  386. package/vendor/Server/library/cstTime.js +16 -0
  387. package/vendor/Server/package.json +17 -0
  388. package/vendor/VERSION +3 -0
  389. package/workflows/pr-check.mjs +106 -0
@@ -0,0 +1,274 @@
1
+ # 接口规格解析指南
2
+
3
+ > Phase 1 的详细操作手册。目标是解析接口规格说明书,提取结构化 API 清单,并探查工程目录结构。
4
+
5
+ ---
6
+
7
+ ## 1. 规格文档格式
8
+
9
+ ### 1.1 Markdown 格式(来自 script_rn_render_spec_doc)
10
+
11
+ 典型结构:
12
+
13
+ ```markdown
14
+ # {库名} 接口规格说明书
15
+
16
+ ## 模块信息
17
+ - 包名: @react-native-ohos/react-native-xxx
18
+ - 版本: x.y.z
19
+ - 平台: HarmonyOS
20
+
21
+ ## API 清单
22
+
23
+ ### TurboModule 方法
24
+
25
+ #### methodA(param1: string, param2?: number): Promise<Result>
26
+ | 参数 | 类型 | 必填 | 说明 |
27
+ |------|------|------|------|
28
+ | param1 | string | 是 | ... |
29
+ | param2 | number | 否 | ... |
30
+
31
+ - 返回值: Promise<Result>
32
+ - 平台: harmony
33
+ - 权限: ohos.permission.xxx
34
+
35
+ ### 组件
36
+
37
+ #### ComponentA
38
+ | Prop | 类型 | 默认值 | 说明 |
39
+ |------|------|--------|------|
40
+ | prop1 | string | - | ... |
41
+
42
+ ### 事件
43
+
44
+ #### onEventA
45
+ | 参数 | 类型 | 说明 |
46
+ |------|------|------|
47
+ | data | { value: number } | ... |
48
+
49
+ ### 常量
50
+
51
+ #### CONSTANT_A: string
52
+ - 值: "fixed_value"
53
+ - 平台: harmony
54
+ ```
55
+
56
+ ### 1.2 JSON 格式(来自 script_rn_extract_interfaces)
57
+
58
+ 典型结构:
59
+
60
+ ```json
61
+ {
62
+ "moduleName": "react-native-xxx",
63
+ "version": "x.y.z",
64
+ "exports": {
65
+ "methods": [
66
+ {
67
+ "name": "methodA",
68
+ "params": [
69
+ { "name": "param1", "type": "string", "required": true },
70
+ { "name": "param2", "type": "number", "required": false }
71
+ ],
72
+ "returnType": "Promise<Result>",
73
+ "isAsync": true
74
+ }
75
+ ],
76
+ "components": [
77
+ {
78
+ "name": "ComponentA",
79
+ "props": [
80
+ { "name": "prop1", "type": "string", "default": null }
81
+ ]
82
+ }
83
+ ],
84
+ "constants": [
85
+ { "name": "CONSTANT_A", "type": "string", "value": "fixed_value" }
86
+ ],
87
+ "events": [
88
+ { "name": "onEventA", "payload": { "value": "number" } }
89
+ ]
90
+ }
91
+ }
92
+ ```
93
+
94
+ ---
95
+
96
+ ## 2. API 清单提取方法
97
+
98
+ ### 2.1 Markdown 解析
99
+
100
+ 按标题层级提取:
101
+
102
+ | 标题级别 | 提取内容 |
103
+ |----------|----------|
104
+ | `##` | API 分类(TurboModule 方法/组件/事件/常量) |
105
+ | `###` | API 名称 |
106
+ | `####` | 方法签名(参数、返回值) |
107
+ | 表格 | 参数详情、属性详情 |
108
+ | 列表项 | 平台、权限、返回值说明 |
109
+
110
+ 提取步骤:
111
+
112
+ 1. 识别 `## API 清单` 下的所有 `###` 标题 → API 分类
113
+ 2. 对每个分类下的 `####` 标题 → 提取方法签名
114
+ 3. 解析签名中的参数列表(`param: type` 格式,`?` 表示可选)
115
+ 4. 解析返回值(`Promise<X>` → 异步,`X` → 同步)
116
+ 5. 提取表格中的参数详情
117
+ 6. 提取列表项中的平台和权限信息
118
+
119
+ ### 2.2 JSON 解析
120
+
121
+ 直接遍历 `exports` 对象的各字段:
122
+
123
+ | JSON 字段 | 对应 API 类型 |
124
+ |-----------|--------------|
125
+ | `exports.methods` | TurboModule 方法 |
126
+ | `exports.components` | 组件 |
127
+ | `exports.events` | 事件回调 |
128
+ | `exports.constants` | 常量/枚举 |
129
+ | `exports.hooks` | React Hooks |
130
+ | `exports.types` | 类型定义(不生成 Demo/Test) |
131
+
132
+ ### 2.3 MCP 工具辅助
133
+
134
+ 若规格文档不存在或不完整,调用 MCP 工具从源码提取:
135
+
136
+ **提取接口规格**:
137
+ 调用 `script_rn_extract_interfaces`,传入:
138
+ - `libroot`:RN 三方库的鸿蒙化仓库根目录
139
+ - `output`:输出 JSON 路径(如 `interface-spec.json`)
140
+ - `version`:上游 npm 版本号(可选,自动推断)
141
+
142
+ **渲染为 Markdown**:
143
+ 调用 `script_rn_render_spec_doc`,传入:
144
+ - `spec`:已有的 interface-spec.json 路径
145
+ - `output`:输出 Markdown 路径
146
+
147
+ **交叉验证导出接口**:
148
+ 调用 `script_rn_scan_exports`,传入:
149
+ - `dir`:源码目录路径
150
+ - `compare`:false(单目录扫描模式)
151
+
152
+ ---
153
+
154
+ ## 3. 工程目录探查
155
+
156
+ ### 3.1 探查 example/demo 目录
157
+
158
+ ```bash
159
+ # 按优先级搜索
160
+ for dir in \
161
+ "{projectRoot}/rn-tester/examples" \
162
+ "{projectRoot}/example/src" \
163
+ "{projectRoot}/examples/src" \
164
+ "{projectRoot}/example" \
165
+ "{projectRoot}/demo/src" \
166
+ "{projectRoot}/demo"; do
167
+ if [ -d "$dir" ]; then
168
+ echo "FOUND: $dir"
169
+ break
170
+ fi
171
+ done
172
+ ```
173
+
174
+ 探查到的目录赋值给 `exampleDir`。Demo 页面文件和 CPTF 测试工程统一生成在 `{exampleDir}/cptf/` 下。
175
+
176
+ ### 3.2 探查 Demo 注册入口
177
+
178
+ ```bash
179
+ # 按优先级搜索注册文件
180
+ find {projectRoot} -name "RNTesterList.*" -o -name "TesterList.*" | head -5
181
+ # 备选
182
+ find {projectRoot} -name "App.tsx" -path "*/example/*" | head -5
183
+ ```
184
+
185
+ 读取 `registerFile` 内容,分析现有注册模式:
186
+
187
+ | 模式 | 识别特征 | 追加方式 |
188
+ |------|----------|----------|
189
+ | 模式 A | `require(...)` + 数组对象含 `module` 字段 | 追加 `{ key, category, module: require(...) }` |
190
+ | 模式 B | `import ... from ...` + 导航/路由配置 | 添加 import + 路由配置 |
191
+ | 模式 C | `demos`/`items` 数组 + `Component` 字段 | 添加 import + 追加数组项 |
192
+
193
+ ### 3.3 提取构建信息
194
+
195
+ ```bash
196
+ # bundleId
197
+ cat {exampleDir}/harmony/AppScope/app.json5 | grep bundleName
198
+
199
+ # hap 路径
200
+ ls {exampleDir}/harmony/entry/build/default/outputs/default/entry-default-signed.hap
201
+
202
+ # 依赖检查
203
+ cat {exampleDir}/package.json | grep "{harmonyPkgName}"
204
+ ```
205
+
206
+ ### 3.4 缺失处理
207
+
208
+ | 探查项 | 缺失处理 |
209
+ |--------|----------|
210
+ | `package.json` | 停止,提示非 RN 工程 |
211
+ | example/demo 目录 | 停止,提示用户指定 Demo 目录 |
212
+ | 注册入口文件 | 停止,提示用户指定注册文件 |
213
+ | `harmonyPkgName` 依赖 | 停止,提示先安装依赖 |
214
+ | hap 构建产物 | 警告,继续生成代码(Phase 6 交付后需构建,参见 `rnoh-cptf-test-run` Phase 1.2) |
215
+ | AppScope/app.json5 | 警告,bundleId 用占位符 |
216
+
217
+ ---
218
+
219
+ ## 4. API 清单产出物
220
+
221
+ Phase 1 结束时必须产出以下结构化清单(Phase 2-5 的输入):
222
+
223
+ ```markdown
224
+ ## API 清单
225
+
226
+ ### TurboModule 方法
227
+ | # | 方法名 | 签名 | 异步 | 参数 | 返回值 | 平台 | 权限 |
228
+ |---|--------|------|------|------|--------|------|------|
229
+ | 1 | methodA | methodA(p1: string, p2?: number) | 是 | p1(string,必填), p2(number,可选) | Promise<Result> | harmony | - |
230
+ | 2 | methodB | methodB(): string | 否 | 无 | string | harmony | - |
231
+
232
+ ### 组件
233
+ | # | 组件名 | Props | 平台 |
234
+ |---|--------|-------|------|
235
+ | 1 | ComponentA | prop1(string), prop2(boolean) | harmony |
236
+
237
+ ### 事件
238
+ | # | 事件名 | Payload | 平台 |
239
+ |---|--------|---------|------|
240
+ | 1 | onEventA | { value: number } | harmony |
241
+
242
+ ### 常量
243
+ | # | 常量名 | 类型 | 值 | 平台 |
244
+ |---|--------|------|-----|------|
245
+ | 1 | CONSTANT_A | string | "fixed_value" | harmony |
246
+
247
+ ## 工程信息
248
+ - exampleDir: {探查到的路径}
249
+ - workspaceDir: {exampleDir}/cptf/
250
+ - indexFile: {exampleDir}/cptf/index.tsx
251
+ - demoDir: {exampleDir}/cptf/demo/
252
+ - bundleId: {从 app.json5 提取}
253
+ - hapPath: {exampleDir}/harmony/entry/build/default/outputs/default/entry-default-signed.hap
254
+ - dependencies: {已确认依赖存在}
255
+ ```
256
+
257
+ ---
258
+
259
+ ## 5. 知识库查询
260
+
261
+ 当涉及鸿蒙平台特定约束时,调用 `kb_search` 查询:
262
+
263
+ | 场景 | 检索词 |
264
+ |------|--------|
265
+ | 权限要求 | `HarmonyOS 权限 {功能}` |
266
+ | ArkTS 限制 | `ArkTS 限制 {主题}` |
267
+ | TurboModule 适配 | `RNOH TurboModule 适配` |
268
+ | 事件机制 | `RNOH 事件 NativeEventEmitter` |
269
+
270
+ 调用要点:
271
+ - 一次查询一个关键词
272
+ - 对返回结果提取:知识点、注意事项、代码示例
273
+ - 若返回不相关,调整关键词重试(最多3轮)
274
+ - 不照搬全文,提取核心要点精简引用
@@ -0,0 +1,185 @@
1
+ #!/bin/bash
2
+ # @tool validate-rnoh-cptf-api-test
3
+ # @description 校验接口规格驱动的 Demo + CPTF 测试工程结构完整性(Demo testID/前缀 + CPTF config/package/测试文件骨架 + Demo-Test 对齐)
4
+ # @param workspaceDir: string - CPTF 测试工程目录绝对路径
5
+ # @param demoDir: string - Demo 页面目录绝对路径({exampleDir}/{libName}/)
6
+
7
+ ARGS_JSON="$1"
8
+ workspaceDir=$(python3 -c "import sys,json; print(json.loads(sys.argv[1]).get('workspaceDir',''))" "$ARGS_JSON" 2>/dev/null || echo "")
9
+ demoDir=$(python3 -c "import sys,json; print(json.loads(sys.argv[1]).get('demoDir',''))" "$ARGS_JSON" 2>/dev/null || echo "")
10
+
11
+ if [ -z "$workspaceDir" ]; then
12
+ echo "Usage: validate-rnoh-cptf-api-test.sh '{\"workspaceDir\":\"<路径>\",\"demoDir\":\"<路径>\"}'"
13
+ echo "Error: workspaceDir parameter is required"
14
+ exit 1
15
+ fi
16
+
17
+ if [ ! -d "$workspaceDir" ]; then
18
+ echo "Error: workspaceDir does not exist: $workspaceDir"
19
+ exit 1
20
+ fi
21
+
22
+ PASS=0
23
+ FAIL=0
24
+ WARN=0
25
+
26
+ check_pass() { echo " PASS $1"; PASS=$((PASS + 1)); }
27
+ check_fail() { echo " FAIL $1"; FAIL=$((FAIL + 1)); }
28
+ check_warn() { echo " WARN $1"; WARN=$((WARN + 1)); }
29
+
30
+ echo "=== RNOH CPTF API Test Validation ==="
31
+ echo "workspaceDir: $workspaceDir"
32
+ if [ -n "$demoDir" ] && [ -d "$demoDir" ]; then
33
+ echo "demoDir: $demoDir"
34
+ else
35
+ echo "demoDir: (not provided or not found, skipping Demo checks)"
36
+ fi
37
+ echo ""
38
+
39
+ # --- 1. Demo checks ---
40
+ if [ -n "$demoDir" ] && [ -d "$demoDir" ]; then
41
+ echo "--- 1. Demo Code Checks ---"
42
+
43
+ # 1.1 index.tsx
44
+ indexFile="$demoDir/index.tsx"
45
+ if [ -f "$indexFile" ]; then
46
+ check_pass "index.tsx exists"
47
+ grep -q 'Tester' "$indexFile" && check_pass "index.tsx has Tester framework" || check_fail "index.tsx missing Tester framework"
48
+ grep -q 'displayName' "$indexFile" && check_pass "index.tsx has metadata export" || check_warn "index.tsx missing metadata export"
49
+ else
50
+ check_fail "index.tsx not found"
51
+ fi
52
+
53
+ # 1.2 Demo page files
54
+ demoPages=$(find "$demoDir/demo" -name '*.tsx' 2>/dev/null)
55
+ if [ -n "$demoPages" ]; then
56
+ pageCount=$(echo "$demoPages" | wc -l | tr -d ' ')
57
+ check_pass "Demo page files found: $pageCount"
58
+
59
+ for tf in $demoPages; do
60
+ echo " Checking: $(basename "$tf")"
61
+
62
+ # testID check
63
+ testIdCount=$(grep -c 'testID=' "$tf" 2>/dev/null || echo 0)
64
+ if [ "$testIdCount" -gt 0 ]; then
65
+ check_pass " Has testID ($testIdCount)"
66
+ else
67
+ check_warn " No testID found (CPTF will use textContains fallback)"
68
+ fi
69
+
70
+ # Fixed prefix check
71
+ if grep -qE '(结果|错误信息|状态|常量|属性)' "$tf" 2>/dev/null; then
72
+ check_pass " Has fixed text prefix"
73
+ else
74
+ check_warn " No fixed text prefix pattern found"
75
+ fi
76
+
77
+ # ScrollView root check
78
+ firstComp=$(head -20 "$tf" | grep -oE '<(View|ScrollView)' | head -1)
79
+ if [ "$firstComp" = "<ScrollView" ]; then
80
+ check_fail " Root component is ScrollView (should be View)"
81
+ else
82
+ check_pass " Root component is View"
83
+ fi
84
+
85
+ # Slider check
86
+ grep -q 'Slider' "$tf" 2>/dev/null && check_fail " Uses Slider (not supported on HarmonyOS)" || check_pass " No Slider"
87
+
88
+ # console.error check
89
+ grep -q 'console.error' "$tf" 2>/dev/null && check_fail " Uses console.error" || check_pass " No console.error"
90
+ done
91
+ else
92
+ check_fail "No Demo page files found in $demoDir/demo/"
93
+ fi
94
+ echo ""
95
+ fi
96
+
97
+ # --- 2. CPTF config ---
98
+ echo "--- 2. CPTF Config Checks ---"
99
+ if [ -f "$workspaceDir/cptf.config.json" ]; then
100
+ check_pass "cptf.config.json exists"
101
+ python3 - "$workspaceDir/cptf.config.json" <<'EOF'
102
+ import json, sys
103
+ with open(sys.argv[1]) as f:
104
+ cfg = json.load(f)
105
+ issues = []
106
+ if 'bundleId' not in cfg: issues.append('missing bundleId')
107
+ if 'casesDir' not in cfg: issues.append('missing casesDir')
108
+ h = cfg.get('platforms', {}).get('harmony', {})
109
+ if 'appPath' not in h: issues.append('missing platforms.harmony.appPath')
110
+ elif not h['appPath'].startswith('/'): issues.append('appPath not absolute path')
111
+ if not h.get('devices'): issues.append('missing platforms.harmony.devices')
112
+ for i in issues:
113
+ print(f" FAIL cptf.config.json: {i}")
114
+ if not issues:
115
+ print(" PASS cptf.config.json key fields complete")
116
+ sys.exit(1 if issues else 0)
117
+ EOF
118
+ [ $? -eq 0 ] && PASS=$((PASS + 1)) || FAIL=$((FAIL + 1))
119
+ else
120
+ check_fail "cptf.config.json not found"
121
+ fi
122
+
123
+ # --- 3. package.json link ---
124
+ echo ""
125
+ echo "--- 3. Link Dependency Checks ---"
126
+ if [ -f "$workspaceDir/package.json" ]; then
127
+ grep -q '"@cptf/framework": "link:' "$workspaceDir/package.json" && check_pass "@cptf/framework link declared" || check_fail "@cptf/framework link not declared"
128
+ grep -q '"reflect-metadata": "link:' "$workspaceDir/package.json" && check_pass "reflect-metadata link declared" || check_fail "reflect-metadata link not declared"
129
+ else
130
+ check_fail "package.json not found"
131
+ fi
132
+
133
+ # --- 4. node_modules ---
134
+ echo ""
135
+ echo "--- 4. Module Resolution Checks ---"
136
+ if [ -d "$workspaceDir/node_modules/@cptf/framework" ]; then
137
+ check_pass "node_modules/@cptf/framework established"
138
+ else
139
+ check_fail "node_modules/@cptf/framework not found (run pnpm install)"
140
+ fi
141
+
142
+ # --- 5. Test file ---
143
+ echo ""
144
+ echo "--- 5. Test File Checks ---"
145
+ testFiles=$(find "$workspaceDir/tests/cases" -name '*.test.ts' 2>/dev/null)
146
+ if [ -n "$testFiles" ]; then
147
+ testCount=$(echo "$testFiles" | wc -l | tr -d ' ')
148
+ check_pass "Test files found: $testCount"
149
+
150
+ for tf in $testFiles; do
151
+ echo " Checking: $(basename "$tf")"
152
+ grep -q "import 'reflect-metadata'" "$tf" && check_pass " First line import reflect-metadata" || check_fail " Missing import 'reflect-metadata'"
153
+ grep -q 'stepTimeout' "$tf" && check_pass " Has stepTimeout" || check_fail " No stepTimeout found"
154
+ grep -q 'testCaseExecutor' "$tf" && check_pass " Exports testCaseExecutor" || check_fail " Missing testCaseExecutor export"
155
+ grep -q 'single-page' "$tf" && check_pass " Has single-page navigation strategy" || check_warn " No single-page navigation strategy"
156
+
157
+ # testID usage in test
158
+ grep -q 'scrollAndClickByTestId' "$tf" && check_pass " Uses testID-based locating" || check_warn " Not using testID locating (textContains only)"
159
+
160
+ # Halfwidth colon risk scan
161
+ halfwidth=$(grep -o "waitForText('[^']*:[^']*')" "$tf" 2>/dev/null | head -5)
162
+ if [ -n "$halfwidth" ]; then
163
+ check_warn " waitForText with halfwidth colon (verify Demo uses same):"
164
+ echo "$halfwidth" | sed 's/^/ /'
165
+ fi
166
+ done
167
+ else
168
+ check_fail "No .test.ts files found in tests/cases/"
169
+ fi
170
+
171
+ # --- 6. Summary ---
172
+ echo ""
173
+ echo "=== Summary ==="
174
+ echo " PASS: $PASS"
175
+ echo " FAIL: $FAIL"
176
+ echo " WARN: $WARN"
177
+ echo ""
178
+
179
+ if [ "$FAIL" -eq 0 ]; then
180
+ echo "ALL CHECKS PASSED"
181
+ exit 0
182
+ else
183
+ echo "VALIDATION FAILED: $FAIL issue(s) must be fixed"
184
+ exit 1
185
+ fi
@@ -0,0 +1,191 @@
1
+ ---
2
+ name: rnoh-cptf-demo-test
3
+ description: >-
4
+ 分析 RN 鸿蒙三方库已有 demo(testerino 单页应用)源码,按 CPTF 规范自动生成测试工程文件(cptf.config.json + package.json + 测试用例 .ts),保证格式与结构正确。当用户说"给这个三方库 demo 生成 CPTF 测试文件"、"用 CPTF 规范生成测试用例"、"分析 demo 源码生成测试文件"时使用。覆盖:demo 源码勘察(按钮 title/结果 Text/testID)、测试工程搭建(cptf.config.json + link 依赖)、测试文件编写(导航策略/滚动定位/文本断言)、格式校验。实机运行调试请使用 rnoh-cptf-test-run。
5
+ 关键词:CPTF、RNOH、RN 三方库、自动化测试、testerino、harmony、
6
+ FunctionalTest、测试文件生成。
7
+ license: Apache-2.0
8
+ compatibility: 需要 CPTF 框架源码(@cptf/framework 可 link)、pnpm、demo 构建产物路径(用于配置 appPath)
9
+ allowed-tools: Read Grep Glob Bash
10
+ metadata:
11
+ version: "1.0.0"
12
+ category: rnoh-testing
13
+ ---
14
+
15
+ # RNOH 三方库 Demo CPTF 测试文件生成
16
+
17
+ 分析单个 RN 鸿蒙三方库已有 demo 源码,按 CPTF(`@cptf/framework`)规范生成对应的测试工程文件(配置 + 依赖 + 测试用例),保证格式与结构正确。实机运行与调试由后续 SKILL `rnoh-cptf-test-run` 负责。
18
+
19
+ > ⚠️ **核心原则:断言文本必须逐字符核对 demo 源码(特别是全角/半角冒号);每个 @Step 必须显式设置 stepTimeout ≥ 30000;生成的 package.json 必须本地 link 依赖(不依赖 CLI shim 的 NODE_PATH);所有文件格式必须通过校验脚本验证。**
20
+
21
+ ---
22
+
23
+ ## 任务参数
24
+
25
+ | 参数 | 类型 | 必填 | 说明 |
26
+ |------|------|------|------|
27
+ | `demoPath` | string | ✅ | 三方库 demo 工程根目录(含 `src/`、`harmony/`) |
28
+ | `libName` | string | ✅ | 三方库名(如 `react-native-get-random-values`) |
29
+ | `workspaceDir` | string | ✅ | CPTF 测试工程目录(含 cptf.config.json,可新建) |
30
+ | `frameworkPath` | string | ❌ | @cptf/framework 源码路径(默认从全局 pnpm link 推导) |
31
+ | `deviceId` | string | ❌ | 鸿蒙设备 SN(写入 cptf.config.json,默认占位待填) |
32
+
33
+ ## 输入依赖
34
+
35
+ - **前置SKILL**: 无(可独立使用;demo 应已通过 rnoh-lib-demo-create 等流程构建出 hap)
36
+ - **后续SKILL**: `rnoh-cptf-test-run`(实机运行与调试)
37
+ - **输入文件**:
38
+ - demo 源码:`{demoPath}/src/**/*.tsx`(testerino 用例定义)
39
+ - 构建产物路径:`{demoPath}/harmony/entry/build/default/outputs/default/entry-default-signed.hap`
40
+ - demo 配置:`{demoPath}/AppScope/app.json5`(提取 bundleName)
41
+
42
+ ---
43
+
44
+ ## 工作流程概览
45
+
46
+ ```
47
+ Phase 1: Demo 源码勘察(提取用例清单+精确文本)
48
+
49
+ Phase 2: 测试工程搭建(生成 cptf.config.json + package.json link 依赖)
50
+
51
+ Phase 3: 测试文件生成(导航策略 + @Test + @Step)
52
+
53
+ Phase 4: 格式校验与交付(结构完整性检查 + 输出确认)
54
+ ```
55
+
56
+ ---
57
+
58
+ ## Phase 1:Demo 源码勘察
59
+
60
+ ### 1.1 定位用例定义文件
61
+
62
+ 在 `{demoPath}/src/` 下查找 testerino 用例(`TestCase`/`TestSuite`/`Tester` 关键字),通常在单个 `.tsx` 文件中。
63
+
64
+ > 勘察项明细与提取方法参见 [Demo 源码勘察指南](references/DEMO_ANALYSIS.md)
65
+
66
+ ### 1.2 提取三要素清单
67
+
68
+ 对每个 TestCase 提取(**逐字符精确记录,不凭记忆**):
69
+
70
+ | 要素 | 来源 | 用途 |
71
+ |------|------|------|
72
+ | 按钮 title | `<Button title="...">` | `scrollToFindElement({ textContains })` 定位 |
73
+ | 结果文本 | `<Text>前缀:{值}</Text>` | `waitForText` 断言 |
74
+ | testID | `testID` 属性(如有) | 优先用 testID 定位;无则全部走文本定位 |
75
+
76
+ ### 1.3 全角/半角冒号核对(最高优先)
77
+
78
+ 在源码中区分 `:`(全角)与 `:`(半角)。**`waitForText` 是子串精确匹配,半角搜索串永远匹配不到全角文本**——这是最常见的隐性失败根因。记录每个结果文本前缀时保留原始字符,直接复制源码字符串。
79
+
80
+ ### 1.4 识别 demo 结构特征
81
+
82
+ - 单页 ScrollView(无 deep link、无模块首页)→ 需注册 `single-page` 导航策略
83
+ - 按钮是否在屏幕外 → 需要 `scrollToFindElement` 智能滚动
84
+ - 结果文本有无固定前缀(裸数字等)→ 决定断言策略(waitForText vs 快照差集)
85
+
86
+ ---
87
+
88
+ ## Phase 2:测试工程搭建
89
+
90
+ ### 2.1 生成 cptf.config.json
91
+
92
+ ```json
93
+ {
94
+ "bundleId": "<demo bundleId,见 AppScope/app.json5>",
95
+ "reportDir": "test-reports",
96
+ "reportFormat": "html",
97
+ "casesDir": "tests/cases",
98
+ "platforms": {
99
+ "harmony": {
100
+ "toolPath": "hdc",
101
+ "bundleId": "<同上>",
102
+ "appPath": "<demoPath>/harmony/entry/build/default/outputs/default/entry-default-signed.hap",
103
+ "devices": [{ "id": "<设备SN>", "screenWidth": 1280, "screenHeight": 2832 }]
104
+ }
105
+ }
106
+ }
107
+ ```
108
+
109
+ ### 2.2 建立 link 依赖(关键)
110
+
111
+ > ⚠️ cptf CLI shim 的 NODE_PATH 不可靠(pnpm link 全局安装后 `.pnpm/node_modules` 可能不存在),**必须在测试工程本地建立 node_modules**。
112
+
113
+ 生成 `{workspaceDir}/package.json`:
114
+
115
+ ```json
116
+ {
117
+ "name": "cptf-workspace",
118
+ "private": true,
119
+ "dependencies": {
120
+ "@cptf/framework": "link:<frameworkPath>",
121
+ "reflect-metadata": "link:<frameworkPath>/node_modules/reflect-metadata"
122
+ }
123
+ }
124
+ ```
125
+
126
+ 执行 `pnpm install`,然后用 `node -e "require.resolve('@cptf/framework')"` 验证解析成功。
127
+
128
+ > 详细步骤与故障排查参见 [CPTF 工程搭建指南](references/CPTF_SETUP.md)
129
+
130
+ ---
131
+
132
+ ## Phase 3:测试文件生成
133
+
134
+ ### 3.1 文件骨架
135
+
136
+ 生成 `tests/cases/functional/{libName 短名}.test.ts`,结构:
137
+
138
+ ```
139
+ import 'reflect-metadata' + @cptf/framework 导入
140
+ → NavigationStrategyFactory.registerStrategy('single-page', ...)
141
+ → @Test({... navigationStrategy: 'single-page', waitAfterAction: 300})
142
+ → class XxxTest extends FunctionalTest
143
+ → 辅助方法(scrollAndClick / waitForText / report / snapshot 差集)
144
+ → 每个 TestCase 一个 @Step
145
+ → export const testCaseExecutor = new XxxTest()
146
+ ```
147
+
148
+ ### 3.2 编码规则(全部来自实战踩坑)
149
+
150
+ 1. **每个 @Step 显式 `stepTimeout: 30000`**——默认 10s 不够滚动+点击+等待
151
+ 2. **断言文本从 Phase 1 清单逐字符复制**,全角冒号原样保留
152
+ 3. **无固定前缀的结果**(如裸数字)用快照差集:点击前 `getLayout(true)` 快照 → 点击后再快照 → 差集中提取
153
+ 4. **demo 已知渲染 bug**(如 "Text strings must be rendered within a <Text>")时断言放宽为"错误输出已触发",代码注释注明原因
154
+ 5. **步骤失败即 throw**(经 report 辅助方法),保证报告准确归因
155
+
156
+ > 完整可运行模板参见 [测试文件模板](assets/TEST_TEMPLATE.md)
157
+
158
+ ---
159
+
160
+ ## Phase 4:格式校验与交付
161
+
162
+ ### 4.1 运行校验脚本
163
+
164
+ ```bash
165
+ bash {skillDir}/scripts/validate-rnoh-cptf-test.sh '{"workspaceDir":"<绝对路径>"}'
166
+ ```
167
+
168
+ 校验项:
169
+
170
+ | 检查项 | 规则 |
171
+ |--------|------|
172
+ | cptf.config.json | 存在且含 bundleId / casesDir / platforms.harmony.appPath(绝对路径)/ devices |
173
+ | package.json | 声明 @cptf/framework link + reflect-metadata link |
174
+ | node_modules | @cptf/framework + reflect-metadata 已建立 |
175
+ | 测试文件 | 首行 import reflect-metadata / 已设 stepTimeout / 导出 testCaseExecutor |
176
+ | 全角冒号风险 | 扫描 waitForText 参数含半角冒号的行(警告) |
177
+
178
+ ### 4.2 交付物确认
179
+
180
+ 确认输出目录包含所有文件:
181
+
182
+ ```
183
+ {workspaceDir}/
184
+ ├── cptf.config.json # 设备/应用配置
185
+ ├── package.json # link 依赖
186
+ ├── node_modules/ # pnpm install 产物
187
+ └── tests/cases/functional/
188
+ └── {libName}.test.ts # 测试文件(格式校验通过)
189
+ ```
190
+
191
+ 校验脚本全部 PASS 后,交付完成。后续实机运行调试使用 `rnoh-cptf-test-run` SKILL。