@shepai/cli 1.70.2 → 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 (681) hide show
  1. package/dist/packages/core/src/application/ports/output/services/deployment-service.interface.d.ts +32 -0
  2. package/dist/packages/core/src/application/ports/output/services/deployment-service.interface.d.ts.map +1 -1
  3. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  4. package/dist/packages/core/src/infrastructure/di/container.js +3 -0
  5. package/dist/packages/core/src/infrastructure/services/deployment/deployment.service.d.ts +16 -2
  6. package/dist/packages/core/src/infrastructure/services/deployment/deployment.service.d.ts.map +1 -1
  7. package/dist/packages/core/src/infrastructure/services/deployment/deployment.service.js +46 -9
  8. package/dist/packages/core/src/infrastructure/services/deployment/log-ring-buffer.d.ts +23 -0
  9. package/dist/packages/core/src/infrastructure/services/deployment/log-ring-buffer.d.ts.map +1 -0
  10. package/dist/packages/core/src/infrastructure/services/deployment/log-ring-buffer.js +46 -0
  11. package/dist/src/presentation/web/app/(dashboard)/@drawer/create/page.d.ts +11 -0
  12. package/dist/src/presentation/web/app/(dashboard)/@drawer/create/page.d.ts.map +1 -0
  13. package/dist/src/presentation/web/app/(dashboard)/@drawer/create/page.js +18 -0
  14. package/dist/src/presentation/web/app/(dashboard)/@drawer/default.d.ts +3 -0
  15. package/dist/src/presentation/web/app/(dashboard)/@drawer/default.d.ts.map +1 -0
  16. package/dist/src/presentation/web/app/(dashboard)/@drawer/default.js +4 -0
  17. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.d.ts +10 -0
  18. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.d.ts.map +1 -0
  19. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.js +35 -0
  20. package/dist/src/presentation/web/app/(dashboard)/@drawer/repository/[repositoryId]/page.d.ts +10 -0
  21. package/dist/src/presentation/web/app/(dashboard)/@drawer/repository/[repositoryId]/page.d.ts.map +1 -0
  22. package/dist/src/presentation/web/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +18 -0
  23. package/dist/src/presentation/web/app/(dashboard)/create/page.d.ts +3 -0
  24. package/dist/src/presentation/web/app/(dashboard)/create/page.d.ts.map +1 -0
  25. package/dist/src/presentation/web/app/(dashboard)/create/page.js +4 -0
  26. package/dist/src/presentation/web/app/(dashboard)/feature/[featureId]/page.d.ts +3 -0
  27. package/dist/src/presentation/web/app/(dashboard)/feature/[featureId]/page.d.ts.map +1 -0
  28. package/dist/src/presentation/web/app/(dashboard)/feature/[featureId]/page.js +4 -0
  29. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts +7 -0
  30. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -0
  31. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +19 -0
  32. package/dist/src/presentation/web/app/(dashboard)/layout.d.ts +10 -0
  33. package/dist/src/presentation/web/app/(dashboard)/layout.d.ts.map +1 -0
  34. package/dist/src/presentation/web/app/(dashboard)/layout.js +9 -0
  35. package/dist/src/presentation/web/app/(dashboard)/page.d.ts +5 -0
  36. package/dist/src/presentation/web/app/(dashboard)/page.d.ts.map +1 -0
  37. package/dist/src/presentation/web/app/(dashboard)/page.js +6 -0
  38. package/dist/src/presentation/web/app/(dashboard)/repository/[repositoryId]/page.d.ts +3 -0
  39. package/dist/src/presentation/web/app/(dashboard)/repository/[repositoryId]/page.d.ts.map +1 -0
  40. package/dist/src/presentation/web/app/(dashboard)/repository/[repositoryId]/page.js +4 -0
  41. package/dist/src/presentation/web/app/actions/get-deployment-logs.d.ts +3 -0
  42. package/dist/src/presentation/web/app/actions/get-deployment-logs.d.ts.map +1 -0
  43. package/dist/src/presentation/web/app/actions/get-deployment-logs.js +9 -0
  44. package/dist/src/presentation/web/app/actions/get-feature-artifact.d.ts +2 -0
  45. package/dist/src/presentation/web/app/actions/get-feature-artifact.d.ts.map +1 -1
  46. package/dist/src/presentation/web/app/actions/get-feature-artifact.js +23 -1
  47. package/dist/src/presentation/web/app/api/deployment-logs/route.d.ts +15 -0
  48. package/dist/src/presentation/web/app/api/deployment-logs/route.d.ts.map +1 -0
  49. package/dist/src/presentation/web/app/api/deployment-logs/route.js +94 -0
  50. package/dist/src/presentation/web/app/build-feature-node-data.d.ts +8 -0
  51. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -0
  52. package/dist/src/presentation/web/app/build-feature-node-data.js +53 -0
  53. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +1 -1
  54. package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.d.ts.map +1 -1
  55. package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.js +33 -3
  56. package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.d.ts +10 -0
  57. package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.d.ts.map +1 -0
  58. package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.js +49 -0
  59. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts +6 -0
  60. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -0
  61. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +388 -0
  62. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts +6 -0
  63. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts.map +1 -0
  64. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.js +27 -0
  65. package/dist/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.d.ts +2 -1
  66. package/dist/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.d.ts.map +1 -1
  67. package/dist/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.js +16 -5
  68. package/dist/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.stories.d.ts +4 -0
  69. package/dist/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.stories.d.ts.map +1 -1
  70. package/dist/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.stories.js +8 -0
  71. package/dist/src/presentation/web/components/common/product-decisions-summary/index.d.ts +3 -0
  72. package/dist/src/presentation/web/components/common/product-decisions-summary/index.d.ts.map +1 -0
  73. package/dist/src/presentation/web/components/common/product-decisions-summary/index.js +1 -0
  74. package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary-config.d.ts +23 -0
  75. package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary-config.d.ts.map +1 -0
  76. package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary-config.js +1 -0
  77. package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.d.ts +3 -0
  78. package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.d.ts.map +1 -0
  79. package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.js +13 -0
  80. package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.stories.d.ts +14 -0
  81. package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.stories.d.ts.map +1 -0
  82. package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.stories.js +74 -0
  83. package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
  84. package/dist/src/presentation/web/components/common/repository-node/repository-node.js +1 -1
  85. package/dist/src/presentation/web/components/common/server-log-viewer/index.d.ts +2 -0
  86. package/dist/src/presentation/web/components/common/server-log-viewer/index.d.ts.map +1 -0
  87. package/dist/src/presentation/web/components/common/server-log-viewer/index.js +1 -0
  88. package/dist/src/presentation/web/components/common/server-log-viewer/server-log-viewer.d.ts +15 -0
  89. package/dist/src/presentation/web/components/common/server-log-viewer/server-log-viewer.d.ts.map +1 -0
  90. package/dist/src/presentation/web/components/common/server-log-viewer/server-log-viewer.js +31 -0
  91. package/dist/src/presentation/web/components/common/server-log-viewer/server-log-viewer.stories.d.ts +18 -0
  92. package/dist/src/presentation/web/components/common/server-log-viewer/server-log-viewer.stories.d.ts.map +1 -0
  93. package/dist/src/presentation/web/components/common/server-log-viewer/server-log-viewer.stories.js +113 -0
  94. package/dist/src/presentation/web/components/common/tech-decisions-review/index.d.ts +1 -1
  95. package/dist/src/presentation/web/components/common/tech-decisions-review/index.d.ts.map +1 -1
  96. package/dist/src/presentation/web/components/common/tech-decisions-review/index.js +1 -1
  97. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.d.ts +8 -1
  98. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.d.ts.map +1 -1
  99. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.js +11 -2
  100. package/dist/src/presentation/web/components/common/tech-review-tabs/index.d.ts +3 -0
  101. package/dist/src/presentation/web/components/common/tech-review-tabs/index.d.ts.map +1 -0
  102. package/dist/src/presentation/web/components/common/tech-review-tabs/index.js +1 -0
  103. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.d.ts +17 -0
  104. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.d.ts.map +1 -0
  105. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.js +1 -0
  106. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.d.ts +3 -0
  107. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.d.ts.map +1 -0
  108. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.js +12 -0
  109. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.d.ts +16 -0
  110. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.d.ts.map +1 -0
  111. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.js +110 -0
  112. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  113. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +74 -57
  114. package/dist/src/presentation/web/components/features/control-center/control-center.d.ts +4 -1
  115. package/dist/src/presentation/web/components/features/control-center/control-center.d.ts.map +1 -1
  116. package/dist/src/presentation/web/components/features/control-center/control-center.js +3 -3
  117. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +0 -15
  118. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  119. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +5 -146
  120. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts +2 -1
  121. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
  122. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +7 -1
  123. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.d.ts.map +1 -1
  124. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +6 -4
  125. package/dist/src/presentation/web/hooks/use-deployment-logs.d.ts +7 -0
  126. package/dist/src/presentation/web/hooks/use-deployment-logs.d.ts.map +1 -0
  127. package/dist/src/presentation/web/hooks/use-deployment-logs.js +50 -0
  128. package/dist/src/presentation/web/hooks/use-notifications.d.ts.map +1 -1
  129. package/dist/src/presentation/web/hooks/use-notifications.js +8 -5
  130. package/dist/src/presentation/web/hooks/use-selected-feature-id.d.ts +6 -0
  131. package/dist/src/presentation/web/hooks/use-selected-feature-id.d.ts.map +1 -0
  132. package/dist/src/presentation/web/hooks/use-selected-feature-id.js +11 -0
  133. package/dist/tsconfig.build.tsbuildinfo +1 -1
  134. package/package.json +1 -1
  135. package/web/.next/BUILD_ID +1 -1
  136. package/web/.next/app-path-routes-manifest.json +8 -1
  137. package/web/.next/build-manifest.json +5 -5
  138. package/web/.next/cache/.previewinfo +1 -1
  139. package/web/.next/cache/.rscinfo +1 -1
  140. package/web/.next/cache/.tsbuildinfo +1 -1
  141. package/web/.next/cache/config.json +3 -3
  142. package/web/.next/fallback-build-manifest.json +2 -2
  143. package/web/.next/prerender-manifest.json +3 -3
  144. package/web/.next/required-server-files.js +1 -1
  145. package/web/.next/required-server-files.json +1 -1
  146. package/web/.next/routes-manifest.json +28 -0
  147. package/web/.next/server/app/(dashboard)/@drawer/create/page/app-paths-manifest.json +3 -0
  148. package/web/.next/server/app/{page → (dashboard)/@drawer/create/page}/build-manifest.json +3 -3
  149. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +215 -0
  150. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +19 -0
  151. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -0
  152. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +2 -0
  153. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/app-paths-manifest.json +3 -0
  154. package/web/.next/{standalone/src/presentation/web/.next/server/app → server/app/(dashboard)/@drawer/feature/[featureId]}/page/build-manifest.json +3 -3
  155. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +260 -0
  156. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +19 -0
  157. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -0
  158. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +2 -0
  159. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/app-paths-manifest.json +3 -0
  160. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +18 -0
  161. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/next-font-manifest.json +6 -0
  162. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/react-loadable-manifest.json +1 -0
  163. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +185 -0
  164. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +19 -0
  165. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.map +5 -0
  166. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -0
  167. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +2 -0
  168. package/web/.next/server/app/(dashboard)/create/page/app-paths-manifest.json +3 -0
  169. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +18 -0
  170. package/web/.next/server/app/(dashboard)/create/page/next-font-manifest.json +6 -0
  171. package/web/.next/server/app/(dashboard)/create/page/react-loadable-manifest.json +1 -0
  172. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +215 -0
  173. package/web/.next/server/app/(dashboard)/create/page.js +19 -0
  174. package/web/.next/server/app/(dashboard)/create/page.js.map +5 -0
  175. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -0
  176. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +2 -0
  177. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/app-paths-manifest.json +3 -0
  178. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +18 -0
  179. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/next-font-manifest.json +6 -0
  180. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/react-loadable-manifest.json +1 -0
  181. package/web/.next/server/app/{page → (dashboard)/feature/[featureId]/page}/server-reference-manifest.json +111 -126
  182. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +19 -0
  183. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.map +5 -0
  184. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -0
  185. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +2 -0
  186. package/web/.next/server/app/(dashboard)/page/app-paths-manifest.json +3 -0
  187. package/web/.next/server/app/(dashboard)/page/build-manifest.json +18 -0
  188. package/web/.next/server/app/(dashboard)/page/next-font-manifest.json +6 -0
  189. package/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +1 -0
  190. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +185 -0
  191. package/web/.next/server/app/(dashboard)/page.js +19 -0
  192. package/web/.next/server/app/(dashboard)/page.js.map +5 -0
  193. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -0
  194. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +2 -0
  195. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/app-paths-manifest.json +3 -0
  196. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +18 -0
  197. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/next-font-manifest.json +6 -0
  198. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/react-loadable-manifest.json +1 -0
  199. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +185 -0
  200. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +19 -0
  201. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.map +5 -0
  202. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -0
  203. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +2 -0
  204. package/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  205. package/web/.next/server/app/_global-error/page.js +1 -1
  206. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  207. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  208. package/web/.next/server/app/_global-error.html +2 -2
  209. package/web/.next/server/app/_global-error.rsc +1 -1
  210. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  211. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  212. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  213. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  214. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  215. package/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  216. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  217. package/web/.next/server/app/_not-found/page.js +1 -1
  218. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  219. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  220. package/web/.next/server/app/api/deployment-logs/route/app-paths-manifest.json +3 -0
  221. package/web/.next/server/app/api/deployment-logs/route/build-manifest.json +11 -0
  222. package/web/.next/server/app/api/deployment-logs/route/server-reference-manifest.json +4 -0
  223. package/web/.next/server/app/api/deployment-logs/route.js +6 -0
  224. package/web/.next/server/app/api/deployment-logs/route.js.map +5 -0
  225. package/web/.next/server/app/api/deployment-logs/route.js.nft.json +1 -0
  226. package/web/.next/server/app/api/deployment-logs/route_client-reference-manifest.js +2 -0
  227. package/web/.next/server/app/api/tools/[id]/install/route.js +1 -1
  228. package/web/.next/server/app/api/tools/[id]/install/route.js.nft.json +1 -1
  229. package/web/.next/server/app/skills/page/build-manifest.json +3 -3
  230. package/web/.next/server/app/skills/page/server-reference-manifest.json +25 -10
  231. package/web/.next/server/app/skills/page.js +2 -2
  232. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  233. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  234. package/web/.next/server/app/tools/page/build-manifest.json +3 -3
  235. package/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  236. package/web/.next/server/app/tools/page.js +2 -2
  237. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  238. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  239. package/web/.next/server/app/version/page/build-manifest.json +3 -3
  240. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  241. package/web/.next/server/app/version/page.js +1 -1
  242. package/web/.next/server/app/version/page.js.nft.json +1 -1
  243. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  244. package/web/.next/server/app-paths-manifest.json +8 -1
  245. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_deployment-logs_route_actions_b785cd3a.js +3 -0
  246. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_deployment-logs_route_actions_b785cd3a.js.map +1 -0
  247. package/web/.next/server/chunks/[root-of-the-server]__9a136c79._.js +9 -0
  248. package/web/.next/server/chunks/[root-of-the-server]__9a136c79._.js.map +1 -0
  249. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__09413611._.js → server/chunks/[root-of-the-server]__b1f03347._.js} +2 -2
  250. package/web/.next/server/chunks/{[root-of-the-server]__09413611._.js.map → [root-of-the-server]__b1f03347._.js.map} +1 -1
  251. package/web/.next/server/chunks/ssr/403f9_next_d6c8d28d._.js +6 -0
  252. package/web/.next/server/chunks/ssr/403f9_next_d6c8d28d._.js.map +1 -0
  253. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_0f115902.js +4 -0
  254. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_0f115902.js.map +1 -0
  255. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_8e8822d6.js +4 -0
  256. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_8e8822d6.js.map +1 -0
  257. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_9d039634.js +4 -0
  258. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_9d039634.js.map +1 -0
  259. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_bec3d8d3.js +4 -0
  260. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_bec3d8d3.js.map +1 -0
  261. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c27615b6.js +4 -0
  262. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c27615b6.js.map +1 -0
  263. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d302115b.js +4 -0
  264. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d302115b.js.map +1 -0
  265. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +3 -0
  266. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -0
  267. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js +3 -0
  268. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js.map +1 -0
  269. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js +3 -0
  270. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js.map +1 -0
  271. 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
  272. package/web/.next/server/chunks/ssr/[root-of-the-server]__07385073._.js +4 -0
  273. package/web/.next/server/chunks/ssr/[root-of-the-server]__07385073._.js.map +1 -0
  274. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  275. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js.map +1 -1
  276. package/web/.next/server/chunks/ssr/[root-of-the-server]__2018e25f._.js +3 -0
  277. package/web/.next/server/chunks/ssr/[root-of-the-server]__2018e25f._.js.map +1 -0
  278. package/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  279. 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
  280. package/web/.next/server/chunks/ssr/[root-of-the-server]__3b4af5ae._.js +3 -0
  281. package/web/.next/server/chunks/ssr/[root-of-the-server]__3b4af5ae._.js.map +1 -0
  282. 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
  283. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  284. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  285. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +3 -0
  286. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -0
  287. package/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js +4 -0
  288. package/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js.map +1 -0
  289. package/web/.next/server/chunks/ssr/[root-of-the-server]__6ee2450e._.js +3 -0
  290. package/web/.next/server/chunks/ssr/[root-of-the-server]__6ee2450e._.js.map +1 -0
  291. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  292. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  293. package/web/.next/server/chunks/ssr/[root-of-the-server]__8a947500._.js +3 -0
  294. package/web/.next/server/chunks/ssr/[root-of-the-server]__8a947500._.js.map +1 -0
  295. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c1a3d66._.js +3 -0
  296. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c1a3d66._.js.map +1 -0
  297. package/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js +4 -0
  298. package/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js.map +1 -0
  299. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1efeb0eb._.js → [root-of-the-server]__9d14479b._.js} +2 -2
  300. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1efeb0eb._.js.map → [root-of-the-server]__9d14479b._.js.map} +1 -1
  301. package/web/.next/server/chunks/ssr/[root-of-the-server]__d4e51258._.js +3 -0
  302. package/web/.next/server/chunks/ssr/[root-of-the-server]__d4e51258._.js.map +1 -0
  303. package/web/.next/server/chunks/ssr/[root-of-the-server]__fe2a7deb._.js +3 -0
  304. package/web/.next/server/chunks/ssr/[root-of-the-server]__fe2a7deb._.js.map +1 -0
  305. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_725584e5._.js → server/chunks/ssr/_00e6c698._.js} +2 -2
  306. package/web/.next/server/chunks/ssr/_00e6c698._.js.map +1 -0
  307. package/web/.next/server/chunks/ssr/_13566ff3._.js +3 -0
  308. package/web/.next/server/chunks/ssr/_13566ff3._.js.map +1 -0
  309. package/web/.next/server/chunks/ssr/_250a63ae._.js +3 -0
  310. package/web/.next/server/chunks/ssr/_250a63ae._.js.map +1 -0
  311. package/web/.next/server/chunks/ssr/_326c615c._.js +12 -0
  312. package/web/.next/server/chunks/ssr/_326c615c._.js.map +1 -0
  313. package/web/.next/server/chunks/ssr/_34a58db8._.js +3 -0
  314. package/web/.next/server/chunks/ssr/_34a58db8._.js.map +1 -0
  315. package/web/.next/server/chunks/ssr/{_49bf495c._.js → _37259405._.js} +2 -2
  316. package/web/.next/server/chunks/ssr/_37259405._.js.map +1 -0
  317. package/web/.next/server/chunks/ssr/_85d0351b._.js +3 -0
  318. package/web/.next/server/chunks/ssr/_85d0351b._.js.map +1 -0
  319. package/web/.next/server/chunks/ssr/_ad8a094f._.js +1 -1
  320. package/web/.next/server/chunks/ssr/_cb5b3951._.js +3 -0
  321. package/web/.next/server/chunks/ssr/_cb5b3951._.js.map +1 -0
  322. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_c5d377cc._.js → server/chunks/ssr/_dc379243._.js} +3 -3
  323. package/web/.next/server/chunks/ssr/_dc379243._.js.map +1 -0
  324. package/web/.next/server/chunks/ssr/_fc3a6895._.js +3 -0
  325. package/web/.next/server/chunks/ssr/_fc3a6895._.js.map +1 -0
  326. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +3 -0
  327. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -0
  328. package/web/.next/server/chunks/ssr/node_modules__pnpm_11589942._.js +3 -0
  329. package/web/.next/server/chunks/ssr/node_modules__pnpm_11589942._.js.map +1 -0
  330. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/node_modules__pnpm_febcbea6._.js → server/chunks/ssr/node_modules__pnpm_3288606c._.js} +2 -2
  331. package/web/.next/server/chunks/ssr/{node_modules__pnpm_febcbea6._.js.map → node_modules__pnpm_3288606c._.js.map} +1 -1
  332. package/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js +8 -0
  333. package/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js.map +1 -0
  334. package/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js +3 -0
  335. package/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js.map +1 -0
  336. package/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js +3 -0
  337. package/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js.map +1 -0
  338. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js +3 -0
  339. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js.map +1 -0
  340. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_create_page_tsx_c60c859a._.js +3 -0
  341. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_create_page_tsx_c60c859a._.js.map +1 -0
  342. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_feature_[featureId]_page_tsx_797907a1._.js +3 -0
  343. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_feature_[featureId]_page_tsx_797907a1._.js.map +1 -0
  344. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_page_tsx_8d870268._.js +3 -0
  345. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_page_tsx_8d870268._.js.map +1 -0
  346. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_repository_[repositoryId]_page_tsx_7d738911._.js +3 -0
  347. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_repository_[repositoryId]_page_tsx_7d738911._.js.map +1 -0
  348. package/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js +8 -0
  349. package/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js.map +1 -0
  350. 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
  351. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -0
  352. package/web/.next/server/chunks/ssr/src_presentation_web_components_5124369c._.js +3 -0
  353. package/web/.next/server/chunks/ssr/src_presentation_web_components_5124369c._.js.map +1 -0
  354. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  355. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  356. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +3 -0
  357. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -0
  358. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_tabs_tsx_b226ea9b._.js +3 -0
  359. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_tabs_tsx_b226ea9b._.js.map +1 -0
  360. package/web/.next/server/middleware-build-manifest.js +3 -3
  361. package/web/.next/server/pages/500.html +2 -2
  362. package/web/.next/server/server-reference-manifest.js +1 -1
  363. package/web/.next/server/server-reference-manifest.json +695 -120
  364. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  365. package/web/.next/standalone/src/presentation/web/.next/app-path-routes-manifest.json +8 -1
  366. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +5 -5
  367. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  368. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  369. package/web/.next/standalone/src/presentation/web/.next/routes-manifest.json +28 -0
  370. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/app-paths-manifest.json +3 -0
  371. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +18 -0
  372. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/next-font-manifest.json +6 -0
  373. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/react-loadable-manifest.json +1 -0
  374. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +215 -0
  375. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js +19 -0
  376. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.map +5 -0
  377. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -0
  378. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +2 -0
  379. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/app-paths-manifest.json +3 -0
  380. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +18 -0
  381. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/next-font-manifest.json +6 -0
  382. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/react-loadable-manifest.json +1 -0
  383. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +260 -0
  384. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +19 -0
  385. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.map +5 -0
  386. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -0
  387. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +2 -0
  388. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/app-paths-manifest.json +3 -0
  389. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +18 -0
  390. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/next-font-manifest.json +6 -0
  391. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/react-loadable-manifest.json +1 -0
  392. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +185 -0
  393. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +19 -0
  394. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.map +5 -0
  395. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -0
  396. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +2 -0
  397. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/app-paths-manifest.json +3 -0
  398. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/build-manifest.json +18 -0
  399. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/next-font-manifest.json +6 -0
  400. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/react-loadable-manifest.json +1 -0
  401. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +215 -0
  402. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js +19 -0
  403. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.map +5 -0
  404. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -0
  405. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +2 -0
  406. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/app-paths-manifest.json +3 -0
  407. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +18 -0
  408. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/next-font-manifest.json +6 -0
  409. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/react-loadable-manifest.json +1 -0
  410. package/web/.next/standalone/src/presentation/web/.next/server/app/{page → (dashboard)/feature/[featureId]/page}/server-reference-manifest.json +111 -126
  411. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +19 -0
  412. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.map +5 -0
  413. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -0
  414. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +2 -0
  415. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/app-paths-manifest.json +3 -0
  416. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/build-manifest.json +18 -0
  417. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/next-font-manifest.json +6 -0
  418. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +1 -0
  419. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +185 -0
  420. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js +19 -0
  421. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.map +5 -0
  422. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -0
  423. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +2 -0
  424. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/app-paths-manifest.json +3 -0
  425. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +18 -0
  426. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/next-font-manifest.json +6 -0
  427. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/react-loadable-manifest.json +1 -0
  428. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +185 -0
  429. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +19 -0
  430. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.map +5 -0
  431. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -0
  432. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +2 -0
  433. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  434. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page.js +1 -1
  435. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  436. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  437. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  438. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  439. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  440. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  441. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  442. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  443. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  444. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  445. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  446. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js +1 -1
  447. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  448. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  449. package/web/.next/standalone/src/presentation/web/.next/server/app/api/deployment-logs/route/app-paths-manifest.json +3 -0
  450. package/web/.next/standalone/src/presentation/web/.next/server/app/api/deployment-logs/route/build-manifest.json +11 -0
  451. package/web/.next/standalone/src/presentation/web/.next/server/app/api/deployment-logs/route/server-reference-manifest.json +4 -0
  452. package/web/.next/standalone/src/presentation/web/.next/server/app/api/deployment-logs/route.js +6 -0
  453. package/web/.next/standalone/src/presentation/web/.next/server/app/api/deployment-logs/route.js.map +5 -0
  454. package/web/.next/standalone/src/presentation/web/.next/server/app/api/deployment-logs/route.js.nft.json +1 -0
  455. package/web/.next/standalone/src/presentation/web/.next/server/app/api/deployment-logs/route_client-reference-manifest.js +2 -0
  456. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/route.js +1 -1
  457. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/route.js.nft.json +1 -1
  458. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/build-manifest.json +3 -3
  459. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +25 -10
  460. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js +2 -2
  461. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js.nft.json +1 -1
  462. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  463. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/build-manifest.json +3 -3
  464. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  465. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js +2 -2
  466. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js.nft.json +1 -1
  467. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  468. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/build-manifest.json +3 -3
  469. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  470. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js +1 -1
  471. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js.nft.json +1 -1
  472. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  473. package/web/.next/standalone/src/presentation/web/.next/server/app-paths-manifest.json +8 -1
  474. package/web/.next/standalone/src/presentation/web/.next/server/chunks/744ca_web__next-internal_server_app_api_deployment-logs_route_actions_b785cd3a.js +3 -0
  475. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__9a136c79._.js +9 -0
  476. package/web/.next/{server/chunks/[root-of-the-server]__09413611._.js → standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__b1f03347._.js} +2 -2
  477. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_d6c8d28d._.js +6 -0
  478. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_0f115902.js +4 -0
  479. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_8e8822d6.js +4 -0
  480. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_9d039634.js +4 -0
  481. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_bec3d8d3.js +4 -0
  482. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c27615b6.js +4 -0
  483. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d302115b.js +4 -0
  484. 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
  485. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js +3 -0
  486. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js +3 -0
  487. 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
  488. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__07385073._.js +4 -0
  489. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  490. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__2018e25f._.js +3 -0
  491. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  492. 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
  493. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__3b4af5ae._.js +3 -0
  494. 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
  495. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  496. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +3 -0
  497. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js +4 -0
  498. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6ee2450e._.js +3 -0
  499. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  500. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8a947500._.js +3 -0
  501. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8c1a3d66._.js +3 -0
  502. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js +4 -0
  503. 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
  504. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__d4e51258._.js +3 -0
  505. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fe2a7deb._.js +3 -0
  506. package/web/.next/{server/chunks/ssr/_725584e5._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_00e6c698._.js} +2 -2
  507. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_13566ff3._.js +3 -0
  508. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_250a63ae._.js +3 -0
  509. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_326c615c._.js +12 -0
  510. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_34a58db8._.js +3 -0
  511. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_49bf495c._.js → _37259405._.js} +2 -2
  512. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_85d0351b._.js +3 -0
  513. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_ad8a094f._.js +1 -1
  514. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_cb5b3951._.js +3 -0
  515. package/web/.next/{server/chunks/ssr/_c5d377cc._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_dc379243._.js} +3 -3
  516. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_fc3a6895._.js +3 -0
  517. 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
  518. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/node_modules__pnpm_11589942._.js +3 -0
  519. package/web/.next/{server/chunks/ssr/node_modules__pnpm_febcbea6._.js → standalone/src/presentation/web/.next/server/chunks/ssr/node_modules__pnpm_3288606c._.js} +2 -2
  520. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js +8 -0
  521. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js +3 -0
  522. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js +3 -0
  523. 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
  524. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_create_page_tsx_c60c859a._.js +3 -0
  525. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_feature_[featureId]_page_tsx_797907a1._.js +3 -0
  526. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_page_tsx_8d870268._.js +3 -0
  527. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_repository_[repositoryId]_page_tsx_7d738911._.js +3 -0
  528. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js +8 -0
  529. 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
  530. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_5124369c._.js +3 -0
  531. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  532. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +3 -0
  533. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_ui_tabs_tsx_b226ea9b._.js +3 -0
  534. package/web/.next/standalone/src/presentation/web/.next/server/middleware-build-manifest.js +3 -3
  535. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  536. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  537. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +695 -120
  538. package/web/.next/standalone/src/presentation/web/app/(dashboard)/@drawer/create/page.tsx +35 -0
  539. package/web/.next/standalone/src/presentation/web/app/(dashboard)/@drawer/default.tsx +4 -0
  540. package/web/.next/standalone/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.tsx +46 -0
  541. package/web/.next/standalone/src/presentation/web/app/(dashboard)/@drawer/repository/[repositoryId]/page.tsx +29 -0
  542. package/web/.next/standalone/src/presentation/web/app/(dashboard)/create/page.tsx +4 -0
  543. package/web/.next/standalone/src/presentation/web/app/(dashboard)/feature/[featureId]/page.tsx +4 -0
  544. package/web/.next/standalone/src/presentation/web/app/{page.tsx → (dashboard)/get-graph-data.ts} +4 -13
  545. package/web/.next/standalone/src/presentation/web/app/(dashboard)/layout.tsx +22 -0
  546. package/web/.next/standalone/src/presentation/web/app/(dashboard)/page.tsx +7 -0
  547. package/web/.next/standalone/src/presentation/web/app/(dashboard)/repository/[repositoryId]/page.tsx +4 -0
  548. package/web/.next/standalone/src/presentation/web/app/actions/get-deployment-logs.ts +16 -0
  549. package/web/.next/standalone/src/presentation/web/app/actions/get-feature-artifact.ts +26 -1
  550. package/web/.next/standalone/src/presentation/web/app/api/deployment-logs/route.ts +112 -0
  551. package/web/.next/standalone/src/presentation/web/app/build-feature-node-data.ts +63 -0
  552. package/web/.next/standalone/src/presentation/web/components/common/base-drawer/base-drawer.tsx +5 -1
  553. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/control-center-drawer.tsx +42 -4
  554. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/create-drawer-client.tsx +87 -0
  555. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx +721 -0
  556. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.tsx +98 -0
  557. package/web/.next/standalone/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.stories.tsx +10 -0
  558. package/web/.next/standalone/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.tsx +76 -23
  559. package/web/.next/standalone/src/presentation/web/components/common/product-decisions-summary/index.ts +6 -0
  560. package/web/.next/standalone/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary-config.ts +24 -0
  561. package/web/.next/standalone/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.stories.tsx +87 -0
  562. package/web/.next/standalone/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.tsx +52 -0
  563. package/web/.next/standalone/src/presentation/web/components/common/repository-node/repository-node.tsx +5 -1
  564. package/web/.next/standalone/src/presentation/web/components/common/server-log-viewer/index.ts +6 -0
  565. package/web/.next/standalone/src/presentation/web/components/common/server-log-viewer/server-log-viewer.stories.tsx +168 -0
  566. package/web/.next/standalone/src/presentation/web/components/common/server-log-viewer/server-log-viewer.tsx +110 -0
  567. package/web/.next/standalone/src/presentation/web/components/common/tech-decisions-review/index.ts +1 -1
  568. package/web/.next/standalone/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.tsx +46 -28
  569. package/web/.next/standalone/src/presentation/web/components/common/tech-review-tabs/index.ts +2 -0
  570. package/web/.next/standalone/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.ts +17 -0
  571. package/web/.next/standalone/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.tsx +129 -0
  572. package/web/.next/standalone/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.tsx +60 -0
  573. package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +89 -87
  574. package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center.tsx +5 -1
  575. package/web/.next/standalone/src/presentation/web/components/features/control-center/use-control-center-state.ts +5 -197
  576. package/web/.next/standalone/src/presentation/web/components/features/features-canvas/features-canvas.tsx +9 -0
  577. package/web/.next/standalone/src/presentation/web/components/layouts/app-shell/app-shell.tsx +11 -5
  578. package/web/.next/standalone/src/presentation/web/hooks/use-deployment-logs.ts +67 -0
  579. package/web/.next/standalone/src/presentation/web/hooks/use-notifications.ts +13 -12
  580. package/web/.next/standalone/src/presentation/web/hooks/use-selected-feature-id.ts +13 -0
  581. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  582. package/web/.next/static/chunks/{c1c15470a7b058c8.js → 07fcc6d17357e905.js} +1 -1
  583. package/web/.next/static/chunks/224ed5f5dbd33154.css +2 -0
  584. package/web/.next/static/chunks/3b841f29db9a3da9.js +1 -0
  585. package/web/.next/static/chunks/{87421ab1062a39b7.js → 3e1227e02ef8bcc6.js} +2 -2
  586. package/web/.next/static/chunks/3e46df89d84cae41.js +1 -0
  587. package/web/.next/static/chunks/424982cd78174a1a.js +1 -0
  588. package/web/.next/static/chunks/47435830535491e8.js +1 -0
  589. package/web/.next/static/chunks/4ad5002ab597037c.js +1 -0
  590. package/web/.next/static/chunks/5f5c607ffae8b918.js +1 -0
  591. package/web/.next/static/chunks/64d73952a0291431.js +1 -0
  592. package/web/.next/static/chunks/782a2a325d33916e.js +1 -0
  593. package/web/.next/static/chunks/938c21b0cefb2b1d.js +1 -0
  594. package/web/.next/static/chunks/c1e2dd0ea2411684.js +1 -0
  595. package/web/.next/static/chunks/d063d1ee549e36c1.js +1 -0
  596. package/web/.next/static/chunks/d58c232421d2eb76.js +10 -0
  597. package/web/.next/static/chunks/d5aa17e7271ca056.js +1 -0
  598. package/web/.next/static/chunks/e44849eb58a3335f.js +1 -0
  599. package/web/.next/static/chunks/eab4c5668703be61.js +1 -0
  600. package/web/.next/static/chunks/f76236b7baf672dc.js +1 -0
  601. package/web/.next/static/chunks/{turbopack-958ac34b879d0dce.js → turbopack-3a8fe0e18e69b0ab.js} +1 -1
  602. package/web/.next/trace +1 -1
  603. package/web/.next/trace-build +1 -1
  604. package/web/.next/types/link.d.ts +4 -0
  605. package/web/.next/types/routes.d.ts +7 -3
  606. package/web/.next/types/validator.ts +74 -2
  607. package/dist/src/presentation/web/app/page.d.ts +0 -4
  608. package/dist/src/presentation/web/app/page.d.ts.map +0 -1
  609. package/dist/src/presentation/web/app/page.js +0 -25
  610. package/web/.next/server/app/page/app-paths-manifest.json +0 -3
  611. package/web/.next/server/app/page.js +0 -16
  612. package/web/.next/server/app/page.js.nft.json +0 -1
  613. package/web/.next/server/app/page_client-reference-manifest.js +0 -2
  614. package/web/.next/server/chunks/ssr/6769f_@radix-ui_react-roving-focus_dist_index_mjs_b3be3d8e._.js +0 -3
  615. package/web/.next/server/chunks/ssr/6769f_@radix-ui_react-roving-focus_dist_index_mjs_b3be3d8e._.js.map +0 -1
  616. package/web/.next/server/chunks/ssr/[root-of-the-server]__2ffb27f1._.js +0 -3
  617. package/web/.next/server/chunks/ssr/[root-of-the-server]__2ffb27f1._.js.map +0 -1
  618. package/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js +0 -4
  619. package/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js.map +0 -1
  620. package/web/.next/server/chunks/ssr/[root-of-the-server]__7f4180a1._.js +0 -3
  621. package/web/.next/server/chunks/ssr/[root-of-the-server]__7f4180a1._.js.map +0 -1
  622. package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +0 -12
  623. package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js.map +0 -1
  624. package/web/.next/server/chunks/ssr/[root-of-the-server]__e41b5eec._.js +0 -9
  625. package/web/.next/server/chunks/ssr/[root-of-the-server]__e41b5eec._.js.map +0 -1
  626. package/web/.next/server/chunks/ssr/[root-of-the-server]__eaf6100f._.js +0 -3
  627. package/web/.next/server/chunks/ssr/[root-of-the-server]__eaf6100f._.js.map +0 -1
  628. package/web/.next/server/chunks/ssr/_28993370._.js +0 -3
  629. package/web/.next/server/chunks/ssr/_28993370._.js.map +0 -1
  630. package/web/.next/server/chunks/ssr/_49bf495c._.js.map +0 -1
  631. package/web/.next/server/chunks/ssr/_68b5e0de._.js +0 -6
  632. package/web/.next/server/chunks/ssr/_68b5e0de._.js.map +0 -1
  633. package/web/.next/server/chunks/ssr/_690ea95f._.js +0 -3
  634. package/web/.next/server/chunks/ssr/_690ea95f._.js.map +0 -1
  635. package/web/.next/server/chunks/ssr/_725584e5._.js.map +0 -1
  636. package/web/.next/server/chunks/ssr/_c5d377cc._.js.map +0 -1
  637. package/web/.next/server/chunks/ssr/_ed9132c9._.js +0 -3
  638. package/web/.next/server/chunks/ssr/_ed9132c9._.js.map +0 -1
  639. package/web/.next/server/chunks/ssr/src_presentation_web_components_0286756b._.js +0 -3
  640. package/web/.next/server/chunks/ssr/src_presentation_web_components_0286756b._.js.map +0 -1
  641. package/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js.map +0 -1
  642. package/web/.next/standalone/src/presentation/web/.next/server/app/page/app-paths-manifest.json +0 -3
  643. package/web/.next/standalone/src/presentation/web/.next/server/app/page.js +0 -16
  644. package/web/.next/standalone/src/presentation/web/.next/server/app/page.js.nft.json +0 -1
  645. package/web/.next/standalone/src/presentation/web/.next/server/app/page_client-reference-manifest.js +0 -2
  646. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/6769f_@radix-ui_react-roving-focus_dist_index_mjs_b3be3d8e._.js +0 -3
  647. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__2ffb27f1._.js +0 -3
  648. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js +0 -4
  649. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__7f4180a1._.js +0 -3
  650. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +0 -12
  651. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__e41b5eec._.js +0 -9
  652. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__eaf6100f._.js +0 -3
  653. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_28993370._.js +0 -3
  654. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_68b5e0de._.js +0 -6
  655. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_690ea95f._.js +0 -3
  656. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_ed9132c9._.js +0 -3
  657. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_0286756b._.js +0 -3
  658. package/web/.next/static/chunks/09e70c24eceecf48.js +0 -10
  659. package/web/.next/static/chunks/2eae41f87676d999.js +0 -1
  660. package/web/.next/static/chunks/4b357783626e0916.js +0 -1
  661. package/web/.next/static/chunks/505c6a9e4c5d0808.js +0 -1
  662. package/web/.next/static/chunks/51c94a563ecc565d.js +0 -1
  663. package/web/.next/static/chunks/7ad36bef63f15bc6.js +0 -1
  664. package/web/.next/static/chunks/a186bbb822ccb655.css +0 -2
  665. package/web/.next/static/chunks/a5c59952485e875e.js +0 -1
  666. package/web/.next/static/chunks/a9626385607910b3.js +0 -1
  667. package/web/.next/static/chunks/b581320ecaa97e4a.js +0 -1
  668. package/web/.next/static/chunks/d4379644a6145352.js +0 -1
  669. package/web/.next/static/chunks/fb703cf73aba2eb8.js +0 -1
  670. /package/web/.next/server/app/{page → (dashboard)/@drawer/create/page}/next-font-manifest.json +0 -0
  671. /package/web/.next/server/app/{page → (dashboard)/@drawer/create/page}/react-loadable-manifest.json +0 -0
  672. /package/web/.next/server/app/{page.js.map → (dashboard)/@drawer/create/page.js.map} +0 -0
  673. /package/web/.next/{standalone/src/presentation/web/.next/server/app → server/app/(dashboard)/@drawer/feature/[featureId]}/page/next-font-manifest.json +0 -0
  674. /package/web/.next/{standalone/src/presentation/web/.next/server/app → server/app/(dashboard)/@drawer/feature/[featureId]}/page/react-loadable-manifest.json +0 -0
  675. /package/web/.next/{standalone/src/presentation/web/.next/server/app → server/app/(dashboard)/@drawer/feature/[featureId]}/page.js.map +0 -0
  676. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__b79b0516._.js.map → [root-of-the-server]__01a37f7a._.js.map} +0 -0
  677. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__248ee887._.js.map → [root-of-the-server]__3534949f._.js.map} +0 -0
  678. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__f7f90528._.js.map → [root-of-the-server]__55f60c9d._.js.map} +0 -0
  679. /package/web/.next/static/{MoPU_ZZ5QcyEys7Gfl_6r → cheZlPwpJASMO-UbgLmQk}/_buildManifest.js +0 -0
  680. /package/web/.next/static/{MoPU_ZZ5QcyEys7Gfl_6r → cheZlPwpJASMO-UbgLmQk}/_clientMiddlewareManifest.json +0 -0
  681. /package/web/.next/static/{MoPU_ZZ5QcyEys7Gfl_6r → cheZlPwpJASMO-UbgLmQk}/_ssgManifest.js +0 -0
@@ -26,6 +26,27 @@ function toQuestionnaireData(artifact) {
26
26
  },
27
27
  };
28
28
  }
29
+ /**
30
+ * Map FeatureArtifact openQuestions into a read-only summary for the
31
+ * Product Decisions tab in the tech review drawer.
32
+ */
33
+ function toProductDecisionsData(artifact) {
34
+ return {
35
+ question: 'Goal',
36
+ context: artifact.oneLiner,
37
+ questions: artifact.openQuestions
38
+ .filter((oq) => oq.resolved)
39
+ .map((oq) => {
40
+ const selected = oq.options?.find((o) => o.selected);
41
+ return {
42
+ question: oq.question,
43
+ selectedOption: selected?.option ?? oq.answer ?? 'N/A',
44
+ rationale: oq.selectionRationale ?? selected?.description ?? '',
45
+ wasRecommended: false,
46
+ };
47
+ }),
48
+ };
49
+ }
29
50
  export async function getFeatureArtifact(featureId) {
30
51
  if (!featureId.trim()) {
31
52
  return { error: 'Feature id is required' };
@@ -34,7 +55,8 @@ export async function getFeatureArtifact(featureId) {
34
55
  const useCase = resolve('GetFeatureArtifactUseCase');
35
56
  const artifact = await useCase.execute(featureId);
36
57
  const questionnaire = toQuestionnaireData(artifact);
37
- return { questionnaire, artifact };
58
+ const productDecisions = toProductDecisionsData(artifact);
59
+ return { questionnaire, productDecisions, artifact };
38
60
  }
39
61
  catch (error) {
40
62
  const message = error instanceof Error ? error.message : 'Failed to load feature artifact';
@@ -0,0 +1,15 @@
1
+ /**
2
+ * SSE API Route: GET /api/deployment-logs
3
+ *
4
+ * Streams deployment log events to the client via Server-Sent Events.
5
+ * Subscribes to the DeploymentService EventEmitter for real-time log
6
+ * entries, filtered by targetId.
7
+ *
8
+ * - Accepts ?targetId query parameter (required)
9
+ * - Sends log entries as SSE "log" events
10
+ * - Sends heartbeat comments every 30 seconds to keep connection alive
11
+ * - Cleans up EventEmitter subscription on client disconnect
12
+ */
13
+ export declare const dynamic = "force-dynamic";
14
+ export declare function GET(request: Request): Response;
15
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/app/api/deployment-logs/route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,eAAO,MAAM,OAAO,kBAAkB,CAAC;AAIvC,wBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAuF9C"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * SSE API Route: GET /api/deployment-logs
3
+ *
4
+ * Streams deployment log events to the client via Server-Sent Events.
5
+ * Subscribes to the DeploymentService EventEmitter for real-time log
6
+ * entries, filtered by targetId.
7
+ *
8
+ * - Accepts ?targetId query parameter (required)
9
+ * - Sends log entries as SSE "log" events
10
+ * - Sends heartbeat comments every 30 seconds to keep connection alive
11
+ * - Cleans up EventEmitter subscription on client disconnect
12
+ */
13
+ import { resolve } from '../../../lib/server-container.js';
14
+ // Force dynamic — SSE streams must never be statically optimized or cached
15
+ export const dynamic = 'force-dynamic';
16
+ const HEARTBEAT_INTERVAL_MS = 30_000;
17
+ export function GET(request) {
18
+ try {
19
+ const url = new URL(request.url);
20
+ const targetId = url.searchParams.get('targetId');
21
+ if (!targetId?.trim()) {
22
+ const errorStream = new ReadableStream({
23
+ start(controller) {
24
+ const encoder = new TextEncoder();
25
+ controller.enqueue(encoder.encode(`event: error\ndata: ${JSON.stringify({ error: 'targetId is required' })}\n\n`));
26
+ controller.close();
27
+ },
28
+ });
29
+ return new Response(errorStream, {
30
+ headers: {
31
+ 'Content-Type': 'text/event-stream',
32
+ 'Cache-Control': 'no-cache',
33
+ Connection: 'keep-alive',
34
+ },
35
+ });
36
+ }
37
+ const stream = new ReadableStream({
38
+ start(controller) {
39
+ const encoder = new TextEncoder();
40
+ let stopped = false;
41
+ function enqueue(text) {
42
+ if (stopped)
43
+ return;
44
+ try {
45
+ controller.enqueue(encoder.encode(text));
46
+ }
47
+ catch {
48
+ // Stream may be closed
49
+ }
50
+ }
51
+ const deploymentService = resolve('IDeploymentService');
52
+ // Subscribe to log events, filtering by targetId
53
+ const logHandler = (entry) => {
54
+ if (entry.targetId !== targetId)
55
+ return;
56
+ enqueue(`event: log\ndata: ${JSON.stringify(entry)}\n\n`);
57
+ };
58
+ deploymentService.on('log', logHandler);
59
+ // Heartbeat to keep connection alive
60
+ const heartbeatInterval = setInterval(() => {
61
+ enqueue(': heartbeat\n\n');
62
+ }, HEARTBEAT_INTERVAL_MS);
63
+ // Cleanup on client disconnect
64
+ const cleanup = () => {
65
+ stopped = true;
66
+ deploymentService.off('log', logHandler);
67
+ clearInterval(heartbeatInterval);
68
+ try {
69
+ controller.close();
70
+ }
71
+ catch {
72
+ // Stream may already be closed
73
+ }
74
+ };
75
+ request.signal.addEventListener('abort', cleanup, { once: true });
76
+ },
77
+ });
78
+ return new Response(stream, {
79
+ headers: {
80
+ 'Content-Type': 'text/event-stream',
81
+ 'Cache-Control': 'no-cache',
82
+ Connection: 'keep-alive',
83
+ },
84
+ });
85
+ }
86
+ catch (error) {
87
+ // eslint-disable-next-line no-console
88
+ console.error('[SSE route] GET /api/deployment-logs error:', error);
89
+ return new Response(JSON.stringify({ error: String(error) }), {
90
+ status: 500,
91
+ headers: { 'Content-Type': 'application/json' },
92
+ });
93
+ }
94
+ }
@@ -0,0 +1,8 @@
1
+ import type { Feature, AgentRun } from '../../../../packages/core/src/domain/generated/output.js';
2
+ import type { FeatureNodeData } from '../components/common/feature-node/index.js';
3
+ /**
4
+ * Builds a FeatureNodeData object from a Feature entity and optional AgentRun.
5
+ * This is the single-feature version of the logic in `buildGraphNodes`.
6
+ */
7
+ export declare function buildFeatureNodeData(feature: Feature, run: AgentRun | null): FeatureNodeData;
8
+ //# sourceMappingURL=build-feature-node-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-feature-node-data.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/app/build-feature-node-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAK9E,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,kCAAkC,CAAC;AAsB/F;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,eAAe,CA+B5F"}
@@ -0,0 +1,53 @@
1
+ import { deriveNodeState, deriveProgress, } from '../components/common/feature-node/derive-feature-state.js';
2
+ /** Map domain SdlcLifecycle enum values to UI FeatureLifecyclePhase (1:1). */
3
+ const lifecycleMap = {
4
+ Requirements: 'requirements',
5
+ Research: 'research',
6
+ Implementation: 'implementation',
7
+ Review: 'review',
8
+ 'Deploy & QA': 'deploy',
9
+ Maintain: 'maintain',
10
+ };
11
+ /** Map agent graph node names (from agent_run.result) to UI lifecycle phases. */
12
+ const nodeToLifecyclePhase = {
13
+ analyze: 'requirements',
14
+ requirements: 'requirements',
15
+ research: 'research',
16
+ plan: 'implementation',
17
+ implement: 'implementation',
18
+ merge: 'review',
19
+ };
20
+ /**
21
+ * Builds a FeatureNodeData object from a Feature entity and optional AgentRun.
22
+ * This is the single-feature version of the logic in `buildGraphNodes`.
23
+ */
24
+ export function buildFeatureNodeData(feature, run) {
25
+ const agentNode = run?.result?.startsWith('node:') ? run.result.slice(5) : undefined;
26
+ const lifecycle = run?.status === 'completed'
27
+ ? 'maintain'
28
+ : ((agentNode ? nodeToLifecyclePhase[agentNode] : undefined) ??
29
+ lifecycleMap[feature.lifecycle] ??
30
+ 'requirements');
31
+ return {
32
+ name: feature.name,
33
+ description: feature.description ?? feature.slug,
34
+ featureId: feature.id,
35
+ lifecycle,
36
+ repositoryPath: feature.repositoryPath,
37
+ branch: feature.branch,
38
+ specPath: feature.specPath,
39
+ state: deriveNodeState(feature, run),
40
+ progress: deriveProgress(feature),
41
+ ...(run?.agentType && { agentType: run.agentType }),
42
+ ...(run?.error && { errorMessage: run.error }),
43
+ ...(feature.pr && {
44
+ pr: {
45
+ url: feature.pr.url,
46
+ number: feature.pr.number,
47
+ status: feature.pr.status,
48
+ ciStatus: feature.pr.ciStatus,
49
+ commitHash: feature.pr.commitHash,
50
+ },
51
+ }),
52
+ };
53
+ }
@@ -49,5 +49,5 @@ export function BaseDrawer({ open, onClose, modal = false, size, header, childre
49
49
  function DeployBar({ deployTarget }) {
50
50
  const deployAction = useDeployAction(deployTarget);
51
51
  const isDeploymentActive = deployAction.status === 'Booting' || deployAction.status === 'Ready';
52
- return (_jsxs("div", { "data-testid": "base-drawer-deploy-bar", className: "flex items-center gap-2 px-4 pb-3", children: [_jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { children: _jsx(ActionButton, { label: isDeploymentActive ? 'Stop Dev Server' : 'Start Dev Server', onClick: isDeploymentActive ? deployAction.stop : deployAction.deploy, loading: deployAction.deployLoading || deployAction.stopLoading, error: !!deployAction.deployError, icon: isDeploymentActive ? Square : Play, iconOnly: true, variant: "outline", size: "icon-sm" }) }) }), _jsx(TooltipContent, { children: isDeploymentActive ? 'Stop Dev Server' : 'Start Dev Server' })] }) }), isDeploymentActive ? (_jsx(DeploymentStatusBadge, { status: deployAction.status, url: deployAction.url })) : null] }));
52
+ return (_jsxs("div", { "data-testid": "base-drawer-deploy-bar", className: "flex items-center gap-2 px-4 pb-3", children: [_jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { children: _jsx(ActionButton, { label: isDeploymentActive ? 'Stop Dev Server' : 'Start Dev Server', onClick: isDeploymentActive ? deployAction.stop : deployAction.deploy, loading: deployAction.deployLoading || deployAction.stopLoading, error: !!deployAction.deployError, icon: isDeploymentActive ? Square : Play, iconOnly: true, variant: "outline", size: "icon-sm" }) }) }), _jsx(TooltipContent, { children: isDeploymentActive ? 'Stop Dev Server' : 'Start Dev Server' })] }) }), isDeploymentActive ? (_jsx(DeploymentStatusBadge, { status: deployAction.status, url: deployAction.url, targetId: deployTarget.targetId })) : null] }));
53
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"control-center-drawer.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/control-center-drawer.tsx"],"names":[],"mappings":"AA8DA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,UAAU,EACV,cAAc,EACd,YAAY,GACb,EAAE,wBAAwB,2CAqhB1B"}
1
+ {"version":3,"file":"control-center-drawer.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/control-center-drawer.tsx"],"names":[],"mappings":"AA+DA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,UAAU,EACV,cAAc,EACd,YAAY,GACb,EAAE,wBAAwB,2CA0jB1B"}
@@ -27,7 +27,7 @@ import { ActionButton } from '../../common/action-button/index.js';
27
27
  import { OpenActionMenu } from '../../common/open-action-menu/index.js';
28
28
  import { FeatureCreateDrawer } from '../../common/feature-create-drawer/index.js';
29
29
  import { PrdQuestionnaire } from '../../common/prd-questionnaire/index.js';
30
- import { TechDecisionsReview } from '../../common/tech-decisions-review/index.js';
30
+ import { TechReviewTabs } from '../../common/tech-review-tabs/index.js';
31
31
  import { MergeReview } from '../../common/merge-review/index.js';
32
32
  import { featureNodeStateConfig, lifecycleDisplayLabels } from '../../common/feature-node/index.js';
33
33
  import { useFeatureActions } from '../../common/feature-drawer/use-feature-actions.js';
@@ -40,6 +40,9 @@ export function ControlCenterDrawer({ view, onClose, onDelete, isDeleting, onCre
40
40
  // ── Tech decisions state ────────────────────────────────────────────────
41
41
  const [techData, setTechData] = useState(null);
42
42
  const [isLoadingTech, setIsLoadingTech] = useState(false);
43
+ // ── Product decisions state (for tech review Product tab) ─────────────
44
+ const [techProductData, setTechProductData] = useState(undefined);
45
+ const [isLoadingTechProduct, setIsLoadingTechProduct] = useState(false);
43
46
  // ── Merge review state ──────────────────────────────────────────────────
44
47
  const [mergeData, setMergeData] = useState(null);
45
48
  const [isLoadingMerge, setIsLoadingMerge] = useState(false);
@@ -116,6 +119,33 @@ export function ControlCenterDrawer({ view, onClose, onDelete, isDeleting, onCre
116
119
  cancelled = true;
117
120
  };
118
121
  }, [techFeatureId]);
122
+ // Fetch product decisions for the Product tab in tech review
123
+ useEffect(() => {
124
+ setTechProductData(undefined);
125
+ if (!techFeatureId)
126
+ return;
127
+ let cancelled = false;
128
+ setIsLoadingTechProduct(true);
129
+ getFeatureArtifact(techFeatureId)
130
+ .then((result) => {
131
+ if (cancelled)
132
+ return;
133
+ if (result.productDecisions) {
134
+ setTechProductData(result.productDecisions);
135
+ }
136
+ // Silent failure — product tab shows "not available"
137
+ })
138
+ .catch(() => {
139
+ // Silent failure — the product tab is supplementary
140
+ })
141
+ .finally(() => {
142
+ if (!cancelled)
143
+ setIsLoadingTechProduct(false);
144
+ });
145
+ return () => {
146
+ cancelled = true;
147
+ };
148
+ }, [techFeatureId]);
119
149
  const mergeFeatureId = view?.type === 'merge-review' ? view.node.featureId : null;
120
150
  useEffect(() => {
121
151
  setMergeData(null);
@@ -253,7 +283,7 @@ export function ControlCenterDrawer({ view, onClose, onDelete, isDeleting, onCre
253
283
  // ── Header ──────────────────────────────────────────────────────────────
254
284
  let header = undefined;
255
285
  if (featureNode) {
256
- header = (_jsxs(_Fragment, { children: [_jsxs("div", { "data-testid": "feature-drawer-header", children: [_jsx(DrawerTitle, { children: featureNode.name }), featureNode.description ? (_jsx(DrawerDescription, { children: featureNode.description })) : featureNode.featureId ? (_jsx(DrawerDescription, { className: "sr-only", children: featureNode.featureId })) : null] }), featureActionsInput ? (_jsxs("div", { className: "flex items-center gap-2 pt-2", children: [_jsx(OpenActionMenu, { actions: featureActions, repositoryPath: featureActionsInput.repositoryPath, showSpecs: !!featureActionsInput.specPath }), featureFlags.envDeploy && featureDeployTarget ? (_jsxs(_Fragment, { children: [_jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { children: _jsx(ActionButton, { label: isFeatureDeployActive ? 'Stop Dev Server' : 'Start Dev Server', onClick: isFeatureDeployActive ? deployAction.stop : deployAction.deploy, loading: deployAction.deployLoading || deployAction.stopLoading, error: !!deployAction.deployError, icon: isFeatureDeployActive ? Square : Play, iconOnly: true, variant: "outline", size: "icon-sm" }) }) }), _jsx(TooltipContent, { children: isFeatureDeployActive ? 'Stop Dev Server' : 'Start Dev Server' })] }) }), isFeatureDeployActive ? (_jsx(DeploymentStatusBadge, { status: deployAction.status, url: deployAction.url })) : null] })) : null, onDelete && featureNode.featureId ? (_jsxs(AlertDialog, { children: [_jsx(AlertDialogTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon-sm", "aria-label": "Delete feature", disabled: isDeleting, className: "text-muted-foreground hover:text-destructive ml-auto", "data-testid": "feature-drawer-delete", children: isDeleting ? (_jsx(Loader2, { className: "size-4 animate-spin" })) : (_jsx(Trash2, { className: "size-4" })) }) }), _jsxs(AlertDialogContent, { children: [_jsxs(AlertDialogHeader, { children: [_jsx(AlertDialogTitle, { children: "Delete feature?" }), _jsxs(AlertDialogDescription, { children: ["This will permanently delete ", _jsx("strong", { children: featureNode.name }), " (", featureNode.featureId, "). This action cannot be undone.", featureNode.state === 'running' ? (_jsx(_Fragment, { children: " This feature has a running agent that will be stopped." })) : null] })] }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { disabled: isDeleting, children: "Cancel" }), _jsx(AlertDialogAction, { variant: "destructive", disabled: isDeleting, onClick: () => onDelete(featureNode.featureId), children: isDeleting ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }), "Deleting\u2026"] })) : ('Delete') })] })] })] })) : null] })) : null] }));
286
+ header = (_jsxs(_Fragment, { children: [_jsxs("div", { "data-testid": "feature-drawer-header", children: [_jsx(DrawerTitle, { children: featureNode.name }), featureNode.description ? (_jsx(DrawerDescription, { children: featureNode.description })) : featureNode.featureId ? (_jsx(DrawerDescription, { className: "sr-only", children: featureNode.featureId })) : null] }), featureActionsInput ? (_jsxs("div", { className: "flex items-center gap-2 pt-2", children: [_jsx(OpenActionMenu, { actions: featureActions, repositoryPath: featureActionsInput.repositoryPath, showSpecs: !!featureActionsInput.specPath }), featureFlags.envDeploy && featureDeployTarget ? (_jsxs(_Fragment, { children: [_jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { children: _jsx(ActionButton, { label: isFeatureDeployActive ? 'Stop Dev Server' : 'Start Dev Server', onClick: isFeatureDeployActive ? deployAction.stop : deployAction.deploy, loading: deployAction.deployLoading || deployAction.stopLoading, error: !!deployAction.deployError, icon: isFeatureDeployActive ? Square : Play, iconOnly: true, variant: "outline", size: "icon-sm" }) }) }), _jsx(TooltipContent, { children: isFeatureDeployActive ? 'Stop Dev Server' : 'Start Dev Server' })] }) }), isFeatureDeployActive ? (_jsx(DeploymentStatusBadge, { status: deployAction.status, url: deployAction.url, targetId: featureDeployTarget?.targetId })) : null] })) : null, onDelete && featureNode.featureId ? (_jsxs(AlertDialog, { children: [_jsx(AlertDialogTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon-sm", "aria-label": "Delete feature", disabled: isDeleting, className: "text-muted-foreground hover:text-destructive ml-auto", "data-testid": "feature-drawer-delete", children: isDeleting ? (_jsx(Loader2, { className: "size-4 animate-spin" })) : (_jsx(Trash2, { className: "size-4" })) }) }), _jsxs(AlertDialogContent, { children: [_jsxs(AlertDialogHeader, { children: [_jsx(AlertDialogTitle, { children: "Delete feature?" }), _jsxs(AlertDialogDescription, { children: ["This will permanently delete ", _jsx("strong", { children: featureNode.name }), " (", featureNode.featureId, "). This action cannot be undone.", featureNode.state === 'running' ? (_jsx(_Fragment, { children: " This feature has a running agent that will be stopped." })) : null] })] }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { disabled: isDeleting, children: "Cancel" }), _jsx(AlertDialogAction, { variant: "destructive", disabled: isDeleting, onClick: () => onDelete(featureNode.featureId), children: isDeleting ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }), "Deleting\u2026"] })) : ('Delete') })] })] })] })) : null] })) : null] }));
257
287
  }
258
288
  else if (repoData) {
259
289
  header = (_jsxs("div", { "data-testid": "repository-drawer-header", children: [_jsx(DrawerTitle, { children: repoData.name }), repoData.repositoryPath ? (_jsx(DrawerDescription, { className: "truncate font-mono text-xs", children: repoData.repositoryPath })) : null] }));
@@ -267,7 +297,7 @@ export function ControlCenterDrawer({ view, onClose, onDelete, isDeleting, onCre
267
297
  body = prdData ? (_jsx(PrdQuestionnaire, { data: prdData, selections: prdSelections, onSelect: (qId, oId) => setPrdSelections((prev) => ({ ...prev, [qId]: oId })), onApprove: handlePrdApprove, onReject: handlePrdReject, isProcessing: isLoadingPrd, isRejecting: isRejecting })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) }));
268
298
  }
269
299
  else if (view?.type === 'tech-review') {
270
- body = techData ? (_jsx(TechDecisionsReview, { data: techData, onApprove: handleTechApprove, onReject: handleTechReject, isProcessing: isLoadingTech, isRejecting: isRejecting })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) }));
300
+ body = techData ? (_jsx(TechReviewTabs, { techData: techData, productData: isLoadingTechProduct ? null : techProductData, onApprove: handleTechApprove, onReject: handleTechReject, isProcessing: isLoadingTech, isRejecting: isRejecting })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) }));
271
301
  }
272
302
  else if (view?.type === 'merge-review') {
273
303
  body = mergeData ? (_jsx(MergeReview, { data: mergeData, onApprove: handleMergeApprove, onReject: handleMergeReject, isProcessing: isLoadingMerge, isRejecting: isRejecting })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) }));
@@ -0,0 +1,10 @@
1
+ import type { ParentFeatureOption } from '../../common/feature-create-drawer/feature-create-drawer.js';
2
+ import type { WorkflowDefaults } from '../../../app/actions/get-workflow-defaults.js';
3
+ export interface CreateDrawerClientProps {
4
+ repositoryPath: string;
5
+ initialParentId?: string;
6
+ features: ParentFeatureOption[];
7
+ workflowDefaults?: WorkflowDefaults;
8
+ }
9
+ export declare function CreateDrawerClient({ repositoryPath, initialParentId, features, workflowDefaults, }: CreateDrawerClientProps): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=create-drawer-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-drawer-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/create-drawer-client.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iEAAiE,CAAC;AAC3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,wBAAgB,kBAAkB,CAAC,EACjC,cAAc,EACd,eAAe,EACf,QAAQ,EACR,gBAAgB,GACjB,EAAE,uBAAuB,2CA8DzB"}
@@ -0,0 +1,49 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useState, useCallback } from 'react';
4
+ import { useRouter } from 'next/navigation';
5
+ import { toast } from 'sonner';
6
+ import { createFeature } from '../../../app/actions/create-feature.js';
7
+ import { FeatureCreateDrawer } from '../../common/feature-create-drawer/index.js';
8
+ import { useSoundAction } from '../../../hooks/use-sound-action.js';
9
+ export function CreateDrawerClient({ repositoryPath, initialParentId, features, workflowDefaults, }) {
10
+ const router = useRouter();
11
+ const createSound = useSoundAction('create');
12
+ const [isSubmitting, setIsSubmitting] = useState(false);
13
+ const onClose = useCallback(() => {
14
+ router.push('/');
15
+ }, [router]);
16
+ const onSubmit = useCallback((data) => {
17
+ setIsSubmitting(true);
18
+ // Dispatch event for optimistic canvas update before navigating
19
+ window.dispatchEvent(new CustomEvent('shep:feature-created', {
20
+ detail: {
21
+ name: data.name,
22
+ description: data.description,
23
+ repositoryPath: data.repositoryPath,
24
+ },
25
+ }));
26
+ // Close the drawer immediately for responsive UI
27
+ router.push('/');
28
+ // Fire server action in the background
29
+ createFeature(data)
30
+ .then((result) => {
31
+ if (result.error) {
32
+ toast.error(result.error);
33
+ // Dispatch rollback event
34
+ window.dispatchEvent(new CustomEvent('shep:feature-create-failed'));
35
+ return;
36
+ }
37
+ createSound.play();
38
+ router.refresh();
39
+ })
40
+ .catch(() => {
41
+ toast.error('Failed to create feature');
42
+ window.dispatchEvent(new CustomEvent('shep:feature-create-failed'));
43
+ })
44
+ .finally(() => {
45
+ setIsSubmitting(false);
46
+ });
47
+ }, [router, createSound]);
48
+ return (_jsx(FeatureCreateDrawer, { open: true, onClose: onClose, onSubmit: onSubmit, repositoryPath: repositoryPath, features: features, workflowDefaults: workflowDefaults, initialParentId: initialParentId, isSubmitting: isSubmitting }));
49
+ }
@@ -0,0 +1,6 @@
1
+ import type { DrawerView } from './drawer-view.js';
2
+ export interface FeatureDrawerClientProps {
3
+ view: DrawerView;
4
+ }
5
+ export declare function FeatureDrawerClient({ view: initialView }: FeatureDrawerClientProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=feature-drawer-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-drawer-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx"],"names":[],"mappings":"AA0DA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,wBAAwB,2CAojBlF"}