@dommaker/harness 0.9.0 → 0.11.0

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 (403) hide show
  1. package/README.md +26 -14
  2. package/bin/harness.js +112 -0
  3. package/dist/architecture/constraint-engine.d.ts +18 -0
  4. package/dist/architecture/constraint-engine.d.ts.map +1 -1
  5. package/dist/architecture/constraint-engine.js +101 -9
  6. package/dist/architecture/constraint-engine.js.map +1 -1
  7. package/dist/architecture/cross-project-checker.d.ts +1 -1
  8. package/dist/architecture/cross-project-checker.d.ts.map +1 -1
  9. package/dist/architecture/cross-project-checker.js +247 -33
  10. package/dist/architecture/cross-project-checker.js.map +1 -1
  11. package/dist/cli/commands/check.d.ts.map +1 -1
  12. package/dist/cli/commands/check.js +182 -71
  13. package/dist/cli/commands/check.js.map +1 -1
  14. package/dist/cli/commands/diagnose.d.ts +16 -0
  15. package/dist/cli/commands/diagnose.d.ts.map +1 -0
  16. package/dist/cli/commands/diagnose.js +195 -0
  17. package/dist/cli/commands/diagnose.js.map +1 -0
  18. package/dist/cli/commands/failure.d.ts +28 -0
  19. package/dist/cli/commands/failure.d.ts.map +1 -0
  20. package/dist/cli/commands/failure.js +132 -0
  21. package/dist/cli/commands/failure.js.map +1 -0
  22. package/dist/cli/commands/flow.d.ts +2 -0
  23. package/dist/cli/commands/flow.d.ts.map +1 -1
  24. package/dist/cli/commands/flow.js +38 -3
  25. package/dist/cli/commands/flow.js.map +1 -1
  26. package/dist/cli/commands/index.d.ts +3 -0
  27. package/dist/cli/commands/index.d.ts.map +1 -1
  28. package/dist/cli/commands/index.js +13 -1
  29. package/dist/cli/commands/index.js.map +1 -1
  30. package/dist/cli/commands/init.d.ts +2 -0
  31. package/dist/cli/commands/init.d.ts.map +1 -1
  32. package/dist/cli/commands/init.js +251 -1
  33. package/dist/cli/commands/init.js.map +1 -1
  34. package/dist/cli/commands/knowledge.d.ts +41 -0
  35. package/dist/cli/commands/knowledge.d.ts.map +1 -0
  36. package/dist/cli/commands/knowledge.js +195 -0
  37. package/dist/cli/commands/knowledge.js.map +1 -0
  38. package/dist/cli/commands/propose.d.ts +18 -0
  39. package/dist/cli/commands/propose.d.ts.map +1 -0
  40. package/dist/cli/commands/propose.js +331 -0
  41. package/dist/cli/commands/propose.js.map +1 -0
  42. package/dist/cli/commands/report.d.ts +1 -1
  43. package/dist/cli/commands/report.d.ts.map +1 -1
  44. package/dist/cli/commands/report.js +57 -70
  45. package/dist/cli/commands/report.js.map +1 -1
  46. package/dist/cli/commands/security.d.ts.map +1 -1
  47. package/dist/cli/commands/security.js +57 -43
  48. package/dist/cli/commands/security.js.map +1 -1
  49. package/dist/cli/commands/sync-docs.d.ts +21 -0
  50. package/dist/cli/commands/sync-docs.d.ts.map +1 -0
  51. package/dist/cli/commands/sync-docs.js +564 -0
  52. package/dist/cli/commands/sync-docs.js.map +1 -0
  53. package/dist/cli/commands/traces.d.ts +15 -0
  54. package/dist/cli/commands/traces.d.ts.map +1 -0
  55. package/dist/cli/commands/traces.js +167 -0
  56. package/dist/cli/commands/traces.js.map +1 -0
  57. package/dist/constraints/index.d.ts +1 -2
  58. package/dist/constraints/index.d.ts.map +1 -1
  59. package/dist/constraints/index.js +1 -2
  60. package/dist/constraints/index.js.map +1 -1
  61. package/dist/constraints/lifecycle-runner.d.ts +52 -0
  62. package/dist/constraints/lifecycle-runner.d.ts.map +1 -0
  63. package/dist/constraints/lifecycle-runner.js +151 -0
  64. package/dist/constraints/lifecycle-runner.js.map +1 -0
  65. package/dist/constraints/registry.d.ts +2 -40
  66. package/dist/constraints/registry.d.ts.map +1 -1
  67. package/dist/constraints/registry.js +20 -59
  68. package/dist/constraints/registry.js.map +1 -1
  69. package/dist/core/constraints/checker.d.ts +32 -0
  70. package/dist/core/constraints/checker.d.ts.map +1 -1
  71. package/dist/core/constraints/checker.js +281 -8
  72. package/dist/core/constraints/checker.js.map +1 -1
  73. package/dist/core/constraints/default-executors.d.ts +10 -0
  74. package/dist/core/constraints/default-executors.d.ts.map +1 -0
  75. package/dist/core/constraints/default-executors.js +120 -0
  76. package/dist/core/constraints/default-executors.js.map +1 -0
  77. package/dist/core/constraints/definitions.d.ts.map +1 -1
  78. package/dist/core/constraints/definitions.js +84 -0
  79. package/dist/core/constraints/definitions.js.map +1 -1
  80. package/dist/core/constraints/interceptor.d.ts.map +1 -1
  81. package/dist/core/constraints/interceptor.js +3 -0
  82. package/dist/core/constraints/interceptor.js.map +1 -1
  83. package/dist/core/session/clean-state.d.ts.map +1 -1
  84. package/dist/core/session/clean-state.js +5 -1
  85. package/dist/core/session/clean-state.js.map +1 -1
  86. package/dist/evolution/auto-evolve.d.ts +36 -0
  87. package/dist/evolution/auto-evolve.d.ts.map +1 -0
  88. package/dist/evolution/auto-evolve.js +63 -0
  89. package/dist/evolution/auto-evolve.js.map +1 -0
  90. package/dist/evolution/index.d.ts +2 -0
  91. package/dist/evolution/index.d.ts.map +1 -0
  92. package/dist/evolution/index.js +18 -0
  93. package/dist/evolution/index.js.map +1 -0
  94. package/dist/extensions/long-running/constraints.d.ts +38 -0
  95. package/dist/extensions/long-running/constraints.d.ts.map +1 -0
  96. package/dist/extensions/long-running/constraints.js +153 -0
  97. package/dist/extensions/long-running/constraints.js.map +1 -0
  98. package/dist/extensions/long-running/index.d.ts +30 -0
  99. package/dist/extensions/long-running/index.d.ts.map +1 -0
  100. package/dist/extensions/long-running/index.js +50 -0
  101. package/dist/extensions/long-running/index.js.map +1 -0
  102. package/dist/extensions/long-running/types.d.ts +154 -0
  103. package/dist/extensions/long-running/types.d.ts.map +1 -0
  104. package/dist/extensions/long-running/types.js +9 -0
  105. package/dist/extensions/long-running/types.js.map +1 -0
  106. package/dist/governance/executor.d.ts +45 -0
  107. package/dist/governance/executor.d.ts.map +1 -0
  108. package/dist/governance/executor.js +237 -0
  109. package/dist/governance/executor.js.map +1 -0
  110. package/dist/governance/index.d.ts +9 -0
  111. package/dist/governance/index.d.ts.map +1 -0
  112. package/dist/governance/index.js +13 -0
  113. package/dist/governance/index.js.map +1 -0
  114. package/dist/governance/types.d.ts +46 -0
  115. package/dist/governance/types.d.ts.map +1 -0
  116. package/dist/governance/types.js +9 -0
  117. package/dist/governance/types.js.map +1 -0
  118. package/dist/index.d.ts +26 -6
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.js +40 -13
  121. package/dist/index.js.map +1 -1
  122. package/dist/knowledge/store.d.ts.map +1 -1
  123. package/dist/knowledge/store.js +3 -1
  124. package/dist/knowledge/store.js.map +1 -1
  125. package/dist/monitoring/constraint-doctor.d.ts +16 -3
  126. package/dist/monitoring/constraint-doctor.d.ts.map +1 -1
  127. package/dist/monitoring/constraint-doctor.js +84 -9
  128. package/dist/monitoring/constraint-doctor.js.map +1 -1
  129. package/dist/presets/long-running.d.ts +33 -0
  130. package/dist/presets/long-running.d.ts.map +1 -0
  131. package/dist/presets/long-running.js +52 -0
  132. package/dist/presets/long-running.js.map +1 -0
  133. package/dist/tools/definitions/core/code/fingerprint.sh +273 -0
  134. package/dist/tools/definitions/core/code/fingerprint.yml +72 -0
  135. package/dist/tools/definitions/core/code/parse.yml +68 -0
  136. package/dist/tools/definitions/core/code/register-language.sh +475 -0
  137. package/dist/tools/definitions/core/code/register-language.yml +74 -0
  138. package/dist/tools/definitions/core/docker/build.yml +73 -0
  139. package/dist/tools/definitions/core/docker/run.yml +81 -0
  140. package/dist/tools/definitions/core/file/copy.yml +88 -0
  141. package/dist/tools/definitions/core/file/read.yml +69 -0
  142. package/dist/tools/definitions/core/file/write.yml +75 -0
  143. package/dist/tools/definitions/core/git/branch.yml +61 -0
  144. package/dist/tools/definitions/core/git/cleanup-worktree.yml +50 -0
  145. package/dist/tools/definitions/core/git/clone.yml +69 -0
  146. package/dist/tools/definitions/core/git/commit.yml +65 -0
  147. package/dist/tools/definitions/core/git/push.yml +79 -0
  148. package/dist/tools/definitions/core/git/worktree.yml +96 -0
  149. package/dist/tools/definitions/core/notification/notify.sh +152 -0
  150. package/dist/tools/definitions/core/notification/notify.yml +60 -0
  151. package/dist/tools/definitions/core/npm/build.yml +75 -0
  152. package/dist/tools/definitions/core/npm/install.yml +58 -0
  153. package/dist/tools/definitions/core/npm/test.yml +75 -0
  154. package/dist/tools/definitions/core/validation/check-reuse.yml +170 -0
  155. package/dist/tools/definitions/core/validation/validate-handlers.yml +118 -0
  156. package/dist/tools/definitions/core/validation/validate-readme-stats.yml +155 -0
  157. package/dist/tools/definitions/core/validation/validate-yaml-syntax.yml +134 -0
  158. package/dist/tools/definitions/definitions/core/code/fingerprint.sh +273 -0
  159. package/dist/tools/definitions/definitions/core/code/fingerprint.yml +72 -0
  160. package/dist/tools/definitions/definitions/core/code/parse.yml +68 -0
  161. package/dist/tools/definitions/definitions/core/code/register-language.sh +475 -0
  162. package/dist/tools/definitions/definitions/core/code/register-language.yml +74 -0
  163. package/dist/tools/definitions/definitions/core/docker/build.yml +73 -0
  164. package/dist/tools/definitions/definitions/core/docker/run.yml +81 -0
  165. package/dist/tools/definitions/definitions/core/file/copy.yml +88 -0
  166. package/dist/tools/definitions/definitions/core/file/read.yml +69 -0
  167. package/dist/tools/definitions/definitions/core/file/write.yml +75 -0
  168. package/dist/tools/definitions/definitions/core/git/branch.yml +61 -0
  169. package/dist/tools/definitions/definitions/core/git/cleanup-worktree.yml +50 -0
  170. package/dist/tools/definitions/definitions/core/git/clone.yml +69 -0
  171. package/dist/tools/definitions/definitions/core/git/commit.yml +65 -0
  172. package/dist/tools/definitions/definitions/core/git/push.yml +79 -0
  173. package/dist/tools/definitions/definitions/core/git/worktree.yml +96 -0
  174. package/dist/tools/definitions/definitions/core/notification/notify.sh +152 -0
  175. package/dist/tools/definitions/definitions/core/notification/notify.yml +60 -0
  176. package/dist/tools/definitions/definitions/core/npm/build.yml +75 -0
  177. package/dist/tools/definitions/definitions/core/npm/install.yml +58 -0
  178. package/dist/tools/definitions/definitions/core/npm/test.yml +75 -0
  179. package/dist/tools/definitions/definitions/core/validation/check-reuse.yml +170 -0
  180. package/dist/tools/definitions/definitions/core/validation/validate-handlers.yml +118 -0
  181. package/dist/tools/definitions/definitions/core/validation/validate-readme-stats.yml +155 -0
  182. package/dist/tools/definitions/definitions/core/validation/validate-yaml-syntax.yml +134 -0
  183. package/dist/tools/definitions/definitions/ext/browser/browser-automate.sh +255 -0
  184. package/dist/tools/definitions/definitions/ext/browser/browser-automate.yml +166 -0
  185. package/dist/tools/definitions/definitions/ext/browser/browser-close.sh +104 -0
  186. package/dist/tools/definitions/definitions/ext/browser/browser-close.yml +55 -0
  187. package/dist/tools/definitions/definitions/ext/browser/browser-mcp-debug.sh +682 -0
  188. package/dist/tools/definitions/definitions/ext/browser/browser-mcp-debug.yml +167 -0
  189. package/dist/tools/definitions/definitions/ext/browser/browser-start.sh +101 -0
  190. package/dist/tools/definitions/definitions/ext/browser/browser-start.yml +62 -0
  191. package/dist/tools/definitions/definitions/registry.json +795 -0
  192. package/dist/tools/definitions/definitions/std/README.md +350 -0
  193. package/dist/tools/definitions/definitions/std/analysis/analyze-codebase.yml +72 -0
  194. package/dist/tools/definitions/definitions/std/analysis/analyze-diff.yml +182 -0
  195. package/dist/tools/definitions/definitions/std/analysis/analyze-git-diff.yml +70 -0
  196. package/dist/tools/definitions/definitions/std/analysis/analyze-impact.yml +78 -0
  197. package/dist/tools/definitions/definitions/std/analysis/analyze-requirements.yml +105 -0
  198. package/dist/tools/definitions/definitions/std/analysis/brainstorm-options.yml +106 -0
  199. package/dist/tools/definitions/definitions/std/analysis/build-graph.yml +154 -0
  200. package/dist/tools/definitions/definitions/std/analysis/clarify-requirements.yml +90 -0
  201. package/dist/tools/definitions/definitions/std/analysis/detect-context.yml +109 -0
  202. package/dist/tools/definitions/definitions/std/analysis/detect-layers.yml +125 -0
  203. package/dist/tools/definitions/definitions/std/analysis/generate-tour.yml +102 -0
  204. package/dist/tools/definitions/definitions/std/analysis/search-enhance.yml +105 -0
  205. package/dist/tools/definitions/definitions/std/backlog/add.yml +51 -0
  206. package/dist/tools/definitions/definitions/std/backlog/decide.yml +39 -0
  207. package/dist/tools/definitions/definitions/std/backlog/github-sync.yml +161 -0
  208. package/dist/tools/definitions/definitions/std/backlog/list.yml +53 -0
  209. package/dist/tools/definitions/definitions/std/backlog/load.yml +46 -0
  210. package/dist/tools/definitions/definitions/std/backlog/resolve.yml +37 -0
  211. package/dist/tools/definitions/definitions/std/backlog/update.yml +42 -0
  212. package/dist/tools/definitions/definitions/std/bugfix/diagnose.yml +68 -0
  213. package/dist/tools/definitions/definitions/std/bugfix/fix.yml +66 -0
  214. package/dist/tools/definitions/definitions/std/bugfix/verify.yml +69 -0
  215. package/dist/tools/definitions/definitions/std/constraint/check-decomposition.yml +103 -0
  216. package/dist/tools/definitions/definitions/std/constraint/check-feature-list.yml +77 -0
  217. package/dist/tools/definitions/definitions/std/constraint/check-progress.yml +97 -0
  218. package/dist/tools/definitions/definitions/std/constraint/generate-report.yml +147 -0
  219. package/dist/tools/definitions/definitions/std/deploy/commit-push.yml +33 -0
  220. package/dist/tools/definitions/definitions/std/deploy/deploy-backend.yml +37 -0
  221. package/dist/tools/definitions/definitions/std/deploy/deploy-frontend.yml +37 -0
  222. package/dist/tools/definitions/definitions/std/deploy/rollback.yml +148 -0
  223. package/dist/tools/definitions/definitions/std/design/analyze-architecture-impact.yml +113 -0
  224. package/dist/tools/definitions/definitions/std/design/design-api.yml +55 -0
  225. package/dist/tools/definitions/definitions/std/design/design-architecture.yml +97 -0
  226. package/dist/tools/definitions/definitions/std/design/design-db.yml +81 -0
  227. package/dist/tools/definitions/definitions/std/design/generate-spec.yml +182 -0
  228. package/dist/tools/definitions/definitions/std/development/develop-api.yml +85 -0
  229. package/dist/tools/definitions/definitions/std/development/develop-backend.yml +88 -0
  230. package/dist/tools/definitions/definitions/std/development/develop-frontend.yml +87 -0
  231. package/dist/tools/definitions/definitions/std/development/develop-shared-types.yml +74 -0
  232. package/dist/tools/definitions/definitions/std/development/develop-task.yml +122 -0
  233. package/dist/tools/definitions/definitions/std/development/develop-tests.yml +76 -0
  234. package/dist/tools/definitions/definitions/std/development/execute-batch.yml +152 -0
  235. package/dist/tools/definitions/definitions/std/development/fix-issues.yml +100 -0
  236. package/dist/tools/definitions/definitions/std/development/implement-task.yml +124 -0
  237. package/dist/tools/definitions/definitions/std/development/review-fix-cycle.yml +232 -0
  238. package/dist/tools/definitions/definitions/std/evolution/implement.yml +125 -0
  239. package/dist/tools/definitions/definitions/std/evolution/prioritize.yml +112 -0
  240. package/dist/tools/definitions/definitions/std/evolution/report-gap.yml +166 -0
  241. package/dist/tools/definitions/definitions/std/file/read.yml +21 -0
  242. package/dist/tools/definitions/definitions/std/governance/aggregate-opinions.sh +201 -0
  243. package/dist/tools/definitions/definitions/std/governance/aggregate-opinions.yml +79 -0
  244. package/dist/tools/definitions/definitions/std/governance/audit-task.yml +178 -0
  245. package/dist/tools/definitions/definitions/std/governance/cast-vote.yml +129 -0
  246. package/dist/tools/definitions/definitions/std/governance/collect-issues.yml +16 -0
  247. package/dist/tools/definitions/definitions/std/governance/create-signed-document.yml +23 -0
  248. package/dist/tools/definitions/definitions/std/governance/create-voting-session.yml +101 -0
  249. package/dist/tools/definitions/definitions/std/governance/define-stance.sh +243 -0
  250. package/dist/tools/definitions/definitions/std/governance/define-stance.yml +82 -0
  251. package/dist/tools/definitions/definitions/std/governance/generate-review-report.yml +23 -0
  252. package/dist/tools/definitions/definitions/std/governance/impeach.yml +179 -0
  253. package/dist/tools/definitions/definitions/std/governance/multi-stance-review.yml +154 -0
  254. package/dist/tools/definitions/definitions/std/governance/prepare-artifact.yml +20 -0
  255. package/dist/tools/definitions/definitions/std/governance/review-spec-approval.yml +262 -0
  256. package/dist/tools/definitions/definitions/std/governance/rollback.yml +186 -0
  257. package/dist/tools/definitions/definitions/std/governance/stance-review.yml +149 -0
  258. package/dist/tools/definitions/definitions/std/governance/track-effect.yml +199 -0
  259. package/dist/tools/definitions/definitions/std/governance/vote-tally.yml +144 -0
  260. package/dist/tools/definitions/definitions/std/patch/execute.yml +51 -0
  261. package/dist/tools/definitions/definitions/std/planning/generate-tasks.yml +36 -0
  262. package/dist/tools/definitions/definitions/std/planning/load-tasks.yml +44 -0
  263. package/dist/tools/definitions/definitions/std/planning/split-batch.yml +481 -0
  264. package/dist/tools/definitions/definitions/std/planning/split-tasks.yml +359 -0
  265. package/dist/tools/definitions/definitions/std/planning/update-tasks.yml +51 -0
  266. package/dist/tools/definitions/definitions/std/planning/validate-tasks.yml +46 -0
  267. package/dist/tools/definitions/definitions/std/project/decide-next-workflow.yml +38 -0
  268. package/dist/tools/definitions/definitions/std/project/load-state.yml +31 -0
  269. package/dist/tools/definitions/definitions/std/project/save-state.yml +32 -0
  270. package/dist/tools/definitions/definitions/std/quality/check-quality.yml +241 -0
  271. package/dist/tools/definitions/definitions/std/quality/debug-systematic.yml +163 -0
  272. package/dist/tools/definitions/definitions/std/quality/handle-feedback.yml +108 -0
  273. package/dist/tools/definitions/definitions/std/quality/review-code.yml +128 -0
  274. package/dist/tools/definitions/definitions/std/quality/review-spec.yml +140 -0
  275. package/dist/tools/definitions/definitions/std/quality/review-task.yml +190 -0
  276. package/dist/tools/definitions/definitions/std/quality/run-tests.yml +80 -0
  277. package/dist/tools/definitions/definitions/std/quick/analyze.yml +56 -0
  278. package/dist/tools/definitions/definitions/std/quick/implement.yml +67 -0
  279. package/dist/tools/definitions/definitions/std/quick/verify.yml +71 -0
  280. package/dist/tools/definitions/definitions/std/verification/verify_completion.yml +113 -0
  281. package/dist/tools/definitions/definitions/std/verification/wait-condition.yml +107 -0
  282. package/dist/tools/definitions/ext/browser/browser-automate.sh +255 -0
  283. package/dist/tools/definitions/ext/browser/browser-automate.yml +166 -0
  284. package/dist/tools/definitions/ext/browser/browser-close.sh +104 -0
  285. package/dist/tools/definitions/ext/browser/browser-close.yml +55 -0
  286. package/dist/tools/definitions/ext/browser/browser-mcp-debug.sh +682 -0
  287. package/dist/tools/definitions/ext/browser/browser-mcp-debug.yml +167 -0
  288. package/dist/tools/definitions/ext/browser/browser-start.sh +101 -0
  289. package/dist/tools/definitions/ext/browser/browser-start.yml +62 -0
  290. package/dist/tools/definitions/registry.json +795 -0
  291. package/dist/tools/definitions/std/README.md +350 -0
  292. package/dist/tools/definitions/std/analysis/analyze-codebase.yml +72 -0
  293. package/dist/tools/definitions/std/analysis/analyze-diff.yml +182 -0
  294. package/dist/tools/definitions/std/analysis/analyze-git-diff.yml +70 -0
  295. package/dist/tools/definitions/std/analysis/analyze-impact.yml +78 -0
  296. package/dist/tools/definitions/std/analysis/analyze-requirements.yml +105 -0
  297. package/dist/tools/definitions/std/analysis/brainstorm-options.yml +106 -0
  298. package/dist/tools/definitions/std/analysis/build-graph.yml +154 -0
  299. package/dist/tools/definitions/std/analysis/clarify-requirements.yml +90 -0
  300. package/dist/tools/definitions/std/analysis/detect-context.yml +109 -0
  301. package/dist/tools/definitions/std/analysis/detect-layers.yml +125 -0
  302. package/dist/tools/definitions/std/analysis/generate-tour.yml +102 -0
  303. package/dist/tools/definitions/std/analysis/search-enhance.yml +105 -0
  304. package/dist/tools/definitions/std/backlog/add.yml +51 -0
  305. package/dist/tools/definitions/std/backlog/decide.yml +39 -0
  306. package/dist/tools/definitions/std/backlog/github-sync.yml +161 -0
  307. package/dist/tools/definitions/std/backlog/list.yml +53 -0
  308. package/dist/tools/definitions/std/backlog/load.yml +46 -0
  309. package/dist/tools/definitions/std/backlog/resolve.yml +37 -0
  310. package/dist/tools/definitions/std/backlog/update.yml +42 -0
  311. package/dist/tools/definitions/std/bugfix/diagnose.yml +68 -0
  312. package/dist/tools/definitions/std/bugfix/fix.yml +66 -0
  313. package/dist/tools/definitions/std/bugfix/verify.yml +69 -0
  314. package/dist/tools/definitions/std/constraint/check-decomposition.yml +103 -0
  315. package/dist/tools/definitions/std/constraint/check-feature-list.yml +77 -0
  316. package/dist/tools/definitions/std/constraint/check-progress.yml +97 -0
  317. package/dist/tools/definitions/std/constraint/generate-report.yml +147 -0
  318. package/dist/tools/definitions/std/deploy/commit-push.yml +33 -0
  319. package/dist/tools/definitions/std/deploy/deploy-backend.yml +37 -0
  320. package/dist/tools/definitions/std/deploy/deploy-frontend.yml +37 -0
  321. package/dist/tools/definitions/std/deploy/rollback.yml +148 -0
  322. package/dist/tools/definitions/std/design/analyze-architecture-impact.yml +113 -0
  323. package/dist/tools/definitions/std/design/design-api.yml +55 -0
  324. package/dist/tools/definitions/std/design/design-architecture.yml +97 -0
  325. package/dist/tools/definitions/std/design/design-db.yml +81 -0
  326. package/dist/tools/definitions/std/design/generate-spec.yml +182 -0
  327. package/dist/tools/definitions/std/development/develop-api.yml +85 -0
  328. package/dist/tools/definitions/std/development/develop-backend.yml +88 -0
  329. package/dist/tools/definitions/std/development/develop-frontend.yml +87 -0
  330. package/dist/tools/definitions/std/development/develop-shared-types.yml +74 -0
  331. package/dist/tools/definitions/std/development/develop-task.yml +122 -0
  332. package/dist/tools/definitions/std/development/develop-tests.yml +76 -0
  333. package/dist/tools/definitions/std/development/execute-batch.yml +152 -0
  334. package/dist/tools/definitions/std/development/fix-issues.yml +100 -0
  335. package/dist/tools/definitions/std/development/implement-task.yml +124 -0
  336. package/dist/tools/definitions/std/development/review-fix-cycle.yml +232 -0
  337. package/dist/tools/definitions/std/evolution/implement.yml +125 -0
  338. package/dist/tools/definitions/std/evolution/prioritize.yml +112 -0
  339. package/dist/tools/definitions/std/evolution/report-gap.yml +166 -0
  340. package/dist/tools/definitions/std/file/read.yml +21 -0
  341. package/dist/tools/definitions/std/governance/aggregate-opinions.sh +201 -0
  342. package/dist/tools/definitions/std/governance/aggregate-opinions.yml +79 -0
  343. package/dist/tools/definitions/std/governance/audit-task.yml +178 -0
  344. package/dist/tools/definitions/std/governance/cast-vote.yml +129 -0
  345. package/dist/tools/definitions/std/governance/collect-issues.yml +16 -0
  346. package/dist/tools/definitions/std/governance/create-signed-document.yml +23 -0
  347. package/dist/tools/definitions/std/governance/create-voting-session.yml +101 -0
  348. package/dist/tools/definitions/std/governance/define-stance.sh +243 -0
  349. package/dist/tools/definitions/std/governance/define-stance.yml +82 -0
  350. package/dist/tools/definitions/std/governance/generate-review-report.yml +23 -0
  351. package/dist/tools/definitions/std/governance/impeach.yml +179 -0
  352. package/dist/tools/definitions/std/governance/multi-stance-review.yml +154 -0
  353. package/dist/tools/definitions/std/governance/prepare-artifact.yml +20 -0
  354. package/dist/tools/definitions/std/governance/review-spec-approval.yml +262 -0
  355. package/dist/tools/definitions/std/governance/rollback.yml +186 -0
  356. package/dist/tools/definitions/std/governance/stance-review.yml +149 -0
  357. package/dist/tools/definitions/std/governance/track-effect.yml +199 -0
  358. package/dist/tools/definitions/std/governance/vote-tally.yml +144 -0
  359. package/dist/tools/definitions/std/patch/execute.yml +51 -0
  360. package/dist/tools/definitions/std/planning/generate-tasks.yml +36 -0
  361. package/dist/tools/definitions/std/planning/load-tasks.yml +44 -0
  362. package/dist/tools/definitions/std/planning/split-batch.yml +481 -0
  363. package/dist/tools/definitions/std/planning/split-tasks.yml +359 -0
  364. package/dist/tools/definitions/std/planning/update-tasks.yml +51 -0
  365. package/dist/tools/definitions/std/planning/validate-tasks.yml +46 -0
  366. package/dist/tools/definitions/std/project/decide-next-workflow.yml +38 -0
  367. package/dist/tools/definitions/std/project/load-state.yml +31 -0
  368. package/dist/tools/definitions/std/project/save-state.yml +32 -0
  369. package/dist/tools/definitions/std/quality/check-quality.yml +241 -0
  370. package/dist/tools/definitions/std/quality/debug-systematic.yml +163 -0
  371. package/dist/tools/definitions/std/quality/handle-feedback.yml +108 -0
  372. package/dist/tools/definitions/std/quality/review-code.yml +128 -0
  373. package/dist/tools/definitions/std/quality/review-spec.yml +140 -0
  374. package/dist/tools/definitions/std/quality/review-task.yml +190 -0
  375. package/dist/tools/definitions/std/quality/run-tests.yml +80 -0
  376. package/dist/tools/definitions/std/quick/analyze.yml +56 -0
  377. package/dist/tools/definitions/std/quick/implement.yml +67 -0
  378. package/dist/tools/definitions/std/quick/verify.yml +71 -0
  379. package/dist/tools/definitions/std/verification/verify_completion.yml +113 -0
  380. package/dist/tools/definitions/std/verification/wait-condition.yml +107 -0
  381. package/dist/tools/index.d.ts +2 -0
  382. package/dist/tools/index.d.ts.map +1 -1
  383. package/dist/tools/index.js +2 -0
  384. package/dist/tools/index.js.map +1 -1
  385. package/dist/tools/loader.d.ts +21 -0
  386. package/dist/tools/loader.d.ts.map +1 -0
  387. package/dist/tools/loader.js +199 -0
  388. package/dist/tools/loader.js.map +1 -0
  389. package/dist/tools/paths.d.ts +9 -0
  390. package/dist/tools/paths.d.ts.map +1 -0
  391. package/dist/tools/paths.js +51 -0
  392. package/dist/tools/paths.js.map +1 -0
  393. package/dist/types/constraint.d.ts +4 -0
  394. package/dist/types/constraint.d.ts.map +1 -1
  395. package/dist/types/constraint.js.map +1 -1
  396. package/dist/types/project-config.d.ts +57 -0
  397. package/dist/types/project-config.d.ts.map +1 -1
  398. package/dist/types/session.d.ts +6 -0
  399. package/dist/types/session.d.ts.map +1 -1
  400. package/dist/utils/exec.d.ts.map +1 -1
  401. package/dist/utils/exec.js +37 -1
  402. package/dist/utils/exec.js.map +1 -1
  403. package/package.json +2 -2
@@ -0,0 +1,475 @@
1
+ #!/bin/bash
2
+ # register-language.sh - 注册编程语言支持
3
+ # ============================================================================
4
+ # 功能:为代码解析器添加新语言支持
5
+ # 用途:项目初始化时自动检测语言、多语言项目分析
6
+ # ============================================================================
7
+
8
+ set -e
9
+
10
+ # 配置文件路径
11
+ CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/code-parser"
12
+ LANGUAGES_FILE="$CONFIG_DIR/languages.json"
13
+
14
+ # 参数
15
+ LANGUAGE="${1:-}"
16
+ EXTENSIONS="${2:-}"
17
+ PARSER_CONFIG="${3:-}"
18
+
19
+ # 颜色输出
20
+ RED='\033[0;31m'
21
+ GREEN='\033[0;32m'
22
+ YELLOW='\033[1;33m'
23
+ BLUE='\033[0;34m'
24
+ NC='\033[0m'
25
+
26
+ log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
27
+ log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
28
+ log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
29
+ log_debug() { echo -e "${BLUE}[DEBUG]${NC} $1"; }
30
+
31
+ # 预定义语言配置
32
+ declare -A PREDEFINED_LANGUAGES
33
+
34
+ # TypeScript
35
+ PREDEFINED_LANGUAGES["typescript"]='{
36
+ "name": "typescript",
37
+ "extensions": [".ts", ".tsx", ".mts", ".cts"],
38
+ "features": ["functions", "classes", "interfaces", "types", "enums", "imports", "exports", "decorators", "generics"],
39
+ "function_patterns": ["function {name}({params})", "const {name} = ({params}) =>"],
40
+ "class_patterns": ["class {name}", "interface {name}", "type {name}"],
41
+ "import_patterns": ["import {specifiers} from \"{source}\"", "import {source}"],
42
+ "tree_sitter_grammar": "tree-sitter-typescript"
43
+ }'
44
+
45
+ # JavaScript
46
+ PREDEFINED_LANGUAGES["javascript"]='{
47
+ "name": "javascript",
48
+ "extensions": [".js", ".jsx", ".mjs", ".cjs"],
49
+ "features": ["functions", "classes", "imports", "exports"],
50
+ "function_patterns": ["function {name}({params})", "const {name} = ({params}) =>"],
51
+ "class_patterns": ["class {name}"],
52
+ "import_patterns": ["import {specifiers} from \"{source}\"", "require(\"{source}\")"],
53
+ "tree_sitter_grammar": "tree-sitter-javascript"
54
+ }'
55
+
56
+ # Python
57
+ PREDEFINED_LANGUAGES["python"]='{
58
+ "name": "python",
59
+ "extensions": [".py", ".pyw", ".pyi"],
60
+ "features": ["functions", "classes", "decorators", "imports"],
61
+ "function_patterns": ["def {name}({params}):", "async def {name}({params}):"],
62
+ "class_patterns": ["class {name}:", "class {name}({bases}):"],
63
+ "import_patterns": ["import {source}", "from {source} import {specifiers}"],
64
+ "tree_sitter_grammar": "tree-sitter-python"
65
+ }'
66
+
67
+ # Go
68
+ PREDEFINED_LANGUAGES["go"]='{
69
+ "name": "go",
70
+ "extensions": [".go"],
71
+ "features": ["functions", "structs", "interfaces", "imports"],
72
+ "function_patterns": ["func {name}({params})", "func ({receiver}) {name}({params})"],
73
+ "class_patterns": ["type {name} struct", "type {name} interface"],
74
+ "import_patterns": ["import \"{source}\"", "import {alias} \"{source}\""],
75
+ "tree_sitter_grammar": "tree-sitter-go"
76
+ }'
77
+
78
+ # Rust
79
+ PREDEFINED_LANGUAGES["rust"]='{
80
+ "name": "rust",
81
+ "extensions": [".rs"],
82
+ "features": ["functions", "structs", "enums", "traits", "impls", "imports"],
83
+ "function_patterns": ["fn {name}({params})", "pub fn {name}({params})"],
84
+ "class_patterns": ["struct {name}", "enum {name}", "trait {name}"],
85
+ "import_patterns": ["use {source};", "use {source}::{specifiers};"],
86
+ "tree_sitter_grammar": "tree-sitter-rust"
87
+ }'
88
+
89
+ # Java
90
+ PREDEFINED_LANGUAGES["java"]='{
91
+ "name": "java",
92
+ "extensions": [".java"],
93
+ "features": ["methods", "classes", "interfaces", "annotations", "imports"],
94
+ "function_patterns": ["{modifiers} {return} {name}({params})"],
95
+ "class_patterns": ["class {name}", "interface {name}", "enum {name}"],
96
+ "import_patterns": ["import {source};"],
97
+ "tree_sitter_grammar": "tree-sitter-java"
98
+ }'
99
+
100
+ # C++
101
+ PREDEFINED_LANGUAGES["c++"]='{
102
+ "name": "c++",
103
+ "extensions": [".cpp", ".cc", ".cxx", ".hpp", ".hh", ".hxx", ".h"],
104
+ "features": ["functions", "classes", "structs", "namespaces", "includes"],
105
+ "function_patterns": ["{return} {name}({params})", "{return} {class}::{name}({params})"],
106
+ "class_patterns": ["class {name}", "struct {name}"],
107
+ "import_patterns": ["#include <{source}>", "#include \"{source}\""],
108
+ "tree_sitter_grammar": "tree-sitter-cpp"
109
+ }'
110
+
111
+ # C
112
+ PREDEFINED_LANGUAGES["c"]='{
113
+ "name": "c",
114
+ "extensions": [".c", ".h"],
115
+ "features": ["functions", "structs", "includes"],
116
+ "function_patterns": ["{return} {name}({params})"],
117
+ "class_patterns": ["struct {name}"],
118
+ "import_patterns": ["#include <{source}>", "#include \"{source}\""],
119
+ "tree_sitter_grammar": "tree-sitter-c"
120
+ }'
121
+
122
+ # Ruby
123
+ PREDEFINED_LANGUAGES["ruby"]='{
124
+ "name": "ruby",
125
+ "extensions": [".rb", ".rake", ".gemspec"],
126
+ "features": ["methods", "classes", "modules", "requires"],
127
+ "function_patterns": ["def {name}({params})", "def self.{name}({params})"],
128
+ "class_patterns": ["class {name}", "module {name}"],
129
+ "import_patterns": ["require \"{source}\"", "require_relative \"{source}\""],
130
+ "tree_sitter_grammar": "tree-sitter-ruby"
131
+ }'
132
+
133
+ # PHP
134
+ PREDEFINED_LANGUAGES["php"]='{
135
+ "name": "php",
136
+ "extensions": [".php", ".phtml"],
137
+ "features": ["functions", "classes", "traits", "interfaces", "namespaces"],
138
+ "function_patterns": ["function {name}({params})", "public function {name}({params})"],
139
+ "class_patterns": ["class {name}", "trait {name}", "interface {name}"],
140
+ "import_patterns": ["use {source};", "require \"{source}\""],
141
+ "tree_sitter_grammar": "tree-sitter-php"
142
+ }'
143
+
144
+ # Kotlin
145
+ PREDEFINED_LANGUAGES["kotlin"]='{
146
+ "name": "kotlin",
147
+ "extensions": [".kt", ".kts"],
148
+ "features": ["functions", "classes", "objects", "interfaces", "imports"],
149
+ "function_patterns": ["fun {name}({params})", "suspend fun {name}({params})"],
150
+ "class_patterns": ["class {name}", "object {name}", "interface {name}"],
151
+ "import_patterns": ["import {source}"],
152
+ "tree_sitter_grammar": "tree-sitter-kotlin"
153
+ }'
154
+
155
+ # Swift
156
+ PREDEFINED_LANGUAGES["swift"]='{
157
+ "name": "swift",
158
+ "extensions": [".swift"],
159
+ "features": ["functions", "classes", "structs", "protocols", "enums", "imports"],
160
+ "function_patterns": ["func {name}({params})", "static func {name}({params})"],
161
+ "class_patterns": ["class {name}", "struct {name}", "protocol {name}", "enum {name}"],
162
+ "import_patterns": ["import {source}"],
163
+ "tree_sitter_grammar": "tree-sitter-swift"
164
+ }'
165
+
166
+ # Scala
167
+ PREDEFINED_LANGUAGES["scala"]='{
168
+ "name": "scala",
169
+ "extensions": [".scala", ".sc"],
170
+ "features": ["functions", "classes", "traits", "objects", "imports"],
171
+ "function_patterns": ["def {name}({params})", "def {name}({params}): {return}"],
172
+ "class_patterns": ["class {name}", "trait {name}", "object {name}", "case class {name}"],
173
+ "import_patterns": ["import {source}", "import {source}.{specifiers}"],
174
+ "tree_sitter_grammar": "tree-sitter-scala"
175
+ }'
176
+
177
+ # C#
178
+ PREDEFINED_LANGUAGES["c#"]='{
179
+ "name": "c#",
180
+ "extensions": [".cs"],
181
+ "features": ["methods", "classes", "interfaces", "structs", "enums", "namespaces"],
182
+ "function_patterns": ["{modifiers} {return} {name}({params})"],
183
+ "class_patterns": ["class {name}", "interface {name}", "struct {name}", "enum {name}"],
184
+ "import_patterns": ["using {source};"],
185
+ "tree_sitter_grammar": "tree-sitter-c-sharp"
186
+ }'
187
+
188
+ # Vue
189
+ PREDEFINED_LANGUAGES["vue"]='{
190
+ "name": "vue",
191
+ "extensions": [".vue"],
192
+ "features": ["components", "props", "methods", "computed", "watchers"],
193
+ "function_patterns": ["{name}({params})"],
194
+ "class_patterns": ["name: \"{name}\""],
195
+ "import_patterns": ["import {source} from \"{source}\""],
196
+ "tree_sitter_grammar": "tree-sitter-vue"
197
+ }'
198
+
199
+ # Svelte
200
+ PREDEFINED_LANGUAGES["svelte"]='{
201
+ "name": "svelte",
202
+ "extensions": [".svelte"],
203
+ "features": ["components", "props", "reactive"],
204
+ "function_patterns": ["function {name}({params})"],
205
+ "class_patterns": [],
206
+ "import_patterns": ["import {source} from \"{source}\""],
207
+ "tree_sitter_grammar": "tree-sitter-svelte"
208
+ }'
209
+
210
+ # CSS
211
+ PREDEFINED_LANGUAGES["css"]='{
212
+ "name": "css",
213
+ "extensions": [".css"],
214
+ "features": ["selectors", "properties", "variables"],
215
+ "function_patterns": [],
216
+ "class_patterns": [],
217
+ "import_patterns": ["@import \"{source}\";"],
218
+ "tree_sitter_grammar": "tree-sitter-css"
219
+ }'
220
+
221
+ # SCSS
222
+ PREDEFINED_LANGUAGES["scss"]='{
223
+ "name": "scss",
224
+ "extensions": [".scss", ".sass"],
225
+ "features": ["selectors", "properties", "variables", "mixins"],
226
+ "function_patterns": ["@mixin {name}({params})"],
227
+ "class_patterns": [],
228
+ "import_patterns": ["@import \"{source}\";", "@use \"{source}\";"],
229
+ "tree_sitter_grammar": "tree-sitter-scss"
230
+ }'
231
+
232
+ # HTML
233
+ PREDEFINED_LANGUAGES["html"]='{
234
+ "name": "html",
235
+ "extensions": [".html", ".htm"],
236
+ "features": ["elements", "attributes"],
237
+ "function_patterns": [],
238
+ "class_patterns": [],
239
+ "import_patterns": [],
240
+ "tree_sitter_grammar": "tree-sitter-html"
241
+ }'
242
+
243
+ # JSON
244
+ PREDEFINED_LANGUAGES["json"]='{
245
+ "name": "json",
246
+ "extensions": [".json"],
247
+ "features": ["objects", "arrays"],
248
+ "function_patterns": [],
249
+ "class_patterns": [],
250
+ "import_patterns": [],
251
+ "tree_sitter_grammar": "tree-sitter-json"
252
+ }'
253
+
254
+ # YAML
255
+ PREDEFINED_LANGUAGES["yaml"]='{
256
+ "name": "yaml",
257
+ "extensions": [".yaml", ".yml"],
258
+ "features": ["mappings", "sequences"],
259
+ "function_patterns": [],
260
+ "class_patterns": [],
261
+ "import_patterns": [],
262
+ "tree_sitter_grammar": "tree-sitter-yaml"
263
+ }'
264
+
265
+ # Markdown
266
+ PREDEFINED_LANGUAGES["markdown"]='{
267
+ "name": "markdown",
268
+ "extensions": [".md", ".markdown"],
269
+ "features": ["headings", "lists", "links", "code_blocks"],
270
+ "function_patterns": [],
271
+ "class_patterns": [],
272
+ "import_patterns": [],
273
+ "tree_sitter_grammar": "tree-sitter-markdown"
274
+ }'
275
+
276
+ # Bash
277
+ PREDEFINED_LANGUAGES["bash"]='{
278
+ "name": "bash",
279
+ "extensions": [".sh", ".bash", ".zsh"],
280
+ "features": ["functions", "variables", "sources"],
281
+ "function_patterns": ["{name}() {{", "function {name}() {{"],
282
+ "class_patterns": [],
283
+ "import_patterns": ["source {source}", ". {source}"],
284
+ "tree_sitter_grammar": "tree-sitter-bash"
285
+ }'
286
+
287
+ # SQL
288
+ PREDEFINED_LANGUAGES["sql"]='{
289
+ "name": "sql",
290
+ "extensions": [".sql"],
291
+ "features": ["tables", "views", "functions", "procedures"],
292
+ "function_patterns": ["CREATE FUNCTION {name}", "CREATE PROCEDURE {name}"],
293
+ "class_patterns": ["CREATE TABLE {name}", "CREATE VIEW {name}"],
294
+ "import_patterns": [],
295
+ "tree_sitter_grammar": "tree-sitter-sql"
296
+ }'
297
+
298
+ # 显示帮助
299
+ show_help() {
300
+ cat << EOF
301
+ 注册编程语言支持
302
+
303
+ 用法:
304
+ $0 <language> [extensions] [parser_config]
305
+
306
+ 参数:
307
+ language 语言名称(如 typescript, python, go)
308
+ extensions 文件扩展名列表,逗号分隔(如 .ts,.tsx)
309
+ parser_config 自定义解析器配置(JSON 字符串)
310
+
311
+ 预定义语言:
312
+ $(echo "${!PREDEFINED_LANGUAGES[@]}" | tr ' ' '\n' | sort | head -20 | while read l; do echo " - $l"; done)
313
+ ... 共 ${#PREDEFINED_LANGUAGES[@]} 种语言
314
+
315
+ 示例:
316
+ # 注册预定义语言
317
+ $0 python
318
+
319
+ # 注册自定义扩展名
320
+ $0 typescript ".ts,.tsx,.mts"
321
+
322
+ # 注册新语言
323
+ $0 elixir ".ex,.exs" '{"features": ["functions", "modules"]}'
324
+
325
+ # 列出所有已注册语言
326
+ $0 --list
327
+
328
+ # 显示语言详情
329
+ $0 --show python
330
+ EOF
331
+ exit 0
332
+ }
333
+
334
+ # 初始化配置目录
335
+ init_config() {
336
+ mkdir -p "$CONFIG_DIR"
337
+ if [[ ! -f "$LANGUAGES_FILE" ]]; then
338
+ echo '{}' > "$LANGUAGES_FILE"
339
+ fi
340
+ }
341
+
342
+ # 列出已注册语言
343
+ list_languages() {
344
+ init_config
345
+
346
+ echo "已注册语言:"
347
+ echo ""
348
+
349
+ # 预定义语言
350
+ echo "预定义语言 (${#PREDEFINED_LANGUAGES[@]} 种):"
351
+ for lang in "${!PREDEFINED_LANGUAGES[@]}"; do
352
+ local config=$(echo "${PREDEFINED_LANGUAGES[$lang]}" | jq -r '.name + " - " + (.extensions | join(", "))')
353
+ echo " - $config"
354
+ done | sort
355
+
356
+ # 用户注册的语言
357
+ if [[ -s "$LANGUAGES_FILE" ]]; then
358
+ local user_count=$(jq 'keys | length' "$LANGUAGES_FILE" 2>/dev/null || echo "0")
359
+ if [[ "$user_count" -gt 0 ]]; then
360
+ echo ""
361
+ echo "用户注册语言 ($user_count 种):"
362
+ jq -r 'to_entries[] | " - \(.key) - \(.value.extensions | join(\", \"))"' "$LANGUAGES_FILE" 2>/dev/null
363
+ fi
364
+ fi
365
+ }
366
+
367
+ # 显示语言详情
368
+ show_language() {
369
+ local lang="$1"
370
+
371
+ # 先查预定义
372
+ if [[ -n "${PREDEFINED_LANGUAGES[$lang]}" ]]; then
373
+ echo "${PREDEFINED_LANGUAGES[$lang]}" | jq .
374
+ return 0
375
+ fi
376
+
377
+ # 再查用户注册
378
+ init_config
379
+ if jq -e --arg lang "$lang" '.[$lang]' "$LANGUAGES_FILE" > /dev/null 2>&1; then
380
+ jq --arg lang "$lang" '.[$lang]' "$LANGUAGES_FILE"
381
+ return 0
382
+ fi
383
+
384
+ log_error "语言未注册: $lang"
385
+ return 1
386
+ }
387
+
388
+ # 注册语言
389
+ register_language() {
390
+ local lang="$1"
391
+ local extensions="$2"
392
+ local config="$3"
393
+
394
+ init_config
395
+
396
+ # 检查是否是预定义语言
397
+ if [[ -n "${PREDEFINED_LANGUAGES[$lang]}" ]]; then
398
+ log_info "使用预定义配置: $lang"
399
+
400
+ # 如果指定了自定义扩展名,覆盖默认值
401
+ if [[ -n "$extensions" ]]; then
402
+ local ext_array=$(echo "$extensions" | tr ',' '\n' | jq -R . | jq -s .)
403
+ PREDEFINED_LANGUAGES[$lang]=$(echo "${PREDEFINED_LANGUAGES[$lang]}" | jq --argjson ext "$ext_array" '.extensions = $ext')
404
+ fi
405
+
406
+ # 如果指定了自定义配置,合并
407
+ if [[ -n "$config" ]]; then
408
+ PREDEFINED_LANGUAGES[$lang]=$(echo "${PREDEFINED_LANGUAGES[$lang]}" | jq --argjson custom "$config" '. * $custom')
409
+ fi
410
+
411
+ local final_config="${PREDEFINED_LANGUAGES[$lang]}"
412
+ else
413
+ # 新语言,需要完整配置
414
+ if [[ -z "$extensions" ]]; then
415
+ log_error "新语言需要指定文件扩展名"
416
+ echo "示例: $0 $lang \".$lang\""
417
+ exit 1
418
+ fi
419
+
420
+ local ext_array=$(echo "$extensions" | tr ',' '\n' | jq -R . | jq -s .)
421
+
422
+ # 创建基础配置
423
+ local base_config=$(cat << EOF
424
+ {
425
+ "name": "$lang",
426
+ "extensions": $ext_array,
427
+ "features": ["functions", "classes", "imports"],
428
+ "function_patterns": [],
429
+ "class_patterns": [],
430
+ "import_patterns": [],
431
+ "tree_sitter_grammar": null
432
+ }
433
+ EOF
434
+ )
435
+
436
+ # 如果指定了自定义配置,合并
437
+ if [[ -n "$config" ]]; then
438
+ final_config=$(echo "$base_config" | jq --argjson custom "$config" '. * $custom')
439
+ else
440
+ final_config="$base_config"
441
+ fi
442
+ fi
443
+
444
+ # 保存到配置文件
445
+ jq --arg lang "$lang" --argjson config "$final_config" '.[$lang] = $config' "$LANGUAGES_FILE" > "${LANGUAGES_FILE}.tmp"
446
+ mv "${LANGUAGES_FILE}.tmp" "$LANGUAGES_FILE"
447
+
448
+ log_info "已注册语言: $lang"
449
+
450
+ # 输出结果
451
+ echo "$final_config" | jq '{
452
+ registered: true,
453
+ language_config: .,
454
+ supported_features: .features
455
+ }'
456
+ }
457
+
458
+ # 主流程
459
+ case "$1" in
460
+ -h|--help)
461
+ show_help
462
+ ;;
463
+ --list)
464
+ list_languages
465
+ ;;
466
+ --show)
467
+ show_language "$2"
468
+ ;;
469
+ *)
470
+ if [[ -z "$LANGUAGE" ]]; then
471
+ show_help
472
+ fi
473
+ register_language "$LANGUAGE" "$EXTENSIONS" "$PARSER_CONFIG"
474
+ ;;
475
+ esac
@@ -0,0 +1,74 @@
1
+ name: code/register-language
2
+ description: |
3
+ 注册编程语言支持。
4
+
5
+ 为代码解析器添加新语言:
6
+ - Tree-sitter 语法配置
7
+ - 文件扩展名映射
8
+ - 解析规则
9
+
10
+ 支持 30+ 语言:
11
+ TypeScript, JavaScript, Python, Go, Rust, Java, C++, C,
12
+ Ruby, PHP, Swift, Kotlin, Scala, C#, F#, Dart, Elixir,
13
+ Erlang, Haskell, Lua, Perl, R, SQL, Bash, PowerShell,
14
+ Vue, Svelte, CSS, SCSS, HTML, JSON, YAML, Markdown
15
+
16
+ inputs:
17
+ - name: language
18
+ type: string
19
+ required: true
20
+ description: 语言名称(如 typescript, python, go)
21
+
22
+ - name: extensions
23
+ type: array
24
+ required: false
25
+ description: 文件扩展名列表(如 [".ts", ".tsx"])
26
+
27
+ - name: parser_config
28
+ type: object
29
+ required: false
30
+ description: |
31
+ 自定义解析器配置(可选)
32
+ ```yaml
33
+ function_patterns:
34
+ - "function {name}({params})"
35
+ class_patterns:
36
+ - "class {name}"
37
+ import_patterns:
38
+ - "import {specifiers} from {source}"
39
+ ```
40
+
41
+ outputs:
42
+ - name: registered
43
+ type: boolean
44
+ description: 是否注册成功
45
+
46
+ - name: language_config
47
+ type: object
48
+ description: 语言配置对象
49
+
50
+ - name: supported_features
51
+ type: array
52
+ description: 支持的特性列表
53
+
54
+ handler: script
55
+ script: ./register-language.sh
56
+
57
+ examples:
58
+ - description: 注册 Python 支持
59
+ inputs:
60
+ language: "python"
61
+ extensions: [".py", ".pyw"]
62
+ outputs:
63
+ registered: true
64
+ supported_features: ["functions", "classes", "imports"]
65
+
66
+ - description: 注册 Go 支持
67
+ inputs:
68
+ language: "go"
69
+ extensions: [".go"]
70
+ outputs:
71
+ registered: true
72
+ supported_features: ["functions", "structs", "interfaces", "imports"]
73
+
74
+ version: "1.0.0"
@@ -0,0 +1,73 @@
1
+ # build.yml - Docker 构建
2
+ # ============================================================================
3
+ # 能力类型: docker 操作(工具型)
4
+ # 执行方式: 纯脚本,不调用 Agent
5
+ # ============================================================================
6
+
7
+ name: docker-build
8
+ description: 构建 Docker 镜像
9
+
10
+ input:
11
+ repo_path:
12
+ type: path
13
+ required: true
14
+ description: 项目路径
15
+
16
+ image_name:
17
+ type: string
18
+ required: false
19
+ description: 镜像名称(可选,默认使用目录名)
20
+ default: ""
21
+
22
+ tag:
23
+ type: string
24
+ required: false
25
+ description: 镜像标签(可选,默认 latest)
26
+ default: "latest"
27
+
28
+ output:
29
+ image_id:
30
+ type: string
31
+ description: 构建的镜像 ID
32
+
33
+ script: |
34
+ #!/bin/bash
35
+ set -euo pipefail
36
+
37
+ REPO_PATH="{{repo_path}}"
38
+ IMAGE_NAME="{{image_name}}"
39
+ TAG="{{tag}}"
40
+
41
+ cd "$REPO_PATH"
42
+
43
+ # 自动确定镜像名
44
+ if [ -z "$IMAGE_NAME" ]; then
45
+ IMAGE_NAME=$(basename "$REPO_PATH")
46
+ fi
47
+
48
+ FULL_IMAGE="$IMAGE_NAME:$TAG"
49
+
50
+ echo "🐳 构建 Docker 镜像..."
51
+ echo " 路径: $REPO_PATH"
52
+ echo " 镜像: $FULL_IMAGE"
53
+ echo ""
54
+
55
+ # 检查 Dockerfile
56
+ if [ ! -f "Dockerfile" ]; then
57
+ echo "❌ 未找到 Dockerfile"
58
+ echo "IMAGE_ID=none"
59
+ exit 1
60
+ fi
61
+
62
+ # 构建镜像
63
+ if docker build -t "$FULL_IMAGE" . 2>&1; then
64
+ IMAGE_ID=$(docker images -q "$FULL_IMAGE" | head -1)
65
+ echo ""
66
+ echo "✅ 镜像构建成功: $FULL_IMAGE"
67
+ echo "IMAGE_ID=$IMAGE_ID"
68
+ else
69
+ echo ""
70
+ echo "❌ 镜像构建失败"
71
+ echo "IMAGE_ID=none"
72
+ exit 1
73
+ fi
@@ -0,0 +1,81 @@
1
+ # run.yml - Docker 运行
2
+ # ============================================================================
3
+ # 能力类型: docker 操作(工具型)
4
+ # 执行方式: 纯脚本,不调用 Agent
5
+ # ============================================================================
6
+
7
+ name: docker-run
8
+ description: 运行 Docker 容器
9
+
10
+ input:
11
+ image_name:
12
+ type: string
13
+ required: true
14
+ description: 镜像名称
15
+
16
+ container_name:
17
+ type: string
18
+ required: false
19
+ description: 容器名称(可选)
20
+ default: ""
21
+
22
+ ports:
23
+ type: string
24
+ required: false
25
+ description: 端口映射(可选,如 "8080:80")
26
+ default: ""
27
+
28
+ env_vars:
29
+ type: string
30
+ required: false
31
+ description: 环境变量(可选,如 "KEY=value")
32
+ default: ""
33
+
34
+ output:
35
+ container_id:
36
+ type: string
37
+ description: 容器 ID
38
+
39
+ script: |
40
+ #!/bin/bash
41
+ set -euo pipefail
42
+
43
+ IMAGE_NAME="{{image_name}}"
44
+ CONTAINER_NAME="{{container_name}}"
45
+ PORTS="{{ports}}"
46
+ ENV_VARS="{{env_vars}}"
47
+
48
+ echo "🐳 运行 Docker 容器..."
49
+ echo " 镜像: $IMAGE_NAME"
50
+
51
+ # 构建参数
52
+ RUN_ARGS=""
53
+
54
+ if [ -n "$CONTAINER_NAME" ]; then
55
+ RUN_ARGS="$RUN_ARGS --name $CONTAINER_NAME"
56
+ echo " 容器名: $CONTAINER_NAME"
57
+ fi
58
+
59
+ if [ -n "$PORTS" ]; then
60
+ RUN_ARGS="$RUN_ARGS -p $PORTS"
61
+ echo " 端口: $PORTS"
62
+ fi
63
+
64
+ if [ -n "$ENV_VARS" ]; then
65
+ RUN_ARGS="$RUN_ARGS -e $ENV_VARS"
66
+ echo " 环境变量: $ENV_VARS"
67
+ fi
68
+
69
+ echo ""
70
+
71
+ # 运行容器
72
+ CONTAINER_ID=$(docker run -d $RUN_ARGS "$IMAGE_NAME" 2>&1)
73
+
74
+ if [ $? -eq 0 ]; then
75
+ echo "✅ 容器启动成功"
76
+ echo "CONTAINER_ID=$CONTAINER_ID"
77
+ else
78
+ echo "❌ 容器启动失败"
79
+ echo "CONTAINER_ID=none"
80
+ exit 1
81
+ fi