@codemcp/workflows 5.3.0 → 6.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 (451) hide show
  1. package/README.md +91 -0
  2. package/package.json +77 -17
  3. package/packages/cli/dist/chunk-R5U7XKVJ.js +16 -0
  4. package/packages/cli/dist/chunk-RTDQR2KY.js +6718 -0
  5. package/packages/cli/dist/cli-CZ4FMSWR.js +1421 -0
  6. package/packages/cli/dist/dist-KZOA4GL5.js +65 -0
  7. package/packages/cli/dist/dist-UGVUJIDN.js +14475 -0
  8. package/packages/cli/dist/index.js +21 -0
  9. package/packages/cli/package.json +28 -0
  10. package/packages/core/dist/beads-integration.d.ts +50 -0
  11. package/packages/core/dist/beads-integration.js +387 -0
  12. package/packages/core/dist/beads-integration.js.map +1 -0
  13. package/packages/core/dist/beads-state-manager.d.ts +58 -0
  14. package/packages/core/dist/beads-state-manager.js +212 -0
  15. package/packages/core/dist/beads-state-manager.js.map +1 -0
  16. package/packages/core/dist/config-manager.d.ts +24 -0
  17. package/packages/core/dist/config-manager.js +68 -0
  18. package/packages/core/dist/config-manager.js.map +1 -0
  19. package/packages/core/dist/conversation-manager.d.ts +98 -0
  20. package/packages/core/dist/conversation-manager.js +382 -0
  21. package/packages/core/dist/conversation-manager.js.map +1 -0
  22. package/packages/core/dist/file-detection-manager.d.ts +53 -0
  23. package/packages/core/dist/file-detection-manager.js +221 -0
  24. package/packages/core/dist/file-detection-manager.js.map +1 -0
  25. package/packages/core/dist/file-storage.d.ts +93 -0
  26. package/packages/core/dist/file-storage.js +301 -0
  27. package/packages/core/dist/file-storage.js.map +1 -0
  28. package/packages/core/dist/git-manager.d.ts +22 -0
  29. package/packages/core/dist/git-manager.js +123 -0
  30. package/packages/core/dist/git-manager.js.map +1 -0
  31. package/packages/core/dist/index.d.ts +24 -0
  32. package/packages/core/dist/index.js +31 -0
  33. package/packages/core/dist/index.js.map +1 -0
  34. package/packages/core/dist/instruction-generator.d.ts +40 -0
  35. package/packages/core/dist/instruction-generator.js +89 -0
  36. package/packages/core/dist/instruction-generator.js.map +1 -0
  37. package/packages/core/dist/interaction-logger.d.ts +37 -0
  38. package/packages/core/dist/interaction-logger.js +87 -0
  39. package/packages/core/dist/interaction-logger.js.map +1 -0
  40. package/packages/core/dist/interfaces/index.d.ts +9 -0
  41. package/packages/core/dist/interfaces/index.js +10 -0
  42. package/packages/core/dist/interfaces/index.js.map +1 -0
  43. package/packages/core/dist/interfaces/instruction-generator.interface.d.ts +41 -0
  44. package/packages/core/dist/interfaces/instruction-generator.interface.js +8 -0
  45. package/packages/core/dist/interfaces/instruction-generator.interface.js.map +1 -0
  46. package/packages/core/dist/interfaces/plan-manager.interface.d.ts +55 -0
  47. package/packages/core/dist/interfaces/plan-manager.interface.js +8 -0
  48. package/packages/core/dist/interfaces/plan-manager.interface.js.map +1 -0
  49. package/packages/core/dist/interfaces/task-backend-client.interface.d.ts +52 -0
  50. package/packages/core/dist/interfaces/task-backend-client.interface.js +8 -0
  51. package/packages/core/dist/interfaces/task-backend-client.interface.js.map +1 -0
  52. package/packages/core/dist/logger.d.ts +64 -0
  53. package/packages/core/dist/logger.js +283 -0
  54. package/packages/core/dist/logger.js.map +1 -0
  55. package/packages/core/dist/path-validation-utils.d.ts +75 -0
  56. package/packages/core/dist/path-validation-utils.js +238 -0
  57. package/packages/core/dist/path-validation-utils.js.map +1 -0
  58. package/packages/core/dist/persistence-interface.d.ts +91 -0
  59. package/packages/core/dist/persistence-interface.js +9 -0
  60. package/packages/core/dist/persistence-interface.js.map +1 -0
  61. package/{dist/components/beads/beads-plan-manager.d.ts → packages/core/dist/plan-manager.d.ts} +15 -15
  62. package/{dist/components/beads/beads-plan-manager.js → packages/core/dist/plan-manager.js} +66 -50
  63. package/packages/core/dist/plan-manager.js.map +1 -0
  64. package/packages/core/dist/project-docs-manager.d.ts +119 -0
  65. package/packages/core/dist/project-docs-manager.js +366 -0
  66. package/packages/core/dist/project-docs-manager.js.map +1 -0
  67. package/packages/core/dist/state-machine-loader.d.ts +61 -0
  68. package/packages/core/dist/state-machine-loader.js +273 -0
  69. package/packages/core/dist/state-machine-loader.js.map +1 -0
  70. package/packages/core/dist/state-machine-types.d.ts +64 -0
  71. package/packages/core/dist/state-machine-types.js +7 -0
  72. package/packages/core/dist/state-machine-types.js.map +1 -0
  73. package/packages/core/dist/state-machine.d.ts +52 -0
  74. package/packages/core/dist/state-machine.js +256 -0
  75. package/packages/core/dist/state-machine.js.map +1 -0
  76. package/packages/core/dist/system-prompt-generator.d.ts +14 -0
  77. package/packages/core/dist/system-prompt-generator.js +42 -0
  78. package/packages/core/dist/system-prompt-generator.js.map +1 -0
  79. package/packages/core/dist/task-backend.d.ts +45 -0
  80. package/packages/core/dist/task-backend.js +176 -0
  81. package/packages/core/dist/task-backend.js.map +1 -0
  82. package/packages/core/dist/template-manager.d.ts +61 -0
  83. package/packages/core/dist/template-manager.js +231 -0
  84. package/packages/core/dist/template-manager.js.map +1 -0
  85. package/packages/core/dist/transition-engine.d.ts +77 -0
  86. package/packages/core/dist/transition-engine.js +244 -0
  87. package/packages/core/dist/transition-engine.js.map +1 -0
  88. package/packages/core/dist/types.d.ts +54 -0
  89. package/packages/core/dist/types.js +5 -0
  90. package/packages/core/dist/workflow-manager.d.ts +89 -0
  91. package/packages/core/dist/workflow-manager.js +468 -0
  92. package/packages/core/dist/workflow-manager.js.map +1 -0
  93. package/packages/core/package.json +33 -0
  94. package/packages/docs/.vitepress/dist/.gitignore +2 -0
  95. package/packages/docs/.vitepress/dist/404.html +23 -0
  96. package/packages/docs/.vitepress/dist/assets/app.Dz3lZH3M.js +1 -0
  97. package/packages/docs/.vitepress/dist/assets/chunks/framework.DZS7lpav.js +19 -0
  98. package/packages/docs/.vitepress/dist/assets/chunks/theme.q5Ewb3F1.js +206 -0
  99. package/packages/docs/.vitepress/dist/assets/dev_ARCHITECTURE.md.da_vFDwM.js +130 -0
  100. package/packages/docs/.vitepress/dist/assets/dev_ARCHITECTURE.md.da_vFDwM.lean.js +1 -0
  101. package/packages/docs/.vitepress/dist/assets/dev_DEVELOPMENT.md.DWl9cccE.js +72 -0
  102. package/packages/docs/.vitepress/dist/assets/dev_DEVELOPMENT.md.DWl9cccE.lean.js +1 -0
  103. package/packages/docs/.vitepress/dist/assets/dev_LOGGING.md.BebvbW7z.js +34 -0
  104. package/packages/docs/.vitepress/dist/assets/dev_LOGGING.md.BebvbW7z.lean.js +1 -0
  105. package/packages/docs/.vitepress/dist/assets/dev_PUBLISHING.md.CQqbiIOF.js +1 -0
  106. package/packages/docs/.vitepress/dist/assets/dev_PUBLISHING.md.CQqbiIOF.lean.js +1 -0
  107. package/packages/docs/.vitepress/dist/assets/index.md.D6ROLohf.js +2 -0
  108. package/packages/docs/.vitepress/dist/assets/index.md.D6ROLohf.lean.js +1 -0
  109. package/packages/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
  110. package/packages/docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
  111. package/packages/docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
  112. package/packages/docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
  113. package/packages/docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
  114. package/packages/docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
  115. package/packages/docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
  116. package/packages/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
  117. package/packages/docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
  118. package/packages/docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
  119. package/packages/docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
  120. package/packages/docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
  121. package/packages/docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
  122. package/packages/docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
  123. package/packages/docs/.vitepress/dist/assets/mcp-interaction-pattern.VdvOPuTt.png +0 -0
  124. package/packages/docs/.vitepress/dist/assets/placeholder-demo-greenfield.B8lG_tBI.png +0 -0
  125. package/packages/docs/.vitepress/dist/assets/style.CAgdBzOq.css +1 -0
  126. package/packages/docs/.vitepress/dist/assets/user_advanced-engineering.md.MkETYNtq.js +50 -0
  127. package/packages/docs/.vitepress/dist/assets/user_advanced-engineering.md.MkETYNtq.lean.js +1 -0
  128. package/packages/docs/.vitepress/dist/assets/user_agent-setup.md.B54OLL2H.js +24 -0
  129. package/packages/docs/.vitepress/dist/assets/user_agent-setup.md.B54OLL2H.lean.js +1 -0
  130. package/packages/docs/.vitepress/dist/assets/user_beads-integration.md.BzdR5Fif.js +15 -0
  131. package/packages/docs/.vitepress/dist/assets/user_beads-integration.md.BzdR5Fif.lean.js +1 -0
  132. package/packages/docs/.vitepress/dist/assets/user_crowd-mcp-integration.md.C15kSdIJ.js +157 -0
  133. package/packages/docs/.vitepress/dist/assets/user_crowd-mcp-integration.md.C15kSdIJ.lean.js +1 -0
  134. package/packages/docs/.vitepress/dist/assets/user_custom-workflows.md.Cz4IYCXa.js +143 -0
  135. package/packages/docs/.vitepress/dist/assets/user_custom-workflows.md.Cz4IYCXa.lean.js +1 -0
  136. package/packages/docs/.vitepress/dist/assets/user_git-commit-feature.md.UcTvDR-O.js +1 -0
  137. package/packages/docs/.vitepress/dist/assets/user_git-commit-feature.md.UcTvDR-O.lean.js +1 -0
  138. package/packages/docs/.vitepress/dist/assets/user_how-it-works.md.DiOXNgaL.js +23 -0
  139. package/packages/docs/.vitepress/dist/assets/user_how-it-works.md.DiOXNgaL.lean.js +1 -0
  140. package/packages/docs/.vitepress/dist/assets/user_long-term-memory.md.DZh0tjNa.js +43 -0
  141. package/packages/docs/.vitepress/dist/assets/user_long-term-memory.md.DZh0tjNa.lean.js +1 -0
  142. package/packages/docs/.vitepress/dist/assets/user_packaged-workflows.md.s1HT89ZU.js +2 -0
  143. package/packages/docs/.vitepress/dist/assets/user_packaged-workflows.md.s1HT89ZU.lean.js +1 -0
  144. package/packages/docs/.vitepress/dist/assets/user_tutorial.md.Dmj8zLB2.js +3 -0
  145. package/packages/docs/.vitepress/dist/assets/user_tutorial.md.Dmj8zLB2.lean.js +1 -0
  146. package/packages/docs/.vitepress/dist/assets/user_workflow-selection.md.CrPGw9Hr.js +7 -0
  147. package/packages/docs/.vitepress/dist/assets/user_workflow-selection.md.CrPGw9Hr.lean.js +1 -0
  148. package/packages/docs/.vitepress/dist/assets/workflows.md.Bm5sGt3u.js +1 -0
  149. package/packages/docs/.vitepress/dist/assets/workflows.md.Bm5sGt3u.lean.js +1 -0
  150. package/packages/docs/.vitepress/dist/assets/workflows_adr.md.DEaXkbRp.js +1 -0
  151. package/packages/docs/.vitepress/dist/assets/workflows_adr.md.DEaXkbRp.lean.js +1 -0
  152. package/packages/docs/.vitepress/dist/assets/workflows_big-bang-conversion.md.BA5R1LxZ.js +1 -0
  153. package/packages/docs/.vitepress/dist/assets/workflows_big-bang-conversion.md.BA5R1LxZ.lean.js +1 -0
  154. package/packages/docs/.vitepress/dist/assets/workflows_boundary-testing.md.DBcYnMhx.js +1 -0
  155. package/packages/docs/.vitepress/dist/assets/workflows_boundary-testing.md.DBcYnMhx.lean.js +1 -0
  156. package/packages/docs/.vitepress/dist/assets/workflows_bugfix.md.CZRCL0Hp.js +1 -0
  157. package/packages/docs/.vitepress/dist/assets/workflows_bugfix.md.CZRCL0Hp.lean.js +1 -0
  158. package/packages/docs/.vitepress/dist/assets/workflows_business-analysis.md.fGLml8Hw.js +1 -0
  159. package/packages/docs/.vitepress/dist/assets/workflows_business-analysis.md.fGLml8Hw.lean.js +1 -0
  160. package/packages/docs/.vitepress/dist/assets/workflows_c4-analysis.md.Dnssqzuf.js +1 -0
  161. package/packages/docs/.vitepress/dist/assets/workflows_c4-analysis.md.Dnssqzuf.lean.js +1 -0
  162. package/packages/docs/.vitepress/dist/assets/workflows_epcc.md.M6DnIhpp.js +1 -0
  163. package/packages/docs/.vitepress/dist/assets/workflows_epcc.md.M6DnIhpp.lean.js +1 -0
  164. package/packages/docs/.vitepress/dist/assets/workflows_game-beginner.md.CNxzWLtd.js +1 -0
  165. package/packages/docs/.vitepress/dist/assets/workflows_game-beginner.md.CNxzWLtd.lean.js +1 -0
  166. package/packages/docs/.vitepress/dist/assets/workflows_greenfield.md.vx_g-WOe.js +1 -0
  167. package/packages/docs/.vitepress/dist/assets/workflows_greenfield.md.vx_g-WOe.lean.js +1 -0
  168. package/packages/docs/.vitepress/dist/assets/workflows_minor.md.DdnfwMf4.js +1 -0
  169. package/packages/docs/.vitepress/dist/assets/workflows_minor.md.DdnfwMf4.lean.js +1 -0
  170. package/packages/docs/.vitepress/dist/assets/workflows_posts.md.SOldXvq7.js +1 -0
  171. package/packages/docs/.vitepress/dist/assets/workflows_posts.md.SOldXvq7.lean.js +1 -0
  172. package/packages/docs/.vitepress/dist/assets/workflows_sdd-bugfix-crowd.md.-lSf42gJ.js +1 -0
  173. package/packages/docs/.vitepress/dist/assets/workflows_sdd-bugfix-crowd.md.-lSf42gJ.lean.js +1 -0
  174. package/packages/docs/.vitepress/dist/assets/workflows_sdd-bugfix.md.oRAsEVbc.js +1 -0
  175. package/packages/docs/.vitepress/dist/assets/workflows_sdd-bugfix.md.oRAsEVbc.lean.js +1 -0
  176. package/packages/docs/.vitepress/dist/assets/workflows_sdd-feature-crowd.md.DAtnfCAd.js +1 -0
  177. package/packages/docs/.vitepress/dist/assets/workflows_sdd-feature-crowd.md.DAtnfCAd.lean.js +1 -0
  178. package/packages/docs/.vitepress/dist/assets/workflows_sdd-feature.md.Ce3-H_g3.js +1 -0
  179. package/packages/docs/.vitepress/dist/assets/workflows_sdd-feature.md.Ce3-H_g3.lean.js +1 -0
  180. package/packages/docs/.vitepress/dist/assets/workflows_sdd-greenfield-crowd.md.8DUvcmLe.js +1 -0
  181. package/packages/docs/.vitepress/dist/assets/workflows_sdd-greenfield-crowd.md.8DUvcmLe.lean.js +1 -0
  182. package/packages/docs/.vitepress/dist/assets/workflows_sdd-greenfield.md.eEN6U0J4.js +1 -0
  183. package/packages/docs/.vitepress/dist/assets/workflows_sdd-greenfield.md.eEN6U0J4.lean.js +1 -0
  184. package/packages/docs/.vitepress/dist/assets/workflows_slides.md.Cqt-19_1.js +1 -0
  185. package/packages/docs/.vitepress/dist/assets/workflows_slides.md.Cqt-19_1.lean.js +1 -0
  186. package/packages/docs/.vitepress/dist/assets/workflows_tdd.md.BjVC69tu.js +1 -0
  187. package/packages/docs/.vitepress/dist/assets/workflows_tdd.md.BjVC69tu.lean.js +1 -0
  188. package/packages/docs/.vitepress/dist/assets/workflows_waterfall.md.CL6jTZP9.js +1 -0
  189. package/packages/docs/.vitepress/dist/assets/workflows_waterfall.md.CL6jTZP9.lean.js +1 -0
  190. package/packages/docs/.vitepress/dist/dev/ARCHITECTURE.html +155 -0
  191. package/packages/docs/.vitepress/dist/dev/DEVELOPMENT.html +97 -0
  192. package/packages/docs/.vitepress/dist/dev/LOGGING.html +59 -0
  193. package/packages/docs/.vitepress/dist/dev/PUBLISHING.html +30 -0
  194. package/packages/docs/.vitepress/dist/hashmap.json +1 -0
  195. package/packages/docs/.vitepress/dist/index.html +27 -0
  196. package/packages/docs/.vitepress/dist/user/advanced-engineering.html +75 -0
  197. package/packages/docs/.vitepress/dist/user/agent-setup.html +49 -0
  198. package/packages/docs/.vitepress/dist/user/beads-integration.html +40 -0
  199. package/packages/docs/.vitepress/dist/user/crowd-mcp-integration.html +182 -0
  200. package/packages/docs/.vitepress/dist/user/custom-workflows.html +168 -0
  201. package/packages/docs/.vitepress/dist/user/git-commit-feature.html +30 -0
  202. package/packages/docs/.vitepress/dist/user/how-it-works.html +48 -0
  203. package/packages/docs/.vitepress/dist/user/long-term-memory.html +68 -0
  204. package/packages/docs/.vitepress/dist/user/packaged-workflows.html +27 -0
  205. package/packages/docs/.vitepress/dist/user/tutorial.html +28 -0
  206. package/packages/docs/.vitepress/dist/user/workflow-selection.html +32 -0
  207. package/packages/docs/.vitepress/dist/vp-icons.css +0 -0
  208. package/packages/docs/.vitepress/dist/workflows/adr.html +26 -0
  209. package/packages/docs/.vitepress/dist/workflows/adr.yaml +157 -0
  210. package/packages/docs/.vitepress/dist/workflows/big-bang-conversion.html +26 -0
  211. package/packages/docs/.vitepress/dist/workflows/big-bang-conversion.yaml +592 -0
  212. package/packages/docs/.vitepress/dist/workflows/boundary-testing.html +26 -0
  213. package/packages/docs/.vitepress/dist/workflows/boundary-testing.yaml +376 -0
  214. package/packages/docs/.vitepress/dist/workflows/bugfix.html +26 -0
  215. package/packages/docs/.vitepress/dist/workflows/bugfix.yaml +177 -0
  216. package/packages/docs/.vitepress/dist/workflows/business-analysis.html +26 -0
  217. package/packages/docs/.vitepress/dist/workflows/business-analysis.yaml +597 -0
  218. package/packages/docs/.vitepress/dist/workflows/c4-analysis.html +26 -0
  219. package/packages/docs/.vitepress/dist/workflows/c4-analysis.yaml +471 -0
  220. package/packages/docs/.vitepress/dist/workflows/epcc.html +26 -0
  221. package/packages/docs/.vitepress/dist/workflows/epcc.yaml +183 -0
  222. package/packages/docs/.vitepress/dist/workflows/game-beginner.html +26 -0
  223. package/packages/docs/.vitepress/dist/workflows/game-beginner.yaml +434 -0
  224. package/packages/docs/.vitepress/dist/workflows/greenfield.html +26 -0
  225. package/packages/docs/.vitepress/dist/workflows/greenfield.yaml +201 -0
  226. package/packages/docs/.vitepress/dist/workflows/minor.html +26 -0
  227. package/packages/docs/.vitepress/dist/workflows/minor.yaml +138 -0
  228. package/packages/docs/.vitepress/dist/workflows/posts.html +26 -0
  229. package/packages/docs/.vitepress/dist/workflows/posts.yaml +193 -0
  230. package/packages/docs/.vitepress/dist/workflows/sdd-bugfix-crowd.html +26 -0
  231. package/packages/docs/.vitepress/dist/workflows/sdd-bugfix-crowd.yaml +608 -0
  232. package/packages/docs/.vitepress/dist/workflows/sdd-bugfix.html +26 -0
  233. package/packages/docs/.vitepress/dist/workflows/sdd-bugfix.yaml +381 -0
  234. package/packages/docs/.vitepress/dist/workflows/sdd-feature-crowd.html +26 -0
  235. package/packages/docs/.vitepress/dist/workflows/sdd-feature-crowd.yaml +713 -0
  236. package/packages/docs/.vitepress/dist/workflows/sdd-feature.html +26 -0
  237. package/packages/docs/.vitepress/dist/workflows/sdd-feature.yaml +471 -0
  238. package/packages/docs/.vitepress/dist/workflows/sdd-greenfield-crowd.html +26 -0
  239. package/packages/docs/.vitepress/dist/workflows/sdd-greenfield-crowd.yaml +336 -0
  240. package/packages/docs/.vitepress/dist/workflows/sdd-greenfield.html +26 -0
  241. package/packages/docs/.vitepress/dist/workflows/sdd-greenfield.yaml +463 -0
  242. package/packages/docs/.vitepress/dist/workflows/slides.html +26 -0
  243. package/packages/docs/.vitepress/dist/workflows/slides.yaml +237 -0
  244. package/packages/docs/.vitepress/dist/workflows/tdd.html +26 -0
  245. package/packages/docs/.vitepress/dist/workflows/tdd.yaml +160 -0
  246. package/packages/docs/.vitepress/dist/workflows/waterfall.html +26 -0
  247. package/packages/docs/.vitepress/dist/workflows/waterfall.yaml +209 -0
  248. package/packages/docs/.vitepress/dist/workflows.html +26 -0
  249. package/packages/docs/package.json +32 -0
  250. package/packages/mcp-server/dist/index.js +10546 -0
  251. package/packages/mcp-server/package.json +41 -0
  252. package/packages/visualizer/dist/WorkflowVisualizer.vue +1147 -0
  253. package/packages/visualizer/dist/index.ts +17 -0
  254. package/packages/visualizer/dist/main.ts +673 -0
  255. package/packages/visualizer/dist/services/BundledWorkflows.ts +35 -0
  256. package/packages/visualizer/dist/services/FileUploadHandler.ts +166 -0
  257. package/packages/visualizer/dist/services/WorkflowLoader.ts +198 -0
  258. package/packages/visualizer/dist/services/YamlParser.ts +248 -0
  259. package/packages/visualizer/dist/services/workflow-list.ts +23 -0
  260. package/packages/visualizer/dist/types/ui-types.ts +84 -0
  261. package/packages/visualizer/dist/types/visualization-types.ts +95 -0
  262. package/packages/visualizer/dist/types/vite-env.d.ts +12 -0
  263. package/packages/visualizer/dist/utils/DomHelpers.ts +206 -0
  264. package/packages/visualizer/dist/utils/ErrorHandler.ts +170 -0
  265. package/packages/visualizer/dist/utils/PlantUMLEncoder.ts +121 -0
  266. package/packages/visualizer/dist/visualization/DiagramRenderer.ts +430 -0
  267. package/packages/visualizer/dist/visualization/LayoutEngine.ts +339 -0
  268. package/packages/visualizer/dist/visualization/PlantUMLRenderer.ts +507 -0
  269. package/packages/visualizer/dist/visualization/StateRenderer.ts +339 -0
  270. package/packages/visualizer/dist/visualization/TransitionRenderer.ts +432 -0
  271. package/packages/visualizer/package.json +39 -0
  272. package/resources/.DS_Store +0 -0
  273. package/resources/agents/architect.yaml +61 -0
  274. package/resources/agents/business-analyst.yaml +60 -0
  275. package/resources/agents/developer.yaml +61 -0
  276. package/resources/state-machine-schema.json +114 -0
  277. package/resources/templates/architecture/arc42/arc42-template-EN.md +1077 -0
  278. package/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio-2023.png +0 -0
  279. package/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio.png +0 -0
  280. package/resources/templates/architecture/arc42/images/05_building_blocks-EN.png +0 -0
  281. package/resources/templates/architecture/arc42/images/08-concepts-EN.drawio.png +0 -0
  282. package/resources/templates/architecture/arc42/images/arc42-logo.png +0 -0
  283. package/resources/templates/architecture/c4.md +224 -0
  284. package/resources/templates/architecture/freestyle.md +53 -0
  285. package/resources/templates/architecture/game.md +250 -0
  286. package/resources/templates/architecture/none.md +17 -0
  287. package/resources/templates/design/comprehensive.md +207 -0
  288. package/resources/templates/design/freestyle.md +37 -0
  289. package/resources/templates/design/game.md +66 -0
  290. package/resources/templates/design/none.md +17 -0
  291. package/resources/templates/requirements/ears.md +90 -0
  292. package/resources/templates/requirements/freestyle.md +42 -0
  293. package/resources/templates/requirements/game.md +162 -0
  294. package/resources/templates/requirements/none.md +17 -0
  295. package/resources/templates/skills/POWER.md +23 -0
  296. package/resources/templates/skills/SKILL.md +19 -0
  297. package/resources/workflows/adr.yaml +157 -0
  298. package/resources/workflows/big-bang-conversion.yaml +592 -0
  299. package/resources/workflows/boundary-testing.yaml +376 -0
  300. package/resources/workflows/bugfix.yaml +177 -0
  301. package/resources/workflows/business-analysis.yaml +597 -0
  302. package/resources/workflows/c4-analysis.yaml +471 -0
  303. package/resources/workflows/epcc.yaml +183 -0
  304. package/resources/workflows/game-beginner.yaml +434 -0
  305. package/resources/workflows/greenfield.yaml +201 -0
  306. package/resources/workflows/minor.yaml +138 -0
  307. package/resources/workflows/posts.yaml +193 -0
  308. package/resources/workflows/sdd-bugfix-crowd.yaml +608 -0
  309. package/resources/workflows/sdd-bugfix.yaml +381 -0
  310. package/resources/workflows/sdd-feature-crowd.yaml +713 -0
  311. package/resources/workflows/sdd-feature.yaml +471 -0
  312. package/resources/workflows/sdd-greenfield-crowd.yaml +336 -0
  313. package/resources/workflows/sdd-greenfield.yaml +463 -0
  314. package/resources/workflows/slides.yaml +237 -0
  315. package/resources/workflows/tdd.yaml +160 -0
  316. package/resources/workflows/waterfall.yaml +209 -0
  317. package/dist/components/beads/beads-instruction-generator.d.ts +0 -44
  318. package/dist/components/beads/beads-instruction-generator.d.ts.map +0 -1
  319. package/dist/components/beads/beads-instruction-generator.js +0 -160
  320. package/dist/components/beads/beads-instruction-generator.js.map +0 -1
  321. package/dist/components/beads/beads-plan-manager.d.ts.map +0 -1
  322. package/dist/components/beads/beads-plan-manager.js.map +0 -1
  323. package/dist/components/beads/beads-task-backend-client.d.ts +0 -43
  324. package/dist/components/beads/beads-task-backend-client.d.ts.map +0 -1
  325. package/dist/components/beads/beads-task-backend-client.js +0 -175
  326. package/dist/components/beads/beads-task-backend-client.js.map +0 -1
  327. package/dist/index.d.ts +0 -9
  328. package/dist/index.d.ts.map +0 -1
  329. package/dist/index.js +0 -74
  330. package/dist/index.js.map +0 -1
  331. package/dist/notification-service.d.ts +0 -14
  332. package/dist/notification-service.d.ts.map +0 -1
  333. package/dist/notification-service.js +0 -18
  334. package/dist/notification-service.js.map +0 -1
  335. package/dist/plugin-system/beads-plugin.d.ts +0 -71
  336. package/dist/plugin-system/beads-plugin.d.ts.map +0 -1
  337. package/dist/plugin-system/beads-plugin.js +0 -465
  338. package/dist/plugin-system/beads-plugin.js.map +0 -1
  339. package/dist/plugin-system/commit-plugin.d.ts +0 -40
  340. package/dist/plugin-system/commit-plugin.d.ts.map +0 -1
  341. package/dist/plugin-system/commit-plugin.js +0 -204
  342. package/dist/plugin-system/commit-plugin.js.map +0 -1
  343. package/dist/plugin-system/index.d.ts +0 -9
  344. package/dist/plugin-system/index.d.ts.map +0 -1
  345. package/dist/plugin-system/index.js +0 -9
  346. package/dist/plugin-system/index.js.map +0 -1
  347. package/dist/plugin-system/plugin-interfaces.d.ts +0 -98
  348. package/dist/plugin-system/plugin-interfaces.d.ts.map +0 -1
  349. package/dist/plugin-system/plugin-interfaces.js +0 -9
  350. package/dist/plugin-system/plugin-interfaces.js.map +0 -1
  351. package/dist/plugin-system/plugin-registry.d.ts +0 -44
  352. package/dist/plugin-system/plugin-registry.d.ts.map +0 -1
  353. package/dist/plugin-system/plugin-registry.js +0 -132
  354. package/dist/plugin-system/plugin-registry.js.map +0 -1
  355. package/dist/resource-handlers/conversation-state.d.ts +0 -15
  356. package/dist/resource-handlers/conversation-state.d.ts.map +0 -1
  357. package/dist/resource-handlers/conversation-state.js +0 -40
  358. package/dist/resource-handlers/conversation-state.js.map +0 -1
  359. package/dist/resource-handlers/development-plan.d.ts +0 -14
  360. package/dist/resource-handlers/development-plan.d.ts.map +0 -1
  361. package/dist/resource-handlers/development-plan.js +0 -31
  362. package/dist/resource-handlers/development-plan.js.map +0 -1
  363. package/dist/resource-handlers/index.d.ts +0 -24
  364. package/dist/resource-handlers/index.d.ts.map +0 -1
  365. package/dist/resource-handlers/index.js +0 -62
  366. package/dist/resource-handlers/index.js.map +0 -1
  367. package/dist/resource-handlers/system-prompt.d.ts +0 -15
  368. package/dist/resource-handlers/system-prompt.d.ts.map +0 -1
  369. package/dist/resource-handlers/system-prompt.js +0 -40
  370. package/dist/resource-handlers/system-prompt.js.map +0 -1
  371. package/dist/resource-handlers/workflow-resource.d.ts +0 -15
  372. package/dist/resource-handlers/workflow-resource.d.ts.map +0 -1
  373. package/dist/resource-handlers/workflow-resource.js +0 -85
  374. package/dist/resource-handlers/workflow-resource.js.map +0 -1
  375. package/dist/response-renderer.d.ts +0 -30
  376. package/dist/response-renderer.d.ts.map +0 -1
  377. package/dist/response-renderer.js +0 -94
  378. package/dist/response-renderer.js.map +0 -1
  379. package/dist/server-config.d.ts +0 -34
  380. package/dist/server-config.d.ts.map +0 -1
  381. package/dist/server-config.js +0 -503
  382. package/dist/server-config.js.map +0 -1
  383. package/dist/server-helpers.d.ts +0 -70
  384. package/dist/server-helpers.d.ts.map +0 -1
  385. package/dist/server-helpers.js +0 -171
  386. package/dist/server-helpers.js.map +0 -1
  387. package/dist/server-implementation.d.ts +0 -74
  388. package/dist/server-implementation.d.ts.map +0 -1
  389. package/dist/server-implementation.js +0 -201
  390. package/dist/server-implementation.js.map +0 -1
  391. package/dist/server.d.ts +0 -6
  392. package/dist/server.d.ts.map +0 -1
  393. package/dist/server.js +0 -5
  394. package/dist/server.js.map +0 -1
  395. package/dist/tool-handlers/base-tool-handler.d.ts +0 -50
  396. package/dist/tool-handlers/base-tool-handler.d.ts.map +0 -1
  397. package/dist/tool-handlers/base-tool-handler.js +0 -81
  398. package/dist/tool-handlers/base-tool-handler.js.map +0 -1
  399. package/dist/tool-handlers/conduct-review.d.ts +0 -49
  400. package/dist/tool-handlers/conduct-review.d.ts.map +0 -1
  401. package/dist/tool-handlers/conduct-review.js +0 -104
  402. package/dist/tool-handlers/conduct-review.js.map +0 -1
  403. package/dist/tool-handlers/get-tool-info.d.ts +0 -75
  404. package/dist/tool-handlers/get-tool-info.d.ts.map +0 -1
  405. package/dist/tool-handlers/get-tool-info.js +0 -168
  406. package/dist/tool-handlers/get-tool-info.js.map +0 -1
  407. package/dist/tool-handlers/index.d.ts +0 -41
  408. package/dist/tool-handlers/index.d.ts.map +0 -1
  409. package/dist/tool-handlers/index.js +0 -71
  410. package/dist/tool-handlers/index.js.map +0 -1
  411. package/dist/tool-handlers/list-workflows.d.ts +0 -35
  412. package/dist/tool-handlers/list-workflows.d.ts.map +0 -1
  413. package/dist/tool-handlers/list-workflows.js +0 -43
  414. package/dist/tool-handlers/list-workflows.js.map +0 -1
  415. package/dist/tool-handlers/no-idea.d.ts +0 -41
  416. package/dist/tool-handlers/no-idea.d.ts.map +0 -1
  417. package/dist/tool-handlers/no-idea.js +0 -29
  418. package/dist/tool-handlers/no-idea.js.map +0 -1
  419. package/dist/tool-handlers/proceed-to-phase.d.ts +0 -41
  420. package/dist/tool-handlers/proceed-to-phase.d.ts.map +0 -1
  421. package/dist/tool-handlers/proceed-to-phase.js +0 -165
  422. package/dist/tool-handlers/proceed-to-phase.js.map +0 -1
  423. package/dist/tool-handlers/reset-development.d.ts +0 -31
  424. package/dist/tool-handlers/reset-development.d.ts.map +0 -1
  425. package/dist/tool-handlers/reset-development.js +0 -48
  426. package/dist/tool-handlers/reset-development.js.map +0 -1
  427. package/dist/tool-handlers/resume-workflow.d.ts +0 -87
  428. package/dist/tool-handlers/resume-workflow.d.ts.map +0 -1
  429. package/dist/tool-handlers/resume-workflow.js +0 -212
  430. package/dist/tool-handlers/resume-workflow.js.map +0 -1
  431. package/dist/tool-handlers/setup-project-docs.d.ts +0 -37
  432. package/dist/tool-handlers/setup-project-docs.d.ts.map +0 -1
  433. package/dist/tool-handlers/setup-project-docs.js +0 -138
  434. package/dist/tool-handlers/setup-project-docs.js.map +0 -1
  435. package/dist/tool-handlers/start-development.d.ts +0 -79
  436. package/dist/tool-handlers/start-development.d.ts.map +0 -1
  437. package/dist/tool-handlers/start-development.js +0 -484
  438. package/dist/tool-handlers/start-development.js.map +0 -1
  439. package/dist/tool-handlers/whats-next.d.ts +0 -41
  440. package/dist/tool-handlers/whats-next.d.ts.map +0 -1
  441. package/dist/tool-handlers/whats-next.js +0 -123
  442. package/dist/tool-handlers/whats-next.js.map +0 -1
  443. package/dist/types.d.ts +0 -119
  444. package/dist/types.d.ts.map +0 -1
  445. package/dist/types.js +0 -5
  446. package/dist/version-info.d.ts +0 -30
  447. package/dist/version-info.d.ts.map +0 -1
  448. package/dist/version-info.js +0 -178
  449. package/dist/version-info.js.map +0 -1
  450. package/skill/SKILL.md +0 -28
  451. /package/{dist → packages/core/dist}/types.js.map +0 -0
@@ -0,0 +1,432 @@
1
+ /**
2
+ * Transition link renderer
3
+ * Handles rendering of transition arrows and labels between states
4
+ */
5
+
6
+ import * as d3 from 'd3';
7
+ import {
8
+ DiagramLink,
9
+ DiagramStyle,
10
+ InteractionEvent,
11
+ } from '../types/visualization-types';
12
+
13
+ export class TransitionRenderer {
14
+ private style: DiagramStyle;
15
+
16
+ constructor(style: DiagramStyle) {
17
+ this.style = style;
18
+ }
19
+
20
+ /**
21
+ * Render transition links in the diagram
22
+ */
23
+ public render(
24
+ container: d3.Selection<SVGGElement, unknown, null, undefined>,
25
+ links: DiagramLink[],
26
+ onInteraction: (event: InteractionEvent) => void
27
+ ): void {
28
+ console.log(`Rendering ${links.length} transition links`);
29
+
30
+ // Bind data to transition link groups
31
+ const linkGroups = container
32
+ .selectAll<SVGGElement, DiagramLink>('.transition-link')
33
+ .data(links, d => d.id);
34
+
35
+ // Remove old links
36
+ linkGroups.exit().remove();
37
+
38
+ // Create new link groups
39
+ const linkEnter = linkGroups
40
+ .enter()
41
+ .append('g')
42
+ .attr('class', d => `transition-link ${d.isSelfLoop ? 'self-loop' : ''}`)
43
+ .attr('data-id', d => d.id);
44
+
45
+ // Add paths for transitions
46
+ linkEnter
47
+ .append('path')
48
+ .attr('marker-end', 'url(#arrow)')
49
+ .style('fill', 'none')
50
+ .style('stroke', this.style.link.stroke)
51
+ .style('stroke-width', this.style.link.strokeWidth);
52
+
53
+ // Add labels for transitions
54
+ linkEnter
55
+ .append('text')
56
+ .attr('class', 'transition-label')
57
+ .attr('text-anchor', 'middle')
58
+ .attr('dominant-baseline', 'central')
59
+ .style('font-size', this.style.text.fontSize)
60
+ .style('font-family', this.style.text.fontFamily)
61
+ .style('fill', this.style.text.fill)
62
+ .text(d => this.formatLabel(d.label));
63
+
64
+ // Merge enter and update selections
65
+ const linkUpdate = linkEnter.merge(linkGroups);
66
+
67
+ // Update paths
68
+ linkUpdate
69
+ .select('path')
70
+ .attr('d', d => this.createPath(d))
71
+ .style('stroke', d => this.getLinkStroke(d))
72
+ .style('stroke-width', d => this.getLinkStrokeWidth(d))
73
+ .attr('marker-end', d => this.getMarkerEnd(d));
74
+
75
+ // Update labels
76
+ linkUpdate
77
+ .select('.transition-label')
78
+ .attr('transform', d => this.getLabelTransform(d))
79
+ .style('fill', d => this.getLabelFill(d))
80
+ .style('font-weight', d => this.getLabelWeight(d));
81
+
82
+ // Add event listeners
83
+ this.addEventListeners(linkUpdate, onInteraction);
84
+ }
85
+
86
+ /**
87
+ * Create SVG path for a transition link
88
+ */
89
+ private createPath(link: DiagramLink): string {
90
+ const source =
91
+ typeof link.source === 'object' ? link.source : { x: 0, y: 0 };
92
+ const target =
93
+ typeof link.target === 'object' ? link.target : { x: 0, y: 0 };
94
+
95
+ if (link.isSelfLoop) {
96
+ return this.createSelfLoopPath(source);
97
+ }
98
+
99
+ return this.createRegularPath(source, target);
100
+ }
101
+
102
+ /**
103
+ * Create path for self-loop transitions
104
+ */
105
+ private createSelfLoopPath(node: { x?: number; y?: number }): string {
106
+ const x = node.x || 0;
107
+ const y = node.y || 0;
108
+ const radius = 25;
109
+ const offset = 45;
110
+
111
+ // Create a circular arc above the node
112
+ const startX = x - radius;
113
+ const startY = y - offset;
114
+ const endX = x + radius;
115
+ const endY = y - offset;
116
+
117
+ return `M ${startX} ${startY}
118
+ A ${radius} ${radius} 0 1 1 ${endX} ${endY}
119
+ L ${x} ${y - 40}`;
120
+ }
121
+
122
+ /**
123
+ * Create path for regular transitions between different states
124
+ */
125
+ private createRegularPath(
126
+ source: { x?: number; y?: number },
127
+ target: { x?: number; y?: number }
128
+ ): string {
129
+ const sx = source.x || 0;
130
+ const sy = source.y || 0;
131
+ const tx = target.x || 0;
132
+ const ty = target.y || 0;
133
+
134
+ // Calculate the angle and distance
135
+ const dx = tx - sx;
136
+ const dy = ty - sy;
137
+ const distance = Math.sqrt(dx * dx + dy * dy);
138
+
139
+ if (distance === 0) {
140
+ return `M ${sx} ${sy} L ${tx} ${ty}`;
141
+ }
142
+
143
+ // Calculate node edge points (accounting for node radius)
144
+ const nodeRadius = 40;
145
+ const sourceEdgeX = sx + (dx / distance) * nodeRadius;
146
+ const sourceEdgeY = sy + (dy / distance) * nodeRadius;
147
+ const targetEdgeX = tx - (dx / distance) * nodeRadius;
148
+ const targetEdgeY = ty - (dy / distance) * nodeRadius;
149
+
150
+ // For curved paths, add some curvature for better visual separation
151
+ if (this.shouldUseCurvedPath(source, target)) {
152
+ return this.createCurvedPath(
153
+ { x: sourceEdgeX, y: sourceEdgeY },
154
+ { x: targetEdgeX, y: targetEdgeY }
155
+ );
156
+ }
157
+
158
+ // Straight line
159
+ return `M ${sourceEdgeX} ${sourceEdgeY} L ${targetEdgeX} ${targetEdgeY}`;
160
+ }
161
+
162
+ /**
163
+ * Determine if a curved path should be used
164
+ */
165
+ private shouldUseCurvedPath(
166
+ source: { x?: number; y?: number },
167
+ target: { x?: number; y?: number }
168
+ ): boolean {
169
+ const dx = (target.x || 0) - (source.x || 0);
170
+ const dy = (target.y || 0) - (source.y || 0);
171
+ const distance = Math.sqrt(dx * dx + dy * dy);
172
+
173
+ // Use curved paths for longer connections
174
+ return distance > 150;
175
+ }
176
+
177
+ /**
178
+ * Create a curved path between two points
179
+ */
180
+ private createCurvedPath(
181
+ source: { x: number; y: number },
182
+ target: { x: number; y: number }
183
+ ): string {
184
+ const dx = target.x - source.x;
185
+ const dy = target.y - source.y;
186
+
187
+ // Calculate control point for quadratic curve
188
+ const midX = (source.x + target.x) / 2;
189
+ const midY = (source.y + target.y) / 2;
190
+
191
+ // Offset control point perpendicular to the line
192
+ const perpX = -dy * 0.2;
193
+ const perpY = dx * 0.2;
194
+
195
+ const controlX = midX + perpX;
196
+ const controlY = midY + perpY;
197
+
198
+ return `M ${source.x} ${source.y} Q ${controlX} ${controlY} ${target.x} ${target.y}`;
199
+ }
200
+
201
+ /**
202
+ * Get label transform for positioning
203
+ */
204
+ private getLabelTransform(link: DiagramLink): string {
205
+ if (link.isSelfLoop) {
206
+ const source =
207
+ typeof link.source === 'object' ? link.source : { x: 0, y: 0 };
208
+ const x = source.x || 0;
209
+ const y = (source.y || 0) - 60;
210
+ return `translate(${x}, ${y})`;
211
+ }
212
+
213
+ const source =
214
+ typeof link.source === 'object' ? link.source : { x: 0, y: 0 };
215
+ const target =
216
+ typeof link.target === 'object' ? link.target : { x: 0, y: 0 };
217
+
218
+ const midX = ((source.x || 0) + (target.x || 0)) / 2;
219
+ const midY = ((source.y || 0) + (target.y || 0)) / 2;
220
+
221
+ return `translate(${midX}, ${midY})`;
222
+ }
223
+
224
+ /**
225
+ * Get link stroke color based on state
226
+ */
227
+ private getLinkStroke(link: DiagramLink): string {
228
+ const element = d3.select(`[data-id="${link.id}"]`);
229
+
230
+ // Check if element exists and has classList
231
+ if (element.empty() || !element.node()) {
232
+ return this.style.link.stroke;
233
+ }
234
+
235
+ if (element.classed('highlighted')) {
236
+ return '#d97706'; // warning color
237
+ }
238
+
239
+ if (element.classed('selected')) {
240
+ return this.style.link.selectedStroke;
241
+ }
242
+
243
+ return this.style.link.stroke;
244
+ }
245
+
246
+ /**
247
+ * Get link stroke width based on state
248
+ */
249
+ private getLinkStrokeWidth(link: DiagramLink): number {
250
+ const element = d3.select(`[data-id="${link.id}"]`);
251
+
252
+ // Check if element exists and has classList
253
+ if (element.empty() || !element.node()) {
254
+ return this.style.link.strokeWidth;
255
+ }
256
+
257
+ if (element.classed('highlighted')) {
258
+ return 4;
259
+ }
260
+
261
+ if (element.classed('selected')) {
262
+ return this.style.link.selectedStrokeWidth;
263
+ }
264
+
265
+ return this.style.link.strokeWidth;
266
+ }
267
+
268
+ /**
269
+ * Get marker end for arrow
270
+ */
271
+ private getMarkerEnd(link: DiagramLink): string {
272
+ const element = d3.select(`[data-id="${link.id}"]`);
273
+
274
+ // Check if element exists and has classList
275
+ if (element.empty() || !element.node()) {
276
+ return 'url(#arrow)';
277
+ }
278
+
279
+ if (element.classed('highlighted') || element.classed('selected')) {
280
+ return 'url(#arrow-highlighted)';
281
+ }
282
+
283
+ return 'url(#arrow)';
284
+ }
285
+
286
+ /**
287
+ * Get label fill color based on link state
288
+ */
289
+ private getLabelFill(link: DiagramLink): string {
290
+ const element = d3.select(`[data-id="${link.id}"]`);
291
+
292
+ // Check if element exists and has classList
293
+ if (element.empty() || !element.node()) {
294
+ return this.style.text.fill;
295
+ }
296
+
297
+ if (element.classed('highlighted')) {
298
+ return '#d97706'; // warning color
299
+ }
300
+
301
+ if (element.classed('selected')) {
302
+ return this.style.link.selectedStroke;
303
+ }
304
+
305
+ return this.style.text.fill;
306
+ }
307
+
308
+ /**
309
+ * Get label font weight based on link state
310
+ */
311
+ private getLabelWeight(link: DiagramLink): string {
312
+ const element = d3.select(`[data-id="${link.id}"]`);
313
+
314
+ // Check if element exists and has classList
315
+ if (element.empty() || !element.node()) {
316
+ return '400';
317
+ }
318
+
319
+ if (element.classed('highlighted') || element.classed('selected')) {
320
+ return '600';
321
+ }
322
+
323
+ return '400';
324
+ }
325
+
326
+ /**
327
+ * Format label text to fit
328
+ */
329
+ private formatLabel(label: string): string {
330
+ // Truncate long labels
331
+ if (label.length > 15) {
332
+ return label.substring(0, 13) + '...';
333
+ }
334
+
335
+ return label;
336
+ }
337
+
338
+ /**
339
+ * Add event listeners to link groups
340
+ */
341
+ private addEventListeners(
342
+ linkGroups: d3.Selection<SVGGElement, DiagramLink, SVGGElement, unknown>,
343
+ onInteraction: (event: InteractionEvent) => void
344
+ ): void {
345
+ linkGroups
346
+ .style('cursor', 'pointer')
347
+ .on('click', (event: MouseEvent, d: DiagramLink) => {
348
+ event.stopPropagation();
349
+ onInteraction({
350
+ type: 'click',
351
+ elementType: 'link',
352
+ elementId: d.id,
353
+ data: d,
354
+ originalEvent: event,
355
+ });
356
+ })
357
+ .on('mouseenter', (event: MouseEvent, d: DiagramLink) => {
358
+ onInteraction({
359
+ type: 'hover',
360
+ elementType: 'link',
361
+ elementId: d.id,
362
+ data: d,
363
+ originalEvent: event,
364
+ });
365
+ })
366
+ .on('mouseleave', (event: MouseEvent, d: DiagramLink) => {
367
+ onInteraction({
368
+ type: 'unhover',
369
+ elementType: 'link',
370
+ elementId: d.id,
371
+ data: d,
372
+ originalEvent: event,
373
+ });
374
+ });
375
+ }
376
+
377
+ /**
378
+ * Update link selection state
379
+ */
380
+ public updateSelection(selectedLinkId: string | null): void {
381
+ // Clear all selections
382
+ d3.selectAll('.transition-link').classed('selected', false);
383
+
384
+ // Set new selection
385
+ if (selectedLinkId) {
386
+ d3.select(`[data-id="${selectedLinkId}"]`).classed('selected', true);
387
+ }
388
+ }
389
+
390
+ /**
391
+ * Update link highlight state
392
+ */
393
+ public updateHighlights(highlightedLinkIds: string[]): void {
394
+ // Clear all highlights
395
+ d3.selectAll('.transition-link').classed('highlighted', false);
396
+
397
+ // Set new highlights
398
+ for (const linkId of highlightedLinkIds) {
399
+ d3.select(`[data-id="${linkId}"]`).classed('highlighted', true);
400
+ }
401
+ }
402
+
403
+ /**
404
+ * Animate link entrance
405
+ */
406
+ public animateEntrance(
407
+ linkGroups: d3.Selection<SVGGElement, DiagramLink, SVGGElement, unknown>
408
+ ): void {
409
+ linkGroups
410
+ .select('path')
411
+ .style('opacity', 0)
412
+ .transition()
413
+ .duration(750)
414
+ .delay((_d, i) => i * 50)
415
+ .style('opacity', 1);
416
+
417
+ linkGroups
418
+ .select('.transition-label')
419
+ .style('opacity', 0)
420
+ .transition()
421
+ .duration(500)
422
+ .delay((_d, i) => i * 50 + 250)
423
+ .style('opacity', 1);
424
+ }
425
+
426
+ /**
427
+ * Update style configuration
428
+ */
429
+ public updateStyle(style: DiagramStyle): void {
430
+ this.style = style;
431
+ }
432
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@codemcp/workflows-visualizer",
3
+ "version": "6.0.1",
4
+ "type": "module",
5
+ "main": "dist/index.ts",
6
+ "module": "dist/index.ts",
7
+ "exports": {
8
+ ".": "./dist/index.ts",
9
+ "./dist/*": "./dist/*"
10
+ },
11
+ "files": [
12
+ "dist"
13
+ ],
14
+ "scripts": {
15
+ "prebuild": "node ../../scripts/generate-workflow-list.js",
16
+ "build": "mkdir -p dist && cp -r src/* dist/",
17
+ "dev": "npm run prebuild && nodemon --watch src --ext ts,vue,js --ignore 'src/services/workflow-list.ts' --ignore 'dist/**/*' --exec 'npm run build'",
18
+ "clean:build": "rimraf ./dist",
19
+ "lint": "oxlint .",
20
+ "lint:fix": "oxlint --fix .",
21
+ "format:check": "prettier --check .",
22
+ "format": "prettier --write ."
23
+ },
24
+ "dependencies": {
25
+ "d3": "^7.9.0",
26
+ "js-yaml": "^4.1.0",
27
+ "marked": "^16.4.1",
28
+ "vue": "^3.5.22"
29
+ },
30
+ "devDependencies": {
31
+ "@types/node": "^20.19.23",
32
+ "nodemon": "^3.1.10",
33
+ "rimraf": "^5.0.10",
34
+ "typescript": "^5.9.3"
35
+ },
36
+ "peerDependencies": {
37
+ "vue": "^3.4.0"
38
+ }
39
+ }
Binary file
@@ -0,0 +1,61 @@
1
+ name: architect
2
+ displayName: Software Architect
3
+ systemPrompt: |
4
+ You are working as an architect in a collaborative software development team.
5
+
6
+ Your team consists of:
7
+ - Business Analyst: Requirements and specifications
8
+ - Architect (you): System design and planning
9
+ - Developer: Implementation
10
+
11
+ ## How Collaboration Works
12
+
13
+ You follow structured workflows that guide you through development phases. In each phase:
14
+ - You may be RESPONSIBLE (driving the work), CONSULTED (available for questions), or INFORMED (monitoring progress)
15
+ - The workflow instructions will tell you your role and what to do
16
+
17
+ ## Available Tools
18
+
19
+ **Workflow Navigation (responsible-vibe-mcp):**
20
+ - `whats_next()`: Call this after EVERY user message to get phase-specific guidance
21
+ - `proceed_to_phase()`: Move to the next phase when your work is complete (only when responsible)
22
+
23
+ **Team Communication (crowd-mcp):**
24
+ - `send_message_to_operator(content)`: Report to the human operator (completion, questions, blockers)
25
+ - `send_message(to, content)`: Send message to another agent (business-analyst or developer)
26
+ - `get_my_messages()`: Check for messages from other team members
27
+ - `discover_agents()`: See which team members are active
28
+
29
+ ## Important Rules
30
+
31
+ 1. **Always call `whats_next()` after each user message** to stay on track
32
+ 2. **Follow your role**: Only edit plan files and proceed when you're RESPONSIBLE. Always mention your name as author after each line you modify.
33
+ 3. **Communicate proactively**: Use `send_message` to collaborate with team members
34
+ 4. **Keep operator informed**: Use `send_message_to_operator` for status updates
35
+ 5. **Respond to messages**: Monitor `get_my_messages()` and respond when consulted
36
+
37
+ The workflow will provide detailed instructions for each phase. Trust the workflow and use your tools effectively.
38
+
39
+ preferredModels:
40
+ - claude-sonnet-4.5-20250929
41
+ - claude-sonnet-3.7-20250219
42
+
43
+ llmSettings:
44
+ temperature: 0.3
45
+ reasoningEffort: medium
46
+
47
+ mcpServers:
48
+ workflows:
49
+ type: stdio
50
+ command: npx
51
+ args:
52
+ - '@codemcp/workflows-server@latest'
53
+ env:
54
+ VIBE_ROLE: architect
55
+ VIBE_WORKFLOW_DOMAINS: sdd-crowd
56
+
57
+ capabilities:
58
+ - system-design
59
+ - api-design
60
+ - architecture-documentation
61
+ - technical-planning
@@ -0,0 +1,60 @@
1
+ name: business-analyst
2
+ displayName: Business Analyst
3
+ systemPrompt: |
4
+ You are working as a business-analyst in a collaborative software development team.
5
+
6
+ Your team consists of:
7
+ - Business Analyst (you): Requirements and specifications
8
+ - Architect: System design and planning
9
+ - Developer: Implementation
10
+
11
+ ## How Collaboration Works
12
+
13
+ You follow structured workflows that guide you through development phases. In each phase:
14
+ - You may be RESPONSIBLE (driving the work), CONSULTED (available for questions), or INFORMED (monitoring progress)
15
+ - The workflow instructions will tell you your role and what to do
16
+
17
+ ## Available Tools
18
+
19
+ **Workflow Navigation (responsible-vibe-mcp):**
20
+ - `whats_next()`: Call this after EVERY user message to get phase-specific guidance
21
+ - `proceed_to_phase()`: Move to the next phase when your work is complete (only when responsible)
22
+
23
+ **Team Communication (crowd-mcp):**
24
+ - `send_message_to_operator(content)`: Report to the human operator (completion, questions, blockers)
25
+ - `send_message(to, content)`: Send message to another agent (architect or developer)
26
+ - `get_my_messages()`: Check for messages from other team members
27
+ - `discover_agents()`: See which team members are active
28
+
29
+ ## Important Rules
30
+
31
+ 1. **Always call `whats_next()` after each user message** to stay on track
32
+ 2. **Follow your role**: Only edit plan files and proceed when you're RESPONSIBLE. Always mention your name as author after each line you modify.
33
+ 3. **Communicate proactively**: Use `send_message` to collaborate with team members
34
+ 4. **Keep operator informed**: Use `send_message_to_operator` for status updates
35
+ 5. **Respond to messages**: Monitor `get_my_messages()` and respond when consulted
36
+
37
+ The workflow will provide detailed instructions for each phase. Trust the workflow and use your tools effectively.
38
+
39
+ preferredModels:
40
+ - claude-sonnet-4.5-20250929
41
+ - claude-sonnet-3.7-20250219
42
+
43
+ llmSettings:
44
+ temperature: 0.3
45
+ reasoningEffort: medium
46
+
47
+ mcpServers:
48
+ workflows:
49
+ type: stdio
50
+ command: npx
51
+ args:
52
+ - '@codemcp/workflows-server@latest'
53
+ env:
54
+ VIBE_ROLE: business-analyst
55
+ VIBE_WORKFLOW_DOMAINS: sdd-crowd
56
+
57
+ capabilities:
58
+ - requirements-gathering
59
+ - specification-writing
60
+ - user-story-creation
@@ -0,0 +1,61 @@
1
+ name: developer
2
+ displayName: Software Developer
3
+ systemPrompt: |
4
+ You are working as a developer in a collaborative software development team.
5
+
6
+ Your team consists of:
7
+ - Business Analyst: Requirements and specifications
8
+ - Architect: System design and planning
9
+ - Developer (you): Implementation
10
+
11
+ ## How Collaboration Works
12
+
13
+ You follow structured workflows that guide you through development phases. In each phase:
14
+ - You may be RESPONSIBLE (driving the work), CONSULTED (available for questions), or INFORMED (monitoring progress)
15
+ - The workflow instructions will tell you your role and what to do
16
+
17
+ ## Available Tools
18
+
19
+ **Workflow Navigation (responsible-vibe-mcp):**
20
+ - `whats_next()`: Call this after EVERY user message to get phase-specific guidance
21
+ - `proceed_to_phase()`: Move to the next phase when your work is complete (only when responsible)
22
+
23
+ **Team Communication (crowd-mcp):**
24
+ - `send_message_to_operator(content)`: Report to the human operator (completion, questions, blockers)
25
+ - `send_message(to, content)`: Send message to another agent (business-analyst or architect)
26
+ - `get_my_messages()`: Check for messages from other team members
27
+ - `discover_agents()`: See which team members are active
28
+
29
+ ## Important Rules
30
+
31
+ 1. **Always call `whats_next()` after each user message** to stay on track
32
+ 2. **Follow your role**: Only edit plan files and proceed when you're RESPONSIBLE. Always mention your name as author after each line you modify.
33
+ 3. **Communicate proactively**: Use `send_message` to collaborate with team members
34
+ 4. **Keep operator informed**: Use `send_message_to_operator` for status updates
35
+ 5. **Respond to messages**: Monitor `get_my_messages()` and respond when consulted
36
+
37
+ The workflow will provide detailed instructions for each phase. Trust the workflow and use your tools effectively.
38
+
39
+ preferredModels:
40
+ - claude-sonnet-4.5-20250929
41
+ - claude-sonnet-3.7-20250219
42
+
43
+ llmSettings:
44
+ temperature: 0.2
45
+ reasoningEffort: low
46
+
47
+ mcpServers:
48
+ workflows:
49
+ type: stdio
50
+ command: npx
51
+ args:
52
+ - '@codemcp/workflows-server@latest'
53
+ env:
54
+ VIBE_ROLE: developer
55
+ VIBE_WORKFLOW_DOMAINS: sdd-crowd
56
+
57
+ capabilities:
58
+ - implementation
59
+ - testing
60
+ - refactoring
61
+ - debugging