@shepai/cli 1.71.0 → 1.72.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (549) hide show
  1. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  2. package/dist/packages/core/src/infrastructure/di/container.js +3 -0
  3. package/dist/src/presentation/web/app/(dashboard)/@drawer/create/page.d.ts +11 -0
  4. package/dist/src/presentation/web/app/(dashboard)/@drawer/create/page.d.ts.map +1 -0
  5. package/dist/src/presentation/web/app/(dashboard)/@drawer/create/page.js +18 -0
  6. package/dist/src/presentation/web/app/(dashboard)/@drawer/default.d.ts +3 -0
  7. package/dist/src/presentation/web/app/(dashboard)/@drawer/default.d.ts.map +1 -0
  8. package/dist/src/presentation/web/app/(dashboard)/@drawer/default.js +4 -0
  9. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.d.ts +10 -0
  10. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.d.ts.map +1 -0
  11. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.js +35 -0
  12. package/dist/src/presentation/web/app/(dashboard)/@drawer/repository/[repositoryId]/page.d.ts +10 -0
  13. package/dist/src/presentation/web/app/(dashboard)/@drawer/repository/[repositoryId]/page.d.ts.map +1 -0
  14. package/dist/src/presentation/web/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +18 -0
  15. package/dist/src/presentation/web/app/(dashboard)/create/page.d.ts +3 -0
  16. package/dist/src/presentation/web/app/(dashboard)/create/page.d.ts.map +1 -0
  17. package/dist/src/presentation/web/app/(dashboard)/create/page.js +4 -0
  18. package/dist/src/presentation/web/app/(dashboard)/feature/[featureId]/page.d.ts +3 -0
  19. package/dist/src/presentation/web/app/(dashboard)/feature/[featureId]/page.d.ts.map +1 -0
  20. package/dist/src/presentation/web/app/(dashboard)/feature/[featureId]/page.js +4 -0
  21. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts +7 -0
  22. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -0
  23. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +19 -0
  24. package/dist/src/presentation/web/app/(dashboard)/layout.d.ts +10 -0
  25. package/dist/src/presentation/web/app/(dashboard)/layout.d.ts.map +1 -0
  26. package/dist/src/presentation/web/app/(dashboard)/layout.js +9 -0
  27. package/dist/src/presentation/web/app/(dashboard)/page.d.ts +5 -0
  28. package/dist/src/presentation/web/app/(dashboard)/page.d.ts.map +1 -0
  29. package/dist/src/presentation/web/app/(dashboard)/page.js +6 -0
  30. package/dist/src/presentation/web/app/(dashboard)/repository/[repositoryId]/page.d.ts +3 -0
  31. package/dist/src/presentation/web/app/(dashboard)/repository/[repositoryId]/page.d.ts.map +1 -0
  32. package/dist/src/presentation/web/app/(dashboard)/repository/[repositoryId]/page.js +4 -0
  33. package/dist/src/presentation/web/app/build-feature-node-data.d.ts +8 -0
  34. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -0
  35. package/dist/src/presentation/web/app/build-feature-node-data.js +53 -0
  36. package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.d.ts +10 -0
  37. package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.d.ts.map +1 -0
  38. package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.js +49 -0
  39. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts +6 -0
  40. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -0
  41. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +388 -0
  42. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts +6 -0
  43. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts.map +1 -0
  44. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.js +27 -0
  45. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  46. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +74 -57
  47. package/dist/src/presentation/web/components/features/control-center/control-center.d.ts +4 -1
  48. package/dist/src/presentation/web/components/features/control-center/control-center.d.ts.map +1 -1
  49. package/dist/src/presentation/web/components/features/control-center/control-center.js +3 -3
  50. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +0 -15
  51. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  52. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +5 -146
  53. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts +2 -1
  54. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
  55. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +7 -1
  56. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.d.ts.map +1 -1
  57. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +6 -4
  58. package/dist/src/presentation/web/hooks/use-notifications.d.ts.map +1 -1
  59. package/dist/src/presentation/web/hooks/use-notifications.js +8 -5
  60. package/dist/src/presentation/web/hooks/use-selected-feature-id.d.ts +6 -0
  61. package/dist/src/presentation/web/hooks/use-selected-feature-id.d.ts.map +1 -0
  62. package/dist/src/presentation/web/hooks/use-selected-feature-id.js +11 -0
  63. package/dist/tsconfig.build.tsbuildinfo +1 -1
  64. package/package.json +1 -1
  65. package/web/.next/BUILD_ID +1 -1
  66. package/web/.next/app-path-routes-manifest.json +7 -1
  67. package/web/.next/build-manifest.json +5 -5
  68. package/web/.next/cache/.previewinfo +1 -1
  69. package/web/.next/cache/.rscinfo +1 -1
  70. package/web/.next/cache/.tsbuildinfo +1 -1
  71. package/web/.next/cache/config.json +3 -3
  72. package/web/.next/fallback-build-manifest.json +2 -2
  73. package/web/.next/prerender-manifest.json +3 -3
  74. package/web/.next/required-server-files.js +1 -1
  75. package/web/.next/required-server-files.json +1 -1
  76. package/web/.next/routes-manifest.json +22 -0
  77. package/web/.next/server/app/(dashboard)/@drawer/create/page/app-paths-manifest.json +3 -0
  78. package/web/.next/server/app/{page → (dashboard)/@drawer/create/page}/build-manifest.json +3 -3
  79. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +215 -0
  80. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +19 -0
  81. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -0
  82. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +2 -0
  83. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/app-paths-manifest.json +3 -0
  84. package/web/.next/{standalone/src/presentation/web/.next/server/app → server/app/(dashboard)/@drawer/feature/[featureId]}/page/build-manifest.json +3 -3
  85. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +260 -0
  86. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +19 -0
  87. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -0
  88. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +2 -0
  89. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/app-paths-manifest.json +3 -0
  90. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +18 -0
  91. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/next-font-manifest.json +6 -0
  92. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/react-loadable-manifest.json +1 -0
  93. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +185 -0
  94. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +19 -0
  95. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.map +5 -0
  96. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -0
  97. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +2 -0
  98. package/web/.next/server/app/(dashboard)/create/page/app-paths-manifest.json +3 -0
  99. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +18 -0
  100. package/web/.next/server/app/(dashboard)/create/page/next-font-manifest.json +6 -0
  101. package/web/.next/server/app/(dashboard)/create/page/react-loadable-manifest.json +1 -0
  102. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +215 -0
  103. package/web/.next/server/app/(dashboard)/create/page.js +19 -0
  104. package/web/.next/server/app/(dashboard)/create/page.js.map +5 -0
  105. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -0
  106. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +2 -0
  107. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/app-paths-manifest.json +3 -0
  108. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +18 -0
  109. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/next-font-manifest.json +6 -0
  110. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/react-loadable-manifest.json +1 -0
  111. package/web/.next/server/app/{page → (dashboard)/feature/[featureId]/page}/server-reference-manifest.json +100 -130
  112. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +19 -0
  113. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.map +5 -0
  114. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -0
  115. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +2 -0
  116. package/web/.next/server/app/(dashboard)/page/app-paths-manifest.json +3 -0
  117. package/web/.next/server/app/(dashboard)/page/build-manifest.json +18 -0
  118. package/web/.next/server/app/(dashboard)/page/next-font-manifest.json +6 -0
  119. package/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +1 -0
  120. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +185 -0
  121. package/web/.next/server/app/(dashboard)/page.js +19 -0
  122. package/web/.next/server/app/(dashboard)/page.js.map +5 -0
  123. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -0
  124. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +2 -0
  125. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/app-paths-manifest.json +3 -0
  126. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +18 -0
  127. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/next-font-manifest.json +6 -0
  128. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/react-loadable-manifest.json +1 -0
  129. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +185 -0
  130. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +19 -0
  131. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.map +5 -0
  132. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -0
  133. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +2 -0
  134. package/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  135. package/web/.next/server/app/_global-error/page.js +1 -1
  136. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  137. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  138. package/web/.next/server/app/_global-error.html +2 -2
  139. package/web/.next/server/app/_global-error.rsc +1 -1
  140. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  141. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  142. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  143. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  144. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  145. package/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  146. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  147. package/web/.next/server/app/_not-found/page.js +1 -1
  148. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  149. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  150. package/web/.next/server/app/api/tools/[id]/install/route.js +1 -1
  151. package/web/.next/server/app/api/tools/[id]/install/route.js.nft.json +1 -1
  152. package/web/.next/server/app/skills/page/build-manifest.json +3 -3
  153. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  154. package/web/.next/server/app/skills/page.js +2 -2
  155. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  156. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  157. package/web/.next/server/app/tools/page/build-manifest.json +3 -3
  158. package/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  159. package/web/.next/server/app/tools/page.js +2 -2
  160. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  161. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  162. package/web/.next/server/app/version/page/build-manifest.json +3 -3
  163. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  164. package/web/.next/server/app/version/page.js +2 -2
  165. package/web/.next/server/app/version/page.js.nft.json +1 -1
  166. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  167. package/web/.next/server/app-paths-manifest.json +7 -1
  168. package/web/.next/server/chunks/{[root-of-the-server]__e926de65._.js → [root-of-the-server]__b1f03347._.js} +2 -2
  169. package/web/.next/server/chunks/{[root-of-the-server]__e926de65._.js.map → [root-of-the-server]__b1f03347._.js.map} +1 -1
  170. package/web/.next/server/chunks/ssr/403f9_next_d6c8d28d._.js +6 -0
  171. package/web/.next/server/chunks/ssr/403f9_next_d6c8d28d._.js.map +1 -0
  172. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_0f115902.js +4 -0
  173. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_0f115902.js.map +1 -0
  174. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_8e8822d6.js +4 -0
  175. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_8e8822d6.js.map +1 -0
  176. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_9d039634.js +4 -0
  177. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_9d039634.js.map +1 -0
  178. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_bec3d8d3.js +4 -0
  179. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_bec3d8d3.js.map +1 -0
  180. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c27615b6.js +4 -0
  181. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c27615b6.js.map +1 -0
  182. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d302115b.js +4 -0
  183. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d302115b.js.map +1 -0
  184. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +3 -0
  185. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -0
  186. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js +3 -0
  187. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js.map +1 -0
  188. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js +3 -0
  189. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js.map +1 -0
  190. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__b79b0516._.js → server/chunks/ssr/[root-of-the-server]__01a37f7a._.js} +2 -2
  191. package/web/.next/server/chunks/ssr/[root-of-the-server]__07385073._.js +4 -0
  192. package/web/.next/server/chunks/ssr/[root-of-the-server]__07385073._.js.map +1 -0
  193. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  194. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js.map +1 -1
  195. package/web/.next/server/chunks/ssr/[root-of-the-server]__2018e25f._.js +3 -0
  196. package/web/.next/server/chunks/ssr/[root-of-the-server]__2018e25f._.js.map +1 -0
  197. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6e8b5181._.js → server/chunks/ssr/[root-of-the-server]__249c74f6._.js} +2 -2
  198. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__248ee887._.js → server/chunks/ssr/[root-of-the-server]__3534949f._.js} +2 -2
  199. package/web/.next/server/chunks/ssr/[root-of-the-server]__3b4af5ae._.js +3 -0
  200. package/web/.next/server/chunks/ssr/[root-of-the-server]__3b4af5ae._.js.map +1 -0
  201. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__f7f90528._.js → server/chunks/ssr/[root-of-the-server]__55f60c9d._.js} +2 -2
  202. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  203. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  204. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +3 -0
  205. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -0
  206. package/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js +4 -0
  207. package/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js.map +1 -0
  208. package/web/.next/server/chunks/ssr/[root-of-the-server]__6ee2450e._.js +3 -0
  209. package/web/.next/server/chunks/ssr/[root-of-the-server]__6ee2450e._.js.map +1 -0
  210. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  211. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  212. package/web/.next/server/chunks/ssr/[root-of-the-server]__8a947500._.js +3 -0
  213. package/web/.next/server/chunks/ssr/[root-of-the-server]__8a947500._.js.map +1 -0
  214. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c1a3d66._.js +3 -0
  215. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c1a3d66._.js.map +1 -0
  216. package/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js +4 -0
  217. package/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js.map +1 -0
  218. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1efeb0eb._.js → [root-of-the-server]__9d14479b._.js} +2 -2
  219. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1efeb0eb._.js.map → [root-of-the-server]__9d14479b._.js.map} +1 -1
  220. package/web/.next/server/chunks/ssr/[root-of-the-server]__d4e51258._.js +3 -0
  221. package/web/.next/server/chunks/ssr/[root-of-the-server]__d4e51258._.js.map +1 -0
  222. package/web/.next/server/chunks/ssr/[root-of-the-server]__fe2a7deb._.js +3 -0
  223. package/web/.next/server/chunks/ssr/[root-of-the-server]__fe2a7deb._.js.map +1 -0
  224. package/web/.next/server/chunks/ssr/{_725584e5._.js → _00e6c698._.js} +2 -2
  225. package/web/.next/server/chunks/ssr/_00e6c698._.js.map +1 -0
  226. package/web/.next/server/chunks/ssr/_13566ff3._.js +3 -0
  227. package/web/.next/server/chunks/ssr/_13566ff3._.js.map +1 -0
  228. package/web/.next/server/chunks/ssr/_250a63ae._.js +3 -0
  229. package/web/.next/server/chunks/ssr/_250a63ae._.js.map +1 -0
  230. package/web/.next/server/chunks/ssr/_326c615c._.js +12 -0
  231. package/web/.next/server/chunks/ssr/_326c615c._.js.map +1 -0
  232. package/web/.next/server/chunks/ssr/_34a58db8._.js +3 -0
  233. package/web/.next/server/chunks/ssr/{_72ce07df._.js.map → _34a58db8._.js.map} +1 -1
  234. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_49bf495c._.js → server/chunks/ssr/_37259405._.js} +2 -2
  235. package/web/.next/server/chunks/ssr/_37259405._.js.map +1 -0
  236. package/web/.next/server/chunks/ssr/_85d0351b._.js +3 -0
  237. package/web/.next/server/chunks/ssr/_85d0351b._.js.map +1 -0
  238. package/web/.next/server/chunks/ssr/_ad8a094f._.js +1 -1
  239. package/web/.next/server/chunks/ssr/_cb5b3951._.js +3 -0
  240. package/web/.next/server/chunks/ssr/_cb5b3951._.js.map +1 -0
  241. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_c5d377cc._.js → server/chunks/ssr/_dc379243._.js} +3 -3
  242. package/web/.next/server/chunks/ssr/_dc379243._.js.map +1 -0
  243. package/web/.next/server/chunks/ssr/_fc3a6895._.js +3 -0
  244. package/web/.next/server/chunks/ssr/_fc3a6895._.js.map +1 -0
  245. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +3 -0
  246. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -0
  247. package/web/.next/server/chunks/ssr/node_modules__pnpm_11589942._.js +3 -0
  248. package/web/.next/server/chunks/ssr/node_modules__pnpm_11589942._.js.map +1 -0
  249. package/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js +8 -0
  250. package/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js.map +1 -0
  251. package/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js +3 -0
  252. package/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js.map +1 -0
  253. package/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js +3 -0
  254. package/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js.map +1 -0
  255. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js +3 -0
  256. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js.map +1 -0
  257. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_create_page_tsx_c60c859a._.js +3 -0
  258. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_create_page_tsx_c60c859a._.js.map +1 -0
  259. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_feature_[featureId]_page_tsx_797907a1._.js +3 -0
  260. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_feature_[featureId]_page_tsx_797907a1._.js.map +1 -0
  261. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_page_tsx_8d870268._.js +3 -0
  262. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_page_tsx_8d870268._.js.map +1 -0
  263. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_repository_[repositoryId]_page_tsx_7d738911._.js +3 -0
  264. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_repository_[repositoryId]_page_tsx_7d738911._.js.map +1 -0
  265. package/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js +8 -0
  266. package/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js.map +1 -0
  267. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js → server/chunks/ssr/src_presentation_web_ca99d62d._.js} +2 -2
  268. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -0
  269. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  270. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  271. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +3 -0
  272. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -0
  273. package/web/.next/server/middleware-build-manifest.js +3 -3
  274. package/web/.next/server/pages/500.html +2 -2
  275. package/web/.next/server/server-reference-manifest.js +1 -1
  276. package/web/.next/server/server-reference-manifest.json +672 -119
  277. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  278. package/web/.next/standalone/src/presentation/web/.next/app-path-routes-manifest.json +7 -1
  279. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +5 -5
  280. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  281. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  282. package/web/.next/standalone/src/presentation/web/.next/routes-manifest.json +22 -0
  283. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/app-paths-manifest.json +3 -0
  284. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +18 -0
  285. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/next-font-manifest.json +6 -0
  286. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/react-loadable-manifest.json +1 -0
  287. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +215 -0
  288. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js +19 -0
  289. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.map +5 -0
  290. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -0
  291. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +2 -0
  292. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/app-paths-manifest.json +3 -0
  293. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +18 -0
  294. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/next-font-manifest.json +6 -0
  295. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/react-loadable-manifest.json +1 -0
  296. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +260 -0
  297. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +19 -0
  298. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.map +5 -0
  299. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -0
  300. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +2 -0
  301. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/app-paths-manifest.json +3 -0
  302. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +18 -0
  303. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/next-font-manifest.json +6 -0
  304. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/react-loadable-manifest.json +1 -0
  305. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +185 -0
  306. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +19 -0
  307. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.map +5 -0
  308. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -0
  309. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +2 -0
  310. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/app-paths-manifest.json +3 -0
  311. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/build-manifest.json +18 -0
  312. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/next-font-manifest.json +6 -0
  313. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/react-loadable-manifest.json +1 -0
  314. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +215 -0
  315. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js +19 -0
  316. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.map +5 -0
  317. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -0
  318. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +2 -0
  319. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/app-paths-manifest.json +3 -0
  320. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +18 -0
  321. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/next-font-manifest.json +6 -0
  322. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/react-loadable-manifest.json +1 -0
  323. package/web/.next/standalone/src/presentation/web/.next/server/app/{page → (dashboard)/feature/[featureId]/page}/server-reference-manifest.json +100 -130
  324. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +19 -0
  325. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.map +5 -0
  326. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -0
  327. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +2 -0
  328. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/app-paths-manifest.json +3 -0
  329. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/build-manifest.json +18 -0
  330. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/next-font-manifest.json +6 -0
  331. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +1 -0
  332. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +185 -0
  333. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js +19 -0
  334. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.map +5 -0
  335. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -0
  336. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +2 -0
  337. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/app-paths-manifest.json +3 -0
  338. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +18 -0
  339. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/next-font-manifest.json +6 -0
  340. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/react-loadable-manifest.json +1 -0
  341. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +185 -0
  342. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +19 -0
  343. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.map +5 -0
  344. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -0
  345. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +2 -0
  346. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  347. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page.js +1 -1
  348. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  349. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  350. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  351. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  352. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  353. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  354. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  355. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  356. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  357. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  358. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  359. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js +1 -1
  360. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  361. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  362. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/route.js +1 -1
  363. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/route.js.nft.json +1 -1
  364. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/build-manifest.json +3 -3
  365. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  366. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js +2 -2
  367. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js.nft.json +1 -1
  368. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  369. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/build-manifest.json +3 -3
  370. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  371. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js +2 -2
  372. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js.nft.json +1 -1
  373. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  374. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/build-manifest.json +3 -3
  375. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  376. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js +2 -2
  377. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js.nft.json +1 -1
  378. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  379. package/web/.next/standalone/src/presentation/web/.next/server/app-paths-manifest.json +7 -1
  380. package/web/.next/standalone/src/presentation/web/.next/server/chunks/{[root-of-the-server]__e926de65._.js → [root-of-the-server]__b1f03347._.js} +2 -2
  381. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_d6c8d28d._.js +6 -0
  382. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_0f115902.js +4 -0
  383. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_8e8822d6.js +4 -0
  384. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_9d039634.js +4 -0
  385. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_bec3d8d3.js +4 -0
  386. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c27615b6.js +4 -0
  387. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d302115b.js +4 -0
  388. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +3 -0
  389. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js +3 -0
  390. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js +3 -0
  391. package/web/.next/{server/chunks/ssr/[root-of-the-server]__b79b0516._.js → standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__01a37f7a._.js} +2 -2
  392. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__07385073._.js +4 -0
  393. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  394. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__2018e25f._.js +3 -0
  395. package/web/.next/{server/chunks/ssr/[root-of-the-server]__6e8b5181._.js → standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js} +2 -2
  396. package/web/.next/{server/chunks/ssr/[root-of-the-server]__248ee887._.js → standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__3534949f._.js} +2 -2
  397. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__3b4af5ae._.js +3 -0
  398. package/web/.next/{server/chunks/ssr/[root-of-the-server]__f7f90528._.js → standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__55f60c9d._.js} +2 -2
  399. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  400. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +3 -0
  401. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js +4 -0
  402. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6ee2450e._.js +3 -0
  403. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  404. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8a947500._.js +3 -0
  405. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8c1a3d66._.js +3 -0
  406. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js +4 -0
  407. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{[root-of-the-server]__1efeb0eb._.js → [root-of-the-server]__9d14479b._.js} +2 -2
  408. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__d4e51258._.js +3 -0
  409. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fe2a7deb._.js +3 -0
  410. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_725584e5._.js → _00e6c698._.js} +2 -2
  411. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_13566ff3._.js +3 -0
  412. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_250a63ae._.js +3 -0
  413. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_326c615c._.js +12 -0
  414. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_34a58db8._.js +3 -0
  415. package/web/.next/{server/chunks/ssr/_49bf495c._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_37259405._.js} +2 -2
  416. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_85d0351b._.js +3 -0
  417. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_ad8a094f._.js +1 -1
  418. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_cb5b3951._.js +3 -0
  419. package/web/.next/{server/chunks/ssr/_c5d377cc._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_dc379243._.js} +3 -3
  420. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_fc3a6895._.js +3 -0
  421. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +3 -0
  422. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/node_modules__pnpm_11589942._.js +3 -0
  423. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js +8 -0
  424. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js +3 -0
  425. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js +3 -0
  426. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js +3 -0
  427. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_create_page_tsx_c60c859a._.js +3 -0
  428. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_feature_[featureId]_page_tsx_797907a1._.js +3 -0
  429. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_page_tsx_8d870268._.js +3 -0
  430. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_repository_[repositoryId]_page_tsx_7d738911._.js +3 -0
  431. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js +8 -0
  432. package/web/.next/{server/chunks/ssr/src_presentation_web_ed0934e5._.js → standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js} +2 -2
  433. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  434. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +3 -0
  435. package/web/.next/standalone/src/presentation/web/.next/server/middleware-build-manifest.js +3 -3
  436. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  437. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  438. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +672 -119
  439. package/web/.next/standalone/src/presentation/web/app/(dashboard)/@drawer/create/page.tsx +35 -0
  440. package/web/.next/standalone/src/presentation/web/app/(dashboard)/@drawer/default.tsx +4 -0
  441. package/web/.next/standalone/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.tsx +46 -0
  442. package/web/.next/standalone/src/presentation/web/app/(dashboard)/@drawer/repository/[repositoryId]/page.tsx +29 -0
  443. package/web/.next/standalone/src/presentation/web/app/(dashboard)/create/page.tsx +4 -0
  444. package/web/.next/standalone/src/presentation/web/app/(dashboard)/feature/[featureId]/page.tsx +4 -0
  445. package/web/.next/standalone/src/presentation/web/app/{page.tsx → (dashboard)/get-graph-data.ts} +4 -13
  446. package/web/.next/standalone/src/presentation/web/app/(dashboard)/layout.tsx +22 -0
  447. package/web/.next/standalone/src/presentation/web/app/(dashboard)/page.tsx +7 -0
  448. package/web/.next/standalone/src/presentation/web/app/(dashboard)/repository/[repositoryId]/page.tsx +4 -0
  449. package/web/.next/standalone/src/presentation/web/app/build-feature-node-data.ts +63 -0
  450. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/create-drawer-client.tsx +87 -0
  451. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx +721 -0
  452. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.tsx +98 -0
  453. package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +89 -87
  454. package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center.tsx +5 -1
  455. package/web/.next/standalone/src/presentation/web/components/features/control-center/use-control-center-state.ts +5 -197
  456. package/web/.next/standalone/src/presentation/web/components/features/features-canvas/features-canvas.tsx +9 -0
  457. package/web/.next/standalone/src/presentation/web/components/layouts/app-shell/app-shell.tsx +11 -5
  458. package/web/.next/standalone/src/presentation/web/hooks/use-notifications.ts +13 -12
  459. package/web/.next/standalone/src/presentation/web/hooks/use-selected-feature-id.ts +13 -0
  460. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  461. package/web/.next/static/chunks/{c1c15470a7b058c8.js → 07fcc6d17357e905.js} +1 -1
  462. package/web/.next/static/chunks/3b841f29db9a3da9.js +1 -0
  463. package/web/.next/static/chunks/3e46df89d84cae41.js +1 -0
  464. package/web/.next/static/chunks/424982cd78174a1a.js +1 -0
  465. package/web/.next/static/chunks/47435830535491e8.js +1 -0
  466. package/web/.next/static/chunks/4ad5002ab597037c.js +1 -0
  467. package/web/.next/static/chunks/5f5c607ffae8b918.js +1 -0
  468. package/web/.next/static/chunks/64d73952a0291431.js +1 -0
  469. package/web/.next/static/chunks/782a2a325d33916e.js +1 -0
  470. package/web/.next/static/chunks/938c21b0cefb2b1d.js +1 -0
  471. package/web/.next/static/chunks/{b025563d959150a1.js → c1e2dd0ea2411684.js} +1 -1
  472. package/web/.next/static/chunks/{d450d8db6be36b8d.js → d063d1ee549e36c1.js} +1 -1
  473. package/web/.next/static/chunks/d58c232421d2eb76.js +10 -0
  474. package/web/.next/static/chunks/d5aa17e7271ca056.js +1 -0
  475. package/web/.next/static/chunks/e44849eb58a3335f.js +1 -0
  476. package/web/.next/static/chunks/eab4c5668703be61.js +1 -0
  477. package/web/.next/static/chunks/f76236b7baf672dc.js +1 -0
  478. package/web/.next/static/chunks/{turbopack-958ac34b879d0dce.js → turbopack-3a8fe0e18e69b0ab.js} +1 -1
  479. package/web/.next/trace +1 -1
  480. package/web/.next/trace-build +1 -1
  481. package/web/.next/types/link.d.ts +3 -0
  482. package/web/.next/types/routes.d.ts +5 -2
  483. package/web/.next/types/validator.ts +65 -2
  484. package/dist/src/presentation/web/app/page.d.ts +0 -4
  485. package/dist/src/presentation/web/app/page.d.ts.map +0 -1
  486. package/dist/src/presentation/web/app/page.js +0 -25
  487. package/web/.next/server/app/page/app-paths-manifest.json +0 -3
  488. package/web/.next/server/app/page.js +0 -16
  489. package/web/.next/server/app/page.js.nft.json +0 -1
  490. package/web/.next/server/app/page_client-reference-manifest.js +0 -2
  491. package/web/.next/server/chunks/ssr/[root-of-the-server]__5f968713._.js +0 -3
  492. package/web/.next/server/chunks/ssr/[root-of-the-server]__5f968713._.js.map +0 -1
  493. package/web/.next/server/chunks/ssr/[root-of-the-server]__970ba1be._.js +0 -3
  494. package/web/.next/server/chunks/ssr/[root-of-the-server]__970ba1be._.js.map +0 -1
  495. package/web/.next/server/chunks/ssr/[root-of-the-server]__97a1f9c2._.js +0 -4
  496. package/web/.next/server/chunks/ssr/[root-of-the-server]__97a1f9c2._.js.map +0 -1
  497. package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +0 -12
  498. package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js.map +0 -1
  499. package/web/.next/server/chunks/ssr/[root-of-the-server]__ad7c18fa._.js +0 -9
  500. package/web/.next/server/chunks/ssr/[root-of-the-server]__ad7c18fa._.js.map +0 -1
  501. package/web/.next/server/chunks/ssr/[root-of-the-server]__b22d8535._.js +0 -3
  502. package/web/.next/server/chunks/ssr/[root-of-the-server]__b22d8535._.js.map +0 -1
  503. package/web/.next/server/chunks/ssr/_25e0eb34._.js +0 -3
  504. package/web/.next/server/chunks/ssr/_25e0eb34._.js.map +0 -1
  505. package/web/.next/server/chunks/ssr/_49bf495c._.js.map +0 -1
  506. package/web/.next/server/chunks/ssr/_68b5e0de._.js +0 -6
  507. package/web/.next/server/chunks/ssr/_68b5e0de._.js.map +0 -1
  508. package/web/.next/server/chunks/ssr/_725584e5._.js.map +0 -1
  509. package/web/.next/server/chunks/ssr/_72ce07df._.js +0 -3
  510. package/web/.next/server/chunks/ssr/_c5d377cc._.js.map +0 -1
  511. package/web/.next/server/chunks/ssr/_ed9132c9._.js +0 -3
  512. package/web/.next/server/chunks/ssr/_ed9132c9._.js.map +0 -1
  513. package/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js.map +0 -1
  514. package/web/.next/standalone/src/presentation/web/.next/server/app/page/app-paths-manifest.json +0 -3
  515. package/web/.next/standalone/src/presentation/web/.next/server/app/page.js +0 -16
  516. package/web/.next/standalone/src/presentation/web/.next/server/app/page.js.nft.json +0 -1
  517. package/web/.next/standalone/src/presentation/web/.next/server/app/page_client-reference-manifest.js +0 -2
  518. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__5f968713._.js +0 -3
  519. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__970ba1be._.js +0 -3
  520. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__97a1f9c2._.js +0 -4
  521. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +0 -12
  522. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__ad7c18fa._.js +0 -9
  523. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__b22d8535._.js +0 -3
  524. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_25e0eb34._.js +0 -3
  525. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_68b5e0de._.js +0 -6
  526. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_72ce07df._.js +0 -3
  527. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_ed9132c9._.js +0 -3
  528. package/web/.next/static/chunks/01ae2241bd4b44b6.js +0 -1
  529. package/web/.next/static/chunks/20f7876f292cfd82.js +0 -1
  530. package/web/.next/static/chunks/51c94a563ecc565d.js +0 -1
  531. package/web/.next/static/chunks/62c8ebbd9c7bb287.js +0 -1
  532. package/web/.next/static/chunks/673e0c1000a91948.js +0 -1
  533. package/web/.next/static/chunks/7ad36bef63f15bc6.js +0 -1
  534. package/web/.next/static/chunks/8b6df4f8e194d0ce.js +0 -1
  535. package/web/.next/static/chunks/c7fb052190a02a9c.js +0 -10
  536. package/web/.next/static/chunks/d9e3cf214ac2f386.js +0 -1
  537. /package/web/.next/server/app/{page → (dashboard)/@drawer/create/page}/next-font-manifest.json +0 -0
  538. /package/web/.next/server/app/{page → (dashboard)/@drawer/create/page}/react-loadable-manifest.json +0 -0
  539. /package/web/.next/server/app/{page.js.map → (dashboard)/@drawer/create/page.js.map} +0 -0
  540. /package/web/.next/{standalone/src/presentation/web/.next/server/app → server/app/(dashboard)/@drawer/feature/[featureId]}/page/next-font-manifest.json +0 -0
  541. /package/web/.next/{standalone/src/presentation/web/.next/server/app → server/app/(dashboard)/@drawer/feature/[featureId]}/page/react-loadable-manifest.json +0 -0
  542. /package/web/.next/{standalone/src/presentation/web/.next/server/app → server/app/(dashboard)/@drawer/feature/[featureId]}/page.js.map +0 -0
  543. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__b79b0516._.js.map → [root-of-the-server]__01a37f7a._.js.map} +0 -0
  544. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__6e8b5181._.js.map → [root-of-the-server]__249c74f6._.js.map} +0 -0
  545. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__248ee887._.js.map → [root-of-the-server]__3534949f._.js.map} +0 -0
  546. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__f7f90528._.js.map → [root-of-the-server]__55f60c9d._.js.map} +0 -0
  547. /package/web/.next/static/{F3mdpVVEgR5m2xHY_SnYx → cheZlPwpJASMO-UbgLmQk}/_buildManifest.js +0 -0
  548. /package/web/.next/static/{F3mdpVVEgR5m2xHY_SnYx → cheZlPwpJASMO-UbgLmQk}/_clientMiddlewareManifest.json +0 -0
  549. /package/web/.next/static/{F3mdpVVEgR5m2xHY_SnYx → cheZlPwpJASMO-UbgLmQk}/_ssgManifest.js +0 -0
@@ -0,0 +1,98 @@
1
+ 'use client';
2
+
3
+ import { useCallback } from 'react';
4
+ import { useRouter } from 'next/navigation';
5
+ import { Code2, Terminal, FolderOpen } from 'lucide-react';
6
+ import { BaseDrawer } from '@/components/common/base-drawer';
7
+ import { ActionButton } from '@/components/common/action-button';
8
+ import { DrawerTitle, DrawerDescription } from '@/components/ui/drawer';
9
+ import { Separator } from '@/components/ui/separator';
10
+ import { useRepositoryActions } from '@/components/common/repository-node/use-repository-actions';
11
+ import { featureFlags } from '@/lib/feature-flags';
12
+ import type { RepositoryNodeData } from '@/components/common/repository-node';
13
+
14
+ export interface RepositoryDrawerClientProps {
15
+ data: RepositoryNodeData;
16
+ }
17
+
18
+ export function RepositoryDrawerClient({ data }: RepositoryDrawerClientProps) {
19
+ const router = useRouter();
20
+ const repoActions = useRepositoryActions(
21
+ data.repositoryPath ? { repositoryPath: data.repositoryPath } : null
22
+ );
23
+
24
+ const onClose = useCallback(() => {
25
+ router.push('/');
26
+ }, [router]);
27
+
28
+ const repoDeployTarget = data.repositoryPath
29
+ ? {
30
+ targetId: data.repositoryPath,
31
+ targetType: 'repository' as const,
32
+ repositoryPath: data.repositoryPath,
33
+ }
34
+ : undefined;
35
+
36
+ const header = (
37
+ <div data-testid="repository-drawer-header">
38
+ <DrawerTitle>{data.name}</DrawerTitle>
39
+ {data.repositoryPath ? (
40
+ <DrawerDescription className="truncate font-mono text-xs">
41
+ {data.repositoryPath}
42
+ </DrawerDescription>
43
+ ) : null}
44
+ </div>
45
+ );
46
+
47
+ return (
48
+ <BaseDrawer
49
+ open
50
+ onClose={onClose}
51
+ size="md"
52
+ modal={false}
53
+ header={header}
54
+ deployTarget={featureFlags.envDeploy ? repoDeployTarget : undefined}
55
+ data-testid="repository-drawer"
56
+ >
57
+ {data.repositoryPath ? (
58
+ <div className="flex-1 overflow-y-auto">
59
+ <Separator />
60
+ <div className="flex flex-col gap-3 p-4">
61
+ <div className="text-muted-foreground text-xs font-semibold tracking-wider">
62
+ OPEN WITH
63
+ </div>
64
+ <div className="flex flex-col gap-2">
65
+ <ActionButton
66
+ label="Open in IDE"
67
+ onClick={repoActions.openInIde}
68
+ loading={repoActions.ideLoading}
69
+ error={!!repoActions.ideError}
70
+ icon={Code2}
71
+ variant="outline"
72
+ size="sm"
73
+ />
74
+ <ActionButton
75
+ label="Open in Shell"
76
+ onClick={repoActions.openInShell}
77
+ loading={repoActions.shellLoading}
78
+ error={!!repoActions.shellError}
79
+ icon={Terminal}
80
+ variant="outline"
81
+ size="sm"
82
+ />
83
+ <ActionButton
84
+ label="Open Folder"
85
+ onClick={repoActions.openFolder}
86
+ loading={repoActions.folderLoading}
87
+ error={!!repoActions.folderError}
88
+ icon={FolderOpen}
89
+ variant="outline"
90
+ size="sm"
91
+ />
92
+ </div>
93
+ </div>
94
+ </div>
95
+ ) : null}
96
+ </BaseDrawer>
97
+ );
98
+ }
@@ -1,19 +1,19 @@
1
1
  'use client';
2
2
 
3
- import { useCallback, useEffect, useMemo, useState } from 'react';
3
+ import { useCallback, useEffect, useMemo } from 'react';
4
+ import { useRouter, usePathname } from 'next/navigation';
4
5
  import type { Edge } from '@xyflow/react';
5
6
  import { FeaturesCanvas } from '@/components/features/features-canvas';
6
7
  import type { CanvasNodeType } from '@/components/features/features-canvas';
7
8
  import type { FeatureNodeData } from '@/components/common/feature-node';
8
- import { ControlCenterDrawer, computeDrawerView } from '@/components/common/control-center-drawer';
9
9
  import type { RepositoryNodeData } from '@/components/common/repository-node';
10
10
  import { NotificationPermissionBanner } from '@/components/common/notification-permission-banner';
11
- import { getWorkflowDefaults } from '@/app/actions/get-workflow-defaults';
12
- import type { WorkflowDefaults } from '@/app/actions/get-workflow-defaults';
13
11
  import {
14
12
  useSidebarFeaturesContext,
15
13
  mapNodeStateToSidebarStatus,
16
14
  } from '@/hooks/sidebar-features-context';
15
+ import { useSelectedFeatureId } from '@/hooks/use-selected-feature-id';
16
+ import { useSoundAction } from '@/hooks/use-sound-action';
17
17
  import { ControlCenterEmptyState } from './control-center-empty-state';
18
18
  import { useControlCenterState } from './use-control-center-state';
19
19
 
@@ -23,27 +23,20 @@ interface ControlCenterInnerProps {
23
23
  }
24
24
 
25
25
  export function ControlCenterInner({ initialNodes, initialEdges }: ControlCenterInnerProps) {
26
+ const router = useRouter();
27
+ const pathname = usePathname();
28
+ const selectedFeatureId = useSelectedFeatureId();
29
+ const clickSound = useSoundAction('click');
30
+
26
31
  const {
27
32
  nodes,
28
33
  edges,
29
- selectedNode,
30
- isCreateDrawerOpen,
31
- isDeleting,
32
- pendingRepositoryPath,
33
34
  onNodesChange,
34
35
  handleConnect,
35
- handleAddFeature,
36
- handleAddFeatureToRepo,
37
- handleAddFeatureToFeature,
38
36
  handleAddRepository,
39
- handleNodeClick,
40
- clearSelection,
41
- handleCreateFeatureSubmit,
42
37
  handleDeleteFeature,
43
38
  handleDeleteRepository,
44
- closeCreateDrawer,
45
- selectFeatureById,
46
- pendingParentFeatureId,
39
+ createFeatureNode,
47
40
  } = useControlCenterState(initialNodes, initialEdges);
48
41
 
49
42
  // Publish sidebar features to context whenever feature node data changes
@@ -86,68 +79,75 @@ export function ControlCenterInner({ initialNodes, initialEdges }: ControlCenter
86
79
  setSidebarFeatures(sidebarItems);
87
80
  }, [sidebarKey, nodes, setSidebarFeatures]);
88
81
 
89
- // Feature list for the parent selector in the create drawer
90
- const featureOptions = useMemo(
91
- () =>
92
- nodes
93
- .filter((n) => n.type === 'featureNode')
94
- .map((n) => {
95
- const data = n.data as FeatureNodeData;
96
- return { id: data.featureId, name: data.name };
97
- })
98
- .filter((f) => f.id && !f.id.startsWith('#')),
99
- [nodes]
100
- );
82
+ // ── URL-based navigation handlers ────────────────────────────────────
101
83
 
102
- // Workflow defaults for the create-feature drawer
103
- const [workflowDefaults, setWorkflowDefaults] = useState<WorkflowDefaults | undefined>();
104
- useEffect(() => {
105
- getWorkflowDefaults()
106
- .then(setWorkflowDefaults)
107
- .catch(() => {
108
- // Settings unavailable — create drawer falls back to all-false defaults
109
- });
110
- }, []);
84
+ const handleNodeClick = useCallback(
85
+ (_event: React.MouseEvent, node: CanvasNodeType) => {
86
+ if (node.type === 'featureNode') {
87
+ const data = node.data as FeatureNodeData;
88
+ if (data.state === 'creating') return;
89
+ clickSound.play();
90
+ router.push(`/feature/${data.featureId}`);
91
+ }
92
+ },
93
+ [router, clickSound]
94
+ );
111
95
 
112
- // Repository drawer state (independent of feature selection)
113
- const [selectedRepoNode, setSelectedRepoNode] = useState<RepositoryNodeData | null>(null);
96
+ const handleAddFeature = useCallback(() => {
97
+ clickSound.play();
98
+ router.push('/create');
99
+ }, [router, clickSound]);
100
+
101
+ const handleAddFeatureToRepo = useCallback(
102
+ (repoNodeId: string) => {
103
+ clickSound.play();
104
+ const node = nodes.find((n) => n.id === repoNodeId);
105
+ const repoPath = (node?.data as { repositoryPath?: string } | undefined)?.repositoryPath;
106
+ if (repoPath) {
107
+ router.push(`/create?repo=${encodeURIComponent(repoPath)}`);
108
+ } else {
109
+ router.push('/create');
110
+ }
111
+ },
112
+ [nodes, router, clickSound]
113
+ );
114
114
 
115
- // Close all drawers — used on pane click and canvas drag
116
- const handleClearDrawers = useCallback(() => {
117
- clearSelection();
118
- setSelectedRepoNode(null);
119
- closeCreateDrawer();
120
- }, [clearSelection, closeCreateDrawer]);
115
+ const handleAddFeatureToFeature = useCallback(
116
+ (featureNodeId: string) => {
117
+ const featureId = featureNodeId.startsWith('feat-') ? featureNodeId.slice(5) : featureNodeId;
118
+ // Find the repo node that owns this feature
119
+ const repoEdge = edges.find((e) => e.target === featureNodeId);
120
+ const repoNode = repoEdge ? nodes.find((n) => n.id === repoEdge.source) : null;
121
+ const repoPath = (repoNode?.data as { repositoryPath?: string } | undefined)?.repositoryPath;
122
+
123
+ clickSound.play();
124
+ const params = new URLSearchParams();
125
+ if (repoPath) params.set('repo', repoPath);
126
+ params.set('parent', featureId);
127
+ router.push(`/create?${params.toString()}`);
128
+ },
129
+ [nodes, edges, router, clickSound]
130
+ );
121
131
 
122
- // Open repository drawer when a repo node is clicked
123
132
  const handleRepositoryClick = useCallback(
124
133
  (nodeId: string) => {
125
134
  const node = nodes.find((n) => n.id === nodeId);
126
135
  if (node?.type === 'repositoryNode') {
127
- clearSelection();
128
- setSelectedRepoNode(node.data as RepositoryNodeData);
136
+ const data = node.data as RepositoryNodeData;
137
+ if (data.id) {
138
+ router.push(`/repository/${data.id}`);
139
+ }
129
140
  }
130
141
  },
131
- [nodes, clearSelection]
142
+ [nodes, router]
132
143
  );
133
144
 
134
- // Derive the single active drawer view from all current state
135
- const drawerView = computeDrawerView({
136
- selectedNode,
137
- isCreateDrawerOpen,
138
- pendingRepositoryPath,
139
- pendingParentFeatureId,
140
- selectedRepoNode,
141
- features: featureOptions,
142
- workflowDefaults,
143
- });
144
-
145
- // Listen for global "open create drawer" events from the sidebar
146
- useEffect(() => {
147
- const handler = () => handleAddFeature();
148
- window.addEventListener('shep:open-create-drawer', handler);
149
- return () => window.removeEventListener('shep:open-create-drawer', handler);
150
- }, [handleAddFeature]);
145
+ // Close all drawers navigate back to root
146
+ const handleClearDrawers = useCallback(() => {
147
+ if (pathname !== '/') {
148
+ router.push('/');
149
+ }
150
+ }, [router, pathname]);
151
151
 
152
152
  // Listen for global "add repository" events from the top bar button
153
153
  useEffect(() => {
@@ -159,15 +159,30 @@ export function ControlCenterInner({ initialNodes, initialEdges }: ControlCenter
159
159
  return () => window.removeEventListener('shep:add-repository', handler);
160
160
  }, [handleAddRepository]);
161
161
 
162
- // Listen for notification "Review" clicks to open the relevant drawer
162
+ // Listen for optimistic create events from the create drawer
163
163
  useEffect(() => {
164
164
  const handler = (e: Event) => {
165
- const featureId = (e as CustomEvent<{ featureId: string }>).detail.featureId;
166
- selectFeatureById(featureId);
165
+ const detail = (
166
+ e as CustomEvent<{ name: string; description?: string; repositoryPath: string }>
167
+ ).detail;
168
+
169
+ // Find the repo node to connect to
170
+ const repoNode = nodes.find(
171
+ (n) =>
172
+ n.type === 'repositoryNode' &&
173
+ (n.data as { repositoryPath?: string }).repositoryPath === detail.repositoryPath
174
+ );
175
+
176
+ createFeatureNode(repoNode?.id ?? null, {
177
+ state: 'creating',
178
+ name: detail.name,
179
+ description: detail.description,
180
+ repositoryPath: detail.repositoryPath,
181
+ });
167
182
  };
168
- window.addEventListener('shep:select-feature', handler);
169
- return () => window.removeEventListener('shep:select-feature', handler);
170
- }, [selectFeatureById]);
183
+ window.addEventListener('shep:feature-created', handler);
184
+ return () => window.removeEventListener('shep:feature-created', handler);
185
+ }, [nodes, createFeatureNode]);
171
186
 
172
187
  const hasRepositories = nodes.some((n) => n.type === 'repositoryNode');
173
188
 
@@ -176,13 +191,6 @@ export function ControlCenterInner({ initialNodes, initialEdges }: ControlCenter
176
191
  <>
177
192
  <NotificationPermissionBanner />
178
193
  <ControlCenterEmptyState onRepositorySelect={handleAddRepository} />
179
- <ControlCenterDrawer
180
- view={drawerView}
181
- onClose={handleClearDrawers}
182
- onDelete={handleDeleteFeature}
183
- isDeleting={isDeleting}
184
- onCreateSubmit={handleCreateFeatureSubmit}
185
- />
186
194
  </>
187
195
  );
188
196
  }
@@ -193,6 +201,7 @@ export function ControlCenterInner({ initialNodes, initialEdges }: ControlCenter
193
201
  <FeaturesCanvas
194
202
  nodes={nodes}
195
203
  edges={edges}
204
+ selectedFeatureId={selectedFeatureId}
196
205
  onNodesChange={onNodesChange}
197
206
  onConnect={handleConnect}
198
207
  onAddFeature={handleAddFeature}
@@ -206,13 +215,6 @@ export function ControlCenterInner({ initialNodes, initialEdges }: ControlCenter
206
215
  onRepositorySelect={handleAddRepository}
207
216
  emptyState={<ControlCenterEmptyState onRepositorySelect={handleAddRepository} />}
208
217
  />
209
- <ControlCenterDrawer
210
- view={drawerView}
211
- onClose={handleClearDrawers}
212
- onDelete={handleDeleteFeature}
213
- isDeleting={isDeleting}
214
- onCreateSubmit={handleCreateFeatureSubmit}
215
- />
216
218
  </>
217
219
  );
218
220
  }
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
 
3
+ import type { ReactNode } from 'react';
3
4
  import { ReactFlowProvider } from '@xyflow/react';
4
5
  import type { Edge } from '@xyflow/react';
5
6
  import type { CanvasNodeType } from '@/components/features/features-canvas';
@@ -8,14 +9,17 @@ import { ControlCenterInner } from './control-center-inner';
8
9
  export interface ControlCenterProps {
9
10
  initialNodes: CanvasNodeType[];
10
11
  initialEdges: Edge[];
12
+ /** Drawer content rendered by the @drawer parallel route slot. */
13
+ drawer?: ReactNode;
11
14
  }
12
15
 
13
- export function ControlCenter({ initialNodes, initialEdges }: ControlCenterProps) {
16
+ export function ControlCenter({ initialNodes, initialEdges, drawer }: ControlCenterProps) {
14
17
  return (
15
18
  <div data-testid="control-center" className="h-full w-full">
16
19
  <ReactFlowProvider>
17
20
  <ControlCenterInner initialNodes={initialNodes} initialEdges={initialEdges} />
18
21
  </ReactFlowProvider>
22
+ <div key="drawer">{drawer}</div>
19
23
  </div>
20
24
  );
21
25
  }