@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,21 @@
1
+ #!/usr/bin/env node
2
+
3
+ // src/index.ts
4
+ import { fileURLToPath } from "url";
5
+ import { dirname, join } from "path";
6
+ import { existsSync } from "fs";
7
+ var __filename = fileURLToPath(import.meta.url);
8
+ var __dirname = dirname(__filename);
9
+ var args = process.argv.slice(2);
10
+ if (args.length === 0) {
11
+ const isLocal = existsSync(join(__dirname, "../../mcp-server/dist/index.js"));
12
+ if (isLocal) {
13
+ import("./dist-UGVUJIDN.js");
14
+ } else {
15
+ const mcpServerModule = "@codemcp/workflows-server";
16
+ import(mcpServerModule);
17
+ }
18
+ } else {
19
+ const { runCli } = await import("./cli-CZ4FMSWR.js");
20
+ await runCli();
21
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@codemcp/workflows-cli",
3
+ "version": "6.0.1",
4
+ "description": "CLI tools for responsible-vibe development workflows",
5
+ "type": "module",
6
+ "scripts": {
7
+ "build": "tsup && pnpm copy-resources",
8
+ "copy-resources": "rm -rf resources && cp -r ../core/resources .",
9
+ "build:tsc": "tsc -p tsconfig.build.json",
10
+ "test": "vitest --run",
11
+ "clean:build": "rimraf ./dist",
12
+ "lint": "oxlint .",
13
+ "lint:fix": "oxlint --fix .",
14
+ "format:check": "prettier --check .",
15
+ "format": "prettier --write ."
16
+ },
17
+ "dependencies": {},
18
+ "devDependencies": {
19
+ "@codemcp/workflows-core": "workspace:*",
20
+ "@codemcp/workflows-server": "workspace:*",
21
+ "@types/node": "^22.0.0",
22
+ "rimraf": "^5.0.10",
23
+ "tsup": "^8.0.0",
24
+ "typescript": "^5.9.3",
25
+ "vitest": "4.0.18"
26
+ },
27
+ "private": true
28
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Beads Integration Utilities
3
+ *
4
+ * Provides utilities for integrating with beads distributed issue tracker:
5
+ * - Project epic creation
6
+ * - Phase task management
7
+ * - Task hierarchy setup
8
+ */
9
+ import { YamlState } from './state-machine-types.js';
10
+ export interface BeadsPhaseTask {
11
+ phaseId: string;
12
+ phaseName: string;
13
+ taskId: string;
14
+ }
15
+ /**
16
+ * Beads integration manager for the workflows server
17
+ */
18
+ export declare class BeadsIntegration {
19
+ private projectPath;
20
+ constructor(projectPath: string);
21
+ /**
22
+ * Ensure beads is initialized in the project directory
23
+ */
24
+ private ensureBeadsInitialized;
25
+ /**
26
+ * Create a project epic in beads for the development session
27
+ */
28
+ createProjectEpic(projectName: string, workflowName: string, description?: string, planFilename?: string): Promise<string>;
29
+ /**
30
+ * Create phase tasks for all workflow phases under the project epic
31
+ */
32
+ createPhaseTasks(epicId: string, phases: Record<string, YamlState>, workflowName: string): Promise<BeadsPhaseTask[]>;
33
+ /**
34
+ * Create sequential dependencies between workflow phase tasks
35
+ * Implements graceful error handling: logs warnings for failed dependencies but continues
36
+ */
37
+ createPhaseDependencies(phaseTasks: BeadsPhaseTask[]): Promise<void>;
38
+ /**
39
+ * Capitalize phase name for display
40
+ */
41
+ private capitalizePhase;
42
+ /**
43
+ * Validate parameters for epic creation
44
+ */
45
+ private validateCreateEpicParameters;
46
+ /**
47
+ * Validate parameters for phase task creation
48
+ */
49
+ private validateCreatePhaseParameters;
50
+ }
@@ -0,0 +1,387 @@
1
+ /**
2
+ * Beads Integration Utilities
3
+ *
4
+ * Provides utilities for integrating with beads distributed issue tracker:
5
+ * - Project epic creation
6
+ * - Phase task management
7
+ * - Task hierarchy setup
8
+ */
9
+ import { execSync } from 'node:child_process';
10
+ import { createLogger } from './logger.js';
11
+ const logger = createLogger('BeadsIntegration');
12
+ /**
13
+ * Beads integration manager for the workflows server
14
+ */
15
+ export class BeadsIntegration {
16
+ projectPath;
17
+ constructor(projectPath) {
18
+ this.projectPath = projectPath;
19
+ }
20
+ /**
21
+ * Ensure beads is initialized in the project directory
22
+ */
23
+ async ensureBeadsInitialized() {
24
+ try {
25
+ // Check if beads is already initialized by running a simple command
26
+ execSync('bd list --limit 1', {
27
+ cwd: this.projectPath,
28
+ encoding: 'utf-8',
29
+ stdio: ['ignore', 'pipe', 'pipe'],
30
+ });
31
+ // If we get here, beads is already initialized
32
+ return;
33
+ }
34
+ catch (error) {
35
+ const errorMessage = error instanceof Error ? error.message : String(error);
36
+ // Check if the error suggests beads is not initialized
37
+ if (errorMessage.includes('not initialized') ||
38
+ errorMessage.includes('no database') ||
39
+ errorMessage.includes('init')) {
40
+ logger.info('Beads not initialized, running bd init --no-db', {
41
+ projectPath: this.projectPath,
42
+ });
43
+ try {
44
+ // Initialize beads without database
45
+ execSync('bd init --no-db', {
46
+ cwd: this.projectPath,
47
+ encoding: 'utf-8',
48
+ stdio: ['ignore', 'pipe', 'pipe'],
49
+ });
50
+ logger.info('Successfully initialized beads in project', {
51
+ projectPath: this.projectPath,
52
+ });
53
+ }
54
+ catch (initError) {
55
+ const initErrorMessage = initError instanceof Error ? initError.message : String(initError);
56
+ logger.error('Failed to initialize beads', initError instanceof Error
57
+ ? initError
58
+ : new Error(initErrorMessage), { projectPath: this.projectPath });
59
+ throw new Error(`Failed to initialize beads: ${initErrorMessage}`);
60
+ }
61
+ }
62
+ else {
63
+ // Some other beads error, re-throw
64
+ throw error;
65
+ }
66
+ }
67
+ }
68
+ /**
69
+ * Create a project epic in beads for the development session
70
+ */
71
+ async createProjectEpic(projectName, workflowName, description, planFilename) {
72
+ // Validate parameters first
73
+ this.validateCreateEpicParameters(projectName, workflowName, description, planFilename);
74
+ // Ensure beads is initialized
75
+ await this.ensureBeadsInitialized();
76
+ const epicTitle = planFilename
77
+ ? `${projectName}: ${workflowName} (${planFilename})`
78
+ : `${projectName}: ${workflowName}`;
79
+ const epicDescription = description ||
80
+ `Responsible vibe engineering session using ${workflowName} workflow for ${projectName}`;
81
+ const priority = 2;
82
+ const command = `bd create "${epicTitle}" --description "${epicDescription}" --priority ${priority}`;
83
+ logger.debug('Creating beads project epic', {
84
+ command,
85
+ projectName,
86
+ workflowName,
87
+ projectPath: this.projectPath,
88
+ });
89
+ try {
90
+ const output = execSync(command, {
91
+ cwd: this.projectPath,
92
+ encoding: 'utf-8',
93
+ stdio: ['ignore', 'pipe', 'pipe'],
94
+ });
95
+ // Extract task ID from beads output
96
+ // Support both new format (v0.47.1+): "✓ Created issue: project-name-123"
97
+ // and legacy format: "Created bd-a1b2c3"
98
+ const match = output.match(/✓ Created issue: ([\w\d.-]+)/) ||
99
+ output.match(/Created issue: ([\w\d.-]+)/) ||
100
+ output.match(/Created (bd-[\w\d.]+)/);
101
+ if (!match) {
102
+ logger.warn('Failed to extract task ID from beads output', {
103
+ command: `bd create "${epicTitle}" --description "${epicDescription}" --priority 2`,
104
+ output: output.slice(0, 200), // Truncated for logging
105
+ });
106
+ throw new Error(`Failed to extract task ID from beads output: ${output.slice(0, 100)}...`);
107
+ }
108
+ const epicId = match[1] || '';
109
+ logger.info('Created beads project epic', {
110
+ epicId,
111
+ epicTitle,
112
+ projectPath: this.projectPath,
113
+ });
114
+ return epicId;
115
+ }
116
+ catch (error) {
117
+ const errorMessage = error instanceof Error ? error.message : String(error);
118
+ const commandInfo = {
119
+ command,
120
+ projectName,
121
+ workflowName,
122
+ projectPath: this.projectPath,
123
+ };
124
+ logger.error('Failed to create beads project epic', error instanceof Error ? error : new Error(errorMessage), commandInfo);
125
+ // Include stderr if available for better debugging
126
+ const execError = error;
127
+ if (execError?.stderr) {
128
+ logger.error('Beads command stderr output', new Error('Command stderr'), {
129
+ stderr: execError.stderr.toString(),
130
+ ...commandInfo,
131
+ });
132
+ }
133
+ throw new Error(`Failed to create beads project epic: ${errorMessage}`);
134
+ }
135
+ }
136
+ /**
137
+ * Create phase tasks for all workflow phases under the project epic
138
+ */
139
+ async createPhaseTasks(epicId, phases, workflowName) {
140
+ // Validate parameters
141
+ this.validateCreatePhaseParameters(epicId, phases, workflowName);
142
+ const phaseTasks = [];
143
+ const phaseNames = Object.keys(phases);
144
+ for (const phase of phaseNames) {
145
+ const phaseTitle = `${this.capitalizePhase(phase)}`;
146
+ const priority = 3;
147
+ const stateDefinition = phases[phase];
148
+ // Escape the description to prevent shell injection and handle special characters
149
+ const description = (stateDefinition?.default_instructions ||
150
+ `${workflowName} workflow ${phase} phase tasks`)
151
+ .replace(/"/g, '\\"') // Escape double quotes
152
+ .replace(/\n/g, ' ') // Replace newlines with spaces
153
+ .replace(/\r/g, '') // Remove carriage returns
154
+ .trim();
155
+ const command = `bd create "${phaseTitle}" --description "${description}" --parent ${epicId} --priority ${priority}`;
156
+ logger.debug('Creating beads phase task', {
157
+ command,
158
+ phase,
159
+ epicId,
160
+ projectPath: this.projectPath,
161
+ });
162
+ try {
163
+ const output = execSync(command, {
164
+ cwd: this.projectPath,
165
+ encoding: 'utf-8',
166
+ stdio: ['ignore', 'pipe', 'pipe'],
167
+ });
168
+ // Extract task ID from beads output
169
+ // Support both new format (v0.47.1+): "✓ Created issue: project-name-123"
170
+ // and legacy format: "Created bd-a1b2c3"
171
+ const match = output.match(/✓ Created issue: ([\w\d.-]+)/) ||
172
+ output.match(/Created issue: ([\w\d.-]+)/) ||
173
+ output.match(/Created (bd-[\w\d.]+)/);
174
+ if (!match) {
175
+ logger.warn('Failed to extract phase task ID from beads output', {
176
+ command,
177
+ output: output.slice(0, 200), // Truncated for logging
178
+ });
179
+ throw new Error(`Failed to extract task ID from beads output: ${output.slice(0, 100)}...`);
180
+ }
181
+ const phaseTaskId = match[1] || '';
182
+ phaseTasks.push({
183
+ phaseId: phase,
184
+ phaseName: phaseTitle,
185
+ taskId: phaseTaskId,
186
+ });
187
+ logger.debug('Created beads phase task', {
188
+ phase,
189
+ phaseTaskId,
190
+ epicId,
191
+ projectPath: this.projectPath,
192
+ });
193
+ }
194
+ catch (error) {
195
+ const errorMessage = error instanceof Error ? error.message : String(error);
196
+ const commandInfo = {
197
+ command,
198
+ phase,
199
+ epicId,
200
+ projectPath: this.projectPath,
201
+ };
202
+ logger.error('Failed to create beads phase task', error instanceof Error ? error : new Error(errorMessage), commandInfo);
203
+ // Include stderr if available for better debugging
204
+ const execError = error;
205
+ if (execError?.stderr) {
206
+ logger.error('Beads phase command stderr output', new Error('Command stderr'), {
207
+ stderr: execError.stderr.toString(),
208
+ ...commandInfo,
209
+ });
210
+ }
211
+ throw new Error(`Failed to create beads phase task for ${phase}: ${errorMessage}`);
212
+ }
213
+ }
214
+ logger.info('Created all beads phase tasks', {
215
+ count: phaseTasks.length,
216
+ epicId,
217
+ projectPath: this.projectPath,
218
+ });
219
+ return phaseTasks;
220
+ }
221
+ /**
222
+ * Create sequential dependencies between workflow phase tasks
223
+ * Implements graceful error handling: logs warnings for failed dependencies but continues
224
+ */
225
+ async createPhaseDependencies(phaseTasks) {
226
+ if (phaseTasks.length < 2) {
227
+ logger.debug('Skipping phase dependencies - less than 2 phases', {
228
+ phaseCount: phaseTasks.length,
229
+ projectPath: this.projectPath,
230
+ });
231
+ return;
232
+ }
233
+ logger.info('Creating sequential phase dependencies', {
234
+ phaseCount: phaseTasks.length,
235
+ projectPath: this.projectPath,
236
+ });
237
+ // Track failed dependencies for logging
238
+ const failedDependencies = [];
239
+ // Create dependencies in sequence: each phase blocks the next one
240
+ for (let i = 0; i < phaseTasks.length - 1; i++) {
241
+ const currentPhase = phaseTasks[i];
242
+ const nextPhase = phaseTasks[i + 1];
243
+ if (!currentPhase || !nextPhase) {
244
+ logger.warn('Skipping phase dependency - missing phase data', {
245
+ currentPhaseIndex: i,
246
+ nextPhaseIndex: i + 1,
247
+ totalPhases: phaseTasks.length,
248
+ projectPath: this.projectPath,
249
+ });
250
+ failedDependencies.push({
251
+ from: `Phase ${i}`,
252
+ to: `Phase ${i + 1}`,
253
+ error: 'Missing phase data',
254
+ });
255
+ continue;
256
+ }
257
+ const command = `bd dep ${currentPhase.taskId} --blocks ${nextPhase.taskId}`;
258
+ logger.debug('Creating phase dependency', {
259
+ command,
260
+ currentPhase: currentPhase.phaseName,
261
+ nextPhase: nextPhase.phaseName,
262
+ currentTaskId: currentPhase.taskId,
263
+ nextTaskId: nextPhase.taskId,
264
+ projectPath: this.projectPath,
265
+ });
266
+ try {
267
+ execSync(command, {
268
+ cwd: this.projectPath,
269
+ encoding: 'utf-8',
270
+ stdio: ['ignore', 'pipe', 'pipe'],
271
+ });
272
+ logger.debug('Successfully created phase dependency', {
273
+ currentPhase: currentPhase.phaseName,
274
+ nextPhase: nextPhase.phaseName,
275
+ projectPath: this.projectPath,
276
+ });
277
+ }
278
+ catch (error) {
279
+ // Log as warning but don't fail the entire setup
280
+ const errorMessage = error instanceof Error ? error.message : String(error);
281
+ logger.warn('Failed to create phase dependency - continuing anyway', {
282
+ error: errorMessage,
283
+ command,
284
+ currentPhase: currentPhase.phaseName,
285
+ nextPhase: nextPhase.phaseName,
286
+ projectPath: this.projectPath,
287
+ });
288
+ // Include stderr if available for better debugging
289
+ const execError = error;
290
+ if (execError?.stderr) {
291
+ logger.debug('Beads dependency command stderr', {
292
+ stderr: execError.stderr.toString(),
293
+ command,
294
+ projectPath: this.projectPath,
295
+ });
296
+ }
297
+ // Track failed dependency but continue
298
+ failedDependencies.push({
299
+ from: currentPhase.phaseName,
300
+ to: nextPhase.phaseName,
301
+ error: errorMessage,
302
+ });
303
+ }
304
+ }
305
+ if (failedDependencies.length > 0) {
306
+ logger.warn('Some phase dependencies could not be created - app continues without these dependencies', {
307
+ failedCount: failedDependencies.length,
308
+ failedDependencies,
309
+ projectPath: this.projectPath,
310
+ });
311
+ }
312
+ logger.info('Completed phase dependency creation', {
313
+ dependencyCount: phaseTasks.length - 1,
314
+ successCount: phaseTasks.length - 1 - failedDependencies.length,
315
+ failedCount: failedDependencies.length,
316
+ projectPath: this.projectPath,
317
+ });
318
+ }
319
+ /**
320
+ * Capitalize phase name for display
321
+ */
322
+ capitalizePhase(phase) {
323
+ return phase
324
+ .split('_')
325
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
326
+ .join(' ');
327
+ }
328
+ /**
329
+ * Validate parameters for epic creation
330
+ */
331
+ validateCreateEpicParameters(projectName, workflowName, description, planFilename) {
332
+ if (!projectName ||
333
+ typeof projectName !== 'string' ||
334
+ projectName.trim() === '') {
335
+ throw new Error('Project name is required and cannot be empty');
336
+ }
337
+ if (!workflowName ||
338
+ typeof workflowName !== 'string' ||
339
+ workflowName.trim() === '') {
340
+ throw new Error('Workflow name is required and cannot be empty');
341
+ }
342
+ // Optional description validation - if provided, must be a valid string
343
+ if (description !== undefined &&
344
+ (typeof description !== 'string' || description.trim() === '')) {
345
+ throw new Error('Description, if provided, must be a non-empty string');
346
+ }
347
+ // Optional plan filename validation - if provided, must be a valid string
348
+ if (planFilename !== undefined &&
349
+ (typeof planFilename !== 'string' || planFilename.trim() === '')) {
350
+ throw new Error('Plan filename, if provided, must be a non-empty string');
351
+ }
352
+ }
353
+ /**
354
+ * Validate parameters for phase task creation
355
+ */
356
+ validateCreatePhaseParameters(epicId, phases, workflowName) {
357
+ if (!epicId || typeof epicId !== 'string' || epicId.trim() === '') {
358
+ throw new Error('Epic ID is required and cannot be empty');
359
+ }
360
+ if (!phases ||
361
+ typeof phases !== 'object' ||
362
+ Object.keys(phases).length === 0) {
363
+ throw new Error('Phases object is required and cannot be empty');
364
+ }
365
+ if (!workflowName ||
366
+ typeof workflowName !== 'string' ||
367
+ workflowName.trim() === '') {
368
+ throw new Error('Workflow name is required and cannot be empty');
369
+ }
370
+ // Validate each phase
371
+ for (const [phaseName, phaseState] of Object.entries(phases)) {
372
+ if (!phaseName ||
373
+ typeof phaseName !== 'string' ||
374
+ phaseName.trim() === '') {
375
+ throw new Error(`Invalid phase name: "${phaseName}" - phase names must be non-empty strings`);
376
+ }
377
+ if (!phaseState || typeof phaseState !== 'object') {
378
+ throw new Error(`Invalid phase state for "${phaseName}" - phase states must be objects`);
379
+ }
380
+ if (!phaseState.default_instructions ||
381
+ typeof phaseState.default_instructions !== 'string') {
382
+ throw new Error(`Invalid phase state for "${phaseName}" - default_instructions must be a non-empty string`);
383
+ }
384
+ }
385
+ }
386
+ }
387
+ //# sourceMappingURL=beads-integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beads-integration.js","sourceRoot":"","sources":["../src/beads-integration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * BeadsStateManager
3
+ *
4
+ * Manages beads-specific conversation state including phase task mappings
5
+ * and epic information. Provides persistent storage for beads integration
6
+ * data with proper separation of concerns from conversation management.
7
+ */
8
+ import type { BeadsPhaseTask } from './beads-integration.js';
9
+ /**
10
+ * Beads-specific conversation state
11
+ */
12
+ export interface BeadsConversationState {
13
+ conversationId: string;
14
+ projectPath: string;
15
+ epicId: string;
16
+ phaseTasks: BeadsPhaseTask[];
17
+ createdAt: string;
18
+ updatedAt: string;
19
+ }
20
+ /**
21
+ * Manager for beads conversation state persistence
22
+ */
23
+ export declare class BeadsStateManager {
24
+ private projectPath;
25
+ constructor(projectPath: string);
26
+ /**
27
+ * Get the path to the beads state file for a conversation
28
+ */
29
+ private getBeadsStatePath;
30
+ /**
31
+ * Create beads state for a conversation
32
+ */
33
+ createState(conversationId: string, epicId: string, phaseTasks: BeadsPhaseTask[]): Promise<BeadsConversationState>;
34
+ /**
35
+ * Get beads state for a conversation
36
+ */
37
+ getState(conversationId: string): Promise<BeadsConversationState | null>;
38
+ /**
39
+ * Get phase task ID for a specific phase
40
+ */
41
+ getPhaseTaskId(conversationId: string, phase: string): Promise<string | null>;
42
+ /**
43
+ * Update beads state for a conversation
44
+ */
45
+ updateState(conversationId: string, updates: Partial<Omit<BeadsConversationState, 'conversationId' | 'createdAt'>>): Promise<BeadsConversationState | null>;
46
+ /**
47
+ * Clean up beads state for a conversation
48
+ */
49
+ cleanup(conversationId: string): Promise<void>;
50
+ /**
51
+ * Check if beads state exists for a conversation
52
+ */
53
+ hasState(conversationId: string): Promise<boolean>;
54
+ /**
55
+ * Save beads state to file
56
+ */
57
+ private saveState;
58
+ }