@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,269 @@
1
+ # 迁移验证与边界情况
2
+
3
+ > 本文档列出 demo 迁移的验证检查清单与常见边界情况的处理策略。
4
+
5
+ ---
6
+
7
+ ## 1. 迁移验证检查清单
8
+
9
+ 迁移完成后,**逐项**确认以下检查通过。未通过项列入报告「待人工确认」。
10
+
11
+ ### 1.1 文件完整性
12
+
13
+ | # | 检查项 | 命令 | 通过标准 |
14
+ |---|--------|------|---------|
15
+ | 1.1.1 | demo 新增文件全部迁移 | `diff <(cd <demoPath> && find . -type f -not -path './node_modules/*' -not -path './build/*' | sort) <(cd <targetExampleSrc> && find . -type f -not -path './node_modules/*' -not -path './build/*' | sort)` | **本次新增文件**全部到位(冲突文件保留目标版本,不计入缺失) |
16
+ | 1.1.2 | 入口文件存在 | `find <targetExampleSrc> -name "App.tsx" -o -name "index.tsx"` | 两个文件都存在(可在嵌套子目录中) |
17
+ | 1.1.3 | testerino 注册存在 | `find <targetExampleSrc> -path "*/Test/index.tsx" -o -path "*/tests/index.tsx"` | 退出码 0(路径可为嵌套) |
18
+ | 1.1.4 | 无排除项残留 | `ls <targetExampleSrc>/node_modules 2>/dev/null` | 无输出(应被排除) |
19
+ | 1.1.5 | index.tsx 引用 demo 入口 | `grep -r "testCase/App\|demo/App\|./App" <targetExampleSrc>/index.tsx` | index.tsx 已接入 demo 入口(若为已有文件未接入,标注待人工确认) |
20
+
21
+ ### 1.2 路径正确性
22
+
23
+ | # | 检查项 | 命令 | 通过标准 |
24
+ |---|--------|------|---------|
25
+ | 1.2.1 | 子目录下无错误相对路径 | `grep -rn "from '\./" <targetExampleSrc>/testCase/Test/ <targetExampleSrc>/tests/` | 无同级引用应为 `../` 的情况 |
26
+ | 1.2.2 | 所有 import 路径可解析 | 静态分析(Agent 读取每个 .tsx 文件) | 无 `Cannot find module` 风险 |
27
+
28
+ ### 1.3 引用一致性
29
+
30
+ | # | 检查项 | 命令 | 通过标准 |
31
+ |---|--------|------|---------|
32
+ | 1.3.1 | 目标库引用方式一致 | `grep -rn "import.*from.*'<alias>\|<packageName>'" <targetExampleSrc>/` | 引用方式统一(全部用 alias 或全部用 packageName),仅检查本次新增文件 |
33
+ | 1.3.2 | displayName 存在 | `grep -rn "displayName" <targetExampleSrc>/` | 存在且与 demo 名称一致 |
34
+ | 1.3.3 | 无硬编码其他库标题 | `grep -rn "RN.*Tester" <targetExampleSrc>/` | 本次新增文件无遗留的其他库名称(Phase 6.5 已修正);已有文件中的硬编码标题标注为待人工处理 |
35
+
36
+ ### 1.4 依赖完整性
37
+
38
+ | # | 检查项 | 方法 | 通过标准 |
39
+ |---|--------|------|---------|
40
+ | 1.4.1 | 所有外部依赖已列出 | 对比 `analyze-demo-deps.cjs` 输出与报告「依赖增量」章节 | 全部列出 |
41
+ | 1.4.2 | 无未识别的 require | `grep -rn "require(" <targetExampleSrc>/` | 所有 require 参数是字符串字面量且已分类 |
42
+ | 1.4.3 | **外部依赖已在 example/package.json 声明** | 对比 `externalDeps` 与 `example/package.json` 的 dependencies/devDependencies | 所有外部依赖已声明;未声明的在报告中标注为高优先级缺失项(Phase 4.1) |
43
+
44
+ ### 1.5 Demo 可访问性
45
+
46
+ | # | 检查项 | 方法 | 通过标准 |
47
+ |---|--------|------|---------|
48
+ | 1.5.1 | **无孤立文件** | 对比迁移文件列表与 `index.tsx` 的 `demos` 数组 | 所有有 `export` 的 `.tsx`/`.ts` 文件都被入口直接/间接引用(Phase 6.6) |
49
+ | 1.5.2 | **菜单可滚动** | 检查 `demos` 条目数与菜单容器类型 | 条目 > 5 时菜单容器为 `<ScrollView>`(Phase 6.7) |
50
+ | 1.5.3 | **原有 App.tsx 可访问** | 检查 `index.tsx` 是否包含原有 `App.tsx` 的菜单项 | 原有 demo 入口未丢失(Phase 6.8) |
51
+ | 1.5.4 | **入口链路完整** | 追踪 `index.js` → `src/index.tsx` → `demos` → 各组件 → `./demo/` | 全链路可导入,无断裂(Phase 6.9) |
52
+
53
+ ### 1.6 构建前置
54
+
55
+ | # | 检查项 | 方法 | 通过标准 |
56
+ |---|--------|------|---------|
57
+ | 1.6.1 | **build-profile 无越界路径** | 检查 `modules[].srcPath` 是否以 `../` 开头 | 所有路径在 `example/harmony/` 工程内(Phase 5.1) |
58
+ | 1.6.2 | **.har 文件路径有效** | 逐一 `ls -la` 验证 `oh-package.json5` 中的 `file:` 引用 | 所有 `.har` 文件存在于指定路径(Phase 5.2) |
59
+
60
+ ### 1.7 版本一致性
61
+
62
+ | # | 检查项 | 方法 | 通过标准 |
63
+ |---|--------|------|---------|
64
+ | 1.5.1 | 库与 rnt 版本一致 | `detect-rnoh-version.cjs` 输出对比 | 版本号相同 |
65
+ | 1.5.2 | example/package.json 版本匹配 | 检查 react-native / react-native-harmony 版本 | 与目标 RNOH 版本一致 |
66
+
67
+ ---
68
+
69
+ ## 2. 边界情况与处理策略
70
+
71
+ ### 2.1 目标 example/ 不存在
72
+
73
+ **场景**:`libPath/example/` 目录不存在。
74
+
75
+ **处理**:
76
+ 1. 终止本 SKILL
77
+ 2. 输出提示:「目标 RN 工程 `example/` 目录不存在,请先执行 `rn-lib-add-example` 创建模板」
78
+ 3. 在报告中记录阻塞原因
79
+
80
+ > 本 SKILL 不创建 example 模板,职责边界清晰。
81
+
82
+ ### 2.2 rnt 工程无 rn-tester/examples/
83
+
84
+ **场景**:`{rnt-root}/*/rn-tester/examples/` 路径不存在。
85
+
86
+ **处理**:
87
+ 1. 检查 rnt 根路径是否正确
88
+ 2. 列出 `{rnt-root}` 下的子目录,提示用户确认 rnt 根路径
89
+ 3. 询问是否换一个 rnt 工程根路径
90
+
91
+ ### 2.3 demo 与已有 example/src 内容冲突
92
+
93
+ **场景**:迁移时发现 `targetExampleSrc` 已有同名文件。
94
+
95
+ **处理**:
96
+ - **默认(无 --clean)**:**增量添加,不覆盖**。列出冲突文件清单,**保留目标版本**,demo 版本不写入(`rsync --ignore-existing`),在报告中标注冲突项供人工确认是否合并
97
+ - **--clean 启用**:直接清空目标,但**必须**用户明确同意
98
+
99
+ **通用组件保留**:
100
+ - `components/Navigation.tsx` 等 example 模板通用组件,若 demo 仍引用,**保留**
101
+ - 脚本默认 `--clean` 时不清除 `components/Navigation.tsx`,可通过 `--clean-all` 强制全清
102
+
103
+ **冲突文件后续处理**:
104
+ - Agent 在报告中列出冲突文件清单
105
+ - 询问用户是否需要手动合并(demo 版本 vs 目标版本的差异)
106
+ - 若用户不需要合并,保持目标版本即可
107
+
108
+ ### 2.4 demo 引用目标库内部路径
109
+
110
+ **场景**:demo 中出现 `import { X } from 'react-native-camera-kit/src/internal'`。
111
+
112
+ **处理**:
113
+ 1. 列入报告「待人工确认」清单
114
+ 2. 不自动改写(内部路径可能依赖库源码结构)
115
+ 3. 提示用户:可能需要调整 demo 改用公开导出,或调整 example 配置
116
+
117
+ ### 2.5 demo 含原生代码
118
+
119
+ **场景**:demo 目录含 `.ets` / `.cpp` / `.h` 文件。
120
+
121
+ **处理**:
122
+ 1. JS/TS 文件正常迁移到 `example/src/`
123
+ 2. 原生文件**不迁移**到 `example/src/`(应放到 `example/harmony/` 下,由 `rn-lib-add-example` 壳层适配处理)
124
+ 3. 在报告中标注:「demo 含原生代码 <文件列表>,需由 `rn-lib-add-example` 处理壳层适配」
125
+
126
+ ### 2.6 rnt 工程路径跨盘/网络挂载
127
+
128
+ **场景**:rnt 工程在 NFS / SMB / iCloud 等网络挂载盘上,`rsync` / `find` 较慢。
129
+
130
+ **处理**:
131
+ 1. 检测路径是否为网络挂载(`mount | grep <rntPath>`)
132
+ 2. 若是,提示用户:「rnt 工程在网络挂载盘上,扫描/迁移可能较慢,建议本地拷贝后执行」
133
+ 3. 不强制终止,由用户决定
134
+
135
+ ### 2.7 候选名匹配到多个不同库
136
+
137
+ **场景**:`searchNames` 中的短名匹配到多个不同库的 demo(如 `react-native-svg` 匹配 `react-native-svg-uri`、`react-native-svg-transformer`)。
138
+
139
+ **处理**:
140
+ 1. `find-rnt-demo.sh` 退出码 2(多个命中)
141
+ 2. 列出所有命中路径与对应的库候选名
142
+ 3. 自动选择第一个命中项,在报告中标注全部命中路径
143
+ 4. 用户可通过 `--demo-path` 参数指定其他 demo
144
+
145
+ ### 2.8 demo 入口文件缺失
146
+
147
+ **场景**:demo 目录无 `App.tsx` 或 `index.tsx`。
148
+
149
+ **处理**:
150
+ 1. 检查是否有其他入口文件(`Main.tsx`、`Demo.tsx`、`index.js`)
151
+ 2. 若有,在报告中标注实际入口文件
152
+ 3. 若无任何入口文件,列入「待人工确认」,提示用户检查 demo 完整性
153
+
154
+ ### 2.9 demo 引用 rnt 工程特有的全局变量/组件
155
+
156
+ **场景**:demo 中引用了 rnt 工程全局注入的组件(如 `__rntTesterGlobals`、特殊的 `Navigation`)。
157
+
158
+ **处理**:
159
+ 1. 通过 `analyze-demo-deps.cjs` 的 `libReferences` 分析识别非标准引用
160
+ 2. 列入报告「待人工确认」
161
+ 3. 提示用户:可能需要移除或替换为 example 工程的等价物
162
+
163
+ ### 2.10 大量 demo 文件导致迁移耗时
164
+
165
+ **场景**:demo 文件数 > 100,`rsync` 耗时较长。
166
+
167
+ **处理**:
168
+ 1. 报告文件数与预估耗时
169
+ 2. 正常执行(`rsync` 通常足够快,秒级完成)
170
+ 3. 若超过 30 秒,检查是否有意外的大文件或排除项失效
171
+
172
+ ### 2.11 demo 引用 rnt 特有外部依赖(如 @rnoh/testerino)
173
+
174
+ **场景**:demo 引用了 `@rnoh/testerino` 等 rnt 工程特有的包,但 `example/package.json` 未声明。
175
+
176
+ **影响**:所有使用该依赖的组件(如 `Tester`、`TestCase`、`TestSuite`)运行时崩溃,白屏。
177
+
178
+ **处理**:
179
+ 1. Phase 4.1 检测到缺失依赖后,从 rnt 工程的 `package.json` 中提取版本与引用方式
180
+ 2. 将 rnt 工程中的 tgz 文件复制到 example 目录
181
+ 3. 在报告依赖增量清单中给出建议写入值(如 `"@rnoh/testerino": "file:./rnoh-testerino-0.0.12.tgz"`)
182
+ 4. 由 `rn-lib-add-example` 或 Agent 写入 `example/package.json`
183
+
184
+ ### 2.12 build-profile.json5 模块路径越界
185
+
186
+ **场景**:`build-profile.json5` 中 `modules[].srcPath` 为 `../../harmony/safe_area` 等越界路径。
187
+
188
+ **影响**:hvigor 报错 `Path escapes project root`,编译失败。
189
+
190
+ **处理**:
191
+ 1. Phase 5.1 检测到越界路径
192
+ 2. 物理复制模块目录到 `example/harmony/` 下
193
+ 3. 修改 `srcPath` 为工程内路径(如 `./safe_area`)
194
+ 4. 同步修正被复制模块的 `oh-package.json5` 中的 `.har` 路径
195
+ 5. ⚠️ 符号链接不可行(hvigor 不跟随 symlink)
196
+
197
+ ### 2.13 oh-package.json5 中 .har 路径错误
198
+
199
+ **场景**:模块的 `oh-package.json5` 中 `file:` 引用的 `.har` 路径多/少一层子目录。
200
+
201
+ **影响**:`ohpm install` 静默跳过该依赖,编译时报 `Cannot find module`。
202
+
203
+ **处理**:
204
+ 1. Phase 5.2 逐一验证 `.har` 文件存在性
205
+ 2. 修正 `oh-package.json5` 中的路径,使其指向实际 `.har` 文件位置
206
+
207
+ ### 2.14 迁移的独立 demo 文件未被入口引用
208
+
209
+ **场景**:`demo03.tsx`、`demo05.tsx` 等文件已迁移到 `example/src/`,但未被 `index.tsx` 的 `demos` 数组引用。
210
+
211
+ **影响**:用户无法通过菜单导航访问这些 demo,文件虽存在但运行时不加载。
212
+
213
+ **处理**:
214
+ 1. Phase 6.6 检测孤立文件
215
+ 2. 将组件加入 `demos` 数组,确保用户可导航到
216
+
217
+ ### 2.15 菜单条目过多无法滚动
218
+
219
+ **场景**:`demos` 数组条目 > 5,菜单容器为 `<View>`(不支持滚动)。
220
+
221
+ **影响**:底部 demo 条目不可见、不可点击,用户无法访问。
222
+
223
+ **处理**:
224
+ 1. Phase 6.7 检测条目数与容器类型
225
+ 2. 将 `<View>` 改为 `<ScrollView>`
226
+
227
+ ### 2.16 替换入口丢失原有 App.tsx demo
228
+
229
+ **场景**:`index.js` 从 `./src/App` 改为 `./src/index` 后,原有 `App.tsx` 的 demo 不可访问。
230
+
231
+ **影响**:原有 demo(如 SafeAreaView、Hooks、Listener 等)完全丢失。
232
+
233
+ **处理**:
234
+ 1. Phase 6.8 检查原有 `App.tsx` 是否仍可访问
235
+ 2. 将原有 `App.tsx` 作为菜单项接入 `index.tsx` 的 `demos` 数组
236
+
237
+ ---
238
+
239
+ ## 3. 验证失败处理
240
+
241
+ | 失败项 | 处理 |
242
+ |--------|------|
243
+ | 文件完整性失败 | 重新执行 `port-demo.sh`,检查排除项配置(冲突文件保留目标版本属正常,不计入失败) |
244
+ | 路径错误 | Agent 用 `Edit` 工具逐个修正(仅本次新增文件) |
245
+ | 引用不一致 | 在报告中标注,由 `rn-lib-add-example` 配置 alias 时统一 |
246
+ | 依赖未列出 | 重新运行 `analyze-demo-deps.cjs`,检查 demo 新增的 import |
247
+ | displayName 冲突 | 询问用户保留哪个 |
248
+ | 冲突文件需合并 | 列出 demo 版本与目标版本差异,由用户决策是否手动合并 |
249
+
250
+ ---
251
+
252
+ ## 4. 报告必含字段
253
+
254
+ 迁移报告**必须**包含以下字段,缺失则视为迁移未完成:
255
+
256
+ | 字段 | 说明 |
257
+ |------|------|
258
+ | demo 来源路径 | rnt 工程路径 + demo 子目录 |
259
+ | 命中候选名 | `searchNames` 中实际匹配到的名称 |
260
+ | 迁移文件清单 | 相对路径列表 + 文件总数(区分「本次新增」与「冲突保留」) |
261
+ | 冲突文件清单 | demo 与目标同名文件列表,标注「目标版本已保留,demo 版本未写入」 |
262
+ | 依赖增量清单 | 分类列表(目标库 / RNOH / RN 通用 / 待确认);**标注 example/package.json 中缺失的依赖及建议写入值** |
263
+ | 路径修正记录 | 修正的文件 + 改动内容(仅本次新增文件) |
264
+ | 入口文件信息 | App.tsx / index.tsx 路径 + displayName |
265
+ | **构建前置检查结果** | build-profile 路径越界检查、.har 路径验证、外部依赖缺失清单、入口链路验证结果 |
266
+ | **Demo 可访问性验证** | 孤立文件检测、菜单 ScrollView 适配、原有 App.tsx 保留、入口链路端到端验证 |
267
+ | 待人工确认项 | 业务无关依赖、冲突文件合并、入口文件接入、原生代码、特殊引用 |
268
+ | 验证检查结果 | 1.1-1.6 各项通过/失败状态 |
269
+ | 后续步骤建议 | 引导执行 `rn-lib-add-example` 完成壳层适配;执行 `npm i` → `ohpm install` → `npm run dev` → `devecocli build` 编译验证 |
@@ -0,0 +1,173 @@
1
+ # rnt 工程结构参考
2
+
3
+ > 本文档说明 rnt(React Native Tester)工程的目录布局、demo 子目录约定与扫描规则。
4
+
5
+ ---
6
+
7
+ ## 1. rnt 工程总览
8
+
9
+ rnt 是 RN 鸿蒙化团队的 demo 集合工程,**根目录下并列多个子工程**,每个子工程内含 `rn-tester/examples/` 目录,存放各三方库的 demo。
10
+
11
+ ```
12
+ {rnt-root}/ ← rnt 工程根(用户传入 --rnt-path)
13
+ ├── react_native_openharmony/ ← RNOH 框架本体子工程
14
+ │ └── rn-tester/
15
+ │ └── examples/
16
+ │ ├── react-native-camera-kit/
17
+ │ ├── react-native-svg/
18
+ │ └── ...
19
+ ├── rnoh_testerino/ ← testerino 测试框架子工程
20
+ │ └── rn-tester/
21
+ │ └── examples/
22
+ │ └── ...
23
+ ├── <其他子工程>/
24
+ │ └── rn-tester/
25
+ │ └── examples/
26
+ │ └── <library-demo>/
27
+ └── ...
28
+ ```
29
+
30
+ **关键约定**:
31
+ - demo 目录**总在** `{rnt-root}/*/rn-tester/examples/{库候选名}/` 路径下
32
+ - 不同子工程的 `examples/` 可能收录不同库的 demo
33
+ - 同一库的 demo **通常只在一个子工程下**,但**也可能存在多个**(版本一致时自动选择第一个)
34
+
35
+ ---
36
+
37
+ ## 2. demo 目录典型结构
38
+
39
+ rnt demo 的目录结构有多种变体,`analyze-demo-deps.cjs` 会自动检测入口文件位置。以下是三种常见结构:
40
+
41
+ ### 2.1 结构 A:根级入口(经典结构)
42
+
43
+ ```
44
+ {library-demo}/
45
+ ├── App.tsx # demo 入口组件,含 displayName / title
46
+ ├── index.tsx # 导出 demo,供 testerino 注册
47
+ ├── tests/
48
+ │ └── index.tsx # testerino 测试用例注册表
49
+ ├── camera/ # demo 功能子目录
50
+ │ ├── CameraDemo.tsx
51
+ │ └── CameraControls.tsx
52
+ ├── components/ # demo 复用组件
53
+ │ ├── Navigation.tsx # 通用导航(迁移时保留)
54
+ │ └── Button.tsx
55
+ └── assets/ # 静态资源
56
+ ```
57
+
58
+ ### 2.2 结构 B:testCase 嵌套结构(常见于较新 demo)
59
+
60
+ ```
61
+ {library-demo}/
62
+ ├── testCase/
63
+ │ ├── App.tsx # testerino 入口,导出 displayName / title / examples
64
+ │ ├── Navigation.tsx # 通用导航(含硬编码标题,需修正)
65
+ │ ├── Palette.tsx # 颜色常量
66
+ │ └── Test/
67
+ │ ├── index.tsx # testerino 测试用例注册表
68
+ │ ├── PdfApitest.tsx
69
+ │ └── ...
70
+ ├── demo/
71
+ │ └── PdfExample.tsx # 独立 demo 示例
72
+ └── assets/ # 静态资源
73
+ ```
74
+
75
+ > 结构 B 的入口在 `testCase/App.tsx`,不是根级 `App.tsx`。`index.tsx`(根级)可能是独立的简单示例,需要接入到 `testCase/App.tsx`(Phase 6.4)。
76
+
77
+ ### 2.3 结构 C:混合结构
78
+
79
+ 部分 demo 同时包含根级 `App.tsx` 和 `tests/` 目录,也可能有 `demo/` 子目录存放额外示例。
80
+
81
+ ### 2.4 入口检测规则
82
+
83
+ `analyze-demo-deps.cjs` 按以下规则自动检测入口:
84
+
85
+ | 检测项 | 规则 |
86
+ |--------|------|
87
+ | App 入口 | 递归扫描,取第一个 basename 为 `App.tsx`/`App.ts`/`App.jsx`/`App.js` 的文件 |
88
+ | index 入口 | 递归扫描,取第一个 basename 为 `index.tsx`/`index.ts` 的文件 |
89
+ | displayName | 匹配 `displayName = 'xxx'` 或 `export const displayName = 'xxx'` |
90
+ | title | 匹配 `title = 'xxx'` 或 `title: 'xxx'` 或 `export const title = 'xxx'` |
91
+ | Navigation.tsx | 递归扫描,列出所有 basename 为 `Navigation.tsx` 的文件 |
92
+ | 硬编码标题 | 匹配 `RN <Xxx> (Capi )?Tester` 模式的文本 |
93
+
94
+ ---
95
+
96
+ ## 3. 候选搜索名生成
97
+
98
+ `read-lib-meta.cjs` 从目标库 `package.json` 生成候选名数组 `searchNames`,按以下顺序去重:
99
+
100
+ | 顺序 | 来源 | 示例(react-native-camera-kit) |
101
+ |------|------|-------------------------------|
102
+ | 1 | `harmony.alias` | `react-native-camera-kit` |
103
+ | 2 | `packageName` 去 scope | `react-native-camera-kit`(`@scope/react-native-camera-kit` → `react-native-camera-kit`) |
104
+ | 3 | `dirBase`(目录名) | `react-native-camera-kit` |
105
+ | 4 | `packageName`(完整) | `@scope/react-native-camera-kit` |
106
+
107
+ > scope 去除规则:`packageName.includes('/')` 时取 `split('/').pop()`,否则取原值。
108
+
109
+ ---
110
+
111
+ ## 4. 扫描规则详解
112
+
113
+ `find-rnt-demo.sh` 执行流程:
114
+
115
+ ```
116
+ 1. 调用 read-lib-meta.cjs 获取 searchNames
117
+ 2. 遍历 {rnt-root}/*/rn-tester/examples/
118
+ ├─ 对每个候选名,检查 {examples-root}/{候选名}/ 是否存在
119
+ │ └─ 命中 → 加入 matches
120
+ └─ 大小写不敏感兜底:
121
+ 遍历 {examples-root} 下所有子目录
122
+ 对每个子目录名与候选名做 tr '[:upper:]' '[:lower:]' 比较
123
+ 命中 → 加入 matches
124
+ 3. 去重 matches
125
+ 4. 输出每个 demo 绝对路径一行
126
+ 5. 退出码:
127
+ - 0: 唯一命中
128
+ - 1: 未命中
129
+ - 2: 多个命中(自动选择第一个,用户可通过 --demo-path 指定其他)
130
+ ```
131
+
132
+ ### 4.1 多命中的典型情况
133
+
134
+ - 同一库在不同 rnt 子工程下都有 demo(新旧版本共存)
135
+ - 候选名匹配到多个不同库(如 `react-native-svg` 匹配到 `react-native-svg-uri`)
136
+ - 大小写兜底匹配到名称相近的目录
137
+
138
+ > 多命中时自动选择第一个,在报告中标注全部命中路径。用户可通过 `--demo-path` 参数指定其他。
139
+
140
+ ### 4.2 未命中的排查
141
+
142
+ | 原因 | 排查方法 |
143
+ |------|---------|
144
+ | rnt 工程路径错误 | 检查 `{rnt-root}` 是否存在、是否有 `*/rn-tester/examples/` 子目录 |
145
+ | 库 demo 不在 rnt 中 | 询问用户该库是否有 demo、demo 是否在别处 |
146
+ | 候选名不匹配 | 手动浏览 `{rnt-root}/*/rn-tester/examples/` 目录列表,找名称相近的 |
147
+ | demo 目录名特殊 | 用户提供 `--demo-path` 直接跳过扫描 |
148
+
149
+ ---
150
+
151
+ ## 5. rnt 工程路径示例
152
+
153
+ | 环境 | 典型路径 |
154
+ |------|---------|
155
+ | 本机默认 | `/path/to/rnt`(用户自定义) |
156
+ | 团队共享 | `/workspace/rnt` |
157
+ | 克隆临时 | `/tmp/rnt-clone` |
158
+
159
+ > **路径不写死在脚本中**,由用户通过 `--rnt-path` 传入。脚本仅做存在性校验。
160
+
161
+ ---
162
+
163
+ ## 6. 与 example 工程的差异
164
+
165
+ | 维度 | rnt demo | example/src(迁移后) |
166
+ |------|---------|---------------------|
167
+ | 用途 | 团队共享的 demo 集合 | 单个库的独立测试工程 |
168
+ | 依赖管理 | rnt 工程统一 `package.json` | example 自己的 `package.json` |
169
+ | 目标库引用 | `import { X } from 'react-native-camera-kit'`(npm 包) | 同样用 alias 引用,但通过 `metro.config.js` 映射到 `node_modules/<ohPackageName>` |
170
+ | 入口注册 | testerino 全局注册 | `App.tsx` + `index.tsx` 独立入口 |
171
+ | 原生壳层 | rnt 工程统一提供 | example 自己的 `harmony/` 壳层(由 `rn-lib-add-example` 配置) |
172
+
173
+ > 迁移的本质:从 rnt 的「集合 demo」中取出一个,放到 example 的「独立工程」中,并补齐 example 缺失的壳层与依赖。