@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
package/README.md ADDED
@@ -0,0 +1,425 @@
1
+ # @ohos-cpf/3rdloop
2
+
3
+ 3rdLibraryLoop 三方库自动化检视命令行工具(嵌入式模式)。
4
+
5
+ `3rdloop` CLI 直接复用 3rdLibraryLoop 的**核心引擎**(LoopEngine / Brain / Orchestrator /
6
+ FlexRunner / TestCheck / Knowledge),无需启动 HTTP 服务,即可从终端完整跑一遍
7
+ "任务拆解 → 编排执行 → 准出审核"的大循环。
8
+
9
+ ## 快速开始
10
+
11
+ ```bash
12
+ # 环境自检
13
+ 3rdloop doctor
14
+
15
+ # 提交并阻塞到准出终态(最常用)
16
+ 3rdloop run "为 libcurl 生成鸿蒙 demo 场景并跑通编译"
17
+
18
+ # 提交并立即返回 taskId(进程内继续跑,需保持进程存活)
19
+ 3rdloop submit "分析 sqlite3 的鸿蒙化可行性"
20
+
21
+ # 等待到终态 / 查询进度 / 中止 / 列表 / 结果
22
+ 3rdloop wait <taskId> --timeout 30m
23
+ 3rdloop progress <taskId> --watch
24
+ 3rdloop abort <taskId>
25
+ 3rdloop list --status running
26
+ 3rdloop result <taskId> --json
27
+ ```
28
+
29
+ ## 命令一览
30
+
31
+ | 命令 | 说明 |
32
+ |------|------|
33
+ | `3rdloop run <desc>` | 提交任务并阻塞到准出终态(默认行为) |
34
+ | `3rdloop submit <desc>` | 提交任务,打印 taskId 后进程内继续执行 |
35
+ | `3rdloop wait <taskId> [--timeout 30m]` | 等待任务到终态 |
36
+ | `3rdloop progress <taskId> [--watch]` | 查询进度;`--watch` 持续轮询到终态 |
37
+ | `3rdloop abort <taskId>` | 中止任务 |
38
+ | `3rdloop list [--status st] [--limit N] [--older-than 7d]` | 列出任务 |
39
+ | `3rdloop result <taskId> [--raw]` | 读取最终结果 |
40
+ | `3rdloop step run <desc> [--task-id id] [--step-id N] [--input-report p] [--max-retries N] [--loop N] [--task-dir p] [--specified-skill <SKILL name\|目录名>]` | 单步执行(FlexRunner 直连,不经拆解/编排/审核) |
41
+ | `3rdloop step status <taskId> [--step-id N]` | 查询单步状态/产物/会话 |
42
+ | `3rdloop step result <taskId> [--step-id N]` | 读取该步 result.md 内容 |
43
+ | `3rdloop orch run <task-def.json>` | 加载任务定义 + 启动编排,阻塞到终态 |
44
+ | `3rdloop orch load <task-def.json>` | 仅加载任务定义(落盘 orchestration.json) |
45
+ | `3rdloop orch start <taskId>` | 从磁盘恢复 LOADED 状态并启动编排,阻塞到终态 |
46
+ | `3rdloop orch progress <taskId> [--loop N]` | 查询编排进度 |
47
+ | `3rdloop orch abort|pause|resume <taskId>` | 终止/暂停/恢复编排 |
48
+ | `3rdloop orch tasks` | 列出编排任务 |
49
+ | `3rdloop workflows` | 列出已注册的固定编排工作流 |
50
+ | `3rd3rdloop run <工作流名> [--flag <值> ...]` | 以固定编排执行工作流(阻塞到终态) |
51
+ | `3rdloop run pr-check --pr-url <URL> [--library-type <arkts\|flutter\|rn\|tpccplus>]` | PR 代码检视(等价前端 PR 检视面板,taskId 带 `codecheck_` 前缀) |
52
+ | `3rdloop doctor` | 环境自检(Node/opencode/.env/SKILL/数据目录) |
53
+ | `3rdloop version` | 版本信息 |
54
+
55
+ ## 全局选项
56
+
57
+ | 选项 | 说明 |
58
+ |------|------|
59
+ | `--json` | 结构化输出到 **stdout**(进度/日志走 stderr,脚本可安全解析 stdout) |
60
+ | `-v, --verbose` | 详细模式 |
61
+ | `--quiet` | 仅输出最终结果 |
62
+ | `--data-dir <p>` | 数据目录覆盖(默认 `<项目根同级>/db`,如 `D:\code\3rdLibraryLoop` → `D:\code\db`) |
63
+ | `--project <n>` | 项目名覆盖(默认取 git 仓库根名) |
64
+ | `--skill-dir <p>` | SKILL 目录覆盖 |
65
+ | `-h, --help` | 帮助 |
66
+
67
+ ## 退出码
68
+
69
+ | 码 | 含义 |
70
+ |----|------|
71
+ | 0 | 通过 / 成功 |
72
+ | 1 | 错误(参数 / 环境 / 任务不存在) |
73
+ | 2 | 任务执行失败(终态 `failed` / `error` / 未通过) |
74
+ | 3 | `wait` 超时 |
75
+ | 130 | Ctrl+C(SIGINT) |
76
+ | 143 | SIGTERM |
77
+
78
+ ## 单步执行(FlexRunner)
79
+
80
+ `3rdloop step` 直接复用通用单步执行器 **FlexRunner**(不经 Brain 拆解 / Orchestrator
81
+ 编排 / TestCheck 审核),适合"只跑一个步骤"的精确控制场景:
82
+
83
+ ```bash
84
+ # 阻塞执行单个步骤(成功退出码 0,失败 2)
85
+ 3rdloop step run "为 libcurl 的 HTTP 请求生成 ArkTS demo" \
86
+ --task-id step_demo_001 --step-id 1 --max-retries 2
87
+
88
+ # 带输入报告 / 指定产物目录 / 指定大循环轮次
89
+ 3rdloop step run "根据检视报告修复 XTS 用例" \
90
+ --task-id step_fix_001 --input-report output/report.md --loop 1
91
+
92
+ # 固定执行某个 SKILL(跳过 SkillSelector 匹配,直接使用该 SKILL)
93
+ 3rdloop step run "为 FastBle 生成 XTS 代码" \
94
+ --task-id step_skill_001 --specified-skill arkts-library-xts-code
95
+
96
+ # 查询步骤状态或读取最终产物
97
+ 3rdloop step status step_demo_001
98
+ 3rdloop step result step_demo_001 --json
99
+ ```
100
+
101
+ ### 参数
102
+
103
+ | 参数 | 说明 |
104
+ |------|------|
105
+ | `--task-id <id>` | 任务 ID(**必填**,step 命令不自动生成) |
106
+ | `--step-id <N>` | 步骤编号(默认 `1`) |
107
+ | `--input-report <p>` | 输入报告/上下文文件路径(可选) |
108
+ | `--max-retries <N>` | 最多重试次数(默认 `3`) |
109
+ | `--loop <N>` | 大循环轮次编号(默认 `0`) |
110
+ | `--task-dir <p>` | 产物目录(默认 `<data-dir>/task/<taskId>`) |
111
+ | `--specified-skill <name>` | 固定执行的 SKILL name 或目录名(在 skill 目录内解析);传入后跳过 SkillSelector 匹配直接执行该 SKILL |
112
+
113
+ ### 行为与差异
114
+
115
+ - **产物**:写入 taskDir 下 `stepId{n}_loop{L}_result_{R}.md`
116
+ (`R` 为第几次重试),并同时生成
117
+ `stepId{n}_loop{L}_Summary_{R}.md` 经验总结与步骤记录
118
+ `stepid_{stepId}_loop{L}.json`。
119
+ - **loop.json**:写精简状态(`isSingleExecution: true`),因此
120
+ `3rdloop list` / `3rdloop progress <taskId>` / `3rdloop result <taskId>` 都能看到该任务。
121
+ - **与 `3rdloop run` 的差异**:`run` 走完整大循环(拆解→编排→审核→可重规划,
122
+ 自动生成 taskId);`step` 只执行一步,适合把已拆好的任务按步骤手动串联。
123
+ - **中断**:Ctrl+C 会对 FlexRunner 调用 `controlExecution('abort')` 终止当前步骤
124
+ 并清理 opencode 子进程,退出码 130。
125
+ - **多次执行同一 taskId**:不会归档旧任务(与 `run` 的自动归档不同),
126
+ 每次 `step run` 在相同 loop 编号下会覆盖同名产物,建议不同尝试用不同 `--loop`。
127
+
128
+ ## 编排执行(Orchestrator)
129
+
130
+ `3rdloop orch` 对应 HTTP 层 `POST /api/orchestrator/load` 与 `/api/orchestrator/start`
131
+ 接口,直接复用 **Orchestrator** 核心类做多步骤依赖编排(不经 Brain 拆解 /
132
+ TestCheck 审核)。适合已经把任务拆成步骤、且步骤之间存在 `nextStepId` /
133
+ `failStepId` / `dependId` 依赖关系的场景。
134
+
135
+ ```bash
136
+ # ① 加载任务定义 + 启动编排并阻塞到终态(推荐入口)
137
+ 3rdloop orch run task-def-demo.json
138
+
139
+ # ② 仅加载任务定义(落盘 orchestration.json,进程退出后仍可 start)
140
+ 3rdloop orch load task-def-demo.json
141
+
142
+ # ③ 从磁盘恢复 LOADED 状态并启动(跨进程)
143
+ 3rdloop orch start task_xxx
144
+
145
+ # ④ 查询 / 控制 / 列表
146
+ 3rdloop orch progress task_xxx --loop 0
147
+ 3rdloop orch abort task_xxx
148
+ 3rdloop orch pause task_xxx # 恢复:3rdloop orch resume task_xxx
149
+ 3rdloop orch tasks
150
+ ```
151
+
152
+ ### 任务定义 JSON(task-def.json)
153
+
154
+ 格式与 `Orchestrator.loadTask` 对齐:
155
+
156
+ ```json
157
+ {
158
+ "taskId": "task_xxx",
159
+ "taskDir": "",
160
+ "skillDirectory": "",
161
+ "loopCount": 0,
162
+ "steps": [
163
+ { "stepId": 1, "taskDescription": "分析三方库接口", "dependId": 0, "nextStepId": 2, "failStepId": 0, "maxRetries": 3 },
164
+ { "stepId": 2, "taskDescription": "生成 demo 场景", "dependId": 1, "nextStepId": 0, "failStepId": 1, "maxRetries": 3 }
165
+ ]
166
+ }
167
+ ```
168
+
169
+ 字段说明:
170
+
171
+ | 字段 | 说明 |
172
+ |------|------|
173
+ | `taskId` | 任务 ID(必填) |
174
+ | `taskDir` | 产物目录(可选,默认 `<data-dir>/task/<taskId>`) |
175
+ | `skillDirectory` | SKILL 目录(可选,默认 CLI 解析的 skill-dir) |
176
+ | `loopCount` | 大循环轮次(默认 `0`,用于区分各轮产物文件) |
177
+ | `steps[].stepId` | 步骤唯一 ID(必填) |
178
+ | `steps[].taskDescription` | 步骤任务描述(必填) |
179
+ | `steps[].dependId` | 前置依赖(`0`=入口;支持数组做 fan-in 聚合) |
180
+ | `steps[].nextStepId` | 成功后下一步(`0`=结束) |
181
+ | `steps[].failStepId` | 失败后修复步骤(`0`=失败即终止) |
182
+ | `steps[].maxRetries` | 最大重试次数(默认 `3`) |
183
+ | `steps[].specifiedSkill` | 固定执行的 SKILL name 或目录名(可选,在 `skillDirectory` 内解析);传入后该步骤跳过 SkillSelector 匹配直接执行该 SKILL |
184
+
185
+ ### 语义与限制
186
+
187
+ - **load 可跨进程**:`3rdloop orch load` 会立即落盘 `orchestration.json`
188
+ (状态 `loaded`),之后任何终端/进程都能 `3rdloop orch start <taskId>` 恢复并启动。
189
+ - **start 仅接受 LOADED**:任务处于 `completed`/`failed`/`running` 等状态时
190
+ 拒绝启动(与 HTTP `controller.start` 校验一致)。
191
+ - **progress 读磁盘**:`3rdloop orch progress` 直接读 `orchestration.json` /
192
+ `orchestration_loop{N}.json`,不依赖内存实例,历史轮次可用 `--loop N`。
193
+ - **loop.json**:编排结束后写精简状态(`isOrchestration: true`),因此
194
+ `3rdloop list` / `3rdloop result` 也能看到编排任务。
195
+ - **中断**:Ctrl+C 会对 Orchestrator 调用 `abort()` 并清理 opencode 子进程,
196
+ 退出码 130。
197
+ - **跨进程控制限制**:`abort`/`pause`/`resume` 优先作用于**当前进程内**正在
198
+ 运行的编排实例;无法中断另一进程的运行中任务(v1 与 `3rdloop run` 语义一致)。
199
+
200
+ ## 工作流机制(固定编排)
201
+
202
+ 工作流是将"固定步骤编排"封装为带参数的 CLI 命令入口:`3rd3rdloop run <工作流名>` 会在运行时
203
+ 把参数构造为具参 taskDef,并复用 `3rdloop orch` 链路(`orchLoad` + `orchStart`)阻塞执行到终态。
204
+ 适合把一组固定的 SKILL 串联(如 `pr push`、`code check` 等)沉淀为可复用命令。
205
+
206
+ ### 使用
207
+
208
+ ```bash
209
+ # 查看已注册工作流
210
+ 3rdloop workflows
211
+
212
+ # 查看某个工作流的参数说明
213
+ 3rd3rdloop run <工作流名> --help
214
+
215
+ # 正式执行(阻塞到终态;退出码 0=通过 / 2=任务失败)
216
+ 3rd3rdloop run <工作流名> --flag1 <值> --flag2 <值>
217
+
218
+ # dry-run:只构造并打印/落盘 taskDef,不触碰引擎(调试新工作流用)
219
+ 3rd3rdloop run <工作流名> --flag1 <值> --print-taskdef
220
+ ```
221
+
222
+ - `3rdloop run submit` 同样支持工作流名(命中时走工作流,未命中保持原任务描述语义)
223
+ - 产物落默认 `<数据目录>/task/{taskId}/`;`--print-taskdef` 会额外写
224
+ `task-def.dry.json` 供人工核对
225
+ - 退出码:`0` 通过 / `1` 参数或环境错误 / `2` 任务执行失败 / `130` Ctrl+C / `143` SIGTERM
226
+
227
+ ### 已注册工作流
228
+
229
+ - **`pr-check` —— PR 代码检视**(等价封装前端 `Web/public/js/codecheck.js` 的 PR 检视面板):
230
+
231
+ ```bash
232
+ # 按库类型检视 PR(arkts 为默认,不传 --library-type 即可)
233
+ 3rdloop run pr-check --pr-url https://gitcode.com/owner/repo/pulls/123 --library-type rn
234
+
235
+ # dry-run:核对构造出的 taskDef 与前端是否等价(不触碰引擎)
236
+ 3rdloop run pr-check --pr-url https://gitcode.com/owner/repo/pulls/123 --print-taskdef
237
+ ```
238
+
239
+ 与前端协同的两个约定:
240
+
241
+ - **taskId 前缀 `codecheck_`**:格式 `codecheck_{owner}_{repo}_{prNum}_{ts36}`,与前端
242
+ `codecheck.js` 一致。前端 PR 检视历史页按 `taskIdPrefix=codecheck_` 过滤,故 CLI 提交的
243
+ 检视任务在前端历史页同样可见。
244
+ - **SKILL 映射**:`arkts→arkts-code-check`(默认) / `flutter→flutter-code-check` /
245
+ `rn→rn-code-check` / `tpccplus→tpc-cpp-check`,与前端 `_CC_SKILL_MAP` 同构;单步骤
246
+ `specifiedSkill` 固定绑定,`maxRetries: 3`,`title` 格式 `PR检视|{libraryType}|{prUrl}`
247
+ (供前端历史恢复解析)。
248
+ - **参数校验**:`--pr-url` 必填;`--library-type` 非法值(非上述四种)在 dry-run 阶段即报错退出。
249
+
250
+ ### 如何新增一个工作流
251
+
252
+ 在 `cli/workflows/` 目录下新增一个 `.js`/`.mjs` 文件,默认导出一个工作流声明对象 **即可自动注册**,
253
+ 无需改动任何分发代码:
254
+
255
+ ```js
256
+ export default {
257
+ name: 'demo prep', // 工作流名,支持多词(空格分隔,分发时最长匹配)
258
+ description: '示例:构造一个占位固定编排(仅演示注册约定)',
259
+ params: [ // CLI flags schema(驱动参数校验 / --help)
260
+ { flag: 'workspace-dir', required: true, describe: '本地工作区 git 仓库根目录' },
261
+ { flag: 'report-name', required: false, describe: '输出报告名(默认 check-report.md)' },
262
+ ],
263
+ // params: { 'workspace-dir': <值>, ... } → 返回与 Orchestrator.loadTask 对齐的 taskDef
264
+ buildTaskDef(params) {
265
+ return {
266
+ taskId: '', // 缺省时 CLI 自动生成(generateTaskId())
267
+ title: 'Demo 固定编排',
268
+ skillDirectory: '',
269
+ loopCount: 0,
270
+ steps: [{
271
+ stepId: 1,
272
+ taskDescription: `分析工作区修改并输出 ${params['report-name'] || 'check-report.md'} 报告`,
273
+ dependId: 0, nextStepId: 0, failStepId: 0, maxRetries: 3,
274
+ inputReport: '',
275
+ }],
276
+ };
277
+ },
278
+ };
279
+ ```
280
+
281
+ 约定与细节:
282
+
283
+ - **自动注册**:`cli/lib/workflows.js` 启动时扫描 `cli/workflows/*.mjs|*.js`,每文件默认导出一个工作流。
284
+ 加载失败 / name 缺失 / 重名的工作流会被跳过并输出警告(不阻断其余工作流)。
285
+ - **多词名最长匹配**:`3rdloop run pr push ...` 会先试完整 `pr push`,未注册再退 `pr`。
286
+ - **steps 格式**:与 `3rdloop orch run <task-def.json>` 的 [taskDef 格式](#编排执行orchestrator) 完全一致
287
+ (stepId / taskDescription / dependId / nextStepId / failStepId / maxRetries / specifiedSkill / inputReport)。
288
+ - **specifiedSkill 建议**:与核心引擎约定一致——步骤职责能匹配某可用 SKILL 时,把它写入
289
+ `specifiedSkill`(值为 SKILL name 或目录名),执行层将跳过 SkillSelector 自动匹配。
290
+ - **只读环境注入**:`buildTaskDef(params, { dataDir })` 第二参携带运行时环境(数据目录等),
291
+ 需要落盘相对路径时使用。
292
+
293
+ ### 职责边界
294
+
295
+ - 工作流注册表只负责"参数 → taskDef"。**业务工作流(如 `pr push`)与所需 SKILL 由其他项目
296
+ 开发者按上述约定注册与维护**,CLI 核心不预置任何业务工作流。
297
+ - 新增业务 SKILL 请放在 `Server/Skills/` 下(沿用既有 SKILL 约定),工作流文件中以
298
+ `specifiedSkill` 引用即可。
299
+
300
+ ## 环境约定
301
+
302
+ - **`.env`** 加载链:系统环境变量 > `~/.3lib/.env`(用户级) > 项目根 `Server/.env`。
303
+ - **数据目录**:`<项目根同级>/db`(如 `D:\code\3rdLibraryLoop` → `D:\code\db`),与核心引擎默认 workspace 级数据库一致;任务写入 `<数据目录>/task/{taskId}/`。
304
+ - **opencode**:`3rdloop` 会自动拉起 `opencode serve`(需在项目**上一级**目录运行),
305
+ 退出时负责清理进程树。若已存在运行中的 opencode 服务则直接复用。
306
+
307
+ ## 环境变量
308
+
309
+ CLI 自身配置(`3LIB_*` 前缀):
310
+
311
+ | 变量 | 作用 | 默认值 |
312
+ |------|------|--------|
313
+ | `3LIB_DATA_DIR` | 数据目录覆盖(等效 `--data-dir`) | `<项目根同级>/db` |
314
+ | `3LIB_ROOT` | 项目根覆盖(须为系统环境变量,`.env` 文件不生效) | 自动探测 |
315
+ | `3LIB_HOME` | 用户 3lib 主目录(含日志 `logs/`,须为系统环境变量) | `~/.3lib` |
316
+ | `3LIB_SKILL_DIR` | SKILL 目录覆盖(等效 `--skill-dir`) | `vendor/Server/Skills` |
317
+ | `3LIB_TASK_PREFIX` | taskId 前缀(审计用) | 空 |
318
+
319
+ Windows 设置方式:
320
+
321
+ ```powershell
322
+ # 当前终端临时生效
323
+ $env:3LIB_DATA_DIR = "D:\code\tmp\db"
324
+ # 用户级永久生效(需重开终端)
325
+ setx 3LIB_DATA_DIR "D:\code\tmp\db"
326
+ # 或写入 C:\Users\<用户>\.3lib\.env
327
+ ```
328
+
329
+ > **注意**:提交用的 `--data-dir` / `3LIB_DATA_DIR` 必须与 `wait`/`progress`/`list`/`result` 一致,
330
+ > 否则会出现"任务不存在"。跨终端统一最简单的方式是 `setx 3LIB_DATA_DIR` 一人设全局。
331
+
332
+ LLM 凭据变量(`DASHSCOPE_API_KEY` / `LLM_MODEL` 等):按 `.env` 加载链任选一层配置即可。
333
+
334
+ ## 场景一:新用户接入
335
+
336
+ ### 前置条件
337
+
338
+ - Node.js >= 22
339
+ - opencode CLI(`opencode serve` 可运行)
340
+ - LLM 凭据(一个 `.env` 即可)
341
+
342
+ ### 接入步骤
343
+
344
+ ```bash
345
+ # ① 安装 CLI(正式发布后)
346
+ npm i -g @ohos-cpf/3rdloop
347
+
348
+ # 开发期替代:与后端共用仓库时用 npm link(直引 Server/ 源码,无需生成 vendor)
349
+ cd cli && npm install && npm link
350
+
351
+ # ② 环境自检,缺什么看什么
352
+ 3rdloop doctor
353
+
354
+ # ③ 配置 LLM 凭据(三选一)
355
+ # A. 项目级:在仓库 Server/.env 填 key(推荐,跟仓库走)
356
+ # B. 用户级:C:\Users\<用户>\.3lib\.env
357
+ # C. 系统环境变量:setx DASHSCOPE_API_KEY "sk-xxx"
358
+
359
+ # ④ 跑一个最小任务验证
360
+ 3rdloop run "冒烟:分析一个三方库的鸿蒙化可行性" --max-loops 1
361
+ ```
362
+
363
+ 数据目录默认在仓库根同级 `<项目根同级>/db`(与核心引擎默认一致,团队同机共享任务数据);如需每用户隔离,用 `--data-dir` 或 `3LIB_DATA_DIR` 覆盖。
364
+
365
+ ## 场景二:后端更新与软链
366
+
367
+ ### 开发期(仓库内共享):零副本,直引源码
368
+
369
+ CLI 在**开发期不生成 `cli/vendor/`**,直接引用仓库 `Server/` 源码:
370
+ - 引擎模块回退:`cli/vendor/Server` 不存在时,加载 `../Server`(`runner.js: resolveVendorServer`)。
371
+ - SKILL 目录回退:`vendor/Server/Skills` 不存在时,用仓库 `Server/Skills`(`config.js: resolveSkillDir`)。
372
+
373
+ 后端代码改完立即可用,无需任何复制步骤:
374
+
375
+ ```bash
376
+ cd cli
377
+
378
+ # ① npm link 后全局 3rdloop 与本地一致(直引 Server/ 源码)
379
+ npm link
380
+
381
+ # ② 校验 Server/ 源码引入的外部依赖都在 package.json 声明
382
+ # 后端新增第三方库时会在这一步暴露,然后 npm install <新依赖> 补上
383
+ npm run verify-deps
384
+
385
+ # ③ 回归冒烟
386
+ npm test
387
+
388
+ # ④ 确认当前用的引擎来源(vendor 缺失时显示源码回退)
389
+ 3rdloop doctor
390
+ ```
391
+
392
+ ### 发布期(打包给他人):临时生成 vendor + 自动清理
393
+
394
+ 发布 tarball 必须自包含引擎(npm `files` 只能打包包内文件),所以发布时才把
395
+ `Server/` 快照复制进 `cli/vendor/`,打包完成后自动删除本地副本:
396
+
397
+ ```bash
398
+ cd cli
399
+ npm version patch # 0.1.0 → 0.1.1
400
+ npm publish # prepack 自动复制 vendor → 打包 → postpack 自动清理
401
+ ```
402
+
403
+ `npm pack` / `npm publish` 的全自动流程:
404
+
405
+ | 阶段 | 钩子 | 动作 |
406
+ |------|------|------|
407
+ | 打包前 | `prepack` | 复制 `Server/` → `cli/vendor/Server/`,写 VERSION,扫描敏感文件 |
408
+ | 打包中 | — | tarball 包含完整 vendor(自包含引擎) |
409
+ | 打包后 | `postpack` | 删除本地 `cli/vendor/`,工作区回归仅一份源码 |
410
+
411
+ > **不要**手工改动 `cli/vendor/Server/` —— 它是发布期临时生成物,不入库
412
+ > (`.gitignore` 已忽略),下次 `npm pack/publish` 会重新生成并自动清理。
413
+ > `npm run verify-deps` 同样双模式:有 vendor 扫 vendor,否则回退扫 `Server/` 源码。
414
+
415
+ ## 开发者
416
+
417
+ ```bash
418
+ cd cli
419
+ npm install
420
+ npm link # 直引仓库 Server/ 源码,无需 prepack
421
+ node bin/3rdloop.mjs doctor
422
+ ```
423
+
424
+ 发布前检查:`npm run verify-deps`(有 vendor 扫 vendor,否则回退扫 `Server/` 源码)
425
+ 校验引擎代码的依赖声明完整性。
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * 3rdloop.mjs —— 3rdLibraryLoop CLI 入口
4
+ *
5
+ * 职责:
6
+ * - 解析 argv(自研轻量解析,无第三方依赖)
7
+ * - 命令分发到 lib/ 下各子命令实现
8
+ *
9
+ * 命令总览(v1):
10
+ * 3rdloop run [taskDescription] 提交并阻塞到终态(submit + wait 组合)
11
+ * 3rdloop submit [taskDescription] 提交任务,返回 taskId 后立即退出
12
+ * 3rdloop wait <taskId> 等待任务到终态(可 --timeout)
13
+ * 3rdloop progress <taskId> 查询进度(--json 输出结构化状态)
14
+ * 3rdloop abort <taskId> 中止任务
15
+ * 3rdloop list 列出任务(--status / --limit / --older-than)
16
+ * 3rdloop result <taskId> 读取最终结果(--json / --raw)
17
+ * 3rdloop doctor 环境自检
18
+ * 3rdloop version 版本信息
19
+ *
20
+ * 全局选项:
21
+ * --json 数据走 stdout(结构化),进度/日志走 stderr
22
+ * -v/--verbose 详细模式
23
+ * --quiet 仅输出最终结果
24
+ * --data-dir 数据目录覆盖
25
+ * --project 项目名覆盖(默认 git 仓库根名)
26
+ * --skill-dir SKILL 目录覆盖
27
+ * --help/-h 帮助
28
+ *
29
+ * 退出码:
30
+ * 0 通过 / 成功
31
+ * 1 错误(参数错误 / 环境不满足 / 任务不存在)
32
+ * 2 任务执行失败(终态为 failed/error)
33
+ * 3 wait 超时
34
+ * 130 用户按 Ctrl+C(SIGINT)
35
+ * 143 SIGTERM
36
+ */
37
+
38
+ import { runCli } from '../lib/cli.js';
39
+
40
+ // 顶层 try:任何未捕获异常统一转换退出码 1,避免 Node 打印堆栈噪声
41
+ try {
42
+ const exitCode = await runCli(process.argv.slice(2));
43
+ process.exit(exitCode ?? 0);
44
+ } catch (err) {
45
+ const message = err && err.message ? err.message : String(err);
46
+ process.stderr.write(`\n[3rdloop] 致命错误: ${message}\n`);
47
+ process.exit(1);
48
+ }