@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
@@ -0,0 +1,98 @@
1
+ 'use client';
2
+
3
+ import { useCallback } from 'react';
4
+ import { useRouter } from 'next/navigation';
5
+ import { Code2, Terminal, FolderOpen } from 'lucide-react';
6
+ import { BaseDrawer } from '@/components/common/base-drawer';
7
+ import { ActionButton } from '@/components/common/action-button';
8
+ import { DrawerTitle, DrawerDescription } from '@/components/ui/drawer';
9
+ import { Separator } from '@/components/ui/separator';
10
+ import { useRepositoryActions } from '@/components/common/repository-node/use-repository-actions';
11
+ import { featureFlags } from '@/lib/feature-flags';
12
+ import type { RepositoryNodeData } from '@/components/common/repository-node';
13
+
14
+ export interface RepositoryDrawerClientProps {
15
+ data: RepositoryNodeData;
16
+ }
17
+
18
+ export function RepositoryDrawerClient({ data }: RepositoryDrawerClientProps) {
19
+ const router = useRouter();
20
+ const repoActions = useRepositoryActions(
21
+ data.repositoryPath ? { repositoryPath: data.repositoryPath } : null
22
+ );
23
+
24
+ const onClose = useCallback(() => {
25
+ router.push('/');
26
+ }, [router]);
27
+
28
+ const repoDeployTarget = data.repositoryPath
29
+ ? {
30
+ targetId: data.repositoryPath,
31
+ targetType: 'repository' as const,
32
+ repositoryPath: data.repositoryPath,
33
+ }
34
+ : undefined;
35
+
36
+ const header = (
37
+ <div data-testid="repository-drawer-header">
38
+ <DrawerTitle>{data.name}</DrawerTitle>
39
+ {data.repositoryPath ? (
40
+ <DrawerDescription className="truncate font-mono text-xs">
41
+ {data.repositoryPath}
42
+ </DrawerDescription>
43
+ ) : null}
44
+ </div>
45
+ );
46
+
47
+ return (
48
+ <BaseDrawer
49
+ open
50
+ onClose={onClose}
51
+ size="md"
52
+ modal={false}
53
+ header={header}
54
+ deployTarget={featureFlags.envDeploy ? repoDeployTarget : undefined}
55
+ data-testid="repository-drawer"
56
+ >
57
+ {data.repositoryPath ? (
58
+ <div className="flex-1 overflow-y-auto">
59
+ <Separator />
60
+ <div className="flex flex-col gap-3 p-4">
61
+ <div className="text-muted-foreground text-xs font-semibold tracking-wider">
62
+ OPEN WITH
63
+ </div>
64
+ <div className="flex flex-col gap-2">
65
+ <ActionButton
66
+ label="Open in IDE"
67
+ onClick={repoActions.openInIde}
68
+ loading={repoActions.ideLoading}
69
+ error={!!repoActions.ideError}
70
+ icon={Code2}
71
+ variant="outline"
72
+ size="sm"
73
+ />
74
+ <ActionButton
75
+ label="Open in Shell"
76
+ onClick={repoActions.openInShell}
77
+ loading={repoActions.shellLoading}
78
+ error={!!repoActions.shellError}
79
+ icon={Terminal}
80
+ variant="outline"
81
+ size="sm"
82
+ />
83
+ <ActionButton
84
+ label="Open Folder"
85
+ onClick={repoActions.openFolder}
86
+ loading={repoActions.folderLoading}
87
+ error={!!repoActions.folderError}
88
+ icon={FolderOpen}
89
+ variant="outline"
90
+ size="sm"
91
+ />
92
+ </div>
93
+ </div>
94
+ </div>
95
+ ) : null}
96
+ </BaseDrawer>
97
+ );
98
+ }
@@ -33,3 +33,13 @@ export const Stopped: Story = {
33
33
  export const NoDeployment: Story = {
34
34
  args: { status: null },
35
35
  };
36
+
37
+ /** Booting with View Logs button — shows log button next to spinner. */
38
+ export const BootingWithLogs: Story = {
39
+ args: { status: DeploymentState.Booting, targetId: 'demo-target' },
40
+ };
41
+
42
+ /** Ready with View Logs button — shows URL and log button. */
43
+ export const ReadyWithLogs: Story = {
44
+ args: { status: DeploymentState.Ready, url: 'http://localhost:3000', targetId: 'demo-target' },
45
+ };
@@ -1,40 +1,93 @@
1
- import { Loader2, ExternalLink } from 'lucide-react';
1
+ 'use client';
2
+
3
+ import { useState } from 'react';
4
+ import { Loader2, ExternalLink, Terminal } from 'lucide-react';
2
5
  import { DeploymentState } from '@shepai/core/domain/generated/output';
3
6
  import { Badge } from '@/components/ui/badge';
7
+ import { ServerLogViewer } from '@/components/common/server-log-viewer';
4
8
 
5
9
  export interface DeploymentStatusBadgeProps {
6
10
  status: DeploymentState | null;
7
11
  url?: string | null;
12
+ targetId?: string;
8
13
  }
9
14
 
10
- export function DeploymentStatusBadge({ status, url }: DeploymentStatusBadgeProps) {
15
+ export function DeploymentStatusBadge({ status, url, targetId }: DeploymentStatusBadgeProps) {
16
+ const [logViewerOpen, setLogViewerOpen] = useState(false);
17
+ const showLogButton =
18
+ targetId && (status === DeploymentState.Booting || status === DeploymentState.Ready);
19
+
11
20
  switch (status) {
12
21
  case DeploymentState.Booting:
13
22
  return (
14
- <Badge className="border-transparent bg-blue-50 text-blue-700 hover:bg-blue-50">
15
- <Loader2 className="mr-1 h-3.5 w-3.5 animate-spin" />
16
- Starting...
17
- </Badge>
23
+ <>
24
+ <Badge className="border-transparent bg-blue-50 text-blue-700 hover:bg-blue-50">
25
+ <Loader2 className="mr-1 h-3.5 w-3.5 animate-spin" />
26
+ Starting...
27
+ {showLogButton ? (
28
+ <button
29
+ type="button"
30
+ aria-label="View server logs"
31
+ className="ml-1.5 inline-flex items-center rounded-sm p-0.5 hover:bg-blue-100"
32
+ onClick={(e) => {
33
+ e.stopPropagation();
34
+ setLogViewerOpen(true);
35
+ }}
36
+ >
37
+ <Terminal className="h-3 w-3" />
38
+ </button>
39
+ ) : null}
40
+ </Badge>
41
+ {showLogButton ? (
42
+ <ServerLogViewer
43
+ open={logViewerOpen}
44
+ onOpenChange={setLogViewerOpen}
45
+ targetId={targetId}
46
+ />
47
+ ) : null}
48
+ </>
18
49
  );
19
50
  case DeploymentState.Ready:
20
51
  return (
21
- <Badge className="border-transparent bg-green-50 text-green-700 hover:bg-green-50">
22
- <span className="mr-1 inline-block h-2 w-2 rounded-full bg-green-500" />
23
- {url ? (
24
- <a
25
- href={url}
26
- target="_blank"
27
- rel="noopener noreferrer"
28
- className="inline-flex items-center gap-1 hover:underline"
29
- onClick={(e) => e.stopPropagation()}
30
- >
31
- {url}
32
- <ExternalLink className="h-3 w-3" />
33
- </a>
34
- ) : (
35
- 'Ready'
36
- )}
37
- </Badge>
52
+ <>
53
+ <Badge className="border-transparent bg-green-50 text-green-700 hover:bg-green-50">
54
+ <span className="mr-1 inline-block h-2 w-2 rounded-full bg-green-500" />
55
+ {url ? (
56
+ <a
57
+ href={url}
58
+ target="_blank"
59
+ rel="noopener noreferrer"
60
+ className="inline-flex items-center gap-1 hover:underline"
61
+ onClick={(e) => e.stopPropagation()}
62
+ >
63
+ {url}
64
+ <ExternalLink className="h-3 w-3" />
65
+ </a>
66
+ ) : (
67
+ 'Ready'
68
+ )}
69
+ {showLogButton ? (
70
+ <button
71
+ type="button"
72
+ aria-label="View server logs"
73
+ className="ml-1.5 inline-flex items-center rounded-sm p-0.5 hover:bg-green-100"
74
+ onClick={(e) => {
75
+ e.stopPropagation();
76
+ setLogViewerOpen(true);
77
+ }}
78
+ >
79
+ <Terminal className="h-3 w-3" />
80
+ </button>
81
+ ) : null}
82
+ </Badge>
83
+ {showLogButton ? (
84
+ <ServerLogViewer
85
+ open={logViewerOpen}
86
+ onOpenChange={setLogViewerOpen}
87
+ targetId={targetId}
88
+ />
89
+ ) : null}
90
+ </>
38
91
  );
39
92
  default:
40
93
  return null;
@@ -0,0 +1,6 @@
1
+ export { ProductDecisionsSummary } from './product-decisions-summary';
2
+ export type {
3
+ ProductDecisionsSummaryData,
4
+ ProductDecisionItem,
5
+ ProductDecisionsSummaryProps,
6
+ } from './product-decisions-summary-config';
@@ -0,0 +1,24 @@
1
+ export interface ProductDecisionItem {
2
+ /** Question text */
3
+ question: string;
4
+ /** The selected option label */
5
+ selectedOption: string;
6
+ /** Rationale for the selected option */
7
+ rationale: string;
8
+ /** Whether it was the AI-recommended option */
9
+ wasRecommended: boolean;
10
+ }
11
+
12
+ export interface ProductDecisionsSummaryData {
13
+ /** Goal/title from the PRD */
14
+ question: string;
15
+ /** Context description (one-liner) */
16
+ context: string;
17
+ /** Resolved questions with selected options */
18
+ questions: ProductDecisionItem[];
19
+ }
20
+
21
+ export interface ProductDecisionsSummaryProps {
22
+ /** Product decisions data from the feature artifact */
23
+ data: ProductDecisionsSummaryData;
24
+ }
@@ -0,0 +1,87 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { ProductDecisionsSummary } from './product-decisions-summary';
3
+ import type { ProductDecisionsSummaryData } from './product-decisions-summary-config';
4
+
5
+ const mockData: ProductDecisionsSummaryData = {
6
+ question: 'Goal',
7
+ context: 'Add user authentication to the application',
8
+ questions: [
9
+ {
10
+ question: 'Which authentication strategy should we use?',
11
+ selectedOption: 'OAuth 2.0',
12
+ rationale: 'Industry standard with broad provider support and well-maintained libraries.',
13
+ wasRecommended: true,
14
+ },
15
+ {
16
+ question: 'How should we handle session management?',
17
+ selectedOption: 'JWT tokens',
18
+ rationale: 'Stateless and scalable across services without shared session storage.',
19
+ wasRecommended: false,
20
+ },
21
+ {
22
+ question: 'What level of MFA should we support?',
23
+ selectedOption: 'Optional TOTP',
24
+ rationale: 'Balances security with user convenience. Power users can opt in.',
25
+ wasRecommended: true,
26
+ },
27
+ {
28
+ question: 'Where should we store user profiles?',
29
+ selectedOption: 'PostgreSQL',
30
+ rationale: 'Relational data model fits well for user attributes and relationships.',
31
+ wasRecommended: false,
32
+ },
33
+ ],
34
+ };
35
+
36
+ const meta: Meta<typeof ProductDecisionsSummary> = {
37
+ title: 'Drawers/Review/ProductDecisionsSummary',
38
+ component: ProductDecisionsSummary,
39
+ tags: ['autodocs'],
40
+ parameters: {
41
+ layout: 'fullscreen',
42
+ },
43
+ decorators: [
44
+ (Story) => (
45
+ <div style={{ height: '600px', width: '400px', border: '1px solid var(--color-border)' }}>
46
+ <Story />
47
+ </div>
48
+ ),
49
+ ],
50
+ };
51
+
52
+ export default meta;
53
+ type Story = StoryObj<typeof ProductDecisionsSummary>;
54
+
55
+ /** Default — multiple product decisions with a mix of recommended and non-recommended. */
56
+ export const Default: Story = {
57
+ args: {
58
+ data: mockData,
59
+ },
60
+ };
61
+
62
+ /** Single question. */
63
+ export const SingleQuestion: Story = {
64
+ args: {
65
+ data: { ...mockData, questions: [mockData.questions[0]] },
66
+ },
67
+ };
68
+
69
+ /** All recommended — every option was the AI-recommended choice. */
70
+ export const AllRecommended: Story = {
71
+ args: {
72
+ data: {
73
+ ...mockData,
74
+ questions: mockData.questions.map((q) => ({ ...q, wasRecommended: true })),
75
+ },
76
+ },
77
+ };
78
+
79
+ /** No recommended badges — none of the selected options were AI-recommended. */
80
+ export const NoneRecommended: Story = {
81
+ args: {
82
+ data: {
83
+ ...mockData,
84
+ questions: mockData.questions.map((q) => ({ ...q, wasRecommended: false })),
85
+ },
86
+ },
87
+ };
@@ -0,0 +1,52 @@
1
+ 'use client';
2
+
3
+ import { ClipboardList } from 'lucide-react';
4
+ import { Badge } from '@/components/ui/badge';
5
+ import type {
6
+ ProductDecisionsSummaryProps,
7
+ ProductDecisionItem,
8
+ } from './product-decisions-summary-config';
9
+
10
+ function ProductDecisionCard({ item, index }: { item: ProductDecisionItem; index: number }) {
11
+ return (
12
+ <div className="border-border rounded-lg border">
13
+ <div className="space-y-2 px-4 py-3">
14
+ <div className="flex items-start gap-2.5">
15
+ <span className="bg-primary text-primary-foreground flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-bold">
16
+ {index + 1}
17
+ </span>
18
+ <div className="min-w-0 flex-1">
19
+ <h3 className="text-foreground text-sm leading-tight font-semibold">{item.question}</h3>
20
+ <div className="mt-1 flex items-center gap-2">
21
+ <p className="text-muted-foreground text-xs">{item.selectedOption}</p>
22
+ {item.wasRecommended ? (
23
+ <Badge className="px-1.5 py-0 text-[10px]">AI Recommended</Badge>
24
+ ) : null}
25
+ </div>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ </div>
30
+ );
31
+ }
32
+
33
+ export function ProductDecisionsSummary({ data }: ProductDecisionsSummaryProps) {
34
+ const { questions } = data;
35
+
36
+ if (questions.length === 0) return null;
37
+
38
+ return (
39
+ <div className="space-y-4 p-4">
40
+ {/* Section heading */}
41
+ <div className="flex items-center gap-2">
42
+ <ClipboardList className="text-primary h-4 w-4" />
43
+ <h3 className="text-foreground text-sm font-bold">Product Decisions</h3>
44
+ </div>
45
+
46
+ {/* Decision cards */}
47
+ {questions.map((item, i) => (
48
+ <ProductDecisionCard key={item.question} item={item} index={i} />
49
+ ))}
50
+ </div>
51
+ );
52
+ }
@@ -206,7 +206,11 @@ export function RepositoryNode({ data }: { data: RepositoryNodeData; [key: strin
206
206
  </Tooltip>
207
207
  </TooltipProvider>
208
208
  {isDeploymentActive ? (
209
- <DeploymentStatusBadge status={deployAction.status} url={deployAction.url} />
209
+ <DeploymentStatusBadge
210
+ status={deployAction.status}
211
+ url={deployAction.url}
212
+ targetId={data.repositoryPath}
213
+ />
210
214
  ) : null}
211
215
  </>
212
216
  ) : null}
@@ -0,0 +1,6 @@
1
+ export {
2
+ ServerLogViewer,
3
+ ServerLogViewerContent,
4
+ type ServerLogViewerProps,
5
+ type ServerLogViewerContentProps,
6
+ } from './server-log-viewer';
@@ -0,0 +1,168 @@
1
+ import { useState } from 'react';
2
+ import type { Meta, StoryObj } from '@storybook/react';
3
+ import type { LogEntry } from '@shepai/core/application/ports/output/services/deployment-service.interface';
4
+ import { ServerLogViewerContent } from './server-log-viewer';
5
+
6
+ const meta: Meta<typeof ServerLogViewerContent> = {
7
+ title: 'Common/ServerLogViewer',
8
+ component: ServerLogViewerContent,
9
+ tags: ['autodocs'],
10
+ parameters: {
11
+ layout: 'fullscreen',
12
+ },
13
+ };
14
+
15
+ export default meta;
16
+ type Story = StoryObj<typeof ServerLogViewerContent>;
17
+
18
+ function makeLog(line: string, stream: 'stdout' | 'stderr' = 'stdout', offsetMs = 0): LogEntry {
19
+ return {
20
+ targetId: 'story-target',
21
+ stream,
22
+ line,
23
+ timestamp: Date.now() + offsetMs,
24
+ };
25
+ }
26
+
27
+ function InteractiveWrapper({ logs, isConnected }: { logs: LogEntry[]; isConnected: boolean }) {
28
+ const [open, setOpen] = useState(true);
29
+ return (
30
+ <ServerLogViewerContent
31
+ open={open}
32
+ onOpenChange={setOpen}
33
+ logs={logs}
34
+ isConnected={isConnected}
35
+ />
36
+ );
37
+ }
38
+
39
+ /** Empty state — no log output yet. */
40
+ export const Empty: Story = {
41
+ render: () => <InteractiveWrapper logs={[]} isConnected={true} />,
42
+ };
43
+
44
+ /** A few stdout-only lines. */
45
+ export const FewLines: Story = {
46
+ render: () => (
47
+ <InteractiveWrapper
48
+ logs={[
49
+ makeLog('$ npm run dev', 'stdout', 0),
50
+ makeLog('', 'stdout', 10),
51
+ makeLog('> my-app@1.0.0 dev', 'stdout', 20),
52
+ makeLog('> next dev', 'stdout', 30),
53
+ makeLog('', 'stdout', 40),
54
+ makeLog(' ▲ Next.js 14.2.3', 'stdout', 50),
55
+ makeLog(' - Local: http://localhost:3000', 'stdout', 60),
56
+ makeLog(' - Environments: .env.local', 'stdout', 70),
57
+ makeLog('', 'stdout', 80),
58
+ makeLog(' ✓ Ready in 1.2s', 'stdout', 90),
59
+ ]}
60
+ isConnected={true}
61
+ />
62
+ ),
63
+ };
64
+
65
+ /** Interleaved stdout and stderr showing color differentiation. */
66
+ export const MixedOutput: Story = {
67
+ render: () => (
68
+ <InteractiveWrapper
69
+ logs={[
70
+ makeLog('$ npm run dev', 'stdout', 0),
71
+ makeLog('> next dev', 'stdout', 10),
72
+ makeLog(' ▲ Next.js 14.2.3', 'stdout', 20),
73
+ makeLog(
74
+ '(node:12345) [DEP0040] DeprecationWarning: The punycode module is deprecated.',
75
+ 'stderr',
76
+ 30
77
+ ),
78
+ makeLog('Use `node:punycode` instead.', 'stderr', 31),
79
+ makeLog(' - Local: http://localhost:3000', 'stdout', 40),
80
+ makeLog(' ✓ Ready in 1.8s', 'stdout', 50),
81
+ makeLog(' ○ Compiling /page ...', 'stdout', 100),
82
+ makeLog(' ✓ Compiled /page in 342ms', 'stdout', 200),
83
+ makeLog('GET / 200 in 412ms', 'stdout', 300),
84
+ makeLog('Warning: Each child in a list should have a unique "key" prop.', 'stderr', 310),
85
+ makeLog('GET /api/data 200 in 23ms', 'stdout', 400),
86
+ makeLog('GET /favicon.ico 304 in 2ms', 'stdout', 410),
87
+ makeLog("Error: ENOENT: no such file or directory, open '/tmp/cache.json'", 'stderr', 500),
88
+ makeLog('GET /api/users 500 in 156ms', 'stdout', 510),
89
+ ]}
90
+ isConnected={true}
91
+ />
92
+ ),
93
+ };
94
+
95
+ /** 100+ lines demonstrating scrollable content. */
96
+ export const ManyLines: Story = {
97
+ render: () => {
98
+ const logs: LogEntry[] = [];
99
+ logs.push(makeLog('$ npm run dev', 'stdout', 0));
100
+ logs.push(makeLog('> next dev', 'stdout', 10));
101
+ logs.push(makeLog(' ✓ Ready in 1.2s', 'stdout', 20));
102
+ for (let i = 0; i < 120; i++) {
103
+ const method = ['GET', 'POST', 'PUT', 'DELETE'][i % 4];
104
+ const path = ['/api/users', '/api/features', '/api/repos', '/api/deploy'][i % 4];
105
+ const status = i % 15 === 0 ? 500 : i % 7 === 0 ? 404 : 200;
106
+ const ms = Math.floor(Math.random() * 500) + 5;
107
+ const stream: 'stdout' | 'stderr' = status >= 500 ? 'stderr' : 'stdout';
108
+ logs.push(makeLog(`${method} ${path}/${i} ${status} in ${ms}ms`, stream, 100 + i * 10));
109
+ }
110
+ return <InteractiveWrapper logs={logs} isConnected={true} />;
111
+ },
112
+ };
113
+
114
+ /** Lines exceeding viewport width showing wrap behavior. */
115
+ export const LongLines: Story = {
116
+ render: () => (
117
+ <InteractiveWrapper
118
+ logs={[
119
+ makeLog('Short line', 'stdout', 0),
120
+ makeLog(
121
+ "Error: Module not found: Can't resolve '@/components/features/really-long-component-name/that-goes-on-and-on/sub-component/deeply-nested-module/index.tsx' in '/Users/developer/projects/my-very-long-project-name/src/presentation/web/components/features'",
122
+ 'stderr',
123
+ 10
124
+ ),
125
+ makeLog(
126
+ 'at Object.resolve (webpack://my-app/node_modules/enhanced-resolve/lib/Resolver.js?:331:11) at Object.resolve (webpack://my-app/node_modules/enhanced-resolve/lib/Resolver.js?:331:11) at Object.resolve (webpack://my-app/node_modules/enhanced-resolve/lib/Resolver.js?:331:11)',
127
+ 'stderr',
128
+ 20
129
+ ),
130
+ makeLog('Normal log line here', 'stdout', 30),
131
+ makeLog(
132
+ JSON.stringify({
133
+ level: 'info',
134
+ message: 'Request processed',
135
+ metadata: {
136
+ userId: 'usr_abc123',
137
+ path: '/api/features',
138
+ method: 'POST',
139
+ duration: 234,
140
+ headers: { 'content-type': 'application/json', authorization: 'Bearer xxx...xxx' },
141
+ },
142
+ }),
143
+ 'stdout',
144
+ 40
145
+ ),
146
+ makeLog('Another normal line', 'stdout', 50),
147
+ ]}
148
+ isConnected={true}
149
+ />
150
+ ),
151
+ };
152
+
153
+ /** Disconnected state — shows server stopped message. */
154
+ export const Disconnected: Story = {
155
+ render: () => (
156
+ <InteractiveWrapper
157
+ logs={[
158
+ makeLog('$ npm run dev', 'stdout', 0),
159
+ makeLog('> next dev', 'stdout', 10),
160
+ makeLog(' ✓ Ready in 1.2s', 'stdout', 20),
161
+ makeLog('GET / 200 in 412ms', 'stdout', 100),
162
+ makeLog('GET /api/data 200 in 23ms', 'stdout', 200),
163
+ makeLog('SIGTERM received, shutting down...', 'stderr', 300),
164
+ ]}
165
+ isConnected={false}
166
+ />
167
+ ),
168
+ };