@shepai/cli 1.72.6 → 1.72.7

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 (244) hide show
  1. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts +4 -0
  2. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.js +20 -12
  4. package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.d.ts +8 -3
  5. package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.d.ts.map +1 -1
  6. package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.js +17 -4
  7. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +1 -1
  8. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
  9. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +2 -6
  10. package/dist/src/presentation/web/app/build-graph-nodes.js +11 -1
  11. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.d.ts +3 -1
  12. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.d.ts.map +1 -1
  13. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +8 -4
  14. package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.d.ts.map +1 -1
  15. package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.js +12 -3
  16. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  17. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +6 -2
  18. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.d.ts.map +1 -1
  19. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.js +1 -1
  20. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  21. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +1 -1
  22. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  23. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +7 -2
  24. package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
  25. package/dist/src/presentation/web/components/common/repository-node/repository-node.js +6 -2
  26. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  27. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +14 -2
  28. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +3 -5
  29. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  30. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +131 -196
  31. package/dist/src/presentation/web/components/ui/alert-dialog.d.ts +1 -1
  32. package/dist/src/presentation/web/components/ui/alert-dialog.d.ts.map +1 -1
  33. package/dist/src/presentation/web/components/ui/alert-dialog.js +7 -2
  34. package/dist/src/presentation/web/components/ui/dialog.d.ts.map +1 -1
  35. package/dist/src/presentation/web/components/ui/dialog.js +6 -1
  36. package/dist/src/presentation/web/lib/layout-with-dagre.d.ts +2 -0
  37. package/dist/src/presentation/web/lib/layout-with-dagre.d.ts.map +1 -1
  38. package/dist/src/presentation/web/lib/layout-with-dagre.js +86 -4
  39. package/dist/tsconfig.build.tsbuildinfo +1 -1
  40. package/package.json +1 -1
  41. package/web/.next/BUILD_ID +1 -1
  42. package/web/.next/build-manifest.json +2 -2
  43. package/web/.next/cache/.previewinfo +1 -1
  44. package/web/.next/cache/.rscinfo +1 -1
  45. package/web/.next/cache/.tsbuildinfo +1 -1
  46. package/web/.next/cache/config.json +3 -3
  47. package/web/.next/fallback-build-manifest.json +2 -2
  48. package/web/.next/prerender-manifest.json +3 -3
  49. package/web/.next/required-server-files.js +1 -1
  50. package/web/.next/required-server-files.json +1 -1
  51. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +14 -14
  52. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  53. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +17 -17
  55. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  56. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  57. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +12 -12
  58. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  59. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  60. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +14 -14
  61. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  62. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  63. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +17 -17
  64. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  65. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  66. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +12 -12
  67. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  68. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  69. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +12 -12
  70. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  71. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  72. package/web/.next/server/app/_global-error.html +2 -2
  73. package/web/.next/server/app/_global-error.rsc +1 -1
  74. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  75. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  76. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  77. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  78. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  79. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  80. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  81. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  82. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  83. package/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  84. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  85. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  86. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  87. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  88. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  89. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js +1 -1
  90. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js.map +1 -1
  91. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js +1 -1
  92. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js.map +1 -1
  93. package/web/.next/server/chunks/ssr/[root-of-the-server]__07385073._.js +2 -2
  94. package/web/.next/server/chunks/ssr/[root-of-the-server]__07385073._.js.map +1 -1
  95. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  96. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js.map +1 -1
  97. package/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  98. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  99. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  100. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +1 -1
  101. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
  102. package/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js +2 -2
  103. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  104. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  105. package/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js +2 -2
  106. package/web/.next/server/chunks/ssr/_00e6c698._.js +1 -1
  107. package/web/.next/server/chunks/ssr/_00e6c698._.js.map +1 -1
  108. package/web/.next/server/chunks/ssr/_07c2a32a._.js +1 -1
  109. package/web/.next/server/chunks/ssr/_07c2a32a._.js.map +1 -1
  110. package/web/.next/server/chunks/ssr/_34a58db8._.js +1 -1
  111. package/web/.next/server/chunks/ssr/_34a58db8._.js.map +1 -1
  112. package/web/.next/server/chunks/ssr/_37259405._.js +1 -1
  113. package/web/.next/server/chunks/ssr/_37259405._.js.map +1 -1
  114. package/web/.next/server/chunks/ssr/{_85d0351b._.js → _63bfa7dd._.js} +2 -2
  115. package/web/.next/server/chunks/ssr/_63bfa7dd._.js.map +1 -0
  116. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_e50484ec._.js → server/chunks/ssr/_7215bb0f._.js} +2 -2
  117. package/web/.next/server/chunks/ssr/{_e50484ec._.js.map → _7215bb0f._.js.map} +1 -1
  118. package/web/.next/server/chunks/ssr/_cb5b3951._.js +1 -1
  119. package/web/.next/server/chunks/ssr/_cb5b3951._.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/_fc3a6895._.js +1 -1
  121. package/web/.next/server/chunks/ssr/_fc3a6895._.js.map +1 -1
  122. package/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js +2 -2
  123. package/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js.map +1 -1
  124. package/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js +1 -1
  125. package/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js.map +1 -1
  126. package/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js +1 -1
  127. package/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js.map +1 -1
  128. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js +1 -1
  129. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js.map +1 -1
  130. package/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js +2 -2
  131. package/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js.map +1 -1
  132. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  133. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  134. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  135. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  136. package/web/.next/server/pages/500.html +2 -2
  137. package/web/.next/server/server-reference-manifest.js +1 -1
  138. package/web/.next/server/server-reference-manifest.json +20 -20
  139. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  140. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
  141. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  142. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  143. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +14 -14
  144. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  145. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  146. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +17 -17
  147. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  148. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  149. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +12 -12
  150. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  151. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  152. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +14 -14
  153. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  154. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  155. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +17 -17
  156. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  157. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  158. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +12 -12
  159. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  160. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  161. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +12 -12
  162. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  163. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  164. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  165. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  166. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  167. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  168. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  169. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  170. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  171. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  172. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  173. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  174. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  175. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  176. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  177. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  178. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  179. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  180. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js +1 -1
  181. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js +1 -1
  182. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__07385073._.js +2 -2
  183. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  184. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  185. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  186. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +1 -1
  187. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js +2 -2
  188. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  189. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js +2 -2
  190. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_00e6c698._.js +1 -1
  191. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_07c2a32a._.js +1 -1
  192. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_34a58db8._.js +1 -1
  193. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_37259405._.js +1 -1
  194. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_85d0351b._.js → _63bfa7dd._.js} +2 -2
  195. package/web/.next/{server/chunks/ssr/_e50484ec._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_7215bb0f._.js} +2 -2
  196. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_cb5b3951._.js +1 -1
  197. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_fc3a6895._.js +1 -1
  198. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js +2 -2
  199. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js +1 -1
  200. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js +1 -1
  201. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js +1 -1
  202. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js +2 -2
  203. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  204. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  205. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  206. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  207. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +20 -20
  208. package/web/.next/standalone/src/presentation/web/app/(dashboard)/get-graph-data.ts +2 -6
  209. package/web/.next/standalone/src/presentation/web/app/build-graph-nodes.ts +14 -1
  210. package/web/.next/standalone/src/presentation/web/components/common/base-drawer/base-drawer.tsx +10 -8
  211. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/create-drawer-client.tsx +13 -3
  212. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx +6 -2
  213. package/web/.next/standalone/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.tsx +2 -0
  214. package/web/.next/standalone/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.tsx +8 -5
  215. package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node.tsx +30 -24
  216. package/web/.next/standalone/src/presentation/web/components/common/repository-node/repository-node.tsx +33 -25
  217. package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +25 -3
  218. package/web/.next/standalone/src/presentation/web/components/features/control-center/use-control-center-state.ts +184 -230
  219. package/web/.next/standalone/src/presentation/web/components/ui/alert-dialog.tsx +7 -0
  220. package/web/.next/standalone/src/presentation/web/components/ui/dialog.tsx +7 -1
  221. package/web/.next/standalone/src/presentation/web/lib/layout-with-dagre.ts +93 -4
  222. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  223. package/web/.next/static/chunks/0c54314c8c9c9739.js +7 -0
  224. package/web/.next/static/chunks/{5f5c607ffae8b918.js → 304c8593d0a6525d.js} +1 -1
  225. package/web/.next/static/chunks/4558d1663c6f4d2c.js +1 -0
  226. package/web/.next/static/chunks/{32957ff277daec59.js → 4df07e765b233622.js} +1 -1
  227. package/web/.next/static/chunks/{fc07834e422b1caa.js → 585ae19c520e8b72.js} +1 -1
  228. package/web/.next/static/chunks/{ecb2130572a7fbe7.js → 6e14d8bd5c005e6e.js} +1 -1
  229. package/web/.next/static/chunks/{412a3ac70c529c5b.js → 8a1eb93510e54db0.js} +1 -1
  230. package/web/.next/static/chunks/{550bf3cb8220cbf0.js → b143c7d78a6888e9.js} +1 -1
  231. package/web/.next/static/chunks/{8b36e07129a1471f.js → b45344579a43cbb8.js} +1 -1
  232. package/web/.next/static/chunks/dec13bccb136ef7c.css +2 -0
  233. package/web/.next/static/chunks/e4522f7d3134eefe.js +1 -0
  234. package/web/.next/static/chunks/{d4ecce2ac7795bd9.js → fe83a799663fd3cc.js} +1 -1
  235. package/web/.next/trace +1 -1
  236. package/web/.next/trace-build +1 -1
  237. package/web/.next/server/chunks/ssr/_85d0351b._.js.map +0 -1
  238. package/web/.next/static/chunks/06b6b02bab76aee7.js +0 -1
  239. package/web/.next/static/chunks/06dfd668334ffb4e.js +0 -7
  240. package/web/.next/static/chunks/224ed5f5dbd33154.css +0 -2
  241. package/web/.next/static/chunks/e44849eb58a3335f.js +0 -1
  242. /package/web/.next/static/{7K6dTYQIJ7__PLUYLLfZV → 9bO_bJBssG0NRxEG03iM5}/_buildManifest.js +0 -0
  243. /package/web/.next/static/{7K6dTYQIJ7__PLUYLLfZV → 9bO_bJBssG0NRxEG03iM5}/_clientMiddlewareManifest.json +0 -0
  244. /package/web/.next/static/{7K6dTYQIJ7__PLUYLLfZV → 9bO_bJBssG0NRxEG03iM5}/_ssgManifest.js +0 -0
@@ -192,6 +192,7 @@ export function FeatureCreateDrawer({
192
192
  onClose={attemptClose}
193
193
  size="md"
194
194
  modal={false}
195
+ dismissOnOutsideClick
195
196
  data-testid="feature-create-drawer"
196
197
  header={
197
198
  <>
@@ -199,11 +200,13 @@ export function FeatureCreateDrawer({
199
200
  <div className="h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500" />
200
201
  <DrawerTitle>NEW FEATURE</DrawerTitle>
201
202
  </div>
202
- <DrawerDescription asChild>
203
- <div>
204
- <Badge variant="secondary">Creating...</Badge>
205
- </div>
206
- </DrawerDescription>
203
+ {isSubmitting ? (
204
+ <DrawerDescription asChild>
205
+ <div>
206
+ <Badge variant="secondary">Creating...</Badge>
207
+ </div>
208
+ </DrawerDescription>
209
+ ) : null}
207
210
  </>
208
211
  }
209
212
  footer={
@@ -5,15 +5,15 @@ import { Handle, Position } from '@xyflow/react';
5
5
  import { Settings, Plus, FileText, Wrench, GitMerge, Trash2, type LucideIcon } from 'lucide-react';
6
6
  import { cn } from '@/lib/utils';
7
7
  import {
8
- AlertDialog,
9
- AlertDialogAction,
10
- AlertDialogCancel,
11
- AlertDialogContent,
12
- AlertDialogDescription,
13
- AlertDialogFooter,
14
- AlertDialogHeader,
15
- AlertDialogTitle,
16
- } from '@/components/ui/alert-dialog';
8
+ Dialog,
9
+ DialogClose,
10
+ DialogContent,
11
+ DialogDescription,
12
+ DialogFooter,
13
+ DialogHeader,
14
+ DialogTitle,
15
+ } from '@/components/ui/dialog';
16
+ import { Button } from '@/components/ui/button';
17
17
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';
18
18
  import {
19
19
  featureNodeStateConfig,
@@ -123,26 +123,32 @@ export function FeatureNode({
123
123
  </TooltipProvider>
124
124
  </div>
125
125
 
126
- <AlertDialog open={confirmOpen} onOpenChange={setConfirmOpen}>
127
- <AlertDialogContent size="sm">
128
- <AlertDialogHeader>
129
- <AlertDialogTitle>Delete feature?</AlertDialogTitle>
130
- <AlertDialogDescription>
126
+ <Dialog open={confirmOpen} onOpenChange={setConfirmOpen}>
127
+ <DialogContent className="max-w-xs">
128
+ <DialogHeader>
129
+ <DialogTitle>Delete feature?</DialogTitle>
130
+ <DialogDescription>
131
131
  This will permanently delete <strong>{data.name}</strong> and all associated data
132
132
  including specs, branches, and progress.
133
- </AlertDialogDescription>
134
- </AlertDialogHeader>
135
- <AlertDialogFooter>
136
- <AlertDialogCancel>Cancel</AlertDialogCancel>
137
- <AlertDialogAction
133
+ </DialogDescription>
134
+ </DialogHeader>
135
+ <DialogFooter className="grid grid-cols-2 gap-2 sm:flex-none">
136
+ <DialogClose asChild>
137
+ <Button variant="outline">Cancel</Button>
138
+ </DialogClose>
139
+ <Button
138
140
  variant="destructive"
139
- onClick={() => data.onDelete?.(data.featureId)}
141
+ onClick={(e) => {
142
+ e.stopPropagation();
143
+ setConfirmOpen(false);
144
+ data.onDelete?.(data.featureId);
145
+ }}
140
146
  >
141
147
  Delete
142
- </AlertDialogAction>
143
- </AlertDialogFooter>
144
- </AlertDialogContent>
145
- </AlertDialog>
148
+ </Button>
149
+ </DialogFooter>
150
+ </DialogContent>
151
+ </Dialog>
146
152
  </>
147
153
  ) : null}
148
154
 
@@ -6,15 +6,15 @@ import { Github, Plus, Code2, Terminal, FolderOpen, Trash2, Play, Square } from
6
6
  import { cn } from '@/lib/utils';
7
7
  import { ActionButton } from '@/components/common/action-button';
8
8
  import {
9
- AlertDialog,
10
- AlertDialogAction,
11
- AlertDialogCancel,
12
- AlertDialogContent,
13
- AlertDialogDescription,
14
- AlertDialogFooter,
15
- AlertDialogHeader,
16
- AlertDialogTitle,
17
- } from '@/components/ui/alert-dialog';
9
+ Dialog,
10
+ DialogClose,
11
+ DialogContent,
12
+ DialogDescription,
13
+ DialogFooter,
14
+ DialogHeader,
15
+ DialogTitle,
16
+ } from '@/components/ui/dialog';
17
+ import { Button } from '@/components/ui/button';
18
18
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';
19
19
  import { DeploymentStatusBadge } from '@/components/common/deployment-status-badge';
20
20
  import { useDeployAction } from '@/hooks/use-deploy-action';
@@ -73,23 +73,31 @@ export function RepositoryNode({ data }: { data: RepositoryNodeData; [key: strin
73
73
  </TooltipProvider>
74
74
  </div>
75
75
 
76
- <AlertDialog open={confirmOpen} onOpenChange={setConfirmOpen}>
77
- <AlertDialogContent size="sm">
78
- <AlertDialogHeader>
79
- <AlertDialogTitle>Remove repository?</AlertDialogTitle>
80
- <AlertDialogDescription>
81
- This will remove <strong>{data.name}</strong> from your workspace. The repository
82
- files on disk won&apos;t be affected.
83
- </AlertDialogDescription>
84
- </AlertDialogHeader>
85
- <AlertDialogFooter>
86
- <AlertDialogCancel>Cancel</AlertDialogCancel>
87
- <AlertDialogAction variant="destructive" onClick={() => data.onDelete?.(data.id!)}>
76
+ <Dialog open={confirmOpen} onOpenChange={setConfirmOpen}>
77
+ <DialogContent className="max-w-xs">
78
+ <DialogHeader>
79
+ <DialogTitle>Remove repository?</DialogTitle>
80
+ <DialogDescription>
81
+ This will remove <strong>{data.name}</strong> and all its features from your
82
+ workspace. The repository files on disk won&apos;t be affected.
83
+ </DialogDescription>
84
+ </DialogHeader>
85
+ <DialogFooter className="grid grid-cols-2 gap-2 sm:flex-none">
86
+ <DialogClose asChild>
87
+ <Button variant="outline">Cancel</Button>
88
+ </DialogClose>
89
+ <Button
90
+ variant="destructive"
91
+ onClick={() => {
92
+ setConfirmOpen(false);
93
+ data.onDelete?.(data.id!);
94
+ }}
95
+ >
88
96
  Remove
89
- </AlertDialogAction>
90
- </AlertDialogFooter>
91
- </AlertDialogContent>
92
- </AlertDialog>
97
+ </Button>
98
+ </DialogFooter>
99
+ </DialogContent>
100
+ </Dialog>
93
101
  </>
94
102
  ) : null}
95
103
 
@@ -28,7 +28,7 @@ export function ControlCenterInner({ initialNodes, initialEdges }: ControlCenter
28
28
  const pathname = usePathname();
29
29
  const selectedFeatureId = useSelectedFeatureId();
30
30
  const clickSound = useSoundAction('click');
31
- const { guardedNavigate, getIsDirty } = useDrawerCloseGuard();
31
+ const { guardedNavigate } = useDrawerCloseGuard();
32
32
 
33
33
  const {
34
34
  nodes,
@@ -39,7 +39,7 @@ export function ControlCenterInner({ initialNodes, initialEdges }: ControlCenter
39
39
  handleDeleteFeature,
40
40
  handleDeleteRepository,
41
41
  createFeatureNode,
42
- } = useControlCenterState(initialNodes, initialEdges, getIsDirty);
42
+ } = useControlCenterState(initialNodes, initialEdges);
43
43
 
44
44
  // Publish sidebar features to context whenever feature node data changes
45
45
  const { setFeatures: setSidebarFeatures } = useSidebarFeaturesContext();
@@ -167,9 +167,31 @@ export function ControlCenterInner({ initialNodes, initialEdges }: ControlCenter
167
167
  useEffect(() => {
168
168
  const handler = (e: Event) => {
169
169
  const detail = (
170
- e as CustomEvent<{ name: string; description?: string; repositoryPath: string }>
170
+ e as CustomEvent<{
171
+ name: string;
172
+ description?: string;
173
+ repositoryPath: string;
174
+ parentId?: string;
175
+ }>
171
176
  ).detail;
172
177
 
178
+ // When a parentId is provided, connect to the parent feature node
179
+ // via a dependency edge instead of the repo node.
180
+ if (detail.parentId) {
181
+ const parentNodeId = `feat-${detail.parentId}`;
182
+ createFeatureNode(
183
+ parentNodeId,
184
+ {
185
+ state: 'creating',
186
+ name: detail.name,
187
+ description: detail.description,
188
+ repositoryPath: detail.repositoryPath,
189
+ },
190
+ 'dependencyEdge'
191
+ );
192
+ return;
193
+ }
194
+
173
195
  // Find the repo node to connect to
174
196
  const repoNode = nodes.find(
175
197
  (n) =>